diff options
594 files changed, 11339 insertions, 4156 deletions
diff --git a/.drone.yml b/.drone.yml index 27cdaece4cf..2f2867a5b2b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -49,8 +49,8 @@ pipeline: image: nextcloudci/php7.1:php7.1-15 commands: - composer install - - composer require --dev "etsy/phan:dev-master" - - ./lib/composer/etsy/phan/phan -k build/.phan/config.php + - composer require --dev "phan/phan:dev-master" + - ./lib/composer/phan/phan/phan -k build/.phan/config.php - php ./build/.phan/plugin-checker.php when: matrix: @@ -171,7 +171,7 @@ pipeline: DB: NODB PHP: 7.1 nodb-php7.2: - image: nextcloudci/php7.2:php7.2-8 + image: nextcloudci/php7.2:php7.2-9 commands: - NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite when: @@ -203,7 +203,7 @@ pipeline: DB: sqlite PHP: 7.1 sqlite-php7.2: - image: nextcloudci/php7.2:php7.2-8 + image: nextcloudci/php7.2:php7.2-9 commands: - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite when: @@ -235,7 +235,7 @@ pipeline: DB: mysql PHP: 7.1 mysql-php7.2: - image: nextcloudci/php7.2:php7.2-4 + image: nextcloudci/php7.2:php7.2-9 commands: - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql when: @@ -342,7 +342,7 @@ pipeline: DB: mysqlmb4 PHP: 7.1 mysqlmb4-php7.2: - image: nextcloudci/php7.2:php7.2-4 + image: nextcloudci/php7.2:php7.2-9 commands: - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysqlmb4 when: @@ -834,7 +834,7 @@ services: matrix: ENABLE_REDIS_CLUSTER: true postgres: - image: postgres + image: postgres:9 environment: - POSTGRES_USER=oc_autotest - POSTGRES_PASSWORD=owncloud diff --git a/apps/comments/l10n/es.js b/apps/comments/l10n/es.js index ee19397cf34..5c2060c862b 100644 --- a/apps/comments/l10n/es.js +++ b/apps/comments/l10n/es.js @@ -3,7 +3,7 @@ OC.L10N.register( { "Comments" : "Comentarios", "Unknown user" : "Usuario desconocido", - "New comment …" : "Comentario nuevo", + "New comment …" : "Nuevo comentario", "Delete comment" : "Borrar comentario", "Post" : "Publicar", "Cancel" : "Cancelar", @@ -16,13 +16,13 @@ OC.L10N.register( "Error occurred while retrieving comment with id {id}" : "Se ha producido un error al recuperar el comentario con ID {id}", "Error occurred while updating comment with id {id}" : "Se ha producido un error al actualizar el comentario con ID {id}", "Error occurred while posting comment" : "Se ha producido un error al enviar el comentario", - "_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios sin leer"], - "Comment" : "Comentario", + "_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%nComentarios no leídos"], + "Comment" : "Comentar", "You commented" : "Has comentado", "%1$s commented" : "%1$s comentados", "{author} commented" : "{author} comentó", "You commented on %1$s" : "Has comentado en %1$s", - "You commented on {file}" : "Usted comentó Has comentado en {file}", + "You commented on {file}" : "Has comentado en {file}", "%1$s commented on %2$s" : "%1$s comentados en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos", diff --git a/apps/comments/l10n/es.json b/apps/comments/l10n/es.json index 80cc155293f..8956aedb26b 100644 --- a/apps/comments/l10n/es.json +++ b/apps/comments/l10n/es.json @@ -1,7 +1,7 @@ { "translations": { "Comments" : "Comentarios", "Unknown user" : "Usuario desconocido", - "New comment …" : "Comentario nuevo", + "New comment …" : "Nuevo comentario", "Delete comment" : "Borrar comentario", "Post" : "Publicar", "Cancel" : "Cancelar", @@ -14,13 +14,13 @@ "Error occurred while retrieving comment with id {id}" : "Se ha producido un error al recuperar el comentario con ID {id}", "Error occurred while updating comment with id {id}" : "Se ha producido un error al actualizar el comentario con ID {id}", "Error occurred while posting comment" : "Se ha producido un error al enviar el comentario", - "_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios sin leer"], - "Comment" : "Comentario", + "_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%nComentarios no leídos"], + "Comment" : "Comentar", "You commented" : "Has comentado", "%1$s commented" : "%1$s comentados", "{author} commented" : "{author} comentó", "You commented on %1$s" : "Has comentado en %1$s", - "You commented on {file}" : "Usted comentó Has comentado en {file}", + "You commented on {file}" : "Has comentado en {file}", "%1$s commented on %2$s" : "%1$s comentados en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos", diff --git a/apps/comments/l10n/si_LK.js b/apps/comments/l10n/si_LK.js index 9badedaef20..7335455d181 100644 --- a/apps/comments/l10n/si_LK.js +++ b/apps/comments/l10n/si_LK.js @@ -1,7 +1,33 @@ OC.L10N.register( "comments", { + "Comments" : "අදහස් දැක්වීම්", + "Unknown user" : "හදුනානොගත් සේවාදායකයා", + "New comment …" : "අලුත් අදහස් දැක්වීමක් ...", + "Delete comment" : "අදහස් දැක්වීම මකන්න", + "Post" : "ලිපියක්", "Cancel" : "එපා", - "Save" : "සුරකින්න" + "Edit comment" : "අදහස වෙනස් කරන්න", + "[Deleted user]" : "[ඉවත්කළ සේවාදායකයා]", + "No comments yet, start the conversation!" : "තවම අදහස් නැත. ආරම්බක අදහස ඇතුළු කරන්න !", + "More comments …" : "තවත් අදහස් ...", + "Save" : "සුරකින්න", + "Allowed characters {count} of {max}" : "අකුරු {max} න් {count} බාවිතා කර ඇත", + "Error occurred while retrieving comment with id {id}" : "{id} අදහස ලබාගැනීමේ ගැටළුවක් ඇත", + "Error occurred while updating comment with id {id}" : "{id} අදහස වෙනස් කිරීමේ දෝෂයක් ඇත", + "Error occurred while posting comment" : "අදහස්ගැ දැක්වීමේ ගැටළුවක් ඇත", + "Comment" : "අදහස", + "You commented" : "ඔයාගේ අදහස", + "%1$s commented" : "%1$s අදහස් දක්වා ඇත", + "{author} commented" : "{අයිතිකරු} අදහස් දක්වා ඇත", + "You commented on %1$s" : "ඔබ %1$s හි අදහස් දක්වා ඇත", + "You commented on {file}" : "ඔබ {file} හි අදහස් දක්වා ඇත", + "%1$s commented on %2$s" : "%1$s, %2$s තුල අදහස් දක්වා ඇත", + "{author} commented on {file}" : "{author}, {file} තුල අදහසක් දක්වා ඇත", + "<strong>Comments</strong> for files" : "ගොනු සදහා <strong>අදහස් </strong>", + "A (now) deleted user mentioned you in a comment on “%s”" : "මකන ලද සේවාදායකයෙක් (now) ඔබව %s අදහස තුල මතක් කර ඇත", + "A (now) deleted user mentioned you in a comment on “{file}”" : "{file} තුල අදහස් දැක්වීමකදී, (now) ඉවත්කරන ලද සේවාදායකයෙක් ඔබව මතක් කර ඇත", + "%1$s mentioned you in a comment on “%2$s”" : "%1$s ඔබව %2$s හි අදහසක මතක් කර ඇත", + "{user} mentioned you in a comment on “{file}”" : "{user} ඔබව {file} තුලදී මතක් කර ඇත" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/comments/l10n/si_LK.json b/apps/comments/l10n/si_LK.json index e5ce448e641..5720c3789c5 100644 --- a/apps/comments/l10n/si_LK.json +++ b/apps/comments/l10n/si_LK.json @@ -1,5 +1,31 @@ { "translations": { + "Comments" : "අදහස් දැක්වීම්", + "Unknown user" : "හදුනානොගත් සේවාදායකයා", + "New comment …" : "අලුත් අදහස් දැක්වීමක් ...", + "Delete comment" : "අදහස් දැක්වීම මකන්න", + "Post" : "ලිපියක්", "Cancel" : "එපා", - "Save" : "සුරකින්න" + "Edit comment" : "අදහස වෙනස් කරන්න", + "[Deleted user]" : "[ඉවත්කළ සේවාදායකයා]", + "No comments yet, start the conversation!" : "තවම අදහස් නැත. ආරම්බක අදහස ඇතුළු කරන්න !", + "More comments …" : "තවත් අදහස් ...", + "Save" : "සුරකින්න", + "Allowed characters {count} of {max}" : "අකුරු {max} න් {count} බාවිතා කර ඇත", + "Error occurred while retrieving comment with id {id}" : "{id} අදහස ලබාගැනීමේ ගැටළුවක් ඇත", + "Error occurred while updating comment with id {id}" : "{id} අදහස වෙනස් කිරීමේ දෝෂයක් ඇත", + "Error occurred while posting comment" : "අදහස්ගැ දැක්වීමේ ගැටළුවක් ඇත", + "Comment" : "අදහස", + "You commented" : "ඔයාගේ අදහස", + "%1$s commented" : "%1$s අදහස් දක්වා ඇත", + "{author} commented" : "{අයිතිකරු} අදහස් දක්වා ඇත", + "You commented on %1$s" : "ඔබ %1$s හි අදහස් දක්වා ඇත", + "You commented on {file}" : "ඔබ {file} හි අදහස් දක්වා ඇත", + "%1$s commented on %2$s" : "%1$s, %2$s තුල අදහස් දක්වා ඇත", + "{author} commented on {file}" : "{author}, {file} තුල අදහසක් දක්වා ඇත", + "<strong>Comments</strong> for files" : "ගොනු සදහා <strong>අදහස් </strong>", + "A (now) deleted user mentioned you in a comment on “%s”" : "මකන ලද සේවාදායකයෙක් (now) ඔබව %s අදහස තුල මතක් කර ඇත", + "A (now) deleted user mentioned you in a comment on “{file}”" : "{file} තුල අදහස් දැක්වීමකදී, (now) ඉවත්කරන ලද සේවාදායකයෙක් ඔබව මතක් කර ඇත", + "%1$s mentioned you in a comment on “%2$s”" : "%1$s ඔබව %2$s හි අදහසක මතක් කර ඇත", + "{user} mentioned you in a comment on “{file}”" : "{user} ඔබව {file} තුලදී මතක් කර ඇත" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/comments/l10n/sr.js b/apps/comments/l10n/sr.js index 39b1595fc0f..94c0988bfbd 100644 --- a/apps/comments/l10n/sr.js +++ b/apps/comments/l10n/sr.js @@ -1,20 +1,34 @@ OC.L10N.register( "comments", { - "Type in a new comment..." : "Укуцајте нови коментар...", + "Comments" : "Коментари", + "Unknown user" : "Непознат корисник", + "New comment …" : "Нови коментар …", "Delete comment" : "Обриши коментар", "Post" : "Објави", "Cancel" : "Откажи", - "Edit comment" : "Уреди коментар", + "Edit comment" : "Измени коментар", "[Deleted user]" : "[Обрисан корисник]", - "Comments" : "Коментари", - "No other comments available" : "Нема других коментара", - "More comments..." : "Још коментара...", + "No comments yet, start the conversation!" : "Тренутно нема коментара. Започните дискусију", + "More comments …" : "Преостали коментари …", "Save" : "Сачувај", "Allowed characters {count} of {max}" : "Дозвољених {count} знакова од {max}", - "{count} unread comments" : "{count} непрочитаних коментара", + "Error occurred while retrieving comment with id {id}" : "Дошло је до грешке при прегледу коментара ознаке {id}", + "Error occurred while updating comment with id {id}" : "Дошло је до грешке при преправци коментара ознаке {id}", + "Error occurred while posting comment" : "Дошло је до грешке при објави коментара", + "_%n unread comment_::_%n unread comments_" : ["%nнепрочитани коментар","%nнепрочитана коментара ","%n непрочитаних коментара"], "Comment" : "Коментар", - "%1$s commented" : "%1$s коментариса", - "%1$s commented on %2$s" : "%1$s коментариса на %2$s" + "You commented" : "Искоментарисали сте", + "%1$s commented" : "%1$s коментарисао", + "{author} commented" : "{author} коментарисао", + "You commented on %1$s" : "Коментарисали сте на %1$s", + "You commented on {file}" : "Коментаристали сте на {file}", + "%1$s commented on %2$s" : "%1$s коментарисао на %2$s", + "{author} commented on {file}" : "{author} коментарисао на {file}", + "<strong>Comments</strong> for files" : "<strong>Коментари</strong> на фајлове", + "A (now) deleted user mentioned you in a comment on “%s”" : "(Сада) обрисани корисник Вас је поменуо у коментару на “%s”", + "A (now) deleted user mentioned you in a comment on “{file}”" : "(Сада) обрисани корисник Вас је поменуо у коментару на “{file}”", + "%1$s mentioned you in a comment on “%2$s”" : "%1$s Вас је поменуо у коментару на \"%2$s\"", + "{user} mentioned you in a comment on “{file}”" : "{user} Вас је поменуо у коментару на “{file}”" }, "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/comments/l10n/sr.json b/apps/comments/l10n/sr.json index 6b3fe95ea9e..6710667913c 100644 --- a/apps/comments/l10n/sr.json +++ b/apps/comments/l10n/sr.json @@ -1,18 +1,32 @@ { "translations": { - "Type in a new comment..." : "Укуцајте нови коментар...", + "Comments" : "Коментари", + "Unknown user" : "Непознат корисник", + "New comment …" : "Нови коментар …", "Delete comment" : "Обриши коментар", "Post" : "Објави", "Cancel" : "Откажи", - "Edit comment" : "Уреди коментар", + "Edit comment" : "Измени коментар", "[Deleted user]" : "[Обрисан корисник]", - "Comments" : "Коментари", - "No other comments available" : "Нема других коментара", - "More comments..." : "Још коментара...", + "No comments yet, start the conversation!" : "Тренутно нема коментара. Започните дискусију", + "More comments …" : "Преостали коментари …", "Save" : "Сачувај", "Allowed characters {count} of {max}" : "Дозвољених {count} знакова од {max}", - "{count} unread comments" : "{count} непрочитаних коментара", + "Error occurred while retrieving comment with id {id}" : "Дошло је до грешке при прегледу коментара ознаке {id}", + "Error occurred while updating comment with id {id}" : "Дошло је до грешке при преправци коментара ознаке {id}", + "Error occurred while posting comment" : "Дошло је до грешке при објави коментара", + "_%n unread comment_::_%n unread comments_" : ["%nнепрочитани коментар","%nнепрочитана коментара ","%n непрочитаних коментара"], "Comment" : "Коментар", - "%1$s commented" : "%1$s коментариса", - "%1$s commented on %2$s" : "%1$s коментариса на %2$s" + "You commented" : "Искоментарисали сте", + "%1$s commented" : "%1$s коментарисао", + "{author} commented" : "{author} коментарисао", + "You commented on %1$s" : "Коментарисали сте на %1$s", + "You commented on {file}" : "Коментаристали сте на {file}", + "%1$s commented on %2$s" : "%1$s коментарисао на %2$s", + "{author} commented on {file}" : "{author} коментарисао на {file}", + "<strong>Comments</strong> for files" : "<strong>Коментари</strong> на фајлове", + "A (now) deleted user mentioned you in a comment on “%s”" : "(Сада) обрисани корисник Вас је поменуо у коментару на “%s”", + "A (now) deleted user mentioned you in a comment on “{file}”" : "(Сада) обрисани корисник Вас је поменуо у коментару на “{file}”", + "%1$s mentioned you in a comment on “%2$s”" : "%1$s Вас је поменуо у коментару на \"%2$s\"", + "{user} mentioned you in a comment on “{file}”" : "{user} Вас је поменуо у коментару на “{file}”" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/comments/l10n/tr.js b/apps/comments/l10n/tr.js index acab6a24100..423c7137407 100644 --- a/apps/comments/l10n/tr.js +++ b/apps/comments/l10n/tr.js @@ -25,7 +25,7 @@ OC.L10N.register( "You commented on {file}" : "{file} hakkında yorum yaptınız", "%1$s commented on %2$s" : "%1$s, %2$s için yorum yaptı", "{author} commented on {file}" : "{author}, {file} hakkında yorum yaptı", - "<strong>Comments</strong> for files" : "Dosyalar için <strong>Yorumlar</strong>", + "<strong>Comments</strong> for files" : "Dosyalar için <strong>yorumlar</strong>", "A (now) deleted user mentioned you in a comment on “%s”" : "Bir (artık) silinmiş kullanıcı “%s” hakkındaki bir yorumda sizden bahsetti", "A (now) deleted user mentioned you in a comment on “{file}”" : "Bir (artık) silinmiş kullanıcı “{file}” hakkındaki bir yorumda sizden bahsetti", "%1$s mentioned you in a comment on “%2$s”" : "%1$s, “%2$s” hakkındaki bir yorumda sizden bahsetti", diff --git a/apps/comments/l10n/tr.json b/apps/comments/l10n/tr.json index a39dfc68f8b..0fc01885c32 100644 --- a/apps/comments/l10n/tr.json +++ b/apps/comments/l10n/tr.json @@ -23,7 +23,7 @@ "You commented on {file}" : "{file} hakkında yorum yaptınız", "%1$s commented on %2$s" : "%1$s, %2$s için yorum yaptı", "{author} commented on {file}" : "{author}, {file} hakkında yorum yaptı", - "<strong>Comments</strong> for files" : "Dosyalar için <strong>Yorumlar</strong>", + "<strong>Comments</strong> for files" : "Dosyalar için <strong>yorumlar</strong>", "A (now) deleted user mentioned you in a comment on “%s”" : "Bir (artık) silinmiş kullanıcı “%s” hakkındaki bir yorumda sizden bahsetti", "A (now) deleted user mentioned you in a comment on “{file}”" : "Bir (artık) silinmiş kullanıcı “{file}” hakkındaki bir yorumda sizden bahsetti", "%1$s mentioned you in a comment on “%2$s”" : "%1$s, “%2$s” hakkındaki bir yorumda sizden bahsetti", diff --git a/apps/comments/l10n/vi.js b/apps/comments/l10n/vi.js index b21b2905116..8420c0616a7 100644 --- a/apps/comments/l10n/vi.js +++ b/apps/comments/l10n/vi.js @@ -1,7 +1,34 @@ OC.L10N.register( "comments", { + "Comments" : "Các bình luận", + "Unknown user" : "Người dùng không tồn tại", + "New comment …" : "Tạo bình luận mới", + "Delete comment" : "Xóa bình luận", + "Post" : "Đăng", "Cancel" : "Hủy", - "Save" : "Lưu" + "Edit comment" : "Sửa bình luận", + "[Deleted user]" : "[Người dùng bị xoá]", + "No comments yet, start the conversation!" : "Không có bình luận nào, bắt đầu cuộc hội thoại!", + "More comments …" : "Xem thêm các bình luận...", + "Save" : "Lưu", + "Allowed characters {count} of {max}" : "Số ký tự được còn lại là {count} trong tổng số {max}", + "Error occurred while retrieving comment with id {id}" : "Có lỗi xảy ra khi truy xuất bình luận có id {id}", + "Error occurred while updating comment with id {id}" : "Có lỗi xảy ra khi cập nhật bình luận có id {id}", + "Error occurred while posting comment" : "Có lỗi xảy ra khi đăng bình luận", + "_%n unread comment_::_%n unread comments_" : ["%n bình luận chưa đọc"], + "Comment" : "Bình luận", + "You commented" : "Bạn đã bình luận", + "%1$s commented" : "%1$s được bình luận", + "{author} commented" : "{author} đã bình luận", + "You commented on %1$s" : "Bạn đã bình luận về %1$s", + "You commented on {file}" : "Bạn đã bình luận đối với tệp tin {file}", + "%1$s commented on %2$s" : "%1$s đã bình luận về%2$s", + "{author} commented on {file}" : "{author} đã bình luận về tệp tin {file}", + "<strong>Comments</strong> for files" : "<strong>bình luận</strong> đối với các tệp tin", + "A (now) deleted user mentioned you in a comment on “%s”" : "Có một người sử dụng (now) bị xóa đã đề cập tới bạn trong một bình luận về “%s”", + "A (now) deleted user mentioned you in a comment on “{file}”" : "Có một người sử dụng (now) bị xóa đã đề cập tới bạn trong một bình luận về “{file}”", + "%1$s mentioned you in a comment on “%2$s”" : "%1$s đề cập tới bạn trong một bình luận về “%2$s”", + "{user} mentioned you in a comment on “{file}”" : "{user} đề cập tới bạn trong một bình luận về “{file}”" }, "nplurals=1; plural=0;"); diff --git a/apps/comments/l10n/vi.json b/apps/comments/l10n/vi.json index 71ecdab9df5..0953f50171c 100644 --- a/apps/comments/l10n/vi.json +++ b/apps/comments/l10n/vi.json @@ -1,5 +1,32 @@ { "translations": { + "Comments" : "Các bình luận", + "Unknown user" : "Người dùng không tồn tại", + "New comment …" : "Tạo bình luận mới", + "Delete comment" : "Xóa bình luận", + "Post" : "Đăng", "Cancel" : "Hủy", - "Save" : "Lưu" + "Edit comment" : "Sửa bình luận", + "[Deleted user]" : "[Người dùng bị xoá]", + "No comments yet, start the conversation!" : "Không có bình luận nào, bắt đầu cuộc hội thoại!", + "More comments …" : "Xem thêm các bình luận...", + "Save" : "Lưu", + "Allowed characters {count} of {max}" : "Số ký tự được còn lại là {count} trong tổng số {max}", + "Error occurred while retrieving comment with id {id}" : "Có lỗi xảy ra khi truy xuất bình luận có id {id}", + "Error occurred while updating comment with id {id}" : "Có lỗi xảy ra khi cập nhật bình luận có id {id}", + "Error occurred while posting comment" : "Có lỗi xảy ra khi đăng bình luận", + "_%n unread comment_::_%n unread comments_" : ["%n bình luận chưa đọc"], + "Comment" : "Bình luận", + "You commented" : "Bạn đã bình luận", + "%1$s commented" : "%1$s được bình luận", + "{author} commented" : "{author} đã bình luận", + "You commented on %1$s" : "Bạn đã bình luận về %1$s", + "You commented on {file}" : "Bạn đã bình luận đối với tệp tin {file}", + "%1$s commented on %2$s" : "%1$s đã bình luận về%2$s", + "{author} commented on {file}" : "{author} đã bình luận về tệp tin {file}", + "<strong>Comments</strong> for files" : "<strong>bình luận</strong> đối với các tệp tin", + "A (now) deleted user mentioned you in a comment on “%s”" : "Có một người sử dụng (now) bị xóa đã đề cập tới bạn trong một bình luận về “%s”", + "A (now) deleted user mentioned you in a comment on “{file}”" : "Có một người sử dụng (now) bị xóa đã đề cập tới bạn trong một bình luận về “{file}”", + "%1$s mentioned you in a comment on “%2$s”" : "%1$s đề cập tới bạn trong một bình luận về “%2$s”", + "{user} mentioned you in a comment on “{file}”" : "{user} đề cập tới bạn trong một bình luận về “{file}”" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/dav/appinfo/info.xml b/apps/dav/appinfo/info.xml index b104cb7fd69..9b500c9f300 100644 --- a/apps/dav/appinfo/info.xml +++ b/apps/dav/appinfo/info.xml @@ -5,7 +5,7 @@ <description>WebDAV endpoint</description> <licence>AGPL</licence> <author>owncloud.org</author> - <version>1.4.3</version> + <version>1.4.4</version> <default_enable/> <types> <filesystem/> diff --git a/apps/dav/appinfo/v1/caldav.php b/apps/dav/appinfo/v1/caldav.php index bd9de775f44..b005ec2fcb8 100644 --- a/apps/dav/appinfo/v1/caldav.php +++ b/apps/dav/appinfo/v1/caldav.php @@ -49,7 +49,7 @@ $db = \OC::$server->getDatabaseConnection(); $userManager = \OC::$server->getUserManager(); $random = \OC::$server->getSecureRandom(); $dispatcher = \OC::$server->getEventDispatcher(); -$calDavBackend = new CalDavBackend($db, $principalBackend, $userManager, $random, $dispatcher, true); +$calDavBackend = new CalDavBackend($db, $principalBackend, $userManager, \OC::$server->getGroupManager(), $random, $dispatcher, true); $debugging = \OC::$server->getConfig()->getSystemValue('debug', false); diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php index 8dea6684742..74003f11c9b 100644 --- a/apps/dav/appinfo/v1/carddav.php +++ b/apps/dav/appinfo/v1/carddav.php @@ -48,7 +48,7 @@ $principalBackend = new Principal( 'principals/' ); $db = \OC::$server->getDatabaseConnection(); -$cardDavBackend = new CardDavBackend($db, $principalBackend, \OC::$server->getUserManager(), \OC::$server->getEventDispatcher()); +$cardDavBackend = new CardDavBackend($db, $principalBackend, \OC::$server->getUserManager(), \OC::$server->getGroupManager(), \OC::$server->getEventDispatcher()); $debugging = \OC::$server->getConfig()->getSystemValue('debug', false); diff --git a/apps/dav/appinfo/v2/remote.php b/apps/dav/appinfo/v2/remote.php index 3a00c8006ec..c1b29a4a177 100644 --- a/apps/dav/appinfo/v2/remote.php +++ b/apps/dav/appinfo/v2/remote.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/dav/l10n/ca.js b/apps/dav/l10n/ca.js new file mode 100644 index 00000000000..1b176c5d506 --- /dev/null +++ b/apps/dav/l10n/ca.js @@ -0,0 +1,49 @@ +OC.L10N.register( + "dav", + { + "Calendar" : "Calendari", + "Todos" : "Tots", + "{actor} created calendar {calendar}" : "{actor} ha creat el calendari {calendar}", + "You created calendar {calendar}" : "Vosté ha creat el calentari {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} ha esborrat el calendari {calendar}", + "You deleted calendar {calendar}" : "Voste ha esborrat el calendari {calendar}", + "{actor} updated calendar {calendar}" : "{actor} ha actualitzat el calendari {calendar}", + "You updated calendar {calendar}" : "Vosté ha actualitzat el calendari {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} ha compartit el calendari {calendar} amb vosté", + "You shared calendar {calendar} with {user}" : "Vosté ha compartit el calendari {calendar} amb {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} ha compartit el calendari {calendar} amb {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} no ha compartit el calendari {calendar} amb vosté", + "You unshared calendar {calendar} from {user}" : "Vosté no ha compartit el calendari {calendar} amb {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} no ha compartit el calendari {calendar} amb {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} no comparteixen el calendari {calendar} de si mateixos", + "You shared calendar {calendar} with group {group}" : "Has compartit el calendari {calendar} amb el grup {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} ha compartit el calendari {calendar} amb el grup {group}", + "You unshared calendar {calendar} from group {group}" : "Has desactivat el calendari {calendar} del grup {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} calendari no publicat {calendar} del grup {grup}", + "{actor} created event {event} in calendar {calendar}" : "{actor} ha creat l'esdeveniment {event} al calendari {calendar}", + "You created event {event} in calendar {calendar}" : "Heu creat l'esdeveniment {event} al calendari {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} eliminat esdeveniment {esdeveniment} del calendari {calendar}", + "You deleted event {event} from calendar {calendar}" : "Has eliminat l'esdeveniment {event} del calendari {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} esdeveniment actualitzat {esdeveniment} al calendari {calendar}", + "You updated event {event} in calendar {calendar}" : "Heu actualitzat l'esdeveniment {event} al calendari {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} creat tot {tot} a la llista {calendar}", + "You created todo {todo} in list {calendar}" : "Heu creat tot {tot} a la llista {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} eliminat tot {tot} de la llista {calendar}", + "You deleted todo {todo} from list {calendar}" : "Heu eliminat tot {tot} de la llista {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} actualitzat tot {tot} a la llista {calendar}", + "You updated todo {todo} in list {calendar}" : "Heu actualitzat tot {tot} a la llista {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} resolt tot {tot} a la llista {calendar}", + "You solved todo {todo} in list {calendar}" : "Has resolt la tasca {todo} de {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} ha tornat a obrir tot {tot} a la llista {calendar}", + "You reopened todo {todo} in list {calendar}" : "Heu tornat a obrir tot {tot} a la llista {calendar}", + "A <strong>calendar</strong> was modified" : "El <strong>calendari</strong> has estat modificat", + "A calendar <strong>event</strong> was modified" : "S'ha modificat un <strong> esdeveniment </strong> del calendari", + "A calendar <strong>todo</strong> was modified" : "<strong>Tot</strong> un calendari va ser modificat", + "Contact birthdays" : "Aniversaris dels contactes", + "Personal" : "Personal", + "Contacts" : "Contactes", + "Technical details" : "Detalls tècnics", + "Remote Address: %s" : "Adreça remota: %s", + "Request ID: %s" : "Sol·licitud ID: %s " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/ca.json b/apps/dav/l10n/ca.json new file mode 100644 index 00000000000..7c30c4050a0 --- /dev/null +++ b/apps/dav/l10n/ca.json @@ -0,0 +1,47 @@ +{ "translations": { + "Calendar" : "Calendari", + "Todos" : "Tots", + "{actor} created calendar {calendar}" : "{actor} ha creat el calendari {calendar}", + "You created calendar {calendar}" : "Vosté ha creat el calentari {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} ha esborrat el calendari {calendar}", + "You deleted calendar {calendar}" : "Voste ha esborrat el calendari {calendar}", + "{actor} updated calendar {calendar}" : "{actor} ha actualitzat el calendari {calendar}", + "You updated calendar {calendar}" : "Vosté ha actualitzat el calendari {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} ha compartit el calendari {calendar} amb vosté", + "You shared calendar {calendar} with {user}" : "Vosté ha compartit el calendari {calendar} amb {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} ha compartit el calendari {calendar} amb {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} no ha compartit el calendari {calendar} amb vosté", + "You unshared calendar {calendar} from {user}" : "Vosté no ha compartit el calendari {calendar} amb {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} no ha compartit el calendari {calendar} amb {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} no comparteixen el calendari {calendar} de si mateixos", + "You shared calendar {calendar} with group {group}" : "Has compartit el calendari {calendar} amb el grup {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} ha compartit el calendari {calendar} amb el grup {group}", + "You unshared calendar {calendar} from group {group}" : "Has desactivat el calendari {calendar} del grup {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} calendari no publicat {calendar} del grup {grup}", + "{actor} created event {event} in calendar {calendar}" : "{actor} ha creat l'esdeveniment {event} al calendari {calendar}", + "You created event {event} in calendar {calendar}" : "Heu creat l'esdeveniment {event} al calendari {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} eliminat esdeveniment {esdeveniment} del calendari {calendar}", + "You deleted event {event} from calendar {calendar}" : "Has eliminat l'esdeveniment {event} del calendari {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} esdeveniment actualitzat {esdeveniment} al calendari {calendar}", + "You updated event {event} in calendar {calendar}" : "Heu actualitzat l'esdeveniment {event} al calendari {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} creat tot {tot} a la llista {calendar}", + "You created todo {todo} in list {calendar}" : "Heu creat tot {tot} a la llista {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} eliminat tot {tot} de la llista {calendar}", + "You deleted todo {todo} from list {calendar}" : "Heu eliminat tot {tot} de la llista {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} actualitzat tot {tot} a la llista {calendar}", + "You updated todo {todo} in list {calendar}" : "Heu actualitzat tot {tot} a la llista {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} resolt tot {tot} a la llista {calendar}", + "You solved todo {todo} in list {calendar}" : "Has resolt la tasca {todo} de {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} ha tornat a obrir tot {tot} a la llista {calendar}", + "You reopened todo {todo} in list {calendar}" : "Heu tornat a obrir tot {tot} a la llista {calendar}", + "A <strong>calendar</strong> was modified" : "El <strong>calendari</strong> has estat modificat", + "A calendar <strong>event</strong> was modified" : "S'ha modificat un <strong> esdeveniment </strong> del calendari", + "A calendar <strong>todo</strong> was modified" : "<strong>Tot</strong> un calendari va ser modificat", + "Contact birthdays" : "Aniversaris dels contactes", + "Personal" : "Personal", + "Contacts" : "Contactes", + "Technical details" : "Detalls tècnics", + "Remote Address: %s" : "Adreça remota: %s", + "Request ID: %s" : "Sol·licitud ID: %s " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/dav/l10n/sr.js b/apps/dav/l10n/sr.js new file mode 100644 index 00000000000..ad84267ebf5 --- /dev/null +++ b/apps/dav/l10n/sr.js @@ -0,0 +1,49 @@ +OC.L10N.register( + "dav", + { + "Calendar" : "Календар", + "Todos" : "Подсетници", + "{actor} created calendar {calendar}" : "{actor} је направио календар {calendar}", + "You created calendar {calendar}" : "Креирали сте календар {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} је обрисао календар {calendar}", + "You deleted calendar {calendar}" : "Обрисали сте календар {calendar}", + "{actor} updated calendar {calendar}" : "{actor} је ажурирао календар {calendar}", + "You updated calendar {calendar}" : "Ажурирали сте календар {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} је поделио календар {calendar} са вама", + "You shared calendar {calendar} with {user}" : "Поделили сте календар {calendar} са {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} је поделио календар {calendar} са {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} је укинуо дељење календара {calendar} са вама", + "You unshared calendar {calendar} from {user}" : "Укинули сте дељење календара {calendar} са {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} је укинуо дељење календара {calendar} са {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} је укинуо дељење календара {calendar} од себе", + "You shared calendar {calendar} with group {group}" : "Поделили сте календар {calendar} са групом {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} је поделио календар {calendar} са групом {group}", + "You unshared calendar {calendar} from group {group}" : "Укинули сте дељење календара {calendar} са групом {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} је укинуо дељење календара {calendar} са групом {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor} је направио догађај {event} у календару {calendar}", + "You created event {event} in calendar {calendar}" : "Креирали сте догађај {event} у календару {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} је обрисао догађај {event} из календара {calendar}", + "You deleted event {event} from calendar {calendar}" : "Обрисали сте догађај {event} из календара {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} је ажурирао догађај {event} у календару {calendar}", + "You updated event {event} in calendar {calendar}" : "Ажурирали сте догађај {event} у календару {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} је направио подсетник {todo} у листи {calendar}", + "You created todo {todo} in list {calendar}" : "Креирали сте подсетник {todo} у листи {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} је обрисао подсетник {todo} из листе {calendar}", + "You deleted todo {todo} from list {calendar}" : "Обрисали сте подсетник {todo} из листе {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} је ажурирао подсетник {todo} у листи {calendar}", + "You updated todo {todo} in list {calendar}" : "Ажурирали сте подсетник {todo} у листи {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} је обрисао подсетник {todo} из листе {calendar}", + "You solved todo {todo} in list {calendar}" : "Маркирали сте подсетник {todo} као готов у листи {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} је поново отворио подсетник {todo} у листи {calendar}", + "You reopened todo {todo} in list {calendar}" : "Поново сте отворили подсетник {todo} у листи {calendar}", + "A <strong>calendar</strong> was modified" : "<strong>Календар</strong> је измењен", + "A calendar <strong>event</strong> was modified" : "<strong>Догађај</strong> из календара је измењен", + "A calendar <strong>todo</strong> was modified" : "<strong>Подсетник</strong> из календара је измењен", + "Contact birthdays" : "Рођендани контаката", + "Personal" : "Лично", + "Contacts" : "Контакти", + "Technical details" : "Технички детаљи", + "Remote Address: %s" : "Удаљена адреса: %s", + "Request ID: %s" : "ИД захтева: %s" +}, +"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/dav/l10n/sr.json b/apps/dav/l10n/sr.json new file mode 100644 index 00000000000..613f034614b --- /dev/null +++ b/apps/dav/l10n/sr.json @@ -0,0 +1,47 @@ +{ "translations": { + "Calendar" : "Календар", + "Todos" : "Подсетници", + "{actor} created calendar {calendar}" : "{actor} је направио календар {calendar}", + "You created calendar {calendar}" : "Креирали сте календар {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} је обрисао календар {calendar}", + "You deleted calendar {calendar}" : "Обрисали сте календар {calendar}", + "{actor} updated calendar {calendar}" : "{actor} је ажурирао календар {calendar}", + "You updated calendar {calendar}" : "Ажурирали сте календар {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} је поделио календар {calendar} са вама", + "You shared calendar {calendar} with {user}" : "Поделили сте календар {calendar} са {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} је поделио календар {calendar} са {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} је укинуо дељење календара {calendar} са вама", + "You unshared calendar {calendar} from {user}" : "Укинули сте дељење календара {calendar} са {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} је укинуо дељење календара {calendar} са {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} је укинуо дељење календара {calendar} од себе", + "You shared calendar {calendar} with group {group}" : "Поделили сте календар {calendar} са групом {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} је поделио календар {calendar} са групом {group}", + "You unshared calendar {calendar} from group {group}" : "Укинули сте дељење календара {calendar} са групом {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} је укинуо дељење календара {calendar} са групом {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor} је направио догађај {event} у календару {calendar}", + "You created event {event} in calendar {calendar}" : "Креирали сте догађај {event} у календару {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} је обрисао догађај {event} из календара {calendar}", + "You deleted event {event} from calendar {calendar}" : "Обрисали сте догађај {event} из календара {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} је ажурирао догађај {event} у календару {calendar}", + "You updated event {event} in calendar {calendar}" : "Ажурирали сте догађај {event} у календару {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} је направио подсетник {todo} у листи {calendar}", + "You created todo {todo} in list {calendar}" : "Креирали сте подсетник {todo} у листи {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} је обрисао подсетник {todo} из листе {calendar}", + "You deleted todo {todo} from list {calendar}" : "Обрисали сте подсетник {todo} из листе {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} је ажурирао подсетник {todo} у листи {calendar}", + "You updated todo {todo} in list {calendar}" : "Ажурирали сте подсетник {todo} у листи {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} је обрисао подсетник {todo} из листе {calendar}", + "You solved todo {todo} in list {calendar}" : "Маркирали сте подсетник {todo} као готов у листи {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} је поново отворио подсетник {todo} у листи {calendar}", + "You reopened todo {todo} in list {calendar}" : "Поново сте отворили подсетник {todo} у листи {calendar}", + "A <strong>calendar</strong> was modified" : "<strong>Календар</strong> је измењен", + "A calendar <strong>event</strong> was modified" : "<strong>Догађај</strong> из календара је измењен", + "A calendar <strong>todo</strong> was modified" : "<strong>Подсетник</strong> из календара је измењен", + "Contact birthdays" : "Рођендани контаката", + "Personal" : "Лично", + "Contacts" : "Контакти", + "Technical details" : "Технички детаљи", + "Remote Address: %s" : "Удаљена адреса: %s", + "Request ID: %s" : "ИД захтева: %s" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +}
\ No newline at end of file diff --git a/apps/dav/l10n/tr.js b/apps/dav/l10n/tr.js index ad86392341e..e292cfa7d59 100644 --- a/apps/dav/l10n/tr.js +++ b/apps/dav/l10n/tr.js @@ -26,19 +26,19 @@ OC.L10N.register( "You deleted event {event} from calendar {calendar}" : "{calendar} takviminden {event} etkinliğini sildiniz", "{actor} updated event {event} in calendar {calendar}" : "{actor}, {calendar} takvimindeki {event} etkinliğini güncelledi", "You updated event {event} in calendar {calendar}" : "{calendar} takvimindeki {event} etkinliğini güncellediniz", - "{actor} created todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesine {todo} işini ekledi", - "You created todo {todo} in list {calendar}" : "{calendar} takvimi listesine {todo} işini eklediniz", - "{actor} deleted todo {todo} from list {calendar}" : "{actor}, {calendar} takvimi listesinden {todo} işini sildi", - "You deleted todo {todo} from list {calendar}" : "{calendar} takvimi listesinden {todo} işini sildiniz", - "{actor} updated todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} işini güncelledi", - "You updated todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} işini güncellediniz", - "{actor} solved todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} işini tamamladı", - "You solved todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} işini tamamladınız", - "{actor} reopened todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} işini yeniden başlattı", - "You reopened todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} işini yeniden başlattınız", + "{actor} created todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesine {todo} yapılacak işini ekledi", + "You created todo {todo} in list {calendar}" : "{calendar} takvimi listesine {todo} yapılacak işini eklediniz", + "{actor} deleted todo {todo} from list {calendar}" : "{actor}, {calendar} takvimi listesinden {todo} yapılacak işini sildi", + "You deleted todo {todo} from list {calendar}" : "{calendar} takvimi listesinden {todo} yapılacak işini sildiniz", + "{actor} updated todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} yapılacak işini güncelledi", + "You updated todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} yapılacak işini güncellediniz", + "{actor} solved todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} yapılacak işini tamamladı", + "You solved todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} yapılacak işini tamamladınız", + "{actor} reopened todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} yapılacak işini yeniden başlattı", + "You reopened todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} yapılacak işini yeniden başlattınız", "A <strong>calendar</strong> was modified" : "Bir <strong>takvim</strong> düzenlendi", - "A calendar <strong>event</strong> was modified" : "Bir <strong>etkinlik</strong> düzenlendi", - "A calendar <strong>todo</strong> was modified" : "Bir takvim <strong>işi</strong> düzenlendi", + "A calendar <strong>event</strong> was modified" : "Bir takvim <strong>etkinliği</strong> düzenlendi", + "A calendar <strong>todo</strong> was modified" : "Bir takvim <strong>yapılacak işi</strong> düzenlendi", "Contact birthdays" : "Kişi doğum günleri", "Personal" : "Kişisel", "Contacts" : "Kişiler", diff --git a/apps/dav/l10n/tr.json b/apps/dav/l10n/tr.json index a2f97bc2faf..f189e713ec5 100644 --- a/apps/dav/l10n/tr.json +++ b/apps/dav/l10n/tr.json @@ -24,19 +24,19 @@ "You deleted event {event} from calendar {calendar}" : "{calendar} takviminden {event} etkinliğini sildiniz", "{actor} updated event {event} in calendar {calendar}" : "{actor}, {calendar} takvimindeki {event} etkinliğini güncelledi", "You updated event {event} in calendar {calendar}" : "{calendar} takvimindeki {event} etkinliğini güncellediniz", - "{actor} created todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesine {todo} işini ekledi", - "You created todo {todo} in list {calendar}" : "{calendar} takvimi listesine {todo} işini eklediniz", - "{actor} deleted todo {todo} from list {calendar}" : "{actor}, {calendar} takvimi listesinden {todo} işini sildi", - "You deleted todo {todo} from list {calendar}" : "{calendar} takvimi listesinden {todo} işini sildiniz", - "{actor} updated todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} işini güncelledi", - "You updated todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} işini güncellediniz", - "{actor} solved todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} işini tamamladı", - "You solved todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} işini tamamladınız", - "{actor} reopened todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} işini yeniden başlattı", - "You reopened todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} işini yeniden başlattınız", + "{actor} created todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesine {todo} yapılacak işini ekledi", + "You created todo {todo} in list {calendar}" : "{calendar} takvimi listesine {todo} yapılacak işini eklediniz", + "{actor} deleted todo {todo} from list {calendar}" : "{actor}, {calendar} takvimi listesinden {todo} yapılacak işini sildi", + "You deleted todo {todo} from list {calendar}" : "{calendar} takvimi listesinden {todo} yapılacak işini sildiniz", + "{actor} updated todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} yapılacak işini güncelledi", + "You updated todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} yapılacak işini güncellediniz", + "{actor} solved todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} yapılacak işini tamamladı", + "You solved todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} yapılacak işini tamamladınız", + "{actor} reopened todo {todo} in list {calendar}" : "{actor}, {calendar} takvimi listesindeki {todo} yapılacak işini yeniden başlattı", + "You reopened todo {todo} in list {calendar}" : "{calendar} takvimi listesindeki {todo} yapılacak işini yeniden başlattınız", "A <strong>calendar</strong> was modified" : "Bir <strong>takvim</strong> düzenlendi", - "A calendar <strong>event</strong> was modified" : "Bir <strong>etkinlik</strong> düzenlendi", - "A calendar <strong>todo</strong> was modified" : "Bir takvim <strong>işi</strong> düzenlendi", + "A calendar <strong>event</strong> was modified" : "Bir takvim <strong>etkinliği</strong> düzenlendi", + "A calendar <strong>todo</strong> was modified" : "Bir takvim <strong>yapılacak işi</strong> düzenlendi", "Contact birthdays" : "Kişi doğum günleri", "Personal" : "Kişisel", "Contacts" : "Kişiler", diff --git a/apps/dav/lib/AppInfo/PluginManager.php b/apps/dav/lib/AppInfo/PluginManager.php new file mode 100644 index 00000000000..9cdf358c80e --- /dev/null +++ b/apps/dav/lib/AppInfo/PluginManager.php @@ -0,0 +1,170 @@ +<?php +/** + * @author Vincent Petry <pvince81@owncloud.com> + * + * @copyright Copyright (c) 2016, ownCloud GmbH. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program 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, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ +namespace OCA\DAV\AppInfo; + +use OCP\App\IAppManager; +use OC\ServerContainer; +use OCP\AppFramework\QueryException; + +/** + * Manager for DAV plugins from apps, used to register them + * to the Sabre server. + */ +class PluginManager { + + /** + * @var ServerContainer + */ + private $container; + + /** + * @var IAppManager + */ + private $appManager; + + /** + * App plugins + * + * @var array + */ + private $plugins = null; + + /** + * App collections + * + * @var array + */ + private $collections = null; + + /** + * Contstruct a PluginManager + * + * @param ServerContainer $container server container for resolving plugin classes + * @param IAppManager $appManager app manager to loading apps and their info + */ + public function __construct(ServerContainer $container, IAppManager $appManager) { + $this->container = $container; + $this->appManager = $appManager; + } + + /** + * Returns an array of app-registered plugins + * + * @return array + */ + public function getAppPlugins() { + if (null === $this->plugins) { + $this->populate(); + } + return $this->plugins; + } + + /** + * Returns an array of app-registered collections + * + * @return array + */ + public function getAppCollections() { + if (null === $this->collections) { + $this->populate(); + } + return $this->collections; + } + + /** + * Retrieve plugin and collection list and populate attributes + */ + private function populate() { + $this->plugins = []; + $this->collections = []; + foreach ($this->appManager->getInstalledApps() as $app) { + // load plugins and collections from info.xml + $info = $this->appManager->getAppInfo($app); + if (!isset($info['types']) || !in_array('dav', $info['types'], true)) { + continue; + } + // FIXME: switch to public API once available + // load app to make sure its classes are available + \OC_App::loadApp($app); + $this->loadSabrePluginsFromInfoXml($this->extractPluginList($info)); + $this->loadSabreCollectionsFromInfoXml($this->extractCollectionList($info)); + } + } + + private function extractPluginList(array $array) { + if (isset($array['sabre']) && is_array($array['sabre'])) { + if (isset($array['sabre']['plugins']) && is_array($array['sabre']['plugins'])) { + if (isset($array['sabre']['plugins']['plugin'])) { + $items = $array['sabre']['plugins']['plugin']; + if (!is_array($items)) { + $items = [$items]; + } + return $items; + } + } + } + return []; + } + + private function extractCollectionList(array $array) { + if (isset($array['sabre']) && is_array($array['sabre'])) { + if (isset($array['sabre']['collections']) && is_array($array['sabre']['collections'])) { + if (isset($array['sabre']['collections']['collection'])) { + $items = $array['sabre']['collections']['collection']; + if (!is_array($items)) { + $items = [$items]; + } + return $items; + } + } + } + return []; + } + + private function loadSabrePluginsFromInfoXml(array $plugins) { + foreach ($plugins as $plugin) { + try { + $this->plugins[] = $this->container->query($plugin); + } catch (QueryException $e) { + if (class_exists($plugin)) { + $this->plugins[] = new $plugin(); + } else { + throw new \Exception("Sabre plugin class '$plugin' is unknown and could not be loaded"); + } + } + } + } + + private function loadSabreCollectionsFromInfoXml(array $collections) { + foreach ($collections as $collection) { + try { + $this->collections[] = $this->container->query($collection); + } catch (QueryException $e) { + if (class_exists($collection)) { + $this->collections[] = new $collection(); + } else { + throw new \Exception("Sabre collection class '$collection' is unknown and could not be loaded"); + } + } + } + } + +} diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 83ef06f29e1..2c34f6d6d31 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -32,6 +32,7 @@ use OCP\DB\QueryBuilder\IQueryBuilder; use OCA\DAV\Connector\Sabre\Principal; use OCA\DAV\DAV\Sharing\Backend; use OCP\IDBConnection; +use OCP\IGroupManager; use OCP\IUser; use OCP\IUserManager; use OCP\Security\ISecureRandom; @@ -158,6 +159,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription * @param IDBConnection $db * @param Principal $principalBackend * @param IUserManager $userManager + * @param IGroupManager $groupManager * @param ISecureRandom $random * @param EventDispatcherInterface $dispatcher * @param bool $legacyEndpoint @@ -165,13 +167,14 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription public function __construct(IDBConnection $db, Principal $principalBackend, IUserManager $userManager, + IGroupManager $groupManager, ISecureRandom $random, EventDispatcherInterface $dispatcher, $legacyEndpoint = false) { $this->db = $db; $this->principalBackend = $principalBackend; $this->userManager = $userManager; - $this->sharingBackend = new Backend($this->db, $principalBackend, 'calendar'); + $this->sharingBackend = new Backend($this->db, $this->userManager, $groupManager, $principalBackend, 'calendar'); $this->random = $random; $this->dispatcher = $dispatcher; $this->legacyEndpoint = $legacyEndpoint; diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index 2e4acad6dfe..7c73a2cb941 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -33,6 +33,7 @@ use OCP\DB\QueryBuilder\IQueryBuilder; use OCA\DAV\DAV\Sharing\Backend; use OCA\DAV\DAV\Sharing\IShareable; use OCP\IDBConnection; +use OCP\IGroupManager; use OCP\IUser; use OCP\IUserManager; use PDO; @@ -88,17 +89,19 @@ class CardDavBackend implements BackendInterface, SyncSupport { * @param IDBConnection $db * @param Principal $principalBackend * @param IUserManager $userManager + * @param IGroupManager $groupManager * @param EventDispatcherInterface $dispatcher */ public function __construct(IDBConnection $db, Principal $principalBackend, IUserManager $userManager, + IGroupManager $groupManager, EventDispatcherInterface $dispatcher) { $this->db = $db; $this->principalBackend = $principalBackend; $this->userManager = $userManager; $this->dispatcher = $dispatcher; - $this->sharingBackend = new Backend($this->db, $principalBackend, 'addressbook'); + $this->sharingBackend = new Backend($this->db, $this->userManager, $groupManager, $principalBackend, 'addressbook'); } /** diff --git a/apps/dav/lib/Command/CreateCalendar.php b/apps/dav/lib/Command/CreateCalendar.php index 24990352fab..adc86faa190 100644 --- a/apps/dav/lib/Command/CreateCalendar.php +++ b/apps/dav/lib/Command/CreateCalendar.php @@ -79,7 +79,7 @@ class CreateCalendar extends Command { $dispatcher = \OC::$server->getEventDispatcher(); $name = $input->getArgument('name'); - $caldav = new CalDavBackend($this->dbConnection, $principalBackend, $this->userManager, $random, $dispatcher); + $caldav = new CalDavBackend($this->dbConnection, $principalBackend, $this->userManager, $this->groupManager, $random, $dispatcher); $caldav->createCalendar("principals/users/$user", $name, []); } } diff --git a/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php b/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php index ca2195fc65a..ba7ea13c548 100644 --- a/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php +++ b/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php @@ -27,28 +27,34 @@ namespace OCA\DAV\Connector\Sabre; +use OCA\DAV\Connector\Sabre\Exception\PasswordLoginForbidden; +use OCP\Files\StorageNotAvailableException; use OCP\ILogger; +use Sabre\DAV\Exception\Forbidden; +use Sabre\DAV\Exception\NotAuthenticated; +use Sabre\DAV\Exception\NotFound; +use Sabre\DAV\Exception\PreconditionFailed; use Sabre\DAV\Exception\ServiceUnavailable; class ExceptionLoggerPlugin extends \Sabre\DAV\ServerPlugin { protected $nonFatalExceptions = [ - 'Sabre\DAV\Exception\NotAuthenticated' => true, + NotAuthenticated::class => true, // If tokenauth can throw this exception (which is basically as // NotAuthenticated. So not fatal. - 'OCA\DAV\Connector\Sabre\Exception\PasswordLoginForbidden' => true, + PasswordLoginForbidden::class => true, // the sync client uses this to find out whether files exist, // so it is not always an error, log it as debug - 'Sabre\DAV\Exception\NotFound' => true, + NotFound::class => true, // this one mostly happens when the same file is uploaded at // exactly the same time from two clients, only one client // wins, the second one gets "Precondition failed" - 'Sabre\DAV\Exception\PreconditionFailed' => true, + PreconditionFailed::class => true, // forbidden can be expected when trying to upload to // read-only folders for example - 'Sabre\DAV\Exception\Forbidden' => true, + Forbidden::class => true, // Happens when an external storage or federated share is temporarily // not available - 'Sabre\DAV\Exception\StorageNotAvailableException' => true, + StorageNotAvailableException::class => true, ]; /** @var string */ diff --git a/apps/dav/lib/DAV/Sharing/Backend.php b/apps/dav/lib/DAV/Sharing/Backend.php index 6cc5e3b6f50..aa4b137f2b0 100644 --- a/apps/dav/lib/DAV/Sharing/Backend.php +++ b/apps/dav/lib/DAV/Sharing/Backend.php @@ -26,11 +26,17 @@ namespace OCA\DAV\DAV\Sharing; use OCA\DAV\Connector\Sabre\Principal; use OCP\IDBConnection; +use OCP\IGroupManager; +use OCP\IUserManager; class Backend { /** @var IDBConnection */ private $db; + /** @var IUserManager */ + private $userManager; + /** @var IGroupManager */ + private $groupManager; /** @var Principal */ private $principalBackend; /** @var string */ @@ -42,11 +48,15 @@ class Backend { /** * @param IDBConnection $db + * @param IUserManager $userManager + * @param IGroupManager $groupManager * @param Principal $principalBackend * @param string $resourceType */ - public function __construct(IDBConnection $db, Principal $principalBackend, $resourceType) { + public function __construct(IDBConnection $db, IUserManager $userManager, IGroupManager $groupManager, Principal $principalBackend, $resourceType) { $this->db = $db; + $this->userManager = $userManager; + $this->groupManager = $groupManager; $this->principalBackend = $principalBackend; $this->resourceType = $resourceType; } @@ -81,6 +91,18 @@ class Backend { return; } + $principal = explode('/', $parts[1], 3); + if (count($principal) !== 3 || $principal[0] !== 'principals' || !in_array($principal[1], ['users', 'groups'], true)) { + // Invalid principal + return; + } + + if (($principal[1] === 'users' && !$this->userManager->userExists($principal[2])) || + ($principal[1] === 'groups' && !$this->groupManager->groupExists($principal[2]))) { + // User or group does not exist + return; + } + // remove the share if it already exists $this->unshare($shareable, $element['href']); $access = self::ACCESS_READ; diff --git a/apps/dav/lib/Migration/Version1004Date20170926103422.php b/apps/dav/lib/Migration/Version1004Date20170926103422.php new file mode 100644 index 00000000000..76adc8fe6a1 --- /dev/null +++ b/apps/dav/lib/Migration/Version1004Date20170926103422.php @@ -0,0 +1,35 @@ +<?php +namespace OCA\DAV\Migration; + +use Doctrine\DBAL\Schema\Schema; +use OCP\Migration\BigIntMigration; +use OCP\Migration\SimpleMigrationStep; +use OCP\Migration\IOutput; + +/** + * Auto-generated migration step: Please modify to your needs! + */ +class Version1004Date20170926103422 extends BigIntMigration { + + /** + * @return array Returns an array with the following structure + * ['table1' => ['column1', 'column2'], ...] + * @since 13.0.0 + */ + protected function getColumnsByTable() { + return [ + 'addressbooks' => ['id'], + 'addressbookchanges' => ['id', 'addressbookid'], + 'calendars' => ['id'], + 'calendarchanges' => ['id', 'calendarid'], + 'calendarobjects' => ['id', 'calendarid'], + 'calendarobjects_props' => ['id', 'calendarid', 'objectid'], + 'calendarsubscriptions' => ['id'], + 'cards' => ['id', 'addressbookid'], + 'cards_properties' => ['id', 'addressbookid', 'cardid'], + 'dav_shares' => ['id', 'resourceid'], + 'schedulingobjects' => ['id'], + ]; + } + +} diff --git a/apps/dav/lib/RootCollection.php b/apps/dav/lib/RootCollection.php index a243ec6d00a..e4ba1f2c02a 100644 --- a/apps/dav/lib/RootCollection.php +++ b/apps/dav/lib/RootCollection.php @@ -41,15 +41,14 @@ class RootCollection extends SimpleCollection { $config = \OC::$server->getConfig(); $random = \OC::$server->getSecureRandom(); $userManager = \OC::$server->getUserManager(); + $groupManager = \OC::$server->getGroupManager(); $db = \OC::$server->getDatabaseConnection(); $dispatcher = \OC::$server->getEventDispatcher(); $userPrincipalBackend = new Principal( $userManager, - \OC::$server->getGroupManager() - ); - $groupPrincipalBackend = new GroupPrincipalBackend( - \OC::$server->getGroupManager() + $groupManager ); + $groupPrincipalBackend = new GroupPrincipalBackend($groupManager); // as soon as debug mode is enabled we allow listing of principals $disableListing = !$config->getSystemValue('debug', false); @@ -62,7 +61,7 @@ class RootCollection extends SimpleCollection { $systemPrincipals->disableListing = $disableListing; $filesCollection = new Files\RootCollection($userPrincipalBackend, 'principals/users'); $filesCollection->disableListing = $disableListing; - $caldavBackend = new CalDavBackend($db, $userPrincipalBackend, $userManager, $random, $dispatcher); + $caldavBackend = new CalDavBackend($db, $userPrincipalBackend, $userManager, $groupManager, $random, $dispatcher); $calendarRoot = new CalendarRoot($userPrincipalBackend, $caldavBackend, 'principals/users'); $calendarRoot->disableListing = $disableListing; $publicCalendarRoot = new PublicCalendarRoot($caldavBackend); @@ -71,28 +70,28 @@ class RootCollection extends SimpleCollection { $systemTagCollection = new SystemTag\SystemTagsByIdCollection( \OC::$server->getSystemTagManager(), \OC::$server->getUserSession(), - \OC::$server->getGroupManager() + $groupManager ); $systemTagRelationsCollection = new SystemTag\SystemTagsRelationsCollection( \OC::$server->getSystemTagManager(), \OC::$server->getSystemTagObjectMapper(), \OC::$server->getUserSession(), - \OC::$server->getGroupManager(), + $groupManager, \OC::$server->getEventDispatcher() ); $commentsCollection = new Comments\RootCollection( \OC::$server->getCommentsManager(), - \OC::$server->getUserManager(), + $userManager, \OC::$server->getUserSession(), \OC::$server->getEventDispatcher(), \OC::$server->getLogger() ); - $usersCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, \OC::$server->getUserManager(), $dispatcher); + $usersCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, $userManager, $groupManager, $dispatcher); $usersAddressBookRoot = new AddressBookRoot($userPrincipalBackend, $usersCardDavBackend, 'principals/users'); $usersAddressBookRoot->disableListing = $disableListing; - $systemCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, \OC::$server->getUserManager(), $dispatcher); + $systemCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, $userManager, $groupManager, $dispatcher); $systemAddressBookRoot = new AddressBookRoot(new SystemPrincipalBackend(), $systemCardDavBackend, 'principals/system'); $systemAddressBookRoot->disableListing = $disableListing; diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php index 6f3ab3971ef..162833951a3 100644 --- a/apps/dav/lib/Server.php +++ b/apps/dav/lib/Server.php @@ -55,8 +55,8 @@ use OCP\SabrePluginEvent; use Sabre\CardDAV\VCFExportPlugin; use Sabre\DAV\Auth\Plugin; use OCA\DAV\Connector\Sabre\TagsPlugin; -use Sabre\HTTP\Auth\Bearer; use SearchDAV\DAV\SearchPlugin; +use OCA\DAV\AppInfo\PluginManager; class Server { @@ -184,7 +184,7 @@ class Server { } // wait with registering these until auth is handled and the filesystem is setup - $this->server->on('beforeMethod', function () { + $this->server->on('beforeMethod', function () use ($root) { // custom properties plugin must be the last one $userSession = \OC::$server->getUserSession(); $user = $userSession->getUser(); @@ -252,6 +252,18 @@ class Server { ))); } } + + // register plugins from apps + $pluginManager = new PluginManager( + \OC::$server, + \OC::$server->getAppManager() + ); + foreach ($pluginManager->getAppPlugins() as $appPlugin) { + $this->server->addPlugin($appPlugin); + } + foreach ($pluginManager->getAppCollections() as $appCollection) { + $root->addChild($appCollection); + } }); } diff --git a/apps/dav/tests/unit/AppInfo/PluginManagerTest.php b/apps/dav/tests/unit/AppInfo/PluginManagerTest.php new file mode 100644 index 00000000000..5776b939123 --- /dev/null +++ b/apps/dav/tests/unit/AppInfo/PluginManagerTest.php @@ -0,0 +1,104 @@ +<?php +/** + * @author Vincent Petry <pvince81@owncloud.com> + * + * @copyright Copyright (c) 2016, ownCloud GmbH. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program 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, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OCA\DAV\Tests\unit\AppInfo; + +use Test\TestCase; +use OCP\App\IAppManager; +use OC\ServerContainer; +use OCA\DAV\AppInfo\PluginManager; + +/** + * Class PluginManagerTest + * + * @package OCA\DAV\Tests\Unit\AppInfo + */ +class PluginManagerTest extends TestCase { + public function test() { + $server = $this->createMock(ServerContainer::class); + + + $appManager = $this->createMock(IAppManager::class); + $appManager->method('getInstalledApps') + ->willReturn(['adavapp', 'adavapp2']); + + $appInfo1 = [ + 'types' => ['dav'], + 'sabre' => [ + 'plugins' => [ + 'plugin' => [ + '\OCA\DAV\ADavApp\PluginOne', + '\OCA\DAV\ADavApp\PluginTwo', + ], + ], + 'collections' => [ + 'collection' => [ + '\OCA\DAV\ADavApp\CollectionOne', + '\OCA\DAV\ADavApp\CollectionTwo', + ] + ], + ], + ]; + $appInfo2 = [ + 'types' => ['logging', 'dav'], + 'sabre' => [ + 'plugins' => [ + 'plugin' => '\OCA\DAV\ADavApp2\PluginOne', + ], + 'collections' => [ + 'collection' => '\OCA\DAV\ADavApp2\CollectionOne', + ], + ], + ]; + + $appManager->method('getAppInfo') + ->will($this->returnValueMap([ + ['adavapp', $appInfo1], + ['adavapp2', $appInfo2], + ])); + + $pluginManager = new PluginManager($server, $appManager); + + $server->method('query') + ->will($this->returnValueMap([ + ['\OCA\DAV\ADavApp\PluginOne', 'dummyplugin1'], + ['\OCA\DAV\ADavApp\PluginTwo', 'dummyplugin2'], + ['\OCA\DAV\ADavApp\CollectionOne', 'dummycollection1'], + ['\OCA\DAV\ADavApp\CollectionTwo', 'dummycollection2'], + ['\OCA\DAV\ADavApp2\PluginOne', 'dummy2plugin1'], + ['\OCA\DAV\ADavApp2\CollectionOne', 'dummy2collection1'], + ])); + + $expectedPlugins = [ + 'dummyplugin1', + 'dummyplugin2', + 'dummy2plugin1', + ]; + $expectedCollections = [ + 'dummycollection1', + 'dummycollection2', + 'dummy2collection1', + ]; + + $this->assertEquals($expectedPlugins, $pluginManager->getAppPlugins()); + $this->assertEquals($expectedCollections, $pluginManager->getAppCollections()); + } +} diff --git a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php index a7bf4432c64..3f3b744e5ab 100644 --- a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php @@ -24,6 +24,7 @@ namespace OCA\DAV\Tests\unit\CalDAV; use OCA\DAV\CalDAV\CalDavBackend; use OCA\DAV\Connector\Sabre\Principal; +use OCP\IGroupManager; use OCP\IUserManager; use OCP\Security\ISecureRandom; use Sabre\CalDAV\Xml\Property\SupportedCalendarComponentSet; @@ -37,7 +38,7 @@ use Test\TestCase; * * @package OCA\DAV\Tests\unit\CalDAV */ -abstract class AbstractCalDavBackendTest extends TestCase { +abstract class AbstractCalDavBackend extends TestCase { /** @var CalDavBackend */ protected $backend; @@ -46,6 +47,8 @@ abstract class AbstractCalDavBackendTest extends TestCase { protected $principal; /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ protected $userManager; + /** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $groupManager; /** @var EventDispatcherInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $dispatcher; @@ -61,6 +64,7 @@ abstract class AbstractCalDavBackendTest extends TestCase { parent::setUp(); $this->userManager = $this->createMock(IUserManager::class); + $this->groupManager = $this->createMock(IGroupManager::class); $this->dispatcher = $this->createMock(EventDispatcherInterface::class); $this->principal = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Principal') ->disableOriginalConstructor() @@ -77,7 +81,7 @@ abstract class AbstractCalDavBackendTest extends TestCase { $db = \OC::$server->getDatabaseConnection(); $this->random = \OC::$server->getSecureRandom(); - $this->backend = new CalDavBackend($db, $this->principal, $this->userManager, $this->random, $this->dispatcher); + $this->backend = new CalDavBackend($db, $this->principal, $this->userManager, $this->groupManager, $this->random, $this->dispatcher); $this->cleanUpBackend(); } diff --git a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php index fa298282d7e..50c8b39484e 100644 --- a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php @@ -42,7 +42,7 @@ use Sabre\DAVACL\IACL; * * @package OCA\DAV\Tests\unit\CalDAV */ -class CalDavBackendTest extends AbstractCalDavBackendTest { +class CalDavBackendTest extends AbstractCalDavBackend { public function testCalendarOperations() { @@ -130,6 +130,14 @@ class CalDavBackendTest extends AbstractCalDavBackendTest { return vsprintf($text, $parameters); })); + $this->userManager->expects($this->any()) + ->method('userExists') + ->willReturn(true); + + $this->groupManager->expects($this->any()) + ->method('groupExists') + ->willReturn(true); + $calendarId = $this->createTestCalendar(); $calendars = $this->backend->getCalendarsForUser(self::UNIT_TEST_USER); $this->assertCount(1, $calendars); diff --git a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php index eb9f9cd10d7..ec767f3dbd8 100644 --- a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php +++ b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php @@ -5,6 +5,7 @@ namespace OCA\DAV\Tests\unit\CalDAV; use OCA\DAV\CalDAV\Calendar; use OCA\DAV\CalDAV\PublicCalendar; use OCA\DAV\Connector\Sabre\Principal; +use OCP\IGroupManager; use OCP\IL10N; use OCA\DAV\CalDAV\CalDavBackend; use OCA\DAV\CalDAV\PublicCalendarRoot; @@ -33,6 +34,8 @@ class PublicCalendarRootTest extends TestCase { private $principal; /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ protected $userManager; + /** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $groupManager; /** @var ISecureRandom */ private $random; @@ -43,6 +46,7 @@ class PublicCalendarRootTest extends TestCase { $db = \OC::$server->getDatabaseConnection(); $this->principal = $this->createMock('OCA\DAV\Connector\Sabre\Principal'); $this->userManager = $this->createMock(IUserManager::class); + $this->groupManager = $this->createMock(IGroupManager::class); $this->random = \OC::$server->getSecureRandom(); $dispatcher = $this->createMock(EventDispatcherInterface::class); @@ -54,6 +58,7 @@ class PublicCalendarRootTest extends TestCase { $db, $this->principal, $this->userManager, + $this->groupManager, $this->random, $dispatcher ); diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php index 8ca7e8a33b1..992445392d5 100644 --- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php +++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php @@ -33,6 +33,7 @@ use OCA\DAV\CardDAV\CardDavBackend; use OCA\DAV\Connector\Sabre\Principal; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; +use OCP\IGroupManager; use OCP\IL10N; use OCP\IUserManager; use Sabre\DAV\PropPatch; @@ -60,6 +61,9 @@ class CardDavBackendTest extends TestCase { /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ private $userManager; + /** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ + private $groupManager; + /** @var EventDispatcherInterface|\PHPUnit_Framework_MockObject_MockObject */ private $dispatcher; @@ -80,6 +84,7 @@ class CardDavBackendTest extends TestCase { parent::setUp(); $this->userManager = $this->createMock(IUserManager::class); + $this->groupManager = $this->createMock(IGroupManager::class); $this->principal = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Principal') ->disableOriginalConstructor() ->setMethods(['getPrincipalByPath', 'getGroupMembership']) @@ -96,7 +101,7 @@ class CardDavBackendTest extends TestCase { $this->db = \OC::$server->getDatabaseConnection(); - $this->backend = new CardDavBackend($this->db, $this->principal, $this->userManager, $this->dispatcher); + $this->backend = new CardDavBackend($this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher); // start every test with a empty cards_properties and cards table $query = $this->db->getQueryBuilder(); $query->delete('cards_properties')->execute(); @@ -154,6 +159,14 @@ class CardDavBackendTest extends TestCase { public function testAddressBookSharing() { + $this->userManager->expects($this->any()) + ->method('userExists') + ->willReturn(true); + + $this->groupManager->expects($this->any()) + ->method('groupExists') + ->willReturn(true); + $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []); $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER); $this->assertEquals(1, count($books)); @@ -180,7 +193,7 @@ class CardDavBackendTest extends TestCase { /** @var CardDavBackend | \PHPUnit_Framework_MockObject_MockObject $backend */ $backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher]) ->setMethods(['updateProperties', 'purgeProperties'])->getMock(); // create a new address book @@ -253,7 +266,7 @@ class CardDavBackendTest extends TestCase { public function testMultiCard() { $this->backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher]) ->setMethods(['updateProperties'])->getMock(); // create a new address book @@ -299,7 +312,7 @@ class CardDavBackendTest extends TestCase { public function testDeleteWithoutCard() { $this->backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher]) ->setMethods([ 'getCardId', 'addChange', @@ -339,7 +352,7 @@ class CardDavBackendTest extends TestCase { public function testSyncSupport() { $this->backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher]) ->setMethods(['updateProperties'])->getMock(); // create a new address book @@ -362,32 +375,41 @@ class CardDavBackendTest extends TestCase { } public function testSharing() { + + $this->userManager->expects($this->any()) + ->method('userExists') + ->willReturn(true); + + $this->groupManager->expects($this->any()) + ->method('groupExists') + ->willReturn(true); + $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []); $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER); $this->assertEquals(1, count($books)); $l = $this->createMock(IL10N::class); $exampleBook = new AddressBook($this->backend, $books[0], $l); - $this->backend->updateShares($exampleBook, [['href' => 'principal:principals/best-friend']], []); + $this->backend->updateShares($exampleBook, [['href' => 'principal:' . self::UNIT_TEST_USER1]], []); $shares = $this->backend->getShares($exampleBook->getResourceId()); $this->assertEquals(1, count($shares)); // adding the same sharee again has no effect - $this->backend->updateShares($exampleBook, [['href' => 'principal:principals/best-friend']], []); + $this->backend->updateShares($exampleBook, [['href' => 'principal:' . self::UNIT_TEST_USER1]], []); $shares = $this->backend->getShares($exampleBook->getResourceId()); $this->assertEquals(1, count($shares)); - $books = $this->backend->getAddressBooksForUser('principals/best-friend'); + $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER1); $this->assertEquals(1, count($books)); - $this->backend->updateShares($exampleBook, [], ['principal:principals/best-friend']); + $this->backend->updateShares($exampleBook, [], ['principal:' . self::UNIT_TEST_USER1]); $shares = $this->backend->getShares($exampleBook->getResourceId()); $this->assertEquals(0, count($shares)); - $books = $this->backend->getAddressBooksForUser('principals/best-friend'); + $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER1); $this->assertEquals(0, count($books)); } @@ -398,7 +420,7 @@ class CardDavBackendTest extends TestCase { $cardId = 2; $backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher]) ->setMethods(['getCardId'])->getMock(); $backend->expects($this->any())->method('getCardId')->willReturn($cardId); diff --git a/apps/dav/tests/unit/ServerTest.php b/apps/dav/tests/unit/ServerTest.php index 19e75c7b24e..1b430b0f198 100644 --- a/apps/dav/tests/unit/ServerTest.php +++ b/apps/dav/tests/unit/ServerTest.php @@ -26,6 +26,7 @@ namespace OCA\DAV\Tests\unit; use OCA\DAV\Server; use OCP\IRequest; +use OCA\DAV\AppInfo\PluginManager; /** * Class ServerTest @@ -38,8 +39,7 @@ class ServerTest extends \Test\TestCase { public function test() { /** @var IRequest $r */ - $r = $this->getMockBuilder('\OCP\IRequest') - ->disableOriginalConstructor()->getMock(); + $r = $this->createMock(IRequest::class); $s = new Server($r, '/'); $this->assertInstanceOf('OCA\DAV\Server', $s); } diff --git a/apps/encryption/l10n/ca.js b/apps/encryption/l10n/ca.js index b9ca7f97565..208b2aebb11 100644 --- a/apps/encryption/l10n/ca.js +++ b/apps/encryption/l10n/ca.js @@ -1,23 +1,53 @@ OC.L10N.register( "encryption", { + "Missing recovery key password" : "Falta la clau de recuperació de contrasenya", + "Please repeat the recovery key password" : "Si us plau, repetiu la clau de recuperació de contrasenya", + "Repeated recovery key password does not match the provided recovery key password" : "La contrasenya de la clau de recuperació repetida no coincideix amb la contrasenya de clau de recuperació proporcionada", "Recovery key successfully enabled" : "La clau de recuperació s'ha activat", "Could not enable recovery key. Please check your recovery key password!" : "No s'ha pogut activar la clau de recuperació. Comproveu contrasenya de la clau de recuperació!", "Recovery key successfully disabled" : "La clau de recuperació s'ha descativat", "Could not disable recovery key. Please check your recovery key password!" : "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!", + "Missing parameters" : "Falten paràmetres", + "Please provide the old recovery password" : "Proporcioneu la contrasenya de recuperació antiga", "Please provide a new recovery password" : "Siusplau proporcioneu una nova contrasenya de recuperació", "Please repeat the new recovery password" : "Repetiu la nova contrasenya de recuperació", "Password successfully changed." : "La contrasenya s'ha canviat.", "Could not change the password. Maybe the old password was not correct." : "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.", + "Recovery Key disabled" : "Clau de recuperació desactivada", + "Recovery Key enabled" : "Clau de recuperació activada", + "Could not enable the recovery key, please try again or contact your administrator" : "No es pot activar la clau de recuperació, torneu-ho a intentar o poseu-vos en contacte amb l'administrador", + "Could not update the private key password." : "No s'ha pogut actualitzar la contrasenya de la clau privada.", + "The old password was not correct, please try again." : "La contrasenya antiga no es correcta, Si us plau, Intenteu-ho de nou.", + "The current log-in password was not correct, please try again." : "La contrasenya d'inici de sessió actual no era correcta, torneu-ho a provar.", "Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.", - "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Necessiteu migrar les claus de xifratge des del xifratge antic (ownCloud <= 8.0) al nou. Si us plau, executeu 'encryption d'occ: migrate' o poseu-vos en contacte amb l'administrador", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clau privada no vàlida per a l'aplicació de xifrat. Actualitzeu la contrasenya de la clau privada a la vostra configuració personal per recuperar l'accés als vostres fitxers xifrats.", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "L'aplicació de xifrat està habilitada, però les vostres claus no s'inicialitzen. Tanqueu la sessió d'inici de sessió i torneu a iniciar sessió.", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Activeu el xifratge del servidor en la configuració de l'administrador per poder utilitzar el mòdul de xifratge.", + "Encryption app is enabled and ready" : "L'aplicació de xifrat està habilitada i preparada", + "Bad Signature" : "Signatura incorrecta", + "Missing Signature" : "Falta Signatura", + "one-time password for server-side-encryption" : "contrasenya única per al xifrat del costat del servidor", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot llegir aquest fitxer, probablement aquest sigui un fitxer compartit. Demana al propietari del fitxer que torni a compartir el fitxer amb tu.", "The share will expire on %s." : "La compartició venç el %s.", "Cheers!" : "Salut!", + "Default encryption module" : "Mòdul de xifrat per defecte", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", + "Encrypt the home storage" : "Xifra l'emmagatzematge de casa", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Si activeu aquesta opció xifra tots els fitxers emmagatzemats a l'emmagatzematge principal, en cas contrari, només es codificaran els fitxers en emmagatzematge extern", + "Enable recovery key" : "Activa la clau de recuperació", + "Disable recovery key" : "Desactiva la clau de recuperació", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clau de recuperació és una clau de xifrat addicional que s'utilitza per xifrar fitxers. Permet la recuperació dels fitxers d'un usuari si l'usuari s'oblida de la seva contrasenya.", "Recovery key password" : "Clau de recuperació de la contrasenya", + "Repeat recovery key password" : "Repetiu la contrasenya de la clau de recuperació", "Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:", + "Old recovery key password" : "Contrasenya antiga de clau de recuperació", + "New recovery key password" : "Nova contrasenya de clau de recuperació", + "Repeat new recovery key password" : "Repetiu la contrasenya de la clau de recuperació nova", "Change Password" : "Canvia la contrasenya", + "Basic encryption module" : "Mòdul bàsic de xifratge", "Your private key password no longer matches your log-in password." : "La clau privada ja no es correspon amb la contrasenya d'accés:", "Set your old private key password to your current log-in password:" : "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:", " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recordeu la contrasenya anterior podeu demanar a l'administrador que recuperi els vostres fitxers.", @@ -27,6 +57,7 @@ OC.L10N.register( "Enable password recovery:" : "Habilita la recuperació de contrasenya:", "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya", "Enabled" : "Activat", - "Disabled" : "Desactivat" + "Disabled" : "Desactivat", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/encryption/l10n/ca.json b/apps/encryption/l10n/ca.json index cedebee12c0..1b02eea2feb 100644 --- a/apps/encryption/l10n/ca.json +++ b/apps/encryption/l10n/ca.json @@ -1,21 +1,51 @@ { "translations": { + "Missing recovery key password" : "Falta la clau de recuperació de contrasenya", + "Please repeat the recovery key password" : "Si us plau, repetiu la clau de recuperació de contrasenya", + "Repeated recovery key password does not match the provided recovery key password" : "La contrasenya de la clau de recuperació repetida no coincideix amb la contrasenya de clau de recuperació proporcionada", "Recovery key successfully enabled" : "La clau de recuperació s'ha activat", "Could not enable recovery key. Please check your recovery key password!" : "No s'ha pogut activar la clau de recuperació. Comproveu contrasenya de la clau de recuperació!", "Recovery key successfully disabled" : "La clau de recuperació s'ha descativat", "Could not disable recovery key. Please check your recovery key password!" : "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!", + "Missing parameters" : "Falten paràmetres", + "Please provide the old recovery password" : "Proporcioneu la contrasenya de recuperació antiga", "Please provide a new recovery password" : "Siusplau proporcioneu una nova contrasenya de recuperació", "Please repeat the new recovery password" : "Repetiu la nova contrasenya de recuperació", "Password successfully changed." : "La contrasenya s'ha canviat.", "Could not change the password. Maybe the old password was not correct." : "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.", + "Recovery Key disabled" : "Clau de recuperació desactivada", + "Recovery Key enabled" : "Clau de recuperació activada", + "Could not enable the recovery key, please try again or contact your administrator" : "No es pot activar la clau de recuperació, torneu-ho a intentar o poseu-vos en contacte amb l'administrador", + "Could not update the private key password." : "No s'ha pogut actualitzar la contrasenya de la clau privada.", + "The old password was not correct, please try again." : "La contrasenya antiga no es correcta, Si us plau, Intenteu-ho de nou.", + "The current log-in password was not correct, please try again." : "La contrasenya d'inici de sessió actual no era correcta, torneu-ho a provar.", "Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.", - "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Necessiteu migrar les claus de xifratge des del xifratge antic (ownCloud <= 8.0) al nou. Si us plau, executeu 'encryption d'occ: migrate' o poseu-vos en contacte amb l'administrador", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clau privada no vàlida per a l'aplicació de xifrat. Actualitzeu la contrasenya de la clau privada a la vostra configuració personal per recuperar l'accés als vostres fitxers xifrats.", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "L'aplicació de xifrat està habilitada, però les vostres claus no s'inicialitzen. Tanqueu la sessió d'inici de sessió i torneu a iniciar sessió.", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Activeu el xifratge del servidor en la configuració de l'administrador per poder utilitzar el mòdul de xifratge.", + "Encryption app is enabled and ready" : "L'aplicació de xifrat està habilitada i preparada", + "Bad Signature" : "Signatura incorrecta", + "Missing Signature" : "Falta Signatura", + "one-time password for server-side-encryption" : "contrasenya única per al xifrat del costat del servidor", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot llegir aquest fitxer, probablement aquest sigui un fitxer compartit. Demana al propietari del fitxer que torni a compartir el fitxer amb tu.", "The share will expire on %s." : "La compartició venç el %s.", "Cheers!" : "Salut!", + "Default encryption module" : "Mòdul de xifrat per defecte", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.", + "Encrypt the home storage" : "Xifra l'emmagatzematge de casa", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Si activeu aquesta opció xifra tots els fitxers emmagatzemats a l'emmagatzematge principal, en cas contrari, només es codificaran els fitxers en emmagatzematge extern", + "Enable recovery key" : "Activa la clau de recuperació", + "Disable recovery key" : "Desactiva la clau de recuperació", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clau de recuperació és una clau de xifrat addicional que s'utilitza per xifrar fitxers. Permet la recuperació dels fitxers d'un usuari si l'usuari s'oblida de la seva contrasenya.", "Recovery key password" : "Clau de recuperació de la contrasenya", + "Repeat recovery key password" : "Repetiu la contrasenya de la clau de recuperació", "Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:", + "Old recovery key password" : "Contrasenya antiga de clau de recuperació", + "New recovery key password" : "Nova contrasenya de clau de recuperació", + "Repeat new recovery key password" : "Repetiu la contrasenya de la clau de recuperació nova", "Change Password" : "Canvia la contrasenya", + "Basic encryption module" : "Mòdul bàsic de xifratge", "Your private key password no longer matches your log-in password." : "La clau privada ja no es correspon amb la contrasenya d'accés:", "Set your old private key password to your current log-in password:" : "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:", " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recordeu la contrasenya anterior podeu demanar a l'administrador que recuperi els vostres fitxers.", @@ -25,6 +55,7 @@ "Enable password recovery:" : "Habilita la recuperació de contrasenya:", "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya", "Enabled" : "Activat", - "Disabled" : "Desactivat" + "Disabled" : "Desactivat", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/encryption/l10n/sr.js b/apps/encryption/l10n/sr.js index d875adebf2d..f41cc4ffeb6 100644 --- a/apps/encryption/l10n/sr.js +++ b/apps/encryption/l10n/sr.js @@ -17,15 +17,28 @@ OC.L10N.register( "Recovery Key disabled" : "Кључ за опоравак искључен", "Recovery Key enabled" : "Кључ за опоравак укључен", "Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ за опоравак. Покушајте поново или контактирајте администратора", - "Could not update the private key password." : "Не могу да ажирирам лозинку личног кључа.", + "Could not update the private key password." : "Не могу да ажурирам лозинку тајног кључа.", "The old password was not correct, please try again." : "Стара лозинка није исправна. Покушајте поново.", "The current log-in password was not correct, please try again." : "Тренутна лозинка за пријаву није исправна. Покушајте поново.", "Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) у нови. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са вама.", - "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да читам фајл. Вероватно је дељен. Питајте власника да га поново подели са вама.", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан тајни кључ за апликацију шифровања. Ажурирајте Ваш тајни кључ у личним подешавањима да вратите назад приступ шифрованим фајловима.", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Апликација за шифровање је укључена, али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Укључите шифровање на страни сервера и администраторским подешавањима да бисте користили модул за шифровање.", + "Encryption app is enabled and ready" : "Апликација за шифровање је укључена и спремна", + "Bad Signature" : "Лош потпис", + "Missing Signature" : "Недостаје потпис", + "one-time password for server-side-encryption" : "једнокрана лозинка за шифровање на серверској страни", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са Вама.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да читам фајл. Вероватно је дељен. Питајте власника да га поново подели са Вама.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Поштовање,\n\nадминистратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком '%s'.\n\nУлогујте се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним подешавањима и ажурирајте Вашу лозинку за шифровање тако што унесете ову лозинку у поље 'стара лозинка за пријаву' и Вашу тренутно лозинку за пријављивање.\n", "The share will expire on %s." : "Дељење истиче %s.", - "Cheers!" : "Здраво!", + "Cheers!" : "Поздрав!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Поштовање,<br><br>администратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком <strong>%s</strong>.<br><br>Улогујте се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним подешавањима и ажурирајте Вашу лозинку за шифровање тако што унесете ову лозинку у поље 'стара лозинка за пријаву' и Вашу тренутно лозинку за пријављивање.<br><br>", + "Default encryption module" : "Подразумевани модул за шифровање", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација за шифровање је укључена, али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", + "Encrypt the home storage" : "Шифрујте Ваше главно складиште", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Укључивањем ове опције ћете шифровати све фајлове на главном складишту, а у супротном ће само фајловим на спољашњем складишту бити шифровани", "Enable recovery key" : "Омогући кључ за опоравак", "Disable recovery key" : "Онемогући кључ за опоравак", "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.", @@ -36,6 +49,7 @@ OC.L10N.register( "New recovery key password" : "Нова лозинка кључа за опоравак", "Repeat new recovery key password" : "Поновите нову лозинку кључа за опоравак", "Change Password" : "Измени лозинку", + "Basic encryption module" : "Основни модул за шифровање", "Your private key password no longer matches 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." : "Ако се не сећате старе лозинке, можете затражити од администратора да опорави ваше фајлове.", @@ -44,8 +58,8 @@ OC.L10N.register( "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" : "Укључивање ове опције омогућиће поновно добијање приступа вашим шифрованим фајловима у случају губитка лозинке", - "Enabled" : "укључено", - "Disabled" : "искључено", + "Enabled" : "Укључено", + "Disabled" : "Искључено", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите." }, "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/encryption/l10n/sr.json b/apps/encryption/l10n/sr.json index 69a73d1a6c2..316dd670947 100644 --- a/apps/encryption/l10n/sr.json +++ b/apps/encryption/l10n/sr.json @@ -15,15 +15,28 @@ "Recovery Key disabled" : "Кључ за опоравак искључен", "Recovery Key enabled" : "Кључ за опоравак укључен", "Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ за опоравак. Покушајте поново или контактирајте администратора", - "Could not update the private key password." : "Не могу да ажирирам лозинку личног кључа.", + "Could not update the private key password." : "Не могу да ажурирам лозинку тајног кључа.", "The old password was not correct, please try again." : "Стара лозинка није исправна. Покушајте поново.", "The current log-in password was not correct, please try again." : "Тренутна лозинка за пријаву није исправна. Покушајте поново.", "Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) у нови. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са вама.", - "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да читам фајл. Вероватно је дељен. Питајте власника да га поново подели са вама.", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан тајни кључ за апликацију шифровања. Ажурирајте Ваш тајни кључ у личним подешавањима да вратите назад приступ шифрованим фајловима.", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Апликација за шифровање је укључена, али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Укључите шифровање на страни сервера и администраторским подешавањима да бисте користили модул за шифровање.", + "Encryption app is enabled and ready" : "Апликација за шифровање је укључена и спремна", + "Bad Signature" : "Лош потпис", + "Missing Signature" : "Недостаје потпис", + "one-time password for server-side-encryption" : "једнокрана лозинка за шифровање на серверској страни", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са Вама.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да читам фајл. Вероватно је дељен. Питајте власника да га поново подели са Вама.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Поштовање,\n\nадминистратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком '%s'.\n\nУлогујте се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним подешавањима и ажурирајте Вашу лозинку за шифровање тако што унесете ову лозинку у поље 'стара лозинка за пријаву' и Вашу тренутно лозинку за пријављивање.\n", "The share will expire on %s." : "Дељење истиче %s.", - "Cheers!" : "Здраво!", + "Cheers!" : "Поздрав!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Поштовање,<br><br>администратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком <strong>%s</strong>.<br><br>Улогујте се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним подешавањима и ажурирајте Вашу лозинку за шифровање тако што унесете ову лозинку у поље 'стара лозинка за пријаву' и Вашу тренутно лозинку за пријављивање.<br><br>", + "Default encryption module" : "Подразумевани модул за шифровање", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација за шифровање је укључена, али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", + "Encrypt the home storage" : "Шифрујте Ваше главно складиште", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Укључивањем ове опције ћете шифровати све фајлове на главном складишту, а у супротном ће само фајловим на спољашњем складишту бити шифровани", "Enable recovery key" : "Омогући кључ за опоравак", "Disable recovery key" : "Онемогући кључ за опоравак", "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.", @@ -34,6 +47,7 @@ "New recovery key password" : "Нова лозинка кључа за опоравак", "Repeat new recovery key password" : "Поновите нову лозинку кључа за опоравак", "Change Password" : "Измени лозинку", + "Basic encryption module" : "Основни модул за шифровање", "Your private key password no longer matches 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." : "Ако се не сећате старе лозинке, можете затражити од администратора да опорави ваше фајлове.", @@ -42,8 +56,8 @@ "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" : "Укључивање ове опције омогућиће поновно добијање приступа вашим шифрованим фајловима у случају губитка лозинке", - "Enabled" : "укључено", - "Disabled" : "искључено", + "Enabled" : "Укључено", + "Disabled" : "Искључено", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/federatedfilesharing/l10n/ca.js b/apps/federatedfilesharing/l10n/ca.js index 1ebf46ddf77..6f17c20b08e 100644 --- a/apps/federatedfilesharing/l10n/ca.js +++ b/apps/federatedfilesharing/l10n/ca.js @@ -2,23 +2,57 @@ OC.L10N.register( "federatedfilesharing", { "Federated sharing" : "Compartició federada", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Voleu afegir la compartició remota {nom} des de {owner}@{remote}?", + "Remote share" : "Compartició remota", + "Remote share password" : "Contrasenya de compartició remota", + "Cancel" : "Cancel·la", + "Add remote share" : "Afegeix compartició remota", + "Copy" : "Copia", + "Copied!" : "Copiat!", + "Not supported!" : "No soportat!", + "Press ⌘-C to copy." : "Prem ⌘-C per copiar.", + "Press Ctrl-C to copy." : "Prem Ctrl-C per copiar.", "Invalid Federated Cloud ID" : "ID de núvol federat invàlid", + "Server to server sharing is not enabled on this server" : "La compartició entre servidors no està activada en aquest servidor", + "Couldn't establish a federated share." : "No s'ha pogut establir una part federada.", + "Couldn't establish a federated share, maybe the password was wrong." : "No s'ha pogut establir una acció compartida federada, potser la contrasenya ha estat incorrecta.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "S'ha enviat la sol·licitud de participació federada, rebràs una invitació. Comproveu les vostres notificacions.", + "The mountpoint name contains invalid characters." : "El nom del punt de muntatge conté caràcters no vàlids.", + "Not allowed to create a federated share with the owner." : "No es permet crear una compartida federada amb el propietari.", + "Invalid or untrusted SSL certificate" : "El certificat SSL és invàlid o no és fiable", + "Could not authenticate to remote share, password might be wrong" : "No s'ha pogut autenticar per compartir de manera remota, la contrasenya podria estar equivocada", + "Storage not valid" : "Emmagatzemament no vàlid", + "Federated share added" : "S'ha afegit una part federada", + "Couldn't add remote share" : "No s'ha pogut afegir una compartició remota", "Sharing %s failed, because this item is already shared with %s" : "Ha fallat en compartir %s, perquè l'element ja està compartit amb %s", "Not allowed to create a federated share with the same user" : "No està permés crear una compartició federada amb el mateix usuari", "File is already shared with %s" : "El fitxer ja està compartit amb %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "La compartició de %s ha fallat, no es pot trobar %s, potser el servidor està actualment innacessible.", - "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Has rebut \"/%3$s\" com una compartició remota des de %1$s (de part de %2$s)", - "You received \"/%3$s\" as a remote share from %1$s" : "Has rebut \"/%3$s\" com una compartició remota de %1$s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "S'ha produït un error en compartir%s, no s'ha pogut trobar%s, potser el servidor no estigui disponible o s'utilitzi un certificat autofirmat.", + "Could not find share" : "No s'ha pogut trobar la compartició", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Has rebut \"/%3$s\" com una compartició remota des de %1$s (de part de %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has rebut {share} com un recompte remot de {user} (en nom de {nom})", + "You received \"%3$s\" as a remote share from %1$s" : "Has rebut \"/%3$s\" com una compartició remota de %1$s", + "You received {share} as a remote share from {user}" : "Has rebut {share} com a recompte remot de {user}", "Accept" : "Acceptar", "Decline" : "Denegar", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Compartiu amb mi a través de la meva #Nextcloud Federated Cloud Id, vegeu%s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Compartiu amb mi a través de la meva #Nextcloud Federated Cloud ID", + "Sharing" : "Compartir", "Federated Cloud Sharing" : "Compartició federada de núvol", "Open documentation" : "Obre la documentació", + "Adjust how people can share between servers." : "Ajusteu com les persones poden compartir entre servidors.", "Allow users on this server to send shares to other servers" : "Permet als usuaris d'aquest servidor enviar comparticions a d'altres servidors", "Allow users on this server to receive shares from other servers" : "Permet als usuaris d'aquest servidor rebre comparticions a d'altres servidors", + "Search global and public address book for users" : "Cerca llibreta d'adreces global i pública per als usuaris", + "Allow users to publish their data to a global and public address book" : "Permetre als usuaris publicar les seves dades en una llibreta d'adreces global i pública", "Federated Cloud" : "Núvol federat", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Podeu compartir amb qualsevol persona que usi Nextcloud, ownCloud vs Pydio! Acaba de posar el seu identificador de núvol federat al diàleg d'accions. Sembla person@cloud.example.com", "Your Federated Cloud ID:" : "El teu ID de Núvol Federat:", - "Share it:" : "Comparteix-lo:", + "Share it so your friends can share files with you:" : "Compartiu-lo perquè els vostres amics puguin compartir fitxers amb vosaltres:", "Add to your website" : "Afegeix a la teva pàgina web", - "HTML Code:" : "Codi HTML:" + "Share with me via Nextcloud" : "Comparteix amb mi a través de Nextcloud", + "HTML Code:" : "Codi HTML:", + "Search global and public address book for users and let local users publish their data" : "Busqueu llibreta d'adreces global i pública per als usuaris i deixeu que els usuaris locals publiquin les seves dades", + "Share it:" : "Comparteix-lo:" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/federatedfilesharing/l10n/ca.json b/apps/federatedfilesharing/l10n/ca.json index e95724117f9..61f816eb2da 100644 --- a/apps/federatedfilesharing/l10n/ca.json +++ b/apps/federatedfilesharing/l10n/ca.json @@ -1,22 +1,56 @@ { "translations": { "Federated sharing" : "Compartició federada", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Voleu afegir la compartició remota {nom} des de {owner}@{remote}?", + "Remote share" : "Compartició remota", + "Remote share password" : "Contrasenya de compartició remota", + "Cancel" : "Cancel·la", + "Add remote share" : "Afegeix compartició remota", + "Copy" : "Copia", + "Copied!" : "Copiat!", + "Not supported!" : "No soportat!", + "Press ⌘-C to copy." : "Prem ⌘-C per copiar.", + "Press Ctrl-C to copy." : "Prem Ctrl-C per copiar.", "Invalid Federated Cloud ID" : "ID de núvol federat invàlid", + "Server to server sharing is not enabled on this server" : "La compartició entre servidors no està activada en aquest servidor", + "Couldn't establish a federated share." : "No s'ha pogut establir una part federada.", + "Couldn't establish a federated share, maybe the password was wrong." : "No s'ha pogut establir una acció compartida federada, potser la contrasenya ha estat incorrecta.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "S'ha enviat la sol·licitud de participació federada, rebràs una invitació. Comproveu les vostres notificacions.", + "The mountpoint name contains invalid characters." : "El nom del punt de muntatge conté caràcters no vàlids.", + "Not allowed to create a federated share with the owner." : "No es permet crear una compartida federada amb el propietari.", + "Invalid or untrusted SSL certificate" : "El certificat SSL és invàlid o no és fiable", + "Could not authenticate to remote share, password might be wrong" : "No s'ha pogut autenticar per compartir de manera remota, la contrasenya podria estar equivocada", + "Storage not valid" : "Emmagatzemament no vàlid", + "Federated share added" : "S'ha afegit una part federada", + "Couldn't add remote share" : "No s'ha pogut afegir una compartició remota", "Sharing %s failed, because this item is already shared with %s" : "Ha fallat en compartir %s, perquè l'element ja està compartit amb %s", "Not allowed to create a federated share with the same user" : "No està permés crear una compartició federada amb el mateix usuari", "File is already shared with %s" : "El fitxer ja està compartit amb %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "La compartició de %s ha fallat, no es pot trobar %s, potser el servidor està actualment innacessible.", - "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Has rebut \"/%3$s\" com una compartició remota des de %1$s (de part de %2$s)", - "You received \"/%3$s\" as a remote share from %1$s" : "Has rebut \"/%3$s\" com una compartició remota de %1$s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "S'ha produït un error en compartir%s, no s'ha pogut trobar%s, potser el servidor no estigui disponible o s'utilitzi un certificat autofirmat.", + "Could not find share" : "No s'ha pogut trobar la compartició", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Has rebut \"/%3$s\" com una compartició remota des de %1$s (de part de %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has rebut {share} com un recompte remot de {user} (en nom de {nom})", + "You received \"%3$s\" as a remote share from %1$s" : "Has rebut \"/%3$s\" com una compartició remota de %1$s", + "You received {share} as a remote share from {user}" : "Has rebut {share} com a recompte remot de {user}", "Accept" : "Acceptar", "Decline" : "Denegar", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Compartiu amb mi a través de la meva #Nextcloud Federated Cloud Id, vegeu%s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Compartiu amb mi a través de la meva #Nextcloud Federated Cloud ID", + "Sharing" : "Compartir", "Federated Cloud Sharing" : "Compartició federada de núvol", "Open documentation" : "Obre la documentació", + "Adjust how people can share between servers." : "Ajusteu com les persones poden compartir entre servidors.", "Allow users on this server to send shares to other servers" : "Permet als usuaris d'aquest servidor enviar comparticions a d'altres servidors", "Allow users on this server to receive shares from other servers" : "Permet als usuaris d'aquest servidor rebre comparticions a d'altres servidors", + "Search global and public address book for users" : "Cerca llibreta d'adreces global i pública per als usuaris", + "Allow users to publish their data to a global and public address book" : "Permetre als usuaris publicar les seves dades en una llibreta d'adreces global i pública", "Federated Cloud" : "Núvol federat", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Podeu compartir amb qualsevol persona que usi Nextcloud, ownCloud vs Pydio! Acaba de posar el seu identificador de núvol federat al diàleg d'accions. Sembla person@cloud.example.com", "Your Federated Cloud ID:" : "El teu ID de Núvol Federat:", - "Share it:" : "Comparteix-lo:", + "Share it so your friends can share files with you:" : "Compartiu-lo perquè els vostres amics puguin compartir fitxers amb vosaltres:", "Add to your website" : "Afegeix a la teva pàgina web", - "HTML Code:" : "Codi HTML:" + "Share with me via Nextcloud" : "Comparteix amb mi a través de Nextcloud", + "HTML Code:" : "Codi HTML:", + "Search global and public address book for users and let local users publish their data" : "Busqueu llibreta d'adreces global i pública per als usuaris i deixeu que els usuaris locals publiquin les seves dades", + "Share it:" : "Comparteix-lo:" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/federatedfilesharing/l10n/ru.js b/apps/federatedfilesharing/l10n/ru.js index 24931800c9b..16443874c29 100644 --- a/apps/federatedfilesharing/l10n/ru.js +++ b/apps/federatedfilesharing/l10n/ru.js @@ -27,12 +27,12 @@ OC.L10N.register( "Sharing %s failed, because this item is already shared with %s" : "Не удалось поделиться «%s», пользователю%s уже предоставлен доступ к этому элементу", "Not allowed to create a federated share with the same user" : "Не допускается создание федеративного общего ресурса с тем же пользователем", "File is already shared with %s" : "Доступ к файлу уже предоставлен %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Не удалось поделиться «%s», не удалось найти %s, возможно, сервер не доступен или использует само-подписанный сертификат.", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Не удалось поделиться «%s», не удалось найти %s, возможно, сервер недоступен или использует самоподписанный сертификат.", "Could not find share" : "Не удалось найти общий ресурс", "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Вы получили «%3$s» в качестве удалённого ресурса из %1$s (от имени %2$s)", "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Вы получили «{share}» в качестве удалённого ресурса от {user} (от имени {behalf})", "You received \"%3$s\" as a remote share from %1$s" : "Вы получили «%3$s» в качестве удалённого ресурса из %1$s", - "You received {share} as a remote share from {user}" : "Вы получили «{share}» в качестве удалённого ресурса от {user}", + "You received {share} as a remote share from {user}" : "Вы получили {share} в качестве удалённого ресурса от {user}", "Accept" : "Принять", "Decline" : "Отклонить", "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Поделитесь со мной через мой #Nextcloud ID в федерации облачных хранилищ, смотрите %s", @@ -44,15 +44,15 @@ OC.L10N.register( "Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов", "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов", "Search global and public address book for users" : "Искать пользователей в глобальной и открытой адресной книге", - "Allow users to publish their data to a global and public address book" : "Резрешить пользователям публиковать свои данные в глобальной и общедосупной адресной книге", + "Allow users to publish their data to a global and public address book" : "Разрешить пользователям публиковать свои данные в глобальной и общедоступной адресной книге", "Federated Cloud" : "Федерация облачных хранилищ", "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Можно поделиться с любым пользователем Nextcloud, ownCloud или Pydio! Просто введите его идентификатор федеративного облачного хранилища в диалоге предоставления общего доступа. Идентификатор указывается в виде «person@cloud.example.com».", "Your Federated Cloud ID:" : "Ваш ID в федерации облачных хранилищ:", - "Share it so your friends can share files with you:" : "Сообщите его друзьям, что бы они могли поделиться с вами файлами:", + "Share it so your friends can share files with you:" : "Сообщите его друзьям, чтобы они могли поделиться с вами файлами:", "Add to your website" : "Добавить к себе на сайт", "Share with me via Nextcloud" : "Поделитесь со мной через Nextcloud", "HTML Code:" : "HTML код:", - "Search global and public address book for users and let local users publish their data" : "Поиск пользователей в глобальной и общедоступной адресной книге и резрешение публикации своих данных локальным пользователям ", + "Search global and public address book for users and let local users publish their data" : "Поиск пользователей в глобальной и общедоступной адресной книге и разрешение публикации своих данных локальным пользователям ", "Share it:" : "Поделиться:" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/federatedfilesharing/l10n/ru.json b/apps/federatedfilesharing/l10n/ru.json index f4bf96db775..b54c38a5339 100644 --- a/apps/federatedfilesharing/l10n/ru.json +++ b/apps/federatedfilesharing/l10n/ru.json @@ -25,12 +25,12 @@ "Sharing %s failed, because this item is already shared with %s" : "Не удалось поделиться «%s», пользователю%s уже предоставлен доступ к этому элементу", "Not allowed to create a federated share with the same user" : "Не допускается создание федеративного общего ресурса с тем же пользователем", "File is already shared with %s" : "Доступ к файлу уже предоставлен %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Не удалось поделиться «%s», не удалось найти %s, возможно, сервер не доступен или использует само-подписанный сертификат.", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Не удалось поделиться «%s», не удалось найти %s, возможно, сервер недоступен или использует самоподписанный сертификат.", "Could not find share" : "Не удалось найти общий ресурс", "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Вы получили «%3$s» в качестве удалённого ресурса из %1$s (от имени %2$s)", "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Вы получили «{share}» в качестве удалённого ресурса от {user} (от имени {behalf})", "You received \"%3$s\" as a remote share from %1$s" : "Вы получили «%3$s» в качестве удалённого ресурса из %1$s", - "You received {share} as a remote share from {user}" : "Вы получили «{share}» в качестве удалённого ресурса от {user}", + "You received {share} as a remote share from {user}" : "Вы получили {share} в качестве удалённого ресурса от {user}", "Accept" : "Принять", "Decline" : "Отклонить", "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Поделитесь со мной через мой #Nextcloud ID в федерации облачных хранилищ, смотрите %s", @@ -42,15 +42,15 @@ "Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов", "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов", "Search global and public address book for users" : "Искать пользователей в глобальной и открытой адресной книге", - "Allow users to publish their data to a global and public address book" : "Резрешить пользователям публиковать свои данные в глобальной и общедосупной адресной книге", + "Allow users to publish their data to a global and public address book" : "Разрешить пользователям публиковать свои данные в глобальной и общедоступной адресной книге", "Federated Cloud" : "Федерация облачных хранилищ", "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Можно поделиться с любым пользователем Nextcloud, ownCloud или Pydio! Просто введите его идентификатор федеративного облачного хранилища в диалоге предоставления общего доступа. Идентификатор указывается в виде «person@cloud.example.com».", "Your Federated Cloud ID:" : "Ваш ID в федерации облачных хранилищ:", - "Share it so your friends can share files with you:" : "Сообщите его друзьям, что бы они могли поделиться с вами файлами:", + "Share it so your friends can share files with you:" : "Сообщите его друзьям, чтобы они могли поделиться с вами файлами:", "Add to your website" : "Добавить к себе на сайт", "Share with me via Nextcloud" : "Поделитесь со мной через Nextcloud", "HTML Code:" : "HTML код:", - "Search global and public address book for users and let local users publish their data" : "Поиск пользователей в глобальной и общедоступной адресной книге и резрешение публикации своих данных локальным пользователям ", + "Search global and public address book for users and let local users publish their data" : "Поиск пользователей в глобальной и общедоступной адресной книге и разрешение публикации своих данных локальным пользователям ", "Share it:" : "Поделиться:" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/federatedfilesharing/l10n/sr.js b/apps/federatedfilesharing/l10n/sr.js index 0cbb6abf78f..be041737963 100644 --- a/apps/federatedfilesharing/l10n/sr.js +++ b/apps/federatedfilesharing/l10n/sr.js @@ -2,17 +2,57 @@ OC.L10N.register( "federatedfilesharing", { "Federated sharing" : "Здружено дељење", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Да ли желите да додате удаљено дељење {name} од {owner}@{remote}?", + "Remote share" : "Удаљено дељење", + "Remote share password" : "Лозинка удаљеног дељења", + "Cancel" : "Одустани", + "Add remote share" : "Додај удаљено дељење", + "Copy" : "Копирај", + "Copied!" : "Копирано!", + "Not supported!" : "Није подржано!", + "Press ⌘-C to copy." : "Притисните ⌘-C за копирање.", + "Press Ctrl-C to copy." : "Притисните Ctrl-C за копирање.", "Invalid Federated Cloud ID" : "Неисправан ИД Здруженог облака", + "Server to server sharing is not enabled on this server" : "Сервер-сервер дељење није подржано на овом серверу", + "Couldn't establish a federated share." : "Не могу да успоставим здружено дељење.", + "Couldn't establish a federated share, maybe the password was wrong." : "Не могу да успоставим здружено дељење, можда лозинка не ваља.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Послат захтев за здружено дељење, добићете позивницу. Проверавајте обавештења.", + "The mountpoint name contains invalid characters." : "Име тачке монтирања садржи неисправне карактере.", + "Not allowed to create a federated share with the owner." : "Није дозвољено да направите здружено дељење са власником.", + "Invalid or untrusted SSL certificate" : "Неисправан или SSL сертификат без поверења", + "Could not authenticate to remote share, password might be wrong" : "Удаљено дељење не може да провери Ваш идентитет, можда лозинка није исправна", + "Storage not valid" : "Складиште није исправно", + "Federated share added" : "Здружено дељење додато", + "Couldn't add remote share" : "Не могу да додам удаљено дељење", "Sharing %s failed, because this item is already shared with %s" : "Дељење %s није успело зато што се ова ставка већ дели са %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Дељење %s није успело, није могуће пронаћи %s, можда сервер тренутно није доступан.", + "Not allowed to create a federated share with the same user" : "Није дозвољено да се направи здружено дељење са истим корисником", + "File is already shared with %s" : "Фајл је већ дељен са %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Дељење %s није успело, не могу да нађем %s, можда сервер тренутно није доступан или користи самопотписани сертификат.", + "Could not find share" : "Не могу да пронађем дељење", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Примили сте \"%3$s\" као удаљено дељење од %1$s (у име %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Примили сте {share} као удаљено дељење од {user} (у име {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Примили сте \"%3$s\" као удаљено дељење од %1$s", + "You received {share} as a remote share from {user}" : "Примили сте {share} као удаљено дељење од {user}", "Accept" : "Прихвати", "Decline" : "Одбиј", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Дели са мном преко мог #Некстклауд Здруженог облака, види %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Дели са мном преко мог #Некстклауд Здруженог облака", + "Sharing" : "Дељење", "Federated Cloud Sharing" : "Здружено дељење у облаку", "Open documentation" : "Отвори документацију", + "Adjust how people can share between servers." : "Подеси како људи деле фајлове између сервера.", "Allow users on this server to send shares to other servers" : "Дозвољава корисницима овог сервера да шаљу дељења на друге сервере", "Allow users on this server to receive shares from other servers" : "Дозвољава корисницима овог сервера да примају дељења са других сервера", + "Search global and public address book for users" : "Тражи кориснике и у глобалним и јавним именицима", + "Allow users to publish their data to a global and public address book" : "Дозволи корисницима да објаве своје податке у јавне и глобалне именике", "Federated Cloud" : "Здружени облак", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Можете делите ствари са било ким ко користи Некстклауд, Оунклауд или Пидио. Само унесите њихов ИД Здруженог Облака у дијалог за дељење. ИД изгледа нешто попут person@cloud.example.com", "Your Federated Cloud ID:" : "ИД вашег здруженог облака:", - "HTML Code:" : "ХТМЛ кôд:" + "Share it so your friends can share files with you:" : "Поделите да би Ваши пријатељи могли да деле са Вама:", + "Add to your website" : "Додај на свој веб сајт", + "Share with me via Nextcloud" : "Дели са мном преко Некстклауда", + "HTML Code:" : "ХТМЛ кôд:", + "Search global and public address book for users and let local users publish their data" : "Претражи кориснике у глобалним и јавним именицима и дозволи да локални корисници објављују њихове податке", + "Share it:" : "Дели:" }, "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/federatedfilesharing/l10n/sr.json b/apps/federatedfilesharing/l10n/sr.json index c5355e6ac6e..de872b01541 100644 --- a/apps/federatedfilesharing/l10n/sr.json +++ b/apps/federatedfilesharing/l10n/sr.json @@ -1,16 +1,56 @@ { "translations": { "Federated sharing" : "Здружено дељење", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Да ли желите да додате удаљено дељење {name} од {owner}@{remote}?", + "Remote share" : "Удаљено дељење", + "Remote share password" : "Лозинка удаљеног дељења", + "Cancel" : "Одустани", + "Add remote share" : "Додај удаљено дељење", + "Copy" : "Копирај", + "Copied!" : "Копирано!", + "Not supported!" : "Није подржано!", + "Press ⌘-C to copy." : "Притисните ⌘-C за копирање.", + "Press Ctrl-C to copy." : "Притисните Ctrl-C за копирање.", "Invalid Federated Cloud ID" : "Неисправан ИД Здруженог облака", + "Server to server sharing is not enabled on this server" : "Сервер-сервер дељење није подржано на овом серверу", + "Couldn't establish a federated share." : "Не могу да успоставим здружено дељење.", + "Couldn't establish a federated share, maybe the password was wrong." : "Не могу да успоставим здружено дељење, можда лозинка не ваља.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Послат захтев за здружено дељење, добићете позивницу. Проверавајте обавештења.", + "The mountpoint name contains invalid characters." : "Име тачке монтирања садржи неисправне карактере.", + "Not allowed to create a federated share with the owner." : "Није дозвољено да направите здружено дељење са власником.", + "Invalid or untrusted SSL certificate" : "Неисправан или SSL сертификат без поверења", + "Could not authenticate to remote share, password might be wrong" : "Удаљено дељење не може да провери Ваш идентитет, можда лозинка није исправна", + "Storage not valid" : "Складиште није исправно", + "Federated share added" : "Здружено дељење додато", + "Couldn't add remote share" : "Не могу да додам удаљено дељење", "Sharing %s failed, because this item is already shared with %s" : "Дељење %s није успело зато што се ова ставка већ дели са %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Дељење %s није успело, није могуће пронаћи %s, можда сервер тренутно није доступан.", + "Not allowed to create a federated share with the same user" : "Није дозвољено да се направи здружено дељење са истим корисником", + "File is already shared with %s" : "Фајл је већ дељен са %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Дељење %s није успело, не могу да нађем %s, можда сервер тренутно није доступан или користи самопотписани сертификат.", + "Could not find share" : "Не могу да пронађем дељење", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Примили сте \"%3$s\" као удаљено дељење од %1$s (у име %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Примили сте {share} као удаљено дељење од {user} (у име {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Примили сте \"%3$s\" као удаљено дељење од %1$s", + "You received {share} as a remote share from {user}" : "Примили сте {share} као удаљено дељење од {user}", "Accept" : "Прихвати", "Decline" : "Одбиј", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Дели са мном преко мог #Некстклауд Здруженог облака, види %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Дели са мном преко мог #Некстклауд Здруженог облака", + "Sharing" : "Дељење", "Federated Cloud Sharing" : "Здружено дељење у облаку", "Open documentation" : "Отвори документацију", + "Adjust how people can share between servers." : "Подеси како људи деле фајлове између сервера.", "Allow users on this server to send shares to other servers" : "Дозвољава корисницима овог сервера да шаљу дељења на друге сервере", "Allow users on this server to receive shares from other servers" : "Дозвољава корисницима овог сервера да примају дељења са других сервера", + "Search global and public address book for users" : "Тражи кориснике и у глобалним и јавним именицима", + "Allow users to publish their data to a global and public address book" : "Дозволи корисницима да објаве своје податке у јавне и глобалне именике", "Federated Cloud" : "Здружени облак", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Можете делите ствари са било ким ко користи Некстклауд, Оунклауд или Пидио. Само унесите њихов ИД Здруженог Облака у дијалог за дељење. ИД изгледа нешто попут person@cloud.example.com", "Your Federated Cloud ID:" : "ИД вашег здруженог облака:", - "HTML Code:" : "ХТМЛ кôд:" + "Share it so your friends can share files with you:" : "Поделите да би Ваши пријатељи могли да деле са Вама:", + "Add to your website" : "Додај на свој веб сајт", + "Share with me via Nextcloud" : "Дели са мном преко Некстклауда", + "HTML Code:" : "ХТМЛ кôд:", + "Search global and public address book for users and let local users publish their data" : "Претражи кориснике у глобалним и јавним именицима и дозволи да локални корисници објављују њихове податке", + "Share it:" : "Дели:" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/federation/l10n/sr.js b/apps/federation/l10n/sr.js index 4a0fad5ae4c..88f2c6dfd69 100644 --- a/apps/federation/l10n/sr.js +++ b/apps/federation/l10n/sr.js @@ -1,15 +1,16 @@ OC.L10N.register( "federation", { - "Server added to the list of trusted ownClouds" : "Сервер додат на списак поверљивих оунКлауд сервера", - "Server is already in the list of trusted servers." : "Сервер је већ на списку поверљивих сервера.", - "No ownCloud server found" : "Ниједан оунКлауд сервер није нађен", - "Could not add server" : "Не могох да додам сервер", - "Federation" : "Здруживање", - "ownCloud Federation allows you to connect with other trusted ownClouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "оунКлауд здруживање вам омогућује да се повежете са другим поверљивим оунКлауд серверима да бисте разменили кориснички директоријум. На пример, ово ће да се користи за аутоматско довршавање спољашњих корисника за здружено дељење.", + "Added to the list of trusted servers" : "Додат на листу сервера од поверења", + "Server is already in the list of trusted servers." : "Сервер је већ на списку сервера од поверења.", + "No server to federate with found" : "Није нађен сервер за здруживање", + "Could not add server" : "Неуспело додавање сервера", + "Trusted servers" : "Сервери од поверења", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Здруживање омогућава да се повежете са другим серверима од поверења и да мењате корисничке директоријуме.", "Add server automatically once a federated share was created successfully" : "Додај сервер аутоматски по успешном прављењу здруженог дељења", - "Trusted ownCloud Servers" : "Поверљиви оунКлауд сервери", - "+ Add ownCloud server" : "+ Додај оунКлауд сервер", - "ownCloud Server" : "оунКлауд сервер" + "+ Add trusted server" : "+ Додај сервер од поверења", + "Trusted server" : "Сервер од поверења", + "Add" : "Додај", + "Federation" : "Здруживање" }, "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/federation/l10n/sr.json b/apps/federation/l10n/sr.json index d821056fc62..c70b5f1a622 100644 --- a/apps/federation/l10n/sr.json +++ b/apps/federation/l10n/sr.json @@ -1,13 +1,14 @@ { "translations": { - "Server added to the list of trusted ownClouds" : "Сервер додат на списак поверљивих оунКлауд сервера", - "Server is already in the list of trusted servers." : "Сервер је већ на списку поверљивих сервера.", - "No ownCloud server found" : "Ниједан оунКлауд сервер није нађен", - "Could not add server" : "Не могох да додам сервер", - "Federation" : "Здруживање", - "ownCloud Federation allows you to connect with other trusted ownClouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "оунКлауд здруживање вам омогућује да се повежете са другим поверљивим оунКлауд серверима да бисте разменили кориснички директоријум. На пример, ово ће да се користи за аутоматско довршавање спољашњих корисника за здружено дељење.", + "Added to the list of trusted servers" : "Додат на листу сервера од поверења", + "Server is already in the list of trusted servers." : "Сервер је већ на списку сервера од поверења.", + "No server to federate with found" : "Није нађен сервер за здруживање", + "Could not add server" : "Неуспело додавање сервера", + "Trusted servers" : "Сервери од поверења", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Здруживање омогућава да се повежете са другим серверима од поверења и да мењате корисничке директоријуме.", "Add server automatically once a federated share was created successfully" : "Додај сервер аутоматски по успешном прављењу здруженог дељења", - "Trusted ownCloud Servers" : "Поверљиви оунКлауд сервери", - "+ Add ownCloud server" : "+ Додај оунКлауд сервер", - "ownCloud Server" : "оунКлауд сервер" + "+ Add trusted server" : "+ Додај сервер од поверења", + "Trusted server" : "Сервер од поверења", + "Add" : "Додај", + "Federation" : "Здруживање" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files/css/upload.scss b/apps/files/css/upload.scss index 6f337a27578..4685b20d43a 100644 --- a/apps/files/css/upload.scss +++ b/apps/files/css/upload.scss @@ -50,28 +50,29 @@ text-align: center; } #uploadprogressbar .ui-progressbar-value.ui-widget-header.ui-corner-left { - height: 100%; - top: 0px; - left: 0px; - position: absolute; - overflow: hidden; + height: 100%; + top: 0px; + left: 0px; + position: absolute; + overflow: hidden; + background-color: $color-primary; } #uploadprogressbar .label { - top: 6px; - opacity: 1; - overflow: hidden; - white-space: nowrap; + top: 6px; + opacity: 1; + overflow: hidden; + white-space: nowrap; font-weight: normal; } #uploadprogressbar .label.inner { - color:white; - position: absolute; - display: block; - width: 200px; + color: $color-primary-text; + position: absolute; + display: block; + width: 200px; } #uploadprogressbar .label.outer { - position: relative; - color: black; + position: relative; + color: $color-main-text; } #uploadprogressbar .desktop { display: block; diff --git a/apps/files/js/detailsview.js b/apps/files/js/detailsview.js index e53922ebb69..a896e84fdc0 100644 --- a/apps/files/js/detailsview.js +++ b/apps/files/js/detailsview.js @@ -23,7 +23,7 @@ ' {{/if}}' + ' <div class="tabsContainer">' + ' </div>' + - ' <a class="close icon-close" href="#" alt="{{closeLabel}}"></a>'; + ' <a class="close icon-close" href="#"><span class="hidden-visually">{{closeLabel}}</span></a>'; /** * @class OCA.Files.DetailsView diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index fd13deedc0d..cc23ac73979 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -565,6 +565,7 @@ */ _onShow: function(e) { if (this.shown) { + this._setCurrentDir('/', false); this.reload(); } this.shown = true; diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js index 6aad7b409e7..f4bb7455e75 100644 --- a/apps/files/l10n/ca.js +++ b/apps/files/l10n/ca.js @@ -17,6 +17,7 @@ OC.L10N.register( "Target folder \"{dir}\" does not exist any more" : "La carpeta objectiu \"{dir}\" ja no existeix", "Not enough free space" : "Espai lliure insuficient", "Uploading …" : "S'està carregant", + "…" : ".....", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", "Actions" : "Accions", "Download" : "Baixa", @@ -38,10 +39,17 @@ OC.L10N.register( "Could not move \"{file}\"" : "No s'ha pogut moure \"{file}\"", "Could not copy \"{file}\", target exists" : "No s'ha pogut copiar", "Could not copy \"{file}\"" : "No s'ha pogut copiar", + "Copied {origin} inside {destination}" : "Copiat {origen} dins {destinació}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "S'ha copiat {origen} i {nbfiles} altres fitxers a l'interior {destinació}", "{newName} already exists" : "{newName} ja existeix", "Could not rename \"{fileName}\", it does not exist any more" : "No s'ha pogut reanomenar \"{fileName}\", ja no existeix", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nom \"{targetName}\" ja s'utilitza a la carpeta \"{dir}\". Trieu un nom diferent.", "Could not rename \"{fileName}\"" : "No s'ha pogut reanomenar \"{fileName}\"", "Could not create file \"{file}\"" : "No s'ha pogut crear el fitxer \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "No s'ha pogut crear el fitxer \"{file}\" perquè ja existeix", + "Could not create folder \"{dir}\" because it already exists" : "No s'ha pogut crear la carpeta \"{dir}\" perquè ja existeix", + "Error deleting file \"{fileName}\"." : "S'ha produït un error en eliminar el fitxer \"{fileName}\".", + "No search results in other folders for {tag}{filter}{endtag}" : "No hi ha cap resultat de cerca a altres carpetes per {tag} {filter} {end tag}", "Name" : "Nom", "Size" : "Mida", "Modified" : "Modificat", @@ -54,6 +62,7 @@ OC.L10N.register( "New" : "Nou", "\"{name}\" is an invalid file name." : "\"{name}\" no es un fitxer vàlid.", "File name cannot be empty." : "El nom del fitxer no pot ser buit.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" no és un tipus de fitxer permès", "Storage of {owner} is full, files can not be updated or synced anymore!" : "L'emmagatzematge de {owner} està ple, els arxius no es poden actualitzar o sincronitzar més!", "Your storage is full, files can not be updated or synced anymore!" : "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden actualitzar o sincronitzar!", "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Emmagatzematge de {owner} està gairebé ple ({usedSpacePercent}%)", @@ -61,6 +70,7 @@ OC.L10N.register( "_matches '{filter}'_::_match '{filter}'_" : ["coincidències '{filter}'","coincidència '{filter}'"], "View in folder" : "Veure a la carpeta", "Copied!" : "Copiat!", + "Copy direct link (only works for users who have access to this file/folder)" : "Copia l'enllaç directe (només funciona per als usuaris que tenen accés a aquest fitxer / carpeta)", "Path" : "Ruta", "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Favorited" : "Agregat a favorits", @@ -70,6 +80,7 @@ OC.L10N.register( "An error occurred while trying to update the tags" : "S'ha produït un error en tractar d'actualitzar les etiquetes", "Added to favorites" : "Afegit a favorits", "Removed from favorites" : "Esborra de preferits", + "You added {file} to your favorites" : "Heu afegit {file} als vostres preferits", "You removed {file} from your favorites" : "Has esborrat {file} dels teus preferits", "File changes" : "Canvis al fitxer", "Created by {user}" : "Creat per {user}", @@ -81,6 +92,7 @@ OC.L10N.register( "\"remote user\"" : "\"usuari remot\"", "You created {file}" : "Has creat {file}", "{user} created {file}" : "{user} ha creat {file}", + "{file} was created in a public folder" : "{file} s'ha creat en una carpeta pública", "You changed {file}" : "Has modificat {file}", "{user} changed {file}" : "{user} ha modificat {file}", "You deleted {file}" : "Heu esborrat {file}", @@ -91,20 +103,27 @@ OC.L10N.register( "{user} renamed {oldfile} to {newfile}" : "{user} ha reanomenat {oldfile} a {newfile}", "You moved {oldfile} to {newfile}" : "has mogut {oldfile} a {newfile}", "{user} moved {oldfile} to {newfile}" : "{user} ha mogut {oldfile} a {newfile}", + "A file has been added to or removed from your <strong>favorites</strong>" : "S'ha afegit o eliminat un fitxer de les teves <strong>preferides</strong>", "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un fitxer o carpeta ha estat <strong>canviat</strong> o <strong>reanomenat</strong>", "A new file or folder has been <strong>created</strong>" : "S'ha <strong>creat</strong> un nou fitxer o una nova carpeta", + "A file or folder has been <strong>deleted</strong>" : "S'ha <strong>elminiat</strong> un fitxer o una carpeta", "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar les notificacions sobre la creació i canvis dels seus <strong>arxius favorits</strong><em>(solament Stream)</em>", + "A file or folder has been <strong>restored</strong>" : "S'ha <strong>restaurat</strong> un fitxer o una carpeta", "Unlimited" : "Il·limitat", "Upload (max. %s)" : "Pujada (màx. %s)", "File handling" : "Gestió de fitxers", "Maximum upload size" : "Mida màxima de pujada", "max. possible: " : "màxim possible:", "Save" : "Desa", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Amb PHP-FPM pot trigar 5 minuts a aplicar els canvis.", + "Missing permissions to edit from here." : "Falta els permisos per editar des d'aquí.", "%s of %s used" : "Usats %s de %s", "%s used" : "%s utilitzat", "Settings" : "Arranjament", "Show hidden files" : "Mostra els fitxers ocults", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilitzeu aquesta adreça per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accedir als vostres fitxers a través de WebDAV</a>", + "Uploading @" : "S'està carregant @", "No files in here" : "No hi ha arxius", "Upload some content or sync with your devices!" : "Pugi continguts o sincronitzi els seus dispositius.", "No entries found in this folder" : "No hi ha entrades en aquesta carpeta", @@ -135,6 +154,8 @@ OC.L10N.register( "Copy local link" : "C", "Folder" : "Carpeta", "Upload" : "Puja", + "A new file or folder has been <strong>deleted</strong>" : "S'ha <strong>eliminat</strong> un nou fitxer o carpeta", + "A new file or folder has been <strong>restored</strong>" : "S'ha <strong>restaurat</strong> un nou fitxer o carpeta", "No favorites" : "No hi ha favorits" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json index 0ff7c6332e1..13beefbf4b1 100644 --- a/apps/files/l10n/ca.json +++ b/apps/files/l10n/ca.json @@ -15,6 +15,7 @@ "Target folder \"{dir}\" does not exist any more" : "La carpeta objectiu \"{dir}\" ja no existeix", "Not enough free space" : "Espai lliure insuficient", "Uploading …" : "S'està carregant", + "…" : ".....", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", "Actions" : "Accions", "Download" : "Baixa", @@ -36,10 +37,17 @@ "Could not move \"{file}\"" : "No s'ha pogut moure \"{file}\"", "Could not copy \"{file}\", target exists" : "No s'ha pogut copiar", "Could not copy \"{file}\"" : "No s'ha pogut copiar", + "Copied {origin} inside {destination}" : "Copiat {origen} dins {destinació}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "S'ha copiat {origen} i {nbfiles} altres fitxers a l'interior {destinació}", "{newName} already exists" : "{newName} ja existeix", "Could not rename \"{fileName}\", it does not exist any more" : "No s'ha pogut reanomenar \"{fileName}\", ja no existeix", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nom \"{targetName}\" ja s'utilitza a la carpeta \"{dir}\". Trieu un nom diferent.", "Could not rename \"{fileName}\"" : "No s'ha pogut reanomenar \"{fileName}\"", "Could not create file \"{file}\"" : "No s'ha pogut crear el fitxer \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "No s'ha pogut crear el fitxer \"{file}\" perquè ja existeix", + "Could not create folder \"{dir}\" because it already exists" : "No s'ha pogut crear la carpeta \"{dir}\" perquè ja existeix", + "Error deleting file \"{fileName}\"." : "S'ha produït un error en eliminar el fitxer \"{fileName}\".", + "No search results in other folders for {tag}{filter}{endtag}" : "No hi ha cap resultat de cerca a altres carpetes per {tag} {filter} {end tag}", "Name" : "Nom", "Size" : "Mida", "Modified" : "Modificat", @@ -52,6 +60,7 @@ "New" : "Nou", "\"{name}\" is an invalid file name." : "\"{name}\" no es un fitxer vàlid.", "File name cannot be empty." : "El nom del fitxer no pot ser buit.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" no és un tipus de fitxer permès", "Storage of {owner} is full, files can not be updated or synced anymore!" : "L'emmagatzematge de {owner} està ple, els arxius no es poden actualitzar o sincronitzar més!", "Your storage is full, files can not be updated or synced anymore!" : "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden actualitzar o sincronitzar!", "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Emmagatzematge de {owner} està gairebé ple ({usedSpacePercent}%)", @@ -59,6 +68,7 @@ "_matches '{filter}'_::_match '{filter}'_" : ["coincidències '{filter}'","coincidència '{filter}'"], "View in folder" : "Veure a la carpeta", "Copied!" : "Copiat!", + "Copy direct link (only works for users who have access to this file/folder)" : "Copia l'enllaç directe (només funciona per als usuaris que tenen accés a aquest fitxer / carpeta)", "Path" : "Ruta", "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Favorited" : "Agregat a favorits", @@ -68,6 +78,7 @@ "An error occurred while trying to update the tags" : "S'ha produït un error en tractar d'actualitzar les etiquetes", "Added to favorites" : "Afegit a favorits", "Removed from favorites" : "Esborra de preferits", + "You added {file} to your favorites" : "Heu afegit {file} als vostres preferits", "You removed {file} from your favorites" : "Has esborrat {file} dels teus preferits", "File changes" : "Canvis al fitxer", "Created by {user}" : "Creat per {user}", @@ -79,6 +90,7 @@ "\"remote user\"" : "\"usuari remot\"", "You created {file}" : "Has creat {file}", "{user} created {file}" : "{user} ha creat {file}", + "{file} was created in a public folder" : "{file} s'ha creat en una carpeta pública", "You changed {file}" : "Has modificat {file}", "{user} changed {file}" : "{user} ha modificat {file}", "You deleted {file}" : "Heu esborrat {file}", @@ -89,20 +101,27 @@ "{user} renamed {oldfile} to {newfile}" : "{user} ha reanomenat {oldfile} a {newfile}", "You moved {oldfile} to {newfile}" : "has mogut {oldfile} a {newfile}", "{user} moved {oldfile} to {newfile}" : "{user} ha mogut {oldfile} a {newfile}", + "A file has been added to or removed from your <strong>favorites</strong>" : "S'ha afegit o eliminat un fitxer de les teves <strong>preferides</strong>", "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un fitxer o carpeta ha estat <strong>canviat</strong> o <strong>reanomenat</strong>", "A new file or folder has been <strong>created</strong>" : "S'ha <strong>creat</strong> un nou fitxer o una nova carpeta", + "A file or folder has been <strong>deleted</strong>" : "S'ha <strong>elminiat</strong> un fitxer o una carpeta", "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar les notificacions sobre la creació i canvis dels seus <strong>arxius favorits</strong><em>(solament Stream)</em>", + "A file or folder has been <strong>restored</strong>" : "S'ha <strong>restaurat</strong> un fitxer o una carpeta", "Unlimited" : "Il·limitat", "Upload (max. %s)" : "Pujada (màx. %s)", "File handling" : "Gestió de fitxers", "Maximum upload size" : "Mida màxima de pujada", "max. possible: " : "màxim possible:", "Save" : "Desa", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Amb PHP-FPM pot trigar 5 minuts a aplicar els canvis.", + "Missing permissions to edit from here." : "Falta els permisos per editar des d'aquí.", "%s of %s used" : "Usats %s de %s", "%s used" : "%s utilitzat", "Settings" : "Arranjament", "Show hidden files" : "Mostra els fitxers ocults", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilitzeu aquesta adreça per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accedir als vostres fitxers a través de WebDAV</a>", + "Uploading @" : "S'està carregant @", "No files in here" : "No hi ha arxius", "Upload some content or sync with your devices!" : "Pugi continguts o sincronitzi els seus dispositius.", "No entries found in this folder" : "No hi ha entrades en aquesta carpeta", @@ -133,6 +152,8 @@ "Copy local link" : "C", "Folder" : "Carpeta", "Upload" : "Puja", + "A new file or folder has been <strong>deleted</strong>" : "S'ha <strong>eliminat</strong> un nou fitxer o carpeta", + "A new file or folder has been <strong>restored</strong>" : "S'ha <strong>restaurat</strong> un nou fitxer o carpeta", "No favorites" : "No hi ha favorits" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js index ecba0ffbc7d..6105c3e1163 100644 --- a/apps/files/l10n/cs.js +++ b/apps/files/l10n/cs.js @@ -17,6 +17,7 @@ OC.L10N.register( "Target folder \"{dir}\" does not exist any more" : "Cílový adresář \"{dir}\" již neexistuje", "Not enough free space" : "Nedostatek volného prostoru", "Uploading …" : "Nahrávám...", + "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} z {totalSize} ({bitrate})", "Actions" : "Činnosti", "Download" : "Stáhnout", @@ -38,6 +39,8 @@ OC.L10N.register( "Could not move \"{file}\"" : "Nelze přesunout \"{file}\"", "Could not copy \"{file}\", target exists" : "Nelze kopírovat \"{file}\", cíl již existuje", "Could not copy \"{file}\"" : "Nelze kopírovat \"{file}\"", + "Copied {origin} inside {destination}" : "{origin} zkopírován do {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} a {nbfiles} dalších souborů zkopírováno do {destination}", "{newName} already exists" : "{newName} již existuje", "Could not rename \"{fileName}\", it does not exist any more" : "Nelze přejmenovat \"{fileName}\", již neexistuje", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Jméno \"{targetName}\" je již použito v adresáři \"{dir}\". Vyberte prosím jiné jméno.", diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json index c214592723e..ed7dfac05e0 100644 --- a/apps/files/l10n/cs.json +++ b/apps/files/l10n/cs.json @@ -15,6 +15,7 @@ "Target folder \"{dir}\" does not exist any more" : "Cílový adresář \"{dir}\" již neexistuje", "Not enough free space" : "Nedostatek volného prostoru", "Uploading …" : "Nahrávám...", + "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} z {totalSize} ({bitrate})", "Actions" : "Činnosti", "Download" : "Stáhnout", @@ -36,6 +37,8 @@ "Could not move \"{file}\"" : "Nelze přesunout \"{file}\"", "Could not copy \"{file}\", target exists" : "Nelze kopírovat \"{file}\", cíl již existuje", "Could not copy \"{file}\"" : "Nelze kopírovat \"{file}\"", + "Copied {origin} inside {destination}" : "{origin} zkopírován do {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} a {nbfiles} dalších souborů zkopírováno do {destination}", "{newName} already exists" : "{newName} již existuje", "Could not rename \"{fileName}\", it does not exist any more" : "Nelze přejmenovat \"{fileName}\", již neexistuje", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Jméno \"{targetName}\" je již použito v adresáři \"{dir}\". Vyberte prosím jiné jméno.", diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js index 442d64a68b4..b8f4515cf74 100644 --- a/apps/files/l10n/da.js +++ b/apps/files/l10n/da.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Brug denne adresse til at <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">tilgå dine filer via WebDAV</a>", "Uploading @" : "Uploader @", + "Cancel upload" : "Annuller upload ", "No files in here" : "Her er ingen filer", "Upload some content or sync with your devices!" : "Overfør indhold eller synkronisér med dine enheder!", "No entries found in this folder" : "Der blev ikke fundet poster i denne mappe", diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json index 2397165b0c5..7e5e35de51e 100644 --- a/apps/files/l10n/da.json +++ b/apps/files/l10n/da.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Brug denne adresse til at <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">tilgå dine filer via WebDAV</a>", "Uploading @" : "Uploader @", + "Cancel upload" : "Annuller upload ", "No files in here" : "Her er ingen filer", "Upload some content or sync with your devices!" : "Overfør indhold eller synkronisér med dine enheder!", "No entries found in this folder" : "Der blev ikke fundet poster i denne mappe", diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index 7e53396bba2..166166316ab 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -38,9 +38,9 @@ OC.L10N.register( "Could not move \"{file}\", target exists" : "\"{file}\" konnte nicht verschoben werden, Ziel existiert bereits", "Could not move \"{file}\"" : "\"{file}\" konnte nicht verschoben werden", "Could not copy \"{file}\", target exists" : "\"{file}\" konnte nicht kopiert werden, Ziel existiert bereits", - "Could not copy \"{file}\"" : "Konnte \"{file}\" nicht kopieren", - "Copied {origin} inside {destination}" : "{origin} wurde in {destination} kopiert", - "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden in {destination} kopiert", + "Could not copy \"{file}\"" : "\"{file}\" konnte nicht kopiert werden", + "Copied {origin} inside {destination}" : "{origin} wurde nach {destination} kopiert", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden nach {destination} kopiert", "{newName} already exists" : "{newName} existiert bereits", "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" konnte nicht umbenannt werden, da sie nicht mehr existiert", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{targetName}\" wird bereits bereits in diesem Ordner benutzt \"{dir}\". Bitte einen anderen Namen verwenden.", @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Diese Adresse benutzen, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">über WebDAV auf Deine Dateien zuzugreifen</a>", "Uploading @" : "Lade @ hoch", + "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Inhalte hochladen oder mit deinen Geräten synchronisieren!", "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden", diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index b9a4d86736e..f520dc86f13 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -36,9 +36,9 @@ "Could not move \"{file}\", target exists" : "\"{file}\" konnte nicht verschoben werden, Ziel existiert bereits", "Could not move \"{file}\"" : "\"{file}\" konnte nicht verschoben werden", "Could not copy \"{file}\", target exists" : "\"{file}\" konnte nicht kopiert werden, Ziel existiert bereits", - "Could not copy \"{file}\"" : "Konnte \"{file}\" nicht kopieren", - "Copied {origin} inside {destination}" : "{origin} wurde in {destination} kopiert", - "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden in {destination} kopiert", + "Could not copy \"{file}\"" : "\"{file}\" konnte nicht kopiert werden", + "Copied {origin} inside {destination}" : "{origin} wurde nach {destination} kopiert", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden nach {destination} kopiert", "{newName} already exists" : "{newName} existiert bereits", "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" konnte nicht umbenannt werden, da sie nicht mehr existiert", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{targetName}\" wird bereits bereits in diesem Ordner benutzt \"{dir}\". Bitte einen anderen Namen verwenden.", @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Diese Adresse benutzen, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">über WebDAV auf Deine Dateien zuzugreifen</a>", "Uploading @" : "Lade @ hoch", + "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Inhalte hochladen oder mit deinen Geräten synchronisieren!", "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden", diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js index 55f45321cea..91bf5dba7a5 100644 --- a/apps/files/l10n/de_DE.js +++ b/apps/files/l10n/de_DE.js @@ -38,9 +38,9 @@ OC.L10N.register( "Could not move \"{file}\", target exists" : "\"{file}\" konnte nicht verschoben werden, Ziel existiert bereits", "Could not move \"{file}\"" : "\"{file}\" konnte nicht verschoben werden", "Could not copy \"{file}\", target exists" : "\"{file}\" konnte nicht kopiert werden, Ziel existiert bereits", - "Could not copy \"{file}\"" : "Konnte \"{file}\" nicht kopieren", - "Copied {origin} inside {destination}" : "{origin} wurde in {destination} kopiert", - "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden in {destination} kopiert", + "Could not copy \"{file}\"" : "\"{file}\" konnte nicht kopiert werden", + "Copied {origin} inside {destination}" : "{origin} wurde nach {destination} kopiert", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden nach {destination} kopiert", "{newName} already exists" : "{newName} existiert bereits", "Could not rename \"{fileName}\", it does not exist any more" : "Die Datei konnte nicht umbenannt werden \"{fileName}\", da die Datei nicht mehr existiert", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name „{targetName}“ wird bereits im Ordner „{dir}“ benutzt. Bitte wählen Sie einen anderen Namen.", @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Benutzen Sie diese Adresse, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">via WebDAV auf Ihre Dateien zuzugreifen</a>", "Uploading @" : "Lade @ hoch", + "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Laden Sie Inhalte hoch oder synchronisieren Sie mit Ihren Geräten!", "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden", diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json index 2fcb69a7027..dcb310ae707 100644 --- a/apps/files/l10n/de_DE.json +++ b/apps/files/l10n/de_DE.json @@ -36,9 +36,9 @@ "Could not move \"{file}\", target exists" : "\"{file}\" konnte nicht verschoben werden, Ziel existiert bereits", "Could not move \"{file}\"" : "\"{file}\" konnte nicht verschoben werden", "Could not copy \"{file}\", target exists" : "\"{file}\" konnte nicht kopiert werden, Ziel existiert bereits", - "Could not copy \"{file}\"" : "Konnte \"{file}\" nicht kopieren", - "Copied {origin} inside {destination}" : "{origin} wurde in {destination} kopiert", - "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden in {destination} kopiert", + "Could not copy \"{file}\"" : "\"{file}\" konnte nicht kopiert werden", + "Copied {origin} inside {destination}" : "{origin} wurde nach {destination} kopiert", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden nach {destination} kopiert", "{newName} already exists" : "{newName} existiert bereits", "Could not rename \"{fileName}\", it does not exist any more" : "Die Datei konnte nicht umbenannt werden \"{fileName}\", da die Datei nicht mehr existiert", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name „{targetName}“ wird bereits im Ordner „{dir}“ benutzt. Bitte wählen Sie einen anderen Namen.", @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Benutzen Sie diese Adresse, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">via WebDAV auf Ihre Dateien zuzugreifen</a>", "Uploading @" : "Lade @ hoch", + "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Laden Sie Inhalte hoch oder synchronisieren Sie mit Ihren Geräten!", "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden", diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index 8865fc628dd..b7a8dca505d 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>", "Uploading @" : "Uploading @", + "Cancel upload" : "Cancel upload", "No files in here" : "No files in here", "Upload some content or sync with your devices!" : "Upload some content or sync with your devices!", "No entries found in this folder" : "No entries found in this folder", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index e8755ad35c7..0d93f91e4cc 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>", "Uploading @" : "Uploading @", + "Cancel upload" : "Cancel upload", "No files in here" : "No files in here", "Upload some content or sync with your devices!" : "Upload some content or sync with your devices!", "No entries found in this folder" : "No entries found in this folder", diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index 2e8f8f53342..cc6a73fdf7f 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -37,6 +37,10 @@ OC.L10N.register( "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verifique los registros o contáctese con el administrador", "Could not move \"{file}\", target exists" : "No se pudo mover \"{file}\", destino ya existe", "Could not move \"{file}\"" : "No se pudo mover \"{file}\"", + "Could not copy \"{file}\", target exists" : "No se ha podido copiar \"{file}\", ya existe el destino", + "Could not copy \"{file}\"" : "No se ha podido copiar \"{file}\"", + "Copied {origin} inside {destination}" : "Se ha copiado {origin} dentro de {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "Se han copiado {origini} y {nbfiles} otros archivos dentro de {destination}", "{newName} already exists" : "{newName} ya existe", "Could not rename \"{fileName}\", it does not exist any more" : "No se pudo renombrar \"{fileName}\", ya no existe", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya se utiliza en la carpeta \"{dir}\". Por favor elija un nombre diferente.", @@ -120,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus archivos mediante WebDAV</a>", "Uploading @" : "Subiendo a ", + "Cancel upload" : "Cancelar subida", "No files in here" : "Aquí no hay archivos", "Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!", "No entries found in this folder" : "No hay entradas en esta carpeta", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index 8f3f20c2c92..6f5cca13a7a 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -35,6 +35,10 @@ "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verifique los registros o contáctese con el administrador", "Could not move \"{file}\", target exists" : "No se pudo mover \"{file}\", destino ya existe", "Could not move \"{file}\"" : "No se pudo mover \"{file}\"", + "Could not copy \"{file}\", target exists" : "No se ha podido copiar \"{file}\", ya existe el destino", + "Could not copy \"{file}\"" : "No se ha podido copiar \"{file}\"", + "Copied {origin} inside {destination}" : "Se ha copiado {origin} dentro de {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "Se han copiado {origini} y {nbfiles} otros archivos dentro de {destination}", "{newName} already exists" : "{newName} ya existe", "Could not rename \"{fileName}\", it does not exist any more" : "No se pudo renombrar \"{fileName}\", ya no existe", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya se utiliza en la carpeta \"{dir}\". Por favor elija un nombre diferente.", @@ -118,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus archivos mediante WebDAV</a>", "Uploading @" : "Subiendo a ", + "Cancel upload" : "Cancelar subida", "No files in here" : "Aquí no hay archivos", "Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!", "No entries found in this folder" : "No hay entradas en esta carpeta", diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js index bc20ef8ec4c..0111a0d02dc 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilisez cette adresse pour <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accéder à vos fichiers par WebDAV</a>", "Uploading @" : "Envoi en cours @", + "Cancel upload" : "Annuler le téléversement", "No files in here" : "Aucun fichier", "Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !", "No entries found in this folder" : "Aucune entrée trouvée dans ce dossier", diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json index 3c49b20cfc3..0cc1f32c479 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilisez cette adresse pour <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accéder à vos fichiers par WebDAV</a>", "Uploading @" : "Envoi en cours @", + "Cancel upload" : "Annuler le téléversement", "No files in here" : "Aucun fichier", "Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !", "No entries found in this folder" : "Aucune entrée trouvée dans ce dossier", diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index 867b1648c5a..e4d742f9183 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilizza questo indirizzo per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accedere ai tuoi file con WebDAV</a>", "Uploading @" : "Caricamento @", + "Cancel upload" : "Annulla caricamento", "No files in here" : "Qui non c'è alcun file", "Upload some content or sync with your devices!" : "Carica alcuni contenuti o sincronizza con i tuoi dispositivi!", "No entries found in this folder" : "Nessuna voce trovata in questa cartella", diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index 1b08cc9119b..3a2e5425646 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilizza questo indirizzo per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accedere ai tuoi file con WebDAV</a>", "Uploading @" : "Caricamento @", + "Cancel upload" : "Annulla caricamento", "No files in here" : "Qui non c'è alcun file", "Upload some content or sync with your devices!" : "Carica alcuni contenuti o sincronizza con i tuoi dispositivi!", "No entries found in this folder" : "Nessuna voce trovata in questa cartella", diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js index f48a235b1e1..0363627955f 100644 --- a/apps/files/l10n/nb.js +++ b/apps/files/l10n/nb.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Bruk adressen <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">for å få tilgang til WebDAV</a>", "Uploading @" : "Laster opp @", + "Cancel upload" : "Avbryt opplasting", "No files in here" : "Ingen filer her", "Upload some content or sync with your devices!" : "Last opp noe innhold eller synkroniser med enhetene dine!", "No entries found in this folder" : "Ingen oppføringer funnet i denne mappen", @@ -135,7 +136,7 @@ OC.L10N.register( "Shared with you" : "Delt med deg", "Shared with others" : "Delt med andre", "Shared by link" : "Delt med lenke", - "Tags" : "Knagger", + "Tags" : "Merkelapper", "Deleted files" : "Slettede filer", "Text file" : "Tekstfil", "New text file.txt" : "Ny tekstfil.txt", diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json index 6f7bdbdee20..239793a7e70 100644 --- a/apps/files/l10n/nb.json +++ b/apps/files/l10n/nb.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Bruk adressen <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">for å få tilgang til WebDAV</a>", "Uploading @" : "Laster opp @", + "Cancel upload" : "Avbryt opplasting", "No files in here" : "Ingen filer her", "Upload some content or sync with your devices!" : "Last opp noe innhold eller synkroniser med enhetene dine!", "No entries found in this folder" : "Ingen oppføringer funnet i denne mappen", @@ -133,7 +134,7 @@ "Shared with you" : "Delt med deg", "Shared with others" : "Delt med andre", "Shared by link" : "Delt med lenke", - "Tags" : "Knagger", + "Tags" : "Merkelapper", "Deleted files" : "Slettede filer", "Text file" : "Tekstfil", "New text file.txt" : "Ny tekstfil.txt", diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js index 3856fbf98f0..1d11928c27a 100644 --- a/apps/files/l10n/pl.js +++ b/apps/files/l10n/pl.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Użyj tego adresu aby uzyskać <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dostęp do swoich plików poprzez WebDAV</a>", "Uploading @" : "Wysyłanie", + "Cancel upload" : "Anuluj wysyłanie", "No files in here" : "Brak plików", "Upload some content or sync with your devices!" : "Wgraj coś, albo wykonaj synchronizację ze swoimi urządzeniami.", "No entries found in this folder" : "Brak wpisów w tym folderze", diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json index 0aad01725bb..91fe2b1c44d 100644 --- a/apps/files/l10n/pl.json +++ b/apps/files/l10n/pl.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Użyj tego adresu aby uzyskać <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dostęp do swoich plików poprzez WebDAV</a>", "Uploading @" : "Wysyłanie", + "Cancel upload" : "Anuluj wysyłanie", "No files in here" : "Brak plików", "Upload some content or sync with your devices!" : "Wgraj coś, albo wykonaj synchronizację ze swoimi urządzeniami.", "No entries found in this folder" : "Brak wpisów w tym folderze", diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index e3b2790ae05..ab8f1c14afb 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -5,7 +5,7 @@ OC.L10N.register( "Storage invalid" : "Armazenamento inválido", "Unknown error" : "Erro desconhecido", "All files" : "Todos os arquivos", - "Recent" : "Recente", + "Recent" : "Recentes", "File could not be found" : "O arquivo não foi encontrado", "Home" : "Início", "Close" : "Fechar", @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Use este endereço <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">para acessar seus arquivos via WebDAV</a>", "Uploading @" : "Enviando @", + "Cancel upload" : "Cancelar envio", "No files in here" : "Nenhum arquivo aqui", "Upload some content or sync with your devices!" : "Envie algum conteúdo ou sincronize com seus dispositivos!", "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 478fec5b612..c551e03a978 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -3,7 +3,7 @@ "Storage invalid" : "Armazenamento inválido", "Unknown error" : "Erro desconhecido", "All files" : "Todos os arquivos", - "Recent" : "Recente", + "Recent" : "Recentes", "File could not be found" : "O arquivo não foi encontrado", "Home" : "Início", "Close" : "Fechar", @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Use este endereço <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">para acessar seus arquivos via WebDAV</a>", "Uploading @" : "Enviando @", + "Cancel upload" : "Cancelar envio", "No files in here" : "Nenhum arquivo aqui", "Upload some content or sync with your devices!" : "Envie algum conteúdo ou sincronize com seus dispositivos!", "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta", diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js index 5aa93caec02..1455ed2abd3 100644 --- a/apps/files/l10n/ru.js +++ b/apps/files/l10n/ru.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Используйте этот адрес <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">для доступа по WebDAV</a>", "Uploading @" : "Выгрузка @", + "Cancel upload" : "Отменить выгрузку", "No files in here" : "Здесь нет файлов", "Upload some content or sync with your devices!" : "Загрузите что-нибудь или синхронизируйте со своими устройствами!", "No entries found in this folder" : "В этом каталоге ничего не найдено", diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json index 5860678cdfd..20bbb1d2e31 100644 --- a/apps/files/l10n/ru.json +++ b/apps/files/l10n/ru.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Используйте этот адрес <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">для доступа по WebDAV</a>", "Uploading @" : "Выгрузка @", + "Cancel upload" : "Отменить выгрузку", "No files in here" : "Здесь нет файлов", "Upload some content or sync with your devices!" : "Загрузите что-нибудь или синхронизируйте со своими устройствами!", "No entries found in this folder" : "В этом каталоге ничего не найдено", diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js index 640c6a477d9..79e74f8fc37 100644 --- a/apps/files/l10n/sk.js +++ b/apps/files/l10n/sk.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použi túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">prístup ku svojím súborom cez WebDAV</a>", "Uploading @" : "Nahráva sa @", + "Cancel upload" : "Zrušiť nahrávanie", "No files in here" : "Nie sú tu žiadne súbory", "Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte zo svojimi zariadeniami!", "No entries found in this folder" : "V tomto priečinku nebolo nič nájdené", diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json index 7d66eaad059..3abaef4aa98 100644 --- a/apps/files/l10n/sk.json +++ b/apps/files/l10n/sk.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použi túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">prístup ku svojím súborom cez WebDAV</a>", "Uploading @" : "Nahráva sa @", + "Cancel upload" : "Zrušiť nahrávanie", "No files in here" : "Nie sú tu žiadne súbory", "Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte zo svojimi zariadeniami!", "No entries found in this folder" : "V tomto priečinku nebolo nič nájdené", diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js index 2791df23f32..cedf0bfc2b5 100644 --- a/apps/files/l10n/sl.js +++ b/apps/files/l10n/sl.js @@ -16,10 +16,13 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.", "Target folder \"{dir}\" does not exist any more" : "Ciljna mapa \"{dir}\" ne obstaja več", "Not enough free space" : "Ni dovolj prostora", + "Uploading …" : "Nalaganje", + "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} od {totalSize} ({bitrate})", "Actions" : "Dejanja", "Download" : "Prejmi", "Rename" : "Preimenuj", + "Move or copy" : "Premakni ali kopiraj", "Target folder" : "Ciljna mapa", "Delete" : "Izbriši", "Disconnect storage" : "Odklopi shrambo", @@ -116,6 +119,8 @@ OC.L10N.register( "Show hidden files" : "Pokaži skrite datoteke", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Uporabite naslov <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\"> za dostop do datotek prek sistema WebDAV</a>.", + "Uploading @" : "Nalaganje @", + "Cancel upload" : "Prekini nalaganje", "No files in here" : "V mapi ni datotek", "Upload some content or sync with your devices!" : "Uvozite vsebino ali pa omogočite usklajevanje z napravami!", "No entries found in this folder" : "V tej mapi ni najdenih predmetov.", diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json index c13ad23edd0..a10d6ac1d91 100644 --- a/apps/files/l10n/sl.json +++ b/apps/files/l10n/sl.json @@ -14,10 +14,13 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.", "Target folder \"{dir}\" does not exist any more" : "Ciljna mapa \"{dir}\" ne obstaja več", "Not enough free space" : "Ni dovolj prostora", + "Uploading …" : "Nalaganje", + "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} od {totalSize} ({bitrate})", "Actions" : "Dejanja", "Download" : "Prejmi", "Rename" : "Preimenuj", + "Move or copy" : "Premakni ali kopiraj", "Target folder" : "Ciljna mapa", "Delete" : "Izbriši", "Disconnect storage" : "Odklopi shrambo", @@ -114,6 +117,8 @@ "Show hidden files" : "Pokaži skrite datoteke", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Uporabite naslov <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\"> za dostop do datotek prek sistema WebDAV</a>.", + "Uploading @" : "Nalaganje @", + "Cancel upload" : "Prekini nalaganje", "No files in here" : "V mapi ni datotek", "Upload some content or sync with your devices!" : "Uvozite vsebino ali pa omogočite usklajevanje z napravami!", "No entries found in this folder" : "V tej mapi ni najdenih predmetov.", diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js index b4969688e99..1a3b01420f9 100644 --- a/apps/files/l10n/sr.js +++ b/apps/files/l10n/sr.js @@ -1,108 +1,162 @@ OC.L10N.register( "files", { - "Storage not available" : "Складиште није доступно", + "Storage is temporarily not available" : "Складиште привремено није доступно", "Storage invalid" : "Неисправно складиште", "Unknown error" : "Непозната грешка", - "Unable to set upload directory." : "Не могу да поставим директоријум за отпремање.", - "Invalid Token" : "Неисправан токен", - "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: " : "Отпремани фајл превазилази смерницу upload_max_filesize у фајлу php.ini:", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Отпремани фајл превазилази смерницу MAX_FILE_SIZE која је наведена у ХТМЛ обрасцу", - "The uploaded file was only partially uploaded" : "Отпремани фајл је само делимично отпремљен", - "No file was uploaded" : "Ништа није отпремљено", - "Missing a temporary folder" : "Недостаје привремена фасцикла", - "Failed to write to disk" : "Не могу да пишем на диск", - "Not enough storage available" : "Нема довољно простора", - "The target folder has been moved or deleted." : "Одредишна фасцикла је премештена или обрисана.", - "Upload failed. Could not find uploaded file" : "Неуспешно отпремање. Не могу да нађем отпремљени фајл", - "Upload failed. Could not get file info." : "Неуспешно отпремање. Не могу да добијем податке о фајлу.", - "Invalid directory." : "Неисправна фасцикла.", - "Files" : "Фајлови", "All files" : "Сви фајлови", + "Recent" : "Скорашње", + "File could not be found" : "Фајл није нађен", "Home" : "Почетна", "Close" : "Затвори", "Favorites" : "Омиљени", + "Could not create folder \"{dir}\"" : "Не могу да направим фасциклу \"{dir}\"", "Upload cancelled." : "Отпремање је отказано.", - "Unable to upload {filename} as it is a directory or has 0 bytes" : "Не могу да отпремим {filename} јер је то директоријум или има 0 бајтова", - "Total file size {size1} exceeds upload limit {size2}" : "Величина {size1} превазилази ограничење за отпремање од {size2}", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Не могу да отпремим {filename} јер је то или директоријум или има 0 бајтова", "Not enough free space, you are uploading {size1} but only {size2} is left" : "Нема простора. Отпремате {size1} али само {size2} је преостало", - "Could not get result from server." : "Не могу да добијем резултат са сервера.", - "Uploading..." : "Отпремам…", - "..." : "...", - "File upload is in progress. Leaving the page now will cancel the upload." : "Отпремање фајла је у току. Ако сада напустите страницу, отказаћете отпремање.", + "Target folder \"{dir}\" does not exist any more" : "Одредишна фасцикла \"{dir}\" више не постоји", + "Not enough free space" : "Нема довољно слободног места", + "Uploading …" : "Отпремам …", + "…" : "…", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} од {totalSize} ({bitrate})", "Actions" : "Радње", "Download" : "Преузми", "Rename" : "Преименуј", + "Move or copy" : "Помери или копирај", + "Target folder" : "Одредишна фасцикла", "Delete" : "Обриши", "Disconnect storage" : "Искључи складиште", - "Unshare" : "Не дели", - "Details" : "Подаци", + "Unshare" : "Укини дељење", + "Could not load info for file \"{file}\"" : "Не могу да учитам информације фајла \"{file}\"", + "Files" : "Фајлови", + "Details" : "Детаљи", "Select" : "Изабери", "Pending" : "На чекању", "Unable to determine date" : "Не могу да одредим датум", "This operation is forbidden" : "Ова радња је забрањена", "This directory is unavailable, please check the logs or contact the administrator" : "Овај директоријум није доступан, проверите записе или контактирајте администратора", - "No entries in this folder match '{filter}'" : "У овој фасцикли ништа се не поклапа са '{filter}'", + "Could not move \"{file}\", target exists" : "Не могу да померим \"{file}\", одредиште већ постоји", + "Could not move \"{file}\"" : "Не могу да померим \"{file}\"", + "Could not copy \"{file}\", target exists" : "Не могу да копирам \"{file}\", одредиште већ постоји", + "Could not copy \"{file}\"" : "Не могу да копирам \"{file}\"", + "Copied {origin} inside {destination}" : "Копиран {origin} у {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "Копиран{origin} и још {nbfiles} других фајлова у {destination}", + "{newName} already exists" : "{newName} већ постоји", + "Could not rename \"{fileName}\", it does not exist any more" : "Не могу да преименујем \"{fileName}\", фајл више не постоји", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Име \"{targetName}\" се већ користи за фасциклу \"{dir}\". Одаберите неко друго име.", + "Could not rename \"{fileName}\"" : "Не могу да преименујем \"{fileName}\"", + "Could not create file \"{file}\"" : "Не могу да направим фајл \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "Не могу да направим фајл \"{file}\" јер већ постоји", + "Could not create folder \"{dir}\" because it already exists" : "Не могу да направим фасциклу \"{dir}\" јер већ постоји", + "Error deleting file \"{fileName}\"." : "Грешка при брисању фајла \"{fileName}\".", + "No search results in other folders for {tag}{filter}{endtag}" : "Нема резултата претраге у осталим фасциклама за {tag}{filter}{endtag}", "Name" : "Назив", "Size" : "Величина", "Modified" : "Измењен", "_%n folder_::_%n folders_" : ["%n фасцикла","%n фасцикле","%n фасцикли"], "_%n file_::_%n files_" : ["%n фајл","%n фајла","%n фајлова"], "{dirs} and {files}" : "{dirs} и {files}", + "_including %n hidden_::_including %n hidden_" : ["укључујући и %n скривени","укључујући и %n скривена","укључујући и %n скривених"], "You don’t have permission to upload or create files here" : "Немате дозволе да овде отпремате или стварате фајлове", "_Uploading %n file_::_Uploading %n files_" : ["Отпремам %n фајл","Отпремам %n фајла","Отпремам %n фајлова"], "New" : "Ново", "\"{name}\" is an invalid file name." : "\"{name}\" није исправан назив фајла.", "File name cannot be empty." : "Назив фајла не може бити празан.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" није дозвољени тип фајла", "Storage of {owner} is full, files can not be updated or synced anymore!" : "Складиште корисника {owner} је пуно. Фајлови се не могу ажурирати нити синхронизовати!", "Your storage is full, files can not be updated or synced anymore!" : "Ваше складиште је пуно. Фајлови више не могу бити ажурирани ни синхронизовани!", "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Складиште корисника {owner} је скоро пуно ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "Ваше складиште је скоро пуно ({usedSpacePercent}%)", "_matches '{filter}'_::_match '{filter}'_" : ["се поклапа са '{filter}'","се поклапају са '{filter}'","се поклапа са '{filter}'"], + "View in folder" : "Види у фасцикли", + "Copied!" : "Копирано!", + "Copy direct link (only works for users who have access to this file/folder)" : "Копирај директну везу (ради само за кориснике који имају приступ овом фајлу/фасциклу)", "Path" : "Путања", - "_%n byte_::_%n bytes_" : ["%n бајт","%n бајта","%n бајта"], + "_%n byte_::_%n bytes_" : ["%n бајт","%n бајта","%n бајтова"], "Favorited" : "Омиљено", "Favorite" : "Омиљени", - "Folder" : "фасцикла", "New folder" : "Нова фасцикла", - "Upload" : "Отпреми", + "Upload file" : "Отпреми фајл", "An error occurred while trying to update the tags" : "Дошло је до грешке при покушају ажурирања ознака", + "Added to favorites" : "Додато у омиљено", + "Removed from favorites" : "Избачено из омиљених", + "You added {file} to your favorites" : "Додали сте {file} у омиљене", + "You removed {file} from your favorites" : "Избацили сте {file} из омиљених", + "File changes" : "Измене над фајлом", + "Created by {user}" : "Направио {user}", + "Changed by {user}" : "Изменио {user}", + "Deleted by {user}" : "Обрисао {user}", + "Restored by {user}" : "Повратио {user}", + "Renamed by {user}" : "Преименовао {user}", + "Moved by {user}" : "Померио {user}", + "\"remote user\"" : "„удаљени корисник“", + "You created {file}" : "Направили сте {file}", + "{user} created {file}" : "{user} је направио {file}", + "{file} was created in a public folder" : "{file} је направљен у јавној фасцикли", + "You changed {file}" : "Изменили сте {file}", + "{user} changed {file}" : "{user} је изменио {file}", + "You deleted {file}" : "Обрисали сте {file}", + "{user} deleted {file}" : "{user} је обрисао {file}", + "You restored {file}" : "Повратили сте {file}", + "{user} restored {file}" : "{user} је повратио {file}", + "You renamed {oldfile} to {newfile}" : "Преименовали сте {oldfile} на {newfile}", + "{user} renamed {oldfile} to {newfile}" : "{user} је преименовао {oldfile} на {newfile}", + "You moved {oldfile} to {newfile}" : "Померили сте {oldfile} на {newfile}", + "{user} moved {oldfile} to {newfile}" : "{user} је померио {oldfile} на {newfile}", + "A file has been added to or removed from your <strong>favorites</strong>" : "Фајл је додат или избрисан из Ваших <strong>омиљених</strong>", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Фајл или фасцикла су <strong>измењени</strong> или <strong>преименовани</strong>", "A new file or folder has been <strong>created</strong>" : "Нови фајл или фасцикла су <strong>направљени</strong>", - "A file or folder has been <strong>changed</strong>" : "Фајл или фасцикла су <strong>измењени</strong>", - "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Ограничи обавештења о стварању и изменама на <strong>омиљене фајлове</strong> <em>(само у записнику)</em>", "A file or folder has been <strong>deleted</strong>" : "Фајл или фасцикла су <strong>обрисани</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Ограничи обавештења о стварању и изменама на <strong>омиљене фајлове</strong> <em>(само у записнику)</em>", "A file or folder has been <strong>restored</strong>" : "Фајл или фасцикла су <strong>враћени</strong>", - "You created %1$s" : "Направили сте %1$s", - "%2$s created %1$s" : "%2$s направи %1$s", - "%1$s was created in a public folder" : "%1$s је направљен у јавној фасцикли", - "You changed %1$s" : "Изменили сте %1$s", - "%2$s changed %1$s" : "%2$s измени %1$s", - "You deleted %1$s" : "Обрисали сте %1$s", - "%2$s deleted %1$s" : "%2$s обриса %1$s", - "You restored %1$s" : "Вратили сте %1$s", - "%2$s restored %1$s" : "%2$s поврати %1$s", - "Changed by %2$s" : "Изменио %2$s", - "Deleted by %2$s" : "Обрисао %2$s", - "Restored by %2$s" : "Повратио %2$s", + "Unlimited" : "Неограничено", "Upload (max. %s)" : "Отпремање (макс. %s)", "File handling" : "Руковање фајловима", "Maximum upload size" : "Највећа величина отпремања", "max. possible: " : "највише могуће:", "Save" : "Сачувај", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Ако користите PHP-FPM, промене се могу применити и тек после 5 минута.", + "Missing permissions to edit from here." : "Недостају дозволе да се мења одавде.", + "%s of %s used" : "%s од %s искоришћено", + "%s used" : "%s искоришћено", "Settings" : "Поставке", + "Show hidden files" : "Прикажи скривене фајлове", "WebDAV" : "ВебДАВ", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Користи ову адресу да <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">приступате Вашим фајловима преко ВебДАВа</a>", + "Uploading @" : "Отпремам @", + "Cancel upload" : "Откажи отпремање", "No files in here" : "Овде нема фајлова", "Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!", "No entries found in this folder" : "Нема ничега у овој фасцикли", "Select all" : "Означи све", - "Upload too large" : "Отпремање је превелико", + "Upload too large" : "Фајл за отпремање је превелики", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Фајлови које желите да отпремите превазилазе ограничење отпремања на овом серверу.", - "No favorites" : "Нема омиљених", + "No favorites yet" : "Још нема омиљених", "Files and folders you mark as favorite will show up here" : "Фајлови и фасцикле које обележите као омиљене појавиће се овде", - "Text file" : "текстуални фајл", + "Shared with you" : "Дељено са вама", + "Shared with others" : "Дељено са осталима", + "Shared by link" : "Дељено путем везе", + "Tags" : "Ознаке", + "Deleted files" : "Обрисани фајлови", + "Text file" : "Tекстуални фајл", "New text file.txt" : "Нов текстуални фајл.txt", - "{newname} already exists" : "{newname} већ постоји" + "Uploading..." : "Отпремам…", + "..." : "...", + "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["{hours}:{minutes}:{seconds} сат преостао","{hours}:{minutes}:{seconds} сата преостала","{hours}:{minutes}:{seconds} сати преостало"], + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["{minutes}:{seconds} минут преостало","{minutes}:{seconds} минута преостало","{minutes}:{seconds} минута преостало "], + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "_{seconds} second left_::_{seconds} seconds left_" : ["{seconds} секунда преостала","{seconds} секунде преостало","{seconds} секунди преостало"], + "{seconds}s" : "{seconds}s", + "Any moment now..." : "Сваког тренутка...", + "Soon..." : "Ускоро...", + "File upload is in progress. Leaving the page now will cancel the upload." : "Отпремање фајла је у току. Ако сада напустите страницу, отказаћете отпремање.", + "Move" : "Премести", + "Copy local link" : "Копирај локалну везу", + "Folder" : "Фасцикла", + "Upload" : "Отпреми", + "A new file or folder has been <strong>deleted</strong>" : "Нови фајл или фасцикла су <strong>обрисани</strong>", + "A new file or folder has been <strong>restored</strong>" : "Нови фајл или фасцикла су <strong>враћени</strong>", + "No favorites" : "Нема омиљених" }, "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/sr.json b/apps/files/l10n/sr.json index 94ab1e4a65a..c8db7af7ab8 100644 --- a/apps/files/l10n/sr.json +++ b/apps/files/l10n/sr.json @@ -1,106 +1,160 @@ { "translations": { - "Storage not available" : "Складиште није доступно", + "Storage is temporarily not available" : "Складиште привремено није доступно", "Storage invalid" : "Неисправно складиште", "Unknown error" : "Непозната грешка", - "Unable to set upload directory." : "Не могу да поставим директоријум за отпремање.", - "Invalid Token" : "Неисправан токен", - "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: " : "Отпремани фајл превазилази смерницу upload_max_filesize у фајлу php.ini:", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Отпремани фајл превазилази смерницу MAX_FILE_SIZE која је наведена у ХТМЛ обрасцу", - "The uploaded file was only partially uploaded" : "Отпремани фајл је само делимично отпремљен", - "No file was uploaded" : "Ништа није отпремљено", - "Missing a temporary folder" : "Недостаје привремена фасцикла", - "Failed to write to disk" : "Не могу да пишем на диск", - "Not enough storage available" : "Нема довољно простора", - "The target folder has been moved or deleted." : "Одредишна фасцикла је премештена или обрисана.", - "Upload failed. Could not find uploaded file" : "Неуспешно отпремање. Не могу да нађем отпремљени фајл", - "Upload failed. Could not get file info." : "Неуспешно отпремање. Не могу да добијем податке о фајлу.", - "Invalid directory." : "Неисправна фасцикла.", - "Files" : "Фајлови", "All files" : "Сви фајлови", + "Recent" : "Скорашње", + "File could not be found" : "Фајл није нађен", "Home" : "Почетна", "Close" : "Затвори", "Favorites" : "Омиљени", + "Could not create folder \"{dir}\"" : "Не могу да направим фасциклу \"{dir}\"", "Upload cancelled." : "Отпремање је отказано.", - "Unable to upload {filename} as it is a directory or has 0 bytes" : "Не могу да отпремим {filename} јер је то директоријум или има 0 бајтова", - "Total file size {size1} exceeds upload limit {size2}" : "Величина {size1} превазилази ограничење за отпремање од {size2}", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Не могу да отпремим {filename} јер је то или директоријум или има 0 бајтова", "Not enough free space, you are uploading {size1} but only {size2} is left" : "Нема простора. Отпремате {size1} али само {size2} је преостало", - "Could not get result from server." : "Не могу да добијем резултат са сервера.", - "Uploading..." : "Отпремам…", - "..." : "...", - "File upload is in progress. Leaving the page now will cancel the upload." : "Отпремање фајла је у току. Ако сада напустите страницу, отказаћете отпремање.", + "Target folder \"{dir}\" does not exist any more" : "Одредишна фасцикла \"{dir}\" више не постоји", + "Not enough free space" : "Нема довољно слободног места", + "Uploading …" : "Отпремам …", + "…" : "…", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} од {totalSize} ({bitrate})", "Actions" : "Радње", "Download" : "Преузми", "Rename" : "Преименуј", + "Move or copy" : "Помери или копирај", + "Target folder" : "Одредишна фасцикла", "Delete" : "Обриши", "Disconnect storage" : "Искључи складиште", - "Unshare" : "Не дели", - "Details" : "Подаци", + "Unshare" : "Укини дељење", + "Could not load info for file \"{file}\"" : "Не могу да учитам информације фајла \"{file}\"", + "Files" : "Фајлови", + "Details" : "Детаљи", "Select" : "Изабери", "Pending" : "На чекању", "Unable to determine date" : "Не могу да одредим датум", "This operation is forbidden" : "Ова радња је забрањена", "This directory is unavailable, please check the logs or contact the administrator" : "Овај директоријум није доступан, проверите записе или контактирајте администратора", - "No entries in this folder match '{filter}'" : "У овој фасцикли ништа се не поклапа са '{filter}'", + "Could not move \"{file}\", target exists" : "Не могу да померим \"{file}\", одредиште већ постоји", + "Could not move \"{file}\"" : "Не могу да померим \"{file}\"", + "Could not copy \"{file}\", target exists" : "Не могу да копирам \"{file}\", одредиште већ постоји", + "Could not copy \"{file}\"" : "Не могу да копирам \"{file}\"", + "Copied {origin} inside {destination}" : "Копиран {origin} у {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "Копиран{origin} и још {nbfiles} других фајлова у {destination}", + "{newName} already exists" : "{newName} већ постоји", + "Could not rename \"{fileName}\", it does not exist any more" : "Не могу да преименујем \"{fileName}\", фајл више не постоји", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Име \"{targetName}\" се већ користи за фасциклу \"{dir}\". Одаберите неко друго име.", + "Could not rename \"{fileName}\"" : "Не могу да преименујем \"{fileName}\"", + "Could not create file \"{file}\"" : "Не могу да направим фајл \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "Не могу да направим фајл \"{file}\" јер већ постоји", + "Could not create folder \"{dir}\" because it already exists" : "Не могу да направим фасциклу \"{dir}\" јер већ постоји", + "Error deleting file \"{fileName}\"." : "Грешка при брисању фајла \"{fileName}\".", + "No search results in other folders for {tag}{filter}{endtag}" : "Нема резултата претраге у осталим фасциклама за {tag}{filter}{endtag}", "Name" : "Назив", "Size" : "Величина", "Modified" : "Измењен", "_%n folder_::_%n folders_" : ["%n фасцикла","%n фасцикле","%n фасцикли"], "_%n file_::_%n files_" : ["%n фајл","%n фајла","%n фајлова"], "{dirs} and {files}" : "{dirs} и {files}", + "_including %n hidden_::_including %n hidden_" : ["укључујући и %n скривени","укључујући и %n скривена","укључујући и %n скривених"], "You don’t have permission to upload or create files here" : "Немате дозволе да овде отпремате или стварате фајлове", "_Uploading %n file_::_Uploading %n files_" : ["Отпремам %n фајл","Отпремам %n фајла","Отпремам %n фајлова"], "New" : "Ново", "\"{name}\" is an invalid file name." : "\"{name}\" није исправан назив фајла.", "File name cannot be empty." : "Назив фајла не може бити празан.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" није дозвољени тип фајла", "Storage of {owner} is full, files can not be updated or synced anymore!" : "Складиште корисника {owner} је пуно. Фајлови се не могу ажурирати нити синхронизовати!", "Your storage is full, files can not be updated or synced anymore!" : "Ваше складиште је пуно. Фајлови више не могу бити ажурирани ни синхронизовани!", "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Складиште корисника {owner} је скоро пуно ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "Ваше складиште је скоро пуно ({usedSpacePercent}%)", "_matches '{filter}'_::_match '{filter}'_" : ["се поклапа са '{filter}'","се поклапају са '{filter}'","се поклапа са '{filter}'"], + "View in folder" : "Види у фасцикли", + "Copied!" : "Копирано!", + "Copy direct link (only works for users who have access to this file/folder)" : "Копирај директну везу (ради само за кориснике који имају приступ овом фајлу/фасциклу)", "Path" : "Путања", - "_%n byte_::_%n bytes_" : ["%n бајт","%n бајта","%n бајта"], + "_%n byte_::_%n bytes_" : ["%n бајт","%n бајта","%n бајтова"], "Favorited" : "Омиљено", "Favorite" : "Омиљени", - "Folder" : "фасцикла", "New folder" : "Нова фасцикла", - "Upload" : "Отпреми", + "Upload file" : "Отпреми фајл", "An error occurred while trying to update the tags" : "Дошло је до грешке при покушају ажурирања ознака", + "Added to favorites" : "Додато у омиљено", + "Removed from favorites" : "Избачено из омиљених", + "You added {file} to your favorites" : "Додали сте {file} у омиљене", + "You removed {file} from your favorites" : "Избацили сте {file} из омиљених", + "File changes" : "Измене над фајлом", + "Created by {user}" : "Направио {user}", + "Changed by {user}" : "Изменио {user}", + "Deleted by {user}" : "Обрисао {user}", + "Restored by {user}" : "Повратио {user}", + "Renamed by {user}" : "Преименовао {user}", + "Moved by {user}" : "Померио {user}", + "\"remote user\"" : "„удаљени корисник“", + "You created {file}" : "Направили сте {file}", + "{user} created {file}" : "{user} је направио {file}", + "{file} was created in a public folder" : "{file} је направљен у јавној фасцикли", + "You changed {file}" : "Изменили сте {file}", + "{user} changed {file}" : "{user} је изменио {file}", + "You deleted {file}" : "Обрисали сте {file}", + "{user} deleted {file}" : "{user} је обрисао {file}", + "You restored {file}" : "Повратили сте {file}", + "{user} restored {file}" : "{user} је повратио {file}", + "You renamed {oldfile} to {newfile}" : "Преименовали сте {oldfile} на {newfile}", + "{user} renamed {oldfile} to {newfile}" : "{user} је преименовао {oldfile} на {newfile}", + "You moved {oldfile} to {newfile}" : "Померили сте {oldfile} на {newfile}", + "{user} moved {oldfile} to {newfile}" : "{user} је померио {oldfile} на {newfile}", + "A file has been added to or removed from your <strong>favorites</strong>" : "Фајл је додат или избрисан из Ваших <strong>омиљених</strong>", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Фајл или фасцикла су <strong>измењени</strong> или <strong>преименовани</strong>", "A new file or folder has been <strong>created</strong>" : "Нови фајл или фасцикла су <strong>направљени</strong>", - "A file or folder has been <strong>changed</strong>" : "Фајл или фасцикла су <strong>измењени</strong>", - "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Ограничи обавештења о стварању и изменама на <strong>омиљене фајлове</strong> <em>(само у записнику)</em>", "A file or folder has been <strong>deleted</strong>" : "Фајл или фасцикла су <strong>обрисани</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Ограничи обавештења о стварању и изменама на <strong>омиљене фајлове</strong> <em>(само у записнику)</em>", "A file or folder has been <strong>restored</strong>" : "Фајл или фасцикла су <strong>враћени</strong>", - "You created %1$s" : "Направили сте %1$s", - "%2$s created %1$s" : "%2$s направи %1$s", - "%1$s was created in a public folder" : "%1$s је направљен у јавној фасцикли", - "You changed %1$s" : "Изменили сте %1$s", - "%2$s changed %1$s" : "%2$s измени %1$s", - "You deleted %1$s" : "Обрисали сте %1$s", - "%2$s deleted %1$s" : "%2$s обриса %1$s", - "You restored %1$s" : "Вратили сте %1$s", - "%2$s restored %1$s" : "%2$s поврати %1$s", - "Changed by %2$s" : "Изменио %2$s", - "Deleted by %2$s" : "Обрисао %2$s", - "Restored by %2$s" : "Повратио %2$s", + "Unlimited" : "Неограничено", "Upload (max. %s)" : "Отпремање (макс. %s)", "File handling" : "Руковање фајловима", "Maximum upload size" : "Највећа величина отпремања", "max. possible: " : "највише могуће:", "Save" : "Сачувај", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Ако користите PHP-FPM, промене се могу применити и тек после 5 минута.", + "Missing permissions to edit from here." : "Недостају дозволе да се мења одавде.", + "%s of %s used" : "%s од %s искоришћено", + "%s used" : "%s искоришћено", "Settings" : "Поставке", + "Show hidden files" : "Прикажи скривене фајлове", "WebDAV" : "ВебДАВ", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Користи ову адресу да <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">приступате Вашим фајловима преко ВебДАВа</a>", + "Uploading @" : "Отпремам @", + "Cancel upload" : "Откажи отпремање", "No files in here" : "Овде нема фајлова", "Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!", "No entries found in this folder" : "Нема ничега у овој фасцикли", "Select all" : "Означи све", - "Upload too large" : "Отпремање је превелико", + "Upload too large" : "Фајл за отпремање је превелики", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Фајлови које желите да отпремите превазилазе ограничење отпремања на овом серверу.", - "No favorites" : "Нема омиљених", + "No favorites yet" : "Још нема омиљених", "Files and folders you mark as favorite will show up here" : "Фајлови и фасцикле које обележите као омиљене појавиће се овде", - "Text file" : "текстуални фајл", + "Shared with you" : "Дељено са вама", + "Shared with others" : "Дељено са осталима", + "Shared by link" : "Дељено путем везе", + "Tags" : "Ознаке", + "Deleted files" : "Обрисани фајлови", + "Text file" : "Tекстуални фајл", "New text file.txt" : "Нов текстуални фајл.txt", - "{newname} already exists" : "{newname} већ постоји" + "Uploading..." : "Отпремам…", + "..." : "...", + "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["{hours}:{minutes}:{seconds} сат преостао","{hours}:{minutes}:{seconds} сата преостала","{hours}:{minutes}:{seconds} сати преостало"], + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["{minutes}:{seconds} минут преостало","{minutes}:{seconds} минута преостало","{minutes}:{seconds} минута преостало "], + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "_{seconds} second left_::_{seconds} seconds left_" : ["{seconds} секунда преостала","{seconds} секунде преостало","{seconds} секунди преостало"], + "{seconds}s" : "{seconds}s", + "Any moment now..." : "Сваког тренутка...", + "Soon..." : "Ускоро...", + "File upload is in progress. Leaving the page now will cancel the upload." : "Отпремање фајла је у току. Ако сада напустите страницу, отказаћете отпремање.", + "Move" : "Премести", + "Copy local link" : "Копирај локалну везу", + "Folder" : "Фасцикла", + "Upload" : "Отпреми", + "A new file or folder has been <strong>deleted</strong>" : "Нови фајл или фасцикла су <strong>обрисани</strong>", + "A new file or folder has been <strong>restored</strong>" : "Нови фајл или фасцикла су <strong>враћени</strong>", + "No favorites" : "Нема омиљених" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js index 82f0e7ace01..ef6e091ecc7 100644 --- a/apps/files/l10n/sv.js +++ b/apps/files/l10n/sv.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Använd den här adressen för att <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">komma åt dina filer via WebDAV</a>", "Uploading @" : "Laddar upp @", + "Cancel upload" : "Avbryt uppladdning", "No files in here" : "Inga filer kunde hittas", "Upload some content or sync with your devices!" : "Ladda upp innehåll eller synkronisera med dina enheter!", "No entries found in this folder" : "Inget innehåll hittades i denna mapp", diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json index 750d0814697..88b6d108dcb 100644 --- a/apps/files/l10n/sv.json +++ b/apps/files/l10n/sv.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Använd den här adressen för att <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">komma åt dina filer via WebDAV</a>", "Uploading @" : "Laddar upp @", + "Cancel upload" : "Avbryt uppladdning", "No files in here" : "Inga filer kunde hittas", "Upload some content or sync with your devices!" : "Ladda upp innehåll eller synkronisera med dina enheter!", "No entries found in this folder" : "Inget innehåll hittades i denna mapp", diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js index 960d81ed7c6..d5ee46c53b8 100644 --- a/apps/files/l10n/tr.js +++ b/apps/files/l10n/tr.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Dosyalarınıza WebDAV üzerinden erişmek için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">bu adresi kullanın</a>", "Uploading @" : "Yükleniyor @", + "Cancel upload" : "Yüklemeyi iptal et", "No files in here" : "Burada herhangi bir dosya yok", "Upload some content or sync with your devices!" : "Bir şeyler yükleyin ya da aygıtlarınızla eşitleyin!", "No entries found in this folder" : "Bu klasörde herhangi bir kayıt bulunamadı", diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json index 1a7d8b2cf8b..b63f114f80a 100644 --- a/apps/files/l10n/tr.json +++ b/apps/files/l10n/tr.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Dosyalarınıza WebDAV üzerinden erişmek için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">bu adresi kullanın</a>", "Uploading @" : "Yükleniyor @", + "Cancel upload" : "Yüklemeyi iptal et", "No files in here" : "Burada herhangi bir dosya yok", "Upload some content or sync with your devices!" : "Bir şeyler yükleyin ya da aygıtlarınızla eşitleyin!", "No entries found in this folder" : "Bu klasörde herhangi bir kayıt bulunamadı", diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js index 01e6547304a..34c9c79b5a7 100644 --- a/apps/files/l10n/vi.js +++ b/apps/files/l10n/vi.js @@ -16,9 +16,12 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Không đủ dung lượng trống, bạn đang tải {size1} nhưng chỉ còn {size2} trống", "Target folder \"{dir}\" does not exist any more" : "Thư mục đích \"{dir}\" không còn tồn tại", "Not enough free space" : "Không đủ dung lượng trống", + "Uploading …" : "Đang tải lên …", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} trong tổng số {totalSize} ({bitrate})", "Actions" : "Actions", "Download" : "Tải về", "Rename" : "Sửa tên", + "Move or copy" : "Di chuyển hoặc sao chép", "Target folder" : "Thư mục đích", "Delete" : "Xóa", "Disconnect storage" : "Bộ lưu trữ đã ngắt kết nối", @@ -33,6 +36,10 @@ OC.L10N.register( "This directory is unavailable, please check the logs or contact the administrator" : "Thư mục này không sẵn có, hãy kiểm tra log hoặc liên hệ người quản lý", "Could not move \"{file}\", target exists" : "Không thể di chuyển \"{file}\", trùng đích đến", "Could not move \"{file}\"" : "Không thể di chuyển \"{file}\"", + "Could not copy \"{file}\", target exists" : "Không thể sao chép \"{file}\", tệp tin đích đã tồn tại", + "Could not copy \"{file}\"" : "Không thể sao chép tệp tin \"{file}\"", + "Copied {origin} inside {destination}" : "Được sao chép {origin} vào trong {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "Đã sao chép {origin} và {nbfiles} các file vào trong {destination}", "{newName} already exists" : "{newName} đã có", "Could not rename \"{fileName}\", it does not exist any more" : "Không thể đổi tên \"{fileName}\", tập tin không tồn tại", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tên \"{targetName}\" đã được dùng trong thư mục \"{dir}\". Hãy thử tên khác", @@ -61,11 +68,14 @@ OC.L10N.register( "Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)", "_matches '{filter}'_::_match '{filter}'_" : ["khớp '{filter}'"], "View in folder" : "Xem trong thư mục", + "Copied!" : "Đã sao chép!", + "Copy direct link (only works for users who have access to this file/folder)" : "Sao chép liên kết trực tiếp (chỉ hoạt động đối với người dùng có quyền truy nhập tới tệp tin/thư mục này)", "Path" : "Đường dẫn", "_%n byte_::_%n bytes_" : ["%n bytes"], "Favorited" : "Được ưa thích", "Favorite" : "Ưu thích", "New folder" : "Tạo thư mục", + "Upload file" : "Tải lên tập tin", "An error occurred while trying to update the tags" : "Đã xảy ra lỗi khi cố gắng cập nhật tags", "Added to favorites" : "Đã thêm vào mục yêu thích", "Removed from favorites" : "Đã xóa khỏi mục ưa thích", @@ -78,6 +88,7 @@ OC.L10N.register( "Restored by {user}" : "Được khôi phục bởi {user}", "Renamed by {user}" : "Đã đổi tên bởi {user}", "Moved by {user}" : "Đã di chuyển bởi {user}", + "\"remote user\"" : "\"người dùng từ xa\"", "You created {file}" : "Bạn đã tạo {file}", "{user} created {file}" : "{user} đã tạo {file}", "{file} was created in a public folder" : "{file} đã được tạo trong một thư mục công khai", diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json index 9efe90347ff..5bf200eb0a0 100644 --- a/apps/files/l10n/vi.json +++ b/apps/files/l10n/vi.json @@ -14,9 +14,12 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Không đủ dung lượng trống, bạn đang tải {size1} nhưng chỉ còn {size2} trống", "Target folder \"{dir}\" does not exist any more" : "Thư mục đích \"{dir}\" không còn tồn tại", "Not enough free space" : "Không đủ dung lượng trống", + "Uploading …" : "Đang tải lên …", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} trong tổng số {totalSize} ({bitrate})", "Actions" : "Actions", "Download" : "Tải về", "Rename" : "Sửa tên", + "Move or copy" : "Di chuyển hoặc sao chép", "Target folder" : "Thư mục đích", "Delete" : "Xóa", "Disconnect storage" : "Bộ lưu trữ đã ngắt kết nối", @@ -31,6 +34,10 @@ "This directory is unavailable, please check the logs or contact the administrator" : "Thư mục này không sẵn có, hãy kiểm tra log hoặc liên hệ người quản lý", "Could not move \"{file}\", target exists" : "Không thể di chuyển \"{file}\", trùng đích đến", "Could not move \"{file}\"" : "Không thể di chuyển \"{file}\"", + "Could not copy \"{file}\", target exists" : "Không thể sao chép \"{file}\", tệp tin đích đã tồn tại", + "Could not copy \"{file}\"" : "Không thể sao chép tệp tin \"{file}\"", + "Copied {origin} inside {destination}" : "Được sao chép {origin} vào trong {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "Đã sao chép {origin} và {nbfiles} các file vào trong {destination}", "{newName} already exists" : "{newName} đã có", "Could not rename \"{fileName}\", it does not exist any more" : "Không thể đổi tên \"{fileName}\", tập tin không tồn tại", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tên \"{targetName}\" đã được dùng trong thư mục \"{dir}\". Hãy thử tên khác", @@ -59,11 +66,14 @@ "Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)", "_matches '{filter}'_::_match '{filter}'_" : ["khớp '{filter}'"], "View in folder" : "Xem trong thư mục", + "Copied!" : "Đã sao chép!", + "Copy direct link (only works for users who have access to this file/folder)" : "Sao chép liên kết trực tiếp (chỉ hoạt động đối với người dùng có quyền truy nhập tới tệp tin/thư mục này)", "Path" : "Đường dẫn", "_%n byte_::_%n bytes_" : ["%n bytes"], "Favorited" : "Được ưa thích", "Favorite" : "Ưu thích", "New folder" : "Tạo thư mục", + "Upload file" : "Tải lên tập tin", "An error occurred while trying to update the tags" : "Đã xảy ra lỗi khi cố gắng cập nhật tags", "Added to favorites" : "Đã thêm vào mục yêu thích", "Removed from favorites" : "Đã xóa khỏi mục ưa thích", @@ -76,6 +86,7 @@ "Restored by {user}" : "Được khôi phục bởi {user}", "Renamed by {user}" : "Đã đổi tên bởi {user}", "Moved by {user}" : "Đã di chuyển bởi {user}", + "\"remote user\"" : "\"người dùng từ xa\"", "You created {file}" : "Bạn đã tạo {file}", "{user} created {file}" : "{user} đã tạo {file}", "{file} was created in a public folder" : "{file} đã được tạo trong một thư mục công khai", diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js index 84bf822b471..97be741304e 100644 --- a/apps/files/l10n/zh_CN.js +++ b/apps/files/l10n/zh_CN.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "使用这个地址 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">通过 WebDAV 访问您的文件</a>", "Uploading @" : "上传中", + "Cancel upload" : "取消上传", "No files in here" : "无文件", "Upload some content or sync with your devices!" : "上传或从您的设备中同步!", "No entries found in this folder" : "文件夹中无项目", diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json index 42a8ea92093..b8630ae0b1e 100644 --- a/apps/files/l10n/zh_CN.json +++ b/apps/files/l10n/zh_CN.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "使用这个地址 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">通过 WebDAV 访问您的文件</a>", "Uploading @" : "上传中", + "Cancel upload" : "取消上传", "No files in here" : "无文件", "Upload some content or sync with your devices!" : "上传或从您的设备中同步!", "No entries found in this folder" : "文件夹中无项目", diff --git a/apps/files/templates/appnavigation.php b/apps/files/templates/appnavigation.php index 09b02943688..8326fad73ea 100644 --- a/apps/files/templates/appnavigation.php +++ b/apps/files/templates/appnavigation.php @@ -11,7 +11,7 @@ </a> </li> <?php } ?> - <li id="quota" class="section pinned <?php + <li id="quota" class="pinned <?php if ($_['quota'] !== \OCP\Files\FileInfo::SPACE_UNLIMITED) { ?>has-tooltip" title="<?php p($_['usage_relative'] . '%'); } ?>"> @@ -23,9 +23,8 @@ p($l->t('%s used', [$_['usage']])); } ?></p> <div class="quota-container"> - <div style="width:<?php p($_['usage_relative']);?>%" - <?php if($_['usage_relative'] > 80): ?>class="quota-warning"<?php endif; ?>> - </div> + <progress value="<?php p($_['usage_relative']); ?>" max="100" + <?php if($_['usage_relative'] > 80): ?> class="warn" <?php endif; ?>></progress> </div> </a> </li> diff --git a/apps/files/templates/list.php b/apps/files/templates/list.php index f3b6759644c..46bd9351e39 100644 --- a/apps/files/templates/list.php +++ b/apps/files/templates/list.php @@ -4,7 +4,9 @@ <div id="uploadprogressbar"> <em class="label outer" style="display:none"><span class="desktop"><?php p($l->t('Uploading @'));?></span><span class="mobile"><?php p($l->t('…'));?></span></em> </div> - <input type="button" class="stop icon-close" style="display:none" value="" /> + <button class="stop icon-close" style="display:none"> + <span class="hidden-visually"><?php p($l->t('Cancel upload')) ?></span> + </button> </div> </div> <div id="file_action_panel"></div> diff --git a/apps/files/templates/simplelist.php b/apps/files/templates/simplelist.php index c787f9eb8df..fdf882fa3fe 100644 --- a/apps/files/templates/simplelist.php +++ b/apps/files/templates/simplelist.php @@ -29,7 +29,7 @@ <a id="modified" class="columntitle" data-sort="mtime"><span><?php p($l->t( 'Modified' )); ?></span><span class="sort-indicator"></span></a> <span class="selectedActions"><a href="" class="delete-selected"> <?php p($l->t('Delete'))?> - <img class="svg" alt="<?php p($l->t('Delete'))?>" + <img class="svg" alt="" src="<?php print_unescaped(OCP\image_path("core", "actions/delete.svg")); ?>" /> </a></span> </th> diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js index 30074ab179a..cb9b7ad6822 100644 --- a/apps/files_external/js/settings.js +++ b/apps/files_external/js/settings.js @@ -1129,14 +1129,21 @@ MountConfigListView.prototype = _.extend({ return; } var storage = new this._storageConfigClass(configId); - this.updateStatus($tr, StorageConfig.Status.IN_PROGRESS); - storage.destroy({ - success: function() { - $tr.remove(); - }, - error: function() { - self.updateStatus($tr, StorageConfig.Status.ERROR); + OC.dialogs.confirm(t('files_external', 'Are you sure you want to delete this external storage', { + storage: this.mountPoint + }), t('files_external', 'Delete storage?'), function(confirm) { + if (confirm) { + self.updateStatus($tr, StorageConfig.Status.IN_PROGRESS); + + storage.destroy({ + success: function () { + $tr.remove(); + }, + error: function () { + self.updateStatus($tr, StorageConfig.Status.ERROR); + } + }); } }); }, diff --git a/apps/files_external/l10n/da.js b/apps/files_external/l10n/da.js index a513da66028..078063a62fc 100644 --- a/apps/files_external/l10n/da.js +++ b/apps/files_external/l10n/da.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(gruppe)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilitet med Mac NFD encoding (langsom)", "Admin defined" : "Bestemt af administrator", + "Are you sure you want to delete this external storage" : "Er du sikker på at du vil slette denne eksterne lager?", + "Delete storage?" : "Slet lager?", "Saved" : "Gemt", "Saving..." : "Gemmer...", "Save" : "Gem", diff --git a/apps/files_external/l10n/da.json b/apps/files_external/l10n/da.json index dfd632a4074..048a779681a 100644 --- a/apps/files_external/l10n/da.json +++ b/apps/files_external/l10n/da.json @@ -12,6 +12,8 @@ "(group)" : "(gruppe)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilitet med Mac NFD encoding (langsom)", "Admin defined" : "Bestemt af administrator", + "Are you sure you want to delete this external storage" : "Er du sikker på at du vil slette denne eksterne lager?", + "Delete storage?" : "Slet lager?", "Saved" : "Gemt", "Saving..." : "Gemmer...", "Save" : "Gem", diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js index bbedc900731..40126676f0a 100644 --- a/apps/files_external/l10n/de.js +++ b/apps/files_external/l10n/de.js @@ -1,23 +1,25 @@ OC.L10N.register( "files_external", { - "External storages" : "Externer Speicher", + "External storages" : "Externe Speicher", "Personal" : "Persönlich", "System" : "System", "Grant access" : "Zugriff gestatten", "Error configuring OAuth1" : "Fehler beim Konfigurieren von OAuth1", - "Please provide a valid app key and secret." : "Bitte einen gültigen Anwendungsschlüssel mit Sicherheitsschlüssel eingeben.", + "Please provide a valid app key and secret." : "Bitte einen gültigen Anwendungsschlüssel (App-Key) mit Sicherheitsschlüssel (Secret) eingeben.", "Error configuring OAuth2" : "Fehler beim Konfigurieren von OAuth2", "Generate keys" : "Schlüssel erzeugen", "Error generating key pair" : "Fehler beim Erzeugen des Schlüsselpaares", "All users. Type to select user or group." : "Alle Benutzer. Benutzer oder Gruppe zur Auswahl eingeben.", "(group)" : "(group)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilität mit MAC NFD-Kodierung (langsam)", - "Admin defined" : "Administrator festgelegt", + "Admin defined" : "Vom Administrator festgelegt", + "Are you sure you want to delete this external storage" : "Möchtest Du wirklich diesen externen Speicher löschen?", + "Delete storage?" : "Speicher löschen?", "Saved" : "Gespeichert", "Saving..." : "Speichere…", "Save" : "Speichern", - "Empty response from the server" : "Leere Antwort vom Server", + "Empty response from the server" : "Leere Antwort vom Server erhalten", "Couldn't access. Please log out and in again to activate this mount point" : "Zugriff nicht möglich. Bitte abmelden und erneut anmelden, um diesen Endpunkt zu aktivieren.", "Couldn't get the information from the remote server: {code} {type}" : "Konnte die Information vom entfernten Server nicht abrufen: {code} {type}", "Couldn't get the list of external mount points: {type}" : "Die Liste der externen Endpunkte konnte nicht empfangen werden: {type}", @@ -25,8 +27,8 @@ OC.L10N.register( "External mount error" : "Fehler beim Einbinden des externen Speichers", "external-storage" : "Externer Speicher", "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Es konnte keine Liste der Windows-Netzlaufwerke empfangen werden: Leere Antwort vom Server", - "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Einige der konfigurierten externen Bereitstellungspunkte sind nicht angeschlossen. Bitte klicke auf die roten Zeile(n) für weitere Informationen", - "Please enter the credentials for the {mount} mount" : "Bitte gib die Anmeldeinformationen für den {mount} externen Bereitstellungspunkt ein", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Einige der konfigurierten externen Einbindungspunkte sind nicht verbunden. Bitte klicke auf die roten Zeile(n) für weitere Informationen", + "Please enter the credentials for the {mount} mount" : "Bitte gib die Anmeldeinformationen für den {mount} Speicher an", "Username" : "Benutzername", "Password" : "Passwort", "Credentials saved" : "Anmeldeinformationen gespeichert", @@ -34,19 +36,19 @@ OC.L10N.register( "Credentials required" : "Anmeldeinformationen benötigt", "Storage with ID \"%d\" not found" : "Der Speicher mit der ID „%d“ wurde nicht gefunden", "Invalid backend or authentication mechanism class" : "Ungültiger Backend- oder Authentifizierungsmechanismus", - "Invalid mount point" : "Ungültiger mount point", + "Invalid mount point" : "Ungültiger Einbindungspunkt", "Objectstore forbidden" : "Objekt nicht erlaubt", "Invalid storage backend \"%s\"" : "Ungültiges Speicher-Backend „%s“", - "Not permitted to use backend \"%s\"" : "Nicht zulässig Backend \"%s\" zu verwenden", - "Not permitted to use authentication mechanism \"%s\"" : "verwende zulässigen Authentifizierungsmechanismus \"%s\" ", + "Not permitted to use backend \"%s\"" : "Es ist nicht zulässig Backend \"%s\" zu verwenden", + "Not permitted to use authentication mechanism \"%s\"" : "Es ist nicht zulässig Authentifizierungsmechanismus \"%s\" zu verwenden", "Unsatisfied backend parameters" : "Unbefriedigende Backend- Parameter", - "Unsatisfied authentication mechanism parameters" : "Unbefriedigende Authentifizierungsmechanismus Parameter", + "Unsatisfied authentication mechanism parameters" : "Unbefriedigende Authentifizierungsmechanismus-Parameter", "Insufficient data: %s" : "Unzureichende Daten: %s", "%s" : "%s", "Storage with ID \"%d\" is not user editable" : "Speicher mit der ID \"%d\" kann nicht vom Benutzer bearbeitet werden", "Access key" : "Zugangsschlüssel", "Secret key" : "Geheimer Schlüssel", - "Builtin" : "eingebaut", + "Builtin" : "Eingebaut", "None" : "Keine", "OAuth1" : "OAuth1", "App key" : "App-Schlüssel", @@ -76,7 +78,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Entfernter Unterordner", - "Secure https://" : "Sicherer HTTPS://", + "Secure https://" : "Sicheres https://", "FTP" : "FTP", "Host" : "Host", "Secure ftps://" : "Sicherer ftps://", @@ -92,20 +94,20 @@ OC.L10N.register( "SMB / CIFS using OC login" : "SMB / CIFS mit OC-Anmeldung", "Username as share" : "Benutzername als Freigabe", "OpenStack Object Storage" : "Openstack-Objektspeicher", - "Service name" : "Service Name", - "Request timeout (seconds)" : "Anfrage -Timeout ( Sekunden)", + "Service name" : "Name des Dienstes", + "Request timeout (seconds)" : "Anfrage-Zeitüberschreitung (Sekunden)", "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die cURL-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Systemadministrator.", "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Systemadministrator.", - "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Systemadministrator.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Administrator.", "No external storage configured" : "Kein externer Speicher konfiguriert", "You can add external storages in the personal settings" : "Externe Speicher können in den persönlichen Einstellungen hinzugefügt werden", "Name" : "Name", - "Storage type" : "Speicher-Typ", + "Storage type" : "Speichertyp", "Scope" : "Anwendungsbereich", "Enable encryption" : "Verschlüsselung aktivieren", "Enable previews" : "Vorschau aktivieren", - "Enable sharing" : "Freigaben einschalten", - "Check for changes" : "Auf Änderungen überprüfen", + "Enable sharing" : "Teilen aktivieren", + "Check for changes" : "Auf Änderungen prüfen", "Never" : "Nie", "Once every direct access" : "Einmal bei jedem Direktzugriff", "Folder name" : "Ordnername", @@ -117,7 +119,7 @@ OC.L10N.register( "Advanced settings" : "Erweiterte Einstellungen", "Delete" : "Löschen", "Allow users to mount external storage" : "Benutzern erlauben, externen Speicher einzubinden", - "Allow users to mount the following external storage" : "Benutzern erlauben, den oder die folgenden externen Speicher einzubinden:", + "Allow users to mount the following external storage" : "Benutzern erlauben, den folgenden externen Speicher einzubinden:", "Fetching request tokens failed. Verify that your app key and secret are correct." : "Abrufen des Anfrage-Tokens fehlgeschlagen. Bitte sicherstellen, dass der Anwendungsschlüssel und Sicherheitsschlüssel korrekt sind.", "Fetching access tokens failed. Verify that your app key and secret are correct." : "Abrufen des Zugriff-Tokens fehlgeschlagen. Bitte sicherstellen, dass der Anwendungsschlüssel und Sicherheitsschlüssel korrekt sind.", "Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s", @@ -125,7 +127,7 @@ OC.L10N.register( "Dropbox App Configuration" : "Dropbox-App Konfiguration", "Google Drive App Configuration" : "Google Drive - App Konfiguration", "Storage with id \"%i\" not found" : "Der Speicher mit der ID „%i“ wurde nicht gefunden", - "Storage with id \"%i\" is not user editable" : "Speicher mit der ID \"%i\" kann nicht vom Benutzer bearbeitet werden", + "Storage with id \"%i\" is not user editable" : "Der Speicher mit der ID \"%i\" kann nicht vom Benutzer bearbeitet werden", "Dropbox" : "Dropbox", "Google Drive" : "Google Drive" }, diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json index ece1c503b1c..c93ba785568 100644 --- a/apps/files_external/l10n/de.json +++ b/apps/files_external/l10n/de.json @@ -1,21 +1,23 @@ { "translations": { - "External storages" : "Externer Speicher", + "External storages" : "Externe Speicher", "Personal" : "Persönlich", "System" : "System", "Grant access" : "Zugriff gestatten", "Error configuring OAuth1" : "Fehler beim Konfigurieren von OAuth1", - "Please provide a valid app key and secret." : "Bitte einen gültigen Anwendungsschlüssel mit Sicherheitsschlüssel eingeben.", + "Please provide a valid app key and secret." : "Bitte einen gültigen Anwendungsschlüssel (App-Key) mit Sicherheitsschlüssel (Secret) eingeben.", "Error configuring OAuth2" : "Fehler beim Konfigurieren von OAuth2", "Generate keys" : "Schlüssel erzeugen", "Error generating key pair" : "Fehler beim Erzeugen des Schlüsselpaares", "All users. Type to select user or group." : "Alle Benutzer. Benutzer oder Gruppe zur Auswahl eingeben.", "(group)" : "(group)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilität mit MAC NFD-Kodierung (langsam)", - "Admin defined" : "Administrator festgelegt", + "Admin defined" : "Vom Administrator festgelegt", + "Are you sure you want to delete this external storage" : "Möchtest Du wirklich diesen externen Speicher löschen?", + "Delete storage?" : "Speicher löschen?", "Saved" : "Gespeichert", "Saving..." : "Speichere…", "Save" : "Speichern", - "Empty response from the server" : "Leere Antwort vom Server", + "Empty response from the server" : "Leere Antwort vom Server erhalten", "Couldn't access. Please log out and in again to activate this mount point" : "Zugriff nicht möglich. Bitte abmelden und erneut anmelden, um diesen Endpunkt zu aktivieren.", "Couldn't get the information from the remote server: {code} {type}" : "Konnte die Information vom entfernten Server nicht abrufen: {code} {type}", "Couldn't get the list of external mount points: {type}" : "Die Liste der externen Endpunkte konnte nicht empfangen werden: {type}", @@ -23,8 +25,8 @@ "External mount error" : "Fehler beim Einbinden des externen Speichers", "external-storage" : "Externer Speicher", "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Es konnte keine Liste der Windows-Netzlaufwerke empfangen werden: Leere Antwort vom Server", - "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Einige der konfigurierten externen Bereitstellungspunkte sind nicht angeschlossen. Bitte klicke auf die roten Zeile(n) für weitere Informationen", - "Please enter the credentials for the {mount} mount" : "Bitte gib die Anmeldeinformationen für den {mount} externen Bereitstellungspunkt ein", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Einige der konfigurierten externen Einbindungspunkte sind nicht verbunden. Bitte klicke auf die roten Zeile(n) für weitere Informationen", + "Please enter the credentials for the {mount} mount" : "Bitte gib die Anmeldeinformationen für den {mount} Speicher an", "Username" : "Benutzername", "Password" : "Passwort", "Credentials saved" : "Anmeldeinformationen gespeichert", @@ -32,19 +34,19 @@ "Credentials required" : "Anmeldeinformationen benötigt", "Storage with ID \"%d\" not found" : "Der Speicher mit der ID „%d“ wurde nicht gefunden", "Invalid backend or authentication mechanism class" : "Ungültiger Backend- oder Authentifizierungsmechanismus", - "Invalid mount point" : "Ungültiger mount point", + "Invalid mount point" : "Ungültiger Einbindungspunkt", "Objectstore forbidden" : "Objekt nicht erlaubt", "Invalid storage backend \"%s\"" : "Ungültiges Speicher-Backend „%s“", - "Not permitted to use backend \"%s\"" : "Nicht zulässig Backend \"%s\" zu verwenden", - "Not permitted to use authentication mechanism \"%s\"" : "verwende zulässigen Authentifizierungsmechanismus \"%s\" ", + "Not permitted to use backend \"%s\"" : "Es ist nicht zulässig Backend \"%s\" zu verwenden", + "Not permitted to use authentication mechanism \"%s\"" : "Es ist nicht zulässig Authentifizierungsmechanismus \"%s\" zu verwenden", "Unsatisfied backend parameters" : "Unbefriedigende Backend- Parameter", - "Unsatisfied authentication mechanism parameters" : "Unbefriedigende Authentifizierungsmechanismus Parameter", + "Unsatisfied authentication mechanism parameters" : "Unbefriedigende Authentifizierungsmechanismus-Parameter", "Insufficient data: %s" : "Unzureichende Daten: %s", "%s" : "%s", "Storage with ID \"%d\" is not user editable" : "Speicher mit der ID \"%d\" kann nicht vom Benutzer bearbeitet werden", "Access key" : "Zugangsschlüssel", "Secret key" : "Geheimer Schlüssel", - "Builtin" : "eingebaut", + "Builtin" : "Eingebaut", "None" : "Keine", "OAuth1" : "OAuth1", "App key" : "App-Schlüssel", @@ -74,7 +76,7 @@ "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Entfernter Unterordner", - "Secure https://" : "Sicherer HTTPS://", + "Secure https://" : "Sicheres https://", "FTP" : "FTP", "Host" : "Host", "Secure ftps://" : "Sicherer ftps://", @@ -90,20 +92,20 @@ "SMB / CIFS using OC login" : "SMB / CIFS mit OC-Anmeldung", "Username as share" : "Benutzername als Freigabe", "OpenStack Object Storage" : "Openstack-Objektspeicher", - "Service name" : "Service Name", - "Request timeout (seconds)" : "Anfrage -Timeout ( Sekunden)", + "Service name" : "Name des Dienstes", + "Request timeout (seconds)" : "Anfrage-Zeitüberschreitung (Sekunden)", "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die cURL-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Systemadministrator.", "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Systemadministrator.", - "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Systemadministrator.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Administrator.", "No external storage configured" : "Kein externer Speicher konfiguriert", "You can add external storages in the personal settings" : "Externe Speicher können in den persönlichen Einstellungen hinzugefügt werden", "Name" : "Name", - "Storage type" : "Speicher-Typ", + "Storage type" : "Speichertyp", "Scope" : "Anwendungsbereich", "Enable encryption" : "Verschlüsselung aktivieren", "Enable previews" : "Vorschau aktivieren", - "Enable sharing" : "Freigaben einschalten", - "Check for changes" : "Auf Änderungen überprüfen", + "Enable sharing" : "Teilen aktivieren", + "Check for changes" : "Auf Änderungen prüfen", "Never" : "Nie", "Once every direct access" : "Einmal bei jedem Direktzugriff", "Folder name" : "Ordnername", @@ -115,7 +117,7 @@ "Advanced settings" : "Erweiterte Einstellungen", "Delete" : "Löschen", "Allow users to mount external storage" : "Benutzern erlauben, externen Speicher einzubinden", - "Allow users to mount the following external storage" : "Benutzern erlauben, den oder die folgenden externen Speicher einzubinden:", + "Allow users to mount the following external storage" : "Benutzern erlauben, den folgenden externen Speicher einzubinden:", "Fetching request tokens failed. Verify that your app key and secret are correct." : "Abrufen des Anfrage-Tokens fehlgeschlagen. Bitte sicherstellen, dass der Anwendungsschlüssel und Sicherheitsschlüssel korrekt sind.", "Fetching access tokens failed. Verify that your app key and secret are correct." : "Abrufen des Zugriff-Tokens fehlgeschlagen. Bitte sicherstellen, dass der Anwendungsschlüssel und Sicherheitsschlüssel korrekt sind.", "Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s", @@ -123,7 +125,7 @@ "Dropbox App Configuration" : "Dropbox-App Konfiguration", "Google Drive App Configuration" : "Google Drive - App Konfiguration", "Storage with id \"%i\" not found" : "Der Speicher mit der ID „%i“ wurde nicht gefunden", - "Storage with id \"%i\" is not user editable" : "Speicher mit der ID \"%i\" kann nicht vom Benutzer bearbeitet werden", + "Storage with id \"%i\" is not user editable" : "Der Speicher mit der ID \"%i\" kann nicht vom Benutzer bearbeitet werden", "Dropbox" : "Dropbox", "Google Drive" : "Google Drive" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js index 20e63249418..6851466d426 100644 --- a/apps/files_external/l10n/de_DE.js +++ b/apps/files_external/l10n/de_DE.js @@ -1,19 +1,21 @@ OC.L10N.register( "files_external", { - "External storages" : "Externer Speicher", + "External storages" : "Externe Speicher", "Personal" : "Persönlich", "System" : "System", "Grant access" : "Zugriff gestatten", "Error configuring OAuth1" : "Fehler beim Konfigurieren von OAuth1", - "Please provide a valid app key and secret." : "Bitte tragen Sie einen gültigen App-Key mit Secret ein.", + "Please provide a valid app key and secret." : "Bitte einen gültigen Anwendungsschlüssel (App-Key) mit Sicherheitsschlüssel (Secret) eingeben.", "Error configuring OAuth2" : "Fehler beim Konfigurieren von OAuth2", "Generate keys" : "Schlüssel erzeugen", "Error generating key pair" : "Fehler beim Erzeugen des Schlüsselpaares", "All users. Type to select user or group." : "Alle Benutzer. Benutzer oder Gruppe zur Auswahl eingeben.", "(group)" : "(group)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilität mit MAC NFD-Kodierung (langsam)", - "Admin defined" : "Administrator definiert", + "Admin defined" : "Vom Administrator festgelegt", + "Are you sure you want to delete this external storage" : "Möchten Sie wirklich diesen externen Speicher löschen?", + "Delete storage?" : "Speicher löschen?", "Saved" : "Gespeichert", "Saving..." : "Speichere …", "Save" : "Speichern", @@ -21,31 +23,31 @@ OC.L10N.register( "Couldn't access. Please log out and in again to activate this mount point" : "Zugriff nicht möglich. Bitte melden Sie sich ab und wieder an, um diesen Endpunkt zu aktivieren.", "Couldn't get the information from the remote server: {code} {type}" : "Konnte die Information vom entfernten Server nicht abrufen: {code} {type}", "Couldn't get the list of external mount points: {type}" : "Konnte die Liste von externen Speichern nicht laden: {type}", - "There was an error with message: " : "Ein Fehler ist aufgetreten:", - "External mount error" : "Externer Einhängefehler", - "external-storage" : "externer Speicher", + "There was an error with message: " : "Es ist ein Fehler mit folgender Meldung aufgetreten:", + "External mount error" : "Fehler beim Einbinden des externen Speichers", + "external-storage" : "Externer Speicher", "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Es konnte keine Liste der Windows-Netzlaufwerke empfangen werden: Leere Antwort vom Server", - "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Einige der konfigurierten externen Bereitstellungspunkte sind nicht angeschlossen. Bitte klicke Sie auf die roten Zeile(n) für weitere Informationen", - "Please enter the credentials for the {mount} mount" : "Bitte geben Sie die Zugangsdaten für den {mount} Speicher an", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Einige der konfigurierten externen Einbindungspunkte sind nicht verbunden. Bitte klicken Sie auf die roten Zeile(n) für weitere Informationen", + "Please enter the credentials for the {mount} mount" : "Bitte geben Sie die Anmeldeinformationen für den {mount} Speicher an", "Username" : "Benutzername", "Password" : "Passwort", "Credentials saved" : "Zugangsdaten gespeichert", "Credentials saving failed" : "Speichern der Zugangsdaten fehlgeschlagen", "Credentials required" : "Zugangsdaten benötigt", - "Storage with ID \"%d\" not found" : "Speicher mit ID \"1 %d\" nicht gefunden", - "Invalid backend or authentication mechanism class" : "Ungültiges Backend oder falscher Authentifizierungsmodus", - "Invalid mount point" : "Ungültiger mount point", + "Storage with ID \"%d\" not found" : "Der Speicher mit ID \"1 %d\" nicht gefunden", + "Invalid backend or authentication mechanism class" : "Ungültiger Backend- oder Authentifizierungsmechanismus", + "Invalid mount point" : "Ungültiger Einbindungspunkt", "Objectstore forbidden" : "Objekt nicht erlaubt", "Invalid storage backend \"%s\"" : "Ungültiges Speicher-Backend „%s“", "Not permitted to use backend \"%s\"" : "Es ist nicht zulässig Backend \"%s\" zu verwenden", - "Not permitted to use authentication mechanism \"%s\"" : "Nicht erlaubter Autentifizierungsmechanismus \"%s\"", + "Not permitted to use authentication mechanism \"%s\"" : "Es ist nicht zulässig Authentifizierungsmechanismus \"%s\" zu verwenden", "Unsatisfied backend parameters" : "Unbefriedigende Backend-Parameter", - "Unsatisfied authentication mechanism parameters" : "Unbefriedigende Autentifizierungs-Mechanismus Parameter", + "Unsatisfied authentication mechanism parameters" : "Unbefriedigende Authentifizierungsmechanismus-Parameter", "Insufficient data: %s" : "Unzureichende Daten: %s", "%s" : "%s", - "Storage with ID \"%d\" is not user editable" : "Speicher mit ID \"1 %d\" ist nicht durch den Benutzer editierbar", + "Storage with ID \"%d\" is not user editable" : "Speicher mit ID \"1 %d\" kann nicht vom Benutzer bearbeitet werden", "Access key" : "Zugangsschlüssel", - "Secret key" : "geheimer Schlüssel", + "Secret key" : "Geheimer Schlüssel", "Builtin" : "Eingebaut", "None" : "Keine", "OAuth1" : "OAuth1", @@ -54,7 +56,7 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "Client-ID", "Client secret" : "Geheime Zeichenkette des Client", - "OpenStack" : "Freihand", + "OpenStack" : "OpenStack", "Tenant name" : "Name des Mieters", "Identity endpoint URL" : "Identität Endpunkt-URL", "Rackspace" : "Rackspace", @@ -94,11 +96,11 @@ OC.L10N.register( "OpenStack Object Storage" : "Openstack-Objektspeicher", "Service name" : "Name des Dienstes", "Request timeout (seconds)" : "Anfrage-Zeitüberschreitung (Sekunden)", - "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. %s konnte nicht hinzugefügt werden Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.", - "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. %s konnte nicht hinzugefügt werden Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.", - "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. %s konnte nicht hinzugefügt werden. Bitte wenden Sie sich zur Installation an Ihren Administrator.", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Administrator.", "No external storage configured" : "Kein externer Speicher konfiguriert", - "You can add external storages in the personal settings" : "Sie können externe Speicher in den persönlichen Einstellungen hinzufügen", + "You can add external storages in the personal settings" : "Externe Speicher können in den persönlichen Einstellungen hinzugefügt werden", "Name" : "Name", "Storage type" : "Speichertyp", "Scope" : "Anwendungsbereich", @@ -116,8 +118,8 @@ OC.L10N.register( "Add storage" : "Speicher hinzufügen", "Advanced settings" : "Erweiterte Einstellungen", "Delete" : "Löschen", - "Allow users to mount external storage" : "Erlauben Sie den Benutzern externen Speicher hinzuzufügen", - "Allow users to mount the following external storage" : "Benutzern erlauben, den oder die folgenden externen Speicher einzubinden:", + "Allow users to mount external storage" : "Benutzern erlauben, externen Speicher einzubinden", + "Allow users to mount the following external storage" : "Benutzern erlauben, den folgenden externen Speicher einzubinden:", "Fetching request tokens failed. Verify that your app key and secret are correct." : "Abrufen des Anfrage-Tokens fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel korrekt sind.", "Fetching access tokens failed. Verify that your app key and secret are correct." : "Abrufen des Zugriff-Tokens fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel korrekt sind.", "Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s", @@ -125,7 +127,7 @@ OC.L10N.register( "Dropbox App Configuration" : "Dropbox-App Konfiguration", "Google Drive App Configuration" : "Google Drive - App Konfiguration", "Storage with id \"%i\" not found" : "Der Speicher mit der ID „%i“ wurde nicht gefunden", - "Storage with id \"%i\" is not user editable" : "Der Speicher mit der ID „%i“ ist nicht bearbeitbar durch Benutzer", + "Storage with id \"%i\" is not user editable" : "Der Speicher mit der ID \"%i\" kann nicht vom Benutzer bearbeitet werden", "Dropbox" : "Dropbox", "Google Drive" : "Google Drive" }, diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json index 55c9b31a8a2..22e359c0378 100644 --- a/apps/files_external/l10n/de_DE.json +++ b/apps/files_external/l10n/de_DE.json @@ -1,17 +1,19 @@ { "translations": { - "External storages" : "Externer Speicher", + "External storages" : "Externe Speicher", "Personal" : "Persönlich", "System" : "System", "Grant access" : "Zugriff gestatten", "Error configuring OAuth1" : "Fehler beim Konfigurieren von OAuth1", - "Please provide a valid app key and secret." : "Bitte tragen Sie einen gültigen App-Key mit Secret ein.", + "Please provide a valid app key and secret." : "Bitte einen gültigen Anwendungsschlüssel (App-Key) mit Sicherheitsschlüssel (Secret) eingeben.", "Error configuring OAuth2" : "Fehler beim Konfigurieren von OAuth2", "Generate keys" : "Schlüssel erzeugen", "Error generating key pair" : "Fehler beim Erzeugen des Schlüsselpaares", "All users. Type to select user or group." : "Alle Benutzer. Benutzer oder Gruppe zur Auswahl eingeben.", "(group)" : "(group)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilität mit MAC NFD-Kodierung (langsam)", - "Admin defined" : "Administrator definiert", + "Admin defined" : "Vom Administrator festgelegt", + "Are you sure you want to delete this external storage" : "Möchten Sie wirklich diesen externen Speicher löschen?", + "Delete storage?" : "Speicher löschen?", "Saved" : "Gespeichert", "Saving..." : "Speichere …", "Save" : "Speichern", @@ -19,31 +21,31 @@ "Couldn't access. Please log out and in again to activate this mount point" : "Zugriff nicht möglich. Bitte melden Sie sich ab und wieder an, um diesen Endpunkt zu aktivieren.", "Couldn't get the information from the remote server: {code} {type}" : "Konnte die Information vom entfernten Server nicht abrufen: {code} {type}", "Couldn't get the list of external mount points: {type}" : "Konnte die Liste von externen Speichern nicht laden: {type}", - "There was an error with message: " : "Ein Fehler ist aufgetreten:", - "External mount error" : "Externer Einhängefehler", - "external-storage" : "externer Speicher", + "There was an error with message: " : "Es ist ein Fehler mit folgender Meldung aufgetreten:", + "External mount error" : "Fehler beim Einbinden des externen Speichers", + "external-storage" : "Externer Speicher", "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Es konnte keine Liste der Windows-Netzlaufwerke empfangen werden: Leere Antwort vom Server", - "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Einige der konfigurierten externen Bereitstellungspunkte sind nicht angeschlossen. Bitte klicke Sie auf die roten Zeile(n) für weitere Informationen", - "Please enter the credentials for the {mount} mount" : "Bitte geben Sie die Zugangsdaten für den {mount} Speicher an", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Einige der konfigurierten externen Einbindungspunkte sind nicht verbunden. Bitte klicken Sie auf die roten Zeile(n) für weitere Informationen", + "Please enter the credentials for the {mount} mount" : "Bitte geben Sie die Anmeldeinformationen für den {mount} Speicher an", "Username" : "Benutzername", "Password" : "Passwort", "Credentials saved" : "Zugangsdaten gespeichert", "Credentials saving failed" : "Speichern der Zugangsdaten fehlgeschlagen", "Credentials required" : "Zugangsdaten benötigt", - "Storage with ID \"%d\" not found" : "Speicher mit ID \"1 %d\" nicht gefunden", - "Invalid backend or authentication mechanism class" : "Ungültiges Backend oder falscher Authentifizierungsmodus", - "Invalid mount point" : "Ungültiger mount point", + "Storage with ID \"%d\" not found" : "Der Speicher mit ID \"1 %d\" nicht gefunden", + "Invalid backend or authentication mechanism class" : "Ungültiger Backend- oder Authentifizierungsmechanismus", + "Invalid mount point" : "Ungültiger Einbindungspunkt", "Objectstore forbidden" : "Objekt nicht erlaubt", "Invalid storage backend \"%s\"" : "Ungültiges Speicher-Backend „%s“", "Not permitted to use backend \"%s\"" : "Es ist nicht zulässig Backend \"%s\" zu verwenden", - "Not permitted to use authentication mechanism \"%s\"" : "Nicht erlaubter Autentifizierungsmechanismus \"%s\"", + "Not permitted to use authentication mechanism \"%s\"" : "Es ist nicht zulässig Authentifizierungsmechanismus \"%s\" zu verwenden", "Unsatisfied backend parameters" : "Unbefriedigende Backend-Parameter", - "Unsatisfied authentication mechanism parameters" : "Unbefriedigende Autentifizierungs-Mechanismus Parameter", + "Unsatisfied authentication mechanism parameters" : "Unbefriedigende Authentifizierungsmechanismus-Parameter", "Insufficient data: %s" : "Unzureichende Daten: %s", "%s" : "%s", - "Storage with ID \"%d\" is not user editable" : "Speicher mit ID \"1 %d\" ist nicht durch den Benutzer editierbar", + "Storage with ID \"%d\" is not user editable" : "Speicher mit ID \"1 %d\" kann nicht vom Benutzer bearbeitet werden", "Access key" : "Zugangsschlüssel", - "Secret key" : "geheimer Schlüssel", + "Secret key" : "Geheimer Schlüssel", "Builtin" : "Eingebaut", "None" : "Keine", "OAuth1" : "OAuth1", @@ -52,7 +54,7 @@ "OAuth2" : "OAuth2", "Client ID" : "Client-ID", "Client secret" : "Geheime Zeichenkette des Client", - "OpenStack" : "Freihand", + "OpenStack" : "OpenStack", "Tenant name" : "Name des Mieters", "Identity endpoint URL" : "Identität Endpunkt-URL", "Rackspace" : "Rackspace", @@ -92,11 +94,11 @@ "OpenStack Object Storage" : "Openstack-Objektspeicher", "Service name" : "Name des Dienstes", "Request timeout (seconds)" : "Anfrage-Zeitüberschreitung (Sekunden)", - "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. %s konnte nicht hinzugefügt werden Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.", - "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. %s konnte nicht hinzugefügt werden Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.", - "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. %s konnte nicht hinzugefügt werden. Bitte wenden Sie sich zur Installation an Ihren Administrator.", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Administrator.", "No external storage configured" : "Kein externer Speicher konfiguriert", - "You can add external storages in the personal settings" : "Sie können externe Speicher in den persönlichen Einstellungen hinzufügen", + "You can add external storages in the personal settings" : "Externe Speicher können in den persönlichen Einstellungen hinzugefügt werden", "Name" : "Name", "Storage type" : "Speichertyp", "Scope" : "Anwendungsbereich", @@ -114,8 +116,8 @@ "Add storage" : "Speicher hinzufügen", "Advanced settings" : "Erweiterte Einstellungen", "Delete" : "Löschen", - "Allow users to mount external storage" : "Erlauben Sie den Benutzern externen Speicher hinzuzufügen", - "Allow users to mount the following external storage" : "Benutzern erlauben, den oder die folgenden externen Speicher einzubinden:", + "Allow users to mount external storage" : "Benutzern erlauben, externen Speicher einzubinden", + "Allow users to mount the following external storage" : "Benutzern erlauben, den folgenden externen Speicher einzubinden:", "Fetching request tokens failed. Verify that your app key and secret are correct." : "Abrufen des Anfrage-Tokens fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel korrekt sind.", "Fetching access tokens failed. Verify that your app key and secret are correct." : "Abrufen des Zugriff-Tokens fehlgeschlagen. Stellen Sie sicher, dass der Anwendungsschlüssel und Sicherheitsschlüssel korrekt sind.", "Step 1 failed. Exception: %s" : "Schritt 1 fehlgeschlagen. Fehlermeldung: %s", @@ -123,7 +125,7 @@ "Dropbox App Configuration" : "Dropbox-App Konfiguration", "Google Drive App Configuration" : "Google Drive - App Konfiguration", "Storage with id \"%i\" not found" : "Der Speicher mit der ID „%i“ wurde nicht gefunden", - "Storage with id \"%i\" is not user editable" : "Der Speicher mit der ID „%i“ ist nicht bearbeitbar durch Benutzer", + "Storage with id \"%i\" is not user editable" : "Der Speicher mit der ID \"%i\" kann nicht vom Benutzer bearbeitet werden", "Dropbox" : "Dropbox", "Google Drive" : "Google Drive" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js index fbfea11d96c..131c9af43ad 100644 --- a/apps/files_external/l10n/en_GB.js +++ b/apps/files_external/l10n/en_GB.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(group)", "Compatibility with Mac NFD encoding (slow)" : "Compatibility with Mac NFD encoding (slow)", "Admin defined" : "Admin defined", + "Are you sure you want to delete this external storage" : "Are you sure you want to delete this external storage", + "Delete storage?" : "Delete storage?", "Saved" : "Saved", "Saving..." : "Saving...", "Save" : "Save", diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json index 3f839a61a78..5c60ec6e344 100644 --- a/apps/files_external/l10n/en_GB.json +++ b/apps/files_external/l10n/en_GB.json @@ -12,6 +12,8 @@ "(group)" : "(group)", "Compatibility with Mac NFD encoding (slow)" : "Compatibility with Mac NFD encoding (slow)", "Admin defined" : "Admin defined", + "Are you sure you want to delete this external storage" : "Are you sure you want to delete this external storage", + "Delete storage?" : "Delete storage?", "Saved" : "Saved", "Saving..." : "Saving...", "Save" : "Save", diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js index f3638a4b5f1..b980588862e 100644 --- a/apps/files_external/l10n/es.js +++ b/apps/files_external/l10n/es.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(grupo)", "Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac MFD (lento)", "Admin defined" : "Admin definido", + "Are you sure you want to delete this external storage" : "¿Estás seguro de que quieres eliminar este almacenamiento externo?", + "Delete storage?" : "¿Borrar almacenamiento?", "Saved" : "Guardado", "Saving..." : "Guardando...", "Save" : "Guardar", diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json index fcb9f1a8dc2..0c6ab09d88d 100644 --- a/apps/files_external/l10n/es.json +++ b/apps/files_external/l10n/es.json @@ -12,6 +12,8 @@ "(group)" : "(grupo)", "Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac MFD (lento)", "Admin defined" : "Admin definido", + "Are you sure you want to delete this external storage" : "¿Estás seguro de que quieres eliminar este almacenamiento externo?", + "Delete storage?" : "¿Borrar almacenamiento?", "Saved" : "Guardado", "Saving..." : "Guardando...", "Save" : "Guardar", diff --git a/apps/files_external/l10n/es_MX.js b/apps/files_external/l10n/es_MX.js index 938acfc399c..720a7c663d2 100644 --- a/apps/files_external/l10n/es_MX.js +++ b/apps/files_external/l10n/es_MX.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(grupo)", "Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac NFD (lenta)", "Admin defined" : "Administrador definido", + "Are you sure you want to delete this external storage" : "¿Estás seguro de que quieres borrar este almacenamiento externo?", + "Delete storage?" : "¿Borrar almacenamiento?", "Saved" : "Guardado", "Saving..." : "Guardando...", "Save" : "Guardar", diff --git a/apps/files_external/l10n/es_MX.json b/apps/files_external/l10n/es_MX.json index 3572629ad05..59b9db811b3 100644 --- a/apps/files_external/l10n/es_MX.json +++ b/apps/files_external/l10n/es_MX.json @@ -12,6 +12,8 @@ "(group)" : "(grupo)", "Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac NFD (lenta)", "Admin defined" : "Administrador definido", + "Are you sure you want to delete this external storage" : "¿Estás seguro de que quieres borrar este almacenamiento externo?", + "Delete storage?" : "¿Borrar almacenamiento?", "Saved" : "Guardado", "Saving..." : "Guardando...", "Save" : "Guardar", diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js index 4448f521408..dee98fd65c6 100644 --- a/apps/files_external/l10n/fr.js +++ b/apps/files_external/l10n/fr.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(groupe)", "Compatibility with Mac NFD encoding (slow)" : "Compatibilité avec l'encodage Mac NFD (lent)", "Admin defined" : "Défini par l'administrateur", + "Are you sure you want to delete this external storage" : "Êtes-vous sûr de vouloir supprimer ce stockage externe ?", + "Delete storage?" : "Supprimer ce support de stockage ?", "Saved" : "Sauvegardé", "Saving..." : "Enregistrement...", "Save" : "Enregistrer", diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json index b2b068cf703..d1834c87a23 100644 --- a/apps/files_external/l10n/fr.json +++ b/apps/files_external/l10n/fr.json @@ -12,6 +12,8 @@ "(group)" : "(groupe)", "Compatibility with Mac NFD encoding (slow)" : "Compatibilité avec l'encodage Mac NFD (lent)", "Admin defined" : "Défini par l'administrateur", + "Are you sure you want to delete this external storage" : "Êtes-vous sûr de vouloir supprimer ce stockage externe ?", + "Delete storage?" : "Supprimer ce support de stockage ?", "Saved" : "Sauvegardé", "Saving..." : "Enregistrement...", "Save" : "Enregistrer", diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js index fab5290e492..e19f6a657db 100644 --- a/apps/files_external/l10n/it.js +++ b/apps/files_external/l10n/it.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(gruppo)", "Compatibility with Mac NFD encoding (slow)" : "Compatibilità con la codifica Mac NFD (lento)", "Admin defined" : "Definito dall'amministratore", + "Are you sure you want to delete this external storage" : "Sei sicuro di voler eliminare questa archiviazione esterna?", + "Delete storage?" : "Vuoi eliminare l'archiviazione?", "Saved" : "Salvato", "Saving..." : "Salvataggio in corso...", "Save" : "Salva", diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json index 6f4a8e52ce1..ecb8d2082e6 100644 --- a/apps/files_external/l10n/it.json +++ b/apps/files_external/l10n/it.json @@ -12,6 +12,8 @@ "(group)" : "(gruppo)", "Compatibility with Mac NFD encoding (slow)" : "Compatibilità con la codifica Mac NFD (lento)", "Admin defined" : "Definito dall'amministratore", + "Are you sure you want to delete this external storage" : "Sei sicuro di voler eliminare questa archiviazione esterna?", + "Delete storage?" : "Vuoi eliminare l'archiviazione?", "Saved" : "Salvato", "Saving..." : "Salvataggio in corso...", "Save" : "Salva", diff --git a/apps/files_external/l10n/nb.js b/apps/files_external/l10n/nb.js index 3e277383e89..944f3af56ec 100644 --- a/apps/files_external/l10n/nb.js +++ b/apps/files_external/l10n/nb.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(gruppe)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibelt med Mac NFD koding (treg)", "Admin defined" : "Admin-definert", + "Are you sure you want to delete this external storage" : "Er du sikker på at du vil slette denne eksterne lagringsplassen?", + "Delete storage?" : "Slett lagringsplass", "Saved" : "Lagret", "Saving..." : "Lagrer...", "Save" : "Lagre", diff --git a/apps/files_external/l10n/nb.json b/apps/files_external/l10n/nb.json index 8539841a28f..576cd2a6420 100644 --- a/apps/files_external/l10n/nb.json +++ b/apps/files_external/l10n/nb.json @@ -12,6 +12,8 @@ "(group)" : "(gruppe)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibelt med Mac NFD koding (treg)", "Admin defined" : "Admin-definert", + "Are you sure you want to delete this external storage" : "Er du sikker på at du vil slette denne eksterne lagringsplassen?", + "Delete storage?" : "Slett lagringsplass", "Saved" : "Lagret", "Saving..." : "Lagrer...", "Save" : "Lagre", diff --git a/apps/files_external/l10n/pl.js b/apps/files_external/l10n/pl.js index db215c56e40..912b0efb1c1 100644 --- a/apps/files_external/l10n/pl.js +++ b/apps/files_external/l10n/pl.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(grupa)", "Compatibility with Mac NFD encoding (slow)" : "Zgodność z kodowaniem Mac NFD (powolny)", "Admin defined" : "Zdefiniowane przez Administratora", + "Are you sure you want to delete this external storage" : "Czy na pewno chcesz usunąć zewnętrzny magazyn?", + "Delete storage?" : "Usunąć magazyn?", "Saved" : "Zapisano", "Saving..." : "Zapisywanie...", "Save" : "Zapisz", diff --git a/apps/files_external/l10n/pl.json b/apps/files_external/l10n/pl.json index 7daea0dc69c..31da2302ee0 100644 --- a/apps/files_external/l10n/pl.json +++ b/apps/files_external/l10n/pl.json @@ -12,6 +12,8 @@ "(group)" : "(grupa)", "Compatibility with Mac NFD encoding (slow)" : "Zgodność z kodowaniem Mac NFD (powolny)", "Admin defined" : "Zdefiniowane przez Administratora", + "Are you sure you want to delete this external storage" : "Czy na pewno chcesz usunąć zewnętrzny magazyn?", + "Delete storage?" : "Usunąć magazyn?", "Saved" : "Zapisano", "Saving..." : "Zapisywanie...", "Save" : "Zapisz", diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js index 5521d0f616b..077b89e1cf7 100644 --- a/apps/files_external/l10n/pt_BR.js +++ b/apps/files_external/l10n/pt_BR.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(grupo)", "Compatibility with Mac NFD encoding (slow)" : "Compatibilidade com a codificação Mac NFD (lento)", "Admin defined" : "Definido pelo administrador", + "Are you sure you want to delete this external storage" : "Quer realmente excluir este armazenamento externo", + "Delete storage?" : "Excluir armazenamento?", "Saved" : "Salvo", "Saving..." : "Salvando...", "Save" : "Salvar", diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json index da7c8f304cf..f9472a5c79d 100644 --- a/apps/files_external/l10n/pt_BR.json +++ b/apps/files_external/l10n/pt_BR.json @@ -12,6 +12,8 @@ "(group)" : "(grupo)", "Compatibility with Mac NFD encoding (slow)" : "Compatibilidade com a codificação Mac NFD (lento)", "Admin defined" : "Definido pelo administrador", + "Are you sure you want to delete this external storage" : "Quer realmente excluir este armazenamento externo", + "Delete storage?" : "Excluir armazenamento?", "Saved" : "Salvo", "Saving..." : "Salvando...", "Save" : "Salvar", diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js index db51be07405..75e2e243589 100644 --- a/apps/files_external/l10n/ru.js +++ b/apps/files_external/l10n/ru.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(группа)", "Compatibility with Mac NFD encoding (slow)" : "Совместимость с кодировкой Mac NFD (медленно)", "Admin defined" : "Определено админом", + "Are you sure you want to delete this external storage" : "Действительно удалить это внешнее хранилище?", + "Delete storage?" : "Удалить хранилище?", "Saved" : "Сохранено", "Saving..." : "Сохранение...", "Save" : "Сохранить", diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json index 520136f7520..27da77399f8 100644 --- a/apps/files_external/l10n/ru.json +++ b/apps/files_external/l10n/ru.json @@ -12,6 +12,8 @@ "(group)" : "(группа)", "Compatibility with Mac NFD encoding (slow)" : "Совместимость с кодировкой Mac NFD (медленно)", "Admin defined" : "Определено админом", + "Are you sure you want to delete this external storage" : "Действительно удалить это внешнее хранилище?", + "Delete storage?" : "Удалить хранилище?", "Saved" : "Сохранено", "Saving..." : "Сохранение...", "Save" : "Сохранить", diff --git a/apps/files_external/l10n/sr.js b/apps/files_external/l10n/sr.js index fe9203fd9df..e32cb5222af 100644 --- a/apps/files_external/l10n/sr.js +++ b/apps/files_external/l10n/sr.js @@ -1,31 +1,74 @@ OC.L10N.register( "files_external", { - "Step 1 failed. Exception: %s" : "Корак 1 није успео. Изузетак: %s", - "Step 2 failed. Exception: %s" : "Корак 2 није успео. Изузетак: %s", - "External storage" : "Спољашње складиште", + "External storages" : "Спољашње складиште", "Personal" : "Лично", "System" : "Систем", "Grant access" : "Одобри приступ", + "Error configuring OAuth1" : "Грешка у подешавању OAuth1", + "Please provide a valid app key and secret." : "Наведите исправан апликативни кључ и тајну.", + "Error configuring OAuth2" : "Грешка у подешавању OAuth2", "Generate keys" : "Генериши кључеве", "Error generating key pair" : "Грешка при генерисању пара кључева", "All users. Type to select user or group." : "Сви корисници. Куцајте за избор корисника или групе.", "(group)" : "(група)", + "Compatibility with Mac NFD encoding (slow)" : "Компатибилност са NFD кодирањем (споро)", + "Admin defined" : "Дефинисао администратор", + "Are you sure you want to delete this external storage" : "Да ли стварно желите да обришете ово спољашње складиште?", + "Delete storage?" : "Обриши складиште?", "Saved" : "Сачувано", + "Saving..." : "Чувам...", + "Save" : "Сачувај", + "Empty response from the server" : "Празан одговор са сервера", + "Couldn't access. Please log out and in again to activate this mount point" : "Не могу да приступим. Одјавите се и пријавите поново да активирате ову тачку монтирања", + "Couldn't get the information from the remote server: {code} {type}" : "Не могу да дохватим информације са удаљеног сервера: {code} {type}", + "Couldn't get the list of external mount points: {type}" : "Не могу да дохватим листу спољних тачака монтирања: {type}", + "There was an error with message: " : "Догодила се грешка уз поруку:", + "External mount error" : "Спољна грешка при монтирању", + "external-storage" : "спољашње-складиште", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Не могу да добавим листу тачака монтирања Виндоуз мрежних дискова: празан одговор са сервера", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Неке од конфигурисаних спољашњих тачака монтирања нису повезане. Кликните на црвени ред(ове) за више информација", + "Please enter the credentials for the {mount} mount" : "Унесите акредитиве за {mount} тачку монтирања", "Username" : "Корисничко име", "Password" : "Лозинка", - "Save" : "Сачувај", - "Storage with id \"%i\" not found" : "Складиште са идентификацијом \"%i\" није пронађено", + "Credentials saved" : "Акредитиви снимљени", + "Credentials saving failed" : "Снимање акредитива није успело", + "Credentials required" : "Потребни акредитиви", + "Storage with ID \"%d\" not found" : "Складиште са идентификацијом \"%d\" није пронађено", + "Invalid backend or authentication mechanism class" : "Неисправан позадински механизам или начин провере идентитета", "Invalid mount point" : "Неисправна тачка монтирања", + "Objectstore forbidden" : "Забрањен приступ", "Invalid storage backend \"%s\"" : "Неисправна позадина складишта „%s“", + "Not permitted to use backend \"%s\"" : "Недозвољени коришћење позадине \"%s\"", + "Not permitted to use authentication mechanism \"%s\"" : "Недозвољено коришћене провере идентитета користећи \"%s\"", + "Unsatisfied backend parameters" : "Недостају параметри за позадински механизам", + "Unsatisfied authentication mechanism parameters" : "Недостају параметри за механизам провере идентитета", + "Insufficient data: %s" : "Недеовољно података: %s", + "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "Корисник не може да мења складиште са идентификацијом \"%d\"", + "Access key" : "Кључ за приступ", + "Secret key" : "Тајни кључ ", + "Builtin" : "Уграђено", "None" : "Ништа", + "OAuth1" : "OAuth1", "App key" : "Кључ апликације", "App secret" : "Тајна апликације", + "OAuth2" : "OAuth2", "Client ID" : "ИД клијента", "Client secret" : "Тајна клијента", + "OpenStack" : "OpenStack", + "Tenant name" : "Име OpenStack тенанта", + "Identity endpoint URL" : "УРЛ идентитета", + "Rackspace" : "Rackspace", "API key" : "API кључ", + "Global credentials" : "Глобални акредитиви", + "Log-in credentials, save in database" : "Акредитиви за пријаву, чувани у бази", + "Username and password" : "Корисничко име и лозинка", + "Log-in credentials, save in session" : "Акредитиви за пријаву, чувани у сесији", + "User entered, store in database" : "Корисник уноси, чува се у бази", + "RSA public key" : "RSA јавни кључ", "Public key" : "Јавни кључ", - "Amazon S3" : "Амазон С3", + "Amazon S3" : "Amazon S3", "Bucket" : "Канта", "Hostname" : "Име домаћина", "Port" : "Порт", @@ -36,45 +79,56 @@ OC.L10N.register( "URL" : "УРЛ", "Remote subfolder" : "Удаљена потфасцикла", "Secure https://" : "Сигурни https://", - "Dropbox" : "Dropbox", + "FTP" : "FTP", "Host" : "Домаћин", "Secure ftps://" : "Сигурни ftps://", "Local" : "локална", "Location" : "Локација", - "ownCloud" : "оунКлауд", - "SFTP" : "СФТП", + "Nextcloud" : "Некстклауд", + "SFTP" : "SFTP", "Root" : "Корен", - "SFTP with secret key login" : "СФТП са пријавом помоћу тајног кључа", - "SMB / CIFS" : "ЦМБ/ЦИФС", + "SFTP with secret key login" : "SFTP са пријавом помоћу тајног кључа", + "SMB / CIFS" : "SMB / CIFS", "Share" : "Дели", "Domain" : "Домен", - "SMB / CIFS using OC login" : "СМБ/ЦИФС користећи оунКлауд пријаву", + "SMB / CIFS using OC login" : "SMB / CIFS користећи оунКлауд пријаву", "Username as share" : "Корисничко име као дељење", "OpenStack Object Storage" : "OpenStack Object Storage", "Service name" : "Назив услуге", - "<b>Note:</b> " : "<b>Напомена:</b> ", - "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Напомена:</b> cURL подршка за ПХП није омогућена или инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", - "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Напомена:</b> ФТП подршка за ПХП није омогућена или инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", - "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Напомена:</b> „%s“ није инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", + "Request timeout (seconds)" : "Време захтева истекло (секунде)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "cURL подршка за PHP није омогућена или инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "FTP подршка за PHP није омогућена или инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "„%s“ није инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", "No external storage configured" : "Нема подешеног спољашњег складишта", - "You can add external storages in the personal settings" : "Можете додати спољна складишта у вашим личним подешавањима", + "You can add external storages in the personal settings" : "Можете додати спољашња складишта у вашим личним подешавањима", "Name" : "Назив", "Storage type" : "Тип складишта", - "Scope" : "Распон", + "Scope" : "Опсег", "Enable encryption" : "Укључи шифровање", "Enable previews" : "Укључи прегледе", "Enable sharing" : "Укључи дељење", - "Check for changes" : "Провери измене", + "Check for changes" : "Проверавај за измене", "Never" : "никад", "Once every direct access" : "једном при сваком директном приступу", - "External Storage" : "Спољашње складиште", "Folder name" : "Назив фасцикле", - "Authentication" : "Аутентификација", + "External storage" : "Спољашње складиште", + "Authentication" : "Провера идентитета", "Configuration" : "Подешавање", "Available for" : "Доступно за", "Add storage" : "Додај складиште", "Advanced settings" : "Напредне поставке", "Delete" : "Обриши", - "Allow users to mount the following external storage" : "Дозволи корисницима да монтирају следећа спољашња складишта" + "Allow users to mount external storage" : "Дозволи корисницима да монтирају спољашња складишта", + "Allow users to mount the following external storage" : "Дозволи корисницима да монтирају следећа спољашња складишта", + "Fetching request tokens failed. Verify that your app key and secret are correct." : "Дохватање токена за захтеве није успело. Проверите да ли су апликативни кључ и тајна исправни.", + "Fetching access tokens failed. Verify that your app key and secret are correct." : "Дохватање токена за приступ није успело. Проверите да ли су апликативни кључ и тајна исправни.", + "Step 1 failed. Exception: %s" : "Корак 1 није успео. Грешка: %s", + "Step 2 failed. Exception: %s" : "Корак 2 није успео. Грешка: %s", + "Dropbox App Configuration" : "Dropbox конфигурација апликације", + "Google Drive App Configuration" : "Google Drive конфигурација апликације", + "Storage with id \"%i\" not found" : "Складиште са идентификацијом \"%i\" није пронађено", + "Storage with id \"%i\" is not user editable" : "Корисници не могу да мењају складиште са идентификацијом \"%i\"", + "Dropbox" : "Dropbox", + "Google Drive" : "Google Drive" }, "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_external/l10n/sr.json b/apps/files_external/l10n/sr.json index 7449424a301..1f1a8b7dfe9 100644 --- a/apps/files_external/l10n/sr.json +++ b/apps/files_external/l10n/sr.json @@ -1,29 +1,72 @@ { "translations": { - "Step 1 failed. Exception: %s" : "Корак 1 није успео. Изузетак: %s", - "Step 2 failed. Exception: %s" : "Корак 2 није успео. Изузетак: %s", - "External storage" : "Спољашње складиште", + "External storages" : "Спољашње складиште", "Personal" : "Лично", "System" : "Систем", "Grant access" : "Одобри приступ", + "Error configuring OAuth1" : "Грешка у подешавању OAuth1", + "Please provide a valid app key and secret." : "Наведите исправан апликативни кључ и тајну.", + "Error configuring OAuth2" : "Грешка у подешавању OAuth2", "Generate keys" : "Генериши кључеве", "Error generating key pair" : "Грешка при генерисању пара кључева", "All users. Type to select user or group." : "Сви корисници. Куцајте за избор корисника или групе.", "(group)" : "(група)", + "Compatibility with Mac NFD encoding (slow)" : "Компатибилност са NFD кодирањем (споро)", + "Admin defined" : "Дефинисао администратор", + "Are you sure you want to delete this external storage" : "Да ли стварно желите да обришете ово спољашње складиште?", + "Delete storage?" : "Обриши складиште?", "Saved" : "Сачувано", + "Saving..." : "Чувам...", + "Save" : "Сачувај", + "Empty response from the server" : "Празан одговор са сервера", + "Couldn't access. Please log out and in again to activate this mount point" : "Не могу да приступим. Одјавите се и пријавите поново да активирате ову тачку монтирања", + "Couldn't get the information from the remote server: {code} {type}" : "Не могу да дохватим информације са удаљеног сервера: {code} {type}", + "Couldn't get the list of external mount points: {type}" : "Не могу да дохватим листу спољних тачака монтирања: {type}", + "There was an error with message: " : "Догодила се грешка уз поруку:", + "External mount error" : "Спољна грешка при монтирању", + "external-storage" : "спољашње-складиште", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Не могу да добавим листу тачака монтирања Виндоуз мрежних дискова: празан одговор са сервера", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Неке од конфигурисаних спољашњих тачака монтирања нису повезане. Кликните на црвени ред(ове) за више информација", + "Please enter the credentials for the {mount} mount" : "Унесите акредитиве за {mount} тачку монтирања", "Username" : "Корисничко име", "Password" : "Лозинка", - "Save" : "Сачувај", - "Storage with id \"%i\" not found" : "Складиште са идентификацијом \"%i\" није пронађено", + "Credentials saved" : "Акредитиви снимљени", + "Credentials saving failed" : "Снимање акредитива није успело", + "Credentials required" : "Потребни акредитиви", + "Storage with ID \"%d\" not found" : "Складиште са идентификацијом \"%d\" није пронађено", + "Invalid backend or authentication mechanism class" : "Неисправан позадински механизам или начин провере идентитета", "Invalid mount point" : "Неисправна тачка монтирања", + "Objectstore forbidden" : "Забрањен приступ", "Invalid storage backend \"%s\"" : "Неисправна позадина складишта „%s“", + "Not permitted to use backend \"%s\"" : "Недозвољени коришћење позадине \"%s\"", + "Not permitted to use authentication mechanism \"%s\"" : "Недозвољено коришћене провере идентитета користећи \"%s\"", + "Unsatisfied backend parameters" : "Недостају параметри за позадински механизам", + "Unsatisfied authentication mechanism parameters" : "Недостају параметри за механизам провере идентитета", + "Insufficient data: %s" : "Недеовољно података: %s", + "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "Корисник не може да мења складиште са идентификацијом \"%d\"", + "Access key" : "Кључ за приступ", + "Secret key" : "Тајни кључ ", + "Builtin" : "Уграђено", "None" : "Ништа", + "OAuth1" : "OAuth1", "App key" : "Кључ апликације", "App secret" : "Тајна апликације", + "OAuth2" : "OAuth2", "Client ID" : "ИД клијента", "Client secret" : "Тајна клијента", + "OpenStack" : "OpenStack", + "Tenant name" : "Име OpenStack тенанта", + "Identity endpoint URL" : "УРЛ идентитета", + "Rackspace" : "Rackspace", "API key" : "API кључ", + "Global credentials" : "Глобални акредитиви", + "Log-in credentials, save in database" : "Акредитиви за пријаву, чувани у бази", + "Username and password" : "Корисничко име и лозинка", + "Log-in credentials, save in session" : "Акредитиви за пријаву, чувани у сесији", + "User entered, store in database" : "Корисник уноси, чува се у бази", + "RSA public key" : "RSA јавни кључ", "Public key" : "Јавни кључ", - "Amazon S3" : "Амазон С3", + "Amazon S3" : "Amazon S3", "Bucket" : "Канта", "Hostname" : "Име домаћина", "Port" : "Порт", @@ -34,45 +77,56 @@ "URL" : "УРЛ", "Remote subfolder" : "Удаљена потфасцикла", "Secure https://" : "Сигурни https://", - "Dropbox" : "Dropbox", + "FTP" : "FTP", "Host" : "Домаћин", "Secure ftps://" : "Сигурни ftps://", "Local" : "локална", "Location" : "Локација", - "ownCloud" : "оунКлауд", - "SFTP" : "СФТП", + "Nextcloud" : "Некстклауд", + "SFTP" : "SFTP", "Root" : "Корен", - "SFTP with secret key login" : "СФТП са пријавом помоћу тајног кључа", - "SMB / CIFS" : "ЦМБ/ЦИФС", + "SFTP with secret key login" : "SFTP са пријавом помоћу тајног кључа", + "SMB / CIFS" : "SMB / CIFS", "Share" : "Дели", "Domain" : "Домен", - "SMB / CIFS using OC login" : "СМБ/ЦИФС користећи оунКлауд пријаву", + "SMB / CIFS using OC login" : "SMB / CIFS користећи оунКлауд пријаву", "Username as share" : "Корисничко име као дељење", "OpenStack Object Storage" : "OpenStack Object Storage", "Service name" : "Назив услуге", - "<b>Note:</b> " : "<b>Напомена:</b> ", - "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Напомена:</b> cURL подршка за ПХП није омогућена или инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", - "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Напомена:</b> ФТП подршка за ПХП није омогућена или инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", - "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Напомена:</b> „%s“ није инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", + "Request timeout (seconds)" : "Време захтева истекло (секунде)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "cURL подршка за PHP није омогућена или инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "FTP подршка за PHP није омогућена или инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "„%s“ није инсталирана. Монтирање %s није могуће. Затражите од вашег администратора система да је инсталира.", "No external storage configured" : "Нема подешеног спољашњег складишта", - "You can add external storages in the personal settings" : "Можете додати спољна складишта у вашим личним подешавањима", + "You can add external storages in the personal settings" : "Можете додати спољашња складишта у вашим личним подешавањима", "Name" : "Назив", "Storage type" : "Тип складишта", - "Scope" : "Распон", + "Scope" : "Опсег", "Enable encryption" : "Укључи шифровање", "Enable previews" : "Укључи прегледе", "Enable sharing" : "Укључи дељење", - "Check for changes" : "Провери измене", + "Check for changes" : "Проверавај за измене", "Never" : "никад", "Once every direct access" : "једном при сваком директном приступу", - "External Storage" : "Спољашње складиште", "Folder name" : "Назив фасцикле", - "Authentication" : "Аутентификација", + "External storage" : "Спољашње складиште", + "Authentication" : "Провера идентитета", "Configuration" : "Подешавање", "Available for" : "Доступно за", "Add storage" : "Додај складиште", "Advanced settings" : "Напредне поставке", "Delete" : "Обриши", - "Allow users to mount the following external storage" : "Дозволи корисницима да монтирају следећа спољашња складишта" + "Allow users to mount external storage" : "Дозволи корисницима да монтирају спољашња складишта", + "Allow users to mount the following external storage" : "Дозволи корисницима да монтирају следећа спољашња складишта", + "Fetching request tokens failed. Verify that your app key and secret are correct." : "Дохватање токена за захтеве није успело. Проверите да ли су апликативни кључ и тајна исправни.", + "Fetching access tokens failed. Verify that your app key and secret are correct." : "Дохватање токена за приступ није успело. Проверите да ли су апликативни кључ и тајна исправни.", + "Step 1 failed. Exception: %s" : "Корак 1 није успео. Грешка: %s", + "Step 2 failed. Exception: %s" : "Корак 2 није успео. Грешка: %s", + "Dropbox App Configuration" : "Dropbox конфигурација апликације", + "Google Drive App Configuration" : "Google Drive конфигурација апликације", + "Storage with id \"%i\" not found" : "Складиште са идентификацијом \"%i\" није пронађено", + "Storage with id \"%i\" is not user editable" : "Корисници не могу да мењају складиште са идентификацијом \"%i\"", + "Dropbox" : "Dropbox", + "Google Drive" : "Google Drive" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/sv.js b/apps/files_external/l10n/sv.js index afbc60a84a5..72d127e4b7b 100644 --- a/apps/files_external/l10n/sv.js +++ b/apps/files_external/l10n/sv.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(grupp)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilitet med Mac NFD kodning (slö)", "Admin defined" : "Admin definerad", + "Are you sure you want to delete this external storage" : "Är du säker att du vill ta bort denna externa lagringen", + "Delete storage?" : "Ta bort lagring?", "Saved" : "Sparad", "Saving..." : "Sparar...", "Save" : "Spara", diff --git a/apps/files_external/l10n/sv.json b/apps/files_external/l10n/sv.json index c23b60bed48..8e335c0c5a2 100644 --- a/apps/files_external/l10n/sv.json +++ b/apps/files_external/l10n/sv.json @@ -12,6 +12,8 @@ "(group)" : "(grupp)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilitet med Mac NFD kodning (slö)", "Admin defined" : "Admin definerad", + "Are you sure you want to delete this external storage" : "Är du säker att du vill ta bort denna externa lagringen", + "Delete storage?" : "Ta bort lagring?", "Saved" : "Sparad", "Saving..." : "Sparar...", "Save" : "Spara", diff --git a/apps/files_external/l10n/tr.js b/apps/files_external/l10n/tr.js index 2a879225e84..152963db282 100644 --- a/apps/files_external/l10n/tr.js +++ b/apps/files_external/l10n/tr.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(grup)", "Compatibility with Mac NFD encoding (slow)" : "Mac NFD şifrelemesiyle uyumlu (yavaş)", "Admin defined" : "Yönetici ayarlamış", + "Are you sure you want to delete this external storage" : "Bu dış depolamayı silmek istediğinize emin misiniz", + "Delete storage?" : "Depolama silinsin mi?", "Saved" : "Kaydedildi", "Saving..." : "Kaydediliyor...", "Save" : "Kaydet", diff --git a/apps/files_external/l10n/tr.json b/apps/files_external/l10n/tr.json index 4fd06dd5d19..efa75513f54 100644 --- a/apps/files_external/l10n/tr.json +++ b/apps/files_external/l10n/tr.json @@ -12,6 +12,8 @@ "(group)" : "(grup)", "Compatibility with Mac NFD encoding (slow)" : "Mac NFD şifrelemesiyle uyumlu (yavaş)", "Admin defined" : "Yönetici ayarlamış", + "Are you sure you want to delete this external storage" : "Bu dış depolamayı silmek istediğinize emin misiniz", + "Delete storage?" : "Depolama silinsin mi?", "Saved" : "Kaydedildi", "Saving..." : "Kaydediliyor...", "Save" : "Kaydet", diff --git a/apps/files_external/l10n/zh_CN.js b/apps/files_external/l10n/zh_CN.js index 2eac6e70ad9..83aea82084c 100644 --- a/apps/files_external/l10n/zh_CN.js +++ b/apps/files_external/l10n/zh_CN.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(分组)", "Compatibility with Mac NFD encoding (slow)" : "兼用 Mac NFD 编码 (慢)", "Admin defined" : "管理员定义", + "Are you sure you want to delete this external storage" : "是否要删除该外部存储", + "Delete storage?" : "删除存储?", "Saved" : "已保存", "Saving..." : "正在保存...", "Save" : "保存", diff --git a/apps/files_external/l10n/zh_CN.json b/apps/files_external/l10n/zh_CN.json index 9883dfa7a90..95705cc41dc 100644 --- a/apps/files_external/l10n/zh_CN.json +++ b/apps/files_external/l10n/zh_CN.json @@ -12,6 +12,8 @@ "(group)" : "(分组)", "Compatibility with Mac NFD encoding (slow)" : "兼用 Mac NFD 编码 (慢)", "Admin defined" : "管理员定义", + "Are you sure you want to delete this external storage" : "是否要删除该外部存储", + "Delete storage?" : "删除存储?", "Saved" : "已保存", "Saving..." : "正在保存...", "Save" : "保存", diff --git a/apps/files_sharing/composer/autoload.php b/apps/files_sharing/composer/autoload.php new file mode 100644 index 00000000000..3b046bff7f4 --- /dev/null +++ b/apps/files_sharing/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441::getLoader(); diff --git a/apps/files_sharing/composer/composer.json b/apps/files_sharing/composer/composer.json new file mode 100644 index 00000000000..4d2aae1d6e1 --- /dev/null +++ b/apps/files_sharing/composer/composer.json @@ -0,0 +1,12 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true + }, + "autoload" : { + "psr-4": { + "OCA\\Files_Sharing\\": "../lib/" + } + } +} diff --git a/apps/files_sharing/composer/composer/ClassLoader.php b/apps/files_sharing/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/files_sharing/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/files_sharing/composer/composer/LICENSE b/apps/files_sharing/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/files_sharing/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/files_sharing/composer/composer/autoload_classmap.php b/apps/files_sharing/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..48b9651a00d --- /dev/null +++ b/apps/files_sharing/composer/composer/autoload_classmap.php @@ -0,0 +1,56 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Files_Sharing\\Activity\\Filter' => $baseDir . '/../lib/Activity/Filter.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Base' => $baseDir . '/../lib/Activity/Providers/Base.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Downloads' => $baseDir . '/../lib/Activity/Providers/Downloads.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Groups' => $baseDir . '/../lib/Activity/Providers/Groups.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\PublicLinks' => $baseDir . '/../lib/Activity/Providers/PublicLinks.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\RemoteShares' => $baseDir . '/../lib/Activity/Providers/RemoteShares.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Users' => $baseDir . '/../lib/Activity/Providers/Users.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\PublicLinks' => $baseDir . '/../lib/Activity/Settings/PublicLinks.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\RemoteShare' => $baseDir . '/../lib/Activity/Settings/RemoteShare.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\Shared' => $baseDir . '/../lib/Activity/Settings/Shared.php', + 'OCA\\Files_Sharing\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Files_Sharing\\Cache' => $baseDir . '/../lib/Cache.php', + 'OCA\\Files_Sharing\\Capabilities' => $baseDir . '/../lib/Capabilities.php', + 'OCA\\Files_Sharing\\Command\\CleanupRemoteStorages' => $baseDir . '/../lib/Command/CleanupRemoteStorages.php', + 'OCA\\Files_Sharing\\Controller\\ExternalSharesController' => $baseDir . '/../lib/Controller/ExternalSharesController.php', + 'OCA\\Files_Sharing\\Controller\\PublicPreviewController' => $baseDir . '/../lib/Controller/PublicPreviewController.php', + 'OCA\\Files_Sharing\\Controller\\RemoteController' => $baseDir . '/../lib/Controller/RemoteController.php', + 'OCA\\Files_Sharing\\Controller\\ShareAPIController' => $baseDir . '/../lib/Controller/ShareAPIController.php', + 'OCA\\Files_Sharing\\Controller\\ShareController' => $baseDir . '/../lib/Controller/ShareController.php', + 'OCA\\Files_Sharing\\Controller\\ShareInfoController' => $baseDir . '/../lib/Controller/ShareInfoController.php', + 'OCA\\Files_Sharing\\Controller\\ShareesAPIController' => $baseDir . '/../lib/Controller/ShareesAPIController.php', + 'OCA\\Files_Sharing\\DeleteOrphanedSharesJob' => $baseDir . '/../lib/DeleteOrphanedSharesJob.php', + 'OCA\\Files_Sharing\\Exceptions\\BrokenPath' => $baseDir . '/../lib/Exceptions/BrokenPath.php', + 'OCA\\Files_Sharing\\Exceptions\\S2SException' => $baseDir . '/../lib/Exceptions/S2SException.php', + 'OCA\\Files_Sharing\\ExpireSharesJob' => $baseDir . '/../lib/ExpireSharesJob.php', + 'OCA\\Files_Sharing\\External\\Cache' => $baseDir . '/../lib/External/Cache.php', + 'OCA\\Files_Sharing\\External\\Manager' => $baseDir . '/../lib/External/Manager.php', + 'OCA\\Files_Sharing\\External\\Mount' => $baseDir . '/../lib/External/Mount.php', + 'OCA\\Files_Sharing\\External\\MountProvider' => $baseDir . '/../lib/External/MountProvider.php', + 'OCA\\Files_Sharing\\External\\Scanner' => $baseDir . '/../lib/External/Scanner.php', + 'OCA\\Files_Sharing\\External\\Storage' => $baseDir . '/../lib/External/Storage.php', + 'OCA\\Files_Sharing\\External\\Watcher' => $baseDir . '/../lib/External/Watcher.php', + 'OCA\\Files_Sharing\\Helper' => $baseDir . '/../lib/Helper.php', + 'OCA\\Files_Sharing\\Hooks' => $baseDir . '/../lib/Hooks.php', + 'OCA\\Files_Sharing\\ISharedStorage' => $baseDir . '/../lib/ISharedStorage.php', + 'OCA\\Files_Sharing\\Middleware\\OCSShareAPIMiddleware' => $baseDir . '/../lib/Middleware/OCSShareAPIMiddleware.php', + 'OCA\\Files_Sharing\\Middleware\\ShareInfoMiddleware' => $baseDir . '/../lib/Middleware/ShareInfoMiddleware.php', + 'OCA\\Files_Sharing\\Middleware\\SharingCheckMiddleware' => $baseDir . '/../lib/Middleware/SharingCheckMiddleware.php', + 'OCA\\Files_Sharing\\Migration\\OwncloudGuestShareType' => $baseDir . '/../lib/Migration/OwncloudGuestShareType.php', + 'OCA\\Files_Sharing\\Migration\\SetPasswordColumn' => $baseDir . '/../lib/Migration/SetPasswordColumn.php', + 'OCA\\Files_Sharing\\MountProvider' => $baseDir . '/../lib/MountProvider.php', + 'OCA\\Files_Sharing\\Scanner' => $baseDir . '/../lib/Scanner.php', + 'OCA\\Files_Sharing\\ShareBackend\\File' => $baseDir . '/../lib/ShareBackend/File.php', + 'OCA\\Files_Sharing\\ShareBackend\\Folder' => $baseDir . '/../lib/ShareBackend/Folder.php', + 'OCA\\Files_Sharing\\SharedMount' => $baseDir . '/../lib/SharedMount.php', + 'OCA\\Files_Sharing\\SharedStorage' => $baseDir . '/../lib/SharedStorage.php', + 'OCA\\Files_Sharing\\Updater' => $baseDir . '/../lib/Updater.php', +); diff --git a/apps/files_sharing/composer/composer/autoload_namespaces.php b/apps/files_sharing/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/files_sharing/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/files_sharing/composer/composer/autoload_psr4.php b/apps/files_sharing/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..9fb758e4059 --- /dev/null +++ b/apps/files_sharing/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Files_Sharing\\' => array($baseDir . '/../lib'), +); diff --git a/apps/files_sharing/composer/composer/autoload_real.php b/apps/files_sharing/composer/composer/autoload_real.php new file mode 100644 index 00000000000..fc2e3dcfcb0 --- /dev/null +++ b/apps/files_sharing/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441 +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/files_sharing/composer/composer/autoload_static.php b/apps/files_sharing/composer/composer/autoload_static.php new file mode 100644 index 00000000000..caabc5d50a3 --- /dev/null +++ b/apps/files_sharing/composer/composer/autoload_static.php @@ -0,0 +1,82 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitf32f03f7cd82bff20d6a51be16689441 +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\Files_Sharing\\' => 18, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\Files_Sharing\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\Files_Sharing\\Activity\\Filter' => __DIR__ . '/..' . '/../lib/Activity/Filter.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Base' => __DIR__ . '/..' . '/../lib/Activity/Providers/Base.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Downloads' => __DIR__ . '/..' . '/../lib/Activity/Providers/Downloads.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Groups' => __DIR__ . '/..' . '/../lib/Activity/Providers/Groups.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\PublicLinks' => __DIR__ . '/..' . '/../lib/Activity/Providers/PublicLinks.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\RemoteShares' => __DIR__ . '/..' . '/../lib/Activity/Providers/RemoteShares.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Users' => __DIR__ . '/..' . '/../lib/Activity/Providers/Users.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\PublicLinks' => __DIR__ . '/..' . '/../lib/Activity/Settings/PublicLinks.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\RemoteShare' => __DIR__ . '/..' . '/../lib/Activity/Settings/RemoteShare.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\Shared' => __DIR__ . '/..' . '/../lib/Activity/Settings/Shared.php', + 'OCA\\Files_Sharing\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Files_Sharing\\Cache' => __DIR__ . '/..' . '/../lib/Cache.php', + 'OCA\\Files_Sharing\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php', + 'OCA\\Files_Sharing\\Command\\CleanupRemoteStorages' => __DIR__ . '/..' . '/../lib/Command/CleanupRemoteStorages.php', + 'OCA\\Files_Sharing\\Controller\\ExternalSharesController' => __DIR__ . '/..' . '/../lib/Controller/ExternalSharesController.php', + 'OCA\\Files_Sharing\\Controller\\PublicPreviewController' => __DIR__ . '/..' . '/../lib/Controller/PublicPreviewController.php', + 'OCA\\Files_Sharing\\Controller\\RemoteController' => __DIR__ . '/..' . '/../lib/Controller/RemoteController.php', + 'OCA\\Files_Sharing\\Controller\\ShareAPIController' => __DIR__ . '/..' . '/../lib/Controller/ShareAPIController.php', + 'OCA\\Files_Sharing\\Controller\\ShareController' => __DIR__ . '/..' . '/../lib/Controller/ShareController.php', + 'OCA\\Files_Sharing\\Controller\\ShareInfoController' => __DIR__ . '/..' . '/../lib/Controller/ShareInfoController.php', + 'OCA\\Files_Sharing\\Controller\\ShareesAPIController' => __DIR__ . '/..' . '/../lib/Controller/ShareesAPIController.php', + 'OCA\\Files_Sharing\\DeleteOrphanedSharesJob' => __DIR__ . '/..' . '/../lib/DeleteOrphanedSharesJob.php', + 'OCA\\Files_Sharing\\Exceptions\\BrokenPath' => __DIR__ . '/..' . '/../lib/Exceptions/BrokenPath.php', + 'OCA\\Files_Sharing\\Exceptions\\S2SException' => __DIR__ . '/..' . '/../lib/Exceptions/S2SException.php', + 'OCA\\Files_Sharing\\ExpireSharesJob' => __DIR__ . '/..' . '/../lib/ExpireSharesJob.php', + 'OCA\\Files_Sharing\\External\\Cache' => __DIR__ . '/..' . '/../lib/External/Cache.php', + 'OCA\\Files_Sharing\\External\\Manager' => __DIR__ . '/..' . '/../lib/External/Manager.php', + 'OCA\\Files_Sharing\\External\\Mount' => __DIR__ . '/..' . '/../lib/External/Mount.php', + 'OCA\\Files_Sharing\\External\\MountProvider' => __DIR__ . '/..' . '/../lib/External/MountProvider.php', + 'OCA\\Files_Sharing\\External\\Scanner' => __DIR__ . '/..' . '/../lib/External/Scanner.php', + 'OCA\\Files_Sharing\\External\\Storage' => __DIR__ . '/..' . '/../lib/External/Storage.php', + 'OCA\\Files_Sharing\\External\\Watcher' => __DIR__ . '/..' . '/../lib/External/Watcher.php', + 'OCA\\Files_Sharing\\Helper' => __DIR__ . '/..' . '/../lib/Helper.php', + 'OCA\\Files_Sharing\\Hooks' => __DIR__ . '/..' . '/../lib/Hooks.php', + 'OCA\\Files_Sharing\\ISharedStorage' => __DIR__ . '/..' . '/../lib/ISharedStorage.php', + 'OCA\\Files_Sharing\\Middleware\\OCSShareAPIMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/OCSShareAPIMiddleware.php', + 'OCA\\Files_Sharing\\Middleware\\ShareInfoMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/ShareInfoMiddleware.php', + 'OCA\\Files_Sharing\\Middleware\\SharingCheckMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/SharingCheckMiddleware.php', + 'OCA\\Files_Sharing\\Migration\\OwncloudGuestShareType' => __DIR__ . '/..' . '/../lib/Migration/OwncloudGuestShareType.php', + 'OCA\\Files_Sharing\\Migration\\SetPasswordColumn' => __DIR__ . '/..' . '/../lib/Migration/SetPasswordColumn.php', + 'OCA\\Files_Sharing\\MountProvider' => __DIR__ . '/..' . '/../lib/MountProvider.php', + 'OCA\\Files_Sharing\\Scanner' => __DIR__ . '/..' . '/../lib/Scanner.php', + 'OCA\\Files_Sharing\\ShareBackend\\File' => __DIR__ . '/..' . '/../lib/ShareBackend/File.php', + 'OCA\\Files_Sharing\\ShareBackend\\Folder' => __DIR__ . '/..' . '/../lib/ShareBackend/Folder.php', + 'OCA\\Files_Sharing\\SharedMount' => __DIR__ . '/..' . '/../lib/SharedMount.php', + 'OCA\\Files_Sharing\\SharedStorage' => __DIR__ . '/..' . '/../lib/SharedStorage.php', + 'OCA\\Files_Sharing\\Updater' => __DIR__ . '/..' . '/../lib/Updater.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js index cb13956f91b..63d9a8399d9 100644 --- a/apps/files_sharing/l10n/ca.js +++ b/apps/files_sharing/l10n/ca.js @@ -1,43 +1,115 @@ OC.L10N.register( "files_sharing", { - "Server to server sharing is not enabled on this server" : "La compartició entre servidors no està activada en aquest servidor", - "Invalid or untrusted SSL certificate" : "El certificat SSL és invàlid o no és fiable", - "Storage not valid" : "Emmagatzemament no valit", - "Couldn't add remote share" : "No s'ha pogut afegir una compartició remota", "Shared with you" : "Us han compartit", "Shared with others" : "Heu compartit", "Shared by link" : "Compartit amb enllaç", + "Nothing shared with you yet" : "No s'ha compartit res amb vosté, encara", + "Files and folders others share with you will show up here" : "Els arxius i carpetes que altres comparteixin amb vosté es mostraran aquí", + "Nothing shared yet" : "No s'ha compartit res, encara", + "Files and folders you share will show up here" : "Els arxius i carpetes que vosté comparteixi es mostraran aquí", "No shared links" : "no hi ha enllaços compartits", - "Do you want to add the remote share {name} from {owner}@{remote}?" : "Voleu afegir la compartició remota {nom} des de {owner}@{remote}?", - "Remote share" : "Compartició remota", - "Remote share password" : "Contrasenya de compartició remota", - "Cancel" : "Cancel·la", - "Add remote share" : "Afegeix compartició remota", - "Invalid ownCloud url" : "La url d'ownCloud no és vàlida", + "Files and folders you share by link will show up here" : "Els arxius i les carpetes que vosté ha compartit per link es mostraran aquí", + "You can upload into this folder" : "Pots pujar dins d'aquesta carpeta", + "No compatible server found at {remote}" : "No s'ha trobat cap servidor compatible a {remote}", + "Invalid server URL" : "Direcció del servidor invàlida", + "Failed to add the public link to your Nextcloud" : "No s'ha pogut afegir l'enllaç públic al teu Nextcloud", + "Share" : "Comparteix", + "No expiration date set" : "No s'ha establert cap data de caducitat", "Shared by" : "Compartit per", "Sharing" : "Compartir", + "File shares" : "Arxius compartits", + "Downloaded via public link" : "Descarregat mitjançant enllaç públic", + "Downloaded by {email}" : "Descarregat per {email}", + "{file} downloaded via public link" : "{file} descarregat mitjançant enllaç públic", + "{email} downloaded {file}" : "{email} descarregat {file}", + "Shared with group {group}" : "Compartit amb el grup {group}", + "Removed share for group {group}" : "S'ha eliminat la part per al grup {group}", + "{actor} shared with group {group}" : "{actor} ha compartit amb el grup {group}", + "{actor} removed share for group {group}" : "{actor} ha tret la part compartida del grup {grup}", + "You shared {file} with group {group}" : "Has compartit {file} amb el grup {group}", + "You removed group {group} from {file}" : "Heu eliminat el grup {group} de {file}", + "{actor} shared {file} with group {group}" : "{actor} ha compartit {file} amb el grup {group}", + "{actor} removed group {group} from {file}" : "{actor} ha eliminat el grup {group} de {file}", + "Shared as public link" : "Compartit com a enllaç públic", + "Removed public link" : "S'ha suprimit l'enllaç públic", + "Public link expired" : "L'enllaç públic ha caducat", + "{actor} shared as public link" : "{actor} ha compartit com a enllaç públic", + "{actor} removed public link" : "{actor} ha eliminat l'enllaç públic", + "Public link of {actor} expired" : "El vincle públic de {actor} ha caducat", + "You shared {file} as public link" : "Has compartit {file} com a enllaç públic", + "You removed public link for {file}" : "Heu eliminat l'enllaç públic per a {file}", + "Public link expired for {file}" : "L'enllaç públic ha caducat per {file}", + "{actor} shared {file} as public link" : "{actor} ha compartit {file} com a enllaç públic", + "{actor} removed public link for {file}" : "{actor} ha eliminat l'enllaç públic per a {file}", + "Public link of {actor} for {file} expired" : "El vincle públic de {actor} per {file} ha caducat", + "{user} accepted the remote share" : "{usuari} ha acceptat el recompte remot", + "{user} declined the remote share" : "{usuari} ha rebutjat el recompte remot", + "You received a new remote share {file} from {user}" : "Heu rebut una nova compartició remota {file} de {user}", + "{user} accepted the remote share of {file}" : "{usuari} ha acceptat la part remota de {file}", + "{user} declined the remote share of {file}" : "{usuari} ha denegat la part remota de {file}", + "{user} unshared {file} from you" : "{user} ha deixat de compartir {file}", + "Shared with {user}" : "Compartit amb {user}", + "Removed share for {user}" : "S'ha suprimit la part per {user}", + "{actor} shared with {user}" : "{actor} compartit amb {usuari}", + "{actor} removed share for {user}" : "{actor} ha tret la part compartida per {user}", + "Shared by {actor}" : "Compartit per {actor}", + "{actor} removed share" : "{actor} ha tret part", + "You shared {file} with {user}" : "Has compartit {file} amb {user}", + "You removed {user} from {file}" : "Heu eliminat {user} de {file}", + "{actor} shared {file} with {user}" : "{actor} ha compartit {file} amb {usuari}", + "{actor} removed {user} from {file}" : "{actor} ha tret {user} de {file}", + "{actor} shared {file} with you" : "{actor} ha compartit {file} amb tu", + "{actor} removed you from {file}" : "{actor} t'ha eliminat de {file}", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "S'ha <strong> baixat </strong> un fitxer o carpeta compartit per correu o per enllaç públic", + "A file or folder was shared from <strong>another server</strong>" : "S'ha compartit un fitxer o una carpeta d'un <strong> altre servidor</strong>", "A file or folder has been <strong>shared</strong>" : "S'ha <strong>compartit</strong> un fitxer o una carpeta", - "You shared %1$s with %2$s" : "Has compartit %1$s amb %2$s", - "You shared %1$s with group %2$s" : "has compartit %1$s amb el grup %2$s", - "You shared %1$s via link" : "Heu compartit %1$s via enllaç", - "%2$s shared %1$s with you" : "%2$s ha compartit %1$s amb tu", - "Shares" : "Compartits", + "Wrong share ID, share doesn't exist" : "L'identificador d'accions incorrecte, el compartir no existeix", + "could not delete share" : "No s'ha pogut suprimir la compartició", + "Could not delete share" : "No s'ha pogut suprimir la compartició", + "Please specify a file or folder path" : "Especifiqueu una ruta de fitxer o carpeta", + "Wrong path, file/folder doesn't exist" : "La ruta, el fitxer o la carpeta incorrectes no existeixen", + "Could not create share" : "No s'ha pogut crear la compartició", + "invalid permissions" : "Permisos invàlids", + "Please specify a valid user" : "Especifiqueu un usuari vàlid", + "Group sharing is disabled by the administrator" : "L'administrador ha desactivat l'opció per compartir grups", + "Please specify a valid group" : "Especifiqueu un grup vàlid", + "Public link sharing is disabled by the administrator" : "L'administrador ha desactivat l'intercanvi d'enllaços públics", + "Public upload disabled by the administrator" : "S'ha desactivat la càrrega pública per part de l'administrador", + "Public upload is only possible for publicly shared folders" : "La càrrega pública només és possible per a carpetes compartides públicament", + "Invalid date, date format must be YYYY-MM-DD" : "La data no vàlida, el format de la data ha de ser AAAA-MM-DD", + "Sharing %s failed because the back end does not allow shares from type %s" : "S'ha produït un error en compartir %s perquè la part posterior no permet que les accions del tipus%s", + "You cannot share to a Circle if the app is not enabled" : "No podeu compartir en un cercle si l'aplicació no està habilitada", + "Please specify a valid circle" : "Especifiqueu un cercle vàlid", + "Unknown share type" : "Tipus d'acció desconegut", + "Not a directory" : "No és un directori", + "Could not lock path" : "No s'ha pogut bloquejar la ruta d'accés", + "Wrong or no update parameter given" : "S'ha donat un paràmetre d'actualització incorrecte o no", + "Can't change permissions for public share links" : "No es poden canviar els permisos per als enllaços compartits públics", + "Cannot increase permissions" : "No es poden augmentar els permisos", + "%s is publicly shared" : "%s es publica públicament", + "Share API is disabled" : "L'API compartida està desactivada", "This share is password-protected" : "Aquest compartit està protegit amb contrasenya", "The password is wrong. Try again." : "la contrasenya és incorrecta. Intenteu-ho de nou.", "Password" : "Contrasenya", "No entries found in this folder" : "No hi ha entrades en aquesta carpeta", "Name" : "Nom", "Share time" : "Temps de compartició", + "Expiration date" : "Data d'expiració", "Sorry, this link doesn’t seem to work anymore." : "Aquest enllaç sembla que no funciona.", "Reasons might be:" : "Les raons podrien ser:", "the item was removed" : "l'element ha estat eliminat", "the link expired" : "l'enllaç ha vençut", "sharing is disabled" : "s'ha desactivat la compartició", "For more info, please ask the person who sent this link." : "Per més informació contacteu amb qui us ha enviat l'enllaç.", - "Add to your ownCloud" : "Afegiu a ownCloud", + "shared by %s" : "compartit per %s", + "Add to your Nextcloud" : "Afegeix al teu NextCloud", "Download" : "Baixa", "Download %s" : "Baixa %s", - "Direct link" : "Enllaç directe" + "Direct link" : "Enllaç directe", + "Upload files to %s" : "Carrega fitxers a %s", + "Select or drop files" : "Selecciona o deixa anar els fitxers", + "Uploading files…" : "Pujant arxius...", + "Uploaded files:" : "Arxius pujats:" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json index fa80c60befb..e04d1c72556 100644 --- a/apps/files_sharing/l10n/ca.json +++ b/apps/files_sharing/l10n/ca.json @@ -1,41 +1,113 @@ { "translations": { - "Server to server sharing is not enabled on this server" : "La compartició entre servidors no està activada en aquest servidor", - "Invalid or untrusted SSL certificate" : "El certificat SSL és invàlid o no és fiable", - "Storage not valid" : "Emmagatzemament no valit", - "Couldn't add remote share" : "No s'ha pogut afegir una compartició remota", "Shared with you" : "Us han compartit", "Shared with others" : "Heu compartit", "Shared by link" : "Compartit amb enllaç", + "Nothing shared with you yet" : "No s'ha compartit res amb vosté, encara", + "Files and folders others share with you will show up here" : "Els arxius i carpetes que altres comparteixin amb vosté es mostraran aquí", + "Nothing shared yet" : "No s'ha compartit res, encara", + "Files and folders you share will show up here" : "Els arxius i carpetes que vosté comparteixi es mostraran aquí", "No shared links" : "no hi ha enllaços compartits", - "Do you want to add the remote share {name} from {owner}@{remote}?" : "Voleu afegir la compartició remota {nom} des de {owner}@{remote}?", - "Remote share" : "Compartició remota", - "Remote share password" : "Contrasenya de compartició remota", - "Cancel" : "Cancel·la", - "Add remote share" : "Afegeix compartició remota", - "Invalid ownCloud url" : "La url d'ownCloud no és vàlida", + "Files and folders you share by link will show up here" : "Els arxius i les carpetes que vosté ha compartit per link es mostraran aquí", + "You can upload into this folder" : "Pots pujar dins d'aquesta carpeta", + "No compatible server found at {remote}" : "No s'ha trobat cap servidor compatible a {remote}", + "Invalid server URL" : "Direcció del servidor invàlida", + "Failed to add the public link to your Nextcloud" : "No s'ha pogut afegir l'enllaç públic al teu Nextcloud", + "Share" : "Comparteix", + "No expiration date set" : "No s'ha establert cap data de caducitat", "Shared by" : "Compartit per", "Sharing" : "Compartir", + "File shares" : "Arxius compartits", + "Downloaded via public link" : "Descarregat mitjançant enllaç públic", + "Downloaded by {email}" : "Descarregat per {email}", + "{file} downloaded via public link" : "{file} descarregat mitjançant enllaç públic", + "{email} downloaded {file}" : "{email} descarregat {file}", + "Shared with group {group}" : "Compartit amb el grup {group}", + "Removed share for group {group}" : "S'ha eliminat la part per al grup {group}", + "{actor} shared with group {group}" : "{actor} ha compartit amb el grup {group}", + "{actor} removed share for group {group}" : "{actor} ha tret la part compartida del grup {grup}", + "You shared {file} with group {group}" : "Has compartit {file} amb el grup {group}", + "You removed group {group} from {file}" : "Heu eliminat el grup {group} de {file}", + "{actor} shared {file} with group {group}" : "{actor} ha compartit {file} amb el grup {group}", + "{actor} removed group {group} from {file}" : "{actor} ha eliminat el grup {group} de {file}", + "Shared as public link" : "Compartit com a enllaç públic", + "Removed public link" : "S'ha suprimit l'enllaç públic", + "Public link expired" : "L'enllaç públic ha caducat", + "{actor} shared as public link" : "{actor} ha compartit com a enllaç públic", + "{actor} removed public link" : "{actor} ha eliminat l'enllaç públic", + "Public link of {actor} expired" : "El vincle públic de {actor} ha caducat", + "You shared {file} as public link" : "Has compartit {file} com a enllaç públic", + "You removed public link for {file}" : "Heu eliminat l'enllaç públic per a {file}", + "Public link expired for {file}" : "L'enllaç públic ha caducat per {file}", + "{actor} shared {file} as public link" : "{actor} ha compartit {file} com a enllaç públic", + "{actor} removed public link for {file}" : "{actor} ha eliminat l'enllaç públic per a {file}", + "Public link of {actor} for {file} expired" : "El vincle públic de {actor} per {file} ha caducat", + "{user} accepted the remote share" : "{usuari} ha acceptat el recompte remot", + "{user} declined the remote share" : "{usuari} ha rebutjat el recompte remot", + "You received a new remote share {file} from {user}" : "Heu rebut una nova compartició remota {file} de {user}", + "{user} accepted the remote share of {file}" : "{usuari} ha acceptat la part remota de {file}", + "{user} declined the remote share of {file}" : "{usuari} ha denegat la part remota de {file}", + "{user} unshared {file} from you" : "{user} ha deixat de compartir {file}", + "Shared with {user}" : "Compartit amb {user}", + "Removed share for {user}" : "S'ha suprimit la part per {user}", + "{actor} shared with {user}" : "{actor} compartit amb {usuari}", + "{actor} removed share for {user}" : "{actor} ha tret la part compartida per {user}", + "Shared by {actor}" : "Compartit per {actor}", + "{actor} removed share" : "{actor} ha tret part", + "You shared {file} with {user}" : "Has compartit {file} amb {user}", + "You removed {user} from {file}" : "Heu eliminat {user} de {file}", + "{actor} shared {file} with {user}" : "{actor} ha compartit {file} amb {usuari}", + "{actor} removed {user} from {file}" : "{actor} ha tret {user} de {file}", + "{actor} shared {file} with you" : "{actor} ha compartit {file} amb tu", + "{actor} removed you from {file}" : "{actor} t'ha eliminat de {file}", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "S'ha <strong> baixat </strong> un fitxer o carpeta compartit per correu o per enllaç públic", + "A file or folder was shared from <strong>another server</strong>" : "S'ha compartit un fitxer o una carpeta d'un <strong> altre servidor</strong>", "A file or folder has been <strong>shared</strong>" : "S'ha <strong>compartit</strong> un fitxer o una carpeta", - "You shared %1$s with %2$s" : "Has compartit %1$s amb %2$s", - "You shared %1$s with group %2$s" : "has compartit %1$s amb el grup %2$s", - "You shared %1$s via link" : "Heu compartit %1$s via enllaç", - "%2$s shared %1$s with you" : "%2$s ha compartit %1$s amb tu", - "Shares" : "Compartits", + "Wrong share ID, share doesn't exist" : "L'identificador d'accions incorrecte, el compartir no existeix", + "could not delete share" : "No s'ha pogut suprimir la compartició", + "Could not delete share" : "No s'ha pogut suprimir la compartició", + "Please specify a file or folder path" : "Especifiqueu una ruta de fitxer o carpeta", + "Wrong path, file/folder doesn't exist" : "La ruta, el fitxer o la carpeta incorrectes no existeixen", + "Could not create share" : "No s'ha pogut crear la compartició", + "invalid permissions" : "Permisos invàlids", + "Please specify a valid user" : "Especifiqueu un usuari vàlid", + "Group sharing is disabled by the administrator" : "L'administrador ha desactivat l'opció per compartir grups", + "Please specify a valid group" : "Especifiqueu un grup vàlid", + "Public link sharing is disabled by the administrator" : "L'administrador ha desactivat l'intercanvi d'enllaços públics", + "Public upload disabled by the administrator" : "S'ha desactivat la càrrega pública per part de l'administrador", + "Public upload is only possible for publicly shared folders" : "La càrrega pública només és possible per a carpetes compartides públicament", + "Invalid date, date format must be YYYY-MM-DD" : "La data no vàlida, el format de la data ha de ser AAAA-MM-DD", + "Sharing %s failed because the back end does not allow shares from type %s" : "S'ha produït un error en compartir %s perquè la part posterior no permet que les accions del tipus%s", + "You cannot share to a Circle if the app is not enabled" : "No podeu compartir en un cercle si l'aplicació no està habilitada", + "Please specify a valid circle" : "Especifiqueu un cercle vàlid", + "Unknown share type" : "Tipus d'acció desconegut", + "Not a directory" : "No és un directori", + "Could not lock path" : "No s'ha pogut bloquejar la ruta d'accés", + "Wrong or no update parameter given" : "S'ha donat un paràmetre d'actualització incorrecte o no", + "Can't change permissions for public share links" : "No es poden canviar els permisos per als enllaços compartits públics", + "Cannot increase permissions" : "No es poden augmentar els permisos", + "%s is publicly shared" : "%s es publica públicament", + "Share API is disabled" : "L'API compartida està desactivada", "This share is password-protected" : "Aquest compartit està protegit amb contrasenya", "The password is wrong. Try again." : "la contrasenya és incorrecta. Intenteu-ho de nou.", "Password" : "Contrasenya", "No entries found in this folder" : "No hi ha entrades en aquesta carpeta", "Name" : "Nom", "Share time" : "Temps de compartició", + "Expiration date" : "Data d'expiració", "Sorry, this link doesn’t seem to work anymore." : "Aquest enllaç sembla que no funciona.", "Reasons might be:" : "Les raons podrien ser:", "the item was removed" : "l'element ha estat eliminat", "the link expired" : "l'enllaç ha vençut", "sharing is disabled" : "s'ha desactivat la compartició", "For more info, please ask the person who sent this link." : "Per més informació contacteu amb qui us ha enviat l'enllaç.", - "Add to your ownCloud" : "Afegiu a ownCloud", + "shared by %s" : "compartit per %s", + "Add to your Nextcloud" : "Afegeix al teu NextCloud", "Download" : "Baixa", "Download %s" : "Baixa %s", - "Direct link" : "Enllaç directe" + "Direct link" : "Enllaç directe", + "Upload files to %s" : "Carrega fitxers a %s", + "Select or drop files" : "Selecciona o deixa anar els fitxers", + "Uploading files…" : "Pujant arxius...", + "Uploaded files:" : "Arxius pujats:" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js index 43c3a38acfb..2765042613a 100644 --- a/apps/files_sharing/l10n/de.js +++ b/apps/files_sharing/l10n/de.js @@ -84,7 +84,7 @@ OC.L10N.register( "Unknown share type" : "Unbekannter Freigabetyp", "Not a directory" : "Kein Verzeichnis", "Could not lock path" : "Pfad konnte nicht gesperrt werden", - "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter übergeben", + "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", "%s is publicly shared" : "%s ist öffentlich geteilt", diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json index 43e138d11dd..ec497346c84 100644 --- a/apps/files_sharing/l10n/de.json +++ b/apps/files_sharing/l10n/de.json @@ -82,7 +82,7 @@ "Unknown share type" : "Unbekannter Freigabetyp", "Not a directory" : "Kein Verzeichnis", "Could not lock path" : "Pfad konnte nicht gesperrt werden", - "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter übergeben", + "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", "%s is publicly shared" : "%s ist öffentlich geteilt", diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js index 2b16641f7f2..cadb95af32d 100644 --- a/apps/files_sharing/l10n/de_DE.js +++ b/apps/files_sharing/l10n/de_DE.js @@ -84,7 +84,7 @@ OC.L10N.register( "Unknown share type" : "Unbekannter Freigabetyp", "Not a directory" : "Kein Verzeichnis", "Could not lock path" : "Pfad konnte nicht gesperrt werden", - "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter übergeben", + "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", "%s is publicly shared" : "%s ist öffentlich geteilt", diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json index 3dd04e6a13e..8fdd54aad47 100644 --- a/apps/files_sharing/l10n/de_DE.json +++ b/apps/files_sharing/l10n/de_DE.json @@ -82,7 +82,7 @@ "Unknown share type" : "Unbekannter Freigabetyp", "Not a directory" : "Kein Verzeichnis", "Could not lock path" : "Pfad konnte nicht gesperrt werden", - "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter übergeben", + "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", "%s is publicly shared" : "%s ist öffentlich geteilt", diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js index 793546e34f4..c60c46de1a6 100644 --- a/apps/files_sharing/l10n/fr.js +++ b/apps/files_sharing/l10n/fr.js @@ -77,7 +77,7 @@ OC.L10N.register( "Public link sharing is disabled by the administrator" : "Le partage de lien public a été désactivé par l'administrateur", "Public upload disabled by the administrator" : "Téléversement public désactivé par l'administrateur", "Public upload is only possible for publicly shared folders" : "Le téléversement public est possible uniquement pour les dossiers partagés publiquement", - "Invalid date, date format must be YYYY-MM-DD" : "Date invalide, le format doit être YYYY-MM-DD", + "Invalid date, date format must be YYYY-MM-DD" : "Date non valide, le format doit être DD/MM/YYYY", "Sharing %s failed because the back end does not allow shares from type %s" : "Le partage %s a échoué parce que l'infrastructure n'autorise pas les partages du type %s", "You cannot share to a Circle if the app is not enabled" : "Vous ne pouvez pas partager au Cercle si l'application n'est pas activée", "Please specify a valid circle" : "Veuillez entrer un cercle valide", diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json index b0768a3d3f9..f53ba956c3c 100644 --- a/apps/files_sharing/l10n/fr.json +++ b/apps/files_sharing/l10n/fr.json @@ -75,7 +75,7 @@ "Public link sharing is disabled by the administrator" : "Le partage de lien public a été désactivé par l'administrateur", "Public upload disabled by the administrator" : "Téléversement public désactivé par l'administrateur", "Public upload is only possible for publicly shared folders" : "Le téléversement public est possible uniquement pour les dossiers partagés publiquement", - "Invalid date, date format must be YYYY-MM-DD" : "Date invalide, le format doit être YYYY-MM-DD", + "Invalid date, date format must be YYYY-MM-DD" : "Date non valide, le format doit être DD/MM/YYYY", "Sharing %s failed because the back end does not allow shares from type %s" : "Le partage %s a échoué parce que l'infrastructure n'autorise pas les partages du type %s", "You cannot share to a Circle if the app is not enabled" : "Vous ne pouvez pas partager au Cercle si l'application n'est pas activée", "Please specify a valid circle" : "Veuillez entrer un cercle valide", diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js index 63ddb54a098..2fe130a548a 100644 --- a/apps/files_sharing/l10n/pt_BR.js +++ b/apps/files_sharing/l10n/pt_BR.js @@ -77,7 +77,7 @@ OC.L10N.register( "Public link sharing is disabled by the administrator" : "O compartilhamento por link público foi desativado pelo administrador", "Public upload disabled by the administrator" : "O envio público foi desativado pelo administrador", "Public upload is only possible for publicly shared folders" : "O envio público só é possível para pastas compartilhadas publicamente", - "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD", + "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser YYYY-MM-DD", "Sharing %s failed because the back end does not allow shares from type %s" : "O compartilhando %s falhou porque o serviço não permite ações de tipo %s", "You cannot share to a Circle if the app is not enabled" : "Você não pode compartilhar para um círculo se o aplicativo não está habilitado", "Please specify a valid circle" : "Por favor especifique um círculo válido", diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json index a659e0ff8a3..66419d9393f 100644 --- a/apps/files_sharing/l10n/pt_BR.json +++ b/apps/files_sharing/l10n/pt_BR.json @@ -75,7 +75,7 @@ "Public link sharing is disabled by the administrator" : "O compartilhamento por link público foi desativado pelo administrador", "Public upload disabled by the administrator" : "O envio público foi desativado pelo administrador", "Public upload is only possible for publicly shared folders" : "O envio público só é possível para pastas compartilhadas publicamente", - "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD", + "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser YYYY-MM-DD", "Sharing %s failed because the back end does not allow shares from type %s" : "O compartilhando %s falhou porque o serviço não permite ações de tipo %s", "You cannot share to a Circle if the app is not enabled" : "Você não pode compartilhar para um círculo se o aplicativo não está habilitado", "Please specify a valid circle" : "Por favor especifique um círculo válido", diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js index 2ee1fe2b5f8..a81b094dafe 100644 --- a/apps/files_sharing/l10n/ru.js +++ b/apps/files_sharing/l10n/ru.js @@ -96,7 +96,7 @@ OC.L10N.register( "Name" : "Имя", "Share time" : "Дата публикации", "Expiration date" : "Дата истечения", - "Sorry, this link doesn’t seem to work anymore." : "Эта ссылка устарела и более не действительна.", + "Sorry, this link doesn’t seem to work anymore." : "Похоже, эта ссылка больше не работает.", "Reasons might be:" : "Причиной может быть:", "the item was removed" : "объект был удалён", "the link expired" : "срок действия ссылки истёк", diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json index 669ce8fcd0f..a4891dd5c05 100644 --- a/apps/files_sharing/l10n/ru.json +++ b/apps/files_sharing/l10n/ru.json @@ -94,7 +94,7 @@ "Name" : "Имя", "Share time" : "Дата публикации", "Expiration date" : "Дата истечения", - "Sorry, this link doesn’t seem to work anymore." : "Эта ссылка устарела и более не действительна.", + "Sorry, this link doesn’t seem to work anymore." : "Похоже, эта ссылка больше не работает.", "Reasons might be:" : "Причиной может быть:", "the item was removed" : "объект был удалён", "the link expired" : "срок действия ссылки истёк", diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js index b7d260ca332..b60205e40a6 100644 --- a/apps/files_sharing/l10n/sk.js +++ b/apps/files_sharing/l10n/sk.js @@ -34,6 +34,25 @@ OC.L10N.register( "Shared as public link" : "Sprístupnené ako verejný odkaz", "Removed public link" : "Verejný odkaz odstránený", "Public link expired" : "Verejnému odkazu vypršala platnosť", + "{actor} shared as public link" : "{actor} sprístupnil ako verejný odkaz", + "{actor} removed public link" : "{actor} odstránil verejný odkaz", + "Public link of {actor} expired" : "Verejný odkaz {actor} vypršal", + "You shared {file} as public link" : "Sprístupnili ste súbor {file} ako verejný odkaz", + "You removed public link for {file}" : "Odstránili ste verejný odkaz pre {file}", + "Public link expired for {file}" : "Verejný odkaz pre {file} vypršal", + "{actor} shared {file} as public link" : "{actor} sprístupnil {file} ako verejný odkaz", + "{actor} removed public link for {file}" : "{actor} odstránil verejný odkaz pre {file}", + "Public link of {actor} for {file} expired" : "Verejný odkaz používateľa {actor} pre {file} vypršal", + "{user} accepted the remote share" : "používateľ {user} prijal vzdialené sprístupnenie", + "{user} declined the remote share" : "používateľ {user} odmietol vzdialené sprístupnenie", + "You received a new remote share {file} from {user}" : "Obdržali ste nové vzdialené zdieľanie súboru {file} používateľom {user}", + "{user} accepted the remote share of {file}" : "používateľ {user} prijal vzdialené sprístupnenie súboru {file}", + "{user} declined the remote share of {file}" : "používateľ {user} odmietol vzdialené spristupnenie súboru {file} ", + "{user} unshared {file} from you" : "používateľ {user} vám už nesprístupňuje súbor {file}", + "Shared with {user}" : "Zdieľané s {user}", + "Removed share for {user}" : "Odstránené sprístupnenie pre používateľa {user}", + "{actor} shared with {user}" : "{actor} zdieľal s {user}", + "{actor} removed share for {user}" : "{actor} odstránil sprístupnenie pre používateľa {user}", "Shared by {actor}" : "Sprístupnil {actor}", "{actor} removed share" : "{actor} zrušil sprístupnenie", "You shared {file} with {user}" : "Sprístupnili ste {file} používateľovi {user}", diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json index 7d88a4efd20..2953c12bf44 100644 --- a/apps/files_sharing/l10n/sk.json +++ b/apps/files_sharing/l10n/sk.json @@ -32,6 +32,25 @@ "Shared as public link" : "Sprístupnené ako verejný odkaz", "Removed public link" : "Verejný odkaz odstránený", "Public link expired" : "Verejnému odkazu vypršala platnosť", + "{actor} shared as public link" : "{actor} sprístupnil ako verejný odkaz", + "{actor} removed public link" : "{actor} odstránil verejný odkaz", + "Public link of {actor} expired" : "Verejný odkaz {actor} vypršal", + "You shared {file} as public link" : "Sprístupnili ste súbor {file} ako verejný odkaz", + "You removed public link for {file}" : "Odstránili ste verejný odkaz pre {file}", + "Public link expired for {file}" : "Verejný odkaz pre {file} vypršal", + "{actor} shared {file} as public link" : "{actor} sprístupnil {file} ako verejný odkaz", + "{actor} removed public link for {file}" : "{actor} odstránil verejný odkaz pre {file}", + "Public link of {actor} for {file} expired" : "Verejný odkaz používateľa {actor} pre {file} vypršal", + "{user} accepted the remote share" : "používateľ {user} prijal vzdialené sprístupnenie", + "{user} declined the remote share" : "používateľ {user} odmietol vzdialené sprístupnenie", + "You received a new remote share {file} from {user}" : "Obdržali ste nové vzdialené zdieľanie súboru {file} používateľom {user}", + "{user} accepted the remote share of {file}" : "používateľ {user} prijal vzdialené sprístupnenie súboru {file}", + "{user} declined the remote share of {file}" : "používateľ {user} odmietol vzdialené spristupnenie súboru {file} ", + "{user} unshared {file} from you" : "používateľ {user} vám už nesprístupňuje súbor {file}", + "Shared with {user}" : "Zdieľané s {user}", + "Removed share for {user}" : "Odstránené sprístupnenie pre používateľa {user}", + "{actor} shared with {user}" : "{actor} zdieľal s {user}", + "{actor} removed share for {user}" : "{actor} odstránil sprístupnenie pre používateľa {user}", "Shared by {actor}" : "Sprístupnil {actor}", "{actor} removed share" : "{actor} zrušil sprístupnenie", "You shared {file} with {user}" : "Sprístupnili ste {file} používateľovi {user}", diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js index 07af47317c0..e32d442e938 100644 --- a/apps/files_sharing/l10n/sr.js +++ b/apps/files_sharing/l10n/sr.js @@ -1,60 +1,115 @@ OC.L10N.register( "files_sharing", { - "Server to server sharing is not enabled on this server" : "Дељење између сервера није укључено на овом серверу", - "The mountpoint name contains invalid characters." : "Назив тачке монтирања садржи неисправне знакове.", - "Invalid or untrusted SSL certificate" : "Неисправан или неповерљив ССЛ сертификат", - "Could not authenticate to remote share, password might be wrong" : "Не могу да се пријавим на удаљено дељење. Лозинка је можда погрешна", - "Storage not valid" : "Складиште није исправно", - "Couldn't add remote share" : "Не могу да додам удаљено дељење", "Shared with you" : "Дељено са вама", "Shared with others" : "Дељено са осталима", "Shared by link" : "Дељено путем везе", - "Nothing shared with you yet" : "Још увек се ништа са вама не дели", + "Nothing shared with you yet" : "Још увек се ништа не дели са Вама", "Files and folders others share with you will show up here" : "Фајлови и фасцикле које други деле са вама појавиће се овде", "Nothing shared yet" : "Још се ништа не дели", "Files and folders you share will show up here" : "Фајлови и фасцикле које делите појавиће се овде", "No shared links" : "Нема веза за дељење", "Files and folders you share by link will show up here" : "Фајлови и фасцикле које делите путем везе појавиће се овде", - "Do you want to add the remote share {name} from {owner}@{remote}?" : "Желите ли да додате удаљено дељење {name} власника {owner}@{remote}?", - "Remote share" : "Удаљено дељење", - "Remote share password" : "Лозинка удаљеног дељења", - "Cancel" : "Одустани", - "Add remote share" : "Додај удаљено дељење", "You can upload into this folder" : "Можете да отпремате у ову фасциклу", - "No ownCloud installation (7 or higher) found at {remote}" : "Нема оунКлауд инсталације верзије 7 или више на {remote}", - "Invalid ownCloud url" : "Неисправан оунКлауд УРЛ", - "Shared by" : "Дели", + "No compatible server found at {remote}" : "Нема компатибилног сервера на {remote}", + "Invalid server URL" : "Неисправна адреса сервера", + "Failed to add the public link to your Nextcloud" : "Неуспело додавање јавне везе ка Вашем Некстклауду", + "Share" : "Подели", + "No expiration date set" : "Није постављен датум истека", + "Shared by" : "Поделио", "Sharing" : "Дељење", - "A file or folder has been <strong>shared</strong>" : "Фајл или фасцикла је <strong>дељен</strong>", + "File shares" : "Дељења фајлова", + "Downloaded via public link" : "Скинуто преко јавне везе", + "Downloaded by {email}" : "Скинуо {email}", + "{file} downloaded via public link" : "{file} скинут преко јавне везе", + "{email} downloaded {file}" : "{email} скинуо {file}", + "Shared with group {group}" : "Дељено са групом {group}", + "Removed share for group {group}" : "Уклоњено дељење за групу {group}", + "{actor} shared with group {group}" : "{actor} поделио са групом {group}", + "{actor} removed share for group {group}" : "{actor} уклонио дељење за групу {group}", + "You shared {file} with group {group}" : "Поделили сте {file} са групом {group}", + "You removed group {group} from {file}" : "Уклонили сте групу {group} са {file}", + "{actor} shared {file} with group {group}" : "{actor} поделио {file} са групом {group}", + "{actor} removed group {group} from {file}" : "{actor} уклонио групу {group} са {file}", + "Shared as public link" : "Дељено као јавна веза", + "Removed public link" : "Уклоњена јавна веза", + "Public link expired" : "Јавна веза истекла", + "{actor} shared as public link" : "{actor} поделио као јавну везу", + "{actor} removed public link" : "{actor} уклонио јавну везу", + "Public link of {actor} expired" : "Јавна веза коју је направио {actor} истекла", + "You shared {file} as public link" : "Поделили сте {file} као јавну везу", + "You removed public link for {file}" : "Уклонили сте јавну везу за {file}", + "Public link expired for {file}" : "Јавна веза за {file} истекла", + "{actor} shared {file} as public link" : "{actor} поделио {file} као јавну везу", + "{actor} removed public link for {file}" : "{actor} уклонио јавну везу за {file}", + "Public link of {actor} for {file} expired" : "Јавна веза коју је направио {actor} за {file} истекла", + "{user} accepted the remote share" : "{user} је прихватио удаљено дељење", + "{user} declined the remote share" : "{user} је одбио јавно дељење", + "You received a new remote share {file} from {user}" : "Добили сте ново удаљено дељење {file} које је направио {user}", + "{user} accepted the remote share of {file}" : "{user} прихватио удаљено дељење за фајл {file}", + "{user} declined the remote share of {file}" : "{user} одбио удаљено дељење за фајл {file}", + "{user} unshared {file} from you" : "{user} укинио дељење фајла {file} са Вама", + "Shared with {user}" : "Дељено са {user}", + "Removed share for {user}" : "Уклоњено дељење за корисника {user}", + "{actor} shared with {user}" : "{actor} поделио са корисником {user}", + "{actor} removed share for {user}" : "{actor} уклонио дељеље са корисником {user}", + "Shared by {actor}" : "Поделио {actor}", + "{actor} removed share" : "{actor} уклонио дељење", + "You shared {file} with {user}" : "Поделили сте {file} са корисником {user}", + "You removed {user} from {file}" : "Уклонили сте корисника {user} са фајла {file}", + "{actor} shared {file} with {user}" : "{actor} поделио {file} са корисником {user}", + "{actor} removed {user} from {file}" : "{actor} уклонио корисника {user} са {file}", + "{actor} shared {file} with you" : "{actor} поделио {file} са Вама", + "{actor} removed you from {file}" : "{actor} Вас је уклонио са {file}", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Фајл или фасцикла подељена е-поштом су <strong>преузети</strong>", "A file or folder was shared from <strong>another server</strong>" : "Фајл или фасцикла су дељени са <strong>другог сервера</strong>", - "A public shared file or folder was <strong>downloaded</strong>" : "Јавно дељени фајл или фасцикла су <strong>преузети</strong>", - "You received a new remote share from %s" : "Добили сте ново удаљено дељење од %s", - "%1$s accepted remote share %2$s" : "%1$s прихвати удаљено дељење %2$s", - "%1$s declined remote share %2$s" : "%1$s одби удаљено дељење %2$s", - "%1$s unshared %2$s from you" : "%1$s не дели %2$s са вама", - "Public shared folder %1$s was downloaded" : "Јавно дељена фасцикла %1$s је преузета", - "Public shared file %1$s was downloaded" : "Јавно дељени фајл %1$s је преузет", - "You shared %1$s with %2$s" : "Поделили сте %1$s са %2$s", - "You shared %1$s with group %2$s" : "Поделили сте %1$s са групом %2$s", - "You shared %1$s via link" : "Поделили сте %1$s путем везе", - "%2$s shared %1$s with you" : "%2$s подели %1$s са вама", - "Shares" : "Дељења", + "A file or folder has been <strong>shared</strong>" : "Фајл или фасцикла је <strong>дељен</strong>", + "Wrong share ID, share doesn't exist" : "Погрешна идентификација дељења, дељење не постоји", + "could not delete share" : "не могу да обришем дељење", + "Could not delete share" : "Не могу да обришем дељење", + "Please specify a file or folder path" : "Молимо одаберите путању до фајла или фасцикле", + "Wrong path, file/folder doesn't exist" : "Погрешна путања, фајл/фасцикла не постоји", + "Could not create share" : "Не могу да направим дељење", + "invalid permissions" : "Неисправне дозволе", + "Please specify a valid user" : "Одаберите исправног корисника", + "Group sharing is disabled by the administrator" : "Администратор је забранио дељење са групом", + "Please specify a valid group" : "Одаберите исправну групу", + "Public link sharing is disabled by the administrator" : "Администратор је забранио дељење јавном везом", + "Public upload disabled by the administrator" : "Администратор је забранио отпремања са јавним приступом", + "Public upload is only possible for publicly shared folders" : "Отпремања са јавним приступом су могућа само за јавно дељене фасцикле", + "Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД", + "Sharing %s failed because the back end does not allow shares from type %s" : "Дељење %s није успело зато што позадина не дозвољава дељење које је типа %s", + "You cannot share to a Circle if the app is not enabled" : "Не можете делити са Круговима ако та апликација није укључена", + "Please specify a valid circle" : "Одаберите исправан круг", + "Unknown share type" : "Непознат тип дељења", + "Not a directory" : "Није фасцикла", + "Could not lock path" : "Не могу да закључам путању", + "Wrong or no update parameter given" : "Погрешан или ненаведен параметер", + "Can't change permissions for public share links" : "Не могу се променити привилегије за јавно доступне везе", + "Cannot increase permissions" : "Не могу да повећам привилегије", + "%s is publicly shared" : "%s је јавно дељен", + "Share API is disabled" : "API за дељене је искључен", "This share is password-protected" : "Дељење је заштићено лозинком", "The password is wrong. Try again." : "Лозинка је погрешна. Покушајте поново.", "Password" : "Лозинка", "No entries found in this folder" : "Нема ничега у овој фасцикли", "Name" : "Назив", "Share time" : "Време дељења", + "Expiration date" : "Датум истека", "Sorry, this link doesn’t seem to work anymore." : "Нажалост, изгледа да веза више не ради.", "Reasons might be:" : "Разлози могу бити:", "the item was removed" : "ставка је уклоњена", "the link expired" : "веза је истекла", "sharing is disabled" : "дељење је искључено", "For more info, please ask the person who sent this link." : "За више информација, питајте особу која вам је послала везу.", - "Add to your ownCloud" : "Додај у свој облак", + "shared by %s" : "поделио %s", + "Add to your Nextcloud" : "Додајте у свој облак", "Download" : "Преузми", "Download %s" : "Преузми %s", - "Direct link" : "Директна веза" + "Direct link" : "Директна веза", + "Upload files to %s" : "Отпремите фајлове на%s", + "Select or drop files" : "Одаберите или превуците фајлове", + "Uploading files…" : "Отпремам фајлове…", + "Uploaded files:" : "Отпремљени фајлови:" }, "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_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json index dacc1f79052..e352b892848 100644 --- a/apps/files_sharing/l10n/sr.json +++ b/apps/files_sharing/l10n/sr.json @@ -1,58 +1,113 @@ { "translations": { - "Server to server sharing is not enabled on this server" : "Дељење између сервера није укључено на овом серверу", - "The mountpoint name contains invalid characters." : "Назив тачке монтирања садржи неисправне знакове.", - "Invalid or untrusted SSL certificate" : "Неисправан или неповерљив ССЛ сертификат", - "Could not authenticate to remote share, password might be wrong" : "Не могу да се пријавим на удаљено дељење. Лозинка је можда погрешна", - "Storage not valid" : "Складиште није исправно", - "Couldn't add remote share" : "Не могу да додам удаљено дељење", "Shared with you" : "Дељено са вама", "Shared with others" : "Дељено са осталима", "Shared by link" : "Дељено путем везе", - "Nothing shared with you yet" : "Још увек се ништа са вама не дели", + "Nothing shared with you yet" : "Још увек се ништа не дели са Вама", "Files and folders others share with you will show up here" : "Фајлови и фасцикле које други деле са вама појавиће се овде", "Nothing shared yet" : "Још се ништа не дели", "Files and folders you share will show up here" : "Фајлови и фасцикле које делите појавиће се овде", "No shared links" : "Нема веза за дељење", "Files and folders you share by link will show up here" : "Фајлови и фасцикле које делите путем везе појавиће се овде", - "Do you want to add the remote share {name} from {owner}@{remote}?" : "Желите ли да додате удаљено дељење {name} власника {owner}@{remote}?", - "Remote share" : "Удаљено дељење", - "Remote share password" : "Лозинка удаљеног дељења", - "Cancel" : "Одустани", - "Add remote share" : "Додај удаљено дељење", "You can upload into this folder" : "Можете да отпремате у ову фасциклу", - "No ownCloud installation (7 or higher) found at {remote}" : "Нема оунКлауд инсталације верзије 7 или више на {remote}", - "Invalid ownCloud url" : "Неисправан оунКлауд УРЛ", - "Shared by" : "Дели", + "No compatible server found at {remote}" : "Нема компатибилног сервера на {remote}", + "Invalid server URL" : "Неисправна адреса сервера", + "Failed to add the public link to your Nextcloud" : "Неуспело додавање јавне везе ка Вашем Некстклауду", + "Share" : "Подели", + "No expiration date set" : "Није постављен датум истека", + "Shared by" : "Поделио", "Sharing" : "Дељење", - "A file or folder has been <strong>shared</strong>" : "Фајл или фасцикла је <strong>дељен</strong>", + "File shares" : "Дељења фајлова", + "Downloaded via public link" : "Скинуто преко јавне везе", + "Downloaded by {email}" : "Скинуо {email}", + "{file} downloaded via public link" : "{file} скинут преко јавне везе", + "{email} downloaded {file}" : "{email} скинуо {file}", + "Shared with group {group}" : "Дељено са групом {group}", + "Removed share for group {group}" : "Уклоњено дељење за групу {group}", + "{actor} shared with group {group}" : "{actor} поделио са групом {group}", + "{actor} removed share for group {group}" : "{actor} уклонио дељење за групу {group}", + "You shared {file} with group {group}" : "Поделили сте {file} са групом {group}", + "You removed group {group} from {file}" : "Уклонили сте групу {group} са {file}", + "{actor} shared {file} with group {group}" : "{actor} поделио {file} са групом {group}", + "{actor} removed group {group} from {file}" : "{actor} уклонио групу {group} са {file}", + "Shared as public link" : "Дељено као јавна веза", + "Removed public link" : "Уклоњена јавна веза", + "Public link expired" : "Јавна веза истекла", + "{actor} shared as public link" : "{actor} поделио као јавну везу", + "{actor} removed public link" : "{actor} уклонио јавну везу", + "Public link of {actor} expired" : "Јавна веза коју је направио {actor} истекла", + "You shared {file} as public link" : "Поделили сте {file} као јавну везу", + "You removed public link for {file}" : "Уклонили сте јавну везу за {file}", + "Public link expired for {file}" : "Јавна веза за {file} истекла", + "{actor} shared {file} as public link" : "{actor} поделио {file} као јавну везу", + "{actor} removed public link for {file}" : "{actor} уклонио јавну везу за {file}", + "Public link of {actor} for {file} expired" : "Јавна веза коју је направио {actor} за {file} истекла", + "{user} accepted the remote share" : "{user} је прихватио удаљено дељење", + "{user} declined the remote share" : "{user} је одбио јавно дељење", + "You received a new remote share {file} from {user}" : "Добили сте ново удаљено дељење {file} које је направио {user}", + "{user} accepted the remote share of {file}" : "{user} прихватио удаљено дељење за фајл {file}", + "{user} declined the remote share of {file}" : "{user} одбио удаљено дељење за фајл {file}", + "{user} unshared {file} from you" : "{user} укинио дељење фајла {file} са Вама", + "Shared with {user}" : "Дељено са {user}", + "Removed share for {user}" : "Уклоњено дељење за корисника {user}", + "{actor} shared with {user}" : "{actor} поделио са корисником {user}", + "{actor} removed share for {user}" : "{actor} уклонио дељеље са корисником {user}", + "Shared by {actor}" : "Поделио {actor}", + "{actor} removed share" : "{actor} уклонио дељење", + "You shared {file} with {user}" : "Поделили сте {file} са корисником {user}", + "You removed {user} from {file}" : "Уклонили сте корисника {user} са фајла {file}", + "{actor} shared {file} with {user}" : "{actor} поделио {file} са корисником {user}", + "{actor} removed {user} from {file}" : "{actor} уклонио корисника {user} са {file}", + "{actor} shared {file} with you" : "{actor} поделио {file} са Вама", + "{actor} removed you from {file}" : "{actor} Вас је уклонио са {file}", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Фајл или фасцикла подељена е-поштом су <strong>преузети</strong>", "A file or folder was shared from <strong>another server</strong>" : "Фајл или фасцикла су дељени са <strong>другог сервера</strong>", - "A public shared file or folder was <strong>downloaded</strong>" : "Јавно дељени фајл или фасцикла су <strong>преузети</strong>", - "You received a new remote share from %s" : "Добили сте ново удаљено дељење од %s", - "%1$s accepted remote share %2$s" : "%1$s прихвати удаљено дељење %2$s", - "%1$s declined remote share %2$s" : "%1$s одби удаљено дељење %2$s", - "%1$s unshared %2$s from you" : "%1$s не дели %2$s са вама", - "Public shared folder %1$s was downloaded" : "Јавно дељена фасцикла %1$s је преузета", - "Public shared file %1$s was downloaded" : "Јавно дељени фајл %1$s је преузет", - "You shared %1$s with %2$s" : "Поделили сте %1$s са %2$s", - "You shared %1$s with group %2$s" : "Поделили сте %1$s са групом %2$s", - "You shared %1$s via link" : "Поделили сте %1$s путем везе", - "%2$s shared %1$s with you" : "%2$s подели %1$s са вама", - "Shares" : "Дељења", + "A file or folder has been <strong>shared</strong>" : "Фајл или фасцикла је <strong>дељен</strong>", + "Wrong share ID, share doesn't exist" : "Погрешна идентификација дељења, дељење не постоји", + "could not delete share" : "не могу да обришем дељење", + "Could not delete share" : "Не могу да обришем дељење", + "Please specify a file or folder path" : "Молимо одаберите путању до фајла или фасцикле", + "Wrong path, file/folder doesn't exist" : "Погрешна путања, фајл/фасцикла не постоји", + "Could not create share" : "Не могу да направим дељење", + "invalid permissions" : "Неисправне дозволе", + "Please specify a valid user" : "Одаберите исправног корисника", + "Group sharing is disabled by the administrator" : "Администратор је забранио дељење са групом", + "Please specify a valid group" : "Одаберите исправну групу", + "Public link sharing is disabled by the administrator" : "Администратор је забранио дељење јавном везом", + "Public upload disabled by the administrator" : "Администратор је забранио отпремања са јавним приступом", + "Public upload is only possible for publicly shared folders" : "Отпремања са јавним приступом су могућа само за јавно дељене фасцикле", + "Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД", + "Sharing %s failed because the back end does not allow shares from type %s" : "Дељење %s није успело зато што позадина не дозвољава дељење које је типа %s", + "You cannot share to a Circle if the app is not enabled" : "Не можете делити са Круговима ако та апликација није укључена", + "Please specify a valid circle" : "Одаберите исправан круг", + "Unknown share type" : "Непознат тип дељења", + "Not a directory" : "Није фасцикла", + "Could not lock path" : "Не могу да закључам путању", + "Wrong or no update parameter given" : "Погрешан или ненаведен параметер", + "Can't change permissions for public share links" : "Не могу се променити привилегије за јавно доступне везе", + "Cannot increase permissions" : "Не могу да повећам привилегије", + "%s is publicly shared" : "%s је јавно дељен", + "Share API is disabled" : "API за дељене је искључен", "This share is password-protected" : "Дељење је заштићено лозинком", "The password is wrong. Try again." : "Лозинка је погрешна. Покушајте поново.", "Password" : "Лозинка", "No entries found in this folder" : "Нема ничега у овој фасцикли", "Name" : "Назив", "Share time" : "Време дељења", + "Expiration date" : "Датум истека", "Sorry, this link doesn’t seem to work anymore." : "Нажалост, изгледа да веза више не ради.", "Reasons might be:" : "Разлози могу бити:", "the item was removed" : "ставка је уклоњена", "the link expired" : "веза је истекла", "sharing is disabled" : "дељење је искључено", "For more info, please ask the person who sent this link." : "За више информација, питајте особу која вам је послала везу.", - "Add to your ownCloud" : "Додај у свој облак", + "shared by %s" : "поделио %s", + "Add to your Nextcloud" : "Додајте у свој облак", "Download" : "Преузми", "Download %s" : "Преузми %s", - "Direct link" : "Директна веза" + "Direct link" : "Директна веза", + "Upload files to %s" : "Отпремите фајлове на%s", + "Select or drop files" : "Одаберите или превуците фајлове", + "Uploading files…" : "Отпремам фајлове…", + "Uploaded files:" : "Отпремљени фајлови:" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js index 7f3016cc0aa..8a46cb8a5e8 100644 --- a/apps/files_sharing/l10n/tr.js +++ b/apps/files_sharing/l10n/tr.js @@ -61,7 +61,7 @@ OC.L10N.register( "{actor} removed {user} from {file}" : "{actor} {file} dosyasının {user} kullanıcısıyla paylaşımını kaldırdı", "{actor} shared {file} with you" : "{actor} {file} dosyasını sizinle paylaştı", "{actor} removed you from {file}" : "{actor} {file} dosyasının sizinle paylaşımını kaldırdı", - "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "E-posta ya da herkese açık bağlatı ile paylaşılan bir dosya ya da klasör <strong>indirildi</strong>", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "E-posta ya da herkese açık bağlantı ile paylaşılan bir dosya ya da klasör <strong>indirildi</strong>", "A file or folder was shared from <strong>another server</strong>" : "<strong>Başka bir sunucudan</strong> bir dosya ya da klasör paylaşıldı", "A file or folder has been <strong>shared</strong>" : "Bir dosya ya da klasör <strong>paylaşıldı</strong>", "Wrong share ID, share doesn't exist" : "Paylaşım kimliği yanlış. Paylaşım bulunamadı", diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json index 3772f953e29..f028cc1811e 100644 --- a/apps/files_sharing/l10n/tr.json +++ b/apps/files_sharing/l10n/tr.json @@ -59,7 +59,7 @@ "{actor} removed {user} from {file}" : "{actor} {file} dosyasının {user} kullanıcısıyla paylaşımını kaldırdı", "{actor} shared {file} with you" : "{actor} {file} dosyasını sizinle paylaştı", "{actor} removed you from {file}" : "{actor} {file} dosyasının sizinle paylaşımını kaldırdı", - "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "E-posta ya da herkese açık bağlatı ile paylaşılan bir dosya ya da klasör <strong>indirildi</strong>", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "E-posta ya da herkese açık bağlantı ile paylaşılan bir dosya ya da klasör <strong>indirildi</strong>", "A file or folder was shared from <strong>another server</strong>" : "<strong>Başka bir sunucudan</strong> bir dosya ya da klasör paylaşıldı", "A file or folder has been <strong>shared</strong>" : "Bir dosya ya da klasör <strong>paylaşıldı</strong>", "Wrong share ID, share doesn't exist" : "Paylaşım kimliği yanlış. Paylaşım bulunamadı", diff --git a/apps/files_sharing/lib/Controller/ShareesAPIController.php b/apps/files_sharing/lib/Controller/ShareesAPIController.php index 94a4854dbde..dcecf2c8e08 100644 --- a/apps/files_sharing/lib/Controller/ShareesAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareesAPIController.php @@ -6,6 +6,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * * @license AGPL-3.0 * @@ -27,52 +28,23 @@ namespace OCA\Files_Sharing\Controller; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSBadRequestException; use OCP\AppFramework\OCSController; -use OCP\Contacts\IManager; -use OCP\Federation\ICloudIdManager; -use OCP\Http\Client\IClientService; -use OCP\IGroup; -use OCP\IGroupManager; -use OCP\ILogger; +use OCP\Collaboration\Collaborators\ISearch; use OCP\IRequest; -use OCP\IUser; -use OCP\IUserManager; use OCP\IConfig; -use OCP\IUserSession; use OCP\IURLGenerator; use OCP\Share; +use OCP\Share\IManager; class ShareesAPIController extends OCSController { - - /** @var IGroupManager */ - protected $groupManager; - - /** @var IUserManager */ - protected $userManager; - - /** @var IManager */ - protected $contactsManager; - /** @var IConfig */ protected $config; - /** @var IUserSession */ - protected $userSession; - /** @var IURLGenerator */ protected $urlGenerator; - /** @var ILogger */ - protected $logger; - - /** @var \OCP\Share\IManager */ + /** @var IManager */ protected $shareManager; - /** @var IClientService */ - protected $clientService; - - /** @var ICloudIdManager */ - protected $cloudIdManager; - /** @var bool */ protected $shareWithGroupOnly = false; @@ -103,326 +75,31 @@ class ShareesAPIController extends OCSController { ]; protected $reachedEndFor = []; + /** @var ISearch */ + private $collaboratorSearch; /** * @param string $appName * @param IRequest $request - * @param IGroupManager $groupManager - * @param IUserManager $userManager - * @param IManager $contactsManager * @param IConfig $config - * @param IUserSession $userSession * @param IURLGenerator $urlGenerator - * @param ILogger $logger - * @param \OCP\Share\IManager $shareManager - * @param IClientService $clientService - * @param ICloudIdManager $cloudIdManager + * @param IManager $shareManager + * @param ISearch $collaboratorSearch */ - public function __construct($appName, - IRequest $request, - IGroupManager $groupManager, - IUserManager $userManager, - IManager $contactsManager, - IConfig $config, - IUserSession $userSession, - IURLGenerator $urlGenerator, - ILogger $logger, - \OCP\Share\IManager $shareManager, - IClientService $clientService, - ICloudIdManager $cloudIdManager + public function __construct( + $appName, + IRequest $request, + IConfig $config, + IURLGenerator $urlGenerator, + IManager $shareManager, + ISearch $collaboratorSearch ) { parent::__construct($appName, $request); - $this->groupManager = $groupManager; - $this->userManager = $userManager; - $this->contactsManager = $contactsManager; $this->config = $config; - $this->userSession = $userSession; $this->urlGenerator = $urlGenerator; - $this->logger = $logger; $this->shareManager = $shareManager; - $this->clientService = $clientService; - $this->cloudIdManager = $cloudIdManager; - } - - /** - * @param string $search - */ - protected function getUsers($search) { - $this->result['users'] = $this->result['exact']['users'] = $users = []; - - $userGroups = []; - if ($this->shareWithGroupOnly) { - // Search in all the groups this user is part of - $userGroups = $this->groupManager->getUserGroupIds($this->userSession->getUser()); - foreach ($userGroups as $userGroup) { - $usersTmp = $this->groupManager->displayNamesInGroup($userGroup, $search, $this->limit, $this->offset); - foreach ($usersTmp as $uid => $userDisplayName) { - $users[$uid] = $userDisplayName; - } - } - } else { - // Search in all users - $usersTmp = $this->userManager->searchDisplayName($search, $this->limit, $this->offset); - - foreach ($usersTmp as $user) { - $users[$user->getUID()] = $user->getDisplayName(); - } - } - - if (!$this->shareeEnumeration || sizeof($users) < $this->limit) { - $this->reachedEndFor[] = 'users'; - } - - $foundUserById = false; - $lowerSearch = strtolower($search); - foreach ($users as $uid => $userDisplayName) { - if (strtolower($uid) === $lowerSearch || strtolower($userDisplayName) === $lowerSearch) { - if (strtolower($uid) === $lowerSearch) { - $foundUserById = true; - } - $this->result['exact']['users'][] = [ - 'label' => $userDisplayName, - 'value' => [ - 'shareType' => Share::SHARE_TYPE_USER, - 'shareWith' => $uid, - ], - ]; - } else { - $this->result['users'][] = [ - 'label' => $userDisplayName, - 'value' => [ - 'shareType' => Share::SHARE_TYPE_USER, - 'shareWith' => $uid, - ], - ]; - } - } - - if ($this->offset === 0 && !$foundUserById) { - // On page one we try if the search result has a direct hit on the - // user id and if so, we add that to the exact match list - $user = $this->userManager->get($search); - if ($user instanceof IUser) { - $addUser = true; - - if ($this->shareWithGroupOnly) { - // Only add, if we have a common group - $commonGroups = array_intersect($userGroups, $this->groupManager->getUserGroupIds($user)); - $addUser = !empty($commonGroups); - } - - if ($addUser) { - array_push($this->result['exact']['users'], [ - 'label' => $user->getDisplayName(), - 'value' => [ - 'shareType' => Share::SHARE_TYPE_USER, - 'shareWith' => $user->getUID(), - ], - ]); - } - } - } - - if (!$this->shareeEnumeration) { - $this->result['users'] = []; - } - } - - /** - * @param string $search - */ - protected function getGroups($search) { - $this->result['groups'] = $this->result['exact']['groups'] = []; - - $groups = $this->groupManager->search($search, $this->limit, $this->offset); - $groupIds = array_map(function (IGroup $group) { return $group->getGID(); }, $groups); - - if (!$this->shareeEnumeration || sizeof($groups) < $this->limit) { - $this->reachedEndFor[] = 'groups'; - } - - $userGroups = []; - if (!empty($groups) && $this->shareWithGroupOnly) { - // Intersect all the groups that match with the groups this user is a member of - $userGroups = $this->groupManager->getUserGroups($this->userSession->getUser()); - $userGroups = array_map(function (IGroup $group) { return $group->getGID(); }, $userGroups); - $groupIds = array_intersect($groupIds, $userGroups); - } - - $lowerSearch = strtolower($search); - foreach ($groups as $group) { - // FIXME: use a more efficient approach - $gid = $group->getGID(); - if (!in_array($gid, $groupIds)) { - continue; - } - if (strtolower($gid) === $lowerSearch || strtolower($group->getDisplayName()) === $lowerSearch) { - $this->result['exact']['groups'][] = [ - 'label' => $group->getDisplayName(), - 'value' => [ - 'shareType' => Share::SHARE_TYPE_GROUP, - 'shareWith' => $gid, - ], - ]; - } else { - $this->result['groups'][] = [ - 'label' => $group->getDisplayName(), - 'value' => [ - 'shareType' => Share::SHARE_TYPE_GROUP, - 'shareWith' => $gid, - ], - ]; - } - } - - if ($this->offset === 0 && empty($this->result['exact']['groups'])) { - // On page one we try if the search result has a direct hit on the - // user id and if so, we add that to the exact match list - $group = $this->groupManager->get($search); - if ($group instanceof IGroup && (!$this->shareWithGroupOnly || in_array($group->getGID(), $userGroups))) { - array_push($this->result['exact']['groups'], [ - 'label' => $group->getDisplayName(), - 'value' => [ - 'shareType' => Share::SHARE_TYPE_GROUP, - 'shareWith' => $group->getGID(), - ], - ]); - } - } - - if (!$this->shareeEnumeration) { - $this->result['groups'] = []; - } - } - - - /** - * @param string $search - * @suppress PhanUndeclaredClassMethod - */ - protected function getCircles($search) { - $this->result['circles'] = $this->result['exact']['circles'] = []; - - $result = \OCA\Circles\Api\Sharees::search($search, $this->limit, $this->offset); - if (array_key_exists('circles', $result['exact'])) { - $this->result['exact']['circles'] = $result['exact']['circles']; - } - if (array_key_exists('circles', $result)) { - $this->result['circles'] = $result['circles']; - } - } - - - /** - * @param string $search - * @return array - */ - protected function getRemote($search) { - $result = ['results' => [], 'exact' => []]; - - // Search in contacts - //@todo Pagination missing - $addressBookContacts = $this->contactsManager->search($search, ['CLOUD', 'FN']); - $result['exactIdMatch'] = false; - foreach ($addressBookContacts as $contact) { - if (isset($contact['isLocalSystemBook'])) { - continue; - } - if (isset($contact['CLOUD'])) { - $cloudIds = $contact['CLOUD']; - if (!is_array($cloudIds)) { - $cloudIds = [$cloudIds]; - } - $lowerSearch = strtolower($search); - foreach ($cloudIds as $cloudId) { - try { - list(, $serverUrl) = $this->splitUserRemote($cloudId); - } catch (\InvalidArgumentException $e) { - continue; - } - - if (strtolower($contact['FN']) === $lowerSearch || strtolower($cloudId) === $lowerSearch) { - if (strtolower($cloudId) === $lowerSearch) { - $result['exactIdMatch'] = true; - } - $result['exact'][] = [ - 'label' => $contact['FN'] . " ($cloudId)", - 'value' => [ - 'shareType' => Share::SHARE_TYPE_REMOTE, - 'shareWith' => $cloudId, - 'server' => $serverUrl, - ], - ]; - } else { - $result['results'][] = [ - 'label' => $contact['FN'] . " ($cloudId)", - 'value' => [ - 'shareType' => Share::SHARE_TYPE_REMOTE, - 'shareWith' => $cloudId, - 'server' => $serverUrl, - ], - ]; - } - } - } - } - - if (!$this->shareeEnumeration) { - $result['results'] = []; - } - - if (!$result['exactIdMatch'] && $this->cloudIdManager->isValidCloudId($search) && $this->offset === 0) { - $result['exact'][] = [ - 'label' => $search, - 'value' => [ - 'shareType' => Share::SHARE_TYPE_REMOTE, - 'shareWith' => $search, - ], - ]; - } - - $this->reachedEndFor[] = 'remotes'; - - return $result; - } - - /** - * split user and remote from federated cloud id - * - * @param string $address federated share address - * @return array [user, remoteURL] - * @throws \InvalidArgumentException - */ - public function splitUserRemote($address) { - try { - $cloudId = $this->cloudIdManager->resolveCloudId($address); - return [$cloudId->getUser(), $cloudId->getRemote()]; - } catch (\InvalidArgumentException $e) { - throw new \InvalidArgumentException('Invalid Federated Cloud ID', 0, $e); - } - } - - /** - * Strips away a potential file names and trailing slashes: - * - http://localhost - * - http://localhost/ - * - http://localhost/index.php - * - http://localhost/index.php/s/{shareToken} - * - * all return: http://localhost - * - * @param string $remote - * @return string - */ - protected function fixRemoteURL($remote) { - $remote = str_replace('\\', '/', $remote); - if ($fileNamePosition = strpos($remote, '/index.php')) { - $remote = substr($remote, 0, $fileNamePosition); - } - $remote = rtrim($remote, '/'); - - return $remote; + $this->collaboratorSearch = $collaboratorSearch; } /** @@ -461,7 +138,9 @@ class ShareesAPIController extends OCSController { Share::SHARE_TYPE_USER, ]; - if ($itemType === 'file' || $itemType === 'folder') { + if ($itemType === null) { + throw new OCSBadRequestException('Missing itemType'); + } elseif ($itemType === 'file' || $itemType === 'folder') { if ($this->shareManager->allowGroupSharing()) { $shareTypes[] = Share::SHARE_TYPE_GROUP; } @@ -478,6 +157,7 @@ class ShareesAPIController extends OCSController { $shareTypes[] = Share::SHARE_TYPE_EMAIL; } + // FIXME: DI if (\OC::$server->getAppManager()->isEnabledForUser('circles') && class_exists('\OCA\Circles\ShareByCircleProvider')) { $shareTypes[] = Share::SHARE_TYPE_CIRCLE; } @@ -495,94 +175,16 @@ class ShareesAPIController extends OCSController { $this->limit = (int) $perPage; $this->offset = $perPage * ($page - 1); - return $this->searchSharees($search, $itemType, $shareTypes, $page, $perPage, $lookup); - } - - /** - * Method to get out the static call for better testing - * - * @param string $itemType - * @return bool - */ - protected function isRemoteSharingAllowed($itemType) { - try { - $backend = \OC\Share\Share::getBackend($itemType); - return $backend->isShareTypeAllowed(Share::SHARE_TYPE_REMOTE); - } catch (\Exception $e) { - return false; - } - } - - /** - * Testable search function that does not need globals - * - * @param string $search - * @param string $itemType - * @param array $shareTypes - * @param int $page - * @param int $perPage - * @param bool $lookup - * @return DataResponse - * @throws OCSBadRequestException - */ - protected function searchSharees($search, $itemType, array $shareTypes, $page, $perPage, $lookup) { - // Verify arguments - if ($itemType === null) { - throw new OCSBadRequestException('Missing itemType'); - } - - // Get users - if (in_array(Share::SHARE_TYPE_USER, $shareTypes)) { - $this->getUsers($search); - } - - // Get groups - if (in_array(Share::SHARE_TYPE_GROUP, $shareTypes)) { - $this->getGroups($search); - } - - // Get circles - if (in_array(Share::SHARE_TYPE_CIRCLE, $shareTypes)) { - $this->getCircles($search); - } - - - // Get remote - $remoteResults = ['results' => [], 'exact' => [], 'exactIdMatch' => false]; - if (in_array(Share::SHARE_TYPE_REMOTE, $shareTypes)) { - $remoteResults = $this->getRemote($search); - } - - // Get emails - $mailResults = ['results' => [], 'exact' => [], 'exactIdMatch' => false]; - if (in_array(Share::SHARE_TYPE_EMAIL, $shareTypes)) { - $mailResults = $this->getEmail($search); - } - - // Get from lookup server - if ($lookup) { - $this->getLookup($search); - } + list($result, $hasMoreResults) = $this->collaboratorSearch->search($search, $shareTypes, $lookup, $this->limit, $this->offset); - // if we have a exact match, either for the federated cloud id or for the - // email address we only return the exact match. It is highly unlikely - // that the exact same email address and federated cloud id exists - if ($mailResults['exactIdMatch'] && !$remoteResults['exactIdMatch']) { - $this->result['emails'] = $mailResults['results']; - $this->result['exact']['emails'] = $mailResults['exact']; - } else if (!$mailResults['exactIdMatch'] && $remoteResults['exactIdMatch']) { - $this->result['remotes'] = $remoteResults['results']; - $this->result['exact']['remotes'] = $remoteResults['exact']; - } else { - $this->result['remotes'] = $remoteResults['results']; - $this->result['exact']['remotes'] = $remoteResults['exact']; - $this->result['emails'] = $mailResults['results']; - $this->result['exact']['emails'] = $mailResults['exact']; + // extra treatment for 'exact' subarray, with a single merge expected keys might be lost + if(isset($result['exact'])) { + $result['exact'] = array_merge($this->result['exact'], $result['exact']); } - + $this->result = array_merge($this->result, $result); $response = new DataResponse($this->result); - if (sizeof($this->reachedEndFor) < 3) { + if ($hasMoreResults) { $response->addHeader('Link', $this->getPaginationLink($page, [ 'search' => $search, 'itemType' => $itemType, @@ -595,166 +197,22 @@ class ShareesAPIController extends OCSController { } /** - * @param string $search - * @return array - */ - protected function getEmail($search) { - $result = ['results' => [], 'exact' => [], 'exactIdMatch' => false]; - - // Search in contacts - //@todo Pagination missing - $addressBookContacts = $this->contactsManager->search($search, ['EMAIL', 'FN']); - $lowerSearch = strtolower($search); - foreach ($addressBookContacts as $contact) { - if (isset($contact['EMAIL'])) { - $emailAddresses = $contact['EMAIL']; - if (!is_array($emailAddresses)) { - $emailAddresses = [$emailAddresses]; - } - foreach ($emailAddresses as $emailAddress) { - $exactEmailMatch = strtolower($emailAddress) === $lowerSearch; - - if (isset($contact['isLocalSystemBook'])) { - if ($exactEmailMatch) { - try { - $cloud = $this->cloudIdManager->resolveCloudId($contact['CLOUD'][0]); - } catch (\InvalidArgumentException $e) { - continue; - } - - if (!$this->hasUserInResult($cloud->getUser())) { - $this->result['exact']['users'][] = [ - 'label' => $contact['FN'] . " ($emailAddress)", - 'value' => [ - 'shareType' => Share::SHARE_TYPE_USER, - 'shareWith' => $cloud->getUser(), - ], - ]; - } - return ['results' => [], 'exact' => [], 'exactIdMatch' => true]; - } - - if ($this->shareeEnumeration) { - try { - $cloud = $this->cloudIdManager->resolveCloudId($contact['CLOUD'][0]); - } catch (\InvalidArgumentException $e) { - continue; - } - - if (!$this->hasUserInResult($cloud->getUser())) { - $this->result['users'][] = [ - 'label' => $contact['FN'] . " ($emailAddress)", - 'value' => [ - 'shareType' => Share::SHARE_TYPE_USER, - 'shareWith' => $cloud->getUser(), - ], - ]; - } - } - continue; - } - - if ($exactEmailMatch || strtolower($contact['FN']) === $lowerSearch) { - if ($exactEmailMatch) { - $result['exactIdMatch'] = true; - } - $result['exact'][] = [ - 'label' => $contact['FN'] . " ($emailAddress)", - 'value' => [ - 'shareType' => Share::SHARE_TYPE_EMAIL, - 'shareWith' => $emailAddress, - ], - ]; - } else { - $result['results'][] = [ - 'label' => $contact['FN'] . " ($emailAddress)", - 'value' => [ - 'shareType' => Share::SHARE_TYPE_EMAIL, - 'shareWith' => $emailAddress, - ], - ]; - } - } - } - } - - if (!$this->shareeEnumeration) { - $result['results'] = []; - } - - if (!$result['exactIdMatch'] && filter_var($search, FILTER_VALIDATE_EMAIL)) { - $result['exact'][] = [ - 'label' => $search, - 'value' => [ - 'shareType' => Share::SHARE_TYPE_EMAIL, - 'shareWith' => $search, - ], - ]; - } - - $this->reachedEndFor[] = 'emails'; - - return $result; - } - - protected function getLookup($search) { - $isEnabled = $this->config->getAppValue('files_sharing', 'lookupServerEnabled', 'no'); - $lookupServerUrl = $this->config->getSystemValue('lookup_server', 'https://lookup.nextcloud.com'); - $lookupServerUrl = rtrim($lookupServerUrl, '/'); - $result = []; - - if($isEnabled === 'yes') { - try { - $client = $this->clientService->newClient(); - $response = $client->get( - $lookupServerUrl . '/users?search=' . urlencode($search), - [ - 'timeout' => 10, - 'connect_timeout' => 3, - ] - ); - - $body = json_decode($response->getBody(), true); - - $result = []; - foreach ($body as $lookup) { - $result[] = [ - 'label' => $lookup['federationId'], - 'value' => [ - 'shareType' => Share::SHARE_TYPE_REMOTE, - 'shareWith' => $lookup['federationId'], - ], - 'extra' => $lookup, - ]; - } - } catch (\Exception $e) {} - } - - $this->result['lookup'] = $result; - } - - /** - * Check if a given user is already part of the result + * Method to get out the static call for better testing * - * @param string $userId + * @param string $itemType * @return bool */ - protected function hasUserInResult($userId) { - foreach ($this->result['exact']['users'] as $result) { - if ($result['value']['shareWith'] === $userId) { - return true; - } - } - - foreach ($this->result['users'] as $result) { - if ($result['value']['shareWith'] === $userId) { - return true; - } + protected function isRemoteSharingAllowed($itemType) { + try { + // FIXME: static foo makes unit testing unnecessarily difficult + $backend = \OC\Share\Share::getBackend($itemType); + return $backend->isShareTypeAllowed(Share::SHARE_TYPE_REMOTE); + } catch (\Exception $e) { + return false; } - - return false; } + /** * Generates a bunch of pagination links for the current page * diff --git a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php index e027d0751cb..2b919f4849d 100644 --- a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php @@ -25,14 +25,16 @@ namespace OCA\Files_Sharing\Tests\Controller; -use OC\Federation\CloudIdManager; use OCA\Files_Sharing\Controller\ShareesAPIController; use OCA\Files_Sharing\Tests\TestCase; use OCP\AppFramework\Http; use OCP\AppFramework\OCS\OCSBadRequestException; -use OCP\Federation\ICloudIdManager; -use OCP\Http\Client\IClientService; +use OCP\Collaboration\Collaborators\ISearch; +use OCP\IConfig; +use OCP\IRequest; +use OCP\IURLGenerator; use OCP\Share; +use OCP\Share\IManager; /** * Class ShareesTest @@ -45,1251 +47,39 @@ class ShareesAPIControllerTest extends TestCase { /** @var ShareesAPIController */ protected $sharees; - /** @var \OCP\IUserManager|\PHPUnit_Framework_MockObject_MockObject */ - protected $userManager; - - /** @var \OCP\IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ - protected $groupManager; - - /** @var \OCP\Contacts\IManager|\PHPUnit_Framework_MockObject_MockObject */ - protected $contactsManager; - - /** @var \OCP\IUserSession|\PHPUnit_Framework_MockObject_MockObject */ - protected $session; - - /** @var \OCP\IRequest|\PHPUnit_Framework_MockObject_MockObject */ + /** @var IRequest|\PHPUnit_Framework_MockObject_MockObject */ protected $request; - /** @var \OCP\Share\IManager|\PHPUnit_Framework_MockObject_MockObject */ + /** @var IManager|\PHPUnit_Framework_MockObject_MockObject */ protected $shareManager; - /** @var IClientService|\PHPUnit_Framework_MockObject_MockObject */ - private $clientService; - - /** @var ICloudIdManager */ - private $cloudIdManager; + /** @var ISearch|\PHPUnit_Framework_MockObject_MockObject */ + protected $collaboratorSearch; protected function setUp() { parent::setUp(); - $this->userManager = $this->getMockBuilder('OCP\IUserManager') - ->disableOriginalConstructor() - ->getMock(); + $this->request = $this->createMock(IRequest::class); + $this->shareManager = $this->createMock(IManager::class); - $this->groupManager = $this->getMockBuilder('OCP\IGroupManager') - ->disableOriginalConstructor() - ->getMock(); + /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject $configMock */ + $configMock = $this->createMock(IConfig::class); - $this->contactsManager = $this->getMockBuilder('OCP\Contacts\IManager') - ->disableOriginalConstructor() - ->getMock(); + /** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject $urlGeneratorMock */ + $urlGeneratorMock = $this->createMock(IURLGenerator::class); - $this->session = $this->getMockBuilder('OCP\IUserSession') - ->disableOriginalConstructor() - ->getMock(); - - $this->request = $this->getMockBuilder('OCP\IRequest') - ->disableOriginalConstructor() - ->getMock(); - - $this->shareManager = $this->getMockBuilder('OCP\Share\IManager') - ->disableOriginalConstructor() - ->getMock(); - - $this->clientService = $this->createMock(IClientService::class); - - $this->cloudIdManager = new CloudIdManager(); + $this->collaboratorSearch = $this->createMock(ISearch::class); $this->sharees = new ShareesAPIController( 'files_sharing', $this->request, - $this->groupManager, - $this->userManager, - $this->contactsManager, - $this->getMockBuilder('OCP\IConfig')->disableOriginalConstructor()->getMock(), - $this->session, - $this->getMockBuilder('OCP\IURLGenerator')->disableOriginalConstructor()->getMock(), - $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(), + $configMock, + $urlGeneratorMock, $this->shareManager, - $this->clientService, - $this->cloudIdManager + $this->collaboratorSearch ); } - /** - * @param string $uid - * @param string $displayName - * @return \OCP\IUser|\PHPUnit_Framework_MockObject_MockObject - */ - protected function getUserMock($uid, $displayName) { - $user = $this->getMockBuilder('OCP\IUser') - ->disableOriginalConstructor() - ->getMock(); - - $user->expects($this->any()) - ->method('getUID') - ->willReturn($uid); - - $user->expects($this->any()) - ->method('getDisplayName') - ->willReturn($displayName); - - return $user; - } - - /** - * @param string $gid - * @return \OCP\IGroup|\PHPUnit_Framework_MockObject_MockObject - */ - protected function getGroupMock($gid, $displayName = null) { - $group = $this->getMockBuilder('OCP\IGroup') - ->disableOriginalConstructor() - ->getMock(); - - $group->expects($this->any()) - ->method('getGID') - ->willReturn($gid); - - if (is_null($displayName)) { - // note: this is how the Group class behaves - $displayName = $gid; - } - - $group->expects($this->any()) - ->method('getDisplayName') - ->willReturn($displayName); - - return $group; - } - - public function dataGetUsers() { - return [ - ['test', false, true, [], [], [], [], true, false], - ['test', false, false, [], [], [], [], true, false], - ['test', true, true, [], [], [], [], true, false], - ['test', true, false, [], [], [], [], true, false], - [ - 'test', false, true, [], [], - [ - ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], - ], [], true, $this->getUserMock('test', 'Test') - ], - [ - 'test', false, false, [], [], - [ - ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], - ], [], true, $this->getUserMock('test', 'Test') - ], - [ - 'test', true, true, [], [], - [], [], true, $this->getUserMock('test', 'Test') - ], - [ - 'test', true, false, [], [], - [], [], true, $this->getUserMock('test', 'Test') - ], - [ - 'test', true, true, ['test-group'], [['test-group', 'test', 2, 0, []]], - [ - ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], - ], [], true, $this->getUserMock('test', 'Test') - ], - [ - 'test', true, false, ['test-group'], [['test-group', 'test', 2, 0, []]], - [ - ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], - ], [], true, $this->getUserMock('test', 'Test') - ], - [ - 'test', - false, - true, - [], - [ - $this->getUserMock('test1', 'Test One'), - ], - [], - [ - ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ], - true, - false, - ], - [ - 'test', - false, - false, - [], - [ - $this->getUserMock('test1', 'Test One'), - ], - [], - [], - true, - false, - ], - [ - 'test', - false, - true, - [], - [ - $this->getUserMock('test1', 'Test One'), - $this->getUserMock('test2', 'Test Two'), - ], - [], - [ - ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], - ], - false, - false, - ], - [ - 'test', - false, - false, - [], - [ - $this->getUserMock('test1', 'Test One'), - $this->getUserMock('test2', 'Test Two'), - ], - [], - [], - true, - false, - ], - [ - 'test', - false, - true, - [], - [ - $this->getUserMock('test0', 'Test'), - $this->getUserMock('test1', 'Test One'), - $this->getUserMock('test2', 'Test Two'), - ], - [ - ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test0']], - ], - [ - ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], - ], - false, - false, - ], - [ - 'test', - false, - false, - [], - [ - $this->getUserMock('test0', 'Test'), - $this->getUserMock('test1', 'Test One'), - $this->getUserMock('test2', 'Test Two'), - ], - [ - ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test0']], - ], - [], - true, - false, - ], - [ - 'test', - true, - true, - ['abc', 'xyz'], - [ - ['abc', 'test', 2, 0, ['test1' => 'Test One']], - ['xyz', 'test', 2, 0, []], - ], - [], - [ - ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ], - true, - false, - ], - [ - 'test', - true, - false, - ['abc', 'xyz'], - [ - ['abc', 'test', 2, 0, ['test1' => 'Test One']], - ['xyz', 'test', 2, 0, []], - ], - [], - [], - true, - false, - ], - [ - 'test', - true, - true, - ['abc', 'xyz'], - [ - ['abc', 'test', 2, 0, [ - 'test1' => 'Test One', - 'test2' => 'Test Two', - ]], - ['xyz', 'test', 2, 0, [ - 'test1' => 'Test One', - 'test2' => 'Test Two', - ]], - ], - [], - [ - ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], - ], - false, - false, - ], - [ - 'test', - true, - false, - ['abc', 'xyz'], - [ - ['abc', 'test', 2, 0, [ - 'test1' => 'Test One', - 'test2' => 'Test Two', - ]], - ['xyz', 'test', 2, 0, [ - 'test1' => 'Test One', - 'test2' => 'Test Two', - ]], - ], - [], - [], - true, - false, - ], - [ - 'test', - true, - true, - ['abc', 'xyz'], - [ - ['abc', 'test', 2, 0, [ - 'test' => 'Test One', - ]], - ['xyz', 'test', 2, 0, [ - 'test2' => 'Test Two', - ]], - ], - [ - ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], - ], - [ - ['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], - ], - false, - false, - ], - [ - 'test', - true, - false, - ['abc', 'xyz'], - [ - ['abc', 'test', 2, 0, [ - 'test' => 'Test One', - ]], - ['xyz', 'test', 2, 0, [ - 'test2' => 'Test Two', - ]], - ], - [ - ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], - ], - [], - true, - false, - ], - ]; - } - - /** - * @dataProvider dataGetUsers - * - * @param string $searchTerm - * @param bool $shareWithGroupOnly - * @param bool $shareeEnumeration - * @param array $groupResponse - * @param array $userResponse - * @param array $exactExpected - * @param array $expected - * @param bool $reachedEnd - * @param mixed $singleUser - */ - public function testGetUsers($searchTerm, $shareWithGroupOnly, $shareeEnumeration, $groupResponse, $userResponse, $exactExpected, $expected, $reachedEnd, $singleUser) { - $this->invokePrivate($this->sharees, 'limit', [2]); - $this->invokePrivate($this->sharees, 'offset', [0]); - $this->invokePrivate($this->sharees, 'shareWithGroupOnly', [$shareWithGroupOnly]); - $this->invokePrivate($this->sharees, 'shareeEnumeration', [$shareeEnumeration]); - - $user = $this->getUserMock('admin', 'Administrator'); - $this->session->expects($this->any()) - ->method('getUser') - ->willReturn($user); - - if (!$shareWithGroupOnly) { - $this->userManager->expects($this->once()) - ->method('searchDisplayName') - ->with($searchTerm, $this->invokePrivate($this->sharees, 'limit'), $this->invokePrivate($this->sharees, 'offset')) - ->willReturn($userResponse); - } else { - if ($singleUser !== false) { - $this->groupManager->expects($this->exactly(2)) - ->method('getUserGroupIds') - ->withConsecutive( - $user, - $singleUser - ) - ->willReturn($groupResponse); - } else { - $this->groupManager->expects($this->once()) - ->method('getUserGroupIds') - ->with($user) - ->willReturn($groupResponse); - } - - $this->groupManager->expects($this->exactly(sizeof($groupResponse))) - ->method('displayNamesInGroup') - ->with($this->anything(), $searchTerm, $this->invokePrivate($this->sharees, 'limit'), $this->invokePrivate($this->sharees, 'offset')) - ->willReturnMap($userResponse); - } - - if ($singleUser !== false) { - $this->userManager->expects($this->once()) - ->method('get') - ->with($searchTerm) - ->willReturn($singleUser); - } - - $this->invokePrivate($this->sharees, 'getUsers', [$searchTerm]); - $result = $this->invokePrivate($this->sharees, 'result'); - - $this->assertEquals($exactExpected, $result['exact']['users']); - $this->assertEquals($expected, $result['users']); - $this->assertCount((int) $reachedEnd, $this->invokePrivate($this->sharees, 'reachedEndFor')); - } - - public function dataGetGroups() { - return [ - ['test', false, true, [], [], [], [], true, false], - ['test', false, false, [], [], [], [], true, false], - // group without display name - [ - 'test', false, true, - [$this->getGroupMock('test1')], - [], - [], - [['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], - true, - false, - ], - // group with display name, search by id - [ - 'test', false, true, - [$this->getGroupMock('test1', 'Test One')], - [], - [], - [['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], - true, - false, - ], - // group with display name, search by display name - [ - 'one', false, true, - [$this->getGroupMock('test1', 'Test One')], - [], - [], - [['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], - true, - false, - ], - // group with display name, search by display name, exact expected - [ - 'Test One', false, true, - [$this->getGroupMock('test1', 'Test One')], - [], - [['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], - [], - true, - false, - ], - [ - 'test', false, false, - [$this->getGroupMock('test1')], - [], - [], - [], - true, - false, - ], - [ - 'test', false, true, - [ - $this->getGroupMock('test'), - $this->getGroupMock('test1'), - ], - [], - [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], - [['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], - false, - false, - ], - [ - 'test', false, false, - [ - $this->getGroupMock('test'), - $this->getGroupMock('test1'), - ], - [], - [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], - [], - true, - false, - ], - [ - 'test', false, true, - [ - $this->getGroupMock('test0'), - $this->getGroupMock('test1'), - ], - [], - [], - [ - ['label' => 'test0', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test0']], - ['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']], - ], - false, - null, - ], - [ - 'test', false, false, - [ - $this->getGroupMock('test0'), - $this->getGroupMock('test1'), - ], - [], - [], - [], - true, - null, - ], - [ - 'test', false, true, - [ - $this->getGroupMock('test0'), - $this->getGroupMock('test1'), - ], - [], - [ - ['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']], - ], - [ - ['label' => 'test0', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test0']], - ['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']], - ], - false, - $this->getGroupMock('test'), - ], - [ - 'test', false, false, - [ - $this->getGroupMock('test0'), - $this->getGroupMock('test1'), - ], - [], - [ - ['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']], - ], - [], - true, - $this->getGroupMock('test'), - ], - ['test', true, true, [], [], [], [], true, false], - ['test', true, false, [], [], [], [], true, false], - [ - 'test', true, true, - [ - $this->getGroupMock('test1'), - $this->getGroupMock('test2'), - ], - [$this->getGroupMock('test1')], - [], - [['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], - false, - false, - ], - [ - 'test', true, false, - [ - $this->getGroupMock('test1'), - $this->getGroupMock('test2'), - ], - [$this->getGroupMock('test1')], - [], - [], - true, - false, - ], - [ - 'test', true, true, - [ - $this->getGroupMock('test'), - $this->getGroupMock('test1'), - ], - [$this->getGroupMock('test')], - [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], - [], - false, - false, - ], - [ - 'test', true, false, - [ - $this->getGroupMock('test'), - $this->getGroupMock('test1'), - ], - [$this->getGroupMock('test')], - [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], - [], - true, - false, - ], - [ - 'test', true, true, - [ - $this->getGroupMock('test'), - $this->getGroupMock('test1'), - ], - [$this->getGroupMock('test1')], - [], - [['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], - false, - false, - ], - [ - 'test', true, false, - [ - $this->getGroupMock('test'), - $this->getGroupMock('test1'), - ], - [$this->getGroupMock('test1')], - [], - [], - true, - false, - ], - [ - 'test', true, true, - [ - $this->getGroupMock('test'), - $this->getGroupMock('test1'), - ], - [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], - [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], - [['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], - false, - false, - ], - [ - 'test', true, false, - [ - $this->getGroupMock('test'), - $this->getGroupMock('test1'), - ], - [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], - [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], - [], - true, - false, - ], - [ - 'test', true, true, - [ - $this->getGroupMock('test0'), - $this->getGroupMock('test1'), - ], - [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], - [], - [ - ['label' => 'test0', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test0']], - ['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']], - ], - false, - null, - ], - [ - 'test', true, false, - [ - $this->getGroupMock('test0'), - $this->getGroupMock('test1'), - ], - [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], - [], - [], - true, - null, - ], - [ - 'test', true, true, - [ - $this->getGroupMock('test0'), - $this->getGroupMock('test1'), - ], - [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], - [ - ['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']], - ], - [ - ['label' => 'test0', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test0']], - ['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']], - ], - false, - $this->getGroupMock('test'), - ], - [ - 'test', true, false, - [ - $this->getGroupMock('test0'), - $this->getGroupMock('test1'), - ], - [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], - [ - ['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']], - ], - [], - true, - $this->getGroupMock('test'), - ], - ]; - } - - /** - * @dataProvider dataGetGroups - * - * @param string $searchTerm - * @param bool $shareWithGroupOnly - * @param bool $shareeEnumeration - * @param array $groupResponse - * @param array $userGroupsResponse - * @param array $exactExpected - * @param array $expected - * @param bool $reachedEnd - * @param mixed $singleGroup - */ - public function testGetGroups($searchTerm, $shareWithGroupOnly, $shareeEnumeration, $groupResponse, $userGroupsResponse, $exactExpected, $expected, $reachedEnd, $singleGroup) { - $this->invokePrivate($this->sharees, 'limit', [2]); - $this->invokePrivate($this->sharees, 'offset', [0]); - $this->invokePrivate($this->sharees, 'shareWithGroupOnly', [$shareWithGroupOnly]); - $this->invokePrivate($this->sharees, 'shareeEnumeration', [$shareeEnumeration]); - - $this->groupManager->expects($this->once()) - ->method('search') - ->with($searchTerm, $this->invokePrivate($this->sharees, 'limit'), $this->invokePrivate($this->sharees, 'offset')) - ->willReturn($groupResponse); - - if ($singleGroup !== false) { - $this->groupManager->expects($this->once()) - ->method('get') - ->with($searchTerm) - ->willReturn($singleGroup); - } - - if ($shareWithGroupOnly) { - $user = $this->getUserMock('admin', 'Administrator'); - $this->session->expects($this->any()) - ->method('getUser') - ->willReturn($user); - - $numGetUserGroupsCalls = empty($groupResponse) ? 0 : 1; - $this->groupManager->expects($this->exactly($numGetUserGroupsCalls)) - ->method('getUserGroups') - ->with($user) - ->willReturn($userGroupsResponse); - } - - $this->invokePrivate($this->sharees, 'getGroups', [$searchTerm]); - $result = $this->invokePrivate($this->sharees, 'result'); - - $this->assertEquals($exactExpected, $result['exact']['groups']); - $this->assertEquals($expected, $result['groups']); - $this->assertCount((int) $reachedEnd, $this->invokePrivate($this->sharees, 'reachedEndFor')); - } - - /** - * @dataProvider dataGetRemote - * - * @param string $searchTerm - * @param array $contacts - * @param bool $shareeEnumeration - * @param array $expected - * @param bool $reachedEnd - */ - public function testGetRemote($searchTerm, $contacts, $shareeEnumeration, $expected, $reachedEnd) { - $this->invokePrivate($this->sharees, 'shareeEnumeration', [$shareeEnumeration]); - $this->contactsManager->expects($this->any()) - ->method('search') - ->with($searchTerm, ['CLOUD', 'FN']) - ->willReturn($contacts); - - $result = $this->invokePrivate($this->sharees, 'getRemote', [$searchTerm]); - - $this->assertEquals($expected, $result); - $this->assertCount((int) $reachedEnd, $this->invokePrivate($this->sharees, 'reachedEndFor')); - } - - public function dataGetRemote() { - return [ - ['test', [], true, ['results' => [], 'exact' => [], 'exactIdMatch' => false], true], - ['test', [], false, ['results' => [], 'exact' => [], 'exactIdMatch' => false], true], - [ - 'test@remote', - [], - true, - ['results' => [], 'exact' => [['label' => 'test@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'test@remote']]], 'exactIdMatch' => false], - true, - ], - [ - 'test@remote', - [], - false, - ['results' => [], 'exact' => [['label' => 'test@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'test@remote']]], 'exactIdMatch' => false], - true, - ], - [ - 'test', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'CLOUD' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'CLOUD' => [ - 'username@localhost', - ], - ], - ], - true, - ['results' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'username@localhost', 'server' => 'localhost']]], 'exact' => [], 'exactIdMatch' => false], - true, - ], - [ - 'test', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'CLOUD' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'CLOUD' => [ - 'username@localhost', - ], - ], - ], - false, - ['results' => [], 'exact' => [], 'exactIdMatch' => false], - true, - ], - [ - 'test@remote', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'CLOUD' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'CLOUD' => [ - 'username@localhost', - ], - ], - ], - true, - ['results' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'username@localhost', 'server' => 'localhost']]], 'exact' => [['label' => 'test@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'test@remote']]], 'exactIdMatch' => false], - true, - ], - [ - 'test@remote', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'CLOUD' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'CLOUD' => [ - 'username@localhost', - ], - ], - ], - false, - ['results' => [], 'exact' => [['label' => 'test@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'test@remote']]], 'exactIdMatch' => false], - true, - ], - [ - 'username@localhost', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'CLOUD' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'CLOUD' => [ - 'username@localhost', - ], - ], - ], - true, - ['results' => [], 'exact' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'username@localhost', 'server' => 'localhost']]], 'exactIdMatch' => true], - true, - ], - [ - 'username@localhost', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'CLOUD' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'CLOUD' => [ - 'username@localhost', - ], - ], - ], - false, - ['results' => [], 'exact' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'username@localhost', 'server' => 'localhost']]], 'exactIdMatch' => true], - true, - ], - // contact with space - [ - 'user name@localhost', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'CLOUD' => [ - ], - ], - [ - 'FN' => 'User Name @ Localhost', - 'CLOUD' => [ - 'user name@localhost', - ], - ], - ], - false, - ['results' => [], 'exact' => [['label' => 'User Name @ Localhost (user name@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'user name@localhost', 'server' => 'localhost']]], 'exactIdMatch' => true], - true, - ], - // remote with space, no contact - [ - 'user space@remote', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'CLOUD' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'CLOUD' => [ - 'username@localhost', - ], - ], - ], - false, - ['results' => [], 'exact' => [['label' => 'user space@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'user space@remote']]], 'exactIdMatch' => false], - true, - ], - ]; - } - - /** - * @dataProvider dataGetEmail - * - * @param string $searchTerm - * @param array $contacts - * @param bool $shareeEnumeration - * @param array $expected - * @param bool $reachedEnd - */ - public function testGetEmail($searchTerm, $contacts, $shareeEnumeration, $expected, $reachedEnd) { - $this->invokePrivate($this->sharees, 'shareeEnumeration', [$shareeEnumeration]); - $this->contactsManager->expects($this->any()) - ->method('search') - ->with($searchTerm, ['EMAIL', 'FN']) - ->willReturn($contacts); - - $result = $this->invokePrivate($this->sharees, 'getEmail', [$searchTerm]); - - $this->assertEquals($expected, $result); - $this->assertCount((int) $reachedEnd, $this->invokePrivate($this->sharees, 'reachedEndFor')); - } - - public function dataGetEmail() { - return [ - ['test', [], true, ['results' => [], 'exact' => [], 'exactIdMatch' => false], true], - ['test', [], false, ['results' => [], 'exact' => [], 'exactIdMatch' => false], true], - [ - 'test@remote.com', - [], - true, - ['results' => [], 'exact' => [['label' => 'test@remote.com', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'test@remote.com']]], 'exactIdMatch' => false], - true, - ], - [ // no valid email address - 'test@remote', - [], - true, - ['results' => [], 'exact' => [], 'exactIdMatch' => false], - true, - ], - [ - 'test@remote.com', - [], - false, - ['results' => [], 'exact' => [['label' => 'test@remote.com', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'test@remote.com']]], 'exactIdMatch' => false], - true, - ], - [ - 'test', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'EMAIL' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'EMAIL' => [ - 'username@localhost', - ], - ], - ], - true, - ['results' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'username@localhost']]], 'exact' => [], 'exactIdMatch' => false], - true, - ], - [ - 'test', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'EMAIL' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'EMAIL' => [ - 'username@localhost', - ], - ], - ], - false, - ['results' => [], 'exact' => [], 'exactIdMatch' => false], - true, - ], - [ - 'test@remote.com', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'EMAIL' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'EMAIL' => [ - 'username@localhost', - ], - ], - ], - true, - ['results' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'username@localhost']]], 'exact' => [['label' => 'test@remote.com', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'test@remote.com']]], 'exactIdMatch' => false], - true, - ], - [ - 'test@remote.com', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'EMAIL' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'EMAIL' => [ - 'username@localhost', - ], - ], - ], - false, - ['results' => [], 'exact' => [['label' => 'test@remote.com', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'test@remote.com']]], 'exactIdMatch' => false], - true, - ], - [ - 'username@localhost', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'EMAIL' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'EMAIL' => [ - 'username@localhost', - ], - ], - ], - true, - ['results' => [], 'exact' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'username@localhost']]], 'exactIdMatch' => true], - true, - ], - [ - 'username@localhost', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'EMAIL' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'EMAIL' => [ - 'username@localhost', - ], - ], - ], - false, - ['results' => [], 'exact' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'username@localhost']]], 'exactIdMatch' => true], - true, - ], - // contact with space - [ - 'user name@localhost', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'EMAIL' => [ - ], - ], - [ - 'FN' => 'User Name @ Localhost', - 'EMAIL' => [ - 'user name@localhost', - ], - ], - ], - false, - ['results' => [], 'exact' => [['label' => 'User Name @ Localhost (user name@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'user name@localhost']]], 'exactIdMatch' => true], - true, - ], - // remote with space, no contact - [ - 'user space@remote.com', - [ - [ - 'FN' => 'User3 @ Localhost', - ], - [ - 'FN' => 'User2 @ Localhost', - 'EMAIL' => [ - ], - ], - [ - 'FN' => 'User @ Localhost', - 'EMAIL' => [ - 'username@localhost', - ], - ], - ], - false, - ['results' => [], 'exact' => [], 'exactIdMatch' => false], - true, - ], - // Local user found by email - [ - 'test@example.com', - [ - [ - 'FN' => 'User', - 'EMAIL' => ['test@example.com'], - 'CLOUD' => ['test@localhost'], - 'isLocalSystemBook' => true, - ] - ], - false, - ['results' => [], 'exact' => [], 'exactIdMatch' => true], - false, - ] - ]; - } - public function dataSearch() { $noRemote = [Share::SHARE_TYPE_USER, Share::SHARE_TYPE_GROUP, Share::SHARE_TYPE_EMAIL]; $allTypes = [Share::SHARE_TYPE_USER, Share::SHARE_TYPE_GROUP, Share::SHARE_TYPE_REMOTE, Share::SHARE_TYPE_EMAIL]; @@ -1424,14 +214,13 @@ class ShareesAPIControllerTest extends TestCase { */ public function testSearch($getData, $apiSetting, $enumSetting, $remoteSharingEnabled, $emailSharingEnabled, $shareTypes, $shareWithGroupOnly, $shareeEnumeration, $allowGroupSharing) { $search = isset($getData['search']) ? $getData['search'] : ''; - $itemType = isset($getData['itemType']) ? $getData['itemType'] : null; + $itemType = isset($getData['itemType']) ? $getData['itemType'] : 'irrelevant'; $page = isset($getData['page']) ? $getData['page'] : 1; $perPage = isset($getData['perPage']) ? $getData['perPage'] : 200; $shareType = isset($getData['shareType']) ? $getData['shareType'] : null; - $config = $this->getMockBuilder('OCP\IConfig') - ->disableOriginalConstructor() - ->getMock(); + /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject $config */ + $config = $this->createMock(IConfig::class); $config->expects($this->exactly(2)) ->method('getAppValue') ->with('core', $this->anything(), $this->anything()) @@ -1444,41 +233,29 @@ class ShareesAPIControllerTest extends TestCase { ->method('allowGroupSharing') ->willReturn($allowGroupSharing); + /** @var IRequest|\PHPUnit_Framework_MockObject_MockObject $request */ + $request = $this->createMock(IRequest::class); + /** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject $urlGenerator */ + $urlGenerator = $this->createMock(IURLGenerator::class); + /** @var \PHPUnit_Framework_MockObject_MockObject|\OCA\Files_Sharing\Controller\ShareesAPIController $sharees */ $sharees = $this->getMockBuilder('\OCA\Files_Sharing\Controller\ShareesAPIController') ->setConstructorArgs([ 'files_sharing', - $this->getMockBuilder('OCP\IRequest')->disableOriginalConstructor()->getMock(), - $this->groupManager, - $this->userManager, - $this->contactsManager, + $request, $config, - $this->session, - $this->getMockBuilder('OCP\IURLGenerator')->disableOriginalConstructor()->getMock(), - $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(), + $urlGenerator, $this->shareManager, - $this->clientService, - $this->cloudIdManager + $this->collaboratorSearch ]) - ->setMethods(array('searchSharees', 'isRemoteSharingAllowed', 'shareProviderExists')) + ->setMethods(['isRemoteSharingAllowed', 'shareProviderExists']) ->getMock(); - $sharees->expects($this->once()) - ->method('searchSharees') - ->willReturnCallback(function - ($isearch, $iitemType, $ishareTypes, $ipage, $iperPage) - use ($search, $itemType, $shareTypes, $page, $perPage) { - // We are doing strict comparisons here, so we can differ 0/'' and null on shareType/itemType - $this->assertSame($search, $isearch); - $this->assertSame($itemType, $iitemType); - $this->assertSame(count($shareTypes), count($ishareTypes)); - foreach($shareTypes as $expected) { - $this->assertTrue(in_array($expected, $ishareTypes)); - } - $this->assertSame($page, $ipage); - $this->assertSame($perPage, $iperPage); - return new Http\DataResponse(); - }); + $this->collaboratorSearch->expects($this->once()) + ->method('search') + ->with($search, $shareTypes, $this->anything(), $perPage, $perPage * ($page -1)) + ->willReturn([[], false]); + $sharees->expects($this->any()) ->method('isRemoteSharingAllowed') ->with($itemType) @@ -1531,35 +308,34 @@ class ShareesAPIControllerTest extends TestCase { $page = isset($getData['page']) ? $getData['page'] : 1; $perPage = isset($getData['perPage']) ? $getData['perPage'] : 200; - $config = $this->getMockBuilder('OCP\IConfig') - ->disableOriginalConstructor() - ->getMock(); + /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject $config */ + $config = $this->createMock(IConfig::class); $config->expects($this->never()) ->method('getAppValue'); + /** @var IRequest|\PHPUnit_Framework_MockObject_MockObject $request */ + $request = $this->createMock(IRequest::class); + /** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject $urlGenerator */ + $urlGenerator = $this->createMock(IURLGenerator::class); + /** @var \PHPUnit_Framework_MockObject_MockObject|\OCA\Files_Sharing\Controller\ShareesAPIController $sharees */ $sharees = $this->getMockBuilder('\OCA\Files_Sharing\Controller\ShareesAPIController') ->setConstructorArgs([ 'files_sharing', - $this->getMockBuilder('OCP\IRequest')->disableOriginalConstructor()->getMock(), - $this->groupManager, - $this->userManager, - $this->contactsManager, + $request, $config, - $this->session, - $this->getMockBuilder('OCP\IURLGenerator')->disableOriginalConstructor()->getMock(), - $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(), + $urlGenerator, $this->shareManager, - $this->clientService, - $this->cloudIdManager + $this->collaboratorSearch ]) - ->setMethods(array('searchSharees', 'isRemoteSharingAllowed')) + ->setMethods(['isRemoteSharingAllowed']) ->getMock(); $sharees->expects($this->never()) - ->method('searchSharees'); - $sharees->expects($this->never()) ->method('isRemoteSharingAllowed'); + $this->collaboratorSearch->expects($this->never()) + ->method('search'); + try { $sharees->search('', null, $page, $perPage, null); $this->fail(); @@ -1587,188 +363,12 @@ class ShareesAPIControllerTest extends TestCase { $this->assertSame($expected, $this->invokePrivate($this->sharees, 'isRemoteSharingAllowed', [$itemType])); } - public function dataSearchSharees() { - return [ - ['test', 'folder', [Share::SHARE_TYPE_USER, Share::SHARE_TYPE_GROUP, Share::SHARE_TYPE_REMOTE], 1, 2, false, [], [], ['results' => [], 'exact' => [], 'exactIdMatch' => false], - [ - 'exact' => ['users' => [], 'groups' => [], 'remotes' => [], 'circles' => [], 'emails' => []], - 'users' => [], - 'groups' => [], - 'remotes' => [], - 'emails' => [], - 'circles' => [], - 'lookup' => [], - ], false], - ['test', 'folder', [Share::SHARE_TYPE_USER, Share::SHARE_TYPE_GROUP, Share::SHARE_TYPE_REMOTE], 1, 2, false, [], [], ['results' => [], 'exact' => [], 'exactIdMatch' => false], - [ - 'exact' => ['users' => [], 'groups' => [], 'remotes' => [], 'circles' => [], 'emails' => []], - 'users' => [], - 'groups' => [], - 'remotes' => [], - 'emails' => [], - 'circles' => [], - 'lookup' => [], - ], false], - [ - 'test', 'folder', [Share::SHARE_TYPE_USER, Share::SHARE_TYPE_GROUP, Share::SHARE_TYPE_REMOTE], 1, 2, false, [ - ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ], [ - ['label' => 'testgroup1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'testgroup1']], - ], [ - 'results' => [['label' => 'testz@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'testz@remote']]], 'exact' => [], 'exactIdMatch' => false, - ], - [ - 'exact' => ['users' => [], 'groups' => [], 'remotes' => [], 'circles' => [], 'emails' => []], - 'users' => [ - ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ], - 'groups' => [ - ['label' => 'testgroup1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'testgroup1']], - ], - 'remotes' => [ - ['label' => 'testz@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'testz@remote']], - ], - 'emails' => [], - 'circles' => [], - 'lookup' => [], - ], true, - ], - // No groups requested - [ - 'test', 'folder', [Share::SHARE_TYPE_USER, Share::SHARE_TYPE_REMOTE], 1, 2, false, [ - ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ], null, [ - 'results' => [['label' => 'testz@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'testz@remote']]], 'exact' => [], 'exactIdMatch' => false - ], - [ - 'exact' => ['users' => [], 'groups' => [], 'remotes' => [], 'circles' => [], 'emails' => []], - 'users' => [ - ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ], - 'groups' => [], - 'remotes' => [ - ['label' => 'testz@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'testz@remote']], - ], - 'emails' => [], - 'circles' => [], - 'lookup' => [], - ], false, - ], - // Share type restricted to user - Only one user - [ - 'test', 'folder', [Share::SHARE_TYPE_USER], 1, 2, false, [ - ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ], null, null, - [ - 'exact' => ['users' => [], 'groups' => [], 'remotes' => [], 'circles' => [], 'emails' => []], - 'users' => [ - ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ], - 'groups' => [], - 'remotes' => [], - 'emails' => [], - 'circles' => [], - 'lookup' => [], - ], false, - ], - // Share type restricted to user - Multipage result - [ - 'test', 'folder', [Share::SHARE_TYPE_USER], 1, 2, false, [ - ['label' => 'test 1', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ['label' => 'test 2', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], - ], null, null, - [ - 'exact' => ['users' => [], 'groups' => [], 'remotes' => [], 'circles' => [], 'emails' => []], - 'users' => [ - ['label' => 'test 1', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], - ['label' => 'test 2', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], - ], - 'groups' => [], - 'remotes' => [], - 'emails' => [], - 'circles' => [], - 'lookup' => [], - ], true, - ], - ]; - } - - /** - * @dataProvider dataSearchSharees - * - * @param string $searchTerm - * @param string $itemType - * @param array $shareTypes - * @param int $page - * @param int $perPage - * @param bool $shareWithGroupOnly - * @param array $mockedUserResult - * @param array $mockedGroupsResult - * @param array $mockedRemotesResult - * @param array $expected - * @param bool $nextLink - */ - public function testSearchSharees($searchTerm, $itemType, array $shareTypes, $page, $perPage, $shareWithGroupOnly, - $mockedUserResult, $mockedGroupsResult, $mockedRemotesResult, $expected, $nextLink) { - /** @var \PHPUnit_Framework_MockObject_MockObject|\OCA\Files_Sharing\Controller\ShareesAPIController $sharees */ - $sharees = $this->getMockBuilder('\OCA\Files_Sharing\Controller\ShareesAPIController') - ->setConstructorArgs([ - 'files_sharing', - $this->getMockBuilder('OCP\IRequest')->disableOriginalConstructor()->getMock(), - $this->groupManager, - $this->userManager, - $this->contactsManager, - $this->getMockBuilder('OCP\IConfig')->disableOriginalConstructor()->getMock(), - $this->session, - $this->getMockBuilder('OCP\IURLGenerator')->disableOriginalConstructor()->getMock(), - $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(), - $this->shareManager, - $this->clientService, - $this->cloudIdManager - ]) - ->setMethods(array('getShareesForShareIds', 'getUsers', 'getGroups', 'getRemote')) - ->getMock(); - $sharees->expects(($mockedUserResult === null) ? $this->never() : $this->once()) - ->method('getUsers') - ->with($searchTerm) - ->willReturnCallback(function() use ($sharees, $mockedUserResult) { - $result = $this->invokePrivate($sharees, 'result'); - $result['users'] = $mockedUserResult; - $this->invokePrivate($sharees, 'result', [$result]); - }); - $sharees->expects(($mockedGroupsResult === null) ? $this->never() : $this->once()) - ->method('getGroups') - ->with($searchTerm) - ->willReturnCallback(function() use ($sharees, $mockedGroupsResult) { - $result = $this->invokePrivate($sharees, 'result'); - $result['groups'] = $mockedGroupsResult; - $this->invokePrivate($sharees, 'result', [$result]); - }); - - $sharees->expects(($mockedRemotesResult === null) ? $this->never() : $this->once()) - ->method('getRemote') - ->with($searchTerm) - ->willReturn($mockedRemotesResult); - - $ocs = $this->invokePrivate($sharees, 'searchSharees', [$searchTerm, $itemType, $shareTypes, $page, $perPage, $shareWithGroupOnly]); - $this->assertInstanceOf('\OCP\AppFramework\Http\DataResponse', $ocs); - $this->assertEquals($expected, $ocs->getData()); - - // Check if next link is set - if ($nextLink) { - $headers = $ocs->getHeaders(); - $this->assertArrayHasKey('Link', $headers); - $this->assertStringStartsWith('<', $headers['Link']); - $this->assertStringEndsWith('>; rel="next"', $headers['Link']); - } - } - /** * @expectedException \OCP\AppFramework\OCS\OCSBadRequestException * @expectedExceptionMessage Missing itemType */ - public function testSearchShareesNoItemType() { - $this->invokePrivate($this->sharees, 'searchSharees', ['', null, [], [], 0, 0, false]); + public function testSearchNoItemType() { + $this->sharees->search('', null, 1, 10, [], false); } public function dataGetPaginationLink() { @@ -1814,97 +414,4 @@ class ShareesAPIControllerTest extends TestCase { $this->assertEquals($expected, $this->invokePrivate($this->sharees, 'isV2')); } - - /** - * @dataProvider dataTestSplitUserRemote - * - * @param string $remote - * @param string $expectedUser - * @param string $expectedUrl - */ - public function testSplitUserRemote($remote, $expectedUser, $expectedUrl) { - list($remoteUser, $remoteUrl) = $this->sharees->splitUserRemote($remote); - $this->assertSame($expectedUser, $remoteUser); - $this->assertSame($expectedUrl, $remoteUrl); - } - - public function dataTestSplitUserRemote() { - $userPrefix = ['user@name', 'username']; - $protocols = ['', 'http://', 'https://']; - $remotes = [ - 'localhost', - 'local.host', - 'dev.local.host', - 'dev.local.host/path', - 'dev.local.host/at@inpath', - '127.0.0.1', - '::1', - '::192.0.2.128', - '::192.0.2.128/at@inpath', - ]; - - $testCases = []; - foreach ($userPrefix as $user) { - foreach ($remotes as $remote) { - foreach ($protocols as $protocol) { - $baseUrl = $user . '@' . $protocol . $remote; - - $testCases[] = [$baseUrl, $user, $protocol . $remote]; - $testCases[] = [$baseUrl . '/', $user, $protocol . $remote]; - $testCases[] = [$baseUrl . '/index.php', $user, $protocol . $remote]; - $testCases[] = [$baseUrl . '/index.php/s/token', $user, $protocol . $remote]; - } - } - } - return $testCases; - } - - public function dataTestSplitUserRemoteError() { - return array( - // Invalid path - array('user@'), - - // Invalid user - array('@server'), - array('us/er@server'), - array('us:er@server'), - - // Invalid splitting - array('user'), - array(''), - array('us/erserver'), - array('us:erserver'), - ); - } - - /** - * @dataProvider dataTestSplitUserRemoteError - * - * @param string $id - * @expectedException \Exception - */ - public function testSplitUserRemoteError($id) { - $this->sharees->splitUserRemote($id); - } - - /** - * @dataProvider dataTestFixRemoteUrl - * - * @param string $url - * @param string $expected - */ - public function testFixRemoteUrl($url, $expected) { - $this->assertSame($expected, - $this->invokePrivate($this->sharees, 'fixRemoteURL', [$url]) - ); - } - - public function dataTestFixRemoteUrl() { - return [ - ['http://localhost', 'http://localhost'], - ['http://localhost/', 'http://localhost'], - ['http://localhost/index.php', 'http://localhost'], - ['http://localhost/index.php/s/AShareToken', 'http://localhost'], - ]; - } } diff --git a/apps/files_trashbin/l10n/fa.js b/apps/files_trashbin/l10n/fa.js index 281851c65a0..b3c63104b04 100644 --- a/apps/files_trashbin/l10n/fa.js +++ b/apps/files_trashbin/l10n/fa.js @@ -11,6 +11,8 @@ OC.L10N.register( "This operation is forbidden" : "این عملیات غیرمجاز است", "This directory is unavailable, please check the logs or contact the administrator" : "پوشه در دسترس نیست، لطفا لاگها را بررسی کنید یا به مدیر سیستم اطلاع دهید", "restored" : "بازیابی شد", + "No deleted files" : "هیچ فایل حذف شده وجود ندارد", + "You will be able to recover deleted files from here" : "شما قادر خواهید بود فایل های حذف شده را از اینجا بازیابی کنید", "No entries found in this folder" : "هیچ ورودیای در این پوشه وجود ندارد", "Select all" : "انتخاب همه", "Name" : "نام", diff --git a/apps/files_trashbin/l10n/fa.json b/apps/files_trashbin/l10n/fa.json index 08bee906d38..09ff91cc2e0 100644 --- a/apps/files_trashbin/l10n/fa.json +++ b/apps/files_trashbin/l10n/fa.json @@ -9,6 +9,8 @@ "This operation is forbidden" : "این عملیات غیرمجاز است", "This directory is unavailable, please check the logs or contact the administrator" : "پوشه در دسترس نیست، لطفا لاگها را بررسی کنید یا به مدیر سیستم اطلاع دهید", "restored" : "بازیابی شد", + "No deleted files" : "هیچ فایل حذف شده وجود ندارد", + "You will be able to recover deleted files from here" : "شما قادر خواهید بود فایل های حذف شده را از اینجا بازیابی کنید", "No entries found in this folder" : "هیچ ورودیای در این پوشه وجود ندارد", "Select all" : "انتخاب همه", "Name" : "نام", diff --git a/apps/files_trashbin/l10n/pt_PT.js b/apps/files_trashbin/l10n/pt_PT.js index 7f0f658e9b0..fbf84019251 100644 --- a/apps/files_trashbin/l10n/pt_PT.js +++ b/apps/files_trashbin/l10n/pt_PT.js @@ -9,7 +9,7 @@ OC.L10N.register( "Delete permanently" : "Eliminar permanentemente", "Error" : "Erro", "This operation is forbidden" : "Esta operação é proibida", - "This directory is unavailable, please check the logs or contact the administrator" : "Esta diretoria está indisponível, por favor, verifique os registos ou contacte o administrador", + "This directory is unavailable, please check the logs or contact the administrator" : "Esta pasta não está disponível, por favor, verifique os registos ou contacte o administrador", "restored" : "Restaurado", "No deleted files" : "Sem ficheiros eliminados", "You will be able to recover deleted files from here" : "Poderá recuperar ficheiros eliminados a partir daqui", diff --git a/apps/files_trashbin/l10n/pt_PT.json b/apps/files_trashbin/l10n/pt_PT.json index 541a4b72f3c..d4fe15313f9 100644 --- a/apps/files_trashbin/l10n/pt_PT.json +++ b/apps/files_trashbin/l10n/pt_PT.json @@ -7,7 +7,7 @@ "Delete permanently" : "Eliminar permanentemente", "Error" : "Erro", "This operation is forbidden" : "Esta operação é proibida", - "This directory is unavailable, please check the logs or contact the administrator" : "Esta diretoria está indisponível, por favor, verifique os registos ou contacte o administrador", + "This directory is unavailable, please check the logs or contact the administrator" : "Esta pasta não está disponível, por favor, verifique os registos ou contacte o administrador", "restored" : "Restaurado", "No deleted files" : "Sem ficheiros eliminados", "You will be able to recover deleted files from here" : "Poderá recuperar ficheiros eliminados a partir daqui", diff --git a/apps/files_trashbin/tests/StorageTest.php b/apps/files_trashbin/tests/StorageTest.php index 2e3ddf2e6bf..bdddafcf016 100644 --- a/apps/files_trashbin/tests/StorageTest.php +++ b/apps/files_trashbin/tests/StorageTest.php @@ -530,7 +530,7 @@ class StorageTest extends \Test\TestCase { */ public function testShouldMoveToTrash($mountPoint, $path, $userExists, $appDisablesTrash, $expected) { $fileID = 1; - $cache = $this->getMock(ICache::class); + $cache = $this->createMock(ICache::class); $cache->expects($this->any())->method('getId')->willReturn($fileID); $tmpStorage = $this->getMockBuilder('\OC\Files\Storage\Temporary') ->disableOriginalConstructor()->getMock($cache); @@ -542,7 +542,7 @@ class StorageTest extends \Test\TestCase { $logger = $this->getMockBuilder(ILogger::class)->getMock(); $eventDispatcher = $this->getMockBuilder(EventDispatcher::class) ->disableOriginalConstructor()->getMock(); - $rootFolder = $this->getMock(IRootFolder::class); + $rootFolder = $this->createMock(IRootFolder::class); $node = $this->getMockBuilder(Node::class)->disableOriginalConstructor()->getMock(); $event = $this->getMockBuilder(MoveToTrashEvent::class)->disableOriginalConstructor()->getMock(); $event->expects($this->any())->method('shouldMoveToTrashBin')->willReturn(!$appDisablesTrash); diff --git a/apps/files_versions/l10n/es.js b/apps/files_versions/l10n/es.js index 2a35aca3231..c5cbac93f9b 100644 --- a/apps/files_versions/l10n/es.js +++ b/apps/files_versions/l10n/es.js @@ -6,7 +6,7 @@ OC.L10N.register( "Failed to revert {file} to revision {timestamp}." : "No se ha podido revertir {archivo} a revisión {timestamp}.", "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Restore" : "Recuperar", - "No earlier versions available" : "No hay versiones previouses disponibles", + "No earlier versions available" : "No hay versiones previas disponibles", "More versions …" : "Más versiones ...", "No versions available" : "No hay versiones disponibles", "More versions..." : "Más versiones..." diff --git a/apps/files_versions/l10n/es.json b/apps/files_versions/l10n/es.json index 19b2fa5ea3b..2e7fbbc5752 100644 --- a/apps/files_versions/l10n/es.json +++ b/apps/files_versions/l10n/es.json @@ -4,7 +4,7 @@ "Failed to revert {file} to revision {timestamp}." : "No se ha podido revertir {archivo} a revisión {timestamp}.", "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Restore" : "Recuperar", - "No earlier versions available" : "No hay versiones previouses disponibles", + "No earlier versions available" : "No hay versiones previas disponibles", "More versions …" : "Más versiones ...", "No versions available" : "No hay versiones disponibles", "More versions..." : "Más versiones..." diff --git a/apps/files_versions/l10n/nb.js b/apps/files_versions/l10n/nb.js index 14bdd10a893..40eecd966c3 100644 --- a/apps/files_versions/l10n/nb.js +++ b/apps/files_versions/l10n/nb.js @@ -4,7 +4,7 @@ OC.L10N.register( "Could not revert: %s" : "Klarte ikke å tilbakeføre: %s", "Versions" : "Versjoner", "Failed to revert {file} to revision {timestamp}." : "Klarte ikke å tilbakeføre {file} til revisjon {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n Byte","%n Byte"], + "_%n byte_::_%n bytes_" : ["%n byte","%n byte"], "Restore" : "Gjenopprett", "No earlier versions available" : "Ingen tidligere versjoner tilgjengelige", "More versions …" : "Flere versjoner…", diff --git a/apps/files_versions/l10n/nb.json b/apps/files_versions/l10n/nb.json index acbba4d379c..479d4037ec8 100644 --- a/apps/files_versions/l10n/nb.json +++ b/apps/files_versions/l10n/nb.json @@ -2,7 +2,7 @@ "Could not revert: %s" : "Klarte ikke å tilbakeføre: %s", "Versions" : "Versjoner", "Failed to revert {file} to revision {timestamp}." : "Klarte ikke å tilbakeføre {file} til revisjon {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n Byte","%n Byte"], + "_%n byte_::_%n bytes_" : ["%n byte","%n byte"], "Restore" : "Gjenopprett", "No earlier versions available" : "Ingen tidligere versjoner tilgjengelige", "More versions …" : "Flere versjoner…", diff --git a/apps/files_versions/l10n/sr.js b/apps/files_versions/l10n/sr.js index 812ff38f1d6..ed1e96c4573 100644 --- a/apps/files_versions/l10n/sr.js +++ b/apps/files_versions/l10n/sr.js @@ -4,8 +4,11 @@ OC.L10N.register( "Could not revert: %s" : "Не могу да вратим: %s", "Versions" : "Верзије", "Failed to revert {file} to revision {timestamp}." : "Не могу да вратим {file} на ревизију {timestamp}.", + "_%n byte_::_%n bytes_" : ["%n бајт","%n бајта","%n бајтова"], "Restore" : "Врати", - "More versions..." : "Још верзија...", - "No other versions available" : "Нема других верзија" + "No earlier versions available" : "Нема старијих верзија", + "More versions …" : "Још верзија …", + "No versions available" : "Нема доступних верзија", + "More versions..." : "Још верзија..." }, "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_versions/l10n/sr.json b/apps/files_versions/l10n/sr.json index 11a1479daed..b9c1a71153d 100644 --- a/apps/files_versions/l10n/sr.json +++ b/apps/files_versions/l10n/sr.json @@ -2,8 +2,11 @@ "Could not revert: %s" : "Не могу да вратим: %s", "Versions" : "Верзије", "Failed to revert {file} to revision {timestamp}." : "Не могу да вратим {file} на ревизију {timestamp}.", + "_%n byte_::_%n bytes_" : ["%n бајт","%n бајта","%n бајтова"], "Restore" : "Врати", - "More versions..." : "Још верзија...", - "No other versions available" : "Нема других верзија" + "No earlier versions available" : "Нема старијих верзија", + "More versions …" : "Још верзија …", + "No versions available" : "Нема доступних верзија", + "More versions..." : "Још верзија..." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/oauth2/l10n/sr.js b/apps/oauth2/l10n/sr.js new file mode 100644 index 00000000000..17bf401136d --- /dev/null +++ b/apps/oauth2/l10n/sr.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "oauth2", + { + "OAuth 2.0 clients" : "OAuth 2.0 клијенти", + "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 дозвољава спољним сервисима да захтевају приступ на %s.", + "Name" : "Име", + "Redirection URI" : "Адреса за преусмеравање", + "Client Identifier" : "Идентификација клијента", + "Secret" : "Тајна", + "Add client" : "Додај клијента", + "Add" : "Додај" +}, +"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/oauth2/l10n/sr.json b/apps/oauth2/l10n/sr.json new file mode 100644 index 00000000000..ce91adc6253 --- /dev/null +++ b/apps/oauth2/l10n/sr.json @@ -0,0 +1,11 @@ +{ "translations": { + "OAuth 2.0 clients" : "OAuth 2.0 клијенти", + "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 дозвољава спољним сервисима да захтевају приступ на %s.", + "Name" : "Име", + "Redirection URI" : "Адреса за преусмеравање", + "Client Identifier" : "Идентификација клијента", + "Secret" : "Тајна", + "Add client" : "Додај клијента", + "Add" : "Додај" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +}
\ No newline at end of file diff --git a/apps/sharebymail/l10n/ca.js b/apps/sharebymail/l10n/ca.js index 0783846acb7..a80a7519582 100644 --- a/apps/sharebymail/l10n/ca.js +++ b/apps/sharebymail/l10n/ca.js @@ -23,12 +23,12 @@ OC.L10N.register( "Click the button below to open it." : "Feu clic al botó següent per obrir-lo.", "Open »%s«" : "Obert »%s«", "%s via %s" : "%svia%s", - "Password to access »%s« shared to you by %s" : "Contrasenya d'accés »%s« compartida per vostè %s", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%scompartit »%s« amb tu. Heu d'haver rebut un correu independent amb un enllaç per accedir-hi.", + "Password to access »%s« shared to you by %s" : "Contrasenya d'accés »%s« compartida per vostè %s", "Password to access »%s«" : "Contrasenya d'accés »%s«", "It is protected with the following password: %s" : "Està protegit amb la següent contrasenya: %s", - "Password to access »%s« shared with %s" : "Contrasenya d'accés »%s« compartit amb %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabeu de compartir »%s« amb %s. La part ja s'ha enviat al destinatari. A causa de les polítiques de seguretat definides per l'administrador de %scada acció, ha de ser protegit per contrasenya i no es permet enviar la contrasenya directament al destinatari. Per tant, heu de reenviar la contrasenya manualment al destinatari.", + "Password to access »%s« shared with %s" : "Contrasenya d'accés »%s« compartit amb %s", "This is the password: %s" : "Aquesta és la contrasenya:%s", "You can choose a different password at any time in the share dialog." : "Podeu triar una contrasenya diferent en qualsevol moment al diàleg d'accions.", "Could not find share" : "No s'ha pogut trobar la compartició", diff --git a/apps/sharebymail/l10n/ca.json b/apps/sharebymail/l10n/ca.json index c5254f91fd0..6e0981ab4e3 100644 --- a/apps/sharebymail/l10n/ca.json +++ b/apps/sharebymail/l10n/ca.json @@ -21,12 +21,12 @@ "Click the button below to open it." : "Feu clic al botó següent per obrir-lo.", "Open »%s«" : "Obert »%s«", "%s via %s" : "%svia%s", - "Password to access »%s« shared to you by %s" : "Contrasenya d'accés »%s« compartida per vostè %s", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%scompartit »%s« amb tu. Heu d'haver rebut un correu independent amb un enllaç per accedir-hi.", + "Password to access »%s« shared to you by %s" : "Contrasenya d'accés »%s« compartida per vostè %s", "Password to access »%s«" : "Contrasenya d'accés »%s«", "It is protected with the following password: %s" : "Està protegit amb la següent contrasenya: %s", - "Password to access »%s« shared with %s" : "Contrasenya d'accés »%s« compartit amb %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabeu de compartir »%s« amb %s. La part ja s'ha enviat al destinatari. A causa de les polítiques de seguretat definides per l'administrador de %scada acció, ha de ser protegit per contrasenya i no es permet enviar la contrasenya directament al destinatari. Per tant, heu de reenviar la contrasenya manualment al destinatari.", + "Password to access »%s« shared with %s" : "Contrasenya d'accés »%s« compartit amb %s", "This is the password: %s" : "Aquesta és la contrasenya:%s", "You can choose a different password at any time in the share dialog." : "Podeu triar una contrasenya diferent en qualsevol moment al diàleg d'accions.", "Could not find share" : "No s'ha pogut trobar la compartició", diff --git a/apps/sharebymail/l10n/cs.js b/apps/sharebymail/l10n/cs.js index e3231c6a65a..b2cbfa08f41 100644 --- a/apps/sharebymail/l10n/cs.js +++ b/apps/sharebymail/l10n/cs.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Pro otevření kliknětena tlačítko níže.", "Open »%s«" : "Otevřít »%s«", "%s via %s" : "%s přes %s", - "Password to access »%s« shared to you by %s" : "Heslo pro přístup k »%s« (vám nasdílel(a) %s)", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s s vámi sdílel(a) %s.", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s s vámi sdílel(a) »%s«. Již jste měli dostat e-mail s přístupovými údaji.", + "Password to access »%s« shared to you by %s" : "Heslo pro přístup k »%s« (vám nasdílel(a) %s)", "Password to access »%s«" : "Heslo pro přístup k »%s«", "It is protected with the following password: %s" : "Je chráněn následujícím heslem: %s", - "Password to access »%s« shared with %s" : "Heslo pro přístup k »%s« sdíleno s %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Právě jste s »%s» nasdílel(a) %s. Sdílení bylo již příjemci zasláno. Kvůli bezpečnostní politice nastavené administrátorem %s musí být každé sdílení chráněno heslem a toto heslo nemůže být příjemci zasláno přímo. Kvůli tomu ho budete muset manuálně přeposlat.", + "Password to access »%s« shared with %s" : "Heslo pro přístup k »%s« sdíleno s %s", "This is the password: %s" : "Toto je heslo: %s", "You can choose a different password at any time in the share dialog." : "V dialogu sdílení můžete kdykoliv vybrat jiné heslo.", "Could not find share" : "Nelze nalézt sdílení", diff --git a/apps/sharebymail/l10n/cs.json b/apps/sharebymail/l10n/cs.json index 7758949bd0f..80b4476b45d 100644 --- a/apps/sharebymail/l10n/cs.json +++ b/apps/sharebymail/l10n/cs.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Pro otevření kliknětena tlačítko níže.", "Open »%s«" : "Otevřít »%s«", "%s via %s" : "%s přes %s", - "Password to access »%s« shared to you by %s" : "Heslo pro přístup k »%s« (vám nasdílel(a) %s)", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s s vámi sdílel(a) %s.", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s s vámi sdílel(a) »%s«. Již jste měli dostat e-mail s přístupovými údaji.", + "Password to access »%s« shared to you by %s" : "Heslo pro přístup k »%s« (vám nasdílel(a) %s)", "Password to access »%s«" : "Heslo pro přístup k »%s«", "It is protected with the following password: %s" : "Je chráněn následujícím heslem: %s", - "Password to access »%s« shared with %s" : "Heslo pro přístup k »%s« sdíleno s %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Právě jste s »%s» nasdílel(a) %s. Sdílení bylo již příjemci zasláno. Kvůli bezpečnostní politice nastavené administrátorem %s musí být každé sdílení chráněno heslem a toto heslo nemůže být příjemci zasláno přímo. Kvůli tomu ho budete muset manuálně přeposlat.", + "Password to access »%s« shared with %s" : "Heslo pro přístup k »%s« sdíleno s %s", "This is the password: %s" : "Toto je heslo: %s", "You can choose a different password at any time in the share dialog." : "V dialogu sdílení můžete kdykoliv vybrat jiné heslo.", "Could not find share" : "Nelze nalézt sdílení", diff --git a/apps/sharebymail/l10n/da.js b/apps/sharebymail/l10n/da.js index d37a907e5a2..cd9584039bf 100644 --- a/apps/sharebymail/l10n/da.js +++ b/apps/sharebymail/l10n/da.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klik på knappen nedenunder for at åbne.", "Open »%s«" : "Åbn »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Kodeord for adgang til »%s« delt med dig af %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delte »%s« med dig.\nDu burde allerede have modtaget en email med et link til at tilgå det.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delte »%s« med dig.\nDu burde allerede have modtaget en email med et link til at tilgå det.", + "Password to access »%s« shared to you by %s" : "Kodeord for adgang til »%s« delt med dig af %s", "Password to access »%s«" : "Kodeord for adgang til »%s«", "It is protected with the following password: %s" : "Det er beskyttet af følgende kodeord: %s", - "Password to access »%s« shared with %s" : "Password for adgang til »%s« delt med dig af %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du har delt »%s« med %s. Delingen er allerede sendt til modtageren. Pga. sikkerhedsretninger der er lavet af administratoren af %s hver deling skal beskyttes af et password og det er ikke tilladt at sende passwordet direkte til modtageren. Derfor skal du give passwordet til modtageren manuelt.", + "Password to access »%s« shared with %s" : "Password for adgang til »%s« delt med dig af %s", "This is the password: %s" : "Dette password er: %s", "You can choose a different password at any time in the share dialog." : "Du kan til enhver tid vælge et andet password i delings dialogen.", "Could not find share" : "Kan ikke finde deling", diff --git a/apps/sharebymail/l10n/da.json b/apps/sharebymail/l10n/da.json index 046d4436386..77a40542d31 100644 --- a/apps/sharebymail/l10n/da.json +++ b/apps/sharebymail/l10n/da.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klik på knappen nedenunder for at åbne.", "Open »%s«" : "Åbn »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Kodeord for adgang til »%s« delt med dig af %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delte »%s« med dig.\nDu burde allerede have modtaget en email med et link til at tilgå det.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delte »%s« med dig.\nDu burde allerede have modtaget en email med et link til at tilgå det.", + "Password to access »%s« shared to you by %s" : "Kodeord for adgang til »%s« delt med dig af %s", "Password to access »%s«" : "Kodeord for adgang til »%s«", "It is protected with the following password: %s" : "Det er beskyttet af følgende kodeord: %s", - "Password to access »%s« shared with %s" : "Password for adgang til »%s« delt med dig af %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du har delt »%s« med %s. Delingen er allerede sendt til modtageren. Pga. sikkerhedsretninger der er lavet af administratoren af %s hver deling skal beskyttes af et password og det er ikke tilladt at sende passwordet direkte til modtageren. Derfor skal du give passwordet til modtageren manuelt.", + "Password to access »%s« shared with %s" : "Password for adgang til »%s« delt med dig af %s", "This is the password: %s" : "Dette password er: %s", "You can choose a different password at any time in the share dialog." : "Du kan til enhver tid vælge et andet password i delings dialogen.", "Could not find share" : "Kan ikke finde deling", diff --git a/apps/sharebymail/l10n/de.js b/apps/sharebymail/l10n/de.js index ed08ebf76bf..ad26d8f1c5a 100644 --- a/apps/sharebymail/l10n/de.js +++ b/apps/sharebymail/l10n/de.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klicke zum Öffnen auf die untere Schaltfläche", "Open »%s«" : "Öffne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Dir geteilt.", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s hat »%s« mit Dir geteilt.\nDu solltest eine weitere E-Mail mit dem Link für den Zugriff erhalten haben.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s hat »%s« mit Dir geteilt. Du solltest schon eine E-Mail mit einem Link erhalten haben um darauf zu zugreifen. ", + "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Dir geteilt.", "Password to access »%s«" : "Passwort um auf »%s« zu zugreifen", "It is protected with the following password: %s" : "Dies ist mit dem folgendem Passwort geschützt: %s", - "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du hast »%s« mit %s geteilt. Die Freigabe wurde an den Empfenger gesandt. Aufgrund der Sicherheits-Richtlinien die vom Administrator von %svorgegeben wurden, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu versenden. Aus diesem Grund musst Du das Passwort selbst an den Empfänger senden.", + "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "This is the password: %s" : "Das Passwort lautet: %s", "You can choose a different password at any time in the share dialog." : "Im Teilen-Dialog kannst Du jederzeit ein anderes Passwort wählen.", "Could not find share" : "Freigabe konnte nicht gefunden werden", diff --git a/apps/sharebymail/l10n/de.json b/apps/sharebymail/l10n/de.json index 367699482d9..64c6ac197ea 100644 --- a/apps/sharebymail/l10n/de.json +++ b/apps/sharebymail/l10n/de.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klicke zum Öffnen auf die untere Schaltfläche", "Open »%s«" : "Öffne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Dir geteilt.", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s hat »%s« mit Dir geteilt.\nDu solltest eine weitere E-Mail mit dem Link für den Zugriff erhalten haben.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s hat »%s« mit Dir geteilt. Du solltest schon eine E-Mail mit einem Link erhalten haben um darauf zu zugreifen. ", + "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Dir geteilt.", "Password to access »%s«" : "Passwort um auf »%s« zu zugreifen", "It is protected with the following password: %s" : "Dies ist mit dem folgendem Passwort geschützt: %s", - "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du hast »%s« mit %s geteilt. Die Freigabe wurde an den Empfenger gesandt. Aufgrund der Sicherheits-Richtlinien die vom Administrator von %svorgegeben wurden, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu versenden. Aus diesem Grund musst Du das Passwort selbst an den Empfänger senden.", + "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "This is the password: %s" : "Das Passwort lautet: %s", "You can choose a different password at any time in the share dialog." : "Im Teilen-Dialog kannst Du jederzeit ein anderes Passwort wählen.", "Could not find share" : "Freigabe konnte nicht gefunden werden", diff --git a/apps/sharebymail/l10n/de_DE.js b/apps/sharebymail/l10n/de_DE.js index b078e0be43c..1aa24570027 100644 --- a/apps/sharebymail/l10n/de_DE.js +++ b/apps/sharebymail/l10n/de_DE.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klicken Sie zum Öffnen auf die untere Schaltfläche", "Open »%s«" : "Öffne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Ihnen geteilt.", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s hat »%s« mit Ihnen geteilt.\nSie sollten eine weitere E-Mail mit dem Link für den Zugriff erhalten haben.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s hat »%s« mit Ihnen geteilt. Sie sollten schon eine E-Mail mit einem Link erhalten haben um darauf zu zugreifen. ", + "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Ihnen geteilt.", "Password to access »%s«" : "Passwort um auf »%s« zu zugreifen", "It is protected with the following password: %s" : "Dies ist mit dem folgendem Passwort geschützt: %s", - "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Sie haben »%s« mit %s geteilt. Die Freigabe wurde an den Empfenger gesandt. Aufgrund der Sicherheits-Richtlinien die vom Administrator von %svorgegeben wurden, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu versenden. Aus diesem Grund müssen Sie Passwort selbst an den Empfänger senden.", + "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "This is the password: %s" : "Das Passwort lautet: %s", "You can choose a different password at any time in the share dialog." : "Im Teilen-Dialog können Sie jederzeit ein anderes Passwort wählen.", "Could not find share" : "Freigabe konnte nicht gefunden werden", diff --git a/apps/sharebymail/l10n/de_DE.json b/apps/sharebymail/l10n/de_DE.json index 62aeb5df736..6cc73b38876 100644 --- a/apps/sharebymail/l10n/de_DE.json +++ b/apps/sharebymail/l10n/de_DE.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klicken Sie zum Öffnen auf die untere Schaltfläche", "Open »%s«" : "Öffne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Ihnen geteilt.", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s hat »%s« mit Ihnen geteilt.\nSie sollten eine weitere E-Mail mit dem Link für den Zugriff erhalten haben.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s hat »%s« mit Ihnen geteilt. Sie sollten schon eine E-Mail mit einem Link erhalten haben um darauf zu zugreifen. ", + "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Ihnen geteilt.", "Password to access »%s«" : "Passwort um auf »%s« zu zugreifen", "It is protected with the following password: %s" : "Dies ist mit dem folgendem Passwort geschützt: %s", - "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Sie haben »%s« mit %s geteilt. Die Freigabe wurde an den Empfenger gesandt. Aufgrund der Sicherheits-Richtlinien die vom Administrator von %svorgegeben wurden, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu versenden. Aus diesem Grund müssen Sie Passwort selbst an den Empfänger senden.", + "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "This is the password: %s" : "Das Passwort lautet: %s", "You can choose a different password at any time in the share dialog." : "Im Teilen-Dialog können Sie jederzeit ein anderes Passwort wählen.", "Could not find share" : "Freigabe konnte nicht gefunden werden", diff --git a/apps/sharebymail/l10n/el.js b/apps/sharebymail/l10n/el.js index 2661f7d11f5..952d5245546 100644 --- a/apps/sharebymail/l10n/el.js +++ b/apps/sharebymail/l10n/el.js @@ -23,13 +23,13 @@ OC.L10N.register( "Click the button below to open it." : "Κάντε κλικ στο παρακάτω κουμπί για να το ανοίξετε.", "Open »%s«" : "Ανοίξτε »%s«", "%s via %s" : "%s μέσω %s", - "Password to access »%s« shared to you by %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε μαζί σας μέσω %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s διαμοιράστηκε »%s« με εσάς.\nΘα πρέπει να έχετε ήδη λάβει ένα ξεχωριστό mail με έναν σύνδεσμο με πρόσβαση σε αυτό.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s διαμοιράστηκε »%s« με εσάς. Θα πρέπει να έχετε ήδη λάβει ένα ξεχωριστό mail με έναν σύνδεσμο με πρόσβαση σε αυτό.", + "Password to access »%s« shared to you by %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε μαζί σας μέσω %s", "Password to access »%s«" : "Συνθηματικό για πρόσβαση στο »%s«", "It is protected with the following password: %s" : "Είναι προστατευμένο με το ακόλουθο συνθηματικό: %s", - "Password to access »%s« shared with %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε με %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Έχετε μόλις διαμοιραστεί »%s« με %s. Ο διαμοιρασμός έχει ήδη σταλθεί στον παραλήπτη. Βάση των πολιτικών ασφαλείας που έχουν ορισθεί από τον διαχειριστή του %s ο κάθε διαμοιρασμός χρειάζεται να προστατεύεται από ένα συνθηματικό και δεν επιτρέπετε να σταλθεί το συνθηματικό απευθείας στον παραλήπτη. Επομένως χρειάζεται να προωθήσετε το συνθηματικό χειροκίνητα στον παραλήπτη.", + "Password to access »%s« shared with %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε με %s", "This is the password: %s" : "Αυτό είναι το συνθηματικό: %s", "You can choose a different password at any time in the share dialog." : "Μπορείτε να διαλέξετε ένα διαφορετικό συνθηματικό οποιαδήποτε στιγμή στον διάλογο διαμοιρασμού.", "Could not find share" : "Αδυναμία εύρεσης κοινόχρηστου", diff --git a/apps/sharebymail/l10n/el.json b/apps/sharebymail/l10n/el.json index e2f80276367..f8d942c000f 100644 --- a/apps/sharebymail/l10n/el.json +++ b/apps/sharebymail/l10n/el.json @@ -21,13 +21,13 @@ "Click the button below to open it." : "Κάντε κλικ στο παρακάτω κουμπί για να το ανοίξετε.", "Open »%s«" : "Ανοίξτε »%s«", "%s via %s" : "%s μέσω %s", - "Password to access »%s« shared to you by %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε μαζί σας μέσω %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s διαμοιράστηκε »%s« με εσάς.\nΘα πρέπει να έχετε ήδη λάβει ένα ξεχωριστό mail με έναν σύνδεσμο με πρόσβαση σε αυτό.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s διαμοιράστηκε »%s« με εσάς. Θα πρέπει να έχετε ήδη λάβει ένα ξεχωριστό mail με έναν σύνδεσμο με πρόσβαση σε αυτό.", + "Password to access »%s« shared to you by %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε μαζί σας μέσω %s", "Password to access »%s«" : "Συνθηματικό για πρόσβαση στο »%s«", "It is protected with the following password: %s" : "Είναι προστατευμένο με το ακόλουθο συνθηματικό: %s", - "Password to access »%s« shared with %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε με %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Έχετε μόλις διαμοιραστεί »%s« με %s. Ο διαμοιρασμός έχει ήδη σταλθεί στον παραλήπτη. Βάση των πολιτικών ασφαλείας που έχουν ορισθεί από τον διαχειριστή του %s ο κάθε διαμοιρασμός χρειάζεται να προστατεύεται από ένα συνθηματικό και δεν επιτρέπετε να σταλθεί το συνθηματικό απευθείας στον παραλήπτη. Επομένως χρειάζεται να προωθήσετε το συνθηματικό χειροκίνητα στον παραλήπτη.", + "Password to access »%s« shared with %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε με %s", "This is the password: %s" : "Αυτό είναι το συνθηματικό: %s", "You can choose a different password at any time in the share dialog." : "Μπορείτε να διαλέξετε ένα διαφορετικό συνθηματικό οποιαδήποτε στιγμή στον διάλογο διαμοιρασμού.", "Could not find share" : "Αδυναμία εύρεσης κοινόχρηστου", diff --git a/apps/sharebymail/l10n/en_GB.js b/apps/sharebymail/l10n/en_GB.js index 51de9bcd3e3..463c28fa631 100644 --- a/apps/sharebymail/l10n/en_GB.js +++ b/apps/sharebymail/l10n/en_GB.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Click the button below to open it.", "Open »%s«" : "Open »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Password to access »%s« shared to you by %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s shared »%s« with you. You should have already received a separate mail with a link to access it.", + "Password to access »%s« shared to you by %s" : "Password to access »%s« shared to you by %s", "Password to access »%s«" : "Password to access »%s«", "It is protected with the following password: %s" : "It is protected with the following password: %s", - "Password to access »%s« shared with %s" : "Password to access »%s« shared with %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.", + "Password to access »%s« shared with %s" : "Password to access »%s« shared with %s", "This is the password: %s" : "This is the password: %s", "You can choose a different password at any time in the share dialog." : "You can choose a different password at any time in the share dialog.", "Could not find share" : "Could not find share", diff --git a/apps/sharebymail/l10n/en_GB.json b/apps/sharebymail/l10n/en_GB.json index 8ba45b8fa2c..5b9d653745c 100644 --- a/apps/sharebymail/l10n/en_GB.json +++ b/apps/sharebymail/l10n/en_GB.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Click the button below to open it.", "Open »%s«" : "Open »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Password to access »%s« shared to you by %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s shared »%s« with you. You should have already received a separate mail with a link to access it.", + "Password to access »%s« shared to you by %s" : "Password to access »%s« shared to you by %s", "Password to access »%s«" : "Password to access »%s«", "It is protected with the following password: %s" : "It is protected with the following password: %s", - "Password to access »%s« shared with %s" : "Password to access »%s« shared with %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.", + "Password to access »%s« shared with %s" : "Password to access »%s« shared with %s", "This is the password: %s" : "This is the password: %s", "You can choose a different password at any time in the share dialog." : "You can choose a different password at any time in the share dialog.", "Could not find share" : "Could not find share", diff --git a/apps/sharebymail/l10n/es.js b/apps/sharebymail/l10n/es.js index f205576ac9c..3f01dc6f3fe 100644 --- a/apps/sharebymail/l10n/es.js +++ b/apps/sharebymail/l10n/es.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Haga click en el botón debajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s por %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con un enlace para acceder.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« con usted. Debería haber recibido un mensaje de correo separado con un enlace para abrirlo.", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "Se ha compartido con %s una contraseña para acceder a »%s«", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Usted acaba de compartir »%s« con %s. El recurso compartido ya fue enviado al destinatario. Debido a las reglas de seguridad definadas por el administrador de %s cada recurso compartido necesita ser protegido por una contraseña y no esta permitido que usted mande la contraseña directamente al destinatario. Por eso, usted necesita mandar la contraseña manualmente al destinatario.", + "Password to access »%s« shared with %s" : "Se ha compartido con %s una contraseña para acceder a »%s«", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en el diálogo de compartir.", "Could not find share" : "No se pudo encontrar el recurso compartido", diff --git a/apps/sharebymail/l10n/es.json b/apps/sharebymail/l10n/es.json index 126ec78cbf2..1faa382564d 100644 --- a/apps/sharebymail/l10n/es.json +++ b/apps/sharebymail/l10n/es.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Haga click en el botón debajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s por %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con un enlace para acceder.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« con usted. Debería haber recibido un mensaje de correo separado con un enlace para abrirlo.", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "Se ha compartido con %s una contraseña para acceder a »%s«", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Usted acaba de compartir »%s« con %s. El recurso compartido ya fue enviado al destinatario. Debido a las reglas de seguridad definadas por el administrador de %s cada recurso compartido necesita ser protegido por una contraseña y no esta permitido que usted mande la contraseña directamente al destinatario. Por eso, usted necesita mandar la contraseña manualmente al destinatario.", + "Password to access »%s« shared with %s" : "Se ha compartido con %s una contraseña para acceder a »%s«", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en el diálogo de compartir.", "Could not find share" : "No se pudo encontrar el recurso compartido", diff --git a/apps/sharebymail/l10n/es_AR.js b/apps/sharebymail/l10n/es_AR.js index 14cc043d919..f2fa571d1cd 100644 --- a/apps/sharebymail/l10n/es_AR.js +++ b/apps/sharebymail/l10n/es_AR.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Haga click en el botón de abajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s vía %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s ", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« con usted.\nDebería haber recibido ya un correo por separado con el link para accederlo. \n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« con usted. Ya debería haber recibido un correo aparte con el link para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s ", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Usted compartió »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesita reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puede elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", "Could not find share" : "No fue posible encontrar el elemento compartido", diff --git a/apps/sharebymail/l10n/es_AR.json b/apps/sharebymail/l10n/es_AR.json index 4b27cbe5782..d7c9861e44b 100644 --- a/apps/sharebymail/l10n/es_AR.json +++ b/apps/sharebymail/l10n/es_AR.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Haga click en el botón de abajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s vía %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s ", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« con usted.\nDebería haber recibido ya un correo por separado con el link para accederlo. \n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« con usted. Ya debería haber recibido un correo aparte con el link para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s ", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Usted compartió »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesita reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puede elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", "Could not find share" : "No fue posible encontrar el elemento compartido", diff --git a/apps/sharebymail/l10n/es_MX.js b/apps/sharebymail/l10n/es_MX.js index 9dc5ee4b55d..92f61e8f63e 100644 --- a/apps/sharebymail/l10n/es_MX.js +++ b/apps/sharebymail/l10n/es_MX.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s vía %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con la liga para accederlo. \n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« contigo. Ya deberías haber recibido un correo aparte con la liga para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesitas reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", "Could not find share" : "No fue posible encontrar el elemento compartido", diff --git a/apps/sharebymail/l10n/es_MX.json b/apps/sharebymail/l10n/es_MX.json index 3cc7b9a4899..43a4bc87eb2 100644 --- a/apps/sharebymail/l10n/es_MX.json +++ b/apps/sharebymail/l10n/es_MX.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s vía %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con la liga para accederlo. \n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« contigo. Ya deberías haber recibido un correo aparte con la liga para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesitas reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", "Could not find share" : "No fue posible encontrar el elemento compartido", diff --git a/apps/sharebymail/l10n/fr.js b/apps/sharebymail/l10n/fr.js index 8a022b5afcd..d823ae21cf2 100644 --- a/apps/sharebymail/l10n/fr.js +++ b/apps/sharebymail/l10n/fr.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Cliquez sur le bouton ci-dessous pour l'ouvrir.", "Open »%s«" : "Ouvrir «%s»", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Mot de passe pour accèder à «%s» partagé par %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s a partagé «%s» avec vous.\nVous avez normalement déjà reçu un autre email avec un lien pour y accéder.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s a partagé «%s» avec vous. Vous avez normalement déjà reçu un autre email avec un lien pour y accéder.", + "Password to access »%s« shared to you by %s" : "Mot de passe pour accèder à «%s» partagé par %s", "Password to access »%s«" : "Mot de passe pour accèder à «%s»", "It is protected with the following password: %s" : "Il est protégé avec le mot de passe suivant : %s", - "Password to access »%s« shared with %s" : "Mot de passe pour accèder à «%s» partagé avec %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Vous venez de partager «%s» avec %s. Le partage a déjà été envoyé au destinataire. En raison de la politique de sécurité définie par l'administrateur de %s, chaque partage a besoin d'être protégé par mot de passe et il n'est pas autorisé d'envoyer le mot de passe directement au destinataire. C'est pourquoi vous devez transmettre le mot de passe manuellement au destinataire.", + "Password to access »%s« shared with %s" : "Mot de passe pour accèder à «%s» partagé avec %s", "This is the password: %s" : "Voici le mot de passe : %s", "You can choose a different password at any time in the share dialog." : "Vous pouvez choisir un mot de passe différent à n'importe quel moment dans la boîte de dialogue de partage.", "Could not find share" : "Impossible de trouver le partage", diff --git a/apps/sharebymail/l10n/fr.json b/apps/sharebymail/l10n/fr.json index 98f14cdb717..ed1df58468b 100644 --- a/apps/sharebymail/l10n/fr.json +++ b/apps/sharebymail/l10n/fr.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Cliquez sur le bouton ci-dessous pour l'ouvrir.", "Open »%s«" : "Ouvrir «%s»", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Mot de passe pour accèder à «%s» partagé par %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s a partagé «%s» avec vous.\nVous avez normalement déjà reçu un autre email avec un lien pour y accéder.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s a partagé «%s» avec vous. Vous avez normalement déjà reçu un autre email avec un lien pour y accéder.", + "Password to access »%s« shared to you by %s" : "Mot de passe pour accèder à «%s» partagé par %s", "Password to access »%s«" : "Mot de passe pour accèder à «%s»", "It is protected with the following password: %s" : "Il est protégé avec le mot de passe suivant : %s", - "Password to access »%s« shared with %s" : "Mot de passe pour accèder à «%s» partagé avec %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Vous venez de partager «%s» avec %s. Le partage a déjà été envoyé au destinataire. En raison de la politique de sécurité définie par l'administrateur de %s, chaque partage a besoin d'être protégé par mot de passe et il n'est pas autorisé d'envoyer le mot de passe directement au destinataire. C'est pourquoi vous devez transmettre le mot de passe manuellement au destinataire.", + "Password to access »%s« shared with %s" : "Mot de passe pour accèder à «%s» partagé avec %s", "This is the password: %s" : "Voici le mot de passe : %s", "You can choose a different password at any time in the share dialog." : "Vous pouvez choisir un mot de passe différent à n'importe quel moment dans la boîte de dialogue de partage.", "Could not find share" : "Impossible de trouver le partage", diff --git a/apps/sharebymail/l10n/is.js b/apps/sharebymail/l10n/is.js index 1a1a4feb92e..6fc01805d9b 100644 --- a/apps/sharebymail/l10n/is.js +++ b/apps/sharebymail/l10n/is.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Smelltu á tengilinn hér fyrir neðan til að opna það.", "Open »%s«" : "Opna »%s«", "%s via %s" : "%s með %s", - "Password to access »%s« shared to you by %s" : "Lykilorð fyrir aðgang að »%s« deilt með þér af %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s deildi »%s« með þér.\nÞú ættir að hafa fengið sérstakan tölvupóst með tengli sem vísar á gögnin.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s deildi »%s« með þér.\nÞú ættir að hafa fengið sérstakan tölvupóst með tengli sem vísar á gögnin.", + "Password to access »%s« shared to you by %s" : "Lykilorð fyrir aðgang að »%s« deilt með þér af %s", "Password to access »%s«" : "Lykilorð fyrir aðgang að »%s«", "It is protected with the following password: %s" : "Það er varið með eftirfarandi lykilorði: %s", - "Password to access »%s« shared with %s" : "Lykilorð fyrir aðgang að »%s« deilt með %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Þú varst í þessu að deila »%s« með %s. Sameignin var þegar send til viðtakandans. Vegna öryggisskilmála sem skilgreindir hafa verið af kerfisstjóra %s þarf hver sameign að vera varin með lykilorði og að ekki er leyfilegt að senda það lykilorð beint til viðtakandans. Því er nauðsynlegt að þú homir lykilorðinu beint til sjálfs viðtakandans.", + "Password to access »%s« shared with %s" : "Lykilorð fyrir aðgang að »%s« deilt með %s", "This is the password: %s" : "Þetta er lykilorðið: %s", "You can choose a different password at any time in the share dialog." : "Þú getur hvenær sem er valið annað lykilorð með því að fara í deilingargluggann.", "Could not find share" : "Gat ekki fundið sameign", diff --git a/apps/sharebymail/l10n/is.json b/apps/sharebymail/l10n/is.json index 8ed632b9424..e4ce4e63092 100644 --- a/apps/sharebymail/l10n/is.json +++ b/apps/sharebymail/l10n/is.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Smelltu á tengilinn hér fyrir neðan til að opna það.", "Open »%s«" : "Opna »%s«", "%s via %s" : "%s með %s", - "Password to access »%s« shared to you by %s" : "Lykilorð fyrir aðgang að »%s« deilt með þér af %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s deildi »%s« með þér.\nÞú ættir að hafa fengið sérstakan tölvupóst með tengli sem vísar á gögnin.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s deildi »%s« með þér.\nÞú ættir að hafa fengið sérstakan tölvupóst með tengli sem vísar á gögnin.", + "Password to access »%s« shared to you by %s" : "Lykilorð fyrir aðgang að »%s« deilt með þér af %s", "Password to access »%s«" : "Lykilorð fyrir aðgang að »%s«", "It is protected with the following password: %s" : "Það er varið með eftirfarandi lykilorði: %s", - "Password to access »%s« shared with %s" : "Lykilorð fyrir aðgang að »%s« deilt með %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Þú varst í þessu að deila »%s« með %s. Sameignin var þegar send til viðtakandans. Vegna öryggisskilmála sem skilgreindir hafa verið af kerfisstjóra %s þarf hver sameign að vera varin með lykilorði og að ekki er leyfilegt að senda það lykilorð beint til viðtakandans. Því er nauðsynlegt að þú homir lykilorðinu beint til sjálfs viðtakandans.", + "Password to access »%s« shared with %s" : "Lykilorð fyrir aðgang að »%s« deilt með %s", "This is the password: %s" : "Þetta er lykilorðið: %s", "You can choose a different password at any time in the share dialog." : "Þú getur hvenær sem er valið annað lykilorð með því að fara í deilingargluggann.", "Could not find share" : "Gat ekki fundið sameign", diff --git a/apps/sharebymail/l10n/it.js b/apps/sharebymail/l10n/it.js index 9fb612b2677..705dd042ff1 100644 --- a/apps/sharebymail/l10n/it.js +++ b/apps/sharebymail/l10n/it.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Fai clic sul pulsante sotto per aprirlo.", "Open »%s«" : "Apri «%s»", "%s via %s" : "%s tramite %s", - "Password to access »%s« shared to you by %s" : "Password per accedere a «%s» condivisa con te da %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s ha condiviso «%s» con te.\nDovresti aver ricevuto un messaggio separato con un collegamento per accedervi.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s ha condiviso «%s» con te. Dovresti aver ricevuto un messaggio separato con un collegamento per accedervi.", + "Password to access »%s« shared to you by %s" : "Password per accedere a «%s» condivisa con te da %s", "Password to access »%s«" : "Password per accedere a «%s»", "It is protected with the following password: %s" : "È protetta con la password seguente: %s", - "Password to access »%s« shared with %s" : "Password per accedere a «%s» condivisa con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Hai appena condiviso «%s» con %s. La condivisione è stata già inviata al destinatario. A causa dei criteri di sicurezza definiti dall'amministratore di %s, ogni condivisione deve essere protetta da password e non è consentito l'invio diretto della password al destinatario. Perciò, devi inoltrare manualmente la password al destinatario.", + "Password to access »%s« shared with %s" : "Password per accedere a «%s» condivisa con %s", "This is the password: %s" : "Questa è la password: %s", "You can choose a different password at any time in the share dialog." : "Puoi scegliere una password diversa in qualsiasi momento nella finestra di condivisione.", "Could not find share" : "Non è stato possibile trovare la condivisione", diff --git a/apps/sharebymail/l10n/it.json b/apps/sharebymail/l10n/it.json index e2000275c39..f2096a3e91a 100644 --- a/apps/sharebymail/l10n/it.json +++ b/apps/sharebymail/l10n/it.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Fai clic sul pulsante sotto per aprirlo.", "Open »%s«" : "Apri «%s»", "%s via %s" : "%s tramite %s", - "Password to access »%s« shared to you by %s" : "Password per accedere a «%s» condivisa con te da %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s ha condiviso «%s» con te.\nDovresti aver ricevuto un messaggio separato con un collegamento per accedervi.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s ha condiviso «%s» con te. Dovresti aver ricevuto un messaggio separato con un collegamento per accedervi.", + "Password to access »%s« shared to you by %s" : "Password per accedere a «%s» condivisa con te da %s", "Password to access »%s«" : "Password per accedere a «%s»", "It is protected with the following password: %s" : "È protetta con la password seguente: %s", - "Password to access »%s« shared with %s" : "Password per accedere a «%s» condivisa con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Hai appena condiviso «%s» con %s. La condivisione è stata già inviata al destinatario. A causa dei criteri di sicurezza definiti dall'amministratore di %s, ogni condivisione deve essere protetta da password e non è consentito l'invio diretto della password al destinatario. Perciò, devi inoltrare manualmente la password al destinatario.", + "Password to access »%s« shared with %s" : "Password per accedere a «%s» condivisa con %s", "This is the password: %s" : "Questa è la password: %s", "You can choose a different password at any time in the share dialog." : "Puoi scegliere una password diversa in qualsiasi momento nella finestra di condivisione.", "Could not find share" : "Non è stato possibile trovare la condivisione", diff --git a/apps/sharebymail/l10n/ja.js b/apps/sharebymail/l10n/ja.js index 91d1000194a..29fb7e59be8 100644 --- a/apps/sharebymail/l10n/ja.js +++ b/apps/sharebymail/l10n/ja.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "クリックすると下が開きます", "Open »%s«" : "»%s«を開く", "%s via %s" : "%s に %s から", - "Password to access »%s« shared to you by %s" : "%sへの共有アクセスのパスワードが %s から共有されました", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s により »%s« が共有されました\nアクセスするためのリンクは別途メールで受信してください。\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s により »%s« が共有されました。アクセスするためのリンクは別途メールで受信してください。", + "Password to access »%s« shared to you by %s" : "%sへの共有アクセスのパスワードが %s から共有されました", "Password to access »%s«" : "»%s« にアクセスするパスワード", "It is protected with the following password: %s" : "次のパスワードで保護されています: %s", - "Password to access »%s« shared with %s" : "»%s« にアクセスするパスワードが %s から共有されました", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%sを%sと共有しました。共有は受信者に送信されています。セキュリティポリシーにより%sの管理者が共有はパスワードで保護されるべきで、直接受信者に送信するべきではないと定めている場合、手動で受信者にメールを転送する必要があります。", + "Password to access »%s« shared with %s" : "»%s« にアクセスするパスワードが %s から共有されました", "This is the password: %s" : "パスワード: %s", "You can choose a different password at any time in the share dialog." : "共有ダイアログからいつでも違うパスワードに変更できます。", "Could not find share" : "共有が見つかりませんでした", diff --git a/apps/sharebymail/l10n/ja.json b/apps/sharebymail/l10n/ja.json index 668810a581b..61c31c40e7d 100644 --- a/apps/sharebymail/l10n/ja.json +++ b/apps/sharebymail/l10n/ja.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "クリックすると下が開きます", "Open »%s«" : "»%s«を開く", "%s via %s" : "%s に %s から", - "Password to access »%s« shared to you by %s" : "%sへの共有アクセスのパスワードが %s から共有されました", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s により »%s« が共有されました\nアクセスするためのリンクは別途メールで受信してください。\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s により »%s« が共有されました。アクセスするためのリンクは別途メールで受信してください。", + "Password to access »%s« shared to you by %s" : "%sへの共有アクセスのパスワードが %s から共有されました", "Password to access »%s«" : "»%s« にアクセスするパスワード", "It is protected with the following password: %s" : "次のパスワードで保護されています: %s", - "Password to access »%s« shared with %s" : "»%s« にアクセスするパスワードが %s から共有されました", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%sを%sと共有しました。共有は受信者に送信されています。セキュリティポリシーにより%sの管理者が共有はパスワードで保護されるべきで、直接受信者に送信するべきではないと定めている場合、手動で受信者にメールを転送する必要があります。", + "Password to access »%s« shared with %s" : "»%s« にアクセスするパスワードが %s から共有されました", "This is the password: %s" : "パスワード: %s", "You can choose a different password at any time in the share dialog." : "共有ダイアログからいつでも違うパスワードに変更できます。", "Could not find share" : "共有が見つかりませんでした", diff --git a/apps/sharebymail/l10n/ko.js b/apps/sharebymail/l10n/ko.js index b3f275e47f2..3c0d9e5a270 100644 --- a/apps/sharebymail/l10n/ko.js +++ b/apps/sharebymail/l10n/ko.js @@ -23,13 +23,13 @@ OC.L10N.register( "Click the button below to open it." : "아래 단추를 눌러서 열 수 있습니다.", "Open »%s«" : "%s 열기", "%s via %s" : "%s(%s 경유)", - "Password to access »%s« shared to you by %s" : "%s에 접근할 수 있는 암호를 %s 님이 보냄", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s 님이 %s을(를) 공유했습니다.\n접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s 님이 %s을(를) 공유했습니다. 접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.", + "Password to access »%s« shared to you by %s" : "%s에 접근할 수 있는 암호를 %s 님이 보냄", "Password to access »%s«" : "%s에 접근할 수 있는 암호", "It is protected with the following password: %s" : "다음 암호로 보호되어 있습니다: %s", - "Password to access »%s« shared with %s" : "%s에 접근할 수 있는 암호를 %s 님과 공유함", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%s을(를) %s 님과 공유했습니다. 공유 정보를 이메일로 전송했습니다. %s 관리자의 보안 정책에 의하여 각각 공유 항목은 암호로 보호되어야 하며, 해당 암호를 직접 이메일로 보낼 수 없습니다. 수신자에게 이 암호를 다른 방법으로 직접 전달하십시오.", + "Password to access »%s« shared with %s" : "%s에 접근할 수 있는 암호를 %s 님과 공유함", "This is the password: %s" : "다음은 암호입니다: %s", "You can choose a different password at any time in the share dialog." : "공유 대화 상자에서 언제든지 다른 암호를 선택할 수 있습니다.", "Could not find share" : "공유를 찾을 수 없음", diff --git a/apps/sharebymail/l10n/ko.json b/apps/sharebymail/l10n/ko.json index 26af9862c7a..17c438f2a49 100644 --- a/apps/sharebymail/l10n/ko.json +++ b/apps/sharebymail/l10n/ko.json @@ -21,13 +21,13 @@ "Click the button below to open it." : "아래 단추를 눌러서 열 수 있습니다.", "Open »%s«" : "%s 열기", "%s via %s" : "%s(%s 경유)", - "Password to access »%s« shared to you by %s" : "%s에 접근할 수 있는 암호를 %s 님이 보냄", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s 님이 %s을(를) 공유했습니다.\n접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s 님이 %s을(를) 공유했습니다. 접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.", + "Password to access »%s« shared to you by %s" : "%s에 접근할 수 있는 암호를 %s 님이 보냄", "Password to access »%s«" : "%s에 접근할 수 있는 암호", "It is protected with the following password: %s" : "다음 암호로 보호되어 있습니다: %s", - "Password to access »%s« shared with %s" : "%s에 접근할 수 있는 암호를 %s 님과 공유함", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%s을(를) %s 님과 공유했습니다. 공유 정보를 이메일로 전송했습니다. %s 관리자의 보안 정책에 의하여 각각 공유 항목은 암호로 보호되어야 하며, 해당 암호를 직접 이메일로 보낼 수 없습니다. 수신자에게 이 암호를 다른 방법으로 직접 전달하십시오.", + "Password to access »%s« shared with %s" : "%s에 접근할 수 있는 암호를 %s 님과 공유함", "This is the password: %s" : "다음은 암호입니다: %s", "You can choose a different password at any time in the share dialog." : "공유 대화 상자에서 언제든지 다른 암호를 선택할 수 있습니다.", "Could not find share" : "공유를 찾을 수 없음", diff --git a/apps/sharebymail/l10n/lt_LT.js b/apps/sharebymail/l10n/lt_LT.js index 2e8465a46c9..2c3fb59305f 100644 --- a/apps/sharebymail/l10n/lt_LT.js +++ b/apps/sharebymail/l10n/lt_LT.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Norėdami atverti failą, spustelėkite mygtuką žemiau.", "Open »%s«" : "Atverti »%s«", "%s via %s" : "%s per %s", - "Password to access »%s« shared to you by %s" : "Slaptažodis, skirtas prieigai prie »%s« pasidalintas su jumis per %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s pasidalintas »%s« su Jumis.\nJūs turėjote gauti elektroninį laišką su prieigos nuoroda.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s pasidalintas »%s« su Jumis. Jūs turėjote gauti elektroninį laišką su prieigos nuoroda.", + "Password to access »%s« shared to you by %s" : "Slaptažodis, skirtas prieigai prie »%s« pasidalintas su jumis per %s", "Password to access »%s«" : "Slaptažodis, skirtas prieigai prie »%s«", "It is protected with the following password: %s" : "Apsaugotas slaptažodžiu: %s", - "Password to access »%s« shared with %s" : "Slaptažodis prieigai prie »%s« pasidalintas su %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Jūs ką tik pasidalinote »%s« su %s. Dalinimosi nuoroda buvo išsiųsta adresatui. Pagal saugumo taisykles, kurias nustatė %s administratorius, kiekvienas dalinimasis turi būti apsaugotas slaptažodžiu. Kadangi slaptažodžio negalima tiesiogiai siųsti adresatui, jūs turite jį perduoti gyvai.", + "Password to access »%s« shared with %s" : "Slaptažodis prieigai prie »%s« pasidalintas su %s", "This is the password: %s" : "Štai yra slaptažodis: %s", "You can choose a different password at any time in the share dialog." : "Bendrinimo dialoge bet kuriuo metu galite pasirinkti kitą slaptažodį.", "Could not find share" : "Nepavyko rasti viešinio", diff --git a/apps/sharebymail/l10n/lt_LT.json b/apps/sharebymail/l10n/lt_LT.json index e1859589e08..625265c468b 100644 --- a/apps/sharebymail/l10n/lt_LT.json +++ b/apps/sharebymail/l10n/lt_LT.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Norėdami atverti failą, spustelėkite mygtuką žemiau.", "Open »%s«" : "Atverti »%s«", "%s via %s" : "%s per %s", - "Password to access »%s« shared to you by %s" : "Slaptažodis, skirtas prieigai prie »%s« pasidalintas su jumis per %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s pasidalintas »%s« su Jumis.\nJūs turėjote gauti elektroninį laišką su prieigos nuoroda.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s pasidalintas »%s« su Jumis. Jūs turėjote gauti elektroninį laišką su prieigos nuoroda.", + "Password to access »%s« shared to you by %s" : "Slaptažodis, skirtas prieigai prie »%s« pasidalintas su jumis per %s", "Password to access »%s«" : "Slaptažodis, skirtas prieigai prie »%s«", "It is protected with the following password: %s" : "Apsaugotas slaptažodžiu: %s", - "Password to access »%s« shared with %s" : "Slaptažodis prieigai prie »%s« pasidalintas su %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Jūs ką tik pasidalinote »%s« su %s. Dalinimosi nuoroda buvo išsiųsta adresatui. Pagal saugumo taisykles, kurias nustatė %s administratorius, kiekvienas dalinimasis turi būti apsaugotas slaptažodžiu. Kadangi slaptažodžio negalima tiesiogiai siųsti adresatui, jūs turite jį perduoti gyvai.", + "Password to access »%s« shared with %s" : "Slaptažodis prieigai prie »%s« pasidalintas su %s", "This is the password: %s" : "Štai yra slaptažodis: %s", "You can choose a different password at any time in the share dialog." : "Bendrinimo dialoge bet kuriuo metu galite pasirinkti kitą slaptažodį.", "Could not find share" : "Nepavyko rasti viešinio", diff --git a/apps/sharebymail/l10n/nb.js b/apps/sharebymail/l10n/nb.js index 6770711a972..e02b698f536 100644 --- a/apps/sharebymail/l10n/nb.js +++ b/apps/sharebymail/l10n/nb.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klikk på knappen nedenfor for å åpne den.", "Open »%s«" : "Åpne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Passord for å benytte »%s« tildelt deg av %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delte «%s» med deg.\nDu skal allerede ha mottatt en annen e-post med en lenke til innholdet.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delte «%s» med deg. Du skal allerede ha mottatt en annen e-post med en lenke til innholdet.", + "Password to access »%s« shared to you by %s" : "Passord for å benytte »%s« tildelt deg av %s", "Password to access »%s«" : "Passord for å benytte »%s«", "It is protected with the following password: %s" : "Den er beskyttet med følgende passord: %s", - "Password to access »%s« shared with %s" : "Passord for å benytte »%s« delt med %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du delte akkurat »%s« med %s. Lageret har allerede blitt sendt til mottakeren. På grunn av sikkerhetspraksisen definert av administratoren for %s må hvert lager beskyttes med et passord, og det tillates ikke sendt direkte til mottakeren. Derfor trenger du å sende passordet manuelt til mottakeren.", + "Password to access »%s« shared with %s" : "Passord for å benytte »%s« delt med %s", "This is the password: %s" : "Dette er passordet: %s", "You can choose a different password at any time in the share dialog." : "Du kan velge et annet passord når som helst i delingsdialogvinduet.", "Could not find share" : "Delingen ble ikke funnet", diff --git a/apps/sharebymail/l10n/nb.json b/apps/sharebymail/l10n/nb.json index 80c0b760b66..c6ba8fb4eff 100644 --- a/apps/sharebymail/l10n/nb.json +++ b/apps/sharebymail/l10n/nb.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klikk på knappen nedenfor for å åpne den.", "Open »%s«" : "Åpne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Passord for å benytte »%s« tildelt deg av %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delte «%s» med deg.\nDu skal allerede ha mottatt en annen e-post med en lenke til innholdet.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delte «%s» med deg. Du skal allerede ha mottatt en annen e-post med en lenke til innholdet.", + "Password to access »%s« shared to you by %s" : "Passord for å benytte »%s« tildelt deg av %s", "Password to access »%s«" : "Passord for å benytte »%s«", "It is protected with the following password: %s" : "Den er beskyttet med følgende passord: %s", - "Password to access »%s« shared with %s" : "Passord for å benytte »%s« delt med %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du delte akkurat »%s« med %s. Lageret har allerede blitt sendt til mottakeren. På grunn av sikkerhetspraksisen definert av administratoren for %s må hvert lager beskyttes med et passord, og det tillates ikke sendt direkte til mottakeren. Derfor trenger du å sende passordet manuelt til mottakeren.", + "Password to access »%s« shared with %s" : "Passord for å benytte »%s« delt med %s", "This is the password: %s" : "Dette er passordet: %s", "You can choose a different password at any time in the share dialog." : "Du kan velge et annet passord når som helst i delingsdialogvinduet.", "Could not find share" : "Delingen ble ikke funnet", diff --git a/apps/sharebymail/l10n/nl.js b/apps/sharebymail/l10n/nl.js index 9bbeeefdf72..fadb4d8e29e 100644 --- a/apps/sharebymail/l10n/nl.js +++ b/apps/sharebymail/l10n/nl.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klik op onderstaande link om te openen.", "Open »%s«" : "Open »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Toegangswachtwoord »%s« gedeeld met je door %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%sdeelde »%s« met jou.\nJe moet al een apart bericht hebben ontvangen met een linkje voor toegang.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s deelde »%s« met jou. Je zou al een apart mailbericht moeten hebben ontvangen met een link om er te komen.", + "Password to access »%s« shared to you by %s" : "Toegangswachtwoord »%s« gedeeld met je door %s", "Password to access »%s«" : "Wachtwoord om binnen te komen »%s«", "It is protected with the following password: %s" : "Het is beveiligd met het volgende wachtwoord: %s", - "Password to access »%s« shared with %s" : "Wachtwoord voor toegang »%s« gedeeld met %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Je deelde »%s« met %s. De link is al gestuurd naar de geadresseerde. Vanwege de beveiligingsinstellingen, zoals ingesteld door de beheerder van %s, moet het delen worden beveiligd met een wachtwoord en is het niet toegestaan het wachtwoord rechtstreeks naar de ontvanger te versturen. Hierdoor moet je het wachtwoord zelf handmatig naar de ontvanger sturen.", + "Password to access »%s« shared with %s" : "Wachtwoord voor toegang »%s« gedeeld met %s", "This is the password: %s" : "Dit is het wachtwoord: %s", "You can choose a different password at any time in the share dialog." : "Je kunt in de Delen-dialoog altijd een ander wachtwoord kiezen.", "Could not find share" : "Kon gedeeld niet vinden", diff --git a/apps/sharebymail/l10n/nl.json b/apps/sharebymail/l10n/nl.json index fbd47e92bbb..b88e61c6210 100644 --- a/apps/sharebymail/l10n/nl.json +++ b/apps/sharebymail/l10n/nl.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klik op onderstaande link om te openen.", "Open »%s«" : "Open »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Toegangswachtwoord »%s« gedeeld met je door %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%sdeelde »%s« met jou.\nJe moet al een apart bericht hebben ontvangen met een linkje voor toegang.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s deelde »%s« met jou. Je zou al een apart mailbericht moeten hebben ontvangen met een link om er te komen.", + "Password to access »%s« shared to you by %s" : "Toegangswachtwoord »%s« gedeeld met je door %s", "Password to access »%s«" : "Wachtwoord om binnen te komen »%s«", "It is protected with the following password: %s" : "Het is beveiligd met het volgende wachtwoord: %s", - "Password to access »%s« shared with %s" : "Wachtwoord voor toegang »%s« gedeeld met %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Je deelde »%s« met %s. De link is al gestuurd naar de geadresseerde. Vanwege de beveiligingsinstellingen, zoals ingesteld door de beheerder van %s, moet het delen worden beveiligd met een wachtwoord en is het niet toegestaan het wachtwoord rechtstreeks naar de ontvanger te versturen. Hierdoor moet je het wachtwoord zelf handmatig naar de ontvanger sturen.", + "Password to access »%s« shared with %s" : "Wachtwoord voor toegang »%s« gedeeld met %s", "This is the password: %s" : "Dit is het wachtwoord: %s", "You can choose a different password at any time in the share dialog." : "Je kunt in de Delen-dialoog altijd een ander wachtwoord kiezen.", "Could not find share" : "Kon gedeeld niet vinden", diff --git a/apps/sharebymail/l10n/pl.js b/apps/sharebymail/l10n/pl.js index 3602b8b23f8..a267d0b8daf 100644 --- a/apps/sharebymail/l10n/pl.js +++ b/apps/sharebymail/l10n/pl.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Kliknij przycisk poniżej, żeby to otworzyć.", "Open »%s«" : "Otwórz »%s«", "%s via %s" : "%s przez %s", - "Password to access »%s« shared to you by %s" : "Hasło dostępu do »%s« jest udostępnione Tobie przez %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s współdzieli z Tobą »%s«.\nPowinieneś już otrzymać osobny e-mail zawierający link dostępowy.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s współdzieli »%s« z Tobą. Powinieneś już otrzymać osobnego e-maila z linkiem do dostępu.", + "Password to access »%s« shared to you by %s" : "Hasło dostępu do »%s« jest udostępnione Tobie przez %s", "Password to access »%s«" : "Hasło do dostępu »%s«", "It is protected with the following password: %s" : "To jest chronione z nstępującym hasłem: %s", - "Password to access »%s« shared with %s" : "Hasło dostępu do »%s« zostało udostępnione %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Właśnie udostępniłeś »%s« użytkownikowi %s. Udostępniony udział został już wysłany do odbiorcy, jednak zgodnie z polityką bezpieczeństwa ustanowioną przez administratora %s każdy udział musi zostać zabezpieczony hasłem. Wysyłanie hasła bezpośrednio do odbiorcy jest zabronione, dlatego też musisz mu je przekazać w klasyczny sposób.", + "Password to access »%s« shared with %s" : "Hasło dostępu do »%s« zostało udostępnione %s", "This is the password: %s" : "To jest hasło: %s", "You can choose a different password at any time in the share dialog." : "Możesz zmienić hasło w okienku współdzielenia w dowolnym momencie.", "Could not find share" : "Nie można odnaleźć współdzielonego obiektu", diff --git a/apps/sharebymail/l10n/pl.json b/apps/sharebymail/l10n/pl.json index 7a04b7c6a6b..f9e72eb5f69 100644 --- a/apps/sharebymail/l10n/pl.json +++ b/apps/sharebymail/l10n/pl.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Kliknij przycisk poniżej, żeby to otworzyć.", "Open »%s«" : "Otwórz »%s«", "%s via %s" : "%s przez %s", - "Password to access »%s« shared to you by %s" : "Hasło dostępu do »%s« jest udostępnione Tobie przez %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s współdzieli z Tobą »%s«.\nPowinieneś już otrzymać osobny e-mail zawierający link dostępowy.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s współdzieli »%s« z Tobą. Powinieneś już otrzymać osobnego e-maila z linkiem do dostępu.", + "Password to access »%s« shared to you by %s" : "Hasło dostępu do »%s« jest udostępnione Tobie przez %s", "Password to access »%s«" : "Hasło do dostępu »%s«", "It is protected with the following password: %s" : "To jest chronione z nstępującym hasłem: %s", - "Password to access »%s« shared with %s" : "Hasło dostępu do »%s« zostało udostępnione %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Właśnie udostępniłeś »%s« użytkownikowi %s. Udostępniony udział został już wysłany do odbiorcy, jednak zgodnie z polityką bezpieczeństwa ustanowioną przez administratora %s każdy udział musi zostać zabezpieczony hasłem. Wysyłanie hasła bezpośrednio do odbiorcy jest zabronione, dlatego też musisz mu je przekazać w klasyczny sposób.", + "Password to access »%s« shared with %s" : "Hasło dostępu do »%s« zostało udostępnione %s", "This is the password: %s" : "To jest hasło: %s", "You can choose a different password at any time in the share dialog." : "Możesz zmienić hasło w okienku współdzielenia w dowolnym momencie.", "Could not find share" : "Nie można odnaleźć współdzielonego obiektu", diff --git a/apps/sharebymail/l10n/pt_BR.js b/apps/sharebymail/l10n/pt_BR.js index 173abe70dc4..d2508731e9e 100644 --- a/apps/sharebymail/l10n/pt_BR.js +++ b/apps/sharebymail/l10n/pt_BR.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Clique no botão abaixo para abrí-lo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Senha para acessar %s compartilhado com você por %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartilhou »%s« com você.\nVocê já deve ter recebido um e-mail com um link para acessá-lo.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartilhou »%s« com você. Você já deve ter recebido um e-mail com um link para acessá-lo.", + "Password to access »%s« shared to you by %s" : "Senha para acessar %s compartilhado com você por %s", "Password to access »%s«" : "Senha para acessar »%s«", "It is protected with the following password: %s" : "Está protegido com a seguinte senha: %s", - "Password to access »%s« shared with %s" : "Senha para acessar »%s« compartilhado com %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Você compartilhou »%s« com %s. O compartilhamento já foi enviado ao destinatário. Devido às políticas de segurança definidas pelo administrador de %s, cada compartilhamento necessita ser protegido por senha e não é permitido enviar a senha diretamente ao destinatário. Portanto você necessita enviar a senha manualmente ao destinatário.", + "Password to access »%s« shared with %s" : "Senha para acessar »%s« compartilhado com %s", "This is the password: %s" : "Essa é a senha: %s", "You can choose a different password at any time in the share dialog." : "Você pode escolher uma senha diferente a qualquer momento no diálogo compartilhamento.", "Could not find share" : "Não foi possível encontrar o compartilhamento", diff --git a/apps/sharebymail/l10n/pt_BR.json b/apps/sharebymail/l10n/pt_BR.json index 8c2964ef257..25c84b332da 100644 --- a/apps/sharebymail/l10n/pt_BR.json +++ b/apps/sharebymail/l10n/pt_BR.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Clique no botão abaixo para abrí-lo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Senha para acessar %s compartilhado com você por %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartilhou »%s« com você.\nVocê já deve ter recebido um e-mail com um link para acessá-lo.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartilhou »%s« com você. Você já deve ter recebido um e-mail com um link para acessá-lo.", + "Password to access »%s« shared to you by %s" : "Senha para acessar %s compartilhado com você por %s", "Password to access »%s«" : "Senha para acessar »%s«", "It is protected with the following password: %s" : "Está protegido com a seguinte senha: %s", - "Password to access »%s« shared with %s" : "Senha para acessar »%s« compartilhado com %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Você compartilhou »%s« com %s. O compartilhamento já foi enviado ao destinatário. Devido às políticas de segurança definidas pelo administrador de %s, cada compartilhamento necessita ser protegido por senha e não é permitido enviar a senha diretamente ao destinatário. Portanto você necessita enviar a senha manualmente ao destinatário.", + "Password to access »%s« shared with %s" : "Senha para acessar »%s« compartilhado com %s", "This is the password: %s" : "Essa é a senha: %s", "You can choose a different password at any time in the share dialog." : "Você pode escolher uma senha diferente a qualquer momento no diálogo compartilhamento.", "Could not find share" : "Não foi possível encontrar o compartilhamento", diff --git a/apps/sharebymail/l10n/ru.js b/apps/sharebymail/l10n/ru.js index 5e9db6c57e7..ecbb3381cac 100644 --- a/apps/sharebymail/l10n/ru.js +++ b/apps/sharebymail/l10n/ru.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Для открытия нажмите на кнопку, расположенную ниже.", "Open »%s«" : "Открыть «%s»", "%s via %s" : "%s через %s", - "Password to access »%s« shared to you by %s" : "Пароль для «%s», общий доступ к которому предоставлен Вам пользователем %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s предоставил(а) Вам общий доступ к «%s».\nВы, скорее всего, уже получили отдельное письмо, содержащую ссылку для получения доступа.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s предоставил(а) Вам доступ к «%s». Вы, скорее всего, уже получили отдельное письмо, содержащее ссылку для получения доступа.", + "Password to access »%s« shared to you by %s" : "Пароль для «%s», общий доступ к которому предоставлен Вам пользователем %s", "Password to access »%s«" : "Пароль для доступа «%s»", "It is protected with the following password: %s" : "Доступ защищён следующим паролем: %s", - "Password to access »%s« shared with %s" : "Паролем для доступа к «%s» поделились с %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вы только что предоставили общий доступ к «%s» пользователю %s. Информация о предоставлении доступа была отправлен получателю. В соответствии с политиками безопасности, заданными администратором %s, каждый общий ресурс должен быть защищён паролем, а так же не допускается непосредственное отправление пароля получателю. Поэтому вам потребуется самостоятельно перенаправить пароль получателю.", + "Password to access »%s« shared with %s" : "Паролем для доступа к «%s» поделились с %s", "This is the password: %s" : "Пароль: %s", "You can choose a different password at any time in the share dialog." : "В любой момент можно выбрать другой пароль в диалоге «Общий доступ».", "Could not find share" : "Не удалось найти общий ресурс", diff --git a/apps/sharebymail/l10n/ru.json b/apps/sharebymail/l10n/ru.json index 901e4925866..f5967e67906 100644 --- a/apps/sharebymail/l10n/ru.json +++ b/apps/sharebymail/l10n/ru.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Для открытия нажмите на кнопку, расположенную ниже.", "Open »%s«" : "Открыть «%s»", "%s via %s" : "%s через %s", - "Password to access »%s« shared to you by %s" : "Пароль для «%s», общий доступ к которому предоставлен Вам пользователем %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s предоставил(а) Вам общий доступ к «%s».\nВы, скорее всего, уже получили отдельное письмо, содержащую ссылку для получения доступа.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s предоставил(а) Вам доступ к «%s». Вы, скорее всего, уже получили отдельное письмо, содержащее ссылку для получения доступа.", + "Password to access »%s« shared to you by %s" : "Пароль для «%s», общий доступ к которому предоставлен Вам пользователем %s", "Password to access »%s«" : "Пароль для доступа «%s»", "It is protected with the following password: %s" : "Доступ защищён следующим паролем: %s", - "Password to access »%s« shared with %s" : "Паролем для доступа к «%s» поделились с %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вы только что предоставили общий доступ к «%s» пользователю %s. Информация о предоставлении доступа была отправлен получателю. В соответствии с политиками безопасности, заданными администратором %s, каждый общий ресурс должен быть защищён паролем, а так же не допускается непосредственное отправление пароля получателю. Поэтому вам потребуется самостоятельно перенаправить пароль получателю.", + "Password to access »%s« shared with %s" : "Паролем для доступа к «%s» поделились с %s", "This is the password: %s" : "Пароль: %s", "You can choose a different password at any time in the share dialog." : "В любой момент можно выбрать другой пароль в диалоге «Общий доступ».", "Could not find share" : "Не удалось найти общий ресурс", diff --git a/apps/sharebymail/l10n/sq.js b/apps/sharebymail/l10n/sq.js index 2d30b819d74..18d251b26a8 100644 --- a/apps/sharebymail/l10n/sq.js +++ b/apps/sharebymail/l10n/sq.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klikoni butonin poshtë për ta hapur.", "Open »%s«" : "Hap »%s«", "%s via %s" : "%s përmes %s", - "Password to access »%s« shared to you by %s" : "Fjalëkalimi për të hyrë »%s« ndarë me ju nda %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%sndau »%s« me ju. \nJu duhet të keni marrë tashmë një mail të veçantë me një lidhje për të aksesuar atë.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s ndau »%s« me ju. Ju duhet të keni marrë tashmë një mail të veçantë me një lidhje për të aksesuar atë.", + "Password to access »%s« shared to you by %s" : "Fjalëkalimi për të hyrë »%s« ndarë me ju nda %s", "Password to access »%s«" : "Fjalëkalimi për akses »%s«", "It is protected with the following password: %s" : "Është i mbrojtur me fjalëkalimin e mëposhtëm: %s", - "Password to access »%s« shared with %s" : "Fjalëkalimi për të hyrë »%s« ndarë me %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Ju sapo ndatë »« me %s%s. Pjesa ishte dërguar tashmë tek marrësi. Për shkak të politikave të sigurisë të përcaktuara nga administratori %s secila ndarje duhet të mbrohet me fjalëkalim dhe nuk lejohet të dërgojë fjalëkalimin drejtpërdrejt te marrësi. Prandaj ju duhet ta kaloni fjalëkalimin manualisht tek marrësi.", + "Password to access »%s« shared with %s" : "Fjalëkalimi për të hyrë »%s« ndarë me %s", "This is the password: %s" : "Ky është fjalëkalimi: %s", "You can choose a different password at any time in the share dialog." : "Ju mund të zgjidhni një fjalëkalim tjetër në çdo kohë në dialogun e ndarjes.", "Could not find share" : "Nuk mund të gjej shpërndarje", diff --git a/apps/sharebymail/l10n/sq.json b/apps/sharebymail/l10n/sq.json index 1027fe6a677..e80fa8819fd 100644 --- a/apps/sharebymail/l10n/sq.json +++ b/apps/sharebymail/l10n/sq.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klikoni butonin poshtë për ta hapur.", "Open »%s«" : "Hap »%s«", "%s via %s" : "%s përmes %s", - "Password to access »%s« shared to you by %s" : "Fjalëkalimi për të hyrë »%s« ndarë me ju nda %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%sndau »%s« me ju. \nJu duhet të keni marrë tashmë një mail të veçantë me një lidhje për të aksesuar atë.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s ndau »%s« me ju. Ju duhet të keni marrë tashmë një mail të veçantë me një lidhje për të aksesuar atë.", + "Password to access »%s« shared to you by %s" : "Fjalëkalimi për të hyrë »%s« ndarë me ju nda %s", "Password to access »%s«" : "Fjalëkalimi për akses »%s«", "It is protected with the following password: %s" : "Është i mbrojtur me fjalëkalimin e mëposhtëm: %s", - "Password to access »%s« shared with %s" : "Fjalëkalimi për të hyrë »%s« ndarë me %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Ju sapo ndatë »« me %s%s. Pjesa ishte dërguar tashmë tek marrësi. Për shkak të politikave të sigurisë të përcaktuara nga administratori %s secila ndarje duhet të mbrohet me fjalëkalim dhe nuk lejohet të dërgojë fjalëkalimin drejtpërdrejt te marrësi. Prandaj ju duhet ta kaloni fjalëkalimin manualisht tek marrësi.", + "Password to access »%s« shared with %s" : "Fjalëkalimi për të hyrë »%s« ndarë me %s", "This is the password: %s" : "Ky është fjalëkalimi: %s", "You can choose a different password at any time in the share dialog." : "Ju mund të zgjidhni një fjalëkalim tjetër në çdo kohë në dialogun e ndarjes.", "Could not find share" : "Nuk mund të gjej shpërndarje", diff --git a/apps/sharebymail/l10n/sv.js b/apps/sharebymail/l10n/sv.js index 0d650e96725..eb3b8451e6b 100644 --- a/apps/sharebymail/l10n/sv.js +++ b/apps/sharebymail/l10n/sv.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klicka knappen nedan för att öppna det.", "Open »%s«" : "Öppna »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Lösenord för att få tillgång till »%s« delat med dig av %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delade »%s« med dig.\nDu ska redan ha fått ett separat epost med en länk för att nå det.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delade »%s« med dig. Du ska redan ha fått ett separat e-post med en länk för att nå det.", + "Password to access »%s« shared to you by %s" : "Lösenord för att få tillgång till »%s« delat med dig av %s", "Password to access »%s«" : "Lösenord för att nå »%s«", "It is protected with the following password: %s" : "Den är skyddad med följande lösenord: %s", - "Password to access »%s« shared with %s" : "Lösenord för att få tillgång till »%s« delade med %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du delade precis »%s« med %s. Delningen var redan skickat till mottagaren. På grund av säkerhetspolicyn definierad av administratören av %s måste varje delning vara lösenordsskyddad och det är inte tillåtet att skicka lösenordet direkt till mottagaren. Därför behöver du vidarebefordra lösenordet manuellt till mottagaren.", + "Password to access »%s« shared with %s" : "Lösenord för att få tillgång till »%s« delade med %s", "This is the password: %s" : "Detta är lösenordet: %s", "You can choose a different password at any time in the share dialog." : "Du kan välja ett annat lösenord när som helst i delningsdialogen.", "Could not find share" : "Kunde inte hitta delning", diff --git a/apps/sharebymail/l10n/sv.json b/apps/sharebymail/l10n/sv.json index 31a28f427ed..75e3bb9d299 100644 --- a/apps/sharebymail/l10n/sv.json +++ b/apps/sharebymail/l10n/sv.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klicka knappen nedan för att öppna det.", "Open »%s«" : "Öppna »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Lösenord för att få tillgång till »%s« delat med dig av %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delade »%s« med dig.\nDu ska redan ha fått ett separat epost med en länk för att nå det.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delade »%s« med dig. Du ska redan ha fått ett separat e-post med en länk för att nå det.", + "Password to access »%s« shared to you by %s" : "Lösenord för att få tillgång till »%s« delat med dig av %s", "Password to access »%s«" : "Lösenord för att nå »%s«", "It is protected with the following password: %s" : "Den är skyddad med följande lösenord: %s", - "Password to access »%s« shared with %s" : "Lösenord för att få tillgång till »%s« delade med %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du delade precis »%s« med %s. Delningen var redan skickat till mottagaren. På grund av säkerhetspolicyn definierad av administratören av %s måste varje delning vara lösenordsskyddad och det är inte tillåtet att skicka lösenordet direkt till mottagaren. Därför behöver du vidarebefordra lösenordet manuellt till mottagaren.", + "Password to access »%s« shared with %s" : "Lösenord för att få tillgång till »%s« delade med %s", "This is the password: %s" : "Detta är lösenordet: %s", "You can choose a different password at any time in the share dialog." : "Du kan välja ett annat lösenord när som helst i delningsdialogen.", "Could not find share" : "Kunde inte hitta delning", diff --git a/apps/sharebymail/l10n/tr.js b/apps/sharebymail/l10n/tr.js index e84ac60c1d4..904ab5365ff 100644 --- a/apps/sharebymail/l10n/tr.js +++ b/apps/sharebymail/l10n/tr.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Açmak için aşağıdaki düğmeye tıklayın.", "Open »%s«" : "»%s« Aç", "%s via %s" : "%s, %s aracılığıyla", - "Password to access »%s« shared to you by %s" : "»%s« için sizin tarafınızdan %s üzerinden paylaşılan erişim parolası", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s sizinle »%s« ögesini paylaştı.\nErişim bağlantısını içeren başka bir e-posta daha almış olmalısınız.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s sizinle »%s« ögesini paylaştı. Erişim bağlantısını içeren başka bir e-posta daha almış olmalısınız.", + "Password to access »%s« shared to you by %s" : "»%s« için sizin tarafınızdan %s üzerinden paylaşılan erişim parolası", "Password to access »%s«" : "»%s« erişim parolası", "It is protected with the following password: %s" : "Öge şu parola ile korunuyor: %s", - "Password to access »%s« shared with %s" : "»%s« için %s üzerinden paylaşılan erişim parolası", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "»%s« ögesini %s ile paylaştınız. Paylaşım alıcıya gönderildi. %s yöneticisi tarafından belirlenmiş güvenlik ilkelerine göre her bir paylaşım için bir parola belirtilmesi ve bu parolanın alıcıya doğrudan gönderilmemesi gerekiyor. Bu nedenle parolayı alıcıya el ile siz iletmelisiniz.", + "Password to access »%s« shared with %s" : "»%s« için %s üzerinden paylaşılan erişim parolası", "This is the password: %s" : "İleteceğiniz parola: %s", "You can choose a different password at any time in the share dialog." : "İstediğiniz zaman paylaşım bölümünden farklı bir parola belirtebilirsiniz.", "Could not find share" : "Paylaşım bulunamadı", diff --git a/apps/sharebymail/l10n/tr.json b/apps/sharebymail/l10n/tr.json index 87c39b3ff3e..657db4036f8 100644 --- a/apps/sharebymail/l10n/tr.json +++ b/apps/sharebymail/l10n/tr.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Açmak için aşağıdaki düğmeye tıklayın.", "Open »%s«" : "»%s« Aç", "%s via %s" : "%s, %s aracılığıyla", - "Password to access »%s« shared to you by %s" : "»%s« için sizin tarafınızdan %s üzerinden paylaşılan erişim parolası", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s sizinle »%s« ögesini paylaştı.\nErişim bağlantısını içeren başka bir e-posta daha almış olmalısınız.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s sizinle »%s« ögesini paylaştı. Erişim bağlantısını içeren başka bir e-posta daha almış olmalısınız.", + "Password to access »%s« shared to you by %s" : "»%s« için sizin tarafınızdan %s üzerinden paylaşılan erişim parolası", "Password to access »%s«" : "»%s« erişim parolası", "It is protected with the following password: %s" : "Öge şu parola ile korunuyor: %s", - "Password to access »%s« shared with %s" : "»%s« için %s üzerinden paylaşılan erişim parolası", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "»%s« ögesini %s ile paylaştınız. Paylaşım alıcıya gönderildi. %s yöneticisi tarafından belirlenmiş güvenlik ilkelerine göre her bir paylaşım için bir parola belirtilmesi ve bu parolanın alıcıya doğrudan gönderilmemesi gerekiyor. Bu nedenle parolayı alıcıya el ile siz iletmelisiniz.", + "Password to access »%s« shared with %s" : "»%s« için %s üzerinden paylaşılan erişim parolası", "This is the password: %s" : "İleteceğiniz parola: %s", "You can choose a different password at any time in the share dialog." : "İstediğiniz zaman paylaşım bölümünden farklı bir parola belirtebilirsiniz.", "Could not find share" : "Paylaşım bulunamadı", diff --git a/apps/sharebymail/l10n/zh_CN.js b/apps/sharebymail/l10n/zh_CN.js index 97afec66870..1e21de4d9d2 100644 --- a/apps/sharebymail/l10n/zh_CN.js +++ b/apps/sharebymail/l10n/zh_CN.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "点击下面的按钮打开它。", "Open »%s«" : "打开 »%s«", "%s via %s" : "%s通过%s", - "Password to access »%s« shared to you by %s" : "使用密码访问»%s«由%s分享", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s与您共享了%s\n访问链接已另外以邮件方式发送到您的邮箱\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s与您共享了%s。访问链接已另外以邮件方式发送到您的邮箱。", + "Password to access »%s« shared to you by %s" : "使用密码访问»%s«由%s分享", "Password to access »%s«" : "访问 »%s« 的密码", "It is protected with the following password: %s" : "已被已下密码保护:%s", - "Password to access »%s« shared with %s" : "使用密码访问»%s«与%s分享", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "您与%s共享»%s«已发送给收件人。由于%s管理员定义的安全策略, 每个共享都需要受密码保护, 并且不允许直接向收件人发送密码。因此, 您需要将密码手动转发给收件人。", + "Password to access »%s« shared with %s" : "使用密码访问»%s«与%s分享", "This is the password: %s" : "这是密码: %s", "You can choose a different password at any time in the share dialog." : "您可以随时在共享对话框中选择不同的密码。", "Could not find share" : "没有发现共享", diff --git a/apps/sharebymail/l10n/zh_CN.json b/apps/sharebymail/l10n/zh_CN.json index 339edbcd096..b435c7c2aa1 100644 --- a/apps/sharebymail/l10n/zh_CN.json +++ b/apps/sharebymail/l10n/zh_CN.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "点击下面的按钮打开它。", "Open »%s«" : "打开 »%s«", "%s via %s" : "%s通过%s", - "Password to access »%s« shared to you by %s" : "使用密码访问»%s«由%s分享", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s与您共享了%s\n访问链接已另外以邮件方式发送到您的邮箱\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s与您共享了%s。访问链接已另外以邮件方式发送到您的邮箱。", + "Password to access »%s« shared to you by %s" : "使用密码访问»%s«由%s分享", "Password to access »%s«" : "访问 »%s« 的密码", "It is protected with the following password: %s" : "已被已下密码保护:%s", - "Password to access »%s« shared with %s" : "使用密码访问»%s«与%s分享", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "您与%s共享»%s«已发送给收件人。由于%s管理员定义的安全策略, 每个共享都需要受密码保护, 并且不允许直接向收件人发送密码。因此, 您需要将密码手动转发给收件人。", + "Password to access »%s« shared with %s" : "使用密码访问»%s«与%s分享", "This is the password: %s" : "这是密码: %s", "You can choose a different password at any time in the share dialog." : "您可以随时在共享对话框中选择不同的密码。", "Could not find share" : "没有发现共享", diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php index 516e4e243bf..f610a1a5fa9 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -380,8 +380,6 @@ class ShareByMailProvider implements IShareProvider { \DateTime $expiration = null) { $initiatorUser = $this->userManager->get($initiator); $initiatorDisplayName = ($initiatorUser instanceof IUser) ? $initiatorUser->getDisplayName() : $initiator; - $subject = (string)$this->l->t('%s shared »%s« with you', array($initiatorDisplayName, $filename)); - $message = $this->mailer->createMessage(); $emailTemplate = $this->mailer->createEMailTemplate('sharebymail.RecipientNotification', [ @@ -392,6 +390,7 @@ class ShareByMailProvider implements IShareProvider { 'shareWith' => $shareWith, ]); + $emailTemplate->setSubject($this->l->t('%s shared »%s« with you', array($initiatorDisplayName, $filename))); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l->t('%s shared »%s« with you', [$initiatorDisplayName, $filename]), false); $text = $this->l->t('%s shared »%s« with you.', [$initiatorDisplayName, $filename]); @@ -428,9 +427,7 @@ class ShareByMailProvider implements IShareProvider { $emailTemplate->addFooter(); } - $message->setSubject($subject); - $message->setPlainBody($emailTemplate->renderText()); - $message->setHtmlBody($emailTemplate->renderHtml()); + $message->useTemplate($emailTemplate); $this->mailer->send($message); } @@ -455,7 +452,6 @@ class ShareByMailProvider implements IShareProvider { $initiatorDisplayName = ($initiatorUser instanceof IUser) ? $initiatorUser->getDisplayName() : $initiator; $initiatorEmailAddress = ($initiatorUser instanceof IUser) ? $initiatorUser->getEMailAddress() : null; - $subject = (string)$this->l->t('Password to access »%s« shared to you by %s', [$filename, $initiatorDisplayName]); $plainBodyPart = $this->l->t("%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n", [$initiatorDisplayName, $filename]); $htmlBodyPart = $this->l->t('%s shared »%s« with you. You should have already received a separate mail with a link to access it.', [$initiatorDisplayName, $filename]); @@ -468,6 +464,8 @@ class ShareByMailProvider implements IShareProvider { 'initiatorEmail' => $initiatorEmailAddress, 'shareWith' => $shareWith, ]); + + $emailTemplate->setSubject($this->l->t('Password to access »%s« shared to you by %s', [$filename, $initiatorDisplayName])); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l->t('Password to access »%s«', [$filename]), false); $emailTemplate->addBodyText($htmlBodyPart, $plainBodyPart); @@ -491,9 +489,7 @@ class ShareByMailProvider implements IShareProvider { } $message->setTo([$shareWith]); - $message->setSubject($subject); - $message->setBody($emailTemplate->renderText(), 'text/plain'); - $message->setHtmlBody($emailTemplate->renderHtml()); + $message->useTemplate($emailTemplate); $this->mailer->send($message); $this->createPasswordSendActivity($share, $shareWith, false); @@ -524,7 +520,6 @@ class ShareByMailProvider implements IShareProvider { ); } - $subject = (string)$this->l->t('Password to access »%s« shared with %s', [$filename, $shareWith]); $bodyPart = $this->l->t("You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.", [$filename, $shareWith, $this->defaults->getName()]); $message = $this->mailer->createMessage(); @@ -536,6 +531,7 @@ class ShareByMailProvider implements IShareProvider { 'shareWith' => $shareWith, ]); + $emailTemplate->setSubject($this->l->t('Password to access »%s« shared with %s', [$filename, $shareWith])); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l->t('Password to access »%s«', [$filename]), false); $emailTemplate->addBodyText($bodyPart); @@ -547,9 +543,7 @@ class ShareByMailProvider implements IShareProvider { $message->setFrom([$initiatorEMailAddress => $initiatorDisplayName]); } $message->setTo([$initiatorEMailAddress => $initiatorDisplayName]); - $message->setSubject($subject); - $message->setBody($emailTemplate->renderText(), 'text/plain'); - $message->setHtmlBody($emailTemplate->renderHtml()); + $message->useTemplate($emailTemplate); $this->mailer->send($message); $this->createPasswordSendActivity($share, $shareWith, true); diff --git a/apps/sharebymail/tests/ShareByMailProviderTest.php b/apps/sharebymail/tests/ShareByMailProviderTest.php index 23e61ee58f1..68a645ec0e6 100644 --- a/apps/sharebymail/tests/ShareByMailProviderTest.php +++ b/apps/sharebymail/tests/ShareByMailProviderTest.php @@ -835,26 +835,14 @@ class ShareByMailProviderTest extends TestCase { ->expects($this->once()) ->method('addFooter') ->with('UnitTestCloud - Testing like 1990'); - $message - ->expects($this->once()) - ->method('setSubject') - ->willReturn('Mrs. Owner User shared »file.txt« with you'); $template ->expects($this->once()) - ->method('renderText') - ->willReturn('Text Render'); - $message - ->expects($this->once()) - ->method('setPlainBody') - ->with('Text Render'); - $template - ->expects($this->once()) - ->method('renderHtml') - ->willReturn('HTML Render'); + ->method('setSubject') + ->with('Mrs. Owner User shared »file.txt« with you'); $message ->expects($this->once()) - ->method('setHtmlBody') - ->with('HTML Render'); + ->method('useTemplate') + ->with($template); $this->mailer ->expects($this->once()) ->method('send') @@ -936,26 +924,14 @@ class ShareByMailProviderTest extends TestCase { ->expects($this->once()) ->method('addFooter') ->with(''); - $message - ->expects($this->once()) - ->method('setSubject') - ->willReturn('Mr. Initiator User shared »file.txt« with you'); $template ->expects($this->once()) - ->method('renderText') - ->willReturn('Text Render'); - $message - ->expects($this->once()) - ->method('setPlainBody') - ->with('Text Render'); - $template - ->expects($this->once()) - ->method('renderHtml') - ->willReturn('HTML Render'); + ->method('setSubject') + ->with('Mr. Initiator User shared »file.txt« with you'); $message ->expects($this->once()) - ->method('setHtmlBody') - ->with('HTML Render'); + ->method('useTemplate') + ->with($template); $this->mailer ->expects($this->once()) ->method('send') diff --git a/apps/systemtags/l10n/ca.js b/apps/systemtags/l10n/ca.js index 3506940d2ee..aa098858184 100644 --- a/apps/systemtags/l10n/ca.js +++ b/apps/systemtags/l10n/ca.js @@ -2,28 +2,54 @@ OC.L10N.register( "systemtags", { "Tags" : "Etiquetes", + "Update" : "Actualitza", + "Create" : "Crea", + "Select tag…" : "Selecciona etiqueta...", "Tagged files" : "Fitxers marcats", "Select tags to filter by" : "Selecciona les marques per filtrar-ne", + "No tags found" : "No s'han trobat etiquetes", "Please select tags to filter by" : "Si us plau selecciona les marques per filtrar-ne", "No files found for the selected tags" : "No s'han trobat fitxers per les marques sel·leccionades", - "<strong>System tags</strong> for a file have been modified" : "Les <strong>Marques de Sistema</strong> d'un fitxer s'han modificat", - "You assigned system tag %3$s" : "Has assignat la marca de sistema %3$s", - "%1$s assigned system tag %3$s" : "%1$s ha assignat la marca de sistema %3$s", - "You unassigned system tag %3$s" : "Has des-assignat la marca de sistema %3$s", - "%1$s unassigned system tag %3$s" : "%1$s ha des-assignat la marca de sistema %3$s", - "You created system tag %2$s" : "Has creat la marca de sistema %2$s", + "Added system tag %1$s" : "S'ha afegit l'etiqueta del sistema%1$s", + "Added system tag {systemtag}" : "S'ha afegit l'etiqueta del sistema {systemtag}", + "%1$s added system tag %2$s" : "%1$setiqueta del sistema afegida%2$s", + "{actor} added system tag {systemtag}" : "{actor} etiqueta del sistema afegida {systemtag}", + "Removed system tag %1$s" : "S'ha eliminat l'etiqueta del sistema%1$s", + "Removed system tag {systemtag}" : "S'ha eliminat l'etiqueta del sistema {systemtag}", + "%1$s removed system tag %2$s" : "%1$setiqueta del sistema eliminada%2$s", + "{actor} removed system tag {systemtag}" : "{actor} ha eliminat l'etiqueta del sistema {systemtag}", + "You created system tag %1$s" : "Has creat la marca de sistema %1$s", + "You created system tag {systemtag}" : "Has creat la marca de sistema {systemtag}", "%1$s created system tag %2$s" : "%1$s ha creat la marca de sistema %2$s", - "You deleted system tag %2$s" : "Has esborrat la marca de sistema %2$s", + "{actor} created system tag {systemtag}" : "{actor} ha creat l'etiqueta del sistema {systemtag}", + "You deleted system tag %1$s" : "Has esborrat la marca de sistema %1$s", + "You deleted system tag {systemtag}" : "Heu suprimit l'etiqueta del sistema {systemtag}", "%1$s deleted system tag %2$s" : "%1$s ha esborrat la marca de sistema %2$s", - "You updated system tag %3$s to %2$s" : "Has actualitzat les marques de sistema de la %3$s a la %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} sistema de sistema eliminat {systemtag}", + "You updated system tag %2$s to %1$s" : "Has actualitzat les marques de sistema de la %2$s a la %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Heu actualitzat l'etiqueta del sistema {oldsystemtag} a {newsystemtag}", "%1$s updated system tag %3$s to %2$s" : "%1$s ha actualitzat les marques de sistema de la %3$s a la %2$s", - "You assigned system tag %3$s to %2$s" : "Has assignat les marques de sistema de la %3$s a la %2$s", - "%1$s assigned system tag %3$s to %2$s" : "%1$s ha assignat les marques de sistema de la %3$s a la %2$s", - "You unassigned system tag %3$s from %2$s" : "Has des-assignat les marques de sistema de la %3$s a la %2$s", - "%1$s unassigned system tag %3$s from %2$s" : "%1$s ha des-assignat les marques de sistema de la %3$s a la %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} etiqueta del sistema actualitzada {oldsystemtag} a {newsystemtag}", + "You added system tag %2$s to %1$s" : "Heu afegit l'etiqueta del sistema %2$sa%1$s", + "You added system tag {systemtag} to {file}" : "Heu afegit l'etiqueta del sistema {systemtag} a {file}", + "%1$s added system tag %3$s to %2$s" : "%1$sS'ha afegit una etiqueta al sistema%3$s%2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} ha afegit l'etiqueta del sistema {systemtag} a {file}", + "You removed system tag %2$s from %1$s" : "Heu eliminat l'etiqueta del sistema%2$s %1$s", + "You removed system tag {systemtag} from {file}" : "Heu eliminat l'etiqueta del sistema {systemtag} de {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$sS'ha eliminat l'etiqueta del sistema%3$s%2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} ha eliminat l'etiqueta del sistema {systemtag} de {file}", "%s (restricted)" : "%s (restringit)", "%s (invisible)" : "%s (invisible)", + "<strong>System tags</strong> for a file have been modified" : "Les <strong>Marques de Sistema</strong> d'un fitxer s'han modificat", + "Collaborative tags" : "Etiquetes col·laboratives", + "Create and edit collaborative tags. These tags affect all users." : "Creeu i editeu etiquetes col·laboratives. Aquestes etiquetes afecten a tots els usuaris.", + "Select tag …" : "Selecciona etiqueta...", "Name" : "Nom", + "Delete" : "Esborra", + "Public" : "Públic", + "Restricted" : "Restringit", + "Invisible" : "Invisible", + "Reset" : "Canvia", "No files in here" : "No hi ha arxius", "No entries found in this folder" : "No hi ha entrades en aquesta carpeta", "Size" : "Mida", diff --git a/apps/systemtags/l10n/ca.json b/apps/systemtags/l10n/ca.json index 46bdaabfacc..12a18285956 100644 --- a/apps/systemtags/l10n/ca.json +++ b/apps/systemtags/l10n/ca.json @@ -1,27 +1,53 @@ { "translations": { "Tags" : "Etiquetes", + "Update" : "Actualitza", + "Create" : "Crea", + "Select tag…" : "Selecciona etiqueta...", "Tagged files" : "Fitxers marcats", "Select tags to filter by" : "Selecciona les marques per filtrar-ne", + "No tags found" : "No s'han trobat etiquetes", "Please select tags to filter by" : "Si us plau selecciona les marques per filtrar-ne", "No files found for the selected tags" : "No s'han trobat fitxers per les marques sel·leccionades", - "<strong>System tags</strong> for a file have been modified" : "Les <strong>Marques de Sistema</strong> d'un fitxer s'han modificat", - "You assigned system tag %3$s" : "Has assignat la marca de sistema %3$s", - "%1$s assigned system tag %3$s" : "%1$s ha assignat la marca de sistema %3$s", - "You unassigned system tag %3$s" : "Has des-assignat la marca de sistema %3$s", - "%1$s unassigned system tag %3$s" : "%1$s ha des-assignat la marca de sistema %3$s", - "You created system tag %2$s" : "Has creat la marca de sistema %2$s", + "Added system tag %1$s" : "S'ha afegit l'etiqueta del sistema%1$s", + "Added system tag {systemtag}" : "S'ha afegit l'etiqueta del sistema {systemtag}", + "%1$s added system tag %2$s" : "%1$setiqueta del sistema afegida%2$s", + "{actor} added system tag {systemtag}" : "{actor} etiqueta del sistema afegida {systemtag}", + "Removed system tag %1$s" : "S'ha eliminat l'etiqueta del sistema%1$s", + "Removed system tag {systemtag}" : "S'ha eliminat l'etiqueta del sistema {systemtag}", + "%1$s removed system tag %2$s" : "%1$setiqueta del sistema eliminada%2$s", + "{actor} removed system tag {systemtag}" : "{actor} ha eliminat l'etiqueta del sistema {systemtag}", + "You created system tag %1$s" : "Has creat la marca de sistema %1$s", + "You created system tag {systemtag}" : "Has creat la marca de sistema {systemtag}", "%1$s created system tag %2$s" : "%1$s ha creat la marca de sistema %2$s", - "You deleted system tag %2$s" : "Has esborrat la marca de sistema %2$s", + "{actor} created system tag {systemtag}" : "{actor} ha creat l'etiqueta del sistema {systemtag}", + "You deleted system tag %1$s" : "Has esborrat la marca de sistema %1$s", + "You deleted system tag {systemtag}" : "Heu suprimit l'etiqueta del sistema {systemtag}", "%1$s deleted system tag %2$s" : "%1$s ha esborrat la marca de sistema %2$s", - "You updated system tag %3$s to %2$s" : "Has actualitzat les marques de sistema de la %3$s a la %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} sistema de sistema eliminat {systemtag}", + "You updated system tag %2$s to %1$s" : "Has actualitzat les marques de sistema de la %2$s a la %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Heu actualitzat l'etiqueta del sistema {oldsystemtag} a {newsystemtag}", "%1$s updated system tag %3$s to %2$s" : "%1$s ha actualitzat les marques de sistema de la %3$s a la %2$s", - "You assigned system tag %3$s to %2$s" : "Has assignat les marques de sistema de la %3$s a la %2$s", - "%1$s assigned system tag %3$s to %2$s" : "%1$s ha assignat les marques de sistema de la %3$s a la %2$s", - "You unassigned system tag %3$s from %2$s" : "Has des-assignat les marques de sistema de la %3$s a la %2$s", - "%1$s unassigned system tag %3$s from %2$s" : "%1$s ha des-assignat les marques de sistema de la %3$s a la %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} etiqueta del sistema actualitzada {oldsystemtag} a {newsystemtag}", + "You added system tag %2$s to %1$s" : "Heu afegit l'etiqueta del sistema %2$sa%1$s", + "You added system tag {systemtag} to {file}" : "Heu afegit l'etiqueta del sistema {systemtag} a {file}", + "%1$s added system tag %3$s to %2$s" : "%1$sS'ha afegit una etiqueta al sistema%3$s%2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} ha afegit l'etiqueta del sistema {systemtag} a {file}", + "You removed system tag %2$s from %1$s" : "Heu eliminat l'etiqueta del sistema%2$s %1$s", + "You removed system tag {systemtag} from {file}" : "Heu eliminat l'etiqueta del sistema {systemtag} de {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$sS'ha eliminat l'etiqueta del sistema%3$s%2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} ha eliminat l'etiqueta del sistema {systemtag} de {file}", "%s (restricted)" : "%s (restringit)", "%s (invisible)" : "%s (invisible)", + "<strong>System tags</strong> for a file have been modified" : "Les <strong>Marques de Sistema</strong> d'un fitxer s'han modificat", + "Collaborative tags" : "Etiquetes col·laboratives", + "Create and edit collaborative tags. These tags affect all users." : "Creeu i editeu etiquetes col·laboratives. Aquestes etiquetes afecten a tots els usuaris.", + "Select tag …" : "Selecciona etiqueta...", "Name" : "Nom", + "Delete" : "Esborra", + "Public" : "Públic", + "Restricted" : "Restringit", + "Invisible" : "Invisible", + "Reset" : "Canvia", "No files in here" : "No hi ha arxius", "No entries found in this folder" : "No hi ha entrades en aquesta carpeta", "Size" : "Mida", diff --git a/apps/systemtags/l10n/hu.js b/apps/systemtags/l10n/hu.js index e2cc831e08c..a8843c60538 100644 --- a/apps/systemtags/l10n/hu.js +++ b/apps/systemtags/l10n/hu.js @@ -42,6 +42,7 @@ OC.L10N.register( "%s (invisible)" : "%s (láthatatlan)", "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszer címkéje</strong> módosítva lett", "Collaborative tags" : "Együttműködési címkék", + "Create and edit collaborative tags. These tags affect all users." : "Kollaboratív címke létrehozása és szerkesztése. Ezek minden felhasználóra érvényesülnek.", "Select tag …" : "Címke választás...", "Name" : "Név", "Delete" : "Törlés", diff --git a/apps/systemtags/l10n/hu.json b/apps/systemtags/l10n/hu.json index 8e1cff657ce..42b0b7df129 100644 --- a/apps/systemtags/l10n/hu.json +++ b/apps/systemtags/l10n/hu.json @@ -40,6 +40,7 @@ "%s (invisible)" : "%s (láthatatlan)", "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszer címkéje</strong> módosítva lett", "Collaborative tags" : "Együttműködési címkék", + "Create and edit collaborative tags. These tags affect all users." : "Kollaboratív címke létrehozása és szerkesztése. Ezek minden felhasználóra érvényesülnek.", "Select tag …" : "Címke választás...", "Name" : "Név", "Delete" : "Törlés", diff --git a/apps/systemtags/l10n/nb.js b/apps/systemtags/l10n/nb.js index a46e4f90a52..3414b982ab0 100644 --- a/apps/systemtags/l10n/nb.js +++ b/apps/systemtags/l10n/nb.js @@ -5,7 +5,7 @@ OC.L10N.register( "Update" : "Oppdater", "Create" : "Opprett", "Select tag…" : "Velg merkelapp…", - "Tagged files" : "Merkede filer", + "Tagged files" : "Filer med merkelapper", "Select tags to filter by" : "Velg merkelapper å filtrere etter", "No tags found" : "Fant ingen merkelapper", "Please select tags to filter by" : "Velg merkelapper å filtrere etter", @@ -41,8 +41,8 @@ OC.L10N.register( "%s (restricted)" : "%s (begrenset)", "%s (invisible)" : "%s (usynlig)", "<strong>System tags</strong> for a file have been modified" : "Endringer av en fils <strong>System-merkelapper</strong>", - "Collaborative tags" : "Felles merkelapper", - "Create and edit collaborative tags. These tags affect all users." : "Opprett og rediger samarbeidsmessige merkelapper. Disse har innvirkning på alle brukere.", + "Collaborative tags" : "Samarbeidsmerkelapper", + "Create and edit collaborative tags. These tags affect all users." : "Opprett og rediger samarbeidsmerkelapper. Disse har innvirkning på alle brukere.", "Select tag …" : "Velg merkelapp…", "Name" : "Navn", "Delete" : "Slett", diff --git a/apps/systemtags/l10n/nb.json b/apps/systemtags/l10n/nb.json index e07dc26ac27..bf5047e205d 100644 --- a/apps/systemtags/l10n/nb.json +++ b/apps/systemtags/l10n/nb.json @@ -3,7 +3,7 @@ "Update" : "Oppdater", "Create" : "Opprett", "Select tag…" : "Velg merkelapp…", - "Tagged files" : "Merkede filer", + "Tagged files" : "Filer med merkelapper", "Select tags to filter by" : "Velg merkelapper å filtrere etter", "No tags found" : "Fant ingen merkelapper", "Please select tags to filter by" : "Velg merkelapper å filtrere etter", @@ -39,8 +39,8 @@ "%s (restricted)" : "%s (begrenset)", "%s (invisible)" : "%s (usynlig)", "<strong>System tags</strong> for a file have been modified" : "Endringer av en fils <strong>System-merkelapper</strong>", - "Collaborative tags" : "Felles merkelapper", - "Create and edit collaborative tags. These tags affect all users." : "Opprett og rediger samarbeidsmessige merkelapper. Disse har innvirkning på alle brukere.", + "Collaborative tags" : "Samarbeidsmerkelapper", + "Create and edit collaborative tags. These tags affect all users." : "Opprett og rediger samarbeidsmerkelapper. Disse har innvirkning på alle brukere.", "Select tag …" : "Velg merkelapp…", "Name" : "Navn", "Delete" : "Slett", diff --git a/apps/systemtags/l10n/sr.js b/apps/systemtags/l10n/sr.js index 623fdf3bfa4..815e319acc6 100644 --- a/apps/systemtags/l10n/sr.js +++ b/apps/systemtags/l10n/sr.js @@ -2,18 +2,57 @@ OC.L10N.register( "systemtags", { "Tags" : "Ознаке", + "Update" : "Ажурирај", + "Create" : "Направи", + "Select tag…" : "Одабери ознаку…", "Tagged files" : "Означени фајлови", - "<strong>System tags</strong> for a file have been modified" : "<strong>Системске ознаке</strong> за фајл су измењене", - "%1$s assigned system tag %3$s" : "%1$s додели системску ознаку %3$s", - "%1$s created system tag %2$s" : "%1$s направи системску ознаку %2$s", - "%1$s deleted system tag %2$s" : "%1$s обриса системску ознаку %2$s", - "%1$s updated system tag %3$s to %2$s" : "%1$s ажурира системску ознаку %3$s на %2$s", - "%1$s assigned system tag %3$s to %2$s" : "%1$s додели системску ознаку %3$s на %2$s", + "Select tags to filter by" : "Одаберите ознаке по којима да се филтрира", + "No tags found" : "Нису нађене ознаке", + "Please select tags to filter by" : "Одаберите ознаке по којима да се филтрира", + "No files found for the selected tags" : "Ниједан фајл није нађен за одабране ознаке", + "Added system tag %1$s" : "Додата системска ознака %1$s", + "Added system tag {systemtag}" : "Додата системска ознака {systemtag}", + "%1$s added system tag %2$s" : "%1$s је додао системску ознаку %2$s", + "{actor} added system tag {systemtag}" : "{actor} је додао системску ознаку {systemtag}", + "Removed system tag %1$s" : "Уклоњена системска ознака %1$s", + "Removed system tag {systemtag}" : "Уклоњена системска ознака {systemtag}", + "%1$s removed system tag %2$s" : "%1$sуклонио системску ознаку %2$s", + "{actor} removed system tag {systemtag}" : "{actor} уклонио системску ознаку {systemtag}", + "You created system tag %1$s" : "Направили сте системску ознаку %1$s", + "You created system tag {systemtag}" : "Направили сте системску ознаку {systemtag}", + "%1$s created system tag %2$s" : "%1$s направио системску ознаку %2$s", + "{actor} created system tag {systemtag}" : "{actor} направио системску ознаку {systemtag}", + "You deleted system tag %1$s" : "Избрисали сте системску ознаку %1$s", + "You deleted system tag {systemtag}" : "Избрисали сте системску ознаку {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s обрисао системску ознаку %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} обрисао системску ознаку {systemtag}", + "You updated system tag %2$s to %1$s" : "Ажурирали сте системску ознаку %2$s на %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Ажурирали сте системску ознаку {oldsystemtag} на {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s ажурирао системску ознаку %3$s на %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} ажурирао системску ознаку {oldsystemtag} на {newsystemtag}", + "You added system tag %2$s to %1$s" : "Додали сте системску ознаку %2$s на %1$s", + "You added system tag {systemtag} to {file}" : "Додали сте системску ознаку {systemtag} на {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s додао системску ознаку %3$s на %2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} додао системску ознаку {systemtag} на {file}", + "You removed system tag %2$s from %1$s" : "Уклонили сте системску ознаку %2$s са %1$s", + "You removed system tag {systemtag} from {file}" : "Уклонили сте системску ознаку {systemtag} са {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$s уклонио системску ознаку %3$s са %2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} уклонио системску ознаку {systemtag} са {file}", + "%s (restricted)" : "%s (ограничена)", "%s (invisible)" : "%s (невидљива)", + "<strong>System tags</strong> for a file have been modified" : "<strong>Системске ознаке</strong> за фајл су измењене", + "Collaborative tags" : "Тимске ознаке", + "Create and edit collaborative tags. These tags affect all users." : "Правите и мењајте тимске ознаке. Ове ознаке се тичу свих корисника.", + "Select tag …" : "Одаберите ознаку …", + "Name" : "Назив", + "Delete" : "Обриши", + "Public" : "Јавна", + "Restricted" : "Ограничена", + "Invisible" : "Невидљива", + "Reset" : "Ресетуј", "No files in here" : "Овде нема фајлова", "No entries found in this folder" : "Нема ничега у овој фасцикли", - "Name" : "назив", - "Size" : "величина", + "Size" : "Величина", "Modified" : "Измењен" }, "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/systemtags/l10n/sr.json b/apps/systemtags/l10n/sr.json index 2ea8c679e9e..3a90fe870eb 100644 --- a/apps/systemtags/l10n/sr.json +++ b/apps/systemtags/l10n/sr.json @@ -1,17 +1,56 @@ { "translations": { "Tags" : "Ознаке", + "Update" : "Ажурирај", + "Create" : "Направи", + "Select tag…" : "Одабери ознаку…", "Tagged files" : "Означени фајлови", - "<strong>System tags</strong> for a file have been modified" : "<strong>Системске ознаке</strong> за фајл су измењене", - "%1$s assigned system tag %3$s" : "%1$s додели системску ознаку %3$s", - "%1$s created system tag %2$s" : "%1$s направи системску ознаку %2$s", - "%1$s deleted system tag %2$s" : "%1$s обриса системску ознаку %2$s", - "%1$s updated system tag %3$s to %2$s" : "%1$s ажурира системску ознаку %3$s на %2$s", - "%1$s assigned system tag %3$s to %2$s" : "%1$s додели системску ознаку %3$s на %2$s", + "Select tags to filter by" : "Одаберите ознаке по којима да се филтрира", + "No tags found" : "Нису нађене ознаке", + "Please select tags to filter by" : "Одаберите ознаке по којима да се филтрира", + "No files found for the selected tags" : "Ниједан фајл није нађен за одабране ознаке", + "Added system tag %1$s" : "Додата системска ознака %1$s", + "Added system tag {systemtag}" : "Додата системска ознака {systemtag}", + "%1$s added system tag %2$s" : "%1$s је додао системску ознаку %2$s", + "{actor} added system tag {systemtag}" : "{actor} је додао системску ознаку {systemtag}", + "Removed system tag %1$s" : "Уклоњена системска ознака %1$s", + "Removed system tag {systemtag}" : "Уклоњена системска ознака {systemtag}", + "%1$s removed system tag %2$s" : "%1$sуклонио системску ознаку %2$s", + "{actor} removed system tag {systemtag}" : "{actor} уклонио системску ознаку {systemtag}", + "You created system tag %1$s" : "Направили сте системску ознаку %1$s", + "You created system tag {systemtag}" : "Направили сте системску ознаку {systemtag}", + "%1$s created system tag %2$s" : "%1$s направио системску ознаку %2$s", + "{actor} created system tag {systemtag}" : "{actor} направио системску ознаку {systemtag}", + "You deleted system tag %1$s" : "Избрисали сте системску ознаку %1$s", + "You deleted system tag {systemtag}" : "Избрисали сте системску ознаку {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s обрисао системску ознаку %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} обрисао системску ознаку {systemtag}", + "You updated system tag %2$s to %1$s" : "Ажурирали сте системску ознаку %2$s на %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Ажурирали сте системску ознаку {oldsystemtag} на {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s ажурирао системску ознаку %3$s на %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} ажурирао системску ознаку {oldsystemtag} на {newsystemtag}", + "You added system tag %2$s to %1$s" : "Додали сте системску ознаку %2$s на %1$s", + "You added system tag {systemtag} to {file}" : "Додали сте системску ознаку {systemtag} на {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s додао системску ознаку %3$s на %2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} додао системску ознаку {systemtag} на {file}", + "You removed system tag %2$s from %1$s" : "Уклонили сте системску ознаку %2$s са %1$s", + "You removed system tag {systemtag} from {file}" : "Уклонили сте системску ознаку {systemtag} са {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$s уклонио системску ознаку %3$s са %2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} уклонио системску ознаку {systemtag} са {file}", + "%s (restricted)" : "%s (ограничена)", "%s (invisible)" : "%s (невидљива)", + "<strong>System tags</strong> for a file have been modified" : "<strong>Системске ознаке</strong> за фајл су измењене", + "Collaborative tags" : "Тимске ознаке", + "Create and edit collaborative tags. These tags affect all users." : "Правите и мењајте тимске ознаке. Ове ознаке се тичу свих корисника.", + "Select tag …" : "Одаберите ознаку …", + "Name" : "Назив", + "Delete" : "Обриши", + "Public" : "Јавна", + "Restricted" : "Ограничена", + "Invisible" : "Невидљива", + "Reset" : "Ресетуј", "No files in here" : "Овде нема фајлова", "No entries found in this folder" : "Нема ничега у овој фасцикли", - "Name" : "назив", - "Size" : "величина", + "Size" : "Величина", "Modified" : "Измењен" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/systemtags/l10n/vi.js b/apps/systemtags/l10n/vi.js index 92973a5ba35..3d42ed6fa59 100644 --- a/apps/systemtags/l10n/vi.js +++ b/apps/systemtags/l10n/vi.js @@ -38,8 +38,12 @@ OC.L10N.register( "You removed system tag {systemtag} from {file}" : "Bạn đã xóa nhãn {systemtag} khỏi {file}", "%1$s removed system tag %3$s from %2$s" : "%1$s đã xóa nhãn %3$s khỏi %2$s", "{actor} removed system tag {systemtag} from {file}" : "{actor} đã xóa nhãn {systemtag} khỏi {file}", + "%s (restricted)" : "%s (bị hạn chế)", + "%s (invisible)" : "%s (vô hình)", "<strong>System tags</strong> for a file have been modified" : "<strong>Nhãn</strong> cho một tập tin đã được sửa đổi", "Collaborative tags" : "Thẻ cộng tác", + "Create and edit collaborative tags. These tags affect all users." : "Tạo và hiệu chỉnh các thẻ cộng tác. Những thẻ này ảnh hưởng tới toàn bộ người dùng.", + "Select tag …" : "Lựa chọn thẻ", "Name" : "Tên", "Delete" : "Xóa bỏ", "Public" : "Công khai", diff --git a/apps/systemtags/l10n/vi.json b/apps/systemtags/l10n/vi.json index 33ca7121c71..187aa101071 100644 --- a/apps/systemtags/l10n/vi.json +++ b/apps/systemtags/l10n/vi.json @@ -36,8 +36,12 @@ "You removed system tag {systemtag} from {file}" : "Bạn đã xóa nhãn {systemtag} khỏi {file}", "%1$s removed system tag %3$s from %2$s" : "%1$s đã xóa nhãn %3$s khỏi %2$s", "{actor} removed system tag {systemtag} from {file}" : "{actor} đã xóa nhãn {systemtag} khỏi {file}", + "%s (restricted)" : "%s (bị hạn chế)", + "%s (invisible)" : "%s (vô hình)", "<strong>System tags</strong> for a file have been modified" : "<strong>Nhãn</strong> cho một tập tin đã được sửa đổi", "Collaborative tags" : "Thẻ cộng tác", + "Create and edit collaborative tags. These tags affect all users." : "Tạo và hiệu chỉnh các thẻ cộng tác. Những thẻ này ảnh hưởng tới toàn bộ người dùng.", + "Select tag …" : "Lựa chọn thẻ", "Name" : "Tên", "Delete" : "Xóa bỏ", "Public" : "Công khai", diff --git a/apps/theming/css/settings-admin.css b/apps/theming/css/settings-admin.css index b32ed189ceb..7270ec59b83 100644 --- a/apps/theming/css/settings-admin.css +++ b/apps/theming/css/settings-admin.css @@ -78,6 +78,7 @@ form.uploadButton { #theming_settings_msg { vertical-align: middle; + border-radius: 3px; } #theming-preview-logo { diff --git a/apps/theming/js/settings-admin.js b/apps/theming/js/settings-admin.js index d9e66284d14..44a799a19b4 100644 --- a/apps/theming/js/settings-admin.js +++ b/apps/theming/js/settings-admin.js @@ -141,6 +141,7 @@ $(document).ready(function () { fail: function (e, response){ OC.msg.finishedError('#theming_settings_msg', response._response.jqXHR.responseJSON.data.message); $('label#uploadlogo').addClass('icon-upload').removeClass('icon-loading-small'); + $('#theming_settings_loading').hide(); } }; var uploadParamsLogin = { @@ -159,6 +160,7 @@ $(document).ready(function () { fail: function (e, response){ $('label#upload-login-background').removeClass('icon-loading-small').addClass('icon-upload'); OC.msg.finishedError('#theming_settings_msg', response._response.jqXHR.responseJSON.data.message); + $('#theming_settings_loading').hide(); } }; diff --git a/apps/theming/l10n/de.js b/apps/theming/l10n/de.js index 52c12d1f093..86226c364b1 100644 --- a/apps/theming/l10n/de.js +++ b/apps/theming/l10n/de.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Die eingegebene Adresse ist zu lang", "The given slogan is too long" : "Der eingegebene Slogan ist zu lang", "The given color is invalid" : "Die gewählte Farbe ist ungültig", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Es wurde keine Datei hochgeladen", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.", + "A PHP extension stopped the file upload." : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt.", "No file uploaded" : "Keine Datei hochgeladen", "Unsupported image type" : "Nicht unterstütztes Bild-Format", "You are already using a custom theme" : "Du benutzt bereits ein eigenes Thema", diff --git a/apps/theming/l10n/de.json b/apps/theming/l10n/de.json index b9684f0a672..dc88a7be984 100644 --- a/apps/theming/l10n/de.json +++ b/apps/theming/l10n/de.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Die eingegebene Adresse ist zu lang", "The given slogan is too long" : "Der eingegebene Slogan ist zu lang", "The given color is invalid" : "Die gewählte Farbe ist ungültig", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Es wurde keine Datei hochgeladen", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.", + "A PHP extension stopped the file upload." : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt.", "No file uploaded" : "Keine Datei hochgeladen", "Unsupported image type" : "Nicht unterstütztes Bild-Format", "You are already using a custom theme" : "Du benutzt bereits ein eigenes Thema", diff --git a/apps/theming/l10n/de_DE.js b/apps/theming/l10n/de_DE.js index 8e9ec2fe8d9..88dab08c44a 100644 --- a/apps/theming/l10n/de_DE.js +++ b/apps/theming/l10n/de_DE.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Die eingegebene Adresse ist zu lang", "The given slogan is too long" : "Der eingegebene Slogan ist zu lang", "The given color is invalid" : "Die gewählte Farbe ist ungültig", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Es wurde keine Datei hochgeladen", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.", + "A PHP extension stopped the file upload." : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt.", "No file uploaded" : "Keine Datei hochgeladen", "Unsupported image type" : "Nicht unterstütztes Bild-Format", "You are already using a custom theme" : "Sie benutzen bereits ein eigenes Thema", diff --git a/apps/theming/l10n/de_DE.json b/apps/theming/l10n/de_DE.json index f4dfa4d6bba..14043ad1fd6 100644 --- a/apps/theming/l10n/de_DE.json +++ b/apps/theming/l10n/de_DE.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Die eingegebene Adresse ist zu lang", "The given slogan is too long" : "Der eingegebene Slogan ist zu lang", "The given color is invalid" : "Die gewählte Farbe ist ungültig", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Es wurde keine Datei hochgeladen", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.", + "A PHP extension stopped the file upload." : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt.", "No file uploaded" : "Keine Datei hochgeladen", "Unsupported image type" : "Nicht unterstütztes Bild-Format", "You are already using a custom theme" : "Sie benutzen bereits ein eigenes Thema", diff --git a/apps/theming/l10n/fr.js b/apps/theming/l10n/fr.js index ed5ac6af520..634f4a6f8a2 100644 --- a/apps/theming/l10n/fr.js +++ b/apps/theming/l10n/fr.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "L'adresse web donnée est trop longue", "The given slogan is too long" : "Le slogan donné est trop long", "The given color is invalid" : "La couleur donnée est invalide", + "There is no error, the file uploaded with success" : "Aucune erreur, le fichier a été téléversé avec succès", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Le fichier téléversé dépasse la valeur upload_max_filesize située dans le fichier php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier téléversé dépasse la valeur MAX_FILE_SIZE spécifiée dans le formulaire HTML", + "The uploaded file was only partially uploaded" : "Le fichier n'a été que partiellement téléversé", + "No file was uploaded" : "Aucun fichier téléversé", + "Missing a temporary folder" : "Absence de dossier temporaire", + "Failed to write file to disk." : "Erreur d'écriture du fichier sur le disque.", + "A PHP extension stopped the file upload." : "Une extension PHP a arrêté le téléversement du fichier.", "No file uploaded" : "Aucun fichier téléversé", "Unsupported image type" : "Ce type d'image n'est pas pris en charge", "You are already using a custom theme" : "Vous utilisez déjà un thème personnalisé", diff --git a/apps/theming/l10n/fr.json b/apps/theming/l10n/fr.json index a6d45297e25..aac3b06b6d3 100644 --- a/apps/theming/l10n/fr.json +++ b/apps/theming/l10n/fr.json @@ -7,6 +7,14 @@ "The given web address is too long" : "L'adresse web donnée est trop longue", "The given slogan is too long" : "Le slogan donné est trop long", "The given color is invalid" : "La couleur donnée est invalide", + "There is no error, the file uploaded with success" : "Aucune erreur, le fichier a été téléversé avec succès", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Le fichier téléversé dépasse la valeur upload_max_filesize située dans le fichier php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier téléversé dépasse la valeur MAX_FILE_SIZE spécifiée dans le formulaire HTML", + "The uploaded file was only partially uploaded" : "Le fichier n'a été que partiellement téléversé", + "No file was uploaded" : "Aucun fichier téléversé", + "Missing a temporary folder" : "Absence de dossier temporaire", + "Failed to write file to disk." : "Erreur d'écriture du fichier sur le disque.", + "A PHP extension stopped the file upload." : "Une extension PHP a arrêté le téléversement du fichier.", "No file uploaded" : "Aucun fichier téléversé", "Unsupported image type" : "Ce type d'image n'est pas pris en charge", "You are already using a custom theme" : "Vous utilisez déjà un thème personnalisé", diff --git a/apps/theming/l10n/it.js b/apps/theming/l10n/it.js index 06747e43aa7..33e18252f2b 100644 --- a/apps/theming/l10n/it.js +++ b/apps/theming/l10n/it.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Questo indirizzo web è troppo lungo", "The given slogan is too long" : "Questo slogan è troppo lungo", "The given color is invalid" : "Questo colore non è valido", + "There is no error, the file uploaded with success" : "Non ci sono errori, il file è stato caricato correttamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Il file caricato supera la direttiva upload_max_filesize in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Il file caricato supera la direttiva MAX_FILE_SIZE specificata nel modulo HTML", + "The uploaded file was only partially uploaded" : "Il file è stato caricato solo parzialmente", + "No file was uploaded" : "Non è stato caricato alcun file", + "Missing a temporary folder" : "Manca una cartella temporanea", + "Failed to write file to disk." : "Scrittura su disco non riuscita", + "A PHP extension stopped the file upload." : "Un'estensione PHP ha fermato il caricamento del file.", "No file uploaded" : "Nessun file caricato", "Unsupported image type" : "Tipo di immagine non supportato", "You are already using a custom theme" : "Stai già usando un tema personalizzato", diff --git a/apps/theming/l10n/it.json b/apps/theming/l10n/it.json index 54517d5ba47..56c1a122765 100644 --- a/apps/theming/l10n/it.json +++ b/apps/theming/l10n/it.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Questo indirizzo web è troppo lungo", "The given slogan is too long" : "Questo slogan è troppo lungo", "The given color is invalid" : "Questo colore non è valido", + "There is no error, the file uploaded with success" : "Non ci sono errori, il file è stato caricato correttamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Il file caricato supera la direttiva upload_max_filesize in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Il file caricato supera la direttiva MAX_FILE_SIZE specificata nel modulo HTML", + "The uploaded file was only partially uploaded" : "Il file è stato caricato solo parzialmente", + "No file was uploaded" : "Non è stato caricato alcun file", + "Missing a temporary folder" : "Manca una cartella temporanea", + "Failed to write file to disk." : "Scrittura su disco non riuscita", + "A PHP extension stopped the file upload." : "Un'estensione PHP ha fermato il caricamento del file.", "No file uploaded" : "Nessun file caricato", "Unsupported image type" : "Tipo di immagine non supportato", "You are already using a custom theme" : "Stai già usando un tema personalizzato", diff --git a/apps/theming/l10n/nb.js b/apps/theming/l10n/nb.js index 9b286698355..f3ae7b15a97 100644 --- a/apps/theming/l10n/nb.js +++ b/apps/theming/l10n/nb.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Nettadressen er for lang", "The given slogan is too long" : "Slagordet er for langt", "The given color is invalid" : "Fargen er ugyldig", + "There is no error, the file uploaded with success" : "Det er ingen feil, opplastingen av filen var vellykket", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Filen er større enn grensen satt i upload_max_filesize i php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Filen du prøvde å laste opp er større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet", + "The uploaded file was only partially uploaded" : "Filen ble bare delvis lastet opp", + "No file was uploaded" : "Ingen filer ble lastet opp", + "Missing a temporary folder" : "Mangler midlertidig mappe", + "Failed to write file to disk." : "Klarte ikke å skrive til disk.", + "A PHP extension stopped the file upload." : "En PHP-utvidelse stoppet filopplastingen.", "No file uploaded" : "Ingen fil lastet opp", "Unsupported image type" : "Filtypen støttes ikke", "You are already using a custom theme" : "Du bruker allerede en egendefinert drakt", diff --git a/apps/theming/l10n/nb.json b/apps/theming/l10n/nb.json index 6557edea2b8..841c215d0d9 100644 --- a/apps/theming/l10n/nb.json +++ b/apps/theming/l10n/nb.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Nettadressen er for lang", "The given slogan is too long" : "Slagordet er for langt", "The given color is invalid" : "Fargen er ugyldig", + "There is no error, the file uploaded with success" : "Det er ingen feil, opplastingen av filen var vellykket", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Filen er større enn grensen satt i upload_max_filesize i php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Filen du prøvde å laste opp er større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet", + "The uploaded file was only partially uploaded" : "Filen ble bare delvis lastet opp", + "No file was uploaded" : "Ingen filer ble lastet opp", + "Missing a temporary folder" : "Mangler midlertidig mappe", + "Failed to write file to disk." : "Klarte ikke å skrive til disk.", + "A PHP extension stopped the file upload." : "En PHP-utvidelse stoppet filopplastingen.", "No file uploaded" : "Ingen fil lastet opp", "Unsupported image type" : "Filtypen støttes ikke", "You are already using a custom theme" : "Du bruker allerede en egendefinert drakt", diff --git a/apps/theming/l10n/pl.js b/apps/theming/l10n/pl.js index b0a95f6f984..a623a2bbcbf 100644 --- a/apps/theming/l10n/pl.js +++ b/apps/theming/l10n/pl.js @@ -13,7 +13,7 @@ OC.L10N.register( "Unsupported image type" : "Nieobsługiwany typ zdjęcia", "You are already using a custom theme" : "Używasz już motywu niestandarowego", "Theming" : "Motyw", - "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motywy pozwalają na łatwą personalizację wyglądu Twojej instancji i wpsieranych klientów. Efekty będą widoczne dla wszystkich użytkowników.", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motywy pozwalają na łatwą personalizację wyglądu Twojej instancji i wspieranych klientów. Efekty będą widoczne dla wszystkich użytkowników.", "Name" : "Nazwa", "Reset to default" : "Przywróć domyślne", "Web address" : "adres internetowy", diff --git a/apps/theming/l10n/pl.json b/apps/theming/l10n/pl.json index 15473a4b39f..241f45ea2e2 100644 --- a/apps/theming/l10n/pl.json +++ b/apps/theming/l10n/pl.json @@ -11,7 +11,7 @@ "Unsupported image type" : "Nieobsługiwany typ zdjęcia", "You are already using a custom theme" : "Używasz już motywu niestandarowego", "Theming" : "Motyw", - "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motywy pozwalają na łatwą personalizację wyglądu Twojej instancji i wpsieranych klientów. Efekty będą widoczne dla wszystkich użytkowników.", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motywy pozwalają na łatwą personalizację wyglądu Twojej instancji i wspieranych klientów. Efekty będą widoczne dla wszystkich użytkowników.", "Name" : "Nazwa", "Reset to default" : "Przywróć domyślne", "Web address" : "adres internetowy", diff --git a/apps/theming/l10n/pt_BR.js b/apps/theming/l10n/pt_BR.js index 1f05a513bd4..6ea5b601ae9 100644 --- a/apps/theming/l10n/pt_BR.js +++ b/apps/theming/l10n/pt_BR.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "O endereço web fornecido é muito longo", "The given slogan is too long" : "O slogan dado é muito longo", "The given color is invalid" : "A cor fornecida é inválida", + "There is no error, the file uploaded with success" : "Sem erros. Arquivo enviado com sucesso", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O arquivo enviado excede a diretiva upload_max_filesize do php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O arquivo enviado excede a diretiva MAX_FILE_SIZE especificada no formulário HTML", + "The uploaded file was only partially uploaded" : "O arquivo foi enviado parcialmente", + "No file was uploaded" : "Nenhum arquivo foi enviado", + "Missing a temporary folder" : "Falta uma pasta temporária", + "Failed to write file to disk." : "Falha ao escrever no disco.", + "A PHP extension stopped the file upload." : "Uma extensão PHP parou o envio do arquivo.", "No file uploaded" : "Nenhum arquivo enviado", "Unsupported image type" : "Tipo de imagem não suportado", "You are already using a custom theme" : "Você já está usando um tema personalizado", diff --git a/apps/theming/l10n/pt_BR.json b/apps/theming/l10n/pt_BR.json index 41b06d8316f..a1d07f342f0 100644 --- a/apps/theming/l10n/pt_BR.json +++ b/apps/theming/l10n/pt_BR.json @@ -7,6 +7,14 @@ "The given web address is too long" : "O endereço web fornecido é muito longo", "The given slogan is too long" : "O slogan dado é muito longo", "The given color is invalid" : "A cor fornecida é inválida", + "There is no error, the file uploaded with success" : "Sem erros. Arquivo enviado com sucesso", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O arquivo enviado excede a diretiva upload_max_filesize do php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O arquivo enviado excede a diretiva MAX_FILE_SIZE especificada no formulário HTML", + "The uploaded file was only partially uploaded" : "O arquivo foi enviado parcialmente", + "No file was uploaded" : "Nenhum arquivo foi enviado", + "Missing a temporary folder" : "Falta uma pasta temporária", + "Failed to write file to disk." : "Falha ao escrever no disco.", + "A PHP extension stopped the file upload." : "Uma extensão PHP parou o envio do arquivo.", "No file uploaded" : "Nenhum arquivo enviado", "Unsupported image type" : "Tipo de imagem não suportado", "You are already using a custom theme" : "Você já está usando um tema personalizado", diff --git a/apps/theming/l10n/sr.js b/apps/theming/l10n/sr.js new file mode 100644 index 00000000000..49344ec96ce --- /dev/null +++ b/apps/theming/l10n/sr.js @@ -0,0 +1,39 @@ +OC.L10N.register( + "theming", + { + "Loading preview…" : "Учитавам преглед…", + "Saved" : "Сачувано", + "Admin" : "Администрација", + "a safe home for all your data" : "сигурно место за све Ваше податке", + "The given name is too long" : "Име је предугачко", + "The given web address is too long" : "Адреса је предугачка", + "The given slogan is too long" : "Слоган је предугачак", + "The given color is invalid" : "Задата боја није исправна", + "There is no error, the file uploaded with success" : "Нема грешке, фајл је отпремљен успешно", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Отпремани фајл превазилази смерницу upload_max_filesize у фајлу php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Отпремани фајл превазилази смерницу MAX_FILE_SIZE која је наведена у HTML обрасцу", + "The uploaded file was only partially uploaded" : "Отпремани фајл је само делимично отпремљен", + "No file was uploaded" : "Ниједан фајл није отпремљен", + "Missing a temporary folder" : "Недостаје привремена фасцикла", + "Failed to write file to disk." : "Не могу да пишем фајл на диск", + "A PHP extension stopped the file upload." : "PHP екстензија је зауставила отпремање фајла.", + "No file uploaded" : "Ниједан фајл није отпремљен", + "Unsupported image type" : "Неподржани тип слике", + "You are already using a custom theme" : "Већ користите прилагођену тему", + "Theming" : "Теме", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Теме Вам омогућавају да лако измените изглед Ваше инстанце и подржаних клијената. Ово ће бити видљиво свим корисницима.", + "Name" : "Име", + "Reset to default" : "Ресетуј на подразумевано", + "Web address" : "Веб адреса", + "Web address https://…" : "Веб адреса https://…", + "Slogan" : "Слоган", + "Color" : "Боја", + "Logo" : "Лого", + "Upload new logo" : "Отпремите нови лого", + "Login image" : "Слика на пријави", + "Upload new login background" : "Отпремите нову позадину на пријави", + "Remove background image" : "Уклони позадину", + "reset to default" : "ресетуј на подразумевано", + "Log in image" : "Слика на пријави" +}, +"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/theming/l10n/sr.json b/apps/theming/l10n/sr.json new file mode 100644 index 00000000000..db82d478ee7 --- /dev/null +++ b/apps/theming/l10n/sr.json @@ -0,0 +1,37 @@ +{ "translations": { + "Loading preview…" : "Учитавам преглед…", + "Saved" : "Сачувано", + "Admin" : "Администрација", + "a safe home for all your data" : "сигурно место за све Ваше податке", + "The given name is too long" : "Име је предугачко", + "The given web address is too long" : "Адреса је предугачка", + "The given slogan is too long" : "Слоган је предугачак", + "The given color is invalid" : "Задата боја није исправна", + "There is no error, the file uploaded with success" : "Нема грешке, фајл је отпремљен успешно", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Отпремани фајл превазилази смерницу upload_max_filesize у фајлу php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Отпремани фајл превазилази смерницу MAX_FILE_SIZE која је наведена у HTML обрасцу", + "The uploaded file was only partially uploaded" : "Отпремани фајл је само делимично отпремљен", + "No file was uploaded" : "Ниједан фајл није отпремљен", + "Missing a temporary folder" : "Недостаје привремена фасцикла", + "Failed to write file to disk." : "Не могу да пишем фајл на диск", + "A PHP extension stopped the file upload." : "PHP екстензија је зауставила отпремање фајла.", + "No file uploaded" : "Ниједан фајл није отпремљен", + "Unsupported image type" : "Неподржани тип слике", + "You are already using a custom theme" : "Већ користите прилагођену тему", + "Theming" : "Теме", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Теме Вам омогућавају да лако измените изглед Ваше инстанце и подржаних клијената. Ово ће бити видљиво свим корисницима.", + "Name" : "Име", + "Reset to default" : "Ресетуј на подразумевано", + "Web address" : "Веб адреса", + "Web address https://…" : "Веб адреса https://…", + "Slogan" : "Слоган", + "Color" : "Боја", + "Logo" : "Лого", + "Upload new logo" : "Отпремите нови лого", + "Login image" : "Слика на пријави", + "Upload new login background" : "Отпремите нову позадину на пријави", + "Remove background image" : "Уклони позадину", + "reset to default" : "ресетуј на подразумевано", + "Log in image" : "Слика на пријави" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +}
\ No newline at end of file diff --git a/apps/theming/l10n/vi.js b/apps/theming/l10n/vi.js index 4bc27a36332..de28f75ab6d 100644 --- a/apps/theming/l10n/vi.js +++ b/apps/theming/l10n/vi.js @@ -1,7 +1,10 @@ OC.L10N.register( "theming", { + "Loading preview…" : "Đang nạp để xem trước", "Saved" : "Đã lưu", + "Admin" : "Quản trị hệ thống", + "a safe home for all your data" : "Một ngôi nhà an toàn cho toàn bộ dữ liệu của bạn", "The given name is too long" : "Tên quá dài", "The given web address is too long" : "Địa chỉ web quá dài", "The given slogan is too long" : "Khẩu hiệu quá dài", @@ -9,8 +12,10 @@ OC.L10N.register( "No file uploaded" : "Không có tệp nào được tải lên", "Unsupported image type" : "Loại hình ảnh không được hỗ trợ", "You are already using a custom theme" : "Bạn đã sử dụng một chủ đề tuỳ chỉnh", + "Theming" : "Điều chỉnh giao diện", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Điều chỉnh giao diện cho phép bạn có thể dễ dàng tùy biến bố cục trình bày của hệ thống. Khi thực hiện nó sẽ hiện hữu đối với tất cả người dùng", "Name" : "Tên", - "reset to default" : "đặt lại về mặc định", + "Reset to default" : "Đặt lại về mặc định", "Web address" : "Địa chỉ web", "Web address https://…" : "Địa chỉ web https://...", "Slogan" : "Khẩu hiệu", @@ -19,6 +24,8 @@ OC.L10N.register( "Upload new logo" : "Tải lên logo mới", "Login image" : "Hình ảnh trang đăng nhập", "Upload new login background" : "Tải lên ảnh nền trang đăng nhập mới", + "Remove background image" : "Xóa bỏ ảnh nền", + "reset to default" : "đặt lại về mặc định", "Log in image" : "Ảnh đăng nhập" }, "nplurals=1; plural=0;"); diff --git a/apps/theming/l10n/vi.json b/apps/theming/l10n/vi.json index dac197289d7..10e069b0a61 100644 --- a/apps/theming/l10n/vi.json +++ b/apps/theming/l10n/vi.json @@ -1,5 +1,8 @@ { "translations": { + "Loading preview…" : "Đang nạp để xem trước", "Saved" : "Đã lưu", + "Admin" : "Quản trị hệ thống", + "a safe home for all your data" : "Một ngôi nhà an toàn cho toàn bộ dữ liệu của bạn", "The given name is too long" : "Tên quá dài", "The given web address is too long" : "Địa chỉ web quá dài", "The given slogan is too long" : "Khẩu hiệu quá dài", @@ -7,8 +10,10 @@ "No file uploaded" : "Không có tệp nào được tải lên", "Unsupported image type" : "Loại hình ảnh không được hỗ trợ", "You are already using a custom theme" : "Bạn đã sử dụng một chủ đề tuỳ chỉnh", + "Theming" : "Điều chỉnh giao diện", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Điều chỉnh giao diện cho phép bạn có thể dễ dàng tùy biến bố cục trình bày của hệ thống. Khi thực hiện nó sẽ hiện hữu đối với tất cả người dùng", "Name" : "Tên", - "reset to default" : "đặt lại về mặc định", + "Reset to default" : "Đặt lại về mặc định", "Web address" : "Địa chỉ web", "Web address https://…" : "Địa chỉ web https://...", "Slogan" : "Khẩu hiệu", @@ -17,6 +22,8 @@ "Upload new logo" : "Tải lên logo mới", "Login image" : "Hình ảnh trang đăng nhập", "Upload new login background" : "Tải lên ảnh nền trang đăng nhập mới", + "Remove background image" : "Xóa bỏ ảnh nền", + "reset to default" : "đặt lại về mặc định", "Log in image" : "Ảnh đăng nhập" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php index 06c2c430b7f..ccc2634ec14 100644 --- a/apps/theming/lib/Controller/ThemingController.php +++ b/apps/theming/lib/Controller/ThemingController.php @@ -207,12 +207,34 @@ class ThemingController extends Controller { } $newLogo = $this->request->getUploadedFile('uploadlogo'); $newBackgroundLogo = $this->request->getUploadedFile('upload-login-background'); + $error = null; + $phpFileUploadErrors = [ + UPLOAD_ERR_OK => $this->l10n->t('There is no error, the file uploaded with success'), + UPLOAD_ERR_INI_SIZE => $this->l10n->t('The uploaded file exceeds the upload_max_filesize directive in php.ini'), + UPLOAD_ERR_FORM_SIZE => $this->l10n->t('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'), + UPLOAD_ERR_PARTIAL => $this->l10n->t('The uploaded file was only partially uploaded'), + UPLOAD_ERR_NO_FILE => $this->l10n->t('No file was uploaded'), + UPLOAD_ERR_NO_TMP_DIR => $this->l10n->t('Missing a temporary folder'), + UPLOAD_ERR_CANT_WRITE => $this->l10n->t('Failed to write file to disk.'), + UPLOAD_ERR_EXTENSION => $this->l10n->t('A PHP extension stopped the file upload.'), + ]; if (empty($newLogo) && empty($newBackgroundLogo)) { + $error = $this->l10n->t('No file uploaded'); + } + if (!empty($newLogo) && array_key_exists('error', $newLogo) && $newLogo['error'] !== UPLOAD_ERR_OK) { + $error = $phpFileUploadErrors[$newLogo['error']]; + } + if (!empty($newBackgroundLogo) && array_key_exists('error', $newBackgroundLogo) && $newBackgroundLogo['error'] !== UPLOAD_ERR_OK) { + $error = $phpFileUploadErrors[$newBackgroundLogo['error']]; + } + + if ($error !== null) { return new DataResponse( [ 'data' => [ - 'message' => $this->l10n->t('No file uploaded') - ] + 'message' => $error + ], + 'status' => 'failure', ], Http::STATUS_UNPROCESSABLE_ENTITY ); @@ -227,6 +249,18 @@ class ThemingController extends Controller { if (!empty($newLogo)) { $target = $folder->newFile('logo'); + $supportedFormats = ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'text/svg']; + if (!in_array($newLogo['type'], $supportedFormats)) { + return new DataResponse( + [ + 'data' => [ + 'message' => $this->l10n->t('Unsupported image type'), + ], + 'status' => 'failure', + ], + Http::STATUS_UNPROCESSABLE_ENTITY + ); + } $target->putContent(file_get_contents($newLogo['tmp_name'], 'r')); $this->themingDefaults->set('logoMime', $newLogo['type']); $name = $newLogo['name']; diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php index c03eccb6eef..e964e886e5c 100644 --- a/apps/theming/tests/Controller/ThemingControllerTest.php +++ b/apps/theming/tests/Controller/ThemingControllerTest.php @@ -131,8 +131,9 @@ class ThemingControllerTest extends TestCase { $this->l10n ->expects($this->once()) ->method('t') - ->with($message) - ->willReturn($message); + ->will($this->returnCallback(function($str) { + return $str; + })); $this->scssCacher ->expects($this->once()) ->method('getCachedSCSS') @@ -183,8 +184,9 @@ class ThemingControllerTest extends TestCase { $this->l10n ->expects($this->once()) ->method('t') - ->with($message) - ->willReturn($message); + ->will($this->returnCallback(function($str) { + return $str; + })); $expected = new DataResponse( [ @@ -215,10 +217,11 @@ class ThemingControllerTest extends TestCase { ->with('upload-login-background') ->willReturn(null); $this->l10n - ->expects($this->once()) + ->expects($this->any()) ->method('t') - ->with('No file uploaded') - ->willReturn('No file uploaded'); + ->will($this->returnCallback(function($str) { + return $str; + })); $expected = new DataResponse( [ @@ -226,6 +229,56 @@ class ThemingControllerTest extends TestCase { [ 'message' => 'No file uploaded', ], + 'status' => 'failure', + ], + Http::STATUS_UNPROCESSABLE_ENTITY + ); + + $this->assertEquals($expected, $this->themingController->updateLogo()); + } + + public function testUpdateLogoInvalidMimeType() { + $this->request + ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) + ->method('getUploadedFile') + ->with('uploadlogo') + ->willReturn([ + 'tmp_name' => 'logo.pdf', + 'type' => 'application/pdf', + 'name' => 'logo.pdf', + 'error' => 0, + ]); + $this->request + ->expects($this->at(2)) + ->method('getUploadedFile') + ->with('upload-login-background') + ->willReturn(null); + $this->l10n + ->expects($this->any()) + ->method('t') + ->will($this->returnCallback(function($str) { + return $str; + })); + + $folder = $this->createMock(ISimpleFolder::class); + $this->appData + ->expects($this->once()) + ->method('getFolder') + ->with('images') + ->willReturn($folder); + + $expected = new DataResponse( + [ + 'data' => + [ + 'message' => 'Unsupported image type', + ], + 'status' => 'failure' ], Http::STATUS_UNPROCESSABLE_ENTITY ); @@ -258,13 +311,17 @@ class ThemingControllerTest extends TestCase { public function dataUpdateImages() { return [ - [false], - [true] + ['image/jpeg', false], + ['image/jpeg', true], + ['image/gif'], + ['image/png'], + ['image/svg+xml'], + ['text/svg'], ]; } /** @dataProvider dataUpdateImages */ - public function testUpdateLogoNormalLogoUpload($folderExists) { + public function testUpdateLogoNormalLogoUpload($mimeType, $folderExists=true) { $tmpLogo = \OC::$server->getTempManager()->getTemporaryFolder() . '/logo.svg'; $destination = \OC::$server->getTempManager()->getTemporaryFolder(); @@ -280,8 +337,9 @@ class ThemingControllerTest extends TestCase { ->with('uploadlogo') ->willReturn([ 'tmp_name' => $tmpLogo, - 'type' => 'text/svg', + 'type' => $mimeType, 'name' => 'logo.svg', + 'error' => 0, ]); $this->request ->expects($this->at(2)) @@ -289,10 +347,11 @@ class ThemingControllerTest extends TestCase { ->with('upload-login-background') ->willReturn(null); $this->l10n - ->expects($this->once()) + ->expects($this->any()) ->method('t') - ->with('Saved') - ->willReturn('Saved'); + ->will($this->returnCallback(function($str) { + return $str; + })); $file = $this->createMock(ISimpleFile::class); @@ -357,12 +416,14 @@ class ThemingControllerTest extends TestCase { 'tmp_name' => $tmpLogo, 'type' => 'text/svg', 'name' => 'logo.svg', + 'error' => 0, ]); $this->l10n - ->expects($this->once()) + ->expects($this->any()) ->method('t') - ->with('Saved') - ->willReturn('Saved'); + ->will($this->returnCallback(function($str) { + return $str; + })); $file = $this->createMock(ISimpleFile::class); $folder = $this->createMock(ISimpleFolder::class); @@ -425,12 +486,14 @@ class ThemingControllerTest extends TestCase { 'tmp_name' => $tmpLogo, 'type' => 'text/svg', 'name' => 'logo.svg', + 'error' => 0, ]); $this->l10n - ->expects($this->once()) + ->expects($this->any()) ->method('t') - ->with('Unsupported image type') - ->willReturn('Unsupported image type'); + ->will($this->returnCallback(function($str) { + return $str; + })); $folder = $this->createMock(ISimpleFolder::class); $this->appData @@ -452,6 +515,106 @@ class ThemingControllerTest extends TestCase { $this->assertEquals($expected, $this->themingController->updateLogo()); } + public function dataPhpUploadErrors() { + return [ + [UPLOAD_ERR_INI_SIZE, 'The uploaded file exceeds the upload_max_filesize directive in php.ini'], + [UPLOAD_ERR_FORM_SIZE, 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'], + [UPLOAD_ERR_PARTIAL, 'The uploaded file was only partially uploaded'], + [UPLOAD_ERR_NO_FILE, 'No file was uploaded'], + [UPLOAD_ERR_NO_TMP_DIR, 'Missing a temporary folder'], + [UPLOAD_ERR_CANT_WRITE, 'Failed to write file to disk.'], + [UPLOAD_ERR_EXTENSION, 'A PHP extension stopped the file upload.'], + ]; + } + + /** + * @dataProvider dataPhpUploadErrors + */ + public function testUpdateLogoLoginScreenUploadWithInvalidImageUpload($error, $expectedErrorMessage) { + $this->request + ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) + ->method('getUploadedFile') + ->with('uploadlogo') + ->willReturn(null); + $this->request + ->expects($this->at(2)) + ->method('getUploadedFile') + ->with('upload-login-background') + ->willReturn([ + 'tmp_name' => '', + 'type' => 'text/svg', + 'name' => 'logo.svg', + 'error' => $error, + ]); + $this->l10n + ->expects($this->any()) + ->method('t') + ->will($this->returnCallback(function($str) { + return $str; + })); + + $expected = new DataResponse( + [ + 'data' => + [ + 'message' => $expectedErrorMessage, + ], + 'status' => 'failure' + ], + Http::STATUS_UNPROCESSABLE_ENTITY + ); + $this->assertEquals($expected, $this->themingController->updateLogo()); + } + + /** + * @dataProvider dataPhpUploadErrors + */ + public function testUpdateLogoUploadWithInvalidImageUpload($error, $expectedErrorMessage) { + $this->request + ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) + ->method('getUploadedFile') + ->with('uploadlogo') + ->willReturn([ + 'tmp_name' => '', + 'type' => 'text/svg', + 'name' => 'logo.svg', + 'error' => $error, + ]); + $this->request + ->expects($this->at(2)) + ->method('getUploadedFile') + ->with('upload-login-background') + ->willReturn(null); + $this->l10n + ->expects($this->any()) + ->method('t') + ->will($this->returnCallback(function($str) { + return $str; + })); + + $expected = new DataResponse( + [ + 'data' => + [ + 'message' => $expectedErrorMessage + ], + 'status' => 'failure' + ], + Http::STATUS_UNPROCESSABLE_ENTITY + ); + $this->assertEquals($expected, $this->themingController->updateLogo()); + } + public function testUndo() { $this->l10n ->expects($this->once()) diff --git a/apps/twofactor_backupcodes/appinfo/info.xml b/apps/twofactor_backupcodes/appinfo/info.xml index 0002d0dcf0c..18728a7047a 100644 --- a/apps/twofactor_backupcodes/appinfo/info.xml +++ b/apps/twofactor_backupcodes/appinfo/info.xml @@ -5,7 +5,7 @@ <description>A two-factor auth backup codes provider</description> <licence>agpl</licence> <author>Christoph Wurst</author> - <version>1.2.2</version> + <version>1.2.3</version> <namespace>TwoFactorBackupCodes</namespace> <category>other</category> diff --git a/apps/twofactor_backupcodes/l10n/ca.js b/apps/twofactor_backupcodes/l10n/ca.js new file mode 100644 index 00000000000..6af7f7a8355 --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/ca.js @@ -0,0 +1,18 @@ +OC.L10N.register( + "twofactor_backupcodes", + { + "Generate backup codes" : "Generar codis de la copia de seguretat", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "S'han generat codis de còpia de seguretat. S'han usat {{used}} de {{total}} codis.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Aquests són els codis de seguretat. Deseu-los i / o imprimiu-los ja que no podreu tornar a llegir els codis més tard", + "Save backup codes" : "Guardar els codis de la copia de seguretat", + "Print backup codes" : "Imprimeix codis de còpia de seguretat", + "Regenerate backup codes" : "Regenerar els codis de la copia de seguretat", + "If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneres codis de còpia de seguretat, invalida automàticament els codis antics.", + "An error occurred while generating your backup codes" : "S'ha produït un error en generar els codis de seguretat", + "Nextcloud backup codes" : "Codis de la copia de seguretat de Nextcloud", + "You created two-factor backup codes for your account" : "Heu creat codis de còpia de seguretat de dos factors per al vostre compte", + "Backup code" : "Codi de copia de seguretat", + "Use backup code" : "Utilitza un codi de copia de seguretat", + "Second-factor backup codes" : "Codis secundaris de còpia de seguretat" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/twofactor_backupcodes/l10n/ca.json b/apps/twofactor_backupcodes/l10n/ca.json new file mode 100644 index 00000000000..d1a5645a2ec --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/ca.json @@ -0,0 +1,16 @@ +{ "translations": { + "Generate backup codes" : "Generar codis de la copia de seguretat", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "S'han generat codis de còpia de seguretat. S'han usat {{used}} de {{total}} codis.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Aquests són els codis de seguretat. Deseu-los i / o imprimiu-los ja que no podreu tornar a llegir els codis més tard", + "Save backup codes" : "Guardar els codis de la copia de seguretat", + "Print backup codes" : "Imprimeix codis de còpia de seguretat", + "Regenerate backup codes" : "Regenerar els codis de la copia de seguretat", + "If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneres codis de còpia de seguretat, invalida automàticament els codis antics.", + "An error occurred while generating your backup codes" : "S'ha produït un error en generar els codis de seguretat", + "Nextcloud backup codes" : "Codis de la copia de seguretat de Nextcloud", + "You created two-factor backup codes for your account" : "Heu creat codis de còpia de seguretat de dos factors per al vostre compte", + "Backup code" : "Codi de copia de seguretat", + "Use backup code" : "Utilitza un codi de copia de seguretat", + "Second-factor backup codes" : "Codis secundaris de còpia de seguretat" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/twofactor_backupcodes/l10n/sr.js b/apps/twofactor_backupcodes/l10n/sr.js new file mode 100644 index 00000000000..41a9ff302c6 --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/sr.js @@ -0,0 +1,18 @@ +OC.L10N.register( + "twofactor_backupcodes", + { + "Generate backup codes" : "Генериши резервне кодове", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Резервни кодови су изгенерисани. {{used}} од {{total}} кодова је искоришћено.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ово су Ваши резервни кодови. Сачувајте их и/или их одштампајте пошто више нећете моћи да их прочитате.", + "Save backup codes" : "Сачувај резервне кодове", + "Print backup codes" : "Одштампај резервне кодове", + "Regenerate backup codes" : "Регенериши резервне кодове", + "If you regenerate backup codes, you automatically invalidate old codes." : "Ако се резервни кодови регенериши, стари аутоматски престају да важе.", + "An error occurred while generating your backup codes" : "Десила се грешка приликом генерисања резервних кодова", + "Nextcloud backup codes" : "Некстклауд резервни кодови", + "You created two-factor backup codes for your account" : "Направили сте двофакторске резервне кодове за Ваш налог", + "Backup code" : "Резервни код", + "Use backup code" : "Искористи резервни код", + "Second-factor backup codes" : "Двофакторски резервни кодови" +}, +"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/twofactor_backupcodes/l10n/sr.json b/apps/twofactor_backupcodes/l10n/sr.json new file mode 100644 index 00000000000..8b39a42c237 --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/sr.json @@ -0,0 +1,16 @@ +{ "translations": { + "Generate backup codes" : "Генериши резервне кодове", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Резервни кодови су изгенерисани. {{used}} од {{total}} кодова је искоришћено.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ово су Ваши резервни кодови. Сачувајте их и/или их одштампајте пошто више нећете моћи да их прочитате.", + "Save backup codes" : "Сачувај резервне кодове", + "Print backup codes" : "Одштампај резервне кодове", + "Regenerate backup codes" : "Регенериши резервне кодове", + "If you regenerate backup codes, you automatically invalidate old codes." : "Ако се резервни кодови регенериши, стари аутоматски престају да важе.", + "An error occurred while generating your backup codes" : "Десила се грешка приликом генерисања резервних кодова", + "Nextcloud backup codes" : "Некстклауд резервни кодови", + "You created two-factor backup codes for your account" : "Направили сте двофакторске резервне кодове за Ваш налог", + "Backup code" : "Резервни код", + "Use backup code" : "Искористи резервни код", + "Second-factor backup codes" : "Двофакторски резервни кодови" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +}
\ No newline at end of file diff --git a/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170926101419.php b/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170926101419.php new file mode 100644 index 00000000000..8072ebd6810 --- /dev/null +++ b/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170926101419.php @@ -0,0 +1,25 @@ +<?php +namespace OCA\TwoFactorBackupCodes\Migration; + +use Doctrine\DBAL\Schema\Schema; +use OCP\Migration\BigIntMigration; +use OCP\Migration\SimpleMigrationStep; +use OCP\Migration\IOutput; + +/** + * Auto-generated migration step: Please modify to your needs! + */ +class Version1002Date20170926101419 extends BigIntMigration { + + /** + * @return array Returns an array with the following structure + * ['table1' => ['column1', 'column2'], ...] + * @since 13.0.0 + */ + protected function getColumnsByTable() { + return [ + 'twofactor_backupcodes' => ['id'], + ]; + } + +} diff --git a/apps/updatenotification/l10n/ca.js b/apps/updatenotification/l10n/ca.js index 6fe99ddab74..005ee987671 100644 --- a/apps/updatenotification/l10n/ca.js +++ b/apps/updatenotification/l10n/ca.js @@ -19,6 +19,7 @@ OC.L10N.register( "A non-default update server is in use to be checked for updates:" : "S'utilitza un servidor d'actualització no predeterminat per comprovar si hi ha actualitzacions:", "Update channel:" : "Actualitzar canal:", "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Sempre podràs actualitzar a una versió més recent / canal experimental. Però mai es pot fer un \"downgrade\" a un canal més estable.", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Tingueu en compte que després d'un nou llançament, pot trigar un temps abans que aparegui aquí. Desplegem noves versions distribuïdes amb el temps als nostres usuaris i, de vegades, ometen una versió quan es detecten problemes.", "Notify members of the following groups about available updates:" : "Notificar als membres dels següents grups sobre les actualitzacions disponibles:", "Only notification for app updates are available." : "Només notificació d'actualitzacions d'apps estan disponibles.", "The selected update channel makes dedicated notifications for the server obsolete." : "El canal d'actualització seleccionat deixa obsoletes les notificacions específiques del servidor.", diff --git a/apps/updatenotification/l10n/ca.json b/apps/updatenotification/l10n/ca.json index 5f4bacdf14a..fcd9d277d23 100644 --- a/apps/updatenotification/l10n/ca.json +++ b/apps/updatenotification/l10n/ca.json @@ -17,6 +17,7 @@ "A non-default update server is in use to be checked for updates:" : "S'utilitza un servidor d'actualització no predeterminat per comprovar si hi ha actualitzacions:", "Update channel:" : "Actualitzar canal:", "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Sempre podràs actualitzar a una versió més recent / canal experimental. Però mai es pot fer un \"downgrade\" a un canal més estable.", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Tingueu en compte que després d'un nou llançament, pot trigar un temps abans que aparegui aquí. Desplegem noves versions distribuïdes amb el temps als nostres usuaris i, de vegades, ometen una versió quan es detecten problemes.", "Notify members of the following groups about available updates:" : "Notificar als membres dels següents grups sobre les actualitzacions disponibles:", "Only notification for app updates are available." : "Només notificació d'actualitzacions d'apps estan disponibles.", "The selected update channel makes dedicated notifications for the server obsolete." : "El canal d'actualització seleccionat deixa obsoletes les notificacions específiques del servidor.", diff --git a/apps/updatenotification/l10n/cs.js b/apps/updatenotification/l10n/cs.js index 6e04a1d9b0b..38e49baf7df 100644 --- a/apps/updatenotification/l10n/cs.js +++ b/apps/updatenotification/l10n/cs.js @@ -13,8 +13,10 @@ OC.L10N.register( "A new version is available: %s" : "Je dostupná nová verze: %s", "Open updater" : "Otevřít aktualizátor", "Download now" : "Stáhnout nyní", + "The update check is not yet finished. Please refresh the page." : "Kontrola aktualizací ještě neskončila. Obnovte stránku.", "Your version is up to date." : "Používáte nejnovější verzi.", "Checked on %s" : "Zkontrolováno %s", + "A non-default update server is in use to be checked for updates:" : "Pro kontrolu aktualizací se používá jiný než výchozí server:", "Update channel:" : "Aktualizovat kanál:", "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Vždy můžete aktualizovat na novější verzi / experimentální kanál. Poté ale nelze nikdy provést downgrade zpět na nižší stabilní kanál.", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Všimněte si, že po vydání nové verze může chvíli trvat, než se zde objeví. Distribuujeme nové verze průběžně rozložené v čase mezi naše uživatele a pokud jsou nalezeny problémy někdy danou verzi přeskočíme.", diff --git a/apps/updatenotification/l10n/cs.json b/apps/updatenotification/l10n/cs.json index f1e97a5992e..eb1fc5f143f 100644 --- a/apps/updatenotification/l10n/cs.json +++ b/apps/updatenotification/l10n/cs.json @@ -11,8 +11,10 @@ "A new version is available: %s" : "Je dostupná nová verze: %s", "Open updater" : "Otevřít aktualizátor", "Download now" : "Stáhnout nyní", + "The update check is not yet finished. Please refresh the page." : "Kontrola aktualizací ještě neskončila. Obnovte stránku.", "Your version is up to date." : "Používáte nejnovější verzi.", "Checked on %s" : "Zkontrolováno %s", + "A non-default update server is in use to be checked for updates:" : "Pro kontrolu aktualizací se používá jiný než výchozí server:", "Update channel:" : "Aktualizovat kanál:", "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Vždy můžete aktualizovat na novější verzi / experimentální kanál. Poté ale nelze nikdy provést downgrade zpět na nižší stabilní kanál.", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Všimněte si, že po vydání nové verze může chvíli trvat, než se zde objeví. Distribuujeme nové verze průběžně rozložené v čase mezi naše uživatele a pokud jsou nalezeny problémy někdy danou verzi přeskočíme.", diff --git a/apps/updatenotification/l10n/lt_LT.js b/apps/updatenotification/l10n/lt_LT.js index d53d4b00c53..dd29887f985 100644 --- a/apps/updatenotification/l10n/lt_LT.js +++ b/apps/updatenotification/l10n/lt_LT.js @@ -16,6 +16,7 @@ OC.L10N.register( "The update check is not yet finished. Please refresh the page." : "Atnaujinimų patikrinimas dar neužbaigtas. Prašome įkelti puslapį iš naujo.", "Your version is up to date." : "Jūsų versija yra naujausia.", "Checked on %s" : "Tikrinta %s", + "A non-default update server is in use to be checked for updates:" : "Atnaujinimų aptikimui yra naudojamas ne nenumatytasis serveris: ", "Update channel:" : "Atnaujinimo kanalas:", "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Visada galite atnaujinti į naujesnę versiją / eksperimentinį kanalą. Tačiau niekada negalite sendinti versijos ar persijungti į stabilų kanalą.", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Turėkite omenyje, kad po naujos versijos išleidimo, gali praeiti šiek tiek laiko, kol ji čia taps matoma. Mes išleidžiame naujas versijas paskirstytas pagal laiką savo naudotojams ir, kartais, pastebėjus klaidas, praleidžiame versiją.", diff --git a/apps/updatenotification/l10n/lt_LT.json b/apps/updatenotification/l10n/lt_LT.json index 675dfeba3e8..e652fe57b91 100644 --- a/apps/updatenotification/l10n/lt_LT.json +++ b/apps/updatenotification/l10n/lt_LT.json @@ -14,6 +14,7 @@ "The update check is not yet finished. Please refresh the page." : "Atnaujinimų patikrinimas dar neužbaigtas. Prašome įkelti puslapį iš naujo.", "Your version is up to date." : "Jūsų versija yra naujausia.", "Checked on %s" : "Tikrinta %s", + "A non-default update server is in use to be checked for updates:" : "Atnaujinimų aptikimui yra naudojamas ne nenumatytasis serveris: ", "Update channel:" : "Atnaujinimo kanalas:", "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Visada galite atnaujinti į naujesnę versiją / eksperimentinį kanalą. Tačiau niekada negalite sendinti versijos ar persijungti į stabilų kanalą.", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Turėkite omenyje, kad po naujos versijos išleidimo, gali praeiti šiek tiek laiko, kol ji čia taps matoma. Mes išleidžiame naujas versijas paskirstytas pagal laiką savo naudotojams ir, kartais, pastebėjus klaidas, praleidžiame versiją.", diff --git a/apps/updatenotification/l10n/sr.js b/apps/updatenotification/l10n/sr.js index de9cb470268..e47b86840bb 100644 --- a/apps/updatenotification/l10n/sr.js +++ b/apps/updatenotification/l10n/sr.js @@ -1,14 +1,28 @@ OC.L10N.register( "updatenotification", { + "Update notifications" : "Обавештења о ажурирању", + "Could not start updater, please try the manual update" : "Не могу да покренем програм за ажурирање, покушајте ручно ажурирање", "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате.", - "Updated channel" : "Канал ажуриран", - "Updater" : "Ажурирање", + "Channel updated" : "Канал ажуриран", + "The update server could not be reached since %d days to check for new updates." : "Сервер за ажурирања није доступан пошто је прошло %d дана од последње провере ажурирања.", + "Please check the Nextcloud and server log files for errors." : "Проверите логове од сервера и од Некстклауда за грешке.", + "Update to %1$s is available." : "Доступно је ажурирање на %1$s. ", + "Update for %1$s to version %2$s is available." : "Доступно је ажурирање апликације %1$s на верзију %2$s.", + "Update for {app} to version %s is available." : "Доступно је ажурирање апликације {app} на верзију %s.", "A new version is available: %s" : "Доступна је нова верзија: %s", - "Open updater" : "Отвори ажурирање", + "Open updater" : "Отвори програм за ажурирање", + "Download now" : "Скини сада", + "The update check is not yet finished. Please refresh the page." : "Провера за новим верзијама још није готова. Освежите страну.", "Your version is up to date." : "Ваша верзија је ажурна.", "Checked on %s" : "Проверено %s", + "A non-default update server is in use to be checked for updates:" : "Неподразумевани сервер за ажурирање је коришћен да провери нове верзије:", "Update channel:" : "Канал за ажурирање:", - "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Увек можете да надоградите на новију верзију/експериментални канал. Али не можете се вратити на стабилни канал." + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Увек можете да надоградите на новију верзију/експериментални канал. Али не можете се вратити на стабилни канал.", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "После издавања нове верзије, може да прође неко време пре него што се верзија појави овде. Ми избацујемо нове верзије постепено и можемо некад да прескочимо верзију ако наиђемо на проблеме.", + "Notify members of the following groups about available updates:" : "Обавести чланове следећих група о доступности нових верзија:", + "Only notification for app updates are available." : "Доступна су само обавештења о новим верзијама апликација.", + "The selected update channel makes dedicated notifications for the server obsolete." : "Уз означени канал за ажурирање нема смисла да имате обавештења о новим верзијама.", + "The selected update channel does not support updates of the server." : "Означени канал за ажурирање не подржава обавештења о новим верзијама." }, "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/updatenotification/l10n/sr.json b/apps/updatenotification/l10n/sr.json index 90ec0169399..70d2143eec5 100644 --- a/apps/updatenotification/l10n/sr.json +++ b/apps/updatenotification/l10n/sr.json @@ -1,12 +1,26 @@ { "translations": { + "Update notifications" : "Обавештења о ажурирању", + "Could not start updater, please try the manual update" : "Не могу да покренем програм за ажурирање, покушајте ручно ажурирање", "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате.", - "Updated channel" : "Канал ажуриран", - "Updater" : "Ажурирање", + "Channel updated" : "Канал ажуриран", + "The update server could not be reached since %d days to check for new updates." : "Сервер за ажурирања није доступан пошто је прошло %d дана од последње провере ажурирања.", + "Please check the Nextcloud and server log files for errors." : "Проверите логове од сервера и од Некстклауда за грешке.", + "Update to %1$s is available." : "Доступно је ажурирање на %1$s. ", + "Update for %1$s to version %2$s is available." : "Доступно је ажурирање апликације %1$s на верзију %2$s.", + "Update for {app} to version %s is available." : "Доступно је ажурирање апликације {app} на верзију %s.", "A new version is available: %s" : "Доступна је нова верзија: %s", - "Open updater" : "Отвори ажурирање", + "Open updater" : "Отвори програм за ажурирање", + "Download now" : "Скини сада", + "The update check is not yet finished. Please refresh the page." : "Провера за новим верзијама још није готова. Освежите страну.", "Your version is up to date." : "Ваша верзија је ажурна.", "Checked on %s" : "Проверено %s", + "A non-default update server is in use to be checked for updates:" : "Неподразумевани сервер за ажурирање је коришћен да провери нове верзије:", "Update channel:" : "Канал за ажурирање:", - "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Увек можете да надоградите на новију верзију/експериментални канал. Али не можете се вратити на стабилни канал." + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Увек можете да надоградите на новију верзију/експериментални канал. Али не можете се вратити на стабилни канал.", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "После издавања нове верзије, може да прође неко време пре него што се верзија појави овде. Ми избацујемо нове верзије постепено и можемо некад да прескочимо верзију ако наиђемо на проблеме.", + "Notify members of the following groups about available updates:" : "Обавести чланове следећих група о доступности нових верзија:", + "Only notification for app updates are available." : "Доступна су само обавештења о новим верзијама апликација.", + "The selected update channel makes dedicated notifications for the server obsolete." : "Уз означени канал за ажурирање нема смисла да имате обавештења о новим верзијама.", + "The selected update channel does not support updates of the server." : "Означени канал за ажурирање не подржава обавештења о новим верзијама." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php index df08a2acd70..5239e52234a 100644 --- a/apps/user_ldap/appinfo/app.php +++ b/apps/user_ldap/appinfo/app.php @@ -44,9 +44,10 @@ if(count($configPrefixes) > 0) { 'name' => $l->t('LDAP user and group backend'), ]; }); + $userSession = \OC::$server->getUserSession(); $userBackend = new OCA\User_LDAP\User_Proxy( - $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager + $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager, $userSession ); $groupBackend = new OCA\User_LDAP\Group_Proxy($configPrefixes, $ldapWrapper); // register user backend diff --git a/apps/user_ldap/appinfo/register_command.php b/apps/user_ldap/appinfo/register_command.php index 3ae8bdbfc13..bd706e61f22 100644 --- a/apps/user_ldap/appinfo/register_command.php +++ b/apps/user_ldap/appinfo/register_command.php @@ -36,7 +36,8 @@ $uBackend = new User_Proxy( $helper->getServerConfigurationPrefixes(true), new LDAP(), $ocConfig, - \OC::$server->getNotificationManager() + \OC::$server->getNotificationManager(), + \OC::$server->getUserSession() ); $deletedUsersIndex = new DeletedUsersIndex( $ocConfig, $dbConnection, $userMapping diff --git a/apps/user_ldap/l10n/ca.js b/apps/user_ldap/l10n/ca.js index 599128b8901..949f965108b 100644 --- a/apps/user_ldap/l10n/ca.js +++ b/apps/user_ldap/l10n/ca.js @@ -3,40 +3,85 @@ OC.L10N.register( { "Failed to clear the mappings." : "Ha fallat en eliminar els mapatges", "Failed to delete the server configuration" : "Ha fallat en eliminar la configuració del servidor", - "The configuration is valid and the connection could be established!" : "La configuració és vàlida i s'ha pogut establir la comunicació!", - "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuració és vàlida, però ha fallat el Bind. Comproveu les credencials i l'arranjament del servidor.", - "The configuration is invalid. Please have a look at the logs for further details." : "La configuració no és vàlida. Per més detalls mireu al registre del sistema.", + "Invalid configuration: Anonymous binding is not allowed." : "Configuració no vàlida: no es permet l'enllaç anònim.", + "Valid configuration, connection established!" : "Configuració vàlida, connexió establerta!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuració vàlida, però no s'ha pogut enllaçar. Comproveu la configuració del servidor i les credencials.", + "Invalid configuration. Please have a look at the logs for further details." : "Configuració no vàlida. Feu un cop d'ull als registres per obtenir més informació.", "No action specified" : "No heu especificat cap acció", "No configuration specified" : "No heu especificat cap configuració", "No data specified" : "No heu especificat cap dada", " Could not set configuration %s" : "No s'ha pogut establir la configuració %s", + "Action does not exist" : "L'acció no existeix", + "LDAP user and group backend" : "Usuari LDAP i grup de suport", + "Renewing …" : "Renovant ...", + "Very weak password" : "Contrasenya massa feble", + "Weak password" : "Contrasenya feble", + "So-so password" : "Contrasenya passable", + "Good password" : "Contrasenya bona", + "Strong password" : "Contrasenya forta", + "The Base DN appears to be wrong" : "El DN de base sembla estar equivocat", + "Testing configuration…" : "Probant configuració...", "Configuration incorrect" : "Configuració incorrecte", "Configuration incomplete" : "Configuració incompleta", "Configuration OK" : "Configuració correcte", "Select groups" : "Selecciona els grups", "Select object classes" : "Seleccioneu les classes dels objectes", + "Please check the credentials, they seem to be wrong." : "Comproveu les credencials, semblen estar equivocades.", + "Please specify the port, it could not be auto-detected." : "Especifiqueu el port, no s'ha pogut detectar automàticament.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN no es pot detectar automàticament, reviseu les credencials, l'amfitrió i el port.", + "Could not detect Base DN, please enter it manually." : "No s'ha pogut detectar Base DN, introduïu-lo manualment.", "{nthServer}. Server" : "{nthServer}. Servidor", + "No object found in the given Base DN. Please revise." : "No s'ha trobat cap objecte a la Base DN donada. Reviseu.", + "More than 1,000 directory entries available." : "Hi ha més de 1.000 entrades de directoris disponibles.", + " entries available within the provided Base DN" : "les entrades disponibles a la Base DN proporcionada", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Hi ha hagut un error. Comproveu la base DN, així com la configuració de connexió i les credencials.", "Do you really want to delete the current Server Configuration?" : "Voleu eliminar la configuració actual del servidor?", "Confirm Deletion" : "Confirma l'eliminació", + "Mappings cleared successfully!" : "S'han netejat les assignacions amb èxit!", + "Error while clearing the mappings." : "S'ha produït un error en eliminar les assignacions.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "L'enllaç anònim no està permès. Proporcioneu un DN d'usuari i contrasenya.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Error d'operacions LDAP. L'enllaç anònim no es pot permetre.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "S'ha produït un error en desar. Assegureu-vos que la base de dades està en Operació. Torneu a carregar abans de continuar.", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Si canvieu el mode, activareu les consultes LDAP automàtiques. Depenent de la vostra mida LDAP, poden trigar una estona. Voleu canviar el mode?", + "Mode switch" : "Canvia el mode", "Select attributes" : "Seleccioneu els atributs", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Usuari no trobat. Comproveu els vostres atributs d'inici de sessió i el vostre nom d'usuari. Filtre eficaç (per copiar i enganxar per a la validació de la línia de comandaments):<br/>", + "User found and settings verified." : "S'ha trobat l'usuari i s'ha verificat la configuració.", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Penseu a reduir la vostra cerca, ja que ha inclòs molts usuaris, només el primer dels quals podrà iniciar sessió.", + "An unspecified error occurred. Please check log and settings." : "S'ha produït un error no especificat. Verifiqueu el registre i la configuració.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtre de cerca no és vàlid, probablement a causa de problemes de sintaxi com el nombre impar de parèntesis oberts i tancats. Reviseu.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "S'ha produït un error de connexió a LDAP / AD, consulteu l'amfitrió, el port i les credencials.", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Falta el marcador d'identitat. Es reemplaçarà amb el nom d'usuari quan consulteu LDAP / AD.", + "Please provide a login name to test against" : "Proporcioneu un nom d'inici de sessió per provar-ho", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "El quadre del grup s'ha desactivat, perquè el servidor LDAP / AD no admet memberOf.", + "Password change rejected. Hint: " : "El canvi de contrasenya s'ha rebutjat. Pista:", + "Please login with the new password" : "Inicieu sessió amb la nova contrasenya", + "Your password will expire tomorrow." : "La contrasenya caducarà demà.", + "Your password will expire today." : "La contrasenya caducarà avui.", + "LDAP / AD integration" : "Integració LDAP / AD", "_%s group found_::_%s groups found_" : ["S'ha trobat %s grup","S'han trobat %s grups"], "_%s user found_::_%s users found_" : ["S'ha trobat %s usuari","S'han trobat %s usuaris"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "No s'ha pogut detectar l'atribut del nom de visualització de l'usuari. Si us plau, especifiqueu-vos a la configuració LDAP avançada.", "Could not find the desired feature" : "La característica desitjada no s'ha trobat", "Invalid Host" : "Ordinador central no vàlid", - "Server" : "Servidor", - "Users" : "Usuaris", - "Groups" : "Grups", "Test Configuration" : "Comprovació de la configuració", "Help" : "Ajuda", "Groups meeting these criteria are available in %s:" : "Els grups que compleixen aquests criteris estan disponibles a %s:", + "Only these object classes:" : "Només aquestes classes d'objectes:", + "Only from these groups:" : "Només d'aquests grups:", + "Search groups" : "Buscar grups", + "Available groups" : "Grups disponibles", + "Selected groups" : "Grups seleccionats", + "Edit LDAP Query" : "Editeu la consulta LDAP", + "LDAP Filter:" : "Filtre LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtre especifica quins grups LDAP haurien de tenir accés a la instància %s.", "Other Attributes:" : "Altres atributs:", - "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Defineix el filtre a aplicar quan s'intenta iniciar la sessió. %%uid reemplaça el nom d'usuari en l'acció d'inici de sessió. Per exemple: \"uid=%%uid\"", "1. Server" : "1. Servidor", "%s. Server:" : "%s. Servidor:", + "Delete the current configuration" : "Esborra la configuració actual", "Host" : "Equip remot", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podeu ometre el protocol, excepte si requeriu SSL. Llavors comenceu amb ldaps://", "Port" : "Port", + "Detect Port" : "Detecta port", "User DN" : "DN Usuari", "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." : "La DN de l'usuari client amb la que s'haurà de fer, per exemple uid=agent,dc=exemple,dc=com. Per un accés anònim, deixeu la DN i la contrasenya en blanc.", "Password" : "Contrasenya", @@ -44,11 +89,15 @@ OC.L10N.register( "One Base DN per line" : "Una DN Base per línia", "You can specify Base DN for users and groups in the Advanced tab" : "Podeu especificar DN Base per usuaris i grups a la pestanya Avançat", "The filter specifies which LDAP users shall have access to the %s instance." : "El filtre especifica quins usuaris LDAP haurien de tenir accés a la instància %s", + "Saving" : "Desant...", "Back" : "Enrera", "Continue" : "Continua", + "LDAP" : "LDAP", + "Server" : "Servidor", + "Users" : "Usuaris", + "Groups" : "Grups", "Expert" : "Expert", "Advanced" : "Avançat", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avís:</b> Les aplicacions user_ldap i user_webdavauth són incompatibles. Podeu experimentar comportaments inesperats. Demaneu a l'administrador del sistema que en desactivi una.", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Avís:</b> El mòdul PHP LDAP no està instal·lat, el dorsal no funcionarà. Demaneu a l'administrador del sistema que l'instal·li.", "Connection Settings" : "Arranjaments de connexió", "Configuration Active" : "Configuració activa", @@ -82,12 +131,10 @@ OC.L10N.register( "Special Attributes" : "Atributs especials", "Quota Field" : "Camp de quota", "Quota Default" : "Quota per defecte", - "in bytes" : "en bytes", "Email Field" : "Camp de correu electrònic", "User Home Folder Naming Rule" : "Norma per anomenar la carpeta arrel d'usuari", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Deixeu-ho buit pel nom d'usuari (per defecte). Altrament, especifiqueu un atribut LDAP/AD.", "Internal Username" : "Nom d'usuari intern", - "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." : "Per defecte el nom d'usuari intern es crearà a partir de l'atribut UUID. Això assegura que el nom d'usuari és únic i que els caràcters no s'han de convertir. El nom d'usuari intern té la restricció que només estan permesos els caràcters: [ a-zA-Z0-9_.@- ]. Els altres caràcters es substitueixen pel seu corresponent ASCII o simplement s'ometen. En cas de col·lisió s'incrementa/decrementa en un. El nom d'usuari intern s'utilitza per identificar un usuari internament. També és el nom per defecte de la carpeta home d'usuari. És també un port de URLs remotes, per exemple tots els serveis *DAV. Amb aquest arranjament es pot variar el comportament per defecte. Per obtenir un comportament similar al d'abans de ownCloud 5, escriviu el nom d'usuari a mostrar en el camp següent. Deixei-lo en blanc si preferiu el comportament per defecte. Els canvis tindran efecte només en els nous usuaris LDAP mapats (afegits).", "Internal Username Attribute:" : "Atribut nom d'usuari intern:", "Override UUID detection" : "Sobrescriu la detecció 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." : "Per defecte, owncloud autodetecta l'atribut UUID. L'atribut UUID s'utilitza per identificar usuaris i grups de forma indubtable. També el nom d'usuari intern es crearà en base a la UUIS, si no heu especificat res diferent a dalt. Podeu sobreescriure l'arranjament i passar l'atribut que desitgeu. Heu d'assegurar-vos que l'atribut que escolliu pot ser recollit tant pels usuaris com pels grups i que és únic. Deixeu-ho en blanc si preferiu el comportament per defecte. els canvis s'aplicaran als usuaris i grups LDAP mapats de nou (afegits).", @@ -95,6 +142,9 @@ OC.L10N.register( "UUID Attribute for Groups:" : "Atribut UUID per Grups:", "Username-LDAP User Mapping" : "Mapatge d'usuari Nom d'usuari-LDAP", "Clear Username-LDAP User Mapping" : "Elimina el mapatge d'usuari Nom d'usuari-LDAP", - "Clear Groupname-LDAP Group Mapping" : "Elimina el mapatge de grup Nom de grup-LDAP" + "Clear Groupname-LDAP Group Mapping" : "Elimina el mapatge de grup Nom de grup-LDAP", + "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podeu ometre el protocol, excepte si requeriu SSL. Llavors comenceu amb ldaps://", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avís:</b> Les aplicacions user_ldap i user_webdavauth són incompatibles. Podeu experimentar comportaments inesperats. Demaneu a l'administrador del sistema que en desactivi una.", + "in bytes" : "en bytes" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/ca.json b/apps/user_ldap/l10n/ca.json index 3ea4e5b4ac5..0c36f9aa659 100644 --- a/apps/user_ldap/l10n/ca.json +++ b/apps/user_ldap/l10n/ca.json @@ -1,40 +1,85 @@ { "translations": { "Failed to clear the mappings." : "Ha fallat en eliminar els mapatges", "Failed to delete the server configuration" : "Ha fallat en eliminar la configuració del servidor", - "The configuration is valid and the connection could be established!" : "La configuració és vàlida i s'ha pogut establir la comunicació!", - "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuració és vàlida, però ha fallat el Bind. Comproveu les credencials i l'arranjament del servidor.", - "The configuration is invalid. Please have a look at the logs for further details." : "La configuració no és vàlida. Per més detalls mireu al registre del sistema.", + "Invalid configuration: Anonymous binding is not allowed." : "Configuració no vàlida: no es permet l'enllaç anònim.", + "Valid configuration, connection established!" : "Configuració vàlida, connexió establerta!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuració vàlida, però no s'ha pogut enllaçar. Comproveu la configuració del servidor i les credencials.", + "Invalid configuration. Please have a look at the logs for further details." : "Configuració no vàlida. Feu un cop d'ull als registres per obtenir més informació.", "No action specified" : "No heu especificat cap acció", "No configuration specified" : "No heu especificat cap configuració", "No data specified" : "No heu especificat cap dada", " Could not set configuration %s" : "No s'ha pogut establir la configuració %s", + "Action does not exist" : "L'acció no existeix", + "LDAP user and group backend" : "Usuari LDAP i grup de suport", + "Renewing …" : "Renovant ...", + "Very weak password" : "Contrasenya massa feble", + "Weak password" : "Contrasenya feble", + "So-so password" : "Contrasenya passable", + "Good password" : "Contrasenya bona", + "Strong password" : "Contrasenya forta", + "The Base DN appears to be wrong" : "El DN de base sembla estar equivocat", + "Testing configuration…" : "Probant configuració...", "Configuration incorrect" : "Configuració incorrecte", "Configuration incomplete" : "Configuració incompleta", "Configuration OK" : "Configuració correcte", "Select groups" : "Selecciona els grups", "Select object classes" : "Seleccioneu les classes dels objectes", + "Please check the credentials, they seem to be wrong." : "Comproveu les credencials, semblen estar equivocades.", + "Please specify the port, it could not be auto-detected." : "Especifiqueu el port, no s'ha pogut detectar automàticament.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN no es pot detectar automàticament, reviseu les credencials, l'amfitrió i el port.", + "Could not detect Base DN, please enter it manually." : "No s'ha pogut detectar Base DN, introduïu-lo manualment.", "{nthServer}. Server" : "{nthServer}. Servidor", + "No object found in the given Base DN. Please revise." : "No s'ha trobat cap objecte a la Base DN donada. Reviseu.", + "More than 1,000 directory entries available." : "Hi ha més de 1.000 entrades de directoris disponibles.", + " entries available within the provided Base DN" : "les entrades disponibles a la Base DN proporcionada", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Hi ha hagut un error. Comproveu la base DN, així com la configuració de connexió i les credencials.", "Do you really want to delete the current Server Configuration?" : "Voleu eliminar la configuració actual del servidor?", "Confirm Deletion" : "Confirma l'eliminació", + "Mappings cleared successfully!" : "S'han netejat les assignacions amb èxit!", + "Error while clearing the mappings." : "S'ha produït un error en eliminar les assignacions.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "L'enllaç anònim no està permès. Proporcioneu un DN d'usuari i contrasenya.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Error d'operacions LDAP. L'enllaç anònim no es pot permetre.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "S'ha produït un error en desar. Assegureu-vos que la base de dades està en Operació. Torneu a carregar abans de continuar.", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Si canvieu el mode, activareu les consultes LDAP automàtiques. Depenent de la vostra mida LDAP, poden trigar una estona. Voleu canviar el mode?", + "Mode switch" : "Canvia el mode", "Select attributes" : "Seleccioneu els atributs", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Usuari no trobat. Comproveu els vostres atributs d'inici de sessió i el vostre nom d'usuari. Filtre eficaç (per copiar i enganxar per a la validació de la línia de comandaments):<br/>", + "User found and settings verified." : "S'ha trobat l'usuari i s'ha verificat la configuració.", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Penseu a reduir la vostra cerca, ja que ha inclòs molts usuaris, només el primer dels quals podrà iniciar sessió.", + "An unspecified error occurred. Please check log and settings." : "S'ha produït un error no especificat. Verifiqueu el registre i la configuració.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtre de cerca no és vàlid, probablement a causa de problemes de sintaxi com el nombre impar de parèntesis oberts i tancats. Reviseu.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "S'ha produït un error de connexió a LDAP / AD, consulteu l'amfitrió, el port i les credencials.", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Falta el marcador d'identitat. Es reemplaçarà amb el nom d'usuari quan consulteu LDAP / AD.", + "Please provide a login name to test against" : "Proporcioneu un nom d'inici de sessió per provar-ho", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "El quadre del grup s'ha desactivat, perquè el servidor LDAP / AD no admet memberOf.", + "Password change rejected. Hint: " : "El canvi de contrasenya s'ha rebutjat. Pista:", + "Please login with the new password" : "Inicieu sessió amb la nova contrasenya", + "Your password will expire tomorrow." : "La contrasenya caducarà demà.", + "Your password will expire today." : "La contrasenya caducarà avui.", + "LDAP / AD integration" : "Integració LDAP / AD", "_%s group found_::_%s groups found_" : ["S'ha trobat %s grup","S'han trobat %s grups"], "_%s user found_::_%s users found_" : ["S'ha trobat %s usuari","S'han trobat %s usuaris"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "No s'ha pogut detectar l'atribut del nom de visualització de l'usuari. Si us plau, especifiqueu-vos a la configuració LDAP avançada.", "Could not find the desired feature" : "La característica desitjada no s'ha trobat", "Invalid Host" : "Ordinador central no vàlid", - "Server" : "Servidor", - "Users" : "Usuaris", - "Groups" : "Grups", "Test Configuration" : "Comprovació de la configuració", "Help" : "Ajuda", "Groups meeting these criteria are available in %s:" : "Els grups que compleixen aquests criteris estan disponibles a %s:", + "Only these object classes:" : "Només aquestes classes d'objectes:", + "Only from these groups:" : "Només d'aquests grups:", + "Search groups" : "Buscar grups", + "Available groups" : "Grups disponibles", + "Selected groups" : "Grups seleccionats", + "Edit LDAP Query" : "Editeu la consulta LDAP", + "LDAP Filter:" : "Filtre LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtre especifica quins grups LDAP haurien de tenir accés a la instància %s.", "Other Attributes:" : "Altres atributs:", - "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Defineix el filtre a aplicar quan s'intenta iniciar la sessió. %%uid reemplaça el nom d'usuari en l'acció d'inici de sessió. Per exemple: \"uid=%%uid\"", "1. Server" : "1. Servidor", "%s. Server:" : "%s. Servidor:", + "Delete the current configuration" : "Esborra la configuració actual", "Host" : "Equip remot", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podeu ometre el protocol, excepte si requeriu SSL. Llavors comenceu amb ldaps://", "Port" : "Port", + "Detect Port" : "Detecta port", "User DN" : "DN Usuari", "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." : "La DN de l'usuari client amb la que s'haurà de fer, per exemple uid=agent,dc=exemple,dc=com. Per un accés anònim, deixeu la DN i la contrasenya en blanc.", "Password" : "Contrasenya", @@ -42,11 +87,15 @@ "One Base DN per line" : "Una DN Base per línia", "You can specify Base DN for users and groups in the Advanced tab" : "Podeu especificar DN Base per usuaris i grups a la pestanya Avançat", "The filter specifies which LDAP users shall have access to the %s instance." : "El filtre especifica quins usuaris LDAP haurien de tenir accés a la instància %s", + "Saving" : "Desant...", "Back" : "Enrera", "Continue" : "Continua", + "LDAP" : "LDAP", + "Server" : "Servidor", + "Users" : "Usuaris", + "Groups" : "Grups", "Expert" : "Expert", "Advanced" : "Avançat", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avís:</b> Les aplicacions user_ldap i user_webdavauth són incompatibles. Podeu experimentar comportaments inesperats. Demaneu a l'administrador del sistema que en desactivi una.", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Avís:</b> El mòdul PHP LDAP no està instal·lat, el dorsal no funcionarà. Demaneu a l'administrador del sistema que l'instal·li.", "Connection Settings" : "Arranjaments de connexió", "Configuration Active" : "Configuració activa", @@ -80,12 +129,10 @@ "Special Attributes" : "Atributs especials", "Quota Field" : "Camp de quota", "Quota Default" : "Quota per defecte", - "in bytes" : "en bytes", "Email Field" : "Camp de correu electrònic", "User Home Folder Naming Rule" : "Norma per anomenar la carpeta arrel d'usuari", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Deixeu-ho buit pel nom d'usuari (per defecte). Altrament, especifiqueu un atribut LDAP/AD.", "Internal Username" : "Nom d'usuari intern", - "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." : "Per defecte el nom d'usuari intern es crearà a partir de l'atribut UUID. Això assegura que el nom d'usuari és únic i que els caràcters no s'han de convertir. El nom d'usuari intern té la restricció que només estan permesos els caràcters: [ a-zA-Z0-9_.@- ]. Els altres caràcters es substitueixen pel seu corresponent ASCII o simplement s'ometen. En cas de col·lisió s'incrementa/decrementa en un. El nom d'usuari intern s'utilitza per identificar un usuari internament. També és el nom per defecte de la carpeta home d'usuari. És també un port de URLs remotes, per exemple tots els serveis *DAV. Amb aquest arranjament es pot variar el comportament per defecte. Per obtenir un comportament similar al d'abans de ownCloud 5, escriviu el nom d'usuari a mostrar en el camp següent. Deixei-lo en blanc si preferiu el comportament per defecte. Els canvis tindran efecte només en els nous usuaris LDAP mapats (afegits).", "Internal Username Attribute:" : "Atribut nom d'usuari intern:", "Override UUID detection" : "Sobrescriu la detecció 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." : "Per defecte, owncloud autodetecta l'atribut UUID. L'atribut UUID s'utilitza per identificar usuaris i grups de forma indubtable. També el nom d'usuari intern es crearà en base a la UUIS, si no heu especificat res diferent a dalt. Podeu sobreescriure l'arranjament i passar l'atribut que desitgeu. Heu d'assegurar-vos que l'atribut que escolliu pot ser recollit tant pels usuaris com pels grups i que és únic. Deixeu-ho en blanc si preferiu el comportament per defecte. els canvis s'aplicaran als usuaris i grups LDAP mapats de nou (afegits).", @@ -93,6 +140,9 @@ "UUID Attribute for Groups:" : "Atribut UUID per Grups:", "Username-LDAP User Mapping" : "Mapatge d'usuari Nom d'usuari-LDAP", "Clear Username-LDAP User Mapping" : "Elimina el mapatge d'usuari Nom d'usuari-LDAP", - "Clear Groupname-LDAP Group Mapping" : "Elimina el mapatge de grup Nom de grup-LDAP" + "Clear Groupname-LDAP Group Mapping" : "Elimina el mapatge de grup Nom de grup-LDAP", + "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podeu ometre el protocol, excepte si requeriu SSL. Llavors comenceu amb ldaps://", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avís:</b> Les aplicacions user_ldap i user_webdavauth són incompatibles. Podeu experimentar comportaments inesperats. Demaneu a l'administrador del sistema que en desactivi una.", + "in bytes" : "en bytes" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/cs.js b/apps/user_ldap/l10n/cs.js index 4c138c58f99..5cbf12105cd 100644 --- a/apps/user_ldap/l10n/cs.js +++ b/apps/user_ldap/l10n/cs.js @@ -79,8 +79,11 @@ OC.L10N.register( "Verify settings and count the groups" : "Ověřit nastavení a spočítat skupiny", "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:", "LDAP / AD Username:" : "LDAP / AD uživatelské jméno:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Dovoluje přihlášení pomocí LDAP / AD uživatelského jména, což je \"uid\" nebo \"sAMAccountName\", což bude detekováno.", "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Povoluje přihlášení pomocí e-mailového atributu. Je povolen \"mail\" a \"mailPrimaryAddress\" allowed.", "Other Attributes:" : "Další atributy:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Definuje filtr použitý při pokusu o přihlášení. %%uid je nahrazeno uživatelským jménem z přihlašovací akce. Příklad: \"uid=%%uid\"", "Test Loginname" : "Testovací přihlašovací jméno", "Verify settings" : "Ověřit nastavení", "1. Server" : "1. Server", diff --git a/apps/user_ldap/l10n/cs.json b/apps/user_ldap/l10n/cs.json index a935cd25652..8f6ec1deb96 100644 --- a/apps/user_ldap/l10n/cs.json +++ b/apps/user_ldap/l10n/cs.json @@ -77,8 +77,11 @@ "Verify settings and count the groups" : "Ověřit nastavení a spočítat skupiny", "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:", "LDAP / AD Username:" : "LDAP / AD uživatelské jméno:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Dovoluje přihlášení pomocí LDAP / AD uživatelského jména, což je \"uid\" nebo \"sAMAccountName\", což bude detekováno.", "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Povoluje přihlášení pomocí e-mailového atributu. Je povolen \"mail\" a \"mailPrimaryAddress\" allowed.", "Other Attributes:" : "Další atributy:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Definuje filtr použitý při pokusu o přihlášení. %%uid je nahrazeno uživatelským jménem z přihlašovací akce. Příklad: \"uid=%%uid\"", "Test Loginname" : "Testovací přihlašovací jméno", "Verify settings" : "Ověřit nastavení", "1. Server" : "1. Server", diff --git a/apps/user_ldap/l10n/da.js b/apps/user_ldap/l10n/da.js index fe03f05882f..66bc78a505d 100644 --- a/apps/user_ldap/l10n/da.js +++ b/apps/user_ldap/l10n/da.js @@ -166,6 +166,7 @@ OC.L10N.register( "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Tillader at LDAP-brugere kan ændre deres adgangskode og tillader Superadministratorer og Gruppeadministratorer, at ændre adgangskoden for deres LDAP-brugere. Dette virker kun, hvis rettigheder for adgangskontrol er konfigureret tilsvarende på LDAP-serveren. Da adgangskoder sendes som klartekst til LDAP-serveren, så skal der anvendes en transportkryptering, samtidig som der bør være konfigureret således, at der sker en hashing af adgangskoder på LDAP-serveren.", "(New password is sent as plain text to LDAP)" : "(Ny adgangskode sendes som klartekst til LDAP)", "Default password policy DN" : "Standard password politik DN", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "DN for en standard password politik vil blive brugt til at håndtere udløb af password. Virker kun når LDAP password ændringer pr. bruger er aktiveret og understøtter kun OpenLDAP. Efterlad tom for at deaktivere håndtering password udløb.", "Special Attributes" : "Specielle attributter", "Quota Field" : "Kvote Felt", "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Lad stå tom for brugerens standardkvota. Alternativt angives en LDAP/AD-attribut.", diff --git a/apps/user_ldap/l10n/da.json b/apps/user_ldap/l10n/da.json index 652bd67f1d4..9ede701452a 100644 --- a/apps/user_ldap/l10n/da.json +++ b/apps/user_ldap/l10n/da.json @@ -164,6 +164,7 @@ "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Tillader at LDAP-brugere kan ændre deres adgangskode og tillader Superadministratorer og Gruppeadministratorer, at ændre adgangskoden for deres LDAP-brugere. Dette virker kun, hvis rettigheder for adgangskontrol er konfigureret tilsvarende på LDAP-serveren. Da adgangskoder sendes som klartekst til LDAP-serveren, så skal der anvendes en transportkryptering, samtidig som der bør være konfigureret således, at der sker en hashing af adgangskoder på LDAP-serveren.", "(New password is sent as plain text to LDAP)" : "(Ny adgangskode sendes som klartekst til LDAP)", "Default password policy DN" : "Standard password politik DN", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "DN for en standard password politik vil blive brugt til at håndtere udløb af password. Virker kun når LDAP password ændringer pr. bruger er aktiveret og understøtter kun OpenLDAP. Efterlad tom for at deaktivere håndtering password udløb.", "Special Attributes" : "Specielle attributter", "Quota Field" : "Kvote Felt", "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Lad stå tom for brugerens standardkvota. Alternativt angives en LDAP/AD-attribut.", diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js index 414a1b71ddc..c430719c4d9 100644 --- a/apps/user_ldap/l10n/de.js +++ b/apps/user_ldap/l10n/de.js @@ -31,7 +31,7 @@ OC.L10N.register( "Base DN could not be auto-detected, please revise credentials, host and port." : "Die Base DN konnte nicht automatisch erkannt werden, bitte überprüfe die Anmeldeinformationen, den Host und den Port.", "Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte manuell eingeben.", "{nthServer}. Server" : "{nthServer}. - Server", - "No object found in the given Base DN. Please revise." : "Keine Objekte in der Base DN gefunden, bitte überprüfen.", + "No object found in the given Base DN. Please revise." : "Keine Objekte in der Base-DN gefunden, bitte überprüfen.", "More than 1,000 directory entries available." : "Mehr als 1.000 Einträge stehen zur Verfügung.", " entries available within the provided Base DN" : "Einträge in der Vorgesehenen Base DN verfügbar", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ein Fehler ist aufgetreten. Bitte die Base DN sowie die Verbindungs- und Anmeldeeinstellungen überprüfen.", diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json index ac13427a0ba..79a28f38064 100644 --- a/apps/user_ldap/l10n/de.json +++ b/apps/user_ldap/l10n/de.json @@ -29,7 +29,7 @@ "Base DN could not be auto-detected, please revise credentials, host and port." : "Die Base DN konnte nicht automatisch erkannt werden, bitte überprüfe die Anmeldeinformationen, den Host und den Port.", "Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte manuell eingeben.", "{nthServer}. Server" : "{nthServer}. - Server", - "No object found in the given Base DN. Please revise." : "Keine Objekte in der Base DN gefunden, bitte überprüfen.", + "No object found in the given Base DN. Please revise." : "Keine Objekte in der Base-DN gefunden, bitte überprüfen.", "More than 1,000 directory entries available." : "Mehr als 1.000 Einträge stehen zur Verfügung.", " entries available within the provided Base DN" : "Einträge in der Vorgesehenen Base DN verfügbar", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ein Fehler ist aufgetreten. Bitte die Base DN sowie die Verbindungs- und Anmeldeeinstellungen überprüfen.", diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js index 652badfea86..cfcf62cf414 100644 --- a/apps/user_ldap/l10n/de_DE.js +++ b/apps/user_ldap/l10n/de_DE.js @@ -31,7 +31,7 @@ OC.L10N.register( "Base DN could not be auto-detected, please revise credentials, host and port." : "Die Base DN konnte nicht automatisch erkannt werden, bitte überprüfen Sie Anmeldeinformationen, Host und Port.", "Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte geben Sie sie manuell ein.", "{nthServer}. Server" : "{nthServer}. - Server", - "No object found in the given Base DN. Please revise." : "Keine Objekte in der angegebenen Base DN gefunden, bitte überprüfen.", + "No object found in the given Base DN. Please revise." : "Keine Objekte in der angegebenen Base-DN gefunden, bitte überprüfen.", "More than 1,000 directory entries available." : "Es sind mehr als 1.000 Verzeichniseinträge verfügbar.", " entries available within the provided Base DN" : "Einträge in der angegebenen Base DN verfügbar", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.", diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json index 1e0fbb4cccf..6e7fccb7421 100644 --- a/apps/user_ldap/l10n/de_DE.json +++ b/apps/user_ldap/l10n/de_DE.json @@ -29,7 +29,7 @@ "Base DN could not be auto-detected, please revise credentials, host and port." : "Die Base DN konnte nicht automatisch erkannt werden, bitte überprüfen Sie Anmeldeinformationen, Host und Port.", "Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte geben Sie sie manuell ein.", "{nthServer}. Server" : "{nthServer}. - Server", - "No object found in the given Base DN. Please revise." : "Keine Objekte in der angegebenen Base DN gefunden, bitte überprüfen.", + "No object found in the given Base DN. Please revise." : "Keine Objekte in der angegebenen Base-DN gefunden, bitte überprüfen.", "More than 1,000 directory entries available." : "Es sind mehr als 1.000 Verzeichniseinträge verfügbar.", " entries available within the provided Base DN" : "Einträge in der angegebenen Base DN verfügbar", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.", diff --git a/apps/user_ldap/l10n/lt_LT.js b/apps/user_ldap/l10n/lt_LT.js index c8ef3aaea84..fa9bfa8b255 100644 --- a/apps/user_ldap/l10n/lt_LT.js +++ b/apps/user_ldap/l10n/lt_LT.js @@ -150,6 +150,7 @@ OC.L10N.register( "Group Search Attributes" : "Grupės paieškos atributai", "Group-Member association" : "Grupės-Nario sąsaja", "Dynamic Group Member URL" : "Dinaminio grupės nario URL", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "LDAP atributas, kuris grupės objektuose turi LDAP ieškos URL, nustatantį kokie objektai priklauso grupei. (Tuščias parametras išjungia dinaminės grupės narystės funkciją.)", "Nested Groups" : "Įdėtinės grupės", "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Kai įjungta, yra palaikomos grupes turinčios grupės.(Veikia tik, jei grupės nario atributas turi DN.)", "Enable LDAP password changes per user" : "Įjungti LDAP slaptažodžio keitimus kiekvienam naudotojui.", @@ -164,7 +165,9 @@ OC.L10N.register( "Email Field" : "El. pašto laukas", "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Naudotojų el. paštą nustatykite pagal jų LDAP atributą. Palikite tuščią jei norite, kad veiktų pagal numatytuosius parametrus.", "User Home Folder Naming Rule" : "Naudotojo namų aplanko pavadinimo taisyklė", + "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Palikite tuščią naudotojo vardui (numatytoji reikšmė). Kitu atveju, nurodykite LDAP/AD atributą.", "Internal Username" : "Vidinis naudotojo vardas", + "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. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Pagal nutylėjimą vidinis naudotojo vardas bus sukurtas iš UUID atributo. Tai užtikrina naudotojo vardo unikalumą ir kad nereikia konvertuoti simbolių. Vidinis naudotojo vardas turi apribojimą, leidžiantį tik šiuos simbolius: [a-zA-Z0-9 _. @ -]. Kiti simboliai pakeičiami ASCII atitikmenimis arba tiesiog praleidžiami. Sutapimų konflikto atveju yra pridedamas/padidinamas skaičius. Vidinis naudotojo vardas naudojamas yra naudojamas identifikuoti naudotoją viduje. Tai kartu yra numatytasis vartotojo aplanko pavadinimas. Taip pat tai nuotolinių URL dalis, pavyzdžiui, visoms *DAV paslaugoms. Naudojant šį nustatymą, numatytoji elgsena gali būti panaikinta. Palikite tuščią, jei norite kad galiotų numatytąjį reikšmė. Pakeitimai įtakoja tik naujai priskirtiems (pridedamiems) LDAP vartotojams.", "Internal Username Attribute:" : "Vidinis naudotojo vardo atributas:", "Override UUID detection" : "Perrašyti UUID aptikimą", "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." : "naudotojo vardasnaudotojo vardasPagal nutylėjimą, UUID atributas yra automatiškai aptinkamas. UUID atributas yra naudojamas identifikuoti LDAP vartotojus ir grupes. Taigi, vidinis naudotojo vardas bus sukurtas remiantis UUID, jei nenurodyta kitaip. Jūs galite pakeisti nustatymus ir perduoti pasirinktus atributus. Turite įsitikinti, kad jūsų pasirinktas atributas gali būti rastas tiek prie vartotojų, tiek prie grupių, ir yra unikalus. Jei norite, kad veiktų pagal numatytuosius parametrus, palikite tuščią. Pakeitimai turės įtakos tik naujai susietiems (pridedamiems) LDAP naudotojams ir grupėms.", diff --git a/apps/user_ldap/l10n/lt_LT.json b/apps/user_ldap/l10n/lt_LT.json index 3376dcb7986..5167464235e 100644 --- a/apps/user_ldap/l10n/lt_LT.json +++ b/apps/user_ldap/l10n/lt_LT.json @@ -148,6 +148,7 @@ "Group Search Attributes" : "Grupės paieškos atributai", "Group-Member association" : "Grupės-Nario sąsaja", "Dynamic Group Member URL" : "Dinaminio grupės nario URL", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "LDAP atributas, kuris grupės objektuose turi LDAP ieškos URL, nustatantį kokie objektai priklauso grupei. (Tuščias parametras išjungia dinaminės grupės narystės funkciją.)", "Nested Groups" : "Įdėtinės grupės", "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Kai įjungta, yra palaikomos grupes turinčios grupės.(Veikia tik, jei grupės nario atributas turi DN.)", "Enable LDAP password changes per user" : "Įjungti LDAP slaptažodžio keitimus kiekvienam naudotojui.", @@ -162,7 +163,9 @@ "Email Field" : "El. pašto laukas", "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Naudotojų el. paštą nustatykite pagal jų LDAP atributą. Palikite tuščią jei norite, kad veiktų pagal numatytuosius parametrus.", "User Home Folder Naming Rule" : "Naudotojo namų aplanko pavadinimo taisyklė", + "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Palikite tuščią naudotojo vardui (numatytoji reikšmė). Kitu atveju, nurodykite LDAP/AD atributą.", "Internal Username" : "Vidinis naudotojo vardas", + "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. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Pagal nutylėjimą vidinis naudotojo vardas bus sukurtas iš UUID atributo. Tai užtikrina naudotojo vardo unikalumą ir kad nereikia konvertuoti simbolių. Vidinis naudotojo vardas turi apribojimą, leidžiantį tik šiuos simbolius: [a-zA-Z0-9 _. @ -]. Kiti simboliai pakeičiami ASCII atitikmenimis arba tiesiog praleidžiami. Sutapimų konflikto atveju yra pridedamas/padidinamas skaičius. Vidinis naudotojo vardas naudojamas yra naudojamas identifikuoti naudotoją viduje. Tai kartu yra numatytasis vartotojo aplanko pavadinimas. Taip pat tai nuotolinių URL dalis, pavyzdžiui, visoms *DAV paslaugoms. Naudojant šį nustatymą, numatytoji elgsena gali būti panaikinta. Palikite tuščią, jei norite kad galiotų numatytąjį reikšmė. Pakeitimai įtakoja tik naujai priskirtiems (pridedamiems) LDAP vartotojams.", "Internal Username Attribute:" : "Vidinis naudotojo vardo atributas:", "Override UUID detection" : "Perrašyti UUID aptikimą", "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." : "naudotojo vardasnaudotojo vardasPagal nutylėjimą, UUID atributas yra automatiškai aptinkamas. UUID atributas yra naudojamas identifikuoti LDAP vartotojus ir grupes. Taigi, vidinis naudotojo vardas bus sukurtas remiantis UUID, jei nenurodyta kitaip. Jūs galite pakeisti nustatymus ir perduoti pasirinktus atributus. Turite įsitikinti, kad jūsų pasirinktas atributas gali būti rastas tiek prie vartotojų, tiek prie grupių, ir yra unikalus. Jei norite, kad veiktų pagal numatytuosius parametrus, palikite tuščią. Pakeitimai turės įtakos tik naujai susietiems (pridedamiems) LDAP naudotojams ir grupėms.", diff --git a/apps/user_ldap/l10n/nb.js b/apps/user_ldap/l10n/nb.js index 4232701a65b..09c7931d6e9 100644 --- a/apps/user_ldap/l10n/nb.js +++ b/apps/user_ldap/l10n/nb.js @@ -139,8 +139,8 @@ OC.L10N.register( "Only connect to the replica server." : "Koble til bare Replika-tjeneren.", "Turn off SSL certificate validation." : "Slå av SSL-sertifikat validering", "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." : "Ikke anbefalt, bruk kun for testing! Hvis tilkobling bare virker med dette valget, importer LDAP-tjenerens SSL-sertifikat i %s-tjeneren din.", - "Cache Time-To-Live" : "Levetid i mellomlager", - "in seconds. A change empties the cache." : "i sekunder. En endring tømmer bufferen.", + "Cache Time-To-Live" : "Levetid i hurtiglager", + "in seconds. A change empties the cache." : "i sekunder. En endring tømmer hurtiglageret.", "Directory Settings" : "Innstillinger for katalog", "User Display Name Field" : "Felt med brukerens visningsnavn", "The LDAP attribute to use to generate the user's display name." : "LDAP-attributten som skal brukes til å generere brukerens visningsnavn.", @@ -184,7 +184,7 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID-attributt for brukere:", "UUID Attribute for Groups:" : "UUID-attributt for grupper:", "Username-LDAP User Mapping" : "Tilknytning av brukernavn til LDAP-bruker", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an 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." : "Brukernavn brukes til å lagre og tilordne (meta)data. For at brukere skal identifiseres og gjenkjennes presist, vil hver LDAP-bruker ha et internt brukernavn. Dette krever en tilknytning fra brukernavn til LDAP-bruker. Brukernavn som opprettes blir knyttet til LDAP-brukerens UUID. I tillegg mellomlagres DN for å redusere LDAP-kommunikasjon, men det brukes ikke til identifisering. Hvis DN endres vil endringene bli oppdaget. Det interne brukernavnet brukes alle steder. Nullstilling av tilknytningene vil etterlate seg rester overalt. Nullstilling av tilknytningene skjer ikke pr. konfigurasjon, det påvirker alle LDAP-konfigurasjoner! Nullstill aldri tilknytningene i et produksjonsmiljø, kun ved testing eller eksperimentering.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an 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." : "Brukernavn brukes til å lagre og tilordne (meta)data. For at brukere skal identifiseres og gjenkjennes presist, vil hver LDAP-bruker ha et internt brukernavn. Dette krever en tilknytning fra brukernavn til LDAP-bruker. Brukernavn som opprettes blir knyttet til LDAP-brukerens UUID. I tillegg hurtiglagres DN for å redusere LDAP-kommunikasjon, men det brukes ikke til identifisering. Hvis DN endres vil endringene bli oppdaget. Det interne brukernavnet brukes alle steder. Nullstilling av tilknytningene vil etterlate seg rester overalt. Nullstilling av tilknytningene skjer ikke pr. oppsett, det påvirker alle LDAP-oppsett! Nullstill aldri tilknytningene i et produksjonsmiljø, kun ved testing eller eksperimentering.", "Clear Username-LDAP User Mapping" : "Nullstill tilknytning av brukernavn til LDAP-bruker", "Clear Groupname-LDAP Group Mapping" : "Nullstill tilknytning av gruppenavn til LDAP-gruppe", "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Plassholder %uid mangler. Den erstattes av påloggingsnavnet ved spørring mot LDAP / AD.", diff --git a/apps/user_ldap/l10n/nb.json b/apps/user_ldap/l10n/nb.json index 2b6ec9f4a80..f4f314fb523 100644 --- a/apps/user_ldap/l10n/nb.json +++ b/apps/user_ldap/l10n/nb.json @@ -137,8 +137,8 @@ "Only connect to the replica server." : "Koble til bare Replika-tjeneren.", "Turn off SSL certificate validation." : "Slå av SSL-sertifikat validering", "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." : "Ikke anbefalt, bruk kun for testing! Hvis tilkobling bare virker med dette valget, importer LDAP-tjenerens SSL-sertifikat i %s-tjeneren din.", - "Cache Time-To-Live" : "Levetid i mellomlager", - "in seconds. A change empties the cache." : "i sekunder. En endring tømmer bufferen.", + "Cache Time-To-Live" : "Levetid i hurtiglager", + "in seconds. A change empties the cache." : "i sekunder. En endring tømmer hurtiglageret.", "Directory Settings" : "Innstillinger for katalog", "User Display Name Field" : "Felt med brukerens visningsnavn", "The LDAP attribute to use to generate the user's display name." : "LDAP-attributten som skal brukes til å generere brukerens visningsnavn.", @@ -182,7 +182,7 @@ "UUID Attribute for Users:" : "UUID-attributt for brukere:", "UUID Attribute for Groups:" : "UUID-attributt for grupper:", "Username-LDAP User Mapping" : "Tilknytning av brukernavn til LDAP-bruker", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an 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." : "Brukernavn brukes til å lagre og tilordne (meta)data. For at brukere skal identifiseres og gjenkjennes presist, vil hver LDAP-bruker ha et internt brukernavn. Dette krever en tilknytning fra brukernavn til LDAP-bruker. Brukernavn som opprettes blir knyttet til LDAP-brukerens UUID. I tillegg mellomlagres DN for å redusere LDAP-kommunikasjon, men det brukes ikke til identifisering. Hvis DN endres vil endringene bli oppdaget. Det interne brukernavnet brukes alle steder. Nullstilling av tilknytningene vil etterlate seg rester overalt. Nullstilling av tilknytningene skjer ikke pr. konfigurasjon, det påvirker alle LDAP-konfigurasjoner! Nullstill aldri tilknytningene i et produksjonsmiljø, kun ved testing eller eksperimentering.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an 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." : "Brukernavn brukes til å lagre og tilordne (meta)data. For at brukere skal identifiseres og gjenkjennes presist, vil hver LDAP-bruker ha et internt brukernavn. Dette krever en tilknytning fra brukernavn til LDAP-bruker. Brukernavn som opprettes blir knyttet til LDAP-brukerens UUID. I tillegg hurtiglagres DN for å redusere LDAP-kommunikasjon, men det brukes ikke til identifisering. Hvis DN endres vil endringene bli oppdaget. Det interne brukernavnet brukes alle steder. Nullstilling av tilknytningene vil etterlate seg rester overalt. Nullstilling av tilknytningene skjer ikke pr. oppsett, det påvirker alle LDAP-oppsett! Nullstill aldri tilknytningene i et produksjonsmiljø, kun ved testing eller eksperimentering.", "Clear Username-LDAP User Mapping" : "Nullstill tilknytning av brukernavn til LDAP-bruker", "Clear Groupname-LDAP Group Mapping" : "Nullstill tilknytning av gruppenavn til LDAP-gruppe", "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Plassholder %uid mangler. Den erstattes av påloggingsnavnet ved spørring mot LDAP / AD.", diff --git a/apps/user_ldap/l10n/sr.js b/apps/user_ldap/l10n/sr.js index baf33ae64dd..1f47189d31d 100644 --- a/apps/user_ldap/l10n/sr.js +++ b/apps/user_ldap/l10n/sr.js @@ -2,17 +2,25 @@ OC.L10N.register( "user_ldap", { "Failed to clear the mappings." : "Неуспело чишћење мапирања.", - "Failed to delete the server configuration" : "Неуспело брисање поставе сервера", - "The configuration is invalid: anonymous bind is not allowed." : "Неисправна подешавања. Анонимна веза није дозвољена.", - "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." : "Конфигурација је важећа, али Bind није успео. Проверите подешавања сервера и акредитиве.", - "The configuration is invalid. Please have a look at the logs for further details." : "Конфигурација је неисправна. Погледајте у дневнику записа за додатне детаље.", + "Failed to delete the server configuration" : "Неуспело брисање конфигурације сервера", + "Invalid configuration: Anonymous binding is not allowed." : "Неисправна конфигурација: Анонимно везивање није дозвољено.", + "Valid configuration, connection established!" : "Исправна конфигурација, веза успостављена!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Исправна конфигурација, али везивање није успело. Проверите поставке сервера и акредитиве.", + "Invalid configuration. 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", "Action does not exist" : "Радња не постоји", + "LDAP user and group backend" : "Позадински мотор за LDAP корисника и групу", + "Renewing …" : "Обнављам …", + "Very weak password" : "Веома слаба лозинка", + "Weak password" : "Слаба лозинка", + "So-so password" : "Осредња лозинка", + "Good password" : "Добра лозинка", + "Strong password" : "Јака лозинка", "The Base DN appears to be wrong" : "Базни ДН је изгледа погрешан", + "Testing configuration…" : "Тестирам конфигурацију…", "Configuration incorrect" : "Конфигурација је неисправна", "Configuration incomplete" : "Конфигурација није комплетна", "Configuration OK" : "Конфигурација је у реду", @@ -32,24 +40,32 @@ OC.L10N.register( "Mappings cleared successfully!" : "Мапирања успешно очишћена!", "Error while clearing the mappings." : "Грешка при чишћењу мапирања.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Анонимно везивање није дозвољено. Дајте кориснички ДН и лозинку.", - "LDAP Operations error. Anonymous bind might not be allowed." : "Грешка ЛДАП радње. Анонимна веза можда није дозвољена.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Грешка LDAP радње. Анонимна веза можда није дозвољена.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Упис није успео. Проверите да је база у функцији. Поново учитајте пре настављања.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Пребацивање режима укључиће аутоматске ЛДАП упите. Зависно од ЛДАП величине то може потрајати. Заиста желите да промените режим?", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Пребацивање режима укључиће аутоматске LDAP упите. Зависно од LDAP величине то може потрајати. Заиста желите да промените режим?", "Mode switch" : "Промена режима", "Select attributes" : "Изаберите атрибуте", - "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Корисник није нађен. Проверите пријавне атрибуте и корисничко име. Важећи филтер (за копирај-налепи за оверу командне линије): <br/>", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Корисник није нађен. Проверите атрибуте пријаве и корисничко име. Ефективни филтер (да копирате и налепите за верификацију у конзоли):<br/>", "User found and settings verified." : "Корисник нађен и поставке проверене.", - "An unspecified error occurred. Please check the settings and the log." : "Десила се неодређана грешка. Проверите поставке и записник.", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Размислите и да смањите претрагу, пошто обухвата много корисника, од којих ће само први моћи да се пријави.", + "An unspecified error occurred. Please check log and settings." : "Десила се непозната грешка. Погледајте дневник и подешавања.", "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Филтер претраге је неисправан, вероватно због синтаксе попут неједнаког броја отворених и затворених заграда. Проверите.", - "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Дошло је до грешке ЛДАП / АД везе. Проверите домаћина, порт и акредитиве.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Дошло је до грешке LDAP / AD везе. Проверите домаћина, порт и акредитиве.", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "\"%uid\" резервисано поље недостаје. Биће замењено са корисничким именом када се ради упит над LDAP / AD-ом.", "Please provide a login name to test against" : "Наведите пријавно име за тест са", - "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Поље групе је искључено јер ЛДАП / АД сервер не подржава припадност групи.", - "_%s group found_::_%s groups found_" : ["нађена %s група","нађене %s групе","нађено %s група"], - "_%s user found_::_%s users found_" : ["нађен %s корисник","нађена %s корисника","нађено %s корисника"], - "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Немогу да откријем особину приказивања корисниковог имена. Наведите је у напредним поставкама LDAP-a", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Поље групе је искључено јер LDAP / AD сервер не подржава припадност групи.", + "Password change rejected. Hint: " : "Промена лозинке није прихваћена. Смерница:", + "Please login with the new password" : "Пријавите се са новом лозинком", + "Your password will expire tomorrow." : "Ваша лозинка ће истећи сутра.", + "Your password will expire today." : "Ваша лозинка ће истећи данас.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Ваша лозинка ће истећи за %n дан.","Ваша лозинка ће истећи за %n дана.","Ваша лозинка ће истећи за %n дана."], + "LDAP / AD integration" : "LDAP / AD интеграција", + "_%s group found_::_%s groups found_" : ["нађена %s група","нађене %s групе","Нађено %s група"], + "_%s user found_::_%s users found_" : ["нађен %s корисник","нађена %s корисника","Нађено %s корисника"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "Не могу да пронађем атрибут имена за приказ корисника. Молимо сами га наведите у LDAP напредним подешавањима.", "Could not find the desired feature" : "Не могу да пронађем жељену особину", "Invalid Host" : "Неисправан домаћин", - "Test Configuration" : "Испробај поставу", + "Test Configuration" : "Испробај поставку", "Help" : "Помоћ", "Groups meeting these criteria are available in %s:" : "Групе које испуњавају ове критеријуме су доступне у %s:", "Only these object classes:" : "Само ове класе објеката:", @@ -57,40 +73,54 @@ OC.L10N.register( "Search groups" : "Претражи групе", "Available groups" : "Доступне групе", "Selected groups" : "Изабране групе", - "Edit LDAP Query" : "Уреди ЛДАП упит", - "LDAP Filter:" : "ЛДАП филтер:", + "Edit LDAP Query" : "Уреди LDAP упит", + "LDAP Filter:" : "LDAP филтер:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Филтер прецизира које ће LDAP групе требају имати приступ %s случају.", + "Verify settings and count the groups" : "Верификуј поставке и преброј групе", "When logging in, %s will find the user based on the following attributes:" : "При пријављивању, %s ће пронаћи корисника на основу следећих атрибута:", - "LDAP / AD Username:" : "ЛДАП / АД корисничко име:", - "LDAP / AD Email Address:" : "ЛДАП / АД е-адреса:", - "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Дозволи пријаву уз атрибут е-поште. Mail и mailPrimaryAddress биће дозвољени.", - "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\"", + "LDAP / AD Username:" : "LDAP / AD корисничко име:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Дозволи пријављивање преко LDAP / AD корисничког имена, које је или \"uid\" или \"sAMAccountName\" и биће детектовано.", + "LDAP / AD Email Address:" : "LDAP / AD адреса е-поште:", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Дозволи пријављивање преко атрибута адресе е-поште. \"mail\" и \"mailPrimaryAddress\" су дозвољени.", + "Other Attributes:" : "Остали атрибути:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Дефинише филтер који ће се применити, када се покуша пријава. \"%%uid\" замењује корисничко име у пријави. Example: \"uid=%%uid\"", "Test Loginname" : "Испробај име за пријаву", "Verify settings" : "Провери поставке", "1. Server" : "1. сервер", "%s. Server:" : "%s. Сервер:", + "Add a new configuration" : "Додај нову поставку", "Copy current configuration into new directory binding" : "Копирај тренутну поставу у везивање новог директоријума", "Delete the current configuration" : "Обриши тренутне поставке", "Host" : "Домаћин", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Можете да изоставите протокол, осим ако не захтевате SSL. Ако је потребан, почните са ldaps://", "Port" : "Порт", "Detect 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 и лозинка празним.", "Password" : "Лозинка", "For anonymous access, leave DN and Password empty." : "За анониман приступ, оставите поља DN и лозинка празним.", - "One Base DN per line" : "Једна Base DN по линији", + "One Base DN per line" : "Један Base DN по линији", "You can specify Base DN for users and groups in the Advanced tab" : "Можете навести Base DN за кориснике и групе у картици Напредно", - "Detect Base DN" : "Откриј базни ДН", - "Test Base DN" : "Тестирај базни ДН", + "Detect Base DN" : "Откриј Base DN", + "Test Base DN" : "Тестирај Base DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Избегава аутоматске LDAP захтеве. Боље за веће поставке, али тражи мало више познавања LDAP-а.", "Manually enter LDAP filters (recommended for large directories)" : "Унесите ручно LDAP филтере (препоручено за велике директоријуме)", + "Listing and searching for users is constrained by these criteria:" : "Излиставање и претраживање корисника је ограничено следећим условима:", "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Најчешће класе објеката за кориснике су organizationalPerson, person, user и inetOrgPerson. Ако нисте сигурни шта да изаберете, питајте администратора именика.", "The filter specifies which LDAP users shall have access to the %s instance." : "Филтер одређује који ЛДАП корисници ће имати приступ на %s.", "Verify settings and count users" : "Провери поставке и преброј кориснике", "Saving" : "Снимам", "Back" : "Назад", "Continue" : "Настави", + "Please renew your password." : "Молимо обновите Вашу лозинку.", + "An internal error occurred." : "Догодила се интерна грешка.", + "Please try again or contact your administrator." : "Покушајте поново или контактирајте администратора.", + "Current password" : "Тренутна лозинка", + "New password" : "Нова лозинка", + "Renew password" : "Обнови лозинку", + "Wrong password. Reset it?" : "Погрешна лозинка. Желите ли да је ресетујете?", + "Wrong password." : "Лоша лозинка.", + "Cancel" : "Одустани", "LDAP" : "LDAP", "Server" : "Сервер", "Users" : "Корисници", @@ -98,22 +128,24 @@ OC.L10N.register( "Groups" : "Групе", "Expert" : "Стручњак", "Advanced" : "Напредно", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Упозорење:</b> ПХП ЛДАП модул није инсталиран и зачеље неће радити. Питајте систем администратора да га инсталира.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Упозорење:</b> PHP LDAP модул није инсталиран и зачеље неће радити. Питајте систем администратора да га инсталира.", "Connection Settings" : "Поставке везе", "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." : "Наведите опционог домаћина за резервне копије. Он мора бити реплика главног ЛДАП/АД сервера.", + "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." : "Повезано само на сервер за копирање.", - "Turn off SSL certificate validation." : "Искључите потврду ССЛ сертификата.", + "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" : "Трајност кеша", "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 особина за стварање имена за приказ корисника.", + "The LDAP attribute to use to generate the user's display name." : "LDAP атрибут за стварање имена за приказ корисника.", + "2nd User Display Name Field" : "2. поље за приказ имена корисника", + "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Опционо. LDAP атрибут који се додаје на име у заградама. Коначно име за приказ ће бити нешто попут »Петар Петровић (pera@example.org)«.", "Base User Tree" : "Основно стабло корисника", "One User Base DN per line" : "Један Корисников јединствени назив DN по линији", "User Search Attributes" : "Параметри претраге корисника", @@ -124,17 +156,28 @@ OC.L10N.register( "One Group Base DN per line" : "Један Групни јединствени назив DN по линији", "Group Search Attributes" : "Параметри претраге група", "Group-Member association" : "Придруживање чланова у групу", + "Dynamic Group Member URL" : "Динамична адреса члана групе", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "LDAP атрибут који на групном објекту садржи адресу LDAP претраге којом се одређује да ли објекат припада групи. (празно подешавање искључује могућност динамичких припадности групама.) ", "Nested Groups" : "Угнеждене групе", "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Када је укључено, подржане су групе унутар групе. (Ради само ако особина члана групе садржи DN-ове.)", "Paging chunksize" : "Величина делића странице", "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Величина делића се користи за страничење ЛДАП претрага које могу вратити гомилу резултата попут набрајања корисника или група. (постављање на 0 у таквим ситуацијама искључује приказ претраге по страницама)", + "Enable LDAP password changes per user" : "Укључи промену LDAP лозинке по кориснику", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Дозволи LDAP корисницима да мењају своју лозинку и дозволи супер администраторима и администраторима група да мењају лозинке њихових LDAP корисника. Ради само када је контрола права приступа подешена према LDAP серверу. Пошто се лозинке шаљу као обичан тест ка LDAP серверу, мора се користити протокол са шифровањем, као и укључивање хеширања на LDAP серверу.", + "(New password is sent as plain text to LDAP)" : "(нова лозинка се шаље као обичан текст на LDAP)", + "Default password policy DN" : "Подразумевана политика промене DN лозинки", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Подразумевана политика промене лозинки ће се користити када лозинка истиче. Може се користити само када се укључи промена лозинке по кориснику и подржава је само OpenLDAP. Оставите празно да искључите шта се дешава када лозинка истиче.", "Special Attributes" : "Посебни параметри", "Quota Field" : "Поље квоте", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Оставите празно за подразумевану квоту корисника. У супротном, ставите LDAP/AD атрибут.", "Quota Default" : "Подразумевана квота", - "Email Field" : "Поље е-поште", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Редефинише подразумевану квоту за LDAP кориснике који немају постављену квоту у Quota пољу.", + "Email Field" : "Поље адресе е-поште", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Поставља адресу е-поште корисника из LDAP атрибута. Оставите празно за подразумевано понашање.", "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. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Подразумевано се интерно корисничко име креира од UUID атрибута. Тиме се гарантује да се корисничко име јединствено и да карактери не морају да се конвертују. Интерно корисничко име има ограничења да су дозвољени само следећи карактери: [ a-zA-Z0-9_.@- ]. Остали карактери ће или бити замењени ASCII еквивалентима или ће бити прескочени. Ако се деси поклапање са постојећим корисничким именом, додаће се број на крај имена. Интерно корисничко име се користи да идентификује корисника интерно. Такође се користи и као подразумевано име за име корисничку фасцикле, а и део је удаљених адреса, нпр. свих *DAV сервиса. Уз помоћ овог подешавања, може да се промени подразумевано понашање. Оставите га празним за подразумевано понашање. Промене ће се тицати само новомапираних (додатих) 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-a, ако није другачије назначено. Можете заобићи поставке и проследити други атрибут по вашем избору. Морате бити сигурни да је изабрани атрибут јединствен и да га корисници и групе могу преносити. Оставите празно за подразумевано понашање. Промене ће имати дејство само на новомапираним (доданим) LDAP корисницима и групама.", @@ -146,7 +189,6 @@ OC.L10N.register( "Clear Groupname-LDAP Group Mapping" : "Очисти Groupname-LDAP мапирање група", "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Недостаје %uid местодржач. Биће замењен са пријавним именом при ЛДАП / АД упиту.", "Verify settings and count groups" : "Провери поставке и преброј групе", - "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Дозволи пријаву уз ЛДАП / АД корисичко име које је или uid или samaccountname и биће откривено.", "Add a new and blank configuration" : "Додај нову празну поставу", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Можете да изоставите протокол, осим ако захтевате ССЛ. У том случају почните са ldaps://", "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Упозорење:</b> Апликације user_ldap и user_webdavauth нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих.", diff --git a/apps/user_ldap/l10n/sr.json b/apps/user_ldap/l10n/sr.json index a9ad3314d7a..c3787ce0909 100644 --- a/apps/user_ldap/l10n/sr.json +++ b/apps/user_ldap/l10n/sr.json @@ -1,16 +1,24 @@ { "translations": { "Failed to clear the mappings." : "Неуспело чишћење мапирања.", - "Failed to delete the server configuration" : "Неуспело брисање поставе сервера", - "The configuration is invalid: anonymous bind is not allowed." : "Неисправна подешавања. Анонимна веза није дозвољена.", - "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." : "Конфигурација је важећа, али Bind није успео. Проверите подешавања сервера и акредитиве.", - "The configuration is invalid. Please have a look at the logs for further details." : "Конфигурација је неисправна. Погледајте у дневнику записа за додатне детаље.", + "Failed to delete the server configuration" : "Неуспело брисање конфигурације сервера", + "Invalid configuration: Anonymous binding is not allowed." : "Неисправна конфигурација: Анонимно везивање није дозвољено.", + "Valid configuration, connection established!" : "Исправна конфигурација, веза успостављена!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Исправна конфигурација, али везивање није успело. Проверите поставке сервера и акредитиве.", + "Invalid configuration. 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", "Action does not exist" : "Радња не постоји", + "LDAP user and group backend" : "Позадински мотор за LDAP корисника и групу", + "Renewing …" : "Обнављам …", + "Very weak password" : "Веома слаба лозинка", + "Weak password" : "Слаба лозинка", + "So-so password" : "Осредња лозинка", + "Good password" : "Добра лозинка", + "Strong password" : "Јака лозинка", "The Base DN appears to be wrong" : "Базни ДН је изгледа погрешан", + "Testing configuration…" : "Тестирам конфигурацију…", "Configuration incorrect" : "Конфигурација је неисправна", "Configuration incomplete" : "Конфигурација није комплетна", "Configuration OK" : "Конфигурација је у реду", @@ -30,24 +38,32 @@ "Mappings cleared successfully!" : "Мапирања успешно очишћена!", "Error while clearing the mappings." : "Грешка при чишћењу мапирања.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Анонимно везивање није дозвољено. Дајте кориснички ДН и лозинку.", - "LDAP Operations error. Anonymous bind might not be allowed." : "Грешка ЛДАП радње. Анонимна веза можда није дозвољена.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Грешка LDAP радње. Анонимна веза можда није дозвољена.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Упис није успео. Проверите да је база у функцији. Поново учитајте пре настављања.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Пребацивање режима укључиће аутоматске ЛДАП упите. Зависно од ЛДАП величине то може потрајати. Заиста желите да промените режим?", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Пребацивање режима укључиће аутоматске LDAP упите. Зависно од LDAP величине то може потрајати. Заиста желите да промените режим?", "Mode switch" : "Промена режима", "Select attributes" : "Изаберите атрибуте", - "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Корисник није нађен. Проверите пријавне атрибуте и корисничко име. Важећи филтер (за копирај-налепи за оверу командне линије): <br/>", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Корисник није нађен. Проверите атрибуте пријаве и корисничко име. Ефективни филтер (да копирате и налепите за верификацију у конзоли):<br/>", "User found and settings verified." : "Корисник нађен и поставке проверене.", - "An unspecified error occurred. Please check the settings and the log." : "Десила се неодређана грешка. Проверите поставке и записник.", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Размислите и да смањите претрагу, пошто обухвата много корисника, од којих ће само први моћи да се пријави.", + "An unspecified error occurred. Please check log and settings." : "Десила се непозната грешка. Погледајте дневник и подешавања.", "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Филтер претраге је неисправан, вероватно због синтаксе попут неједнаког броја отворених и затворених заграда. Проверите.", - "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Дошло је до грешке ЛДАП / АД везе. Проверите домаћина, порт и акредитиве.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Дошло је до грешке LDAP / AD везе. Проверите домаћина, порт и акредитиве.", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "\"%uid\" резервисано поље недостаје. Биће замењено са корисничким именом када се ради упит над LDAP / AD-ом.", "Please provide a login name to test against" : "Наведите пријавно име за тест са", - "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Поље групе је искључено јер ЛДАП / АД сервер не подржава припадност групи.", - "_%s group found_::_%s groups found_" : ["нађена %s група","нађене %s групе","нађено %s група"], - "_%s user found_::_%s users found_" : ["нађен %s корисник","нађена %s корисника","нађено %s корисника"], - "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Немогу да откријем особину приказивања корисниковог имена. Наведите је у напредним поставкама LDAP-a", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Поље групе је искључено јер LDAP / AD сервер не подржава припадност групи.", + "Password change rejected. Hint: " : "Промена лозинке није прихваћена. Смерница:", + "Please login with the new password" : "Пријавите се са новом лозинком", + "Your password will expire tomorrow." : "Ваша лозинка ће истећи сутра.", + "Your password will expire today." : "Ваша лозинка ће истећи данас.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Ваша лозинка ће истећи за %n дан.","Ваша лозинка ће истећи за %n дана.","Ваша лозинка ће истећи за %n дана."], + "LDAP / AD integration" : "LDAP / AD интеграција", + "_%s group found_::_%s groups found_" : ["нађена %s група","нађене %s групе","Нађено %s група"], + "_%s user found_::_%s users found_" : ["нађен %s корисник","нађена %s корисника","Нађено %s корисника"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "Не могу да пронађем атрибут имена за приказ корисника. Молимо сами га наведите у LDAP напредним подешавањима.", "Could not find the desired feature" : "Не могу да пронађем жељену особину", "Invalid Host" : "Неисправан домаћин", - "Test Configuration" : "Испробај поставу", + "Test Configuration" : "Испробај поставку", "Help" : "Помоћ", "Groups meeting these criteria are available in %s:" : "Групе које испуњавају ове критеријуме су доступне у %s:", "Only these object classes:" : "Само ове класе објеката:", @@ -55,40 +71,54 @@ "Search groups" : "Претражи групе", "Available groups" : "Доступне групе", "Selected groups" : "Изабране групе", - "Edit LDAP Query" : "Уреди ЛДАП упит", - "LDAP Filter:" : "ЛДАП филтер:", + "Edit LDAP Query" : "Уреди LDAP упит", + "LDAP Filter:" : "LDAP филтер:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Филтер прецизира које ће LDAP групе требају имати приступ %s случају.", + "Verify settings and count the groups" : "Верификуј поставке и преброј групе", "When logging in, %s will find the user based on the following attributes:" : "При пријављивању, %s ће пронаћи корисника на основу следећих атрибута:", - "LDAP / AD Username:" : "ЛДАП / АД корисничко име:", - "LDAP / AD Email Address:" : "ЛДАП / АД е-адреса:", - "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Дозволи пријаву уз атрибут е-поште. Mail и mailPrimaryAddress биће дозвољени.", - "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\"", + "LDAP / AD Username:" : "LDAP / AD корисничко име:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Дозволи пријављивање преко LDAP / AD корисничког имена, које је или \"uid\" или \"sAMAccountName\" и биће детектовано.", + "LDAP / AD Email Address:" : "LDAP / AD адреса е-поште:", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Дозволи пријављивање преко атрибута адресе е-поште. \"mail\" и \"mailPrimaryAddress\" су дозвољени.", + "Other Attributes:" : "Остали атрибути:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Дефинише филтер који ће се применити, када се покуша пријава. \"%%uid\" замењује корисничко име у пријави. Example: \"uid=%%uid\"", "Test Loginname" : "Испробај име за пријаву", "Verify settings" : "Провери поставке", "1. Server" : "1. сервер", "%s. Server:" : "%s. Сервер:", + "Add a new configuration" : "Додај нову поставку", "Copy current configuration into new directory binding" : "Копирај тренутну поставу у везивање новог директоријума", "Delete the current configuration" : "Обриши тренутне поставке", "Host" : "Домаћин", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Можете да изоставите протокол, осим ако не захтевате SSL. Ако је потребан, почните са ldaps://", "Port" : "Порт", "Detect 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 и лозинка празним.", "Password" : "Лозинка", "For anonymous access, leave DN and Password empty." : "За анониман приступ, оставите поља DN и лозинка празним.", - "One Base DN per line" : "Једна Base DN по линији", + "One Base DN per line" : "Један Base DN по линији", "You can specify Base DN for users and groups in the Advanced tab" : "Можете навести Base DN за кориснике и групе у картици Напредно", - "Detect Base DN" : "Откриј базни ДН", - "Test Base DN" : "Тестирај базни ДН", + "Detect Base DN" : "Откриј Base DN", + "Test Base DN" : "Тестирај Base DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Избегава аутоматске LDAP захтеве. Боље за веће поставке, али тражи мало више познавања LDAP-а.", "Manually enter LDAP filters (recommended for large directories)" : "Унесите ручно LDAP филтере (препоручено за велике директоријуме)", + "Listing and searching for users is constrained by these criteria:" : "Излиставање и претраживање корисника је ограничено следећим условима:", "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Најчешће класе објеката за кориснике су organizationalPerson, person, user и inetOrgPerson. Ако нисте сигурни шта да изаберете, питајте администратора именика.", "The filter specifies which LDAP users shall have access to the %s instance." : "Филтер одређује који ЛДАП корисници ће имати приступ на %s.", "Verify settings and count users" : "Провери поставке и преброј кориснике", "Saving" : "Снимам", "Back" : "Назад", "Continue" : "Настави", + "Please renew your password." : "Молимо обновите Вашу лозинку.", + "An internal error occurred." : "Догодила се интерна грешка.", + "Please try again or contact your administrator." : "Покушајте поново или контактирајте администратора.", + "Current password" : "Тренутна лозинка", + "New password" : "Нова лозинка", + "Renew password" : "Обнови лозинку", + "Wrong password. Reset it?" : "Погрешна лозинка. Желите ли да је ресетујете?", + "Wrong password." : "Лоша лозинка.", + "Cancel" : "Одустани", "LDAP" : "LDAP", "Server" : "Сервер", "Users" : "Корисници", @@ -96,22 +126,24 @@ "Groups" : "Групе", "Expert" : "Стручњак", "Advanced" : "Напредно", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Упозорење:</b> ПХП ЛДАП модул није инсталиран и зачеље неће радити. Питајте систем администратора да га инсталира.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Упозорење:</b> PHP LDAP модул није инсталиран и зачеље неће радити. Питајте систем администратора да га инсталира.", "Connection Settings" : "Поставке везе", "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." : "Наведите опционог домаћина за резервне копије. Он мора бити реплика главног ЛДАП/АД сервера.", + "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." : "Повезано само на сервер за копирање.", - "Turn off SSL certificate validation." : "Искључите потврду ССЛ сертификата.", + "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" : "Трајност кеша", "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 особина за стварање имена за приказ корисника.", + "The LDAP attribute to use to generate the user's display name." : "LDAP атрибут за стварање имена за приказ корисника.", + "2nd User Display Name Field" : "2. поље за приказ имена корисника", + "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Опционо. LDAP атрибут који се додаје на име у заградама. Коначно име за приказ ће бити нешто попут »Петар Петровић (pera@example.org)«.", "Base User Tree" : "Основно стабло корисника", "One User Base DN per line" : "Један Корисников јединствени назив DN по линији", "User Search Attributes" : "Параметри претраге корисника", @@ -122,17 +154,28 @@ "One Group Base DN per line" : "Један Групни јединствени назив DN по линији", "Group Search Attributes" : "Параметри претраге група", "Group-Member association" : "Придруживање чланова у групу", + "Dynamic Group Member URL" : "Динамична адреса члана групе", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "LDAP атрибут који на групном објекту садржи адресу LDAP претраге којом се одређује да ли објекат припада групи. (празно подешавање искључује могућност динамичких припадности групама.) ", "Nested Groups" : "Угнеждене групе", "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Када је укључено, подржане су групе унутар групе. (Ради само ако особина члана групе садржи DN-ове.)", "Paging chunksize" : "Величина делића странице", "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Величина делића се користи за страничење ЛДАП претрага које могу вратити гомилу резултата попут набрајања корисника или група. (постављање на 0 у таквим ситуацијама искључује приказ претраге по страницама)", + "Enable LDAP password changes per user" : "Укључи промену LDAP лозинке по кориснику", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Дозволи LDAP корисницима да мењају своју лозинку и дозволи супер администраторима и администраторима група да мењају лозинке њихових LDAP корисника. Ради само када је контрола права приступа подешена према LDAP серверу. Пошто се лозинке шаљу као обичан тест ка LDAP серверу, мора се користити протокол са шифровањем, као и укључивање хеширања на LDAP серверу.", + "(New password is sent as plain text to LDAP)" : "(нова лозинка се шаље као обичан текст на LDAP)", + "Default password policy DN" : "Подразумевана политика промене DN лозинки", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Подразумевана политика промене лозинки ће се користити када лозинка истиче. Може се користити само када се укључи промена лозинке по кориснику и подржава је само OpenLDAP. Оставите празно да искључите шта се дешава када лозинка истиче.", "Special Attributes" : "Посебни параметри", "Quota Field" : "Поље квоте", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Оставите празно за подразумевану квоту корисника. У супротном, ставите LDAP/AD атрибут.", "Quota Default" : "Подразумевана квота", - "Email Field" : "Поље е-поште", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Редефинише подразумевану квоту за LDAP кориснике који немају постављену квоту у Quota пољу.", + "Email Field" : "Поље адресе е-поште", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Поставља адресу е-поште корисника из LDAP атрибута. Оставите празно за подразумевано понашање.", "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. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Подразумевано се интерно корисничко име креира од UUID атрибута. Тиме се гарантује да се корисничко име јединствено и да карактери не морају да се конвертују. Интерно корисничко име има ограничења да су дозвољени само следећи карактери: [ a-zA-Z0-9_.@- ]. Остали карактери ће или бити замењени ASCII еквивалентима или ће бити прескочени. Ако се деси поклапање са постојећим корисничким именом, додаће се број на крај имена. Интерно корисничко име се користи да идентификује корисника интерно. Такође се користи и као подразумевано име за име корисничку фасцикле, а и део је удаљених адреса, нпр. свих *DAV сервиса. Уз помоћ овог подешавања, може да се промени подразумевано понашање. Оставите га празним за подразумевано понашање. Промене ће се тицати само новомапираних (додатих) 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-a, ако није другачије назначено. Можете заобићи поставке и проследити други атрибут по вашем избору. Морате бити сигурни да је изабрани атрибут јединствен и да га корисници и групе могу преносити. Оставите празно за подразумевано понашање. Промене ће имати дејство само на новомапираним (доданим) LDAP корисницима и групама.", @@ -144,7 +187,6 @@ "Clear Groupname-LDAP Group Mapping" : "Очисти Groupname-LDAP мапирање група", "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Недостаје %uid местодржач. Биће замењен са пријавним именом при ЛДАП / АД упиту.", "Verify settings and count groups" : "Провери поставке и преброј групе", - "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Дозволи пријаву уз ЛДАП / АД корисичко име које је или uid или samaccountname и биће откривено.", "Add a new and blank configuration" : "Додај нову празну поставу", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Можете да изоставите протокол, осим ако захтевате ССЛ. У том случају почните са ldaps://", "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Упозорење:</b> Апликације user_ldap и user_webdavauth нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих.", diff --git a/apps/user_ldap/lib/Command/Search.php b/apps/user_ldap/lib/Command/Search.php index 463ad2eaeb4..d348d5b31c9 100644 --- a/apps/user_ldap/lib/Command/Search.php +++ b/apps/user_ldap/lib/Command/Search.php @@ -120,7 +120,13 @@ class Search extends Command { $limit = null; } } else { - $proxy = new User_Proxy($configPrefixes, $ldapWrapper, $this->ocConfig, \OC::$server->getNotificationManager()); + $proxy = new User_Proxy( + $configPrefixes, + $ldapWrapper, + $this->ocConfig, + \OC::$server->getNotificationManager(), + \OC::$server->getUserSession() + ); $getMethod = 'getDisplayNames'; $printID = true; } diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php index 83b2f05f1d2..891ab7f0a3a 100644 --- a/apps/user_ldap/lib/Helper.php +++ b/apps/user_ldap/lib/Helper.php @@ -294,9 +294,10 @@ class Helper { $ldapWrapper = new LDAP(); $ocConfig = \OC::$server->getConfig(); $notificationManager = \OC::$server->getNotificationManager(); + $userSession = \OC::$server->getUserSession(); $userBackend = new User_Proxy( - $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager + $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager, $userSession ); $uid = $userBackend->loginName2UserName($param['uid'] ); if($uid !== false) { diff --git a/apps/user_ldap/lib/Jobs/CleanUp.php b/apps/user_ldap/lib/Jobs/CleanUp.php index a4dd4ba32ad..44e8f5469f1 100644 --- a/apps/user_ldap/lib/Jobs/CleanUp.php +++ b/apps/user_ldap/lib/Jobs/CleanUp.php @@ -99,7 +99,8 @@ class CleanUp extends TimedJob { $this->ldapHelper->getServerConfigurationPrefixes(true), new LDAP(), $this->ocConfig, - \OC::$server->getNotificationManager() + \OC::$server->getNotificationManager(), + \OC::$server->getUserSession() ); } diff --git a/apps/user_ldap/lib/Migration/UUIDFixGroup.php b/apps/user_ldap/lib/Migration/UUIDFixGroup.php index 6aacb37257e..9ea406efadf 100644 --- a/apps/user_ldap/lib/Migration/UUIDFixGroup.php +++ b/apps/user_ldap/lib/Migration/UUIDFixGroup.php @@ -33,6 +33,6 @@ class UUIDFixGroup extends UUIDFix { public function __construct(GroupMapping $mapper, LDAP $ldap, IConfig $config, Helper $helper) { $this->mapper = $mapper; $this->proxy = new User_Proxy($helper->getServerConfigurationPrefixes(true), $ldap, $config, - \OC::$server->getNotificationManager()); + \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); } } diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php index 6c438391380..0a9a1cfe4c2 100644 --- a/apps/user_ldap/lib/User_LDAP.php +++ b/apps/user_ldap/lib/User_LDAP.php @@ -42,6 +42,7 @@ use OCA\User_LDAP\User\OfflineUser; use OCA\User_LDAP\User\User; use OCP\IConfig; use OCP\IUser; +use OCP\IUserSession; use OCP\Notification\IManager as INotificationManager; use OCP\Util; @@ -59,24 +60,21 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn * @param Access $access * @param \OCP\IConfig $ocConfig * @param \OCP\Notification\IManager $notificationManager + * @param IUserSession $userSession */ - public function __construct(Access $access, IConfig $ocConfig, INotificationManager $notificationManager) { + public function __construct(Access $access, IConfig $ocConfig, INotificationManager $notificationManager, IUserSession $userSession) { parent::__construct($access); $this->ocConfig = $ocConfig; $this->notificationManager = $notificationManager; - $this->registerHooks(); + $this->registerHooks($userSession); } - protected function registerHooks() { - Util::connectHook('OC_User','pre_deleteUser', $this, 'preDeleteUser'); - Util::connectHook('OC_User','post_deleteUser', $this, 'postDeleteUser'); + protected function registerHooks(IUserSession $userSession) { + $userSession->listen('\OC\User', 'preDelete', [$this, 'preDeleteUser']); + $userSession->listen('\OC\User', 'postDelete', [$this, 'postDeleteUser']); } - public function preDeleteUser(array $param) { - $user = $param[0]; - if(!$user instanceof IUser) { - throw new \RuntimeException('IUser expected'); - } + public function preDeleteUser(IUser $user) { $this->currentUserInDeletionProcess = $user->getUID(); } @@ -376,8 +374,6 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn \OC::$server->getLogger()->info('Cleaning up after user ' . $uid, array('app' => 'user_ldap')); - //Get Home Directory out of user preferences so we can return it later, - //necessary for removing directories as done by OC_User. $this->access->getUserMapper()->unmap($uid); $this->access->userManager->invalidate($uid); return true; @@ -406,7 +402,9 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn // early return path if it is a deleted user $user = $this->access->userManager->get($uid); if($user instanceof OfflineUser) { - if($this->currentUserInDeletionProcess === $user->getUID()) { + if($this->currentUserInDeletionProcess !== null + && $this->currentUserInDeletionProcess === $user->getOCName() + ) { return $user->getHomePath(); } else { throw new NoUserException($uid . ' is not a valid user anymore'); diff --git a/apps/user_ldap/lib/User_Proxy.php b/apps/user_ldap/lib/User_Proxy.php index d1784ad7c14..a25eb1bc621 100644 --- a/apps/user_ldap/lib/User_Proxy.php +++ b/apps/user_ldap/lib/User_Proxy.php @@ -31,6 +31,7 @@ namespace OCA\User_LDAP; use OCA\User_LDAP\User\User; use OCP\IConfig; +use OCP\IUserSession; use OCP\Notification\IManager as INotificationManager; class User_Proxy extends Proxy implements \OCP\IUserBackend, \OCP\UserInterface, IUserLDAP { @@ -39,14 +40,19 @@ class User_Proxy extends Proxy implements \OCP\IUserBackend, \OCP\UserInterface, /** * Constructor + * * @param array $serverConfigPrefixes array containing the config Prefixes + * @param ILDAPWrapper $ldap + * @param IConfig $ocConfig + * @param INotificationManager $notificationManager + * @param IUserSession $userSession */ public function __construct(array $serverConfigPrefixes, ILDAPWrapper $ldap, IConfig $ocConfig, - INotificationManager $notificationManager) { + INotificationManager $notificationManager, IUserSession $userSession) { parent::__construct($ldap); foreach($serverConfigPrefixes as $configPrefix) { $this->backends[$configPrefix] = - new User_LDAP($this->getAccess($configPrefix), $ocConfig, $notificationManager); + new User_LDAP($this->getAccess($configPrefix), $ocConfig, $notificationManager, $userSession); if(is_null($this->refBackend)) { $this->refBackend = &$this->backends[$configPrefix]; } diff --git a/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php b/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php index 9891a4f719d..84e1e6b458a 100644 --- a/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php +++ b/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php @@ -144,11 +144,17 @@ abstract class AbstractIntegrationTest { foreach($methods as $method) { if(strpos($method, 'case') === 0) { print("running $method " . PHP_EOL); - if(!$this->$method()) { - print(PHP_EOL . '>>> !!! Test ' . $method . ' FAILED !!! <<<' . PHP_EOL . PHP_EOL); + try { + if(!$this->$method()) { + print(PHP_EOL . '>>> !!! Test ' . $method . ' FAILED !!! <<<' . PHP_EOL . PHP_EOL); + exit(1); + } + $atLeastOneCaseRan = true; + } catch(\Exception $e) { + print(PHP_EOL . '>>> !!! Test ' . $method . ' RAISED AN EXCEPTION !!! <<<' . PHP_EOL); + print($e->getMessage() . PHP_EOL . PHP_EOL); exit(1); } - $atLeastOneCaseRan = true; } } if($atLeastOneCaseRan) { diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php index be35556111f..bd8e4bdd7a2 100644 --- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php +++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php @@ -49,7 +49,7 @@ class IntegrationTestAttributeDetection extends AbstractIntegrationTest { $groupMapper->clear(); $this->access->setGroupMapper($groupMapper); - $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager()); + $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); $userManager = \OC::$server->getUserManager(); $userManager->clearBackends(); $userManager->registerBackend($userBackend); diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php index 5dda79c2ec0..95bfb99b65b 100644 --- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php +++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php @@ -47,7 +47,7 @@ class IntegrationTestFetchUsersByLoginName extends AbstractIntegrationTest { $this->mapping = new UserMapping(\OC::$server->getDatabaseConnection()); $this->mapping->clear(); $this->access->setUserMapper($this->mapping); - $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager()); + $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); } /** diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php index 35d8524fd88..3c8cf22bb5b 100644 --- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php +++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php @@ -47,7 +47,7 @@ class IntegrationTestPaging extends AbstractIntegrationTest { require(__DIR__ . '/../setup-scripts/createExplicitUsers.php'); parent::init(); - $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager()); + $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); } public function initConnection() { diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php index 9226c56ee89..765cee00f91 100644 --- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php +++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php @@ -51,7 +51,7 @@ class IntegrationTestUserHome extends AbstractIntegrationTest { $this->mapping = new UserMapping(\OC::$server->getDatabaseConnection()); $this->mapping->clear(); $this->access->setUserMapper($this->mapping); - $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager()); + $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); } /** diff --git a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php index 1710f519158..8c9e215edaa 100644 --- a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php +++ b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php @@ -50,7 +50,7 @@ class IntegrationTestUserAvatar extends AbstractIntegrationTest { $this->mapping = new UserMapping(\OC::$server->getDatabaseConnection()); $this->mapping->clear(); $this->access->setUserMapper($this->mapping); - $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager()); + $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); \OC_User::useBackend($userBackend); } diff --git a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserCleanUp.php b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserCleanUp.php index 7d45ee69fbc..ce81b9a26d6 100644 --- a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserCleanUp.php +++ b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserCleanUp.php @@ -46,7 +46,7 @@ class IntegrationTestUserCleanUp extends AbstractIntegrationTest { $this->mapping->clear(); $this->access->setUserMapper($this->mapping); - $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager()); + $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); \OC_User::useBackend($userBackend); } @@ -76,16 +76,18 @@ class IntegrationTestUserCleanUp extends AbstractIntegrationTest { $dn = 'uid=alice,ou=Users,' . $this->base; $this->prepareUser($dn, $username); - $user = \OC::$server->getUserManager()->get($username); - if($user === null) { - return false; - } - $this->deleteUserFromLDAP($dn); $job = new CleanUp(); $job->run([]); + // user instance must not be requested from global user manager, before + // it is deleted from the LDAP server. The instance will be returned + // from cache and may false-positively confirm the correctness. + $user = \OC::$server->getUserManager()->get($username); + if($user === null) { + return false; + } $user->delete(); return null === \OC::$server->getUserManager()->get($username); diff --git a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php index 886b0b46f0e..1f5d16567f7 100644 --- a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php +++ b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php @@ -43,7 +43,7 @@ class IntegrationTestUserDisplayName extends AbstractIntegrationTest { $this->mapping = new UserMapping(\OC::$server->getDatabaseConnection()); $this->mapping->clear(); $this->access->setUserMapper($this->mapping); - $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager()); + $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); \OC_User::useBackend($userBackend); } diff --git a/apps/user_ldap/tests/User_LDAPTest.php b/apps/user_ldap/tests/User_LDAPTest.php index f74a57e25eb..44bc55b4148 100644 --- a/apps/user_ldap/tests/User_LDAPTest.php +++ b/apps/user_ldap/tests/User_LDAPTest.php @@ -29,6 +29,7 @@ namespace OCA\User_LDAP\Tests; +use OC\User\Session; use OCA\User_LDAP\Access; use OCA\User_LDAP\Connection; use OCA\User_LDAP\FilesystemHelper; @@ -46,6 +47,7 @@ use OCP\IAvatarManager; use OCP\IConfig; use OCP\IDBConnection; use OCP\Image; +use OCP\IUser; use OCP\IUserManager; use Test\TestCase; use OCP\Notification\IManager as INotificationManager; @@ -205,7 +207,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = $backend->checkPassword('roland', 'dt19'); @@ -216,7 +218,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = $backend->checkPassword('roland', 'wrong'); @@ -227,7 +229,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = $backend->checkPassword('mallory', 'evil'); @@ -242,7 +244,7 @@ class User_LDAPTest extends TestCase { ->method('username2dn') ->will($this->returnValue(false)); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = $backend->checkPassword('roland', 'dt19'); @@ -252,7 +254,7 @@ class User_LDAPTest extends TestCase { public function testCheckPasswordPublicAPI() { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = \OCP\User::checkPassword('roland', 'dt19'); @@ -262,7 +264,7 @@ class User_LDAPTest extends TestCase { public function testCheckPasswordPublicAPIWrongPassword() { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = \OCP\User::checkPassword('roland', 'wrong'); @@ -272,7 +274,7 @@ class User_LDAPTest extends TestCase { public function testCheckPasswordPublicAPIWrongUser() { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = \OCP\User::checkPassword('mallory', 'evil'); @@ -281,7 +283,7 @@ class User_LDAPTest extends TestCase { public function testDeleteUserCancel() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $result = $backend->deleteUser('notme'); $this->assertFalse($result); } @@ -307,9 +309,18 @@ class User_LDAPTest extends TestCase { $this->offlineUser->expects($this->once()) ->method('getHomePath') ->willReturn($home); + $this->offlineUser->expects($this->once()) + ->method('getOCName') + ->willReturn($uid); - $backend = new UserLDAP($access, $this->configMock, $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->configMock, $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + + $user = $this->createMock(IUser::class); + $user->expects($this->once()) + ->method('getUID') + ->willReturn($uid); + $backend->preDeleteUser($user); $result = $backend->deleteUser($uid); $this->assertTrue($result); $this->assertSame($backend->getHome($uid), $home); @@ -370,7 +381,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersNoParam() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $result = $backend->getUsers(); $this->assertEquals(3, count($result)); @@ -379,7 +390,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersLimitOffset() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $result = $backend->getUsers('', 1, 2); $this->assertEquals(1, count($result)); @@ -388,7 +399,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersLimitOffset2() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $result = $backend->getUsers('', 2, 1); $this->assertEquals(2, count($result)); @@ -397,7 +408,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersSearchWithResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $result = $backend->getUsers('yo'); $this->assertEquals(2, count($result)); @@ -406,7 +417,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersSearchEmptyResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $result = $backend->getUsers('nix'); $this->assertEquals(0, count($result)); @@ -415,7 +426,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersViaAPINoParam() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = \OCP\User::getUsers(); @@ -425,7 +436,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersViaAPILimitOffset() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('', 1, 2); @@ -435,7 +446,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersViaAPILimitOffset2() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('', 2, 1); @@ -445,7 +456,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersViaAPISearchWithResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('yo'); @@ -455,7 +466,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersViaAPISearchEmptyResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('nix'); @@ -464,7 +475,7 @@ class User_LDAPTest extends TestCase { public function testUserExists() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $this->prepareMockForUserExists($access); $access->expects($this->any()) @@ -486,7 +497,7 @@ class User_LDAPTest extends TestCase { */ public function testUserExistsForDeleted() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $this->prepareMockForUserExists($access); $access->expects($this->any()) @@ -504,7 +515,7 @@ class User_LDAPTest extends TestCase { public function testUserExistsForNeverExisting() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $this->prepareMockForUserExists($access); $access->expects($this->any()) @@ -523,7 +534,7 @@ class User_LDAPTest extends TestCase { public function testUserExistsPublicAPI() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $this->prepareMockForUserExists($access); \OC_User::useBackend($backend); @@ -546,7 +557,7 @@ class User_LDAPTest extends TestCase { */ public function testUserExistsPublicAPIForDeleted() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $this->prepareMockForUserExists($access); \OC_User::useBackend($backend); @@ -565,7 +576,7 @@ class User_LDAPTest extends TestCase { public function testUserExistsPublicAPIForNeverExisting() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $this->prepareMockForUserExists($access); \OC_User::useBackend($backend); @@ -585,7 +596,7 @@ class User_LDAPTest extends TestCase { public function testDeleteUserExisting() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); //we do not support deleting existing users at all $result = $backend->deleteUser('gunslinger'); @@ -596,7 +607,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $config = $this->createMock(IConfig::class); $noti = $this->createMock(INotificationManager::class); - $backend = new UserLDAP($access, $config, $noti); + $backend = new UserLDAP($access, $config, $noti, $this->createMock(Session::class)); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -632,7 +643,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $config = $this->createMock(IConfig::class); $noti = $this->createMock(INotificationManager::class); - $backend = new UserLDAP($access, $config, $noti); + $backend = new UserLDAP($access, $config, $noti, $this->createMock(Session::class)); $this->prepareMockForUserExists($access); $dataDir = \OC::$server->getConfig()->getSystemValue( @@ -675,7 +686,7 @@ class User_LDAPTest extends TestCase { */ public function testGetHomeNoPath() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -708,7 +719,7 @@ class User_LDAPTest extends TestCase { $uid = 'newyorker'; $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->configMock, $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->configMock, $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -736,9 +747,6 @@ class User_LDAPTest extends TestCase { $this->offlineUser->expects($this->never()) ->method('getHomePath'); - $this->offlineUser->expects($this->once()) - ->method('getUID') - ->willReturn($uid); $backend->getHome($uid); } @@ -784,7 +792,7 @@ class User_LDAPTest extends TestCase { public function testGetDisplayName() { $access = $this->getAccessMock(); $this->prepareAccessForGetDisplayName($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -825,7 +833,7 @@ class User_LDAPTest extends TestCase { } })); $this->prepareAccessForGetDisplayName($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -855,7 +863,7 @@ class User_LDAPTest extends TestCase { ->method('countUsers') ->will($this->returnValue(5)); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $result = $backend->countUsers(); $this->assertEquals(5, $result); @@ -868,7 +876,7 @@ class User_LDAPTest extends TestCase { ->method('countUsers') ->will($this->returnValue(false)); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $result = $backend->countUsers(); $this->assertFalse($result); @@ -901,7 +909,7 @@ class User_LDAPTest extends TestCase { ->method('writeToCache') ->with($this->equalTo('loginName2UserName-'.$loginName), $this->equalTo($username)); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $name = $backend->loginName2UserName($loginName); $this->assertSame($username, $name); @@ -930,7 +938,7 @@ class User_LDAPTest extends TestCase { ->method('writeToCache') ->with($this->equalTo('loginName2UserName-'.$loginName), false); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $name = $backend->loginName2UserName($loginName); $this->assertSame(false, $name); @@ -977,7 +985,7 @@ class User_LDAPTest extends TestCase { ->method('getUserValue') ->willReturn(1); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); $name = $backend->loginName2UserName($loginName); $this->assertSame(false, $name); @@ -1058,7 +1066,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForSetPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $this->assertTrue(\OC_User::setPassword('roland', 'dt')); @@ -1068,7 +1076,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForSetPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $this->assertTrue(\OC_User::setPassword('roland', 'dt12234$')); @@ -1078,7 +1086,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForSetPassword($access, false); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); \OC_User::useBackend($backend); $this->assertFalse(\OC_User::setPassword('roland', 'dt12234$')); @@ -1098,10 +1106,12 @@ class User_LDAPTest extends TestCase { ->willReturn(null); $config = $this->createMock(IConfig::class); $noti = $this->createMock(INotificationManager::class); + $userSession = $this->createMock(Session::class); $ldap = new User_LDAP( $access, $config, - $noti + $noti, + $userSession ); $ldap->setPassword('NotExistingUser', 'Password'); } @@ -1121,10 +1131,12 @@ class User_LDAPTest extends TestCase { ->willReturn($user); $config = $this->createMock(IConfig::class); $noti = $this->createMock(INotificationManager::class); + $userSession = $this->createMock(Session::class); $ldap = new User_LDAP( $access, $config, - $noti + $noti, + $userSession ); $this->assertFalse($ldap->setPassword('NotExistingUser', 'Password')); } diff --git a/apps/user_ldap/tests/User_ProxyTest.php b/apps/user_ldap/tests/User_ProxyTest.php index df021a6de3d..68b1e4428ca 100644 --- a/apps/user_ldap/tests/User_ProxyTest.php +++ b/apps/user_ldap/tests/User_ProxyTest.php @@ -24,6 +24,7 @@ namespace OCA\User_LDAP\Tests; use OCA\User_LDAP\ILDAPWrapper; use OCA\User_LDAP\User_Proxy; use OCP\IConfig; +use OCP\IUserSession; use OCP\Notification\IManager as INotificationManager; use Test\TestCase; @@ -32,8 +33,10 @@ class User_ProxyTest extends TestCase { private $ldapWrapper; /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ private $config; - /** @var IManager|\PHPUnit_Framework_MockObject_MockObject */ + /** @var INotificationManager|\PHPUnit_Framework_MockObject_MockObject */ private $notificationManager; + /** @var IUserSession|\PHPUnit_Framework_MockObject_MockObject */ + private $userSession; /** @var User_Proxy|\PHPUnit_Framework_MockObject_MockObject */ private $proxy; @@ -43,12 +46,14 @@ class User_ProxyTest extends TestCase { $this->ldapWrapper = $this->createMock(ILDAPWrapper::class); $this->config = $this->createMock(IConfig::class); $this->notificationManager = $this->createMock(INotificationManager::class); + $this->userSession = $this->createMock(IUserSession::class); $this->proxy = $this->getMockBuilder(User_Proxy::class) ->setConstructorArgs([ [], $this->ldapWrapper, $this->config, $this->notificationManager, + $this->userSession, ]) ->setMethods(['handleRequest']) ->getMock(); diff --git a/apps/workflowengine/l10n/nb.js b/apps/workflowengine/l10n/nb.js index e38ba681b1c..b3b622b6abf 100644 --- a/apps/workflowengine/l10n/nb.js +++ b/apps/workflowengine/l10n/nb.js @@ -14,7 +14,7 @@ OC.L10N.register( "less or equals" : "mindre eller lik", "greater or equals" : "større eller lik", "greater" : "større", - "File system tag" : "Filsystem merkelapp", + "File system tag" : "Filsystem-merkelapp", "is tagged with" : "er merket med", "is not tagged with" : "er ikke merket med", "Select tag…" : "Velg merkelapp…", diff --git a/apps/workflowengine/l10n/nb.json b/apps/workflowengine/l10n/nb.json index 11ed4de2277..5a6702fe2ff 100644 --- a/apps/workflowengine/l10n/nb.json +++ b/apps/workflowengine/l10n/nb.json @@ -12,7 +12,7 @@ "less or equals" : "mindre eller lik", "greater or equals" : "større eller lik", "greater" : "større", - "File system tag" : "Filsystem merkelapp", + "File system tag" : "Filsystem-merkelapp", "is tagged with" : "er merket med", "is not tagged with" : "er ikke merket med", "Select tag…" : "Velg merkelapp…", diff --git a/apps/workflowengine/l10n/sr.js b/apps/workflowengine/l10n/sr.js new file mode 100644 index 00000000000..2a0c0118e16 --- /dev/null +++ b/apps/workflowengine/l10n/sr.js @@ -0,0 +1,73 @@ +OC.L10N.register( + "workflowengine", + { + "Saved" : "Снимљено", + "Saving failed:" : "Снимање није успело:", + "File MIME type" : "MIME тип фајла", + "is" : "је", + "is not" : "није", + "matches" : "се поклапа са", + "does not match" : "се не поклапа са", + "Example: {placeholder}" : "Пример: {placeholder}", + "File size (upload)" : "Величина фајла (отпремање)", + "less" : "је мања од", + "less or equals" : "мања или једнака од", + "greater or equals" : "већа или једнака од", + "greater" : "већа од", + "File system tag" : "Системска ознака фајла", + "is tagged with" : "је означен са", + "is not tagged with" : "није означен са", + "Select tag…" : "Одаберите ознаку…", + "Request remote address" : "Захтевај удаљену адресу", + "matches IPv4" : "поклапа се са IPv4 адресом", + "does not match IPv4" : "не поклапа се са IPv4 адресом", + "matches IPv6" : "поклапа се са IPv6 адресом", + "does not match IPv6" : "не поклапа се са IPv6 адресом", + "Request time" : "Време захтева", + "between" : "између", + "not between" : "није између", + "Start" : "Почетак", + "End" : "Крај", + "Select timezone…" : "Одаберите временску зону…", + "Request URL" : "Адреса захтева", + "Predefined URLs" : "Предефинисане адресе", + "Files WebDAV" : "WebDAV фајлови", + "Request user agent" : "Кориснички агент захтева", + "Sync clients" : "Синхронизовани клијенти", + "Android client" : "Андроид клијент", + "iOS client" : "iOS клијент", + "Desktop client" : "Десктоп клијент", + "User group membership" : "Припадност групи", + "is member of" : "је члан групе", + "is not member of" : "није члан групе", + "The given operator is invalid" : "Дати оператор није исправан", + "The given regular expression is invalid" : "Дати регуларни израз није исправан", + "The given file size is invalid" : "Дата величина фајла није исправна", + "The given tag id is invalid" : "Дати ИД ознаке није исправан", + "The given IP range is invalid" : "Дати опсег ИП адреса није исправан", + "The given IP range is not valid for IPv4" : "Дати опсег ИП адреса није исправан за IPv4", + "The given IP range is not valid for IPv6" : "Дати опсег ИП адреса није исправан за IPv6", + "The given time span is invalid" : "Дати временски оквир није исправан", + "The given start time is invalid" : "Дато време почетка није исправно", + "The given end time is invalid" : "Дато време краја није исправно", + "The given group does not exist" : "Дата група не постоји", + "Check %s is invalid or does not exist" : "Проверите да ли је %s неисправно или не постоји", + "Operation #%s does not exist" : "Операција #%s не постоји", + "Operation %s does not exist" : "Операција %s не постоји", + "Operation %s is invalid" : "Операција %s није исправна", + "Check %s does not exist" : "Проверите да ли %s постоји", + "Check %s is invalid" : "Проверите да ли је %s исправно", + "Check #%s does not exist" : "Проверите да ли #%s постоји", + "Workflow" : "Процес рада", + "Open documentation" : "Отвори документацију", + "Add rule group" : "Додај групу правила", + "Short rule description" : "Кратки опис правила", + "Add rule" : "Додај правило", + "Reset" : "Ресетуј", + "Save" : "Сачувај", + "Saving…" : "Чувам…", + "Loading…" : "Учитавање…", + "Successfully saved" : "Успешно сачувано", + "File mime type" : "MIME тип фајла" +}, +"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/workflowengine/l10n/sr.json b/apps/workflowengine/l10n/sr.json new file mode 100644 index 00000000000..ea34207a608 --- /dev/null +++ b/apps/workflowengine/l10n/sr.json @@ -0,0 +1,71 @@ +{ "translations": { + "Saved" : "Снимљено", + "Saving failed:" : "Снимање није успело:", + "File MIME type" : "MIME тип фајла", + "is" : "је", + "is not" : "није", + "matches" : "се поклапа са", + "does not match" : "се не поклапа са", + "Example: {placeholder}" : "Пример: {placeholder}", + "File size (upload)" : "Величина фајла (отпремање)", + "less" : "је мања од", + "less or equals" : "мања или једнака од", + "greater or equals" : "већа или једнака од", + "greater" : "већа од", + "File system tag" : "Системска ознака фајла", + "is tagged with" : "је означен са", + "is not tagged with" : "није означен са", + "Select tag…" : "Одаберите ознаку…", + "Request remote address" : "Захтевај удаљену адресу", + "matches IPv4" : "поклапа се са IPv4 адресом", + "does not match IPv4" : "не поклапа се са IPv4 адресом", + "matches IPv6" : "поклапа се са IPv6 адресом", + "does not match IPv6" : "не поклапа се са IPv6 адресом", + "Request time" : "Време захтева", + "between" : "између", + "not between" : "није између", + "Start" : "Почетак", + "End" : "Крај", + "Select timezone…" : "Одаберите временску зону…", + "Request URL" : "Адреса захтева", + "Predefined URLs" : "Предефинисане адресе", + "Files WebDAV" : "WebDAV фајлови", + "Request user agent" : "Кориснички агент захтева", + "Sync clients" : "Синхронизовани клијенти", + "Android client" : "Андроид клијент", + "iOS client" : "iOS клијент", + "Desktop client" : "Десктоп клијент", + "User group membership" : "Припадност групи", + "is member of" : "је члан групе", + "is not member of" : "није члан групе", + "The given operator is invalid" : "Дати оператор није исправан", + "The given regular expression is invalid" : "Дати регуларни израз није исправан", + "The given file size is invalid" : "Дата величина фајла није исправна", + "The given tag id is invalid" : "Дати ИД ознаке није исправан", + "The given IP range is invalid" : "Дати опсег ИП адреса није исправан", + "The given IP range is not valid for IPv4" : "Дати опсег ИП адреса није исправан за IPv4", + "The given IP range is not valid for IPv6" : "Дати опсег ИП адреса није исправан за IPv6", + "The given time span is invalid" : "Дати временски оквир није исправан", + "The given start time is invalid" : "Дато време почетка није исправно", + "The given end time is invalid" : "Дато време краја није исправно", + "The given group does not exist" : "Дата група не постоји", + "Check %s is invalid or does not exist" : "Проверите да ли је %s неисправно или не постоји", + "Operation #%s does not exist" : "Операција #%s не постоји", + "Operation %s does not exist" : "Операција %s не постоји", + "Operation %s is invalid" : "Операција %s није исправна", + "Check %s does not exist" : "Проверите да ли %s постоји", + "Check %s is invalid" : "Проверите да ли је %s исправно", + "Check #%s does not exist" : "Проверите да ли #%s постоји", + "Workflow" : "Процес рада", + "Open documentation" : "Отвори документацију", + "Add rule group" : "Додај групу правила", + "Short rule description" : "Кратки опис правила", + "Add rule" : "Додај правило", + "Reset" : "Ресетуј", + "Save" : "Сачувај", + "Saving…" : "Чувам…", + "Loading…" : "Учитавање…", + "Successfully saved" : "Успешно сачувано", + "File mime type" : "MIME тип фајла" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +}
\ No newline at end of file diff --git a/build/.phan/config.php b/build/.phan/config.php index 26421529433..cdf41630766 100644 --- a/build/.phan/config.php +++ b/build/.phan/config.php @@ -52,6 +52,7 @@ return [ 'apps/files/tests', 'apps/files_external/3rdparty', 'apps/files_external/tests', + 'apps/files_sharing/composer', 'apps/files_sharing/tests', 'apps/files_trashbin/tests', 'apps/files_versions/tests', diff --git a/build/.phan/plugin-checker.php b/build/.phan/plugin-checker.php index 681904264f6..92eb3496ed5 100644 --- a/build/.phan/plugin-checker.php +++ b/build/.phan/plugin-checker.php @@ -34,7 +34,7 @@ build/.phan/tests/SqlInjectionCheckerTest.php:70 SqlInjectionChecker Potential S EOT; -$result = shell_exec('php '. __DIR__ . '/../../lib/composer/etsy/phan/phan -k build/.phan/config.php --include-analysis-file-list build/.phan/tests/* --directory build/.phan/tests/'); +$result = shell_exec('php '. __DIR__ . '/../../lib/composer/phan/phan/phan -k build/.phan/config.php --include-analysis-file-list build/.phan/tests/* --directory build/.phan/tests/'); if($result !== $expected) { echo("Output of phan doesn't match expectation\n"); diff --git a/build/autoloaderchecker.sh b/build/autoloaderchecker.sh index 9b1c30d59cb..ffa157f6c80 100644 --- a/build/autoloaderchecker.sh +++ b/build/autoloaderchecker.sh @@ -24,16 +24,26 @@ $COMPOSER_COMMAND self-update REPODIR=`git rev-parse --show-toplevel` -#Redump the autoloader +#Redump the main autoloader echo -echo "Regenerating autoloader" +echo "Regenerating main autoloader" $COMPOSER_COMMAND dump-autoload -d $REPODIR +for app in ${REPODIR}/apps/*; do + if [[ -d $app ]]; then + if [[ -e ${app}/composer/composer.json ]]; then + echo + echo "Regenerating autoloader for ${app}" + $COMPOSER_COMMAND dump-autoload -d ${app}/composer + fi + fi +done + files=`git diff --name-only` composerfile=false for file in $files do - if [[ $file == lib/composer/* ]] + if [[ $file == *autoload_classmap* ]] then composerfile=true break @@ -43,10 +53,9 @@ done echo if [ $composerfile = true ] then - echo "The autoloader is not up to date" + echo "The autoloaders are not up to date" echo "Please run: bash build/autoloaderchecker.sh" echo "And commit the result" - git diff lib/composer exit 1 else echo "Autoloader up to date. Carry on" diff --git a/core/Command/Db/ConvertFilecacheBigInt.php b/core/Command/Db/ConvertFilecacheBigInt.php new file mode 100644 index 00000000000..75d3a48a5c8 --- /dev/null +++ b/core/Command/Db/ConvertFilecacheBigInt.php @@ -0,0 +1,107 @@ +<?php +/** + * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> + * + * @author Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Core\Command\Db; + +use Doctrine\DBAL\Types\Type; +use OC\DB\SchemaWrapper; +use OCP\IDBConnection; +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Question\ConfirmationQuestion; + +class ConvertFilecacheBigInt extends Command { + + /** @var IDBConnection */ + private $connection; + + /** + * @param IDBConnection $connection + */ + public function __construct(IDBConnection $connection) { + $this->connection = $connection; + parent::__construct(); + } + + protected function configure() { + $this + ->setName('db:convert-filecache-bigint') + ->setDescription('Convert the ID columns of the filecache to BigInt'); + } + + protected function getColumnsByTable() { + return [ + 'activity' => ['activity_id', 'object_id'], + 'activity_mq' => ['mail_id'], + 'filecache' => ['fileid', 'storage', 'parent', 'mimetype', 'mimepart'], + 'mimetypes' => ['id'], + 'storages' => ['numeric_id'], + ]; + } + + protected function execute(InputInterface $input, OutputInterface $output) { + + $schema = new SchemaWrapper($this->connection); + $updates = []; + + $tables = $this->getColumnsByTable(); + foreach ($tables as $tableName => $columns) { + if (!$schema->hasTable($tableName)) { + continue; + } + + $table = $schema->getTable($tableName); + + foreach ($columns as $columnName) { + $column = $table->getColumn($columnName); + if ($column->getType()->getName() !== Type::BIGINT) { + $column->setType(Type::getType(Type::BIGINT)); + $column->setOptions(['length' => 20]); + + $updates[] = $tableName . '.' . $columnName; + } + } + } + + if (empty($updates)) { + $output->writeln('<info>All tables already up to date!</info>'); + return 0; + } + + $output->writeln('<comment>This can take up to hours, depending on the number of files in your instance!</comment>'); + + if ($input->isInteractive()) { + $helper = $this->getHelper('question'); + $question = new ConfirmationQuestion('Continue with the conversion (y/n)? [n] ', false); + + if (!$helper->ask($input, $output, $question)) { + return 1; + } + } + + $this->connection->migrateToSchema($schema->getWrappedSchema()); + + return 0; + } +} diff --git a/core/Controller/AvatarController.php b/core/Controller/AvatarController.php index e4d13d218a5..bf9a576398e 100644 --- a/core/Controller/AvatarController.php +++ b/core/Controller/AvatarController.php @@ -115,6 +115,7 @@ class AvatarController extends Controller { /** * @NoAdminRequired * @NoCSRFRequired + * @NoSameSiteCookieRequired * @PublicPage * * @param string $userId diff --git a/core/Controller/LostController.php b/core/Controller/LostController.php index 4c59b0a1c00..04a3a07bea2 100644 --- a/core/Controller/LostController.php +++ b/core/Controller/LostController.php @@ -309,6 +309,7 @@ class LostController extends Controller { 'link' => $link, ]); + $emailTemplate->setSubject($this->l10n->t('%s password reset', [$this->defaults->getName()])); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l10n->t('Password reset')); @@ -327,10 +328,8 @@ class LostController extends Controller { try { $message = $this->mailer->createMessage(); $message->setTo([$email => $user->getUID()]); - $message->setSubject($this->l10n->t('%s password reset', [$this->defaults->getName()])); - $message->setPlainBody($emailTemplate->renderText()); - $message->setHtmlBody($emailTemplate->renderHtml()); $message->setFrom([$this->from => $this->defaults->getName()]); + $message->useTemplate($emailTemplate); $this->mailer->send($message); } catch (\Exception $e) { throw new \Exception($this->l10n->t( diff --git a/core/Migrations/Version13000Date20170718121200.php b/core/Migrations/Version13000Date20170718121200.php index d8d66696a14..0ab777f6de2 100644 --- a/core/Migrations/Version13000Date20170718121200.php +++ b/core/Migrations/Version13000Date20170718121200.php @@ -24,6 +24,7 @@ namespace OC\Core\Migrations; use Doctrine\DBAL\Schema\Schema; +use Doctrine\DBAL\Types\Type; use OCP\Migration\SimpleMigrationStep; use OCP\Migration\IOutput; @@ -66,10 +67,10 @@ class Version13000Date20170718121200 extends SimpleMigrationStep { 'notnull' => false, 'length' => 64, ]); - $table->addColumn('numeric_id', 'integer', [ + $table->addColumn('numeric_id', Type::BIGINT, [ 'autoincrement' => true, 'notnull' => true, - 'length' => 4, + 'length' => 20, ]); $table->addColumn('available', 'integer', [ 'notnull' => true, @@ -116,10 +117,10 @@ class Version13000Date20170718121200 extends SimpleMigrationStep { if (!$schema->hasTable('mimetypes')) { $table = $schema->createTable('mimetypes'); - $table->addColumn('id', 'integer', [ + $table->addColumn('id', Type::BIGINT, [ 'autoincrement' => true, 'notnull' => true, - 'length' => 4, + 'length' => 20, ]); $table->addColumn('mimetype', 'string', [ 'notnull' => true, @@ -132,14 +133,14 @@ class Version13000Date20170718121200 extends SimpleMigrationStep { if (!$schema->hasTable('filecache')) { $table = $schema->createTable('filecache'); - $table->addColumn('fileid', 'integer', [ + $table->addColumn('fileid', Type::BIGINT, [ 'autoincrement' => true, 'notnull' => true, - 'length' => 4, + 'length' => 20, ]); - $table->addColumn('storage', 'integer', [ + $table->addColumn('storage', Type::BIGINT, [ 'notnull' => true, - 'length' => 4, + 'length' => 20, 'default' => 0, ]); $table->addColumn('path', 'string', [ @@ -151,23 +152,23 @@ class Version13000Date20170718121200 extends SimpleMigrationStep { 'length' => 32, 'default' => '', ]); - $table->addColumn('parent', 'integer', [ + $table->addColumn('parent', Type::BIGINT, [ 'notnull' => true, - 'length' => 4, + 'length' => 20, 'default' => 0, ]); $table->addColumn('name', 'string', [ 'notnull' => false, 'length' => 250, ]); - $table->addColumn('mimetype', 'integer', [ + $table->addColumn('mimetype', Type::BIGINT, [ 'notnull' => true, - 'length' => 4, + 'length' => 20, 'default' => 0, ]); - $table->addColumn('mimepart', 'integer', [ + $table->addColumn('mimepart', Type::BIGINT, [ 'notnull' => true, - 'length' => 4, + 'length' => 20, 'default' => 0, ]); $table->addColumn('size', 'bigint', [ diff --git a/core/Migrations/Version13000Date20170926101637.php b/core/Migrations/Version13000Date20170926101637.php new file mode 100644 index 00000000000..ded34cedd39 --- /dev/null +++ b/core/Migrations/Version13000Date20170926101637.php @@ -0,0 +1,42 @@ +<?php +namespace OC\Core\Migrations; + +use Doctrine\DBAL\Schema\Schema; +use OCP\Migration\BigIntMigration; +use OCP\Migration\SimpleMigrationStep; +use OCP\Migration\IOutput; + +/** + * Auto-generated migration step: Please modify to your needs! + */ +class Version13000Date20170926101637 extends BigIntMigration { + + /** + * @return array Returns an array with the following structure + * ['table1' => ['column1', 'column2'], ...] + * @since 13.0.0 + */ + protected function getColumnsByTable() { + return [ + 'admin_settings' => ['id'], + 'authtoken' => ['id'], + 'bruteforce_attempts' => ['id'], + 'comments' => ['id', 'parent_id', 'topmost_parent_id'], + // Disabled for now 'filecache' => ['fileid', 'storage', 'parent', 'mimetype', 'mimepart'], + 'file_locks' => ['id'], + 'jobs' => ['id'], + // Disabled for now 'mimetypes' => ['id'], + 'mounts' => ['id'], + 'personal_settings' => ['id'], + 'properties' => ['id'], + 'share' => ['id', 'parent', 'file_source'], + // Disabled for now 'storages' => ['numeric_id'], + 'systemtag' => ['id'], + 'systemtag_group' => ['systemtagid'], + 'systemtag_object_mapping' => ['systemtagid'], + 'vcategory' => ['id'], + 'vcategory_to_object' => ['objid', 'categoryid'], + ]; + } + +} diff --git a/core/css/apps.scss b/core/css/apps.scss index b735dfa4d64..4f17c91764e 100644 --- a/core/css/apps.scss +++ b/core/css/apps.scss @@ -312,7 +312,12 @@ kbd { /* Fallback for old collapse button. TODO: to be removed. Leaved here for retro compatibility */ .collapse { - display: none; + opacity: 0; + position: absolute; + width: 44px; + height: 44px; + margin: 0; + z-index: 110; } &:after { position: absolute; @@ -418,7 +423,8 @@ kbd { position: absolute; background-color: $color-main-background; z-index: -1; - form { + form, + div { display: inline-flex; width: 100%; } @@ -426,7 +432,6 @@ kbd { padding: 5px; margin-right: 0; height: 38px; - border: 1px solid nc-darken($color-main-background, 8%); &:hover { /* overlapp borders */ z-index: 1; @@ -604,12 +609,26 @@ kbd { padding: 5px 0 7px 22px; color: rgba($color-main-text, .4); } + input { + &[type='checkbox'], + &[type='radio'] { + &.radio, + &.checkbox { + + label { + display: inline-block; + width: 100%; + padding: 5px 0; + } + } + } + } } #app-settings-header { border-right: 1px solid $color-border; width: 250px; box-sizing: border-box; + background-color: $color-main-background; } .settings-button { @@ -753,7 +772,7 @@ kbd { margin: 5px; margin-top: -5px; right: 0; - box-shadow: 0 1px 10px $color-box-shadow; + filter: drop-shadow(0 1px 3px $color-box-shadow); display: none; &:after { diff --git a/core/css/header.scss b/core/css/header.scss index e9edfe0bfb8..656440520a0 100644 --- a/core/css/header.scss +++ b/core/css/header.scss @@ -459,6 +459,7 @@ nav { li:hover a, + li a:focus, li a.active { opacity: 1; } diff --git a/core/css/icons.scss b/core/css/icons.scss index 7c47a3e12c8..6d855381fae 100644 --- a/core/css/icons.scss +++ b/core/css/icons.scss @@ -493,16 +493,23 @@ img, object, video, button, textarea, input, select { .icon-category-installed { background-image: url('../img/actions/user.svg?v=1'); } + .icon-category-enabled { background-image: url('../img/actions/checkmark.svg?v=1'); } + .icon-category-disabled { background-image: url('../img/actions/close.svg?v=1'); } + .icon-category-app-bundles { background-image: url('../img/categories/bundles.svg?v=1'); } +.icon-category-updates { + background-image: url('../img/actions/download.svg?v=1'); +} + .icon-category-files { background-image: url('../img/categories/files.svg?v=1'); } diff --git a/core/css/inputs.scss b/core/css/inputs.scss index 5fe65935ec5..eb7d20cf8af 100644 --- a/core/css/inputs.scss +++ b/core/css/inputs.scss @@ -35,18 +35,18 @@ select, button, .button, input:not([type='range']), textarea, -#quota, .pager li a { +.pager li a { margin: 3px 3px 3px 0; padding: 7px 6px; font-size: 13px; background-color: $color-main-background; color: nc-lighten($color-main-text, 33%); - border: 1px solid nc-lighten($color-main-text, 86%); + border: 1px solid nc-darken($color-main-background, 14%); outline: none; border-radius: 3px; + cursor: text; &:not(:disabled):not(.primary) { - /* no border on quota */ - &:not(#quota):hover, + &:hover, &:focus, &.active { /* active class used for multiselect */ @@ -163,7 +163,7 @@ textarea { &:active, &:hover, &:focus { - border-color: nc-lighten($color-main-text, 86%) !important; + border-color: nc-darken($color-main-background, 14%) !important; background-color: $color-main-background !important; } } @@ -185,9 +185,6 @@ button img, .button img { cursor: pointer; } -#quota { - color: nc-lighten($color-main-text, 33%); -} select, .button.multiselect { font-weight: 400; @@ -195,6 +192,8 @@ select, /* Radio & Checkboxes */ input { + $color-checkbox-radio-disabled: nc-darken($color-main-background, 27%); + $color-checkbox-radio-border: nc-darken($color-main-background, 47%); &[type='checkbox'], &[type='radio'] { &.radio, @@ -221,7 +220,7 @@ input { border-radius: 50%; margin: 3px; margin-top: 1px; - border: 1px solid nc-lighten($color-main-text, 53%); + border: 1px solid $color-checkbox-radio-border; } &:not(:disabled):not(:checked) + label:hover:before, &:focus + label:before { @@ -236,11 +235,11 @@ input { border-color: $color-primary-element; } &:disabled + label:before { - border: 1px solid nc-lighten($color-main-text, 53%); - background-color: nc-lighten($color-main-text, 73%) !important; /* override other status */ + border: 1px solid $color-checkbox-radio-border; + background-color: $color-checkbox-radio-disabled !important; /* override other status */ } &:checked:disabled + label:before { - background-color: nc-lighten($color-main-text, 73%); + background-color: $color-checkbox-radio-disabled; } } &.checkbox { @@ -258,60 +257,45 @@ input { background-image: url('../img/actions/checkbox-mixed.svg'); } } + + /* We do not use the nc-darken function as this si not supposed to be changed */ + $color-checkbox-radio-white: #fff; &.radio--white, &.checkbox--white { - + label:before { - border-color: nc-lighten($color-main-text, 86%); - } - &:not(:disabled):not(:checked) + label:hover:before, + + label:before, &:focus + label:before { - border-color: $color-main-background; + border-color: darken($color-checkbox-radio-white, 27%); + } + &:not(:disabled):not(:checked) + label:hover:before { + border-color: $color-checkbox-radio-white; } &:checked + label:before { - box-shadow: inset 0px 0px 0px 2px $color-main-text; - background-color: $color-border; - border-color: $color-border + box-shadow: inset 0px 0px 0px 2px $color-main-background; + background-color: darken($color-checkbox-radio-white, 14%); + border-color: darken($color-checkbox-radio-white, 14%); } &:disabled + label:before { - background-color: nc-lighten($color-main-text, 33%) !important; /* override other status */ - border-color: rgba($color-main-text, 0.4) !important; /* override other status */ + background-color: darken($color-checkbox-radio-white, 27%) !important; /* override other status */ + border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */ } &:checked:disabled + label:before { - box-shadow: inset 0px 0px 0px 2px $color-main-text; - border-color: nc-lighten($color-main-text, 33%); - background-color: nc-lighten($color-main-text, 33%); + box-shadow: inset 0px 0px 0px 2px $color-main-background; + border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */ + background-color: darken($color-checkbox-radio-white, 27%); } } &.checkbox--white { &:checked + label:before, &:indeterminate + label:before { background-color: transparent !important; /* Override default checked */ - border-color: $color-main-background !important; /* Override default checked */ + border-color: $color-checkbox-radio-white !important; /* Override default checked */ background-image: url('../img/actions/checkbox-mark-white.svg'); } &:indeterminate + label:before { background-image: url('../img/actions/checkbox-mixed-white.svg'); } - &:checked:disabled + label:after { - border-color: nc-lighten($color-main-text, 73%); - } - &:indeterminate:disabled + label:after { - background-color: nc-lighten($color-main-text, 73%); - } - } - } -} -#app-settings-content { - input { - &[type='checkbox'], - &[type='radio'] { - &.radio, - &.checkbox { - + label { - display: inline-block; - width: 100%; - padding: 5px 0; - } + &:disabled + label:before { + opacity: 0.7; /* No other choice for white background image */ } } } @@ -322,7 +306,7 @@ input { margin-top: -2px; background-color: $color-main-background; &.select2-drop-active { - border-color: nc-lighten($color-main-text, 86%); + border-color: nc-darken($color-main-background, 14%); } .avatar { display: inline-block; @@ -387,7 +371,7 @@ input { color: nc-lighten($color-main-text, 33%); box-sizing: content-box; border-radius: 3px; - border: 1px solid nc-lighten($color-main-text, 86%); + border: 1px solid nc-darken($color-main-background, 14%); margin: 0; padding: 2px 0; min-height: auto; @@ -401,7 +385,7 @@ input { background-image: none; background-color: $color-main-background; color: nc-lighten($color-main-text, 33%); - border: 1px solid nc-lighten($color-main-text, 86%); + border: 1px solid nc-darken($color-main-background, 14%); } .select2-search-choice-close { display: none; @@ -432,7 +416,7 @@ input { color: nc-lighten($color-main-text, 33%); box-sizing: content-box; border-radius: 3px; - border: 1px solid nc-lighten($color-main-text, 86%); + border: 1px solid nc-darken($color-main-background, 14%); margin: 0; padding: 2px 0; padding-left: 6px; @@ -472,6 +456,40 @@ input { } } +/* Progressbar */ +progress { + display: block; + width: 100%; + padding: 0; + border: 0 none; + background-color: nc-darken($color-main-background, 10%); + border-radius: 3px; + flex-basis: 100%; + height: 5px; + overflow: hidden; + &.warn { + &::-moz-progress-bar { + background: $color-error; + } + &::-webkit-progress-value { + background: $color-error; + } + } + &::-webkit-progress-bar { + background: transparent; + } + &::-moz-progress-bar { + border-radius: 3px; + background: $color-primary; + transition: 250ms all ease-in-out; + } + &::-webkit-progress-value { + border-radius: 3px; + background: $color-primary; + transition: 250ms all ease-in-out; + } +} + /* Animation */ @keyframes shake { 10%, diff --git a/core/css/jquery.ocdialog.css b/core/css/jquery.ocdialog.scss index 2100a3db7a6..efb2cc2f2e3 100644 --- a/core/css/jquery.ocdialog.css +++ b/core/css/jquery.ocdialog.scss @@ -1,7 +1,8 @@ .oc-dialog { - background: #fff; - color: #333; - border-radius: 3px; box-shadow: 0 0 7px #888; + background: $color-main-background; + color: nc-darken($color-main-text, 20%); + border-radius: 3px; + box-shadow: 0 0 7px $color-box-shadow; padding: 15px; z-index: 10000; font-size: 100%; @@ -17,7 +18,7 @@ overflow: auto; } .oc-dialog-title { - background: #fff; + background: $color-main-background; margin-left: 12px; } .oc-dialog-buttonrow { @@ -30,7 +31,7 @@ padding-bottom: 0; box-sizing: border-box; width: 100%; - background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 1)); + background-image: linear-gradient(transparent, $color-main-background); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; } diff --git a/core/css/share.scss b/core/css/share.scss index 35d90fb4b88..2a9f357bc38 100644 --- a/core/css/share.scss +++ b/core/css/share.scss @@ -149,7 +149,7 @@ a { } #link { - border-top: 1px solid nc-lighten($color-main-text, 86%); + border-top: 1px solid nc-darken($color-main-background, 14%); padding-top: 8px; #showPassword img { padding-left: 5px; diff --git a/core/css/styles.scss b/core/css/styles.scss index be0b200ce35..3b621d69862 100644 --- a/core/css/styles.scss +++ b/core/css/styles.scss @@ -361,7 +361,7 @@ body { } a { color: $color-primary-text; - border-bottom: 1px solid nc-lighten($color-main-text, 73%); + border-bottom: 1px solid nc-darken($color-main-background, 27%); } } .infogroup { @@ -627,7 +627,7 @@ label.infield { background: nc-darken($color-main-background, 3%); color: nc-lighten($color-main-text, 53%); cursor: pointer; - border: 1px solid nc-lighten($color-main-text, 86%); + border: 1px solid nc-darken($color-main-background, 14%); span { cursor: pointer; padding: 10px 20px; @@ -925,31 +925,40 @@ code { font-family: 'Lucida Console', 'Lucida Sans Typewriter', 'DejaVu Sans Mono', monospace; } -#quota { +#body-settings #quota { cursor: default; margin: 30px !important; position: relative; padding: 0 !important; + progress { + height: 36px; + &::-moz-progress-bar { + border-radius: 3px 0 0 3px; + } + &::-webkit-progress-value { + border-radius: 3px 0 0 3px; + } + } div { - padding: 0; - background-color: nc-darken($color-main-background, 10%); font-weight: normal; white-space: nowrap; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; - min-width: 1%; - max-width: 100%; + position: absolute;; + top: 0; + &.quotatext-bg { + mix-blend-mode: luminosity; + } + &.quotatext-fg { + color: $color-primary-text; + overflow: hidden; + z-index: 50; + max-width: 100%; + } + .quotatext { + padding: .6em 1em; + } } } -#quotatext { - padding: .6em 1em; -} - -#quota div.quota-warning { - background-color: $color-warning; -} - .pager { list-style: none; float: right; @@ -1053,7 +1062,7 @@ code { } .ui-datepicker-prev, .ui-datepicker-next { - border: nc-lighten($color-main-text, 86%); + border: nc-darken($color-main-background, 14%); background: $color-main-background; } @@ -1276,7 +1285,7 @@ span.ui-icon { } .scrollarea { overflow: auto; - border: 1px solid nc-lighten($color-main-text, 86%); + border: 1px solid nc-darken($color-main-background, 14%); width: 100%; height: 240px; } diff --git a/core/js/apps.js b/core/js/apps.js index 4daab5ce4c4..8aebbbd418c 100644 --- a/core/js/apps.js +++ b/core/js/apps.js @@ -78,11 +78,15 @@ area.slideUp(OC.menuSpeed*4, function() { area.trigger(new $.Event('hide')); }); + area.removeClass('opened'); + $(button).removeClass('opened'); } function showArea() { area.slideDown(OC.menuSpeed*4, function() { area.trigger(new $.Event('show')); }); + area.addClass('opened'); + $(button).addClass('opened'); var input = $(areaSelector + ' [autofocus]'); if (input.length === 1) { input.focus(); diff --git a/core/js/contactsmenu.js b/core/js/contactsmenu.js index 6d57ae72e65..8d08ea74f4c 100644 --- a/core/js/contactsmenu.js +++ b/core/js/contactsmenu.js @@ -26,6 +26,7 @@ 'use strict'; var MENU_TEMPLATE = '' + + '<label class="hidden-visually" for="contactsmenu-search">' + t('core', 'Search contacts …') + '</label>' + '<input id="contactsmenu-search" type="search" placeholder="' + t('core', 'Search contacts …') + '" value="{{searchTerm}}">' + '<div class="content">' + '</div>'; @@ -51,7 +52,7 @@ var CONTACT_TEMPLATE = '' + '{{#if contact.avatar}}' + '<img src="{{contact.avatar}}&size=32" class="avatar"' - + 'srcset="{{contact.avatar}}&size=32 1x, {{contact.avatar}}&size=64 2x, {{contact.avatar}}&size=128 4x">' + + 'srcset="{{contact.avatar}}&size=32 1x, {{contact.avatar}}&size=64 2x, {{contact.avatar}}&size=128 4x" alt="">' + '{{else}}' + '<div class="avatar"></div>' + '{{/if}}' @@ -61,12 +62,12 @@ + '</div>' + '{{#if contact.topAction}}' + '<a class="top-action" href="{{contact.topAction.hyperlink}}" title="{{contact.topAction.title}}">' - + ' <img src="{{contact.topAction.icon}}">' + + ' <img src="{{contact.topAction.icon}}" alt="{{contact.topAction.title}}">' + '</a>' + '{{/if}}' + '{{#if contact.hasTwoActions}}' + '<a class="second-action" href="{{contact.secondAction.hyperlink}}" title="{{contact.secondAction.title}}">' - + ' <img src="{{contact.secondAction.icon}}">' + + ' <img src="{{contact.secondAction.icon}}" alt="{{contact.secondAction.title}}">' + '</a>' + '{{/if}}' + '{{#if contact.hasManyActions}}' @@ -76,7 +77,7 @@ + ' {{#each contact.actions}}' + ' <li>' + ' <a href="{{hyperlink}}">' - + ' <img src="{{icon}}">' + + ' <img src="{{icon}}" alt="">' + ' <span>{{title}}</span>' + ' </a>' + ' </li>' @@ -224,7 +225,7 @@ })); this.delegateEvents(); - // Show placeholder iff no avatar is available (avatar is rendered as img, not div) + // Show placeholder if no avatar is available (avatar is rendered as img, not div) this.$('div.avatar').imageplaceholder(this._model.get('fullName')); // Show tooltip for top action @@ -286,6 +287,9 @@ /** @type {undefined|ContactCollection} */ _contacts: undefined, + /** @type {string} */ + _searchTerm: '', + events: { 'input #contactsmenu-search': '_onSearch' }, @@ -293,8 +297,16 @@ /** * @returns {undefined} */ - _onSearch: _.debounce(function() { - this.trigger('search', this.$('#contactsmenu-search').val()); + _onSearch: _.debounce(function(e) { + var searchTerm = this.$('#contactsmenu-search').val(); + // IE11 triggers an 'input' event after the view has been rendered + // resulting in an endless loading loop. To prevent this, we remember + // the last search term to savely ignore some events + // See https://github.com/nextcloud/server/issues/5281 + if (searchTerm !== this._searchTerm) { + this.trigger('search', this.$('#contactsmenu-search').val()); + this._searchTerm = searchTerm; + } }, 700), /** diff --git a/core/js/jquery.avatar.js b/core/js/jquery.avatar.js index a320496e250..54518c75cc7 100644 --- a/core/js/jquery.avatar.js +++ b/core/js/jquery.avatar.js @@ -126,9 +126,9 @@ } else { $div.show(); if (ie8fix === true) { - $div.html('<img width="' + size + '" height="' + size + '" src="'+url+'#'+Math.floor(Math.random()*1000)+'">'); + $div.html('<img width="' + size + '" height="' + size + '" src="'+url+'#'+Math.floor(Math.random()*1000)+'" alt="">'); } else { - $div.html('<img width="' + size + '" height="' + size + '" src="'+url+'">'); + $div.html('<img width="' + size + '" height="' + size + '" src="'+url+'" alt="">'); } } if(typeof callback === 'function') { diff --git a/core/js/jquery.ocdialog.js b/core/js/jquery.ocdialog.js index 555b35e59ff..f3a54119e78 100644 --- a/core/js/jquery.ocdialog.js +++ b/core/js/jquery.ocdialog.js @@ -212,8 +212,10 @@ // Ugly hack to catch remaining keyup events. setTimeout(function() { self._trigger('close', self); - self.$dialog.hide(); }, 200); + + self.$dialog.remove(); + this.destroy(); }, destroy: function() { if(this.$title) { diff --git a/core/js/singleselect.js b/core/js/singleselect.js index cd0dd52651a..94f7da82640 100644 --- a/core/js/singleselect.js +++ b/core/js/singleselect.js @@ -42,7 +42,6 @@ input.tipsy({gravity: gravity, trigger: 'manual'}); input.tipsy('show'); } - select.css('background-color', 'white'); input.focus(); } }); diff --git a/core/l10n/ast.js b/core/l10n/ast.js index fabd65f64c9..93f9b3de1d7 100644 --- a/core/l10n/ast.js +++ b/core/l10n/ast.js @@ -17,10 +17,10 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Nun pudo reaniciase la contraseña porque'l pase nun ye válidu", "Couldn't reset password because the token is expired" : "Nun pudo reaniciase la contraseña porque'l caducó'l pase", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nun pudo unviase'l corréu de reaniciu porque nun hai direición de corréu dala pa esti nome d'usuariu. Contauta col to alministrador, por favor.", + "%s password reset" : "%s restablecer contraseña", "Password reset" : "Reaniciu de contrseña", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Primi nel botón de darréu pa reaniciar la to contraseña. Si nun solicitesti esto, entós inora esti corréu.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Primi nel botón de darréu pa reaniciar la to contraseña. Si nun solicitesti esto, entós inora esti corréu.", - "%s password reset" : "%s restablecer contraseña", "Couldn't send reset email. Please contact your administrator." : "Nun pudo unviase'l corréu de reaniciu. Contauta col to alministrador, por favor.", "Couldn't send reset email. Please make sure your username is correct." : "Nun pudo unviase'l corréu. Asegurate que'l to nome d'usuariu seya correutu, por favor", "Preparing update" : "Tresnando anovamientu", @@ -214,7 +214,6 @@ OC.L10N.register( "See the documentation" : "Mira la documentación", "More apps" : "Más aplicaciones", "Search" : "Guetar", - "This action requires you to confirm your password:" : "Esta aición rique que confirmes la to contraseña", "Confirm your password" : "Confirma la to contraseña", "Server side authentication failed!" : "Falló l'autenticación nel sirvidor!", "Please contact your administrator." : "Por favor, contauta col to alministrador", @@ -273,6 +272,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "El sirvidor alcontró un fallu internu y nun foi a completar la to solicitú.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Contauta col alministrador de sistemes si esti fallu volvi apaecer más vegaes ya inclúi los detalles téunicos d'embaxo nel to informe, por favor.", "Log out" : "Zarrar sesión", + "This action requires you to confirm your password:" : "Esta aición rique que confirmes la to contraseña", "Use the following link to reset your password: {link}" : "Usa'l siguiente enllaz pa restablecer la to contraseña: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola, ¿qué hai?,<br><br>namái déxamos dicite que %s compartió <strong>%s</strong> contigo.\n<br><a href=\"%s\">¡Velu!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud ta en mou d'usuariu únicu.", diff --git a/core/l10n/ast.json b/core/l10n/ast.json index 78364fbcd41..5f640be2e47 100644 --- a/core/l10n/ast.json +++ b/core/l10n/ast.json @@ -15,10 +15,10 @@ "Couldn't reset password because the token is invalid" : "Nun pudo reaniciase la contraseña porque'l pase nun ye válidu", "Couldn't reset password because the token is expired" : "Nun pudo reaniciase la contraseña porque'l caducó'l pase", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nun pudo unviase'l corréu de reaniciu porque nun hai direición de corréu dala pa esti nome d'usuariu. Contauta col to alministrador, por favor.", + "%s password reset" : "%s restablecer contraseña", "Password reset" : "Reaniciu de contrseña", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Primi nel botón de darréu pa reaniciar la to contraseña. Si nun solicitesti esto, entós inora esti corréu.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Primi nel botón de darréu pa reaniciar la to contraseña. Si nun solicitesti esto, entós inora esti corréu.", - "%s password reset" : "%s restablecer contraseña", "Couldn't send reset email. Please contact your administrator." : "Nun pudo unviase'l corréu de reaniciu. Contauta col to alministrador, por favor.", "Couldn't send reset email. Please make sure your username is correct." : "Nun pudo unviase'l corréu. Asegurate que'l to nome d'usuariu seya correutu, por favor", "Preparing update" : "Tresnando anovamientu", @@ -212,7 +212,6 @@ "See the documentation" : "Mira la documentación", "More apps" : "Más aplicaciones", "Search" : "Guetar", - "This action requires you to confirm your password:" : "Esta aición rique que confirmes la to contraseña", "Confirm your password" : "Confirma la to contraseña", "Server side authentication failed!" : "Falló l'autenticación nel sirvidor!", "Please contact your administrator." : "Por favor, contauta col to alministrador", @@ -271,6 +270,7 @@ "The server encountered an internal error and was unable to complete your request." : "El sirvidor alcontró un fallu internu y nun foi a completar la to solicitú.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Contauta col alministrador de sistemes si esti fallu volvi apaecer más vegaes ya inclúi los detalles téunicos d'embaxo nel to informe, por favor.", "Log out" : "Zarrar sesión", + "This action requires you to confirm your password:" : "Esta aición rique que confirmes la to contraseña", "Use the following link to reset your password: {link}" : "Usa'l siguiente enllaz pa restablecer la to contraseña: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola, ¿qué hai?,<br><br>namái déxamos dicite que %s compartió <strong>%s</strong> contigo.\n<br><a href=\"%s\">¡Velu!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud ta en mou d'usuariu únicu.", diff --git a/core/l10n/bg.js b/core/l10n/bg.js index 54f0b7fd51b..06579226f53 100644 --- a/core/l10n/bg.js +++ b/core/l10n/bg.js @@ -209,7 +209,6 @@ OC.L10N.register( "See the documentation" : "Прегледайте документацията", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "За да функционира приложението изисква JavaScript. Моля, {linkstart}включете JavaScript{linkend} и презаредете страницата.", "Search" : "Търсене", - "This action requires you to confirm your password:" : "Това действие изисква да потвърдите паролата си:", "Confirm your password" : "Потвърдете паролата си", "Server side authentication failed!" : "Удостоверяването от страна на сървъра е неуспешно!", "Please contact your administrator." : "Моля, свържете се с администратора.", @@ -278,6 +277,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Сървърът се натъкна на вътрешна грешка и неуспя да завърши заявката.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Моля, свържете се със сървърния администратор, ако тази грешка се появи отново. Също така Ви Молим да включите техническите данни, показани в доклада по-долу.", "Log out" : "Отписване", + "This action requires you to confirm your password:" : "Това действие изисква да потвърдите паролата си:", "Use the following link to reset your password: {link}" : "Използвайте следната връзка, за да възстановите паролата си: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Здравейте,<br><br>само ви уведомяваме, че %s сподели <strong>%s</strong> с вас.\n<br><a href=\"%s\">Разгледай го!</a><br><br>.", "This Nextcloud instance is currently in single user mode." : "В момента този Nextcloud е в режим допускащ само един потребител.", diff --git a/core/l10n/bg.json b/core/l10n/bg.json index a11c604a4e9..f7fe7026d45 100644 --- a/core/l10n/bg.json +++ b/core/l10n/bg.json @@ -207,7 +207,6 @@ "See the documentation" : "Прегледайте документацията", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "За да функционира приложението изисква JavaScript. Моля, {linkstart}включете JavaScript{linkend} и презаредете страницата.", "Search" : "Търсене", - "This action requires you to confirm your password:" : "Това действие изисква да потвърдите паролата си:", "Confirm your password" : "Потвърдете паролата си", "Server side authentication failed!" : "Удостоверяването от страна на сървъра е неуспешно!", "Please contact your administrator." : "Моля, свържете се с администратора.", @@ -276,6 +275,7 @@ "The server encountered an internal error and was unable to complete your request." : "Сървърът се натъкна на вътрешна грешка и неуспя да завърши заявката.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Моля, свържете се със сървърния администратор, ако тази грешка се появи отново. Също така Ви Молим да включите техническите данни, показани в доклада по-долу.", "Log out" : "Отписване", + "This action requires you to confirm your password:" : "Това действие изисква да потвърдите паролата си:", "Use the following link to reset your password: {link}" : "Използвайте следната връзка, за да възстановите паролата си: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Здравейте,<br><br>само ви уведомяваме, че %s сподели <strong>%s</strong> с вас.\n<br><a href=\"%s\">Разгледай го!</a><br><br>.", "This Nextcloud instance is currently in single user mode." : "В момента този Nextcloud е в режим допускащ само един потребител.", diff --git a/core/l10n/ca.js b/core/l10n/ca.js index f74f409200b..454f6caba7f 100644 --- a/core/l10n/ca.js +++ b/core/l10n/ca.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "No es pot restablir la contrasenya perquè el testimoni no és vàlid", "Couldn't reset password because the token is expired" : "No es pot restablir la contrasenya perquè el testimoni ha vençut", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No s'ha pogut enviar correu de restabliment. No hi ha correu per aquest compte. Contacteu amb l'administrador.", + "%s password reset" : "restableix la contrasenya %s", "Password reset" : "Canvi de contrasenya", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Prem el següent botó per reinicialitzar la teva contrasenya. Si no has sol·licitat un canvi de contrasenya, ignora aquest correu.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Feu clic al següent enllaç per restablir la contrasenya. Si no sol·liciteu la reinicialització de contrasenya, llavors ignoreu aquest correu electrònic.", "Reset your password" : "Canvia la teva contrasenya", - "%s password reset" : "restableix la contrasenya %s", "Couldn't send reset email. Please contact your administrator." : "No s'ha pogut restablir el correu. Contacteu amb l'administrador.", "Couldn't send reset email. Please make sure your username is correct." : "No s'ha pogut enviar el correu de restabliment. Assegureu-vos que el vostre nom d'usuari és correcte.", "Preparing update" : "Preparant l'actualització", @@ -262,7 +262,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aquesta aplicació requereix Javascript per al seu correcte funcionament . Per favor, {linkstart}habiliti Javascript{linkend} i torni a carregar la pàgina.", "More apps" : "Més aplicacions", "Search" : "Cerca", - "This action requires you to confirm your password:" : "Aquesta acció necessita que confirmis la teva contrasenya:", "Confirm your password" : "Confirma la teva contrasenya", "Server side authentication failed!" : "L'autenticació del servidor ha fallat!", "Please contact your administrator." : "Contacteu amb l'administrador.", @@ -342,6 +341,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "El servidor ha trobat un error intern i no pot finalitzar la teva petició.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Per favor, posi's en contacte amb l'administrador del servidor si aquest error torna a aparèixer diverses vegades, per favor inclogui els detalls tècnics de baix en el seu informe.", "Log out" : "Surt", + "This action requires you to confirm your password:" : "Aquesta acció necessita que confirmis la teva contrasenya:", "Use the following link to reset your password: {link}" : "Useu l'enllaç següent per restablir la contrasenya: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Ei, <br><br>només fer-vos saber que %s us ha comparti <strong>%s</strong>. <br><a href=\"%s\">Mireu-ho!</a>", "This Nextcloud instance is currently in single user mode." : "La instància Nextcloud està en mode d'usuari únic.", diff --git a/core/l10n/ca.json b/core/l10n/ca.json index b973c6cfc10..f77a61a463d 100644 --- a/core/l10n/ca.json +++ b/core/l10n/ca.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "No es pot restablir la contrasenya perquè el testimoni no és vàlid", "Couldn't reset password because the token is expired" : "No es pot restablir la contrasenya perquè el testimoni ha vençut", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No s'ha pogut enviar correu de restabliment. No hi ha correu per aquest compte. Contacteu amb l'administrador.", + "%s password reset" : "restableix la contrasenya %s", "Password reset" : "Canvi de contrasenya", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Prem el següent botó per reinicialitzar la teva contrasenya. Si no has sol·licitat un canvi de contrasenya, ignora aquest correu.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Feu clic al següent enllaç per restablir la contrasenya. Si no sol·liciteu la reinicialització de contrasenya, llavors ignoreu aquest correu electrònic.", "Reset your password" : "Canvia la teva contrasenya", - "%s password reset" : "restableix la contrasenya %s", "Couldn't send reset email. Please contact your administrator." : "No s'ha pogut restablir el correu. Contacteu amb l'administrador.", "Couldn't send reset email. Please make sure your username is correct." : "No s'ha pogut enviar el correu de restabliment. Assegureu-vos que el vostre nom d'usuari és correcte.", "Preparing update" : "Preparant l'actualització", @@ -260,7 +260,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aquesta aplicació requereix Javascript per al seu correcte funcionament . Per favor, {linkstart}habiliti Javascript{linkend} i torni a carregar la pàgina.", "More apps" : "Més aplicacions", "Search" : "Cerca", - "This action requires you to confirm your password:" : "Aquesta acció necessita que confirmis la teva contrasenya:", "Confirm your password" : "Confirma la teva contrasenya", "Server side authentication failed!" : "L'autenticació del servidor ha fallat!", "Please contact your administrator." : "Contacteu amb l'administrador.", @@ -340,6 +339,7 @@ "The server encountered an internal error and was unable to complete your request." : "El servidor ha trobat un error intern i no pot finalitzar la teva petició.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Per favor, posi's en contacte amb l'administrador del servidor si aquest error torna a aparèixer diverses vegades, per favor inclogui els detalls tècnics de baix en el seu informe.", "Log out" : "Surt", + "This action requires you to confirm your password:" : "Aquesta acció necessita que confirmis la teva contrasenya:", "Use the following link to reset your password: {link}" : "Useu l'enllaç següent per restablir la contrasenya: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Ei, <br><br>només fer-vos saber que %s us ha comparti <strong>%s</strong>. <br><a href=\"%s\">Mireu-ho!</a>", "This Nextcloud instance is currently in single user mode." : "La instància Nextcloud està en mode d'usuari únic.", diff --git a/core/l10n/cs.js b/core/l10n/cs.js index 5f5a29b358b..10ad4aff0db 100644 --- a/core/l10n/cs.js +++ b/core/l10n/cs.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu", "Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu vypršení tokenu", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat email pro změnu hesla, protože u tohoto uživatelského jména není uvedena emailová adresa. Kontaktujte prosím svého administrátora.", + "%s password reset" : "reset hesla %s", "Password reset" : "Reset hesla", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat své heslo, klikněte na tlačítko níže. Pokud jste o resetování hesla nežádali, tento e-mail ignorujte.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat vaše heslo, klikněte na následující odkaz. Pokud jste o reset nežádali, tento e-mail ignorujte.", "Reset your password" : "Resetovat vaše heslo", - "%s password reset" : "reset hesla %s", "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat email pro změnu hesla. Kontaktujte svého správce systému.", "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.", "Preparing update" : "Příprava na aktualizaci", @@ -222,6 +222,8 @@ OC.L10N.register( "The specified document has not been found on the server." : "Požadovaný dokument nebyl na serveru nalezen.", "You can click here to return to %s." : "Klikněte zde pro návrat na %s.", "Internal Server Error" : "Vnitřní chyba serveru", + "The server was unable to complete your request." : "Server nemohl dokončit váš požadavek.", + "If this happens again, please send the technical details below to the server administrator." : "Pokud se to stane znovu, pošlete níže uvedené technické detaily administrátorovi serveru.", "More details can be found in the server log." : "Více podrobností k nalezení v serverovém logu.", "Technical details" : "Technické detaily", "Remote Address: %s" : "Vzdálená adresa: %s", @@ -260,7 +262,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tato aplikace potřebuje pro správnou funkčnost JavaScript. Prosím {linkstart}povolte JavaScript{linkend} a znovu načtěte stránku.", "More apps" : "Více aplikací", "Search" : "Hledat", - "This action requires you to confirm your password:" : "Tato akce vyžaduje potvrzení vašeho hesla:", "Confirm your password" : "Potvrdit heslo", "Server side authentication failed!" : "Autentizace na serveru selhala!", "Please contact your administrator." : "Kontaktujte prosím svého správce systému.", @@ -285,6 +286,9 @@ OC.L10N.register( "Cancel log in" : "Zrušit přihlášení", "Use backup code" : "Použít záložní kód", "Error while validating your second factor" : "Chyba při ověřování druhého faktoru", + "Access through untrusted domain" : "Přístup skrz nedůvěryhodnou doménu", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Prosím kontaktujte vašeho administrátora. Pokud jste administrátor, upravte konfigurační hodnotu \"trusted_domains\" v config/config.php podle příkladu v config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "V závislosti na vaší konfiguraci by pro označení domény za důvěryhodnou mohlo fungovat i toto tlačítko:", "Add \"%s\" as trusted domain" : "Přidat \"%s\" jako důvěryhodnou doménu", "App update required" : "Vyžadována aktualizace aplikace", "%s will be updated to version %s" : "%s bude aktualizován na verzi %s", @@ -337,6 +341,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Server zaznamenal interní chybu a nebyl schopen dokončit váš požadavek.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kontaktujte prosím správce serveru, pokud se bude tato chyba opakovat. Připojte do svého hlášení níže zobrazené technické detaily.", "Log out" : "Odhlásit se", + "This action requires you to confirm your password:" : "Tato akce vyžaduje potvrzení vašeho hesla:", "Use the following link to reset your password: {link}" : "Heslo obnovíte použitím následujícího odkazu: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Ahoj,<br><br>jen ti dávám vědět, že s tebou %s sdílí <strong>%s</strong>.<br><a href=\"%s\">Zkontroluj to!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Tato instalace Nextcloudu je momentálně v jednouživatelském módu.", diff --git a/core/l10n/cs.json b/core/l10n/cs.json index 5869e144a60..f13530970ae 100644 --- a/core/l10n/cs.json +++ b/core/l10n/cs.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu", "Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu vypršení tokenu", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat email pro změnu hesla, protože u tohoto uživatelského jména není uvedena emailová adresa. Kontaktujte prosím svého administrátora.", + "%s password reset" : "reset hesla %s", "Password reset" : "Reset hesla", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat své heslo, klikněte na tlačítko níže. Pokud jste o resetování hesla nežádali, tento e-mail ignorujte.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat vaše heslo, klikněte na následující odkaz. Pokud jste o reset nežádali, tento e-mail ignorujte.", "Reset your password" : "Resetovat vaše heslo", - "%s password reset" : "reset hesla %s", "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat email pro změnu hesla. Kontaktujte svého správce systému.", "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.", "Preparing update" : "Příprava na aktualizaci", @@ -220,6 +220,8 @@ "The specified document has not been found on the server." : "Požadovaný dokument nebyl na serveru nalezen.", "You can click here to return to %s." : "Klikněte zde pro návrat na %s.", "Internal Server Error" : "Vnitřní chyba serveru", + "The server was unable to complete your request." : "Server nemohl dokončit váš požadavek.", + "If this happens again, please send the technical details below to the server administrator." : "Pokud se to stane znovu, pošlete níže uvedené technické detaily administrátorovi serveru.", "More details can be found in the server log." : "Více podrobností k nalezení v serverovém logu.", "Technical details" : "Technické detaily", "Remote Address: %s" : "Vzdálená adresa: %s", @@ -258,7 +260,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tato aplikace potřebuje pro správnou funkčnost JavaScript. Prosím {linkstart}povolte JavaScript{linkend} a znovu načtěte stránku.", "More apps" : "Více aplikací", "Search" : "Hledat", - "This action requires you to confirm your password:" : "Tato akce vyžaduje potvrzení vašeho hesla:", "Confirm your password" : "Potvrdit heslo", "Server side authentication failed!" : "Autentizace na serveru selhala!", "Please contact your administrator." : "Kontaktujte prosím svého správce systému.", @@ -283,6 +284,9 @@ "Cancel log in" : "Zrušit přihlášení", "Use backup code" : "Použít záložní kód", "Error while validating your second factor" : "Chyba při ověřování druhého faktoru", + "Access through untrusted domain" : "Přístup skrz nedůvěryhodnou doménu", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Prosím kontaktujte vašeho administrátora. Pokud jste administrátor, upravte konfigurační hodnotu \"trusted_domains\" v config/config.php podle příkladu v config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "V závislosti na vaší konfiguraci by pro označení domény za důvěryhodnou mohlo fungovat i toto tlačítko:", "Add \"%s\" as trusted domain" : "Přidat \"%s\" jako důvěryhodnou doménu", "App update required" : "Vyžadována aktualizace aplikace", "%s will be updated to version %s" : "%s bude aktualizován na verzi %s", @@ -335,6 +339,7 @@ "The server encountered an internal error and was unable to complete your request." : "Server zaznamenal interní chybu a nebyl schopen dokončit váš požadavek.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kontaktujte prosím správce serveru, pokud se bude tato chyba opakovat. Připojte do svého hlášení níže zobrazené technické detaily.", "Log out" : "Odhlásit se", + "This action requires you to confirm your password:" : "Tato akce vyžaduje potvrzení vašeho hesla:", "Use the following link to reset your password: {link}" : "Heslo obnovíte použitím následujícího odkazu: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Ahoj,<br><br>jen ti dávám vědět, že s tebou %s sdílí <strong>%s</strong>.<br><a href=\"%s\">Zkontroluj to!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Tato instalace Nextcloudu je momentálně v jednouživatelském módu.", diff --git a/core/l10n/da.js b/core/l10n/da.js index 976872e324f..24cb3280918 100644 --- a/core/l10n/da.js +++ b/core/l10n/da.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Kunne ikke nulstille adgangkoden, da \"token\" ugyldigt", "Couldn't reset password because the token is expired" : "Kunne ikke nulstille adgangskoden, da \"token\" er udløbet", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kunne ikke sende e-mail om nulstilling af adgangskode, da der ikke er knyttet en e-mail-adresse til dette brugernavn. Kontakt venligst din administrator.", + "%s password reset" : "%s adgangskode nulstillet", "Password reset" : "Nulstil adgangskode", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klik på knappen for at nulstille din adgangskode. Hvis ikke det er dig selv der har efterspurgt at få nulstillet din adgangskode, ignorer denne e-mail.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klik på linket for at nulstille din adgangskode. Hvis ikke det er dig selv der har efterspurgt at få nulstillet din adgangskode, ignorer denne e-mail.", "Reset your password" : "Nulstil din adgangskode", - "%s password reset" : "%s adgangskode nulstillet", "Couldn't send reset email. Please contact your administrator." : "Der opstod et problem under afsending af e-mailen til nulstilling. Kontakt venligst din administrator.", "Couldn't send reset email. Please make sure your username is correct." : "Der opstod et problem under afsendelse af nulstillings e-mailen. Kontroller venligst om dit brugernavnet er korrekt.", "Preparing update" : "Forbereder opdatering", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikation kræver JavaScript for at fungere korrekt. {linkstart}Slå venligst JavaScript til{linkend} og genindlæs siden.", "More apps" : "Flere apps", "Search" : "Søg", - "This action requires you to confirm your password:" : "Denne handling kræver at du bekræfter dit kodeord:", + "Reset search" : "Nulstil søgning", "Confirm your password" : "Bekræft dit password", "Server side authentication failed!" : "Server side godkendelse mislykkedes!", "Please contact your administrator." : "Kontakt venligst din administrator.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Servern stødte på en intern fejl og var ikke i stand til at fuldføre din forespørgsel.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kontakt venligst serveradministratoren, hvis denne fejl gentager sig flere gange - medtag venligst de tekniske detaljer nedenfor i din rapport.", "Log out" : "Log ud", + "This action requires you to confirm your password:" : "Denne handling kræver at du bekræfter dit kodeord:", "Use the following link to reset your password: {link}" : "Anvend følgende link til at nulstille din adgangskode: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hej med dig,<br><br>Dette er blot for at informere dig om, at %s har delt <strong>%s</strong> med dig.<br><a href=\"%s\">Se det her!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Denne Nextcloud instans er lige nu i enkeltbruger tilstand.", diff --git a/core/l10n/da.json b/core/l10n/da.json index bec587d031d..bfa7d422058 100644 --- a/core/l10n/da.json +++ b/core/l10n/da.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Kunne ikke nulstille adgangkoden, da \"token\" ugyldigt", "Couldn't reset password because the token is expired" : "Kunne ikke nulstille adgangskoden, da \"token\" er udløbet", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kunne ikke sende e-mail om nulstilling af adgangskode, da der ikke er knyttet en e-mail-adresse til dette brugernavn. Kontakt venligst din administrator.", + "%s password reset" : "%s adgangskode nulstillet", "Password reset" : "Nulstil adgangskode", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klik på knappen for at nulstille din adgangskode. Hvis ikke det er dig selv der har efterspurgt at få nulstillet din adgangskode, ignorer denne e-mail.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klik på linket for at nulstille din adgangskode. Hvis ikke det er dig selv der har efterspurgt at få nulstillet din adgangskode, ignorer denne e-mail.", "Reset your password" : "Nulstil din adgangskode", - "%s password reset" : "%s adgangskode nulstillet", "Couldn't send reset email. Please contact your administrator." : "Der opstod et problem under afsending af e-mailen til nulstilling. Kontakt venligst din administrator.", "Couldn't send reset email. Please make sure your username is correct." : "Der opstod et problem under afsendelse af nulstillings e-mailen. Kontroller venligst om dit brugernavnet er korrekt.", "Preparing update" : "Forbereder opdatering", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikation kræver JavaScript for at fungere korrekt. {linkstart}Slå venligst JavaScript til{linkend} og genindlæs siden.", "More apps" : "Flere apps", "Search" : "Søg", - "This action requires you to confirm your password:" : "Denne handling kræver at du bekræfter dit kodeord:", + "Reset search" : "Nulstil søgning", "Confirm your password" : "Bekræft dit password", "Server side authentication failed!" : "Server side godkendelse mislykkedes!", "Please contact your administrator." : "Kontakt venligst din administrator.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Servern stødte på en intern fejl og var ikke i stand til at fuldføre din forespørgsel.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kontakt venligst serveradministratoren, hvis denne fejl gentager sig flere gange - medtag venligst de tekniske detaljer nedenfor i din rapport.", "Log out" : "Log ud", + "This action requires you to confirm your password:" : "Denne handling kræver at du bekræfter dit kodeord:", "Use the following link to reset your password: {link}" : "Anvend følgende link til at nulstille din adgangskode: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hej med dig,<br><br>Dette er blot for at informere dig om, at %s har delt <strong>%s</strong> med dig.<br><a href=\"%s\">Se det her!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Denne Nextcloud instans er lige nu i enkeltbruger tilstand.", diff --git a/core/l10n/de.js b/core/l10n/de.js index b6975f79d54..0c43389a016 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Das Passwort konnte aufgrund eines ungültigen Tokens nicht zurückgesetzt werden", "Couldn't reset password because the token is expired" : "Das Passwort konnte nicht zurückgesetzt werden, da das Token abgelaufen ist", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Es konnte keine E-Mail verschickt werden um das Passwort zurückzusetzten, da keine E-Mail im Benutzerkonto hinterlegt ist. Bitte kontaktiere deinen Administrator.", + "%s password reset" : "%s-Passwort zurücksetzen", "Password reset" : "Passwort zurücksetzen", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klicke zum Zurücksetzen des Passworts auf die folgende Schaltfläche. Wenn du das Zurücksetzen des Passworts nicht angefordert hast, ignoriere diese E-Mail.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klicke zum Zurücksetzen des Passworts auf den folgenden Link. Wenn du das Zurücksetzen des Passworts nicht angefordert hast, ignoriere diese E-Mail.", "Reset your password" : "Setze dein Passwort zurück", - "%s password reset" : "%s-Passwort zurücksetzen", "Couldn't send reset email. Please contact your administrator." : "Die E-Mail zum Zurücksetzen konnte nicht versendet werden. Bitte kontaktiere Deinen Administrator.", "Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte Deinen Benutzernamen überprüfen.", "Preparing update" : "Update vorbereiten", @@ -223,7 +223,7 @@ OC.L10N.register( "You can click here to return to %s." : "Hier klicken, um zu %s zurückzukehren.", "Internal Server Error" : "Interner Serverfehler", "The server was unable to complete your request." : "Der Server konnte die Anfrage nicht fertig stellen.", - "If this happens again, please send the technical details below to the server administrator." : "Sollte dies erneut auftreten, sende die nachfolgenden technischen EInzelheiten bitte an Deinen Server-Administrator.", + "If this happens again, please send the technical details below to the server administrator." : "Sollte dies erneut auftreten, sende bitte die nachfolgenden technischen Einzelheiten an Deinen Server-Administrator.", "More details can be found in the server log." : "Weitere Details können im Server-Protokoll gefunden werden.", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt JavaScript zum ordnungsgemäßen Betrieb. Bitte {linkstart}aktiviere JavaScript{linkend} und lade die Seite neu.", "More apps" : "Weitere Apps", "Search" : "Suche", - "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Dir:", + "Reset search" : "Suche zurücksetzen", "Confirm your password" : "Bestätige Dein Passwort", "Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!", "Please contact your administrator." : "Bitte kontaktiere den Administrator.", @@ -274,7 +274,7 @@ OC.L10N.register( "Log in" : "Anmelden", "Stay logged in" : "Angemeldet bleiben", "Alternative Logins" : "Alternative Anmeldung", - "Account access" : "Konto Zugriff ", + "Account access" : "Kontozugriff ", "You are about to grant %s access to your %s account." : "Du bist dabei, %s Zugriff auf Dein %s-Konto zu gewähren.", "App token" : "App-Token", "Alternative login using app token" : "Alternative Anmeldung via App-Token", @@ -287,8 +287,8 @@ OC.L10N.register( "Cancel log in" : "Anmeldung abbrechen", "Use backup code" : "Backup-Code benutzen", "Error while validating your second factor" : "Fehler beim Bestätigen des zweiten Sicherheitsfaktors", - "Access through untrusted domain" : "Zugriff über eine nicht vertauenswürdige Domain", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Bitte kontaktiere deinen Administrator. Wenn du Administrator bist, bearbeite die „trusted_domains“-Einstellung in config/config.php wie in der Beispiels- config/config.sample.php.", + "Access through untrusted domain" : "Zugriff über eine nicht vertrauenswürdige Domain", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Bitte kontaktiere deinen Administrator. Wenn du Administrator bist, bearbeite die „trusted_domains“-Einstellung in config/config.php. Siehe Beispiel in config/config.sample.php.", "Depending on your configuration, this button could also work to trust the domain:" : "Abhängig von Deiner Konfiguration kann diese Schaltfläche verwandt werden, um die Domain als vertrauenswürdig einzustufen:", "Add \"%s\" as trusted domain" : "„%s“ als vertrauenswürdige Domain hinzufügen", "App update required" : "App-Aktualisierung notwendig", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Der Server hat einen internen Fehler und konnte Deine Anfrage nicht vervollständigen.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Bitte wende dich an den Serveradministrator, wenn dieser Fehler mehrfach auftritt, gebe bitte die, unten stehenden, technischen Details in Deinem Bericht mit an.", "Log out" : "Abmelden", + "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Dir:", "Use the following link to reset your password: {link}" : "Verwende den folgenden Link, um Dein Passwort zurückzusetzen: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hallo,<br><br>hier nur kurz die Mitteilung, dass %s <strong>%s</strong> mit Dir geteilt hat.<br><a href=\"%s\">Sieh es Dir an!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Diese Nextcloud-Instanz befindet sich derzeit im Einzelbenutzermodus.", diff --git a/core/l10n/de.json b/core/l10n/de.json index 6cf69743f47..78d850c4129 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Das Passwort konnte aufgrund eines ungültigen Tokens nicht zurückgesetzt werden", "Couldn't reset password because the token is expired" : "Das Passwort konnte nicht zurückgesetzt werden, da das Token abgelaufen ist", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Es konnte keine E-Mail verschickt werden um das Passwort zurückzusetzten, da keine E-Mail im Benutzerkonto hinterlegt ist. Bitte kontaktiere deinen Administrator.", + "%s password reset" : "%s-Passwort zurücksetzen", "Password reset" : "Passwort zurücksetzen", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klicke zum Zurücksetzen des Passworts auf die folgende Schaltfläche. Wenn du das Zurücksetzen des Passworts nicht angefordert hast, ignoriere diese E-Mail.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klicke zum Zurücksetzen des Passworts auf den folgenden Link. Wenn du das Zurücksetzen des Passworts nicht angefordert hast, ignoriere diese E-Mail.", "Reset your password" : "Setze dein Passwort zurück", - "%s password reset" : "%s-Passwort zurücksetzen", "Couldn't send reset email. Please contact your administrator." : "Die E-Mail zum Zurücksetzen konnte nicht versendet werden. Bitte kontaktiere Deinen Administrator.", "Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte Deinen Benutzernamen überprüfen.", "Preparing update" : "Update vorbereiten", @@ -221,7 +221,7 @@ "You can click here to return to %s." : "Hier klicken, um zu %s zurückzukehren.", "Internal Server Error" : "Interner Serverfehler", "The server was unable to complete your request." : "Der Server konnte die Anfrage nicht fertig stellen.", - "If this happens again, please send the technical details below to the server administrator." : "Sollte dies erneut auftreten, sende die nachfolgenden technischen EInzelheiten bitte an Deinen Server-Administrator.", + "If this happens again, please send the technical details below to the server administrator." : "Sollte dies erneut auftreten, sende bitte die nachfolgenden technischen Einzelheiten an Deinen Server-Administrator.", "More details can be found in the server log." : "Weitere Details können im Server-Protokoll gefunden werden.", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt JavaScript zum ordnungsgemäßen Betrieb. Bitte {linkstart}aktiviere JavaScript{linkend} und lade die Seite neu.", "More apps" : "Weitere Apps", "Search" : "Suche", - "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Dir:", + "Reset search" : "Suche zurücksetzen", "Confirm your password" : "Bestätige Dein Passwort", "Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!", "Please contact your administrator." : "Bitte kontaktiere den Administrator.", @@ -272,7 +272,7 @@ "Log in" : "Anmelden", "Stay logged in" : "Angemeldet bleiben", "Alternative Logins" : "Alternative Anmeldung", - "Account access" : "Konto Zugriff ", + "Account access" : "Kontozugriff ", "You are about to grant %s access to your %s account." : "Du bist dabei, %s Zugriff auf Dein %s-Konto zu gewähren.", "App token" : "App-Token", "Alternative login using app token" : "Alternative Anmeldung via App-Token", @@ -285,8 +285,8 @@ "Cancel log in" : "Anmeldung abbrechen", "Use backup code" : "Backup-Code benutzen", "Error while validating your second factor" : "Fehler beim Bestätigen des zweiten Sicherheitsfaktors", - "Access through untrusted domain" : "Zugriff über eine nicht vertauenswürdige Domain", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Bitte kontaktiere deinen Administrator. Wenn du Administrator bist, bearbeite die „trusted_domains“-Einstellung in config/config.php wie in der Beispiels- config/config.sample.php.", + "Access through untrusted domain" : "Zugriff über eine nicht vertrauenswürdige Domain", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Bitte kontaktiere deinen Administrator. Wenn du Administrator bist, bearbeite die „trusted_domains“-Einstellung in config/config.php. Siehe Beispiel in config/config.sample.php.", "Depending on your configuration, this button could also work to trust the domain:" : "Abhängig von Deiner Konfiguration kann diese Schaltfläche verwandt werden, um die Domain als vertrauenswürdig einzustufen:", "Add \"%s\" as trusted domain" : "„%s“ als vertrauenswürdige Domain hinzufügen", "App update required" : "App-Aktualisierung notwendig", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Der Server hat einen internen Fehler und konnte Deine Anfrage nicht vervollständigen.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Bitte wende dich an den Serveradministrator, wenn dieser Fehler mehrfach auftritt, gebe bitte die, unten stehenden, technischen Details in Deinem Bericht mit an.", "Log out" : "Abmelden", + "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Dir:", "Use the following link to reset your password: {link}" : "Verwende den folgenden Link, um Dein Passwort zurückzusetzen: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hallo,<br><br>hier nur kurz die Mitteilung, dass %s <strong>%s</strong> mit Dir geteilt hat.<br><a href=\"%s\">Sieh es Dir an!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Diese Nextcloud-Instanz befindet sich derzeit im Einzelbenutzermodus.", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 44482a3f1d0..4be3dc6addd 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Das Passwort konnte aufgrund eines ungültigen Tokens nicht zurückgesetzt werden", "Couldn't reset password because the token is expired" : "Das Passwort konnte nicht zurückgesetzt werden, da das Token abgelaufen ist", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Es konnte keine E-Mail verschickt werden um das Passwort zurückzusetzten, da keine E-Mail im Benutzerkonto hinterlegt ist. Bitte kontaktieren Sie den Administrator.", + "%s password reset" : "%s-Passwort zurücksetzen", "Password reset" : "Passwort zurücksetzen", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klicken Sie zum Zurücksetzen des Passworts auf die folgende Schaltfläche. Wenn Sie das Zurücksetzen des Passworts nicht angefordert haben, ignorieren Sie bitte diese E-Mail.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klicken Sie zum Zurücksetzen des Passworts auf den folgenden Link. Wenn Sie das Zurücksetzen des Passworts nicht angefordert haben, ignorieren Sie bitte diese E-Mail.", "Reset your password" : "Setzen Sie Ihr Passwort zurück", - "%s password reset" : "%s-Passwort zurücksetzen", "Couldn't send reset email. Please contact your administrator." : "Die E-Mail zum Zurücksetzen konnte nicht versendet werden. Bitte kontaktieren Sie Ihren Administrator.", "Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte stellen Sie sicher, dass Ihr Benutzername richtig ist.", "Preparing update" : "Update vorbereiten", @@ -223,7 +223,7 @@ OC.L10N.register( "You can click here to return to %s." : "Sie können zur Rückkehr zu %s hier klicken.", "Internal Server Error" : "Interner Serverfehler", "The server was unable to complete your request." : "Der Server konnte die Anfrage nicht fertig stellen.", - "If this happens again, please send the technical details below to the server administrator." : "Sollte dies erneut auftreten, senden Sie die nachfolgenden technischen EInzelheiten bitte an Ihren Server-Administrator.", + "If this happens again, please send the technical details below to the server administrator." : "Sollte dies erneut auftreten, senden Sie bitte die nachfolgenden technischen Einzelheiten an Ihren Server-Administrator.", "More details can be found in the server log." : "Weitere Details können im Server-Protokoll gefunden werden.", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt JavaScript zum ordnungsgemäßen Betrieb. Bitte {linkstart}aktivieren Sie JavaScript{linkend} und laden Sie die Seite neu.", "More apps" : "Weitere Apps", "Search" : "Suche", - "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Ihnen:", + "Reset search" : "Suche zurücksetzen", "Confirm your password" : "Bestätigen Sie Ihr Passwort", "Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!", "Please contact your administrator." : "Bitte kontaktieren Sie Ihren Administrator.", @@ -274,7 +274,7 @@ OC.L10N.register( "Log in" : "Anmelden", "Stay logged in" : "Angemeldet bleiben", "Alternative Logins" : "Alternative Anmeldung", - "Account access" : "Konto Zugriff ", + "Account access" : "Kontozugriff ", "You are about to grant %s access to your %s account." : "Sie sind dabei, %s Zugriff auf Ihr %s-Konto zu gewähren.", "App token" : "App-Token", "Alternative login using app token" : "Alternative Anmeldung via App-Token", @@ -287,9 +287,9 @@ OC.L10N.register( "Cancel log in" : "Anmeldung abbrechen", "Use backup code" : "Backup-Code benutzen", "Error while validating your second factor" : "Fehler beim Bestätigen des zweiten Sicherheitsfaktors", - "Access through untrusted domain" : "Zugriff über eine nicht vertauenswürdige Domain", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Bitte kontaktiere n Sie Ihren Administrator. Wenn Sie Administrator sind, bearbeiten Sie die „trusted_domains“-Einstellung in config/config.php wie in der Beispiels- config/config.sample.php.", - "Depending on your configuration, this button could also work to trust the domain:" : "Abhängig von Deiner Konfiguration kann diese Schaltfläche verwandt werden, um die Domain als vertrauenswürdig eizustufen:", + "Access through untrusted domain" : "Zugriff über eine nicht vertrauenswürdige Domain", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Bitte kontaktieren Sie Ihren Administrator. Wenn Sie Administrator sind, bearbeiten Sie die „trusted_domains“-Einstellung in config/config.php. Siehe Beispiel in config/config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "Abhängig von Ihrer Konfiguration kann diese Schaltfläche verwandt werden, um die Domain als vertrauenswürdig einzustufen:", "Add \"%s\" as trusted domain" : "„%s“ als vertrauenswürdige Domain hinzufügen", "App update required" : "App-Aktualisierung notwendig", "%s will be updated to version %s" : "%s wird auf Version %s aktualisiert", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Der Server hat einen internen Fehler und konnte Ihre Anfrage nicht vervollständigen.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Bitte wenden Sie sich an den Serveradministrator, wenn dieser Fehler mehrfach auftritt, geben Sie bitte die, unten stehenden, technischen Details in Ihrem Bericht mit an.", "Log out" : "Abmelden", + "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Ihnen:", "Use the following link to reset your password: {link}" : "Benutzen Sie den folgenden Link, um Ihr Passwort zurückzusetzen: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hallo,<br><br>hier nur kurz die Mitteilung, dass %s <strong>%s</strong> mit Ihnen geteilt hat.<br><a href=\"%s\">Sehen Sie es sich an!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Diese Nextcloud-Instanz befindet sich derzeit im Einzelbenutzermodus.", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index 5f4da5f5cd7..a75fc5667f7 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Das Passwort konnte aufgrund eines ungültigen Tokens nicht zurückgesetzt werden", "Couldn't reset password because the token is expired" : "Das Passwort konnte nicht zurückgesetzt werden, da das Token abgelaufen ist", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Es konnte keine E-Mail verschickt werden um das Passwort zurückzusetzten, da keine E-Mail im Benutzerkonto hinterlegt ist. Bitte kontaktieren Sie den Administrator.", + "%s password reset" : "%s-Passwort zurücksetzen", "Password reset" : "Passwort zurücksetzen", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klicken Sie zum Zurücksetzen des Passworts auf die folgende Schaltfläche. Wenn Sie das Zurücksetzen des Passworts nicht angefordert haben, ignorieren Sie bitte diese E-Mail.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klicken Sie zum Zurücksetzen des Passworts auf den folgenden Link. Wenn Sie das Zurücksetzen des Passworts nicht angefordert haben, ignorieren Sie bitte diese E-Mail.", "Reset your password" : "Setzen Sie Ihr Passwort zurück", - "%s password reset" : "%s-Passwort zurücksetzen", "Couldn't send reset email. Please contact your administrator." : "Die E-Mail zum Zurücksetzen konnte nicht versendet werden. Bitte kontaktieren Sie Ihren Administrator.", "Couldn't send reset email. Please make sure your username is correct." : "E-Mail zum Zurücksetzen kann nicht versendet werden. Bitte stellen Sie sicher, dass Ihr Benutzername richtig ist.", "Preparing update" : "Update vorbereiten", @@ -221,7 +221,7 @@ "You can click here to return to %s." : "Sie können zur Rückkehr zu %s hier klicken.", "Internal Server Error" : "Interner Serverfehler", "The server was unable to complete your request." : "Der Server konnte die Anfrage nicht fertig stellen.", - "If this happens again, please send the technical details below to the server administrator." : "Sollte dies erneut auftreten, senden Sie die nachfolgenden technischen EInzelheiten bitte an Ihren Server-Administrator.", + "If this happens again, please send the technical details below to the server administrator." : "Sollte dies erneut auftreten, senden Sie bitte die nachfolgenden technischen Einzelheiten an Ihren Server-Administrator.", "More details can be found in the server log." : "Weitere Details können im Server-Protokoll gefunden werden.", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt JavaScript zum ordnungsgemäßen Betrieb. Bitte {linkstart}aktivieren Sie JavaScript{linkend} und laden Sie die Seite neu.", "More apps" : "Weitere Apps", "Search" : "Suche", - "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Ihnen:", + "Reset search" : "Suche zurücksetzen", "Confirm your password" : "Bestätigen Sie Ihr Passwort", "Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!", "Please contact your administrator." : "Bitte kontaktieren Sie Ihren Administrator.", @@ -272,7 +272,7 @@ "Log in" : "Anmelden", "Stay logged in" : "Angemeldet bleiben", "Alternative Logins" : "Alternative Anmeldung", - "Account access" : "Konto Zugriff ", + "Account access" : "Kontozugriff ", "You are about to grant %s access to your %s account." : "Sie sind dabei, %s Zugriff auf Ihr %s-Konto zu gewähren.", "App token" : "App-Token", "Alternative login using app token" : "Alternative Anmeldung via App-Token", @@ -285,9 +285,9 @@ "Cancel log in" : "Anmeldung abbrechen", "Use backup code" : "Backup-Code benutzen", "Error while validating your second factor" : "Fehler beim Bestätigen des zweiten Sicherheitsfaktors", - "Access through untrusted domain" : "Zugriff über eine nicht vertauenswürdige Domain", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Bitte kontaktiere n Sie Ihren Administrator. Wenn Sie Administrator sind, bearbeiten Sie die „trusted_domains“-Einstellung in config/config.php wie in der Beispiels- config/config.sample.php.", - "Depending on your configuration, this button could also work to trust the domain:" : "Abhängig von Deiner Konfiguration kann diese Schaltfläche verwandt werden, um die Domain als vertrauenswürdig eizustufen:", + "Access through untrusted domain" : "Zugriff über eine nicht vertrauenswürdige Domain", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Bitte kontaktieren Sie Ihren Administrator. Wenn Sie Administrator sind, bearbeiten Sie die „trusted_domains“-Einstellung in config/config.php. Siehe Beispiel in config/config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "Abhängig von Ihrer Konfiguration kann diese Schaltfläche verwandt werden, um die Domain als vertrauenswürdig einzustufen:", "Add \"%s\" as trusted domain" : "„%s“ als vertrauenswürdige Domain hinzufügen", "App update required" : "App-Aktualisierung notwendig", "%s will be updated to version %s" : "%s wird auf Version %s aktualisiert", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Der Server hat einen internen Fehler und konnte Ihre Anfrage nicht vervollständigen.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Bitte wenden Sie sich an den Serveradministrator, wenn dieser Fehler mehrfach auftritt, geben Sie bitte die, unten stehenden, technischen Details in Ihrem Bericht mit an.", "Log out" : "Abmelden", + "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Ihnen:", "Use the following link to reset your password: {link}" : "Benutzen Sie den folgenden Link, um Ihr Passwort zurückzusetzen: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hallo,<br><br>hier nur kurz die Mitteilung, dass %s <strong>%s</strong> mit Ihnen geteilt hat.<br><a href=\"%s\">Sehen Sie es sich an!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Diese Nextcloud-Instanz befindet sich derzeit im Einzelbenutzermodus.", diff --git a/core/l10n/el.js b/core/l10n/el.js index d7a569f8272..6c552368c6e 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Αδυναμία επαναφοράς συνθηματικού λόγω μη έγκυρου αναγνωριστικού", "Couldn't reset password because the token is expired" : "Αδυναμία επαναφοράς συνθηματικού επειδή το αναγνωριστικό έχει λήξει", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Αδυναμία αποστολής ηλεκτρονικού μηνύματος επαναφοράς διότι δεν υπάρχει διεύθυνση ηλεκτρινικής αλληλογραφίας για αυτόν τον χρήστη. Παρακαλώ επικοινωνήστε με το διαχειριστή.", + "%s password reset" : "%s επαναφορά συνθηματικού", "Password reset" : "Επαναφορά συνθηματικού", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Κάντε κλικ στο παρακάτω κουμπί για να επαναφέρετε το συνθηματικό σας. Εάν δεν αιτηθήκατε επαναφορά συνθηματικού, αγνοήστε αυτό το μήνυμα αλληλογραφίας.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Κάντε κλικ στο παρακάτω σύνδεσμο για να επαναφέρετε το συνθηματικό σας. Εάν δεν αιτηθήκατε επαναφορά συνθηματικού, αγνοήστε αυτό το μήνυμα αλληλογραφίας.", "Reset your password" : "Επαναφέρετε το συνθηματικό σας", - "%s password reset" : "%s επαναφορά συνθηματικού", "Couldn't send reset email. Please contact your administrator." : "Αδυναμία αποστολής ηλεκτρονικού μηνύματος επαναφοράς. Παρακαλώ επικοινωνήστε με το διαχειριστή.", "Couldn't send reset email. Please make sure your username is correct." : "Αδυναμία αποστολής ηλεκτρονικού μηνύματος επαναφοράς. Παρακαλώ ελέγξτε ότι το όνομα χρήστη σας είναι σωστό.", "Preparing update" : "Προετοιμασία ενημέρωσης", @@ -257,7 +257,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Αυτή η εφαρμογή απαιτεί JavaScript για σωστή λειτουργία. Παρακαλώ {linkstart}ενεργοποιήστε τη JavaScrip{linkend} και φορτώστε ξανά τη σελίδα.", "More apps" : "Περισσότερες εφαρμογές", "Search" : "Αναζήτηση", - "This action requires you to confirm your password:" : "Αυτή η ενέργεια απαιτεί επιβεβαίωση του συνθηματικού σας:", "Confirm your password" : "Επιβεβαίωση συνθηματικού", "Server side authentication failed!" : "Αποτυχημένη πιστοποίηση από πλευράς διακομιστή!", "Please contact your administrator." : "Παρακαλούμε επικοινωνήστε με τον διαχειριστή.", @@ -332,6 +331,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Ο διακομιστής αντιμετώπισε ένα εσωτερικό σφάλμα και δεν μπόρεσε να ολοκληρώσει το αίτημά σας.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Παρακαλούμε επικοινωνήστε με το διαχειριστή του διακομιστή, εάν αυτό το σφάλμα επανεμφανίζεται πολλές φορές, παρακαλούμε να συμπεριλάβετε τις τεχνικές λεπτομέρειες παρακάτω στην αναφορά σας.", "Log out" : "Αποσύνδεση", + "This action requires you to confirm your password:" : "Αυτή η ενέργεια απαιτεί επιβεβαίωση του συνθηματικού σας:", "Use the following link to reset your password: {link}" : "Χρησιμοποιήστε τον ακόλουθο σύνδεσμο για να επαναφέρετε το συνθηματικό: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Γεια χαρά,<br><br>απλά σας ενημερώνω πως ο %s μοιράστηκε το<strong>%s</strong> με εσάς.<br><a href=\"%s\">Δείτε το!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Αυτή η εγκατάσταση Nextcloud είναι τώρα σε κατάσταση ενός χρήστη.", diff --git a/core/l10n/el.json b/core/l10n/el.json index d48a9ecc507..2b16448cd1d 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Αδυναμία επαναφοράς συνθηματικού λόγω μη έγκυρου αναγνωριστικού", "Couldn't reset password because the token is expired" : "Αδυναμία επαναφοράς συνθηματικού επειδή το αναγνωριστικό έχει λήξει", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Αδυναμία αποστολής ηλεκτρονικού μηνύματος επαναφοράς διότι δεν υπάρχει διεύθυνση ηλεκτρινικής αλληλογραφίας για αυτόν τον χρήστη. Παρακαλώ επικοινωνήστε με το διαχειριστή.", + "%s password reset" : "%s επαναφορά συνθηματικού", "Password reset" : "Επαναφορά συνθηματικού", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Κάντε κλικ στο παρακάτω κουμπί για να επαναφέρετε το συνθηματικό σας. Εάν δεν αιτηθήκατε επαναφορά συνθηματικού, αγνοήστε αυτό το μήνυμα αλληλογραφίας.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Κάντε κλικ στο παρακάτω σύνδεσμο για να επαναφέρετε το συνθηματικό σας. Εάν δεν αιτηθήκατε επαναφορά συνθηματικού, αγνοήστε αυτό το μήνυμα αλληλογραφίας.", "Reset your password" : "Επαναφέρετε το συνθηματικό σας", - "%s password reset" : "%s επαναφορά συνθηματικού", "Couldn't send reset email. Please contact your administrator." : "Αδυναμία αποστολής ηλεκτρονικού μηνύματος επαναφοράς. Παρακαλώ επικοινωνήστε με το διαχειριστή.", "Couldn't send reset email. Please make sure your username is correct." : "Αδυναμία αποστολής ηλεκτρονικού μηνύματος επαναφοράς. Παρακαλώ ελέγξτε ότι το όνομα χρήστη σας είναι σωστό.", "Preparing update" : "Προετοιμασία ενημέρωσης", @@ -255,7 +255,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Αυτή η εφαρμογή απαιτεί JavaScript για σωστή λειτουργία. Παρακαλώ {linkstart}ενεργοποιήστε τη JavaScrip{linkend} και φορτώστε ξανά τη σελίδα.", "More apps" : "Περισσότερες εφαρμογές", "Search" : "Αναζήτηση", - "This action requires you to confirm your password:" : "Αυτή η ενέργεια απαιτεί επιβεβαίωση του συνθηματικού σας:", "Confirm your password" : "Επιβεβαίωση συνθηματικού", "Server side authentication failed!" : "Αποτυχημένη πιστοποίηση από πλευράς διακομιστή!", "Please contact your administrator." : "Παρακαλούμε επικοινωνήστε με τον διαχειριστή.", @@ -330,6 +329,7 @@ "The server encountered an internal error and was unable to complete your request." : "Ο διακομιστής αντιμετώπισε ένα εσωτερικό σφάλμα και δεν μπόρεσε να ολοκληρώσει το αίτημά σας.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Παρακαλούμε επικοινωνήστε με το διαχειριστή του διακομιστή, εάν αυτό το σφάλμα επανεμφανίζεται πολλές φορές, παρακαλούμε να συμπεριλάβετε τις τεχνικές λεπτομέρειες παρακάτω στην αναφορά σας.", "Log out" : "Αποσύνδεση", + "This action requires you to confirm your password:" : "Αυτή η ενέργεια απαιτεί επιβεβαίωση του συνθηματικού σας:", "Use the following link to reset your password: {link}" : "Χρησιμοποιήστε τον ακόλουθο σύνδεσμο για να επαναφέρετε το συνθηματικό: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Γεια χαρά,<br><br>απλά σας ενημερώνω πως ο %s μοιράστηκε το<strong>%s</strong> με εσάς.<br><a href=\"%s\">Δείτε το!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Αυτή η εγκατάσταση Nextcloud είναι τώρα σε κατάσταση ενός χρήστη.", diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index b171f0aaeeb..a67257977b9 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Couldn't reset password because the token is invalid", "Couldn't reset password because the token is expired" : "Couldn't reset password because the token is expired", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Could not send reset email because there is no email address for this username. Please contact your administrator.", + "%s password reset" : "%s password reset", "Password reset" : "Password reset", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Click the following button to reset your password. If you have not requested the password reset, then ignore this email.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Click the following link to reset your password. If you have not requested the password reset, then ignore this email.", "Reset your password" : "Reset your password", - "%s password reset" : "%s password reset", "Couldn't send reset email. Please contact your administrator." : "Couldn't send reset email. Please contact your administrator.", "Couldn't send reset email. Please make sure your username is correct." : "Couldn't send reset email. Please make sure your username is correct.", "Preparing update" : "Preparing update", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.", "More apps" : "More apps", "Search" : "Search", - "This action requires you to confirm your password:" : "This action requires you to confirm your password:", + "Reset search" : "Reset search", "Confirm your password" : "Confirm your password", "Server side authentication failed!" : "Server side authentication failed!", "Please contact your administrator." : "Please contact your administrator.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "The server encountered an internal error and was unable to complete your request.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.", "Log out" : "Log out", + "This action requires you to confirm your password:" : "This action requires you to confirm your password:", "Use the following link to reset your password: {link}" : "Use the following link to reset your password: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "This Nextcloud instance is currently in single user mode.", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index b5a5322b056..1e762d6dbee 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Couldn't reset password because the token is invalid", "Couldn't reset password because the token is expired" : "Couldn't reset password because the token is expired", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Could not send reset email because there is no email address for this username. Please contact your administrator.", + "%s password reset" : "%s password reset", "Password reset" : "Password reset", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Click the following button to reset your password. If you have not requested the password reset, then ignore this email.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Click the following link to reset your password. If you have not requested the password reset, then ignore this email.", "Reset your password" : "Reset your password", - "%s password reset" : "%s password reset", "Couldn't send reset email. Please contact your administrator." : "Couldn't send reset email. Please contact your administrator.", "Couldn't send reset email. Please make sure your username is correct." : "Couldn't send reset email. Please make sure your username is correct.", "Preparing update" : "Preparing update", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.", "More apps" : "More apps", "Search" : "Search", - "This action requires you to confirm your password:" : "This action requires you to confirm your password:", + "Reset search" : "Reset search", "Confirm your password" : "Confirm your password", "Server side authentication failed!" : "Server side authentication failed!", "Please contact your administrator." : "Please contact your administrator.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "The server encountered an internal error and was unable to complete your request.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.", "Log out" : "Log out", + "This action requires you to confirm your password:" : "This action requires you to confirm your password:", "Use the following link to reset your password: {link}" : "Use the following link to reset your password: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "This Nextcloud instance is currently in single user mode.", diff --git a/core/l10n/es.js b/core/l10n/es.js index 6a92580cfe2..466279a7994 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "No se puede restablecer la contraseña porque el vale de identificación es inválido.", "Couldn't reset password because the token is expired" : "No se puede restablecer la contraseña porque el vale de identificación ha caducado.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No se pudo enviar el correo electrónico de restablecimiento porque no hay una dirección de correo electrónico para este nombre de usuario. Póngase en contacto con un administrador.", + "%s password reset" : "%s restablecer contraseña", "Password reset" : "Restablecer contraseña", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Presione el siguiente botón para resetear su contraseña. Si usted no ha solicitado el reseteo de la contraseña, entonces ignore este correo.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Presione el siguiente enlace para resetear su contraseña. Si usted no ha solicitado el reseteo de la contraseña, entonces ignore este correo.", "Reset your password" : "Resetear su contraseña", - "%s password reset" : "%s restablecer contraseña", "Couldn't send reset email. Please contact your administrator." : "No pudo enviarse el correo para restablecer la contraseña. Por favor, contacte con su administrador.", "Couldn't send reset email. Please make sure your username is correct." : "No se pudo enviar el correo electrónico para el restablecimiento. Por favor, asegúrese de que su nombre de usuario es el correcto.", "Preparing update" : "Preparando la actualización", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere JavaScript para operar correctamente. Por favor, {linkstart}habilite JavaScript{linkend} y recargue la página.", "More apps" : "Más aplicaciones", "Search" : "Buscar", - "This action requires you to confirm your password:" : "Esta acción requiere que confirme su contraseña:", + "Reset search" : "Resetear búsqueda", "Confirm your password" : "Confirme su contraseña", "Server side authentication failed!" : "La autenticación a fallado en el servidor.", "Please contact your administrator." : "Por favor, contacte con el administrador.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "El servidor ha encontrado un error y no puede completar la solicitud.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Por favor, contacte con el administrador del servidor si este error reaparece múltiples veces. Incluya asimismo los detalles técnicos que se muestran a continuación.", "Log out" : "Salir", + "This action requires you to confirm your password:" : "Esta acción requiere que confirme su contraseña:", "Use the following link to reset your password: {link}" : "Utilice el siguiente enlace para restablecer su contraseña: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola:<br><br>Te comentamos que %s compartió <strong>%s</strong> contigo.<br><a href=\"%s\">¡Échale un vistazo!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud se encuentra en modo de usuario único.", diff --git a/core/l10n/es.json b/core/l10n/es.json index d80374fedea..4bab17131a4 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "No se puede restablecer la contraseña porque el vale de identificación es inválido.", "Couldn't reset password because the token is expired" : "No se puede restablecer la contraseña porque el vale de identificación ha caducado.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No se pudo enviar el correo electrónico de restablecimiento porque no hay una dirección de correo electrónico para este nombre de usuario. Póngase en contacto con un administrador.", + "%s password reset" : "%s restablecer contraseña", "Password reset" : "Restablecer contraseña", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Presione el siguiente botón para resetear su contraseña. Si usted no ha solicitado el reseteo de la contraseña, entonces ignore este correo.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Presione el siguiente enlace para resetear su contraseña. Si usted no ha solicitado el reseteo de la contraseña, entonces ignore este correo.", "Reset your password" : "Resetear su contraseña", - "%s password reset" : "%s restablecer contraseña", "Couldn't send reset email. Please contact your administrator." : "No pudo enviarse el correo para restablecer la contraseña. Por favor, contacte con su administrador.", "Couldn't send reset email. Please make sure your username is correct." : "No se pudo enviar el correo electrónico para el restablecimiento. Por favor, asegúrese de que su nombre de usuario es el correcto.", "Preparing update" : "Preparando la actualización", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere JavaScript para operar correctamente. Por favor, {linkstart}habilite JavaScript{linkend} y recargue la página.", "More apps" : "Más aplicaciones", "Search" : "Buscar", - "This action requires you to confirm your password:" : "Esta acción requiere que confirme su contraseña:", + "Reset search" : "Resetear búsqueda", "Confirm your password" : "Confirme su contraseña", "Server side authentication failed!" : "La autenticación a fallado en el servidor.", "Please contact your administrator." : "Por favor, contacte con el administrador.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "El servidor ha encontrado un error y no puede completar la solicitud.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Por favor, contacte con el administrador del servidor si este error reaparece múltiples veces. Incluya asimismo los detalles técnicos que se muestran a continuación.", "Log out" : "Salir", + "This action requires you to confirm your password:" : "Esta acción requiere que confirme su contraseña:", "Use the following link to reset your password: {link}" : "Utilice el siguiente enlace para restablecer su contraseña: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola:<br><br>Te comentamos que %s compartió <strong>%s</strong> contigo.<br><a href=\"%s\">¡Échale un vistazo!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud se encuentra en modo de usuario único.", diff --git a/core/l10n/es_AR.js b/core/l10n/es_AR.js index 202c6b14ad8..5576fb87495 100644 --- a/core/l10n/es_AR.js +++ b/core/l10n/es_AR.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "No ha sido posible restablecer la contraseña porque el token es inválido", "Couldn't reset password because the token is expired" : "No ha sido posible restablecer la contraseña porque el token ha expirado", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No fue posible enviar el correo electrónico para restablecer porque no hay una dirección de correo electrónico para este usuario. Favor de contactar a su adminsitrador. ", + "%s password reset" : "%s restablecer la contraseña", "Password reset" : "Restablecer contraseña", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haga click en el siguiente botón para restablecer su contraseña. Si no ha solicitado restablecer su contraseña, favor de ignorar este correo. ", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haga click en el siguiente link para restablecer su contraseña. Si no ha solicitado restablecer la contraseña, favor de ignorar este mensaje. ", "Reset your password" : "Restablecer su contraseña", - "%s password reset" : "%s restablecer la contraseña", "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Favor de contactar a su adminsitrador. ", "Couldn't send reset email. Please make sure your username is correct." : "No fue posible restablecer el correo electrónico. Favor de asegurarse que su nombre de usuario sea correcto. ", "Preparing update" : "Preparando actualización", @@ -257,7 +257,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Favor de {linkstart}habilitar JavaScript{linkend} y vuelva a cargar la página. ", "More apps" : "Más aplicaciones", "Search" : "Buscar", - "This action requires you to confirm your password:" : "Esta acción requiere que confirme su contraseña:", "Confirm your password" : "Confirme su contraseña", "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", "Please contact your administrator." : "Favor de contactar al administrador.", @@ -334,6 +333,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Se presentó un error interno en el servidor y no fue posible completar su solicitud. ", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Favor de contactar al administrador del servidor si este problema se presenta en múltiples ocasiones, favor de incluir los detalles técnicos a continuación en su reporte. ", "Log out" : "Salir", + "This action requires you to confirm your password:" : "Esta acción requiere que confirme su contraseña:", "Use the following link to reset your password: {link}" : "Use el siguiente link para restablecer su contraseña: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola,<br><br> sólo queremos informarle que %s ha compartido <strong>%s</strong> con usted. <br><a href=\"%s\">¡Véalo!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud se encuentra en modo de usuario único.", diff --git a/core/l10n/es_AR.json b/core/l10n/es_AR.json index dfcf525a6e7..06b84fdec1b 100644 --- a/core/l10n/es_AR.json +++ b/core/l10n/es_AR.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "No ha sido posible restablecer la contraseña porque el token es inválido", "Couldn't reset password because the token is expired" : "No ha sido posible restablecer la contraseña porque el token ha expirado", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No fue posible enviar el correo electrónico para restablecer porque no hay una dirección de correo electrónico para este usuario. Favor de contactar a su adminsitrador. ", + "%s password reset" : "%s restablecer la contraseña", "Password reset" : "Restablecer contraseña", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haga click en el siguiente botón para restablecer su contraseña. Si no ha solicitado restablecer su contraseña, favor de ignorar este correo. ", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haga click en el siguiente link para restablecer su contraseña. Si no ha solicitado restablecer la contraseña, favor de ignorar este mensaje. ", "Reset your password" : "Restablecer su contraseña", - "%s password reset" : "%s restablecer la contraseña", "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Favor de contactar a su adminsitrador. ", "Couldn't send reset email. Please make sure your username is correct." : "No fue posible restablecer el correo electrónico. Favor de asegurarse que su nombre de usuario sea correcto. ", "Preparing update" : "Preparando actualización", @@ -255,7 +255,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Favor de {linkstart}habilitar JavaScript{linkend} y vuelva a cargar la página. ", "More apps" : "Más aplicaciones", "Search" : "Buscar", - "This action requires you to confirm your password:" : "Esta acción requiere que confirme su contraseña:", "Confirm your password" : "Confirme su contraseña", "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", "Please contact your administrator." : "Favor de contactar al administrador.", @@ -332,6 +331,7 @@ "The server encountered an internal error and was unable to complete your request." : "Se presentó un error interno en el servidor y no fue posible completar su solicitud. ", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Favor de contactar al administrador del servidor si este problema se presenta en múltiples ocasiones, favor de incluir los detalles técnicos a continuación en su reporte. ", "Log out" : "Salir", + "This action requires you to confirm your password:" : "Esta acción requiere que confirme su contraseña:", "Use the following link to reset your password: {link}" : "Use el siguiente link para restablecer su contraseña: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola,<br><br> sólo queremos informarle que %s ha compartido <strong>%s</strong> con usted. <br><a href=\"%s\">¡Véalo!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud se encuentra en modo de usuario único.", diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js index e934d028a61..c50523e1da8 100644 --- a/core/l10n/es_MX.js +++ b/core/l10n/es_MX.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "No ha sido posible restablecer la contraseña porque la ficha es inválida", "Couldn't reset password because the token is expired" : "No ha sido posible restablecer la contraseña porque la ficha ha expirado", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No fue posible enviar el correo electrónico para restablecer porque no hay una dirección de correo electrónico para este usuario. Por favor contacta a tu adminsitrador. ", + "%s password reset" : "%s restablecer la contraseña", "Password reset" : "Restablecer contraseña", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", "Reset your password" : "Restablecer tu contraseña", - "%s password reset" : "%s restablecer la contraseña", "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", "Couldn't send reset email. Please make sure your username is correct." : "No fue posible restablecer el correo electrónico. Por favor asegurarte de que tu nombre de usuario sea correcto. ", "Preparing update" : "Preparando actualización", @@ -262,14 +262,13 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", "More apps" : "Más aplicaciones", "Search" : "Buscar", - "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", "Confirm your password" : "Confirma tu contraseña", "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", "Please contact your administrator." : "Por favor contacta al administrador.", "An internal error occurred." : "Se presentó un error interno.", "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", "Username or email" : "Usuario o correo electrónico", - "Wrong password. Reset it?" : "Contraseña equivocada. ¿Deseas reestablecerla?", + "Wrong password. Reset it?" : "Contraseña equivocada. ¿Deseas restablecerla?", "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", @@ -342,6 +341,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Se presentó un error interno en el servidor y no fue posible completar tu solicitud. ", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Por favor contacta al administrador del servidor si este problema se presenta en múltiples ocasiones, por favor incluye los detalles técnicos siguientes en tu reporte. ", "Log out" : "Salir", + "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", "Use the following link to reset your password: {link}" : "Usa la siguiente liga para restablecer tu contraseña: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola,<br><br> sólo queremos informarte que %s ha compartido <strong>%s</strong> contigo. <br><a href=\"%s\">¡Velo!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud se encuentra en modo de usuario único.", diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json index c50d58f7885..52cdd973b40 100644 --- a/core/l10n/es_MX.json +++ b/core/l10n/es_MX.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "No ha sido posible restablecer la contraseña porque la ficha es inválida", "Couldn't reset password because the token is expired" : "No ha sido posible restablecer la contraseña porque la ficha ha expirado", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No fue posible enviar el correo electrónico para restablecer porque no hay una dirección de correo electrónico para este usuario. Por favor contacta a tu adminsitrador. ", + "%s password reset" : "%s restablecer la contraseña", "Password reset" : "Restablecer contraseña", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", "Reset your password" : "Restablecer tu contraseña", - "%s password reset" : "%s restablecer la contraseña", "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", "Couldn't send reset email. Please make sure your username is correct." : "No fue posible restablecer el correo electrónico. Por favor asegurarte de que tu nombre de usuario sea correcto. ", "Preparing update" : "Preparando actualización", @@ -260,14 +260,13 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", "More apps" : "Más aplicaciones", "Search" : "Buscar", - "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", "Confirm your password" : "Confirma tu contraseña", "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", "Please contact your administrator." : "Por favor contacta al administrador.", "An internal error occurred." : "Se presentó un error interno.", "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", "Username or email" : "Usuario o correo electrónico", - "Wrong password. Reset it?" : "Contraseña equivocada. ¿Deseas reestablecerla?", + "Wrong password. Reset it?" : "Contraseña equivocada. ¿Deseas restablecerla?", "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", @@ -340,6 +339,7 @@ "The server encountered an internal error and was unable to complete your request." : "Se presentó un error interno en el servidor y no fue posible completar tu solicitud. ", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Por favor contacta al administrador del servidor si este problema se presenta en múltiples ocasiones, por favor incluye los detalles técnicos siguientes en tu reporte. ", "Log out" : "Salir", + "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", "Use the following link to reset your password: {link}" : "Usa la siguiente liga para restablecer tu contraseña: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola,<br><br> sólo queremos informarte que %s ha compartido <strong>%s</strong> contigo. <br><a href=\"%s\">¡Velo!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud se encuentra en modo de usuario único.", diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js index 6dbfa4d1ddb..76376996287 100644 --- a/core/l10n/et_EE.js +++ b/core/l10n/et_EE.js @@ -18,11 +18,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Ei saanud parooli taastada, kuna märgend on vigane", "Couldn't reset password because the token is expired" : "Parooli ei saanud taastada, sest märgend on aegunud", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Ei saanud saata lähtestamise e-kirja kuna antud kasutajal puudub e-posti aadress. Palun kontakteeruge administraatoriga ", + "%s password reset" : "%s parooli lähtestus", "Password reset" : "Parooli taastamine ", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Kliki allolevale nupule, et taastada oma parool. Kui sa ei ole paroolitaastamist pärinud. siis ignoreeri seda e-kirja.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Kliki allolevale lingile, et taastada oma parool. Kui sa ei ole parooli taastamist pärinud. siis ignoreeri seda e-kirja.", "Reset your password" : "Lähtesta oma parool", - "%s password reset" : "%s parooli lähtestus", "Couldn't send reset email. Please contact your administrator." : "Ei suutnud lähtestada e-maili. Palun kontakteeru süsteemihalduriga.", "Couldn't send reset email. Please make sure your username is correct." : "Ei suutnud lähtestada e-maili. Palun veendu, et kasutajatunnus on õige.", "Preparing update" : "Uuendamise ettevalmistamine", @@ -214,7 +214,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "See rakendus vajab toimimiseks JavaScripti. Palun {linkstart}luba JavaScript{linkend} ning laadi see leht uuesti.", "More apps" : "Veel rakendusi", "Search" : "Otsi", - "This action requires you to confirm your password:" : "See tegevus nõuab parooli kinnitamist", "Confirm your password" : "Kinnita oma parool", "Server side authentication failed!" : "Serveripoolne autentimine ebaõnnestus!", "Please contact your administrator." : "Palun kontakteeru oma süsteemihalduriga.", @@ -283,6 +282,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Serveris tekkis sisemine tõrge ja sinu päringu täitmine ebaõnnestus.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kui seda veateadet näidatakse mitu korda, siis palun võta ühendust serveri administraatoriga. Palun lisa alla aruandesse tehnilised üksikasjad.", "Log out" : "Logi välja", + "This action requires you to confirm your password:" : "See tegevus nõuab parooli kinnitamist", "Use the following link to reset your password: {link}" : "Kasuta järgnevat linki oma parooli taastamiseks: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hei,<br><br>annan teada, et %s jagas sinuga <strong>%s</strong>. <a href=\"%s\">Vaata seda!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "See Nextcloud on momendil seadistatud ühe kasutaja jaoks.", diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json index a77307456dd..1376eff80c6 100644 --- a/core/l10n/et_EE.json +++ b/core/l10n/et_EE.json @@ -16,11 +16,11 @@ "Couldn't reset password because the token is invalid" : "Ei saanud parooli taastada, kuna märgend on vigane", "Couldn't reset password because the token is expired" : "Parooli ei saanud taastada, sest märgend on aegunud", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Ei saanud saata lähtestamise e-kirja kuna antud kasutajal puudub e-posti aadress. Palun kontakteeruge administraatoriga ", + "%s password reset" : "%s parooli lähtestus", "Password reset" : "Parooli taastamine ", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Kliki allolevale nupule, et taastada oma parool. Kui sa ei ole paroolitaastamist pärinud. siis ignoreeri seda e-kirja.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Kliki allolevale lingile, et taastada oma parool. Kui sa ei ole parooli taastamist pärinud. siis ignoreeri seda e-kirja.", "Reset your password" : "Lähtesta oma parool", - "%s password reset" : "%s parooli lähtestus", "Couldn't send reset email. Please contact your administrator." : "Ei suutnud lähtestada e-maili. Palun kontakteeru süsteemihalduriga.", "Couldn't send reset email. Please make sure your username is correct." : "Ei suutnud lähtestada e-maili. Palun veendu, et kasutajatunnus on õige.", "Preparing update" : "Uuendamise ettevalmistamine", @@ -212,7 +212,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "See rakendus vajab toimimiseks JavaScripti. Palun {linkstart}luba JavaScript{linkend} ning laadi see leht uuesti.", "More apps" : "Veel rakendusi", "Search" : "Otsi", - "This action requires you to confirm your password:" : "See tegevus nõuab parooli kinnitamist", "Confirm your password" : "Kinnita oma parool", "Server side authentication failed!" : "Serveripoolne autentimine ebaõnnestus!", "Please contact your administrator." : "Palun kontakteeru oma süsteemihalduriga.", @@ -281,6 +280,7 @@ "The server encountered an internal error and was unable to complete your request." : "Serveris tekkis sisemine tõrge ja sinu päringu täitmine ebaõnnestus.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kui seda veateadet näidatakse mitu korda, siis palun võta ühendust serveri administraatoriga. Palun lisa alla aruandesse tehnilised üksikasjad.", "Log out" : "Logi välja", + "This action requires you to confirm your password:" : "See tegevus nõuab parooli kinnitamist", "Use the following link to reset your password: {link}" : "Kasuta järgnevat linki oma parooli taastamiseks: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hei,<br><br>annan teada, et %s jagas sinuga <strong>%s</strong>. <a href=\"%s\">Vaata seda!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "See Nextcloud on momendil seadistatud ühe kasutaja jaoks.", diff --git a/core/l10n/eu.js b/core/l10n/eu.js index ecf14802c43..96df4005ce4 100644 --- a/core/l10n/eu.js +++ b/core/l10n/eu.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Ezin izan da pasahitza berrezarri tokena baliogabea delako", "Couldn't reset password because the token is expired" : "Ezin da berrezarri pasahitza token-a iraungi duelako.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Ezin izan da berreskuratze posta elektronikoa bidali helbiderik ez dagoelako erabiltzaile honetarako. Jarri harremanetan administratzailearekin.", + "%s password reset" : "%s pasahitza berrezarri", "Password reset" : "Pasahitza berrezarri", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Egin klik ondoko botoian zure pasahitza berrezartzeko. Ez baduzu pasahitzaren berrezarpena eskatu ahaztu e-posta hau.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Egin klik ondoko estekan zure pasahitza berrezartzeko. Ez baduzu pasahitzaren berrezarpena eskatu ahaztu e-posta hau.", "Reset your password" : "Berrezarri zure pasahitza", - "%s password reset" : "%s pasahitza berrezarri", "Couldn't send reset email. Please contact your administrator." : "Ezin da berrezartzeko eposta bidali. Mesedez jarri harremetan zure administradorearekin.", "Couldn't send reset email. Please make sure your username is correct." : "Ezin izan da berrezartzeko eposta bidali. Ziurtatu zure erabiltzaile izena egokia dela.", "Preparing update" : "Eguneratzea prestatzen", @@ -250,7 +250,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.", "More apps" : "Aplikazio gehiago", "Search" : "Bilatu", - "This action requires you to confirm your password:" : "Ekintza honek zure pasahitza konfirmatzeko eskatuko dizu:", "Confirm your password" : "Berretsi pasahitza", "Server side authentication failed!" : "Zerbitzari aldeko autentifikazioak huts egin du!", "Please contact your administrator." : "Mesedez jarri harremetan zure administradorearekin.", @@ -323,6 +322,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Zerbitzariak barne errore bat izan du eta ez da gai izan zure eskaria osatzeko.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Mesedez harremanetan jarri zerbitzariaren kudeatzailearekin errore hau aldi askotan agertzekotan, mesedez gehitu beheko zehaztapen teknikoak zure txostenean.", "Log out" : "Saioa bukatu", + "This action requires you to confirm your password:" : "Ekintza honek zure pasahitza konfirmatzeko eskatuko dizu:", "Use the following link to reset your password: {link}" : "Eribili hurrengo lotura zure pasahitza berrezartzeko: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Kaixo<br><br>%s-ek %s zurekin partekatu duela jakin dezazun.\nIkusi ezazu: %s", "This Nextcloud instance is currently in single user mode." : "Nextcloud instantzia hau erabiltzaile bakar moduan dago.", diff --git a/core/l10n/eu.json b/core/l10n/eu.json index 4177198ae72..98a751370ef 100644 --- a/core/l10n/eu.json +++ b/core/l10n/eu.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Ezin izan da pasahitza berrezarri tokena baliogabea delako", "Couldn't reset password because the token is expired" : "Ezin da berrezarri pasahitza token-a iraungi duelako.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Ezin izan da berreskuratze posta elektronikoa bidali helbiderik ez dagoelako erabiltzaile honetarako. Jarri harremanetan administratzailearekin.", + "%s password reset" : "%s pasahitza berrezarri", "Password reset" : "Pasahitza berrezarri", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Egin klik ondoko botoian zure pasahitza berrezartzeko. Ez baduzu pasahitzaren berrezarpena eskatu ahaztu e-posta hau.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Egin klik ondoko estekan zure pasahitza berrezartzeko. Ez baduzu pasahitzaren berrezarpena eskatu ahaztu e-posta hau.", "Reset your password" : "Berrezarri zure pasahitza", - "%s password reset" : "%s pasahitza berrezarri", "Couldn't send reset email. Please contact your administrator." : "Ezin da berrezartzeko eposta bidali. Mesedez jarri harremetan zure administradorearekin.", "Couldn't send reset email. Please make sure your username is correct." : "Ezin izan da berrezartzeko eposta bidali. Ziurtatu zure erabiltzaile izena egokia dela.", "Preparing update" : "Eguneratzea prestatzen", @@ -248,7 +248,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.", "More apps" : "Aplikazio gehiago", "Search" : "Bilatu", - "This action requires you to confirm your password:" : "Ekintza honek zure pasahitza konfirmatzeko eskatuko dizu:", "Confirm your password" : "Berretsi pasahitza", "Server side authentication failed!" : "Zerbitzari aldeko autentifikazioak huts egin du!", "Please contact your administrator." : "Mesedez jarri harremetan zure administradorearekin.", @@ -321,6 +320,7 @@ "The server encountered an internal error and was unable to complete your request." : "Zerbitzariak barne errore bat izan du eta ez da gai izan zure eskaria osatzeko.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Mesedez harremanetan jarri zerbitzariaren kudeatzailearekin errore hau aldi askotan agertzekotan, mesedez gehitu beheko zehaztapen teknikoak zure txostenean.", "Log out" : "Saioa bukatu", + "This action requires you to confirm your password:" : "Ekintza honek zure pasahitza konfirmatzeko eskatuko dizu:", "Use the following link to reset your password: {link}" : "Eribili hurrengo lotura zure pasahitza berrezartzeko: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Kaixo<br><br>%s-ek %s zurekin partekatu duela jakin dezazun.\nIkusi ezazu: %s", "This Nextcloud instance is currently in single user mode." : "Nextcloud instantzia hau erabiltzaile bakar moduan dago.", diff --git a/core/l10n/fa.js b/core/l10n/fa.js index 0096829bab5..68f3a240fe5 100644 --- a/core/l10n/fa.js +++ b/core/l10n/fa.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "تنظیم مجدد گذرواژه میسر نیست, Token نامعتبر است", "Couldn't reset password because the token is expired" : "تنظیم مجدد گذرواژه میسر نیست, Token منقضی شده است", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "ایمیل بازنشانی ارسال نشد, زیرا هیچ نشانی ایمیل برای این نام کاربری وجود ندارد. لطفا با ادمین خود تماس بگیرید.", + "%s password reset" : "%s رمزعبور تغییر کرد", "Password reset" : "تنظیم مجدد رمز عبور", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "برای بازنشانی رمز عبور خود، روی دکمه زیر کلیک کنید. اگر شما تنظیم مجدد رمز عبور را درخواست نکردید، این ایمیل را نادیده بگیرید.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "برای بازنشانی رمز عبور خود، روی لینک زیر کلیک کنید. اگر شما تنظیم مجدد رمز عبور را درخواست نکردید، این ایمیل را نادیده بگیرید.", "Reset your password" : "تنظیم مجدد رمز عبور", - "%s password reset" : "%s رمزعبور تغییر کرد", "Couldn't send reset email. Please contact your administrator." : "ارسال ایمیل مجدد با مشکل مواجه شد . لطفا با مدیر سیستم تماس بگیرید .", "Couldn't send reset email. Please make sure your username is correct." : "پست الکترونیکی بازنشانی نشد, لطفا مطمئن شوید که نام کاربری شما درست است", "Preparing update" : "آمادهسازی به روز رسانی", @@ -85,6 +85,7 @@ OC.L10N.register( "No files in here" : "هیچ فایلی اینجا وجود ندارد", "Choose" : "انتخاب کردن", "Copy" : "کپی", + "Move" : "انتقال", "Error loading file picker template: {error}" : "خطا در بارگذاری قالب انتخاب فایل : {error}", "OK" : "تایید", "Error loading message template: {error}" : "خطا در بارگذاری قالب پیام : {error}", @@ -100,6 +101,8 @@ OC.L10N.register( "({count} selected)" : "({count} انتخاب شده)", "Error loading file exists template" : "خطا در بارگزاری فایل قالب", "Pending" : "در انتظار", + "Copy to {folder}" : "کپی به {folder}", + "Move to {folder}" : "انتقال به {folder}", "Very weak password" : "رمز عبور بسیار ضعیف", "Weak password" : "رمز عبور ضعیف", "So-so password" : "رمز عبور متوسط", @@ -250,13 +253,13 @@ OC.L10N.register( "Please specify the port number along with the host name (e.g., localhost:5432)." : "Please specify the port number along with the host name (e.g., localhost:5432).", "Performance warning" : "اخطار کارایی", "SQLite will be used as database." : "SQLite به عنوان پایگاهداده استفاده خواهد شد.", + "For larger installations we recommend to choose a different database backend." : "برای نصب و راه اندازی بزرگتر توصیه می کنیم یک پایگاه داده متفاوتی را انتخاب کنید.", "Finish setup" : "اتمام نصب", "Finishing …" : "در حال اتمام ...", "Need help?" : "کمک لازم دارید ؟", "See the documentation" : "مشاهدهی مستندات", "More apps" : "برنامه های بیشتر", "Search" : "جستوجو", - "This action requires you to confirm your password:" : "این اقدام نیاز به تایید رمز عبور شما دارد", "Confirm your password" : "گذرواژه خود را تأیید کنید", "Server side authentication failed!" : "تأیید هویت از سوی سرور انجام نشد!", "Please contact your administrator." : "لطفا با مدیر وبسایت تماس بگیرید.", @@ -269,6 +272,7 @@ OC.L10N.register( "Stay logged in" : "در سیستم بمانید", "Alternative Logins" : "ورود متناوب", "Account access" : "دسترسی به حساب", + "App token" : "App token", "New password" : "گذرواژه جدید", "New Password" : "رمزعبور جدید", "Reset password" : "تنظیم مجدد رمز عبور", @@ -304,6 +308,7 @@ OC.L10N.register( "The share will expire on %s." : "اشتراکگذاری در %s منقضی خواهد شد.", "Cheers!" : "سلامتی!", "Log out" : "خروج", + "This action requires you to confirm your password:" : "این اقدام نیاز به تایید رمز عبور شما دارد", "Use the following link to reset your password: {link}" : "از لینک زیر جهت دوباره سازی پسورد استفاده کنید :\n{link}" }, "nplurals=1; plural=0;"); diff --git a/core/l10n/fa.json b/core/l10n/fa.json index 95b3730b146..e2d767db377 100644 --- a/core/l10n/fa.json +++ b/core/l10n/fa.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "تنظیم مجدد گذرواژه میسر نیست, Token نامعتبر است", "Couldn't reset password because the token is expired" : "تنظیم مجدد گذرواژه میسر نیست, Token منقضی شده است", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "ایمیل بازنشانی ارسال نشد, زیرا هیچ نشانی ایمیل برای این نام کاربری وجود ندارد. لطفا با ادمین خود تماس بگیرید.", + "%s password reset" : "%s رمزعبور تغییر کرد", "Password reset" : "تنظیم مجدد رمز عبور", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "برای بازنشانی رمز عبور خود، روی دکمه زیر کلیک کنید. اگر شما تنظیم مجدد رمز عبور را درخواست نکردید، این ایمیل را نادیده بگیرید.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "برای بازنشانی رمز عبور خود، روی لینک زیر کلیک کنید. اگر شما تنظیم مجدد رمز عبور را درخواست نکردید، این ایمیل را نادیده بگیرید.", "Reset your password" : "تنظیم مجدد رمز عبور", - "%s password reset" : "%s رمزعبور تغییر کرد", "Couldn't send reset email. Please contact your administrator." : "ارسال ایمیل مجدد با مشکل مواجه شد . لطفا با مدیر سیستم تماس بگیرید .", "Couldn't send reset email. Please make sure your username is correct." : "پست الکترونیکی بازنشانی نشد, لطفا مطمئن شوید که نام کاربری شما درست است", "Preparing update" : "آمادهسازی به روز رسانی", @@ -83,6 +83,7 @@ "No files in here" : "هیچ فایلی اینجا وجود ندارد", "Choose" : "انتخاب کردن", "Copy" : "کپی", + "Move" : "انتقال", "Error loading file picker template: {error}" : "خطا در بارگذاری قالب انتخاب فایل : {error}", "OK" : "تایید", "Error loading message template: {error}" : "خطا در بارگذاری قالب پیام : {error}", @@ -98,6 +99,8 @@ "({count} selected)" : "({count} انتخاب شده)", "Error loading file exists template" : "خطا در بارگزاری فایل قالب", "Pending" : "در انتظار", + "Copy to {folder}" : "کپی به {folder}", + "Move to {folder}" : "انتقال به {folder}", "Very weak password" : "رمز عبور بسیار ضعیف", "Weak password" : "رمز عبور ضعیف", "So-so password" : "رمز عبور متوسط", @@ -248,13 +251,13 @@ "Please specify the port number along with the host name (e.g., localhost:5432)." : "Please specify the port number along with the host name (e.g., localhost:5432).", "Performance warning" : "اخطار کارایی", "SQLite will be used as database." : "SQLite به عنوان پایگاهداده استفاده خواهد شد.", + "For larger installations we recommend to choose a different database backend." : "برای نصب و راه اندازی بزرگتر توصیه می کنیم یک پایگاه داده متفاوتی را انتخاب کنید.", "Finish setup" : "اتمام نصب", "Finishing …" : "در حال اتمام ...", "Need help?" : "کمک لازم دارید ؟", "See the documentation" : "مشاهدهی مستندات", "More apps" : "برنامه های بیشتر", "Search" : "جستوجو", - "This action requires you to confirm your password:" : "این اقدام نیاز به تایید رمز عبور شما دارد", "Confirm your password" : "گذرواژه خود را تأیید کنید", "Server side authentication failed!" : "تأیید هویت از سوی سرور انجام نشد!", "Please contact your administrator." : "لطفا با مدیر وبسایت تماس بگیرید.", @@ -267,6 +270,7 @@ "Stay logged in" : "در سیستم بمانید", "Alternative Logins" : "ورود متناوب", "Account access" : "دسترسی به حساب", + "App token" : "App token", "New password" : "گذرواژه جدید", "New Password" : "رمزعبور جدید", "Reset password" : "تنظیم مجدد رمز عبور", @@ -302,6 +306,7 @@ "The share will expire on %s." : "اشتراکگذاری در %s منقضی خواهد شد.", "Cheers!" : "سلامتی!", "Log out" : "خروج", + "This action requires you to confirm your password:" : "این اقدام نیاز به تایید رمز عبور شما دارد", "Use the following link to reset your password: {link}" : "از لینک زیر جهت دوباره سازی پسورد استفاده کنید :\n{link}" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/core/l10n/fi.js b/core/l10n/fi.js index 118d87333e7..780d6c50a14 100644 --- a/core/l10n/fi.js +++ b/core/l10n/fi.js @@ -18,11 +18,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Salasanaa ei voitu palauttaa, koska valtuutus on virheellinen", "Couldn't reset password because the token is expired" : "Salasanaa ei voitu palauttaa, koska valtuutus on vanhentunut", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Salasanan palautusviestiä ei voitu lähettää sähköpostitse, koska käyttäjätunnukselle ei ole määritetty sähköpostiosoitetta. Ota yhteys ylläpitäjään.", + "%s password reset" : "%s salasanan palautus", "Password reset" : "Salasanan palautus", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Paina oheista painiketta palauttaaksesi salasanasi. Jos et ole pyytänyt salasanan palautusta, jätä tämä sähköpostiviesti huomioimatta.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Paina oheista linkkiä palauttaaksesi salasanasi. Jos et ole pyytänyt salasanan palautusta, jätä tämä sähköpostiviesti huomioimatta.", "Reset your password" : "Palauta salasanasi", - "%s password reset" : "%s salasanan palautus", "Couldn't send reset email. Please contact your administrator." : "Palautussähköpostin lähettäminen ei onnistunut. Ota yhteys ylläpitäjään.", "Couldn't send reset email. Please make sure your username is correct." : "Palautussähköpostin lähettäminen ei onnistunut. Varmista, että käyttäjätunnuksesi on oikein.", "Preparing update" : "Valmistellaan päivitystä", @@ -258,7 +258,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tämä sovellus vaatii toimiakseen JavaScript-tuen. {linkstart}Ota JavaScript käyttöön{linkend} ja päivitä sivu.", "More apps" : "Lisää sovelluksia", "Search" : "Etsi", - "This action requires you to confirm your password:" : "Tämä toiminto vaati vahvistuksen salasanallasi:", "Confirm your password" : "Vahvista salasanasi", "Server side authentication failed!" : "Palvelimen puoleinen tunnistautuminen epäonnistui!", "Please contact your administrator." : "Ota yhteys ylläpitäjään.", @@ -333,6 +332,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Palvelin kohtasi sisäisen virheen, eikä pystynyt viimeistelmään pyyntöäsi.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Ota yhteys palvelimen ylläpitäjään, jos tämä virhe ilmenee useita kertoja. Lisää yhteydenottoosi alla olevat tekniset tiedot.", "Log out" : "Kirjaudu ulos", + "This action requires you to confirm your password:" : "Tämä toiminto vaati vahvistuksen salasanallasi:", "Use the following link to reset your password: {link}" : "Voit palauttaa salasanasi seuraavassa osoitteessa: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hei,<br><br>%s jakoi kanssasi kohteen <strong>%s</strong>.<br><a href=\"%s\">Tutustu siihen!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Tämä Nextcloud-asennus on parhaillaan single user -tilassa.", diff --git a/core/l10n/fi.json b/core/l10n/fi.json index 668979f73c6..ef3905b826c 100644 --- a/core/l10n/fi.json +++ b/core/l10n/fi.json @@ -16,11 +16,11 @@ "Couldn't reset password because the token is invalid" : "Salasanaa ei voitu palauttaa, koska valtuutus on virheellinen", "Couldn't reset password because the token is expired" : "Salasanaa ei voitu palauttaa, koska valtuutus on vanhentunut", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Salasanan palautusviestiä ei voitu lähettää sähköpostitse, koska käyttäjätunnukselle ei ole määritetty sähköpostiosoitetta. Ota yhteys ylläpitäjään.", + "%s password reset" : "%s salasanan palautus", "Password reset" : "Salasanan palautus", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Paina oheista painiketta palauttaaksesi salasanasi. Jos et ole pyytänyt salasanan palautusta, jätä tämä sähköpostiviesti huomioimatta.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Paina oheista linkkiä palauttaaksesi salasanasi. Jos et ole pyytänyt salasanan palautusta, jätä tämä sähköpostiviesti huomioimatta.", "Reset your password" : "Palauta salasanasi", - "%s password reset" : "%s salasanan palautus", "Couldn't send reset email. Please contact your administrator." : "Palautussähköpostin lähettäminen ei onnistunut. Ota yhteys ylläpitäjään.", "Couldn't send reset email. Please make sure your username is correct." : "Palautussähköpostin lähettäminen ei onnistunut. Varmista, että käyttäjätunnuksesi on oikein.", "Preparing update" : "Valmistellaan päivitystä", @@ -256,7 +256,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tämä sovellus vaatii toimiakseen JavaScript-tuen. {linkstart}Ota JavaScript käyttöön{linkend} ja päivitä sivu.", "More apps" : "Lisää sovelluksia", "Search" : "Etsi", - "This action requires you to confirm your password:" : "Tämä toiminto vaati vahvistuksen salasanallasi:", "Confirm your password" : "Vahvista salasanasi", "Server side authentication failed!" : "Palvelimen puoleinen tunnistautuminen epäonnistui!", "Please contact your administrator." : "Ota yhteys ylläpitäjään.", @@ -331,6 +330,7 @@ "The server encountered an internal error and was unable to complete your request." : "Palvelin kohtasi sisäisen virheen, eikä pystynyt viimeistelmään pyyntöäsi.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Ota yhteys palvelimen ylläpitäjään, jos tämä virhe ilmenee useita kertoja. Lisää yhteydenottoosi alla olevat tekniset tiedot.", "Log out" : "Kirjaudu ulos", + "This action requires you to confirm your password:" : "Tämä toiminto vaati vahvistuksen salasanallasi:", "Use the following link to reset your password: {link}" : "Voit palauttaa salasanasi seuraavassa osoitteessa: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hei,<br><br>%s jakoi kanssasi kohteen <strong>%s</strong>.<br><a href=\"%s\">Tutustu siihen!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Tämä Nextcloud-asennus on parhaillaan single user -tilassa.", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index 9aec227f66c..e69f4ee43fc 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable", "Couldn't reset password because the token is expired" : "Impossible de réinitialiser le mot de passe car le jeton a expiré", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter votre administrateur.", + "%s password reset" : "Réinitialisation de votre mot de passe %s", "Password reset" : "Réinitialiser le mot de passe", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquer sur le bouton suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, alors ignorez ce courriel.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquer sur le lien suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, alors ignorez ce courriel.", "Reset your password" : "Réinitialiser votre mot de passe", - "%s password reset" : "Réinitialisation de votre mot de passe %s", "Couldn't send reset email. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez contacter votre administrateur.", "Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.", "Preparing update" : "Préparation de la mise à jour", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Cette application requiert JavaScript pour fonctionner correctement. Veuillez {linkstart}activer JavaScript{linkend} et recharger la page.", "More apps" : "Plus d'applications", "Search" : "Rechercher", - "This action requires you to confirm your password:" : "Cette action nécessite que vous confirmiez votre mot de passe :", + "Reset search" : "Réinitialiser la recherche", "Confirm your password" : "Confirmer votre mot de passe", "Server side authentication failed!" : "L'authentification sur le serveur a échoué !", "Please contact your administrator." : "Veuillez contacter votre administrateur.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Le serveur a rencontré une erreur interne et est incapable d'exécuter votre requête.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Veuillez contacter l'administrateur du serveur si cette erreur apparaît plusieurs fois. Veuillez joindre les détails techniques à votre rapport.", "Log out" : "Se déconnecter", + "This action requires you to confirm your password:" : "Cette action nécessite que vous confirmiez votre mot de passe :", "Use the following link to reset your password: {link}" : "Utilisez le lien suivant pour réinitialiser votre mot de passe : {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Bonjour,<br><br>Nous vous informons que %s a partagé <strong>%s</strong> avec vous.<br><a href=\"%s\">Cliquez ici pour y accéder !</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Cette instance de Nextcloud est actuellement en mode utilisateur unique.", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index 0103f86c859..36598c26d99 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable", "Couldn't reset password because the token is expired" : "Impossible de réinitialiser le mot de passe car le jeton a expiré", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter votre administrateur.", + "%s password reset" : "Réinitialisation de votre mot de passe %s", "Password reset" : "Réinitialiser le mot de passe", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquer sur le bouton suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, alors ignorez ce courriel.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquer sur le lien suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, alors ignorez ce courriel.", "Reset your password" : "Réinitialiser votre mot de passe", - "%s password reset" : "Réinitialisation de votre mot de passe %s", "Couldn't send reset email. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez contacter votre administrateur.", "Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.", "Preparing update" : "Préparation de la mise à jour", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Cette application requiert JavaScript pour fonctionner correctement. Veuillez {linkstart}activer JavaScript{linkend} et recharger la page.", "More apps" : "Plus d'applications", "Search" : "Rechercher", - "This action requires you to confirm your password:" : "Cette action nécessite que vous confirmiez votre mot de passe :", + "Reset search" : "Réinitialiser la recherche", "Confirm your password" : "Confirmer votre mot de passe", "Server side authentication failed!" : "L'authentification sur le serveur a échoué !", "Please contact your administrator." : "Veuillez contacter votre administrateur.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Le serveur a rencontré une erreur interne et est incapable d'exécuter votre requête.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Veuillez contacter l'administrateur du serveur si cette erreur apparaît plusieurs fois. Veuillez joindre les détails techniques à votre rapport.", "Log out" : "Se déconnecter", + "This action requires you to confirm your password:" : "Cette action nécessite que vous confirmiez votre mot de passe :", "Use the following link to reset your password: {link}" : "Utilisez le lien suivant pour réinitialiser votre mot de passe : {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Bonjour,<br><br>Nous vous informons que %s a partagé <strong>%s</strong> avec vous.<br><a href=\"%s\">Cliquez ici pour y accéder !</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Cette instance de Nextcloud est actuellement en mode utilisateur unique.", diff --git a/core/l10n/hu.js b/core/l10n/hu.js index 3b3c783dcb8..71e2e35d85a 100644 --- a/core/l10n/hu.js +++ b/core/l10n/hu.js @@ -19,9 +19,9 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Nem lehet a jelszót törölni, mert a token érvénytelen.", "Couldn't reset password because the token is expired" : "Nem lehet a jelszót törölni, mert a token lejárt.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nem tudtunk visszaállítási e-mailt küldeni, mert ehhez a felhasználóhoz nem tartozik e-mail cím. Kérlek, vedd fel a kapcsolatot a rendszergazdával!", + "%s password reset" : "%s jelszó visszaállítás", "Password reset" : "Jelszó visszaállítás", "Reset your password" : "Állítsd vissza a jelszavad", - "%s password reset" : "%s jelszó visszaállítás", "Couldn't send reset email. Please contact your administrator." : "Visszaállítási e-mail nem küldhető. Kérlek, lépj kapcsolatba a rendszergazdával.", "Couldn't send reset email. Please make sure your username is correct." : "Visszaállítási e-mail nem küldhető. Kérlek, lépj kapcsolatba a rendszergazdával. ", "Preparing update" : "Felkészülés a frissítésre", @@ -233,7 +233,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Az alkalmazás megfelelő működéséhez JavaScript szükséges. Kérjük, {linkstart}engedélyezze a JavaScript-et{linkend} és frissítse a lapot.", "More apps" : "További alkalmazások", "Search" : "Keresés", - "This action requires you to confirm your password:" : "A művelethez szükség van a jelszavad megerősítésére:", "Confirm your password" : "Erősítsd meg a jelszavad:", "Server side authentication failed!" : "A szerveroldali hitelesítés sikertelen!", "Please contact your administrator." : "Kérjük, lépjen kapcsolatba a rendszergazdával.", @@ -303,6 +302,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "A szerver belső hibával találkozott és nem tudja teljesíteni a kérést.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kérjük keresse fel a szerver rendszergazdáját, ha ez a hiba ismételten, többször előfordulna. Kérjük, mellékelje a technikai részleteket a lenti jelentésbe.", "Log out" : "Kijelentkezés", + "This action requires you to confirm your password:" : "A művelethez szükség van a jelszavad megerősítésére:", "Use the following link to reset your password: {link}" : "Használja ezt a hivatkozást a jelszó ismételt beállításához: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Üdv!<br /><br />\n\nÉrtesítünk, hogy %s megosztotta veled a következőt: <strong>%s</strong><br />\n<a href=\"%s\">Itt nézheted meg.</a><br /><br />", "This Nextcloud instance is currently in single user mode." : "Ez az Nextcloud szolgáltatás jelenleg egyfelhasználós üzemmódban működik.", diff --git a/core/l10n/hu.json b/core/l10n/hu.json index 993d588187a..1af1a341944 100644 --- a/core/l10n/hu.json +++ b/core/l10n/hu.json @@ -17,9 +17,9 @@ "Couldn't reset password because the token is invalid" : "Nem lehet a jelszót törölni, mert a token érvénytelen.", "Couldn't reset password because the token is expired" : "Nem lehet a jelszót törölni, mert a token lejárt.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nem tudtunk visszaállítási e-mailt küldeni, mert ehhez a felhasználóhoz nem tartozik e-mail cím. Kérlek, vedd fel a kapcsolatot a rendszergazdával!", + "%s password reset" : "%s jelszó visszaállítás", "Password reset" : "Jelszó visszaállítás", "Reset your password" : "Állítsd vissza a jelszavad", - "%s password reset" : "%s jelszó visszaállítás", "Couldn't send reset email. Please contact your administrator." : "Visszaállítási e-mail nem küldhető. Kérlek, lépj kapcsolatba a rendszergazdával.", "Couldn't send reset email. Please make sure your username is correct." : "Visszaállítási e-mail nem küldhető. Kérlek, lépj kapcsolatba a rendszergazdával. ", "Preparing update" : "Felkészülés a frissítésre", @@ -231,7 +231,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Az alkalmazás megfelelő működéséhez JavaScript szükséges. Kérjük, {linkstart}engedélyezze a JavaScript-et{linkend} és frissítse a lapot.", "More apps" : "További alkalmazások", "Search" : "Keresés", - "This action requires you to confirm your password:" : "A művelethez szükség van a jelszavad megerősítésére:", "Confirm your password" : "Erősítsd meg a jelszavad:", "Server side authentication failed!" : "A szerveroldali hitelesítés sikertelen!", "Please contact your administrator." : "Kérjük, lépjen kapcsolatba a rendszergazdával.", @@ -301,6 +300,7 @@ "The server encountered an internal error and was unable to complete your request." : "A szerver belső hibával találkozott és nem tudja teljesíteni a kérést.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kérjük keresse fel a szerver rendszergazdáját, ha ez a hiba ismételten, többször előfordulna. Kérjük, mellékelje a technikai részleteket a lenti jelentésbe.", "Log out" : "Kijelentkezés", + "This action requires you to confirm your password:" : "A művelethez szükség van a jelszavad megerősítésére:", "Use the following link to reset your password: {link}" : "Használja ezt a hivatkozást a jelszó ismételt beállításához: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Üdv!<br /><br />\n\nÉrtesítünk, hogy %s megosztotta veled a következőt: <strong>%s</strong><br />\n<a href=\"%s\">Itt nézheted meg.</a><br /><br />", "This Nextcloud instance is currently in single user mode." : "Ez az Nextcloud szolgáltatás jelenleg egyfelhasználós üzemmódban működik.", diff --git a/core/l10n/id.js b/core/l10n/id.js index 7f5ee26028f..12390cfa540 100644 --- a/core/l10n/id.js +++ b/core/l10n/id.js @@ -213,7 +213,6 @@ OC.L10N.register( "See the documentation" : "Lihat dokumentasi", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aplikasi ini memerlukan JavaScript untuk dapat beroperasi dengan benar. Mohon {linkstart}aktifkan JavaScript{linkend} dan muat ulang halaman ini.", "Search" : "Cari", - "This action requires you to confirm your password:" : "Aksi ini mengharuskan anda mengkonfirmasi sandi anda:", "Confirm your password" : "Konfirmasi sandi anda", "Server side authentication failed!" : "Otentikasi dari sisi server gagal!", "Please contact your administrator." : "Silahkan hubungi administrator anda.", @@ -282,6 +281,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Server mengalami kesalahan internal dan tidak dapat menyelesaikan permintaan Anda.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Silahkan hubungi administrator server jika kesalahan ini muncul kembali berulang kali, harap sertakan rincian teknis di bawah ini dalam laporan Anda.", "Log out" : "Keluar", + "This action requires you to confirm your password:" : "Aksi ini mengharuskan anda mengkonfirmasi sandi anda:", "Use the following link to reset your password: {link}" : "Gunakan tautan berikut untuk menyetel ulang sandi Anda: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hai,<br><br>hanya memberi tahu jika %s membagikan <strong>%s</strong> dengan Anda.<br><a href=\"%s\">Lihat!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Nextcloud ini sedang dalam mode pengguna tunggal.", diff --git a/core/l10n/id.json b/core/l10n/id.json index 7d623ff4828..5bc146a88e3 100644 --- a/core/l10n/id.json +++ b/core/l10n/id.json @@ -211,7 +211,6 @@ "See the documentation" : "Lihat dokumentasi", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aplikasi ini memerlukan JavaScript untuk dapat beroperasi dengan benar. Mohon {linkstart}aktifkan JavaScript{linkend} dan muat ulang halaman ini.", "Search" : "Cari", - "This action requires you to confirm your password:" : "Aksi ini mengharuskan anda mengkonfirmasi sandi anda:", "Confirm your password" : "Konfirmasi sandi anda", "Server side authentication failed!" : "Otentikasi dari sisi server gagal!", "Please contact your administrator." : "Silahkan hubungi administrator anda.", @@ -280,6 +279,7 @@ "The server encountered an internal error and was unable to complete your request." : "Server mengalami kesalahan internal dan tidak dapat menyelesaikan permintaan Anda.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Silahkan hubungi administrator server jika kesalahan ini muncul kembali berulang kali, harap sertakan rincian teknis di bawah ini dalam laporan Anda.", "Log out" : "Keluar", + "This action requires you to confirm your password:" : "Aksi ini mengharuskan anda mengkonfirmasi sandi anda:", "Use the following link to reset your password: {link}" : "Gunakan tautan berikut untuk menyetel ulang sandi Anda: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hai,<br><br>hanya memberi tahu jika %s membagikan <strong>%s</strong> dengan Anda.<br><a href=\"%s\">Lihat!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Nextcloud ini sedang dalam mode pengguna tunggal.", diff --git a/core/l10n/is.js b/core/l10n/is.js index 4511880685a..968fa4feea3 100644 --- a/core/l10n/is.js +++ b/core/l10n/is.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Gat ekki endurstillt lykilorðið vegna þess að teiknið er ógilt", "Couldn't reset password because the token is expired" : "Gat ekki endurstillt lykilorðið vegna þess að teiknið er útrunnið", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Gat ekki sent endurstillingu í tölvupósti því það er ekkert gilt tölvupóstfang fyrir þennan notanda. Hafðu samband við kerfisstjóra.", + "%s password reset" : "%s lykilorð endurstillt", "Password reset" : "Endurstilling lykilorðs", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Smelltu á eftirfarandi hnapp til að endurstilla lykilorðið þitt. Ef þú hefur ekki beðið um endurstillingu lykilorðs, skaltu hunsa þennan tölvupóst.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Smelltu á eftirfarandi tengil til að endurstilla lykilorðið þitt. Ef þú hefur ekki beðið um endurstillingu lykilorðs, skaltu hunsa þennan tölvupóst.", "Reset your password" : "Endurstilltu lykilorðið þitt", - "%s password reset" : "%s lykilorð endurstillt", "Couldn't send reset email. Please contact your administrator." : "Gat ekki sent endurstillingu í tölvupósti. Hafðu samband við kerfisstjóra.", "Couldn't send reset email. Please make sure your username is correct." : "Gat ekki sent endurstillingu í tölvupósti. Gakktu úr skugga um að notandanafn þitt sé rétt.", "Preparing update" : "Undirbý uppfærslu", @@ -262,7 +262,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Þetta forrit krefst JavaScript fyrir rétta virkni. {linkstart} virkjaðu JavaScript {linkend} og endurlestu síðan síðuna.", "More apps" : "Fleiri forrit", "Search" : "Leita", - "This action requires you to confirm your password:" : "Þessi aðgerð krefst þess að þú staðfestir lykilorðið þitt:", "Confirm your password" : "Staðfestu lykilorðið þitt", "Server side authentication failed!" : "Auðkenning af hálfu þjóns tókst ekki!", "Please contact your administrator." : "Hafðu samband við kerfisstjóra.", @@ -342,6 +341,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Innri villa kom upp á þjóninum og ekki náðist að afgreiða beiðnina.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Hafðu samband við kerfisstjóra ef þessi villa birtist oft aftur, láttu þá tæknilegu upplýsingarnar hér að neðan fylgja með.", "Log out" : "Skrá út", + "This action requires you to confirm your password:" : "Þessi aðgerð krefst þess að þú staðfestir lykilorðið þitt:", "Use the following link to reset your password: {link}" : "Notað eftirfarandi veftengil til að endursetja lykilorðið þitt: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hæ þú,<br><br>bara að láta þig vita að %s deildi <strong>%s</strong> með þér.<br><a href=\"%s\">Skoðaðu það!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Þetta Nextcloud eintak er nú í eins-notanda ham.", diff --git a/core/l10n/is.json b/core/l10n/is.json index bb9b6b394de..5357a509b96 100644 --- a/core/l10n/is.json +++ b/core/l10n/is.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Gat ekki endurstillt lykilorðið vegna þess að teiknið er ógilt", "Couldn't reset password because the token is expired" : "Gat ekki endurstillt lykilorðið vegna þess að teiknið er útrunnið", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Gat ekki sent endurstillingu í tölvupósti því það er ekkert gilt tölvupóstfang fyrir þennan notanda. Hafðu samband við kerfisstjóra.", + "%s password reset" : "%s lykilorð endurstillt", "Password reset" : "Endurstilling lykilorðs", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Smelltu á eftirfarandi hnapp til að endurstilla lykilorðið þitt. Ef þú hefur ekki beðið um endurstillingu lykilorðs, skaltu hunsa þennan tölvupóst.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Smelltu á eftirfarandi tengil til að endurstilla lykilorðið þitt. Ef þú hefur ekki beðið um endurstillingu lykilorðs, skaltu hunsa þennan tölvupóst.", "Reset your password" : "Endurstilltu lykilorðið þitt", - "%s password reset" : "%s lykilorð endurstillt", "Couldn't send reset email. Please contact your administrator." : "Gat ekki sent endurstillingu í tölvupósti. Hafðu samband við kerfisstjóra.", "Couldn't send reset email. Please make sure your username is correct." : "Gat ekki sent endurstillingu í tölvupósti. Gakktu úr skugga um að notandanafn þitt sé rétt.", "Preparing update" : "Undirbý uppfærslu", @@ -260,7 +260,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Þetta forrit krefst JavaScript fyrir rétta virkni. {linkstart} virkjaðu JavaScript {linkend} og endurlestu síðan síðuna.", "More apps" : "Fleiri forrit", "Search" : "Leita", - "This action requires you to confirm your password:" : "Þessi aðgerð krefst þess að þú staðfestir lykilorðið þitt:", "Confirm your password" : "Staðfestu lykilorðið þitt", "Server side authentication failed!" : "Auðkenning af hálfu þjóns tókst ekki!", "Please contact your administrator." : "Hafðu samband við kerfisstjóra.", @@ -340,6 +339,7 @@ "The server encountered an internal error and was unable to complete your request." : "Innri villa kom upp á þjóninum og ekki náðist að afgreiða beiðnina.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Hafðu samband við kerfisstjóra ef þessi villa birtist oft aftur, láttu þá tæknilegu upplýsingarnar hér að neðan fylgja með.", "Log out" : "Skrá út", + "This action requires you to confirm your password:" : "Þessi aðgerð krefst þess að þú staðfestir lykilorðið þitt:", "Use the following link to reset your password: {link}" : "Notað eftirfarandi veftengil til að endursetja lykilorðið þitt: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hæ þú,<br><br>bara að láta þig vita að %s deildi <strong>%s</strong> með þér.<br><a href=\"%s\">Skoðaðu það!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Þetta Nextcloud eintak er nú í eins-notanda ham.", diff --git a/core/l10n/it.js b/core/l10n/it.js index 85a2038c5c6..6092e2ee002 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Impossibile reimpostare la password poiché il token non è valido", "Couldn't reset password because the token is expired" : "Impossibile reimpostare la password poiché il token è scaduto", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Impossibile inviare l'email di reimpostazione poiché non è presente un indirizzo email per questo nome utente. Contatta il tuo amministratore.", + "%s password reset" : "Ripristino password di %s", "Password reset" : "Ripristino password", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Fai clic sul pulsante seguente per reimpostare la tua password. Se non hai richiesto la reimpostazione della password, ignora questo messaggio.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Fai clic sul collegamento seguente per reimpostare la tua password. Se non hai richiesto la reimpostazione della password, ignora questo messaggio.", "Reset your password" : "Ripristina la password", - "%s password reset" : "Ripristino password di %s", "Couldn't send reset email. Please contact your administrator." : "Impossibile inviare l'email di reimpostazione. Contatta il tuo amministratore.", "Couldn't send reset email. Please make sure your username is correct." : "Impossibile inviare l'email di reimpostazione. Assicurati che il nome utente sia corretto.", "Preparing update" : "Preparazione dell'aggiornamento", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Questa applicazione richiede JavaScript per un corretto funzionamento. {linkstart}Abilita JavaScript{linkend} e ricarica la pagina.", "More apps" : "Altre applicazioni", "Search" : "Cerca", - "This action requires you to confirm your password:" : "Questa azione richiede la conferma della tua password:", + "Reset search" : "Ripristina ricerca", "Confirm your password" : "Conferma la tua password", "Server side authentication failed!" : "Autenticazione lato server non riuscita!", "Please contact your administrator." : "Contatta il tuo amministratore di sistema.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Il server ha riscontrato un errore interno e non è stato in grado di completare la tua richiesta.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Contatta l'amministratore del server se questo errore riappare più volte, includendo i dettagli tecnici sotto riportati nella tua segnalazione.", "Log out" : "Esci", + "This action requires you to confirm your password:" : "Questa azione richiede la conferma della tua password:", "Use the following link to reset your password: {link}" : "Usa il collegamento seguente per ripristinare la password: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Ciao,<br><br>volevo informarti che %s ha condiviso <strong>%s</strong> con te.<br><a href=\"%s\">Guarda!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Questa istanza di Nextcloud è in modalità utente singolo.", diff --git a/core/l10n/it.json b/core/l10n/it.json index 377cc319658..a0d644e02e7 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Impossibile reimpostare la password poiché il token non è valido", "Couldn't reset password because the token is expired" : "Impossibile reimpostare la password poiché il token è scaduto", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Impossibile inviare l'email di reimpostazione poiché non è presente un indirizzo email per questo nome utente. Contatta il tuo amministratore.", + "%s password reset" : "Ripristino password di %s", "Password reset" : "Ripristino password", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Fai clic sul pulsante seguente per reimpostare la tua password. Se non hai richiesto la reimpostazione della password, ignora questo messaggio.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Fai clic sul collegamento seguente per reimpostare la tua password. Se non hai richiesto la reimpostazione della password, ignora questo messaggio.", "Reset your password" : "Ripristina la password", - "%s password reset" : "Ripristino password di %s", "Couldn't send reset email. Please contact your administrator." : "Impossibile inviare l'email di reimpostazione. Contatta il tuo amministratore.", "Couldn't send reset email. Please make sure your username is correct." : "Impossibile inviare l'email di reimpostazione. Assicurati che il nome utente sia corretto.", "Preparing update" : "Preparazione dell'aggiornamento", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Questa applicazione richiede JavaScript per un corretto funzionamento. {linkstart}Abilita JavaScript{linkend} e ricarica la pagina.", "More apps" : "Altre applicazioni", "Search" : "Cerca", - "This action requires you to confirm your password:" : "Questa azione richiede la conferma della tua password:", + "Reset search" : "Ripristina ricerca", "Confirm your password" : "Conferma la tua password", "Server side authentication failed!" : "Autenticazione lato server non riuscita!", "Please contact your administrator." : "Contatta il tuo amministratore di sistema.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Il server ha riscontrato un errore interno e non è stato in grado di completare la tua richiesta.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Contatta l'amministratore del server se questo errore riappare più volte, includendo i dettagli tecnici sotto riportati nella tua segnalazione.", "Log out" : "Esci", + "This action requires you to confirm your password:" : "Questa azione richiede la conferma della tua password:", "Use the following link to reset your password: {link}" : "Usa il collegamento seguente per ripristinare la password: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Ciao,<br><br>volevo informarti che %s ha condiviso <strong>%s</strong> con te.<br><a href=\"%s\">Guarda!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Questa istanza di Nextcloud è in modalità utente singolo.", diff --git a/core/l10n/ja.js b/core/l10n/ja.js index 5527b26b764..3a9fc7cb254 100644 --- a/core/l10n/ja.js +++ b/core/l10n/ja.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "トークンが無効なため、パスワードをリセットできませんでした", "Couldn't reset password because the token is expired" : "トークンが期限切れのため、パスワードをリセットできませんでした", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "このユーザー名に紐付けられたメールアドレスがないため、リセットメールを送信できませんでした。管理者に問い合わせてください。", + "%s password reset" : "%s パスワードリセット", "Password reset" : "パスワードのリセット", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "次のボタンをクリックしてパスワードをリセットしてください。 パスワードリセットをリクエストしていない場合は、このメールを無視してください。", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "パスワードをリセットするには、次のリンクをクリックしてください。 パスワードリセットをリクエストしていない場合は、このメールを無視してください。", "Reset your password" : "パスワードをリセット", - "%s password reset" : "%s パスワードリセット", "Couldn't send reset email. Please contact your administrator." : "リセットメールを送信できませんでした。管理者に問い合わせてください。", "Couldn't send reset email. Please make sure your username is correct." : "リセットメールを送信できませんでした。ユーザー名が正しいことを確認してください。", "Preparing update" : "アップデートの準備中", @@ -257,7 +257,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "このアプリケーションの動作にはJavaScriptが必要です。\n {linkstart}JavaScriptを有効にし{linkend} 、ページを更新してください。 ", "More apps" : "さらにアプリ", "Search" : "検索", - "This action requires you to confirm your password:" : "この操作では、パスワードを確認する必要があります:", "Confirm your password" : "パスワードを確認", "Server side authentication failed!" : "サーバーサイドの認証に失敗しました!", "Please contact your administrator." : "管理者に問い合わせてください。", @@ -334,6 +333,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "サーバー内でエラーが発生したため、リクエストを完了できませんでした。", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "このエラーが繰り返し表示されるようであれば、以下の技術情報を添付してサーバー管理者に問い合わせてください。", "Log out" : "ログアウト", + "This action requires you to confirm your password:" : "この操作では、パスワードを確認する必要があります:", "Use the following link to reset your password: {link}" : "パスワードをリセットするには次のリンクをクリックしてください: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "こんにちは、<br><br>%sがあなたと »%s« を共有したことをお知らせします。<br><a href=\"%s\">それを表示</a><br><br>", "This Nextcloud instance is currently in single user mode." : "このNextcloudインスタンスは、現在シングルユーザーモードです。", diff --git a/core/l10n/ja.json b/core/l10n/ja.json index b9dc880f6bf..c3e47fe4b65 100644 --- a/core/l10n/ja.json +++ b/core/l10n/ja.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "トークンが無効なため、パスワードをリセットできませんでした", "Couldn't reset password because the token is expired" : "トークンが期限切れのため、パスワードをリセットできませんでした", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "このユーザー名に紐付けられたメールアドレスがないため、リセットメールを送信できませんでした。管理者に問い合わせてください。", + "%s password reset" : "%s パスワードリセット", "Password reset" : "パスワードのリセット", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "次のボタンをクリックしてパスワードをリセットしてください。 パスワードリセットをリクエストしていない場合は、このメールを無視してください。", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "パスワードをリセットするには、次のリンクをクリックしてください。 パスワードリセットをリクエストしていない場合は、このメールを無視してください。", "Reset your password" : "パスワードをリセット", - "%s password reset" : "%s パスワードリセット", "Couldn't send reset email. Please contact your administrator." : "リセットメールを送信できませんでした。管理者に問い合わせてください。", "Couldn't send reset email. Please make sure your username is correct." : "リセットメールを送信できませんでした。ユーザー名が正しいことを確認してください。", "Preparing update" : "アップデートの準備中", @@ -255,7 +255,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "このアプリケーションの動作にはJavaScriptが必要です。\n {linkstart}JavaScriptを有効にし{linkend} 、ページを更新してください。 ", "More apps" : "さらにアプリ", "Search" : "検索", - "This action requires you to confirm your password:" : "この操作では、パスワードを確認する必要があります:", "Confirm your password" : "パスワードを確認", "Server side authentication failed!" : "サーバーサイドの認証に失敗しました!", "Please contact your administrator." : "管理者に問い合わせてください。", @@ -332,6 +331,7 @@ "The server encountered an internal error and was unable to complete your request." : "サーバー内でエラーが発生したため、リクエストを完了できませんでした。", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "このエラーが繰り返し表示されるようであれば、以下の技術情報を添付してサーバー管理者に問い合わせてください。", "Log out" : "ログアウト", + "This action requires you to confirm your password:" : "この操作では、パスワードを確認する必要があります:", "Use the following link to reset your password: {link}" : "パスワードをリセットするには次のリンクをクリックしてください: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "こんにちは、<br><br>%sがあなたと »%s« を共有したことをお知らせします。<br><a href=\"%s\">それを表示</a><br><br>", "This Nextcloud instance is currently in single user mode." : "このNextcloudインスタンスは、現在シングルユーザーモードです。", diff --git a/core/l10n/ko.js b/core/l10n/ko.js index f6429f2e9d6..060163fb20b 100644 --- a/core/l10n/ko.js +++ b/core/l10n/ko.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "토큰이 잘못되었기 때문에 암호를 초기화할 수 없습니다", "Couldn't reset password because the token is expired" : "토큰이 만료되어 암호를 초기화할 수 없습니다", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "이 사용자 이름과 연결된 이메일 주소가 없어서 초기화 메일을 보낼 수 없습니다. 시스템 관리자에게 연락하십시오.", + "%s password reset" : "%s 암호 재설정", "Password reset" : "암호 재설정", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "아래 단추를 눌러서 암호를 재설정할 수 있습니다. 암호 초기화를 요청하지 않으셨다면 이 이메일을 무시하십시오.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "아래 링크를 눌러서 암호를 재설정할 수 있습니다. 암호 초기화를 요청하지 않으셨다면 이 이메일을 무시하십시오.", "Reset your password" : "내 암호 재설정", - "%s password reset" : "%s 암호 재설정", "Couldn't send reset email. Please contact your administrator." : "재설정 메일을 보낼 수 없습니다. 관리자에게 문의하십시오.", "Couldn't send reset email. Please make sure your username is correct." : "재설정 메일을 보낼 수 없습니다. 사용자 이름이 올바른지 확인하십시오.", "Preparing update" : "업데이트 준비 중", @@ -254,7 +254,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "이 프로그램이 올바르게 작동하려면 JavaScript가 필요합니다. {linkstart}JavaScript를 활성화{linkend}한 다음 페이지를 새로 고치십시오.", "More apps" : "더 많은 앱", "Search" : "검색", - "This action requires you to confirm your password:" : "이 작업을 수행하려면 암호를 입력해야 합니다:", "Confirm your password" : "암호를 입력하십시오", "Server side authentication failed!" : "서버 인증 실패!", "Please contact your administrator." : "관리자에게 문의하십시오.", @@ -326,6 +325,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "서버에 내부 오류가 발생하여 요청을 처리할 수 없었습니다.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "이 오류가 여러 번 발생한다면 서버 관리자에게 연락해 주시고, 아래 기술적인 정보를 포함해 주십시오.", "Log out" : "로그아웃", + "This action requires you to confirm your password:" : "이 작업을 수행하려면 암호를 입력해야 합니다:", "Use the following link to reset your password: {link}" : "다음 링크를 사용하여 암호를 재설정할 수 있습니다: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "안녕하세요,<br><br>%s 님이 <strong>%s</strong>을(를) 공유하였음을 알려 드립니다.<br><a href=\"%s\">보러 가기!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Nextcloud 인스턴스가 현재 단일 사용자 모드로 동작 중입니다.", diff --git a/core/l10n/ko.json b/core/l10n/ko.json index 9256e060ca4..b307d2019bc 100644 --- a/core/l10n/ko.json +++ b/core/l10n/ko.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "토큰이 잘못되었기 때문에 암호를 초기화할 수 없습니다", "Couldn't reset password because the token is expired" : "토큰이 만료되어 암호를 초기화할 수 없습니다", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "이 사용자 이름과 연결된 이메일 주소가 없어서 초기화 메일을 보낼 수 없습니다. 시스템 관리자에게 연락하십시오.", + "%s password reset" : "%s 암호 재설정", "Password reset" : "암호 재설정", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "아래 단추를 눌러서 암호를 재설정할 수 있습니다. 암호 초기화를 요청하지 않으셨다면 이 이메일을 무시하십시오.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "아래 링크를 눌러서 암호를 재설정할 수 있습니다. 암호 초기화를 요청하지 않으셨다면 이 이메일을 무시하십시오.", "Reset your password" : "내 암호 재설정", - "%s password reset" : "%s 암호 재설정", "Couldn't send reset email. Please contact your administrator." : "재설정 메일을 보낼 수 없습니다. 관리자에게 문의하십시오.", "Couldn't send reset email. Please make sure your username is correct." : "재설정 메일을 보낼 수 없습니다. 사용자 이름이 올바른지 확인하십시오.", "Preparing update" : "업데이트 준비 중", @@ -252,7 +252,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "이 프로그램이 올바르게 작동하려면 JavaScript가 필요합니다. {linkstart}JavaScript를 활성화{linkend}한 다음 페이지를 새로 고치십시오.", "More apps" : "더 많은 앱", "Search" : "검색", - "This action requires you to confirm your password:" : "이 작업을 수행하려면 암호를 입력해야 합니다:", "Confirm your password" : "암호를 입력하십시오", "Server side authentication failed!" : "서버 인증 실패!", "Please contact your administrator." : "관리자에게 문의하십시오.", @@ -324,6 +323,7 @@ "The server encountered an internal error and was unable to complete your request." : "서버에 내부 오류가 발생하여 요청을 처리할 수 없었습니다.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "이 오류가 여러 번 발생한다면 서버 관리자에게 연락해 주시고, 아래 기술적인 정보를 포함해 주십시오.", "Log out" : "로그아웃", + "This action requires you to confirm your password:" : "이 작업을 수행하려면 암호를 입력해야 합니다:", "Use the following link to reset your password: {link}" : "다음 링크를 사용하여 암호를 재설정할 수 있습니다: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "안녕하세요,<br><br>%s 님이 <strong>%s</strong>을(를) 공유하였음을 알려 드립니다.<br><a href=\"%s\">보러 가기!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Nextcloud 인스턴스가 현재 단일 사용자 모드로 동작 중입니다.", diff --git a/core/l10n/lt_LT.js b/core/l10n/lt_LT.js index 0a9b11084e0..1cbef8d0deb 100644 --- a/core/l10n/lt_LT.js +++ b/core/l10n/lt_LT.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Nepavyko atstatyti slaptažodžio, kadangi prieigos raktas yra neteisingas", "Couldn't reset password because the token is expired" : "Nepavyko atstatyti slaptažodžio, kadangi prieigos rakto galiojimas yra pasibaigęs", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nepavyko išsiųsti atstatymo el. laiško dėl to, kad šiam naudotojo vardui nėra nustatytas joks el. pašto adresas. Prašome susisiekti su savo administratoriumi.", + "%s password reset" : "%s slaptažodžio atkūrimas", "Password reset" : "Slaptažodžio atstatymas", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Paspauskite mygtuką slaptažodžio atkūrimui. Jei slaptažodžio atkūrimas nėra reikalingas, ignoruokite šį laišką.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Paspauskite nuorodą slaptažodžio atkūrimui. Jei slaptažodžio atkūrimas nėra reikalingas, ignoruokite šį laišką.", "Reset your password" : "Atkurkite savo slaptažodį", - "%s password reset" : "%s slaptažodžio atkūrimas", "Couldn't send reset email. Please contact your administrator." : "Nepavyko išsiųsti atstatymo el. laiško. Prašome susisiekti su savo administratoriumi.", "Couldn't send reset email. Please make sure your username is correct." : "Nepavyko išsiųsti atstatymo el. laiško. Prašome įsitikinti, kad jūsų naudotojo vardas yra teisingas.", "Preparing update" : "Ruošiamas atnaujinimas", @@ -85,6 +85,7 @@ OC.L10N.register( "No files in here" : "Duomenų nėra", "Choose" : "Pasirinkti", "Copy" : "Kopijuoti", + "Move" : "Perkelti", "Error loading file picker template: {error}" : "Klaida įkeliant failo parinkimo ruošinį: {error}", "OK" : "Gerai", "Error loading message template: {error}" : "Klaida įkeliant žinutės ruošinį: {error}", @@ -100,6 +101,8 @@ OC.L10N.register( "({count} selected)" : "({count} pažymėtų)", "Error loading file exists template" : "Klaida įkeliant saugykloje esančių rinkmenų ruošinį", "Pending" : "Vykdoma", + "Copy to {folder}" : "Kopijuoti į {folder}", + "Move to {folder}" : "Perkelti į {folder}", "Very weak password" : "Labai silpnas slaptažodis", "Weak password" : "Silpnas slaptažodis", "So-so password" : "Neblogas slaptažodis", @@ -259,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Sistemos veikimui reikalingas JavaScript palaikymas. Prašome {linkstart}įjungti JavaScript palaikymą{linkend} ir atnaujinti puslapį.", "More apps" : "Daugiau programinės įrangos", "Search" : "Ieškoti", - "This action requires you to confirm your password:" : "Šis veiksmas reikalauja, kad patvirtintumėte savo slaptažodį:", + "Reset search" : "Atstatyti paiešką", "Confirm your password" : "Patvirtinkite savo slaptažodį", "Server side authentication failed!" : "Autentikacija serveryje nepavyko!", "Please contact your administrator." : "Kreipkitės į savo sistemos administratorių.", @@ -339,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Sistemoje įvyko klaida bandant įvykdyti jūsų užklausą.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Susisiekite su sistemos administratoriumi, jei klaida pasikartos. Prašome nupasakoti, kaip įvyko klaida žemiau esančioje ataskaitoje.", "Log out" : "Atsijungti", + "This action requires you to confirm your password:" : "Šis veiksmas reikalauja, kad patvirtintumėte savo slaptažodį:", "Use the following link to reset your password: {link}" : "Naudokite šią nuorodą, kad atstatytumėte savo slaptažodį: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Labas, <br><br>tik norime pranešti, kad %s pasidalino <strong>%s</strong> su jumis. <br><a href=\"%s\">Peržiūrėti</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Šis Nextcloud egzempliorius šiuo metu yra vieno naudotojo veiksenoje.", diff --git a/core/l10n/lt_LT.json b/core/l10n/lt_LT.json index 9dd7fa88d22..4939db69ab0 100644 --- a/core/l10n/lt_LT.json +++ b/core/l10n/lt_LT.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Nepavyko atstatyti slaptažodžio, kadangi prieigos raktas yra neteisingas", "Couldn't reset password because the token is expired" : "Nepavyko atstatyti slaptažodžio, kadangi prieigos rakto galiojimas yra pasibaigęs", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nepavyko išsiųsti atstatymo el. laiško dėl to, kad šiam naudotojo vardui nėra nustatytas joks el. pašto adresas. Prašome susisiekti su savo administratoriumi.", + "%s password reset" : "%s slaptažodžio atkūrimas", "Password reset" : "Slaptažodžio atstatymas", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Paspauskite mygtuką slaptažodžio atkūrimui. Jei slaptažodžio atkūrimas nėra reikalingas, ignoruokite šį laišką.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Paspauskite nuorodą slaptažodžio atkūrimui. Jei slaptažodžio atkūrimas nėra reikalingas, ignoruokite šį laišką.", "Reset your password" : "Atkurkite savo slaptažodį", - "%s password reset" : "%s slaptažodžio atkūrimas", "Couldn't send reset email. Please contact your administrator." : "Nepavyko išsiųsti atstatymo el. laiško. Prašome susisiekti su savo administratoriumi.", "Couldn't send reset email. Please make sure your username is correct." : "Nepavyko išsiųsti atstatymo el. laiško. Prašome įsitikinti, kad jūsų naudotojo vardas yra teisingas.", "Preparing update" : "Ruošiamas atnaujinimas", @@ -83,6 +83,7 @@ "No files in here" : "Duomenų nėra", "Choose" : "Pasirinkti", "Copy" : "Kopijuoti", + "Move" : "Perkelti", "Error loading file picker template: {error}" : "Klaida įkeliant failo parinkimo ruošinį: {error}", "OK" : "Gerai", "Error loading message template: {error}" : "Klaida įkeliant žinutės ruošinį: {error}", @@ -98,6 +99,8 @@ "({count} selected)" : "({count} pažymėtų)", "Error loading file exists template" : "Klaida įkeliant saugykloje esančių rinkmenų ruošinį", "Pending" : "Vykdoma", + "Copy to {folder}" : "Kopijuoti į {folder}", + "Move to {folder}" : "Perkelti į {folder}", "Very weak password" : "Labai silpnas slaptažodis", "Weak password" : "Silpnas slaptažodis", "So-so password" : "Neblogas slaptažodis", @@ -257,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Sistemos veikimui reikalingas JavaScript palaikymas. Prašome {linkstart}įjungti JavaScript palaikymą{linkend} ir atnaujinti puslapį.", "More apps" : "Daugiau programinės įrangos", "Search" : "Ieškoti", - "This action requires you to confirm your password:" : "Šis veiksmas reikalauja, kad patvirtintumėte savo slaptažodį:", + "Reset search" : "Atstatyti paiešką", "Confirm your password" : "Patvirtinkite savo slaptažodį", "Server side authentication failed!" : "Autentikacija serveryje nepavyko!", "Please contact your administrator." : "Kreipkitės į savo sistemos administratorių.", @@ -337,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Sistemoje įvyko klaida bandant įvykdyti jūsų užklausą.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Susisiekite su sistemos administratoriumi, jei klaida pasikartos. Prašome nupasakoti, kaip įvyko klaida žemiau esančioje ataskaitoje.", "Log out" : "Atsijungti", + "This action requires you to confirm your password:" : "Šis veiksmas reikalauja, kad patvirtintumėte savo slaptažodį:", "Use the following link to reset your password: {link}" : "Naudokite šią nuorodą, kad atstatytumėte savo slaptažodį: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Labas, <br><br>tik norime pranešti, kad %s pasidalino <strong>%s</strong> su jumis. <br><a href=\"%s\">Peržiūrėti</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Šis Nextcloud egzempliorius šiuo metu yra vieno naudotojo veiksenoje.", diff --git a/core/l10n/lv.js b/core/l10n/lv.js index 87bfb3834a3..cb7030fbfee 100644 --- a/core/l10n/lv.js +++ b/core/l10n/lv.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Nevarēja nomainīt paroli, jo pazīšanās zīme ir nederīga", "Couldn't reset password because the token is expired" : "Nevarēja nomainīt paroli, jo pazīšanās zīmei beidzies derīguma termiņš", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nevarēja nosūtīt paroles maiņas e-pastu, jo lietotājam nav norādīts e-pasts. Lūdzu sazinies ar savu administratoru.", + "%s password reset" : "%s paroles maiņa", "Password reset" : "Parole atiestatīta", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Nospiediet sekojošo pogu, lai atiestatītu paroli. Ja jūs nepieprasijāt paroles atiestatīšanu, ignorējiet šo e-pastu.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Nospiediet sekojošo saiti, lai atiestatītu paroli. Ja jūs nepieprasijāt paroles atiestatīšanu, ignorējiet šo e-pastu.", "Reset your password" : "Atiestatīt paroli", - "%s password reset" : "%s paroles maiņa", "Couldn't send reset email. Please contact your administrator." : "Nevarēja nosūtīt maiņas e-pastu. Lūdzu sazinies ar savu administratoru.", "Couldn't send reset email. Please make sure your username is correct." : "Nevarēja nosūtīt paroles maiņas e-pastu. Pārliecinies, ka tavs lietotājvārds ir pareizs.", "Preparing update" : "Sagatavo atjauninājumu", @@ -234,7 +234,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Šai programmai nepieciešams JavaScript. Lūdzu {linkstart}ieslēdziet JavasScript{linkend} un pārlādējiet lapu.", "More apps" : "Vairāk programmu", "Search" : "Meklēt", - "This action requires you to confirm your password:" : "Šī darbība ir nepieciešama, lai apstiprinātu jūsu paroli:", "Confirm your password" : "Apstipriniet paroli", "Server side authentication failed!" : "Servera autentifikācija neizdevās!", "Please contact your administrator." : "Lūdzu, sazinieties ar administratoru.", @@ -307,6 +306,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Serverī radās iekšēja kļūda, un tas nevarēja pabeigt jūsu pieprasījumu.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Lūdzu sazinieties ar servera administrātoru ja šī kļūda parādās vairākas reizes, lūdzu iekļaujiet zemāk redzamās tehniskās detaļas jūsu ziņojumā.", "Log out" : "Izrakstīties", + "This action requires you to confirm your password:" : "Šī darbība ir nepieciešama, lai apstiprinātu jūsu paroli:", "Use the following link to reset your password: {link}" : "Izmantojiet šo saiti, lai mainītu paroli: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Sveiki,<br><br>informējam, ka %s koplietoja ar jums <strong>%s</strong>.<br><a href=\"%s\">Apskati to!</a><br><br>", "You are accessing the server from an untrusted domain." : "Jums ir piekļuve serverim no neuzticama domēna.", diff --git a/core/l10n/lv.json b/core/l10n/lv.json index d4c464e39ac..51029eb326d 100644 --- a/core/l10n/lv.json +++ b/core/l10n/lv.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Nevarēja nomainīt paroli, jo pazīšanās zīme ir nederīga", "Couldn't reset password because the token is expired" : "Nevarēja nomainīt paroli, jo pazīšanās zīmei beidzies derīguma termiņš", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nevarēja nosūtīt paroles maiņas e-pastu, jo lietotājam nav norādīts e-pasts. Lūdzu sazinies ar savu administratoru.", + "%s password reset" : "%s paroles maiņa", "Password reset" : "Parole atiestatīta", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Nospiediet sekojošo pogu, lai atiestatītu paroli. Ja jūs nepieprasijāt paroles atiestatīšanu, ignorējiet šo e-pastu.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Nospiediet sekojošo saiti, lai atiestatītu paroli. Ja jūs nepieprasijāt paroles atiestatīšanu, ignorējiet šo e-pastu.", "Reset your password" : "Atiestatīt paroli", - "%s password reset" : "%s paroles maiņa", "Couldn't send reset email. Please contact your administrator." : "Nevarēja nosūtīt maiņas e-pastu. Lūdzu sazinies ar savu administratoru.", "Couldn't send reset email. Please make sure your username is correct." : "Nevarēja nosūtīt paroles maiņas e-pastu. Pārliecinies, ka tavs lietotājvārds ir pareizs.", "Preparing update" : "Sagatavo atjauninājumu", @@ -232,7 +232,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Šai programmai nepieciešams JavaScript. Lūdzu {linkstart}ieslēdziet JavasScript{linkend} un pārlādējiet lapu.", "More apps" : "Vairāk programmu", "Search" : "Meklēt", - "This action requires you to confirm your password:" : "Šī darbība ir nepieciešama, lai apstiprinātu jūsu paroli:", "Confirm your password" : "Apstipriniet paroli", "Server side authentication failed!" : "Servera autentifikācija neizdevās!", "Please contact your administrator." : "Lūdzu, sazinieties ar administratoru.", @@ -305,6 +304,7 @@ "The server encountered an internal error and was unable to complete your request." : "Serverī radās iekšēja kļūda, un tas nevarēja pabeigt jūsu pieprasījumu.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Lūdzu sazinieties ar servera administrātoru ja šī kļūda parādās vairākas reizes, lūdzu iekļaujiet zemāk redzamās tehniskās detaļas jūsu ziņojumā.", "Log out" : "Izrakstīties", + "This action requires you to confirm your password:" : "Šī darbība ir nepieciešama, lai apstiprinātu jūsu paroli:", "Use the following link to reset your password: {link}" : "Izmantojiet šo saiti, lai mainītu paroli: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Sveiki,<br><br>informējam, ka %s koplietoja ar jums <strong>%s</strong>.<br><a href=\"%s\">Apskati to!</a><br><br>", "You are accessing the server from an untrusted domain." : "Jums ir piekļuve serverim no neuzticama domēna.", diff --git a/core/l10n/nb.js b/core/l10n/nb.js index 05a408ccdbe..1fd3db2c831 100644 --- a/core/l10n/nb.js +++ b/core/l10n/nb.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Klarte ikke å tilbakestille passordet fordi symbolet er ugyldig.", "Couldn't reset password because the token is expired" : "Klarte ikke å tilbakestille passordet fordi symbolet er utløpt.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Klarte ikke å sende e-post for tilbakestilling av passord fordi det ikke finnes noen e-postadresse for dette brukernavnet. Kontakt administratoren din.", + "%s password reset" : "%s tilbakestilling av passord", "Password reset" : "Tilbakestilling av passord", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klikk følgende knapp for å tilbakestille passordet ditt. Ignorer denne e-posten hvis du ikke har forespurt dette.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klikk følgende lenke for å tilbakestille passordet ditt. Ignorer denne e-posten hvis du ikke har forespurt dette.", "Reset your password" : "Tilbakestill passordet ditt", - "%s password reset" : "%s tilbakestilling av passord", "Couldn't send reset email. Please contact your administrator." : "Klarte ikke å sende e-post for tilbakestilling. Kontakt administratoren.", "Couldn't send reset email. Please make sure your username is correct." : "Klarte ikke å sende e-post for tilbakestilling av passord. Sjekk at brukernavnet ditt er korrekt.", "Preparing update" : "Forbereder oppdatering", @@ -113,9 +113,9 @@ OC.L10N.register( "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Denne tjeneren har ingen fungerende internett-forbindelse. Dette betyr at noen funksjoner, som tilknytning av eksterne lagre, varslinger om oppdateringer eller installering av tredjepartsprogrammer ikke vil virke. Fjerntilgang til filer og utsending av varsler på e-post vil kanskje ikke virke heller. Vi anbefaler å aktivere en internett-forbindelse for denne tjeneren hvis du vil ha full funksjonalitet.", "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Inget hurtigminne har blitt satt opp. For å øke ytelsen bør du sette opp et hurtigminne hvis det er tilgjengelig. Mer informasjon finnes i vår <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentasjon</a>.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "/dev/urandom er ikke lesbar for PHP, noe som frarådes av sikkerhetsgrunner. Mer informasjon finnes i vår <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentasjon</a>.", - "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Du bruker PHP versjonen {version}. Vi anbefaler deg å oppgradere PHP versjonen for å utnytte <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\"> ytelse og sikkerhetsoppdateringer som tilbys av PHP Group</a>, så fort din distribusjon støtter det.", + "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Du bruker PHP-{version}. Vi anbefaler deg å oppgradere PHP versjonen for å utnytte <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\"> ytelse og sikkerhetsoppdateringer som tilbys av PHP Group</a>, så fort din distribusjon støtter det.", "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "De omvendte mellomtjener-hodene er ikke satt opp rett, eller du kobler til Nextcloud fra en betrodd mellomtjener. Hvis du ikke kobler til Nextcloud fra en betrodd mellomtjener, er dette et sikkerhetsproblem, og kan tillate en angriper å forfalske deres IP-adresse slik den er synlig for Nextcloud. Ytterligere informasjon er å finne i <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentasjonen</a>.", - "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached er satt opp som distribuert mellomlager, men feil PHP-modul \"memcache\" er installert. \\OC\\Memcache\\Memcached støtter bare \"memcached\" og ikke \"memcache\". Se <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached-wikien</a> for informasjon om begge modulene.", + "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached er satt opp som distribuert hurtiglager, men feil PHP-modul \"memcache\" er installert. \\OC\\Memcache\\Memcached støtter bare \"memcached\" og ikke \"memcache\". Se <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached-wikien</a> for informasjon om begge modulene.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Noen filer besto ikke gyldighetssjekken. Ytterligere informasjon om hvordan dette problemet kan løses finnes i vår <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentasjon</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Liste over ugyldige filer…</a> / <a href=\"{rescanEndpoint}\">Skann på ny…</a>)", "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "PHP Opcache er ikke satt opp rett. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For bedre ytelse anbefales det </a> å bruke følgende innstillinger i <code>php.ini</code>:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "PHP-funksjonen \"set_time_limit\" er ikke tilgjengelig. Dette kan resultere i at skript blir stoppet midt i kjøring, noe som knekker installasjonen din. Det anbefales sterkt å skru på denne funksjonen.", @@ -191,7 +191,7 @@ OC.L10N.register( "({scope})" : "({scope})", "Delete" : "Slett", "Rename" : "Gi nytt navn", - "Collaborative tags" : "Felles merkelapper", + "Collaborative tags" : "Samarbeidsmerkelapper", "No tags found" : "Ingen emneknagger funnet", "unknown text" : "ukjent tekst", "Hello world!" : "Hei, verden!", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Dette programmet krever JavaScript for å fungere korrekt. {linkstart}Aktiver JavaScript{linkend} og last siden på nytt.", "More apps" : "Flere programmer", "Search" : "Søk", - "This action requires you to confirm your password:" : "Denne handlingen krever at du bekrefter ditt passord:", + "Reset search" : "Tilbakestill søk", "Confirm your password" : "Bekreft ditt passord", "Server side authentication failed!" : "Autentisering mislyktes på tjeneren!", "Please contact your administrator." : "Kontakt administratoren din.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Tjeneren støtte på en intern feil og kunne ikke fullføre forespørselen din.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kontakt tjeneradministratoren hvis denne feilen oppstår flere ganger. Ta med de tekniske detaljene nedenfor i rapporten din.", "Log out" : "Logg ut", + "This action requires you to confirm your password:" : "Denne handlingen krever at du bekrefter ditt passord:", "Use the following link to reset your password: {link}" : "Bruk følgende lenke for å tilbakestille passordet ditt: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hei,<br><br>Dette er en beskjed om at %s delte <strong>%s</strong> med deg.<br><a href=\"%s\">Vis den!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Denne Nextcloud-instansen er for øyeblikket i enbrukermodus.", diff --git a/core/l10n/nb.json b/core/l10n/nb.json index 120c141cd63..f230345cfa4 100644 --- a/core/l10n/nb.json +++ b/core/l10n/nb.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Klarte ikke å tilbakestille passordet fordi symbolet er ugyldig.", "Couldn't reset password because the token is expired" : "Klarte ikke å tilbakestille passordet fordi symbolet er utløpt.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Klarte ikke å sende e-post for tilbakestilling av passord fordi det ikke finnes noen e-postadresse for dette brukernavnet. Kontakt administratoren din.", + "%s password reset" : "%s tilbakestilling av passord", "Password reset" : "Tilbakestilling av passord", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klikk følgende knapp for å tilbakestille passordet ditt. Ignorer denne e-posten hvis du ikke har forespurt dette.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klikk følgende lenke for å tilbakestille passordet ditt. Ignorer denne e-posten hvis du ikke har forespurt dette.", "Reset your password" : "Tilbakestill passordet ditt", - "%s password reset" : "%s tilbakestilling av passord", "Couldn't send reset email. Please contact your administrator." : "Klarte ikke å sende e-post for tilbakestilling. Kontakt administratoren.", "Couldn't send reset email. Please make sure your username is correct." : "Klarte ikke å sende e-post for tilbakestilling av passord. Sjekk at brukernavnet ditt er korrekt.", "Preparing update" : "Forbereder oppdatering", @@ -111,9 +111,9 @@ "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Denne tjeneren har ingen fungerende internett-forbindelse. Dette betyr at noen funksjoner, som tilknytning av eksterne lagre, varslinger om oppdateringer eller installering av tredjepartsprogrammer ikke vil virke. Fjerntilgang til filer og utsending av varsler på e-post vil kanskje ikke virke heller. Vi anbefaler å aktivere en internett-forbindelse for denne tjeneren hvis du vil ha full funksjonalitet.", "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Inget hurtigminne har blitt satt opp. For å øke ytelsen bør du sette opp et hurtigminne hvis det er tilgjengelig. Mer informasjon finnes i vår <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentasjon</a>.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "/dev/urandom er ikke lesbar for PHP, noe som frarådes av sikkerhetsgrunner. Mer informasjon finnes i vår <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentasjon</a>.", - "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Du bruker PHP versjonen {version}. Vi anbefaler deg å oppgradere PHP versjonen for å utnytte <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\"> ytelse og sikkerhetsoppdateringer som tilbys av PHP Group</a>, så fort din distribusjon støtter det.", + "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Du bruker PHP-{version}. Vi anbefaler deg å oppgradere PHP versjonen for å utnytte <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\"> ytelse og sikkerhetsoppdateringer som tilbys av PHP Group</a>, så fort din distribusjon støtter det.", "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "De omvendte mellomtjener-hodene er ikke satt opp rett, eller du kobler til Nextcloud fra en betrodd mellomtjener. Hvis du ikke kobler til Nextcloud fra en betrodd mellomtjener, er dette et sikkerhetsproblem, og kan tillate en angriper å forfalske deres IP-adresse slik den er synlig for Nextcloud. Ytterligere informasjon er å finne i <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentasjonen</a>.", - "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached er satt opp som distribuert mellomlager, men feil PHP-modul \"memcache\" er installert. \\OC\\Memcache\\Memcached støtter bare \"memcached\" og ikke \"memcache\". Se <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached-wikien</a> for informasjon om begge modulene.", + "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached er satt opp som distribuert hurtiglager, men feil PHP-modul \"memcache\" er installert. \\OC\\Memcache\\Memcached støtter bare \"memcached\" og ikke \"memcache\". Se <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached-wikien</a> for informasjon om begge modulene.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Noen filer besto ikke gyldighetssjekken. Ytterligere informasjon om hvordan dette problemet kan løses finnes i vår <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentasjon</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Liste over ugyldige filer…</a> / <a href=\"{rescanEndpoint}\">Skann på ny…</a>)", "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "PHP Opcache er ikke satt opp rett. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For bedre ytelse anbefales det </a> å bruke følgende innstillinger i <code>php.ini</code>:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "PHP-funksjonen \"set_time_limit\" er ikke tilgjengelig. Dette kan resultere i at skript blir stoppet midt i kjøring, noe som knekker installasjonen din. Det anbefales sterkt å skru på denne funksjonen.", @@ -189,7 +189,7 @@ "({scope})" : "({scope})", "Delete" : "Slett", "Rename" : "Gi nytt navn", - "Collaborative tags" : "Felles merkelapper", + "Collaborative tags" : "Samarbeidsmerkelapper", "No tags found" : "Ingen emneknagger funnet", "unknown text" : "ukjent tekst", "Hello world!" : "Hei, verden!", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Dette programmet krever JavaScript for å fungere korrekt. {linkstart}Aktiver JavaScript{linkend} og last siden på nytt.", "More apps" : "Flere programmer", "Search" : "Søk", - "This action requires you to confirm your password:" : "Denne handlingen krever at du bekrefter ditt passord:", + "Reset search" : "Tilbakestill søk", "Confirm your password" : "Bekreft ditt passord", "Server side authentication failed!" : "Autentisering mislyktes på tjeneren!", "Please contact your administrator." : "Kontakt administratoren din.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Tjeneren støtte på en intern feil og kunne ikke fullføre forespørselen din.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kontakt tjeneradministratoren hvis denne feilen oppstår flere ganger. Ta med de tekniske detaljene nedenfor i rapporten din.", "Log out" : "Logg ut", + "This action requires you to confirm your password:" : "Denne handlingen krever at du bekrefter ditt passord:", "Use the following link to reset your password: {link}" : "Bruk følgende lenke for å tilbakestille passordet ditt: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hei,<br><br>Dette er en beskjed om at %s delte <strong>%s</strong> med deg.<br><a href=\"%s\">Vis den!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Denne Nextcloud-instansen er for øyeblikket i enbrukermodus.", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index dafcc421e9b..8af41991283 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Kon het wachtwoord niet herstellen, omdat het token ongeldig is", "Couldn't reset password because the token is expired" : "Kon het wachtwoord niet herstellen, omdat het token verlopen is", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kon geen herstel e-mail versturen, omdat er geen emailadres bekend is bij deze gebruikersnaam. Neem contact op met je beheerder.", + "%s password reset" : "%s reset wachtwoord", "Password reset" : "Herstel wachtwoord", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klik op de volgende knop om je wachtwoord te herstellen. Als je geen wachtwoordherstel hebt aangevraagd, negeer dan dit emailbericht.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klik op de volgende link om je wachtwoord te herstellen. Als je geen wachtwoordherstel hebt aangevraagd, negeer dan dit emailbericht.", "Reset your password" : "Herstel je wachtwoord", - "%s password reset" : "%s reset wachtwoord", "Couldn't send reset email. Please contact your administrator." : "Kon herstel email niet versturen. Neem contact op met je beheerder.", "Couldn't send reset email. Please make sure your username is correct." : "Email kon niet worden verstuurt. Kijk of je gebruikersnaam klopt.", "Preparing update" : "Update voorbereiden", @@ -262,7 +262,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Deze applicatie heeft JavaScript nodig. {linkstart}Activeer JavaScript{linkend} en ververs deze pagina.", "More apps" : "Meer apps", "Search" : "Zoeken", - "This action requires you to confirm your password:" : "Deze actie vereist dat je je wachtwoord bevestigt:", "Confirm your password" : "Bevestig je wachtwoord", "Server side authentication failed!" : "Authenticatie bij de server mislukte!", "Please contact your administrator." : "Neem contact op met je systeembeheerder.", @@ -342,6 +341,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "De server ontdekte een interne fout en kon je aanvraag niet verder uitvoeren.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Neem contact op met de serverbeheerder als deze fout meerdere keren optreedt en neem de onderstaande technische details op in je melding.", "Log out" : "Afmelden", + "This action requires you to confirm your password:" : "Deze actie vereist dat je je wachtwoord bevestigt:", "Use the following link to reset your password: {link}" : "Gebruik de volgende link om je wachtwoord te resetten: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hallo daar,<br><br>%s deelde <strong>%s</strong> met je.<br><a href=\"%s\">Bekijk het hier!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Deze Nextcloud werkt momenteel in enkele gebruiker modus.", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index 1ee3fb222af..dcc7e8722a8 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Kon het wachtwoord niet herstellen, omdat het token ongeldig is", "Couldn't reset password because the token is expired" : "Kon het wachtwoord niet herstellen, omdat het token verlopen is", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kon geen herstel e-mail versturen, omdat er geen emailadres bekend is bij deze gebruikersnaam. Neem contact op met je beheerder.", + "%s password reset" : "%s reset wachtwoord", "Password reset" : "Herstel wachtwoord", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klik op de volgende knop om je wachtwoord te herstellen. Als je geen wachtwoordherstel hebt aangevraagd, negeer dan dit emailbericht.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klik op de volgende link om je wachtwoord te herstellen. Als je geen wachtwoordherstel hebt aangevraagd, negeer dan dit emailbericht.", "Reset your password" : "Herstel je wachtwoord", - "%s password reset" : "%s reset wachtwoord", "Couldn't send reset email. Please contact your administrator." : "Kon herstel email niet versturen. Neem contact op met je beheerder.", "Couldn't send reset email. Please make sure your username is correct." : "Email kon niet worden verstuurt. Kijk of je gebruikersnaam klopt.", "Preparing update" : "Update voorbereiden", @@ -260,7 +260,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Deze applicatie heeft JavaScript nodig. {linkstart}Activeer JavaScript{linkend} en ververs deze pagina.", "More apps" : "Meer apps", "Search" : "Zoeken", - "This action requires you to confirm your password:" : "Deze actie vereist dat je je wachtwoord bevestigt:", "Confirm your password" : "Bevestig je wachtwoord", "Server side authentication failed!" : "Authenticatie bij de server mislukte!", "Please contact your administrator." : "Neem contact op met je systeembeheerder.", @@ -340,6 +339,7 @@ "The server encountered an internal error and was unable to complete your request." : "De server ontdekte een interne fout en kon je aanvraag niet verder uitvoeren.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Neem contact op met de serverbeheerder als deze fout meerdere keren optreedt en neem de onderstaande technische details op in je melding.", "Log out" : "Afmelden", + "This action requires you to confirm your password:" : "Deze actie vereist dat je je wachtwoord bevestigt:", "Use the following link to reset your password: {link}" : "Gebruik de volgende link om je wachtwoord te resetten: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hallo daar,<br><br>%s deelde <strong>%s</strong> met je.<br><a href=\"%s\">Bekijk het hier!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Deze Nextcloud werkt momenteel in enkele gebruiker modus.", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index a42bf819dad..4f3f60dcf6e 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Nie można zresetować hasła, ponieważ token jest niepoprawny", "Couldn't reset password because the token is expired" : "Nie można zresetować hasła, ponieważ token wygasł", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nie udało się wysłać ponownego e-maila, ponieważ nie ma adresu e-mail do tego użytkownika. Proszę skontaktować się z administratorem.", + "%s password reset" : "%s reset hasła", "Password reset" : "Reset hasła", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Kliknij następujący przycisk, żeby zresetować hasło. Jeśli nie prosiłeś o zmianę hasła możesz zignorować tego e-maila.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Kliknij następujący przycisk, żeby zresetować hasło. Jeśli nie prosiłeś o zmianę hasła możesz zignorować tego e-maila.", "Reset your password" : "Zresetuj hasło", - "%s password reset" : "%s reset hasła", "Couldn't send reset email. Please contact your administrator." : "Nie mogę wysłać maila resetującego. Skontaktuj się z administratorem.", "Couldn't send reset email. Please make sure your username is correct." : "Nie mogę wysłać maila resetującego. Sprawdź czy nazwa użytkownika jest poprawna.", "Preparing update" : "Przygotowuję aktualizację", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ta aplikacja wymaga JavaScript do poprawnego działania. Proszę {linkstart}włączyć JavaScript{linkend} i przeładować stronę.", "More apps" : "Więcej aplikacji", "Search" : "Wyszukaj", - "This action requires you to confirm your password:" : "Ta akcja wymaga potwierdzenia hasłem:", + "Reset search" : "Zresetuj wyszukiwanie", "Confirm your password" : "Potwierdź hasło", "Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!", "Please contact your administrator." : "Skontaktuj się z administratorem", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Serwer napotkał błąd wewnętrzny i nie był w stanie ukończyć Twojego żądania.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Proszę skontaktować się z administratorem jeśli ten błąd będzie się pojawiał wielokrotnie, proszę do zgłoszenia dołączyć szczegóły techniczne opisane poniżej.", "Log out" : "Wyloguj", + "This action requires you to confirm your password:" : "Ta akcja wymaga potwierdzenia hasłem:", "Use the following link to reset your password: {link}" : "Użyj tego odnośnika by zresetować hasło: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Witam, <br><br>informuję, że %s udostępnianych zasobów <strong>%s</strong> jest z Tobą.<br><a href=\"%s\">Zobacz!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Ta instalacja Nextcloud działa obecnie w trybie pojedynczego użytkownika.", diff --git a/core/l10n/pl.json b/core/l10n/pl.json index b9776936e3b..82a90fc5b16 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Nie można zresetować hasła, ponieważ token jest niepoprawny", "Couldn't reset password because the token is expired" : "Nie można zresetować hasła, ponieważ token wygasł", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nie udało się wysłać ponownego e-maila, ponieważ nie ma adresu e-mail do tego użytkownika. Proszę skontaktować się z administratorem.", + "%s password reset" : "%s reset hasła", "Password reset" : "Reset hasła", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Kliknij następujący przycisk, żeby zresetować hasło. Jeśli nie prosiłeś o zmianę hasła możesz zignorować tego e-maila.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Kliknij następujący przycisk, żeby zresetować hasło. Jeśli nie prosiłeś o zmianę hasła możesz zignorować tego e-maila.", "Reset your password" : "Zresetuj hasło", - "%s password reset" : "%s reset hasła", "Couldn't send reset email. Please contact your administrator." : "Nie mogę wysłać maila resetującego. Skontaktuj się z administratorem.", "Couldn't send reset email. Please make sure your username is correct." : "Nie mogę wysłać maila resetującego. Sprawdź czy nazwa użytkownika jest poprawna.", "Preparing update" : "Przygotowuję aktualizację", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ta aplikacja wymaga JavaScript do poprawnego działania. Proszę {linkstart}włączyć JavaScript{linkend} i przeładować stronę.", "More apps" : "Więcej aplikacji", "Search" : "Wyszukaj", - "This action requires you to confirm your password:" : "Ta akcja wymaga potwierdzenia hasłem:", + "Reset search" : "Zresetuj wyszukiwanie", "Confirm your password" : "Potwierdź hasło", "Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!", "Please contact your administrator." : "Skontaktuj się z administratorem", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Serwer napotkał błąd wewnętrzny i nie był w stanie ukończyć Twojego żądania.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Proszę skontaktować się z administratorem jeśli ten błąd będzie się pojawiał wielokrotnie, proszę do zgłoszenia dołączyć szczegóły techniczne opisane poniżej.", "Log out" : "Wyloguj", + "This action requires you to confirm your password:" : "Ta akcja wymaga potwierdzenia hasłem:", "Use the following link to reset your password: {link}" : "Użyj tego odnośnika by zresetować hasło: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Witam, <br><br>informuję, że %s udostępnianych zasobów <strong>%s</strong> jest z Tobą.<br><a href=\"%s\">Zobacz!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Ta instalacja Nextcloud działa obecnie w trybie pojedynczego użytkownika.", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index 91558548b2d..8cf2c6f9386 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Não foi possível redefinir a senha porque o token é inválido", "Couldn't reset password because the token is expired" : "Não foi possível redefinir a senha porque o token expirou", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar e-mail de redefinição porque não há nenhum endereço de e-mail para este nome de usuário. Entre em contato com o administrador.", + "%s password reset" : "%s redefinir senha", "Password reset" : "Redefinir a senha", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no botão abaixo para redefinir sua senha. Se você não solicitou isso, ignore este e-mail.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no link abaixo para redefinir sua senha. Se você não solicitou isso, ignore este e-mail.", "Reset your password" : "Redefinir sua senha", - "%s password reset" : "%s redefinir senha", "Couldn't send reset email. Please contact your administrator." : "Não foi possível enviar o e-mail de redefinição. Por favor, contate o administrador.", "Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar o e-mail de redefinição. Verifique se o seu nome de usuário está correto.", "Preparing update" : "Preparando a atualização", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Este aplicativo requer JavaScript para sua correta operação. Por favor {linkstart}habilite o JavaScript{linkend} e recarregue a página.", "More apps" : "Mais aplicativos", "Search" : "Pesquisar", - "This action requires you to confirm your password:" : "Essa ação requer a confirmação da sua senha:", + "Reset search" : "Redefinir pesquisa", "Confirm your password" : "Confirme sua senha", "Server side authentication failed!" : "Autenticação do servidor falhou!", "Please contact your administrator." : "Por favor, contacte o administrador.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "O servidor encontrou um erro interno e não conseguiu concluir o seu pedido.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Entre em contato com o administrador do servidor se este erro reaparecer várias vezes. Por favor, inclua os detalhes técnicos abaixo em seu relatório.", "Log out" : "Sair", + "This action requires you to confirm your password:" : "Essa ação requer a confirmação da sua senha:", "Use the following link to reset your password: {link}" : "Use o seguinte link para redefinir sua senha: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Olá,<br><br>só para avisar que %s compartilhou <strong>%s</strong> com você. <br><a href=\"%s\">Visualize-o!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instância Nextcloud está em modo de usuário único.", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index c6e45c95b30..1245bdc3559 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Não foi possível redefinir a senha porque o token é inválido", "Couldn't reset password because the token is expired" : "Não foi possível redefinir a senha porque o token expirou", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar e-mail de redefinição porque não há nenhum endereço de e-mail para este nome de usuário. Entre em contato com o administrador.", + "%s password reset" : "%s redefinir senha", "Password reset" : "Redefinir a senha", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no botão abaixo para redefinir sua senha. Se você não solicitou isso, ignore este e-mail.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no link abaixo para redefinir sua senha. Se você não solicitou isso, ignore este e-mail.", "Reset your password" : "Redefinir sua senha", - "%s password reset" : "%s redefinir senha", "Couldn't send reset email. Please contact your administrator." : "Não foi possível enviar o e-mail de redefinição. Por favor, contate o administrador.", "Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar o e-mail de redefinição. Verifique se o seu nome de usuário está correto.", "Preparing update" : "Preparando a atualização", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Este aplicativo requer JavaScript para sua correta operação. Por favor {linkstart}habilite o JavaScript{linkend} e recarregue a página.", "More apps" : "Mais aplicativos", "Search" : "Pesquisar", - "This action requires you to confirm your password:" : "Essa ação requer a confirmação da sua senha:", + "Reset search" : "Redefinir pesquisa", "Confirm your password" : "Confirme sua senha", "Server side authentication failed!" : "Autenticação do servidor falhou!", "Please contact your administrator." : "Por favor, contacte o administrador.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "O servidor encontrou um erro interno e não conseguiu concluir o seu pedido.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Entre em contato com o administrador do servidor se este erro reaparecer várias vezes. Por favor, inclua os detalhes técnicos abaixo em seu relatório.", "Log out" : "Sair", + "This action requires you to confirm your password:" : "Essa ação requer a confirmação da sua senha:", "Use the following link to reset your password: {link}" : "Use o seguinte link para redefinir sua senha: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Olá,<br><br>só para avisar que %s compartilhou <strong>%s</strong> com você. <br><a href=\"%s\">Visualize-o!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instância Nextcloud está em modo de usuário único.", diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js index d7b3e5a5155..31dc53390ec 100644 --- a/core/l10n/pt_PT.js +++ b/core/l10n/pt_PT.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Please select a file." : "Por favor, selecione um ficheiro.", "File is too big" : "O ficheiro é demasiado grande", - "The selected file is not an image." : "O ficheiro seleccionado não é uma imagem.", - "The selected file cannot be read." : "O ficheiro seleccionado não pode ser lido.", + "The selected file is not an image." : "O ficheiro selecionado não é uma imagem.", + "The selected file cannot be read." : "O ficheiro selecionado não pode ser lido.", "Invalid file provided" : "Ficheiro indicado inválido", "No image or file provided" : "Não foi indicado nenhum ficheiro ou imagem", "Unknown filetype" : "Tipo de ficheiro desconhecido", @@ -14,10 +14,15 @@ OC.L10N.register( "No crop data provided" : "Não foram fornecidos dados de recorte", "No valid crop data provided" : "Não foram indicados dados de recorte válidos", "Crop is not square" : "O recorte não é quadrado", + "Password reset is disabled" : "A reposição da senha está desativada", "Couldn't reset password because the token is invalid" : "Não foi possível repor a palavra-passe porque a senha é inválida", "Couldn't reset password because the token is expired" : "Não foi possível repor a palavra-passe porque a senha expirou", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar a mensagem de reposição porque não existe nenhum endereço de e-mail associado para este utilizador. Por favor, contacte o seu administrador.", "%s password reset" : "%s reposição da palavra-passe", + "Password reset" : "Reposição da senha", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no seguinte botão para repor a sua senha. Se não solicitou a reposição da senha, ignore este e-mail.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Clique na seguinte hiperligação para repor a sua senha. Se não solicitou a reposição da senha, ignore este e-mail.", + "Reset your password" : "Repor a senha", "Couldn't send reset email. Please contact your administrator." : "Não foi possível enviar a mensagem de reposição. Por favor, contacte o seu administrador.", "Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar a mensagem de reposição. Por favor, confirme se o seu nome de utilizador está correto.", "Preparing update" : "A preparar atualização", @@ -26,14 +31,16 @@ OC.L10N.register( "Repair error: " : "Erro de correção:", "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor, utilize o atualizador de linha de comando porque a atualização automática está desativada em config.php.", "[%d / %d]: Checking table %s" : "[%d / %d]: a verificar a tabela %s", - "Turned on maintenance mode" : "Ativado o modo de manutenção", - "Turned off maintenance mode" : "Desativado o modo de manutenção", + "Turned on maintenance mode" : "Ativou o modo de manutenção", + "Turned off maintenance mode" : "Desativou o modo de manutenção", "Maintenance mode is kept active" : "O modo de manutenção é mantido ativo", "Updating database schema" : "A atualizar o esquema da base de dados", "Updated database" : "Base de dados atualizada", "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "A verificar se o esquema da base de dados pode ser atualizado (isto pode demorar algum tempo dependendo do tamanho da base de dados)", "Checked database schema update" : "Atualização do esquema da base de dados verificada.", "Checking updates of apps" : "A procurar por atualizações das aplicações", + "Checking for update of app \"%s\" in appstore" : "A procurar por atualizações da aplicação \"%s\" na appstore", + "Update app \"%s\" from appstore" : "Atualizar app \"%s\" da appstore", "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "A verificar se o esquema da base de dados para %s pode ser atualizado (isto pode demorar algum tempo dependendo do tamanho da base de dados)", "Checked database schema update for apps" : "Atualização do esquema da base de dados para as aplicações verificada.", "Updated \"%s\" to %s" : "Atualizado \"%s\" para %s", @@ -45,13 +52,18 @@ OC.L10N.register( "%s (incompatible)" : "%s (incompatível)", "Following apps have been disabled: %s" : "Foram desativadas as seguintes aplicações: %s", "Already up to date" : "Já está atualizado", + "Search contacts …" : "Pesquisar contactos ...", + "No contacts found" : "Não foram encontrados contactos", + "Show all contacts …" : "Mostrar todos os contactos ...", + "There was an error loading your contacts" : "Erro ao carregar os seus contactos", + "Loading your contacts …" : "A carregar os seus contactos", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Existiram alguns problemas com a verificação de integridade do código. Mais informação…</a>", "Settings" : "Configurações", "Connection to server lost" : "Ligação perdida ao servidor", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problema a carregar a página. A recarregar dentro de %n segundos","Problema ao carregar a página. A recarregar dentro de %n segundos"], "Saving..." : "A guardar...", - "Dismiss" : "Rejeitar", - "This action requires you to confirm your password" : "Esta acção requer a confirmação da password", + "Dismiss" : "Dispensar", + "This action requires you to confirm your password" : "Esta ação requer a confirmação da password", "Authentication required" : "Autenticação necessária", "Password" : "Palavra-passe", "Cancel" : "Cancelar", @@ -59,16 +71,18 @@ OC.L10N.register( "Failed to authenticate, try again" : "Falha ao autenticar. Tente outra vez.", "seconds ago" : "segundos atrás", "Logging in …" : "A entrar...", - "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.<br>If it is not there ask your local administrator." : "A hiperligação para reiniciar a sua senha foi enviada para o seu correio eletrónico. Se não a receber dentro de um tempo aceitável, verifique as suas pastas de span/lixo.<br> Se não a encontrar, pergunte ao seu administrador local.", + "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.<br>If it is not there ask your local administrator." : "A hiperligação para reiniciar a sua senha foi enviada para o seu correio eletrónico. Se não a receber dentro de um tempo aceitável, verifique as suas pastas de spam/lixo.<br> Se não a encontrar, pergunte ao seu administrador local.", "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros estão encriptados. Não haverá forma de recuperar os dados depois de alterar a password.<br />Se não tiver a certeza do que fazer, por favor, contacte o administrador antes de continuar. <br />Deseja mesmo continuar?", "I know what I'm doing" : "Eu sei o que eu estou a fazer", "Password can not be changed. Please contact your administrator." : "A palavra-passe não pode ser alterada. Por favor, contacte o seu administrador.", "No" : "Não", "Yes" : "Sim", - "No files in here" : "Não ficheiros aqui", + "No files in here" : "Sem ficheiros aqui", "Choose" : "Escolher", "Copy" : "Copiar", + "Move" : "Mover", "Error loading file picker template: {error}" : "Ocorreu um erro ao carregar o modelo de seleção de ficheiro: {error}", + "OK" : "Confirmar", "Error loading message template: {error}" : "Ocorreu um erro ao carregar o modelo: {error}", "read-only" : "só de leitura", "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflito de ficheiro","{count} conflitos de ficheiro"], @@ -82,6 +96,8 @@ OC.L10N.register( "({count} selected)" : "({count} selecionados)", "Error loading file exists template" : "Ocorreu um erro ao carregar o ficheiro do modelo existente", "Pending" : "Pendente", + "Copy to {folder}" : "Copiar para {folder}", + "Move to {folder}" : "Mover para {folder}", "Very weak password" : "Palavra-passe muito fraca", "Weak password" : "Palavra-passe fraca", "So-so password" : "Palavra-passe aceitável", @@ -98,6 +114,7 @@ OC.L10N.register( "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Alguns ficheiros não passaram na verificação de integridade. Mais informação sobre este assunto pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Lista de ficheiros inválidos…</a> / <a href=\"{rescanEndpoint}\">Reverificar…</a>)", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "A função PHP \"set_time_limit\" não está disponível. Isso pode resultar na paragem dos scripts a meio da execução, impedindo a instalação. Recomenda-se vivamente activar esta função.", "Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "A pasta de dados e os respetivos ficheiros estão provavelmente acessíveis a partir da Internet. O ficheiro .htaccess não funciona. É altamente recomendado que configure o seu servidor web de forma a que a pasta de dados deixe de estar acessível ou mova a pasta de dados para fora da raiz do servidor web.", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "O cabeçalho HTTP \"{header}\" não está configurado para igualar \"{expected}\". Isto é um potencial risco de segurança ou privacidade e recomendamos que o corrija.", "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "O cabeçalho HTTP \"Strict-Transport-Security\" não está configurado para um mínimo de \"{seconds}\" segundos. Para uma segurança melhorada recomendados a ativação do HSTS como descrito nas nossas <a href=\"{docUrl}\" rel=\"noreferrer\">dicas de segurança</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Está a aceder a este site via HTTP. Nós recomendamos vivamente que configure o seu servidor para requerer a utilização de HTTPS, em vez do que está descrito nas nossas <a href=\"{docUrl}\">dicas de segurança</a>.", @@ -122,6 +139,7 @@ OC.L10N.register( "Email link to person" : "Enviar hiperligação por mensagem para a pessoa", "Send" : "Enviar", "Allow upload and editing" : "Permitir enviar e editar", + "Read only" : "Só de leitura", "File drop (upload only)" : "Arrastar ficheiro (apenas envio)", "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}", @@ -130,6 +148,7 @@ OC.L10N.register( "group" : "grupo", "remote" : "remoto", "email" : "email", + "shared by {sharer}" : "partilhado por {sharer}", "Unshare" : "Cancelar partilha", "Can reshare" : "Pode partilhar de novo", "Can edit" : "Pode editar", @@ -150,6 +169,12 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Partilhar", + "Share with other people by entering a user or group or a federated cloud ID." : "Partilhar com outros introduzindo um nome de utilizador ou grupo, um ID de cloud federada ou um endereço de e-mail.", + "Share with other people by entering a user or group or an email address." : "Partilhar com outros introduzindo um nome de utilizador ou grupo ou um endereço de e-mail.", + "Name or email address..." : "Nome ou endereço de e-mail...", + "Name or federated cloud ID..." : "Nome ou ID de cloud federada", + "Name, federated cloud ID or email address..." : "Nome, ID de cloud federada ou endereço de e-mail", + "Name..." : "Nome...", "Error" : "Erro", "Error removing share" : "Erro ao remover partilha", "Non-existing tag #{tag}" : "Etiqueta não existente #{tag}", @@ -173,7 +198,7 @@ OC.L10N.register( "An error occurred." : "Ocorreu um erro.", "Please reload the page." : "Por favor, recarregue a página.", "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "A atualização falhou. Para mais informação <a href=\"{url}\">verifique o nosso fórum</a> sobre como resolver este problema.", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "A actualização não foi bem sucedida. Por favor, informe este problema à <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">comunidade Nextcloud</a>.", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "A atualização não foi bem sucedida. Por favor, informe este problema à <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">comunidade Nextcloud</a>.", "Continue to Nextcloud" : "Continuar para Nextcloud", "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["A actualização foi bem sucedida. A redireccionar para Nextcloud dentro de %n segundos.","A actualização foi bem sucedida. A redireccionar para Nextcloud dentro de %n segundos."], "Searching other places" : "A pesquisar noutros lugares", @@ -189,6 +214,8 @@ OC.L10N.register( "The specified document has not been found on the server." : "O documento especificado não foi encontrado no servidor.", "You can click here to return to %s." : "Pode clicar aqui para voltar para %s.", "Internal Server Error" : "Erro Interno do Servidor", + "The server was unable to complete your request." : "O servidor não conseguiu completar o seu pedido.", + "If this happens again, please send the technical details below to the server administrator." : "Se voltar a acontecer, por favor envie os detalhes técnicos abaixo ao administrador do servidor.", "More details can be found in the server log." : "Mais detalhes podem ser encontrados no log do servidor.", "Technical details" : "Detalhes técnicos", "Remote Address: %s" : "Endereço remoto: %s", @@ -200,7 +227,7 @@ OC.L10N.register( "Line: %s" : "Linha: %s", "Trace" : "Rasto", "Security warning" : "Aviso de Segurança", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "A pasta de dados do ownCloud e os respectivos ficheiros estão provavelmente acessíveis a partir da internet pois o ficheiro .htaccess não funciona.", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "A pasta de dados e os respetivos ficheiros estão provavelmente acessíveis a partir da internet pois o ficheiro .htaccess não funciona.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para obter informações de como configurar correctamente o servidor, veja em: <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentação</a>.", "Create an <strong>admin account</strong>" : "Criar uma <strong>conta administrativa</strong>", "Username" : "Nome de utilizador", @@ -220,15 +247,15 @@ OC.L10N.register( "SQLite will be used as database." : "SQLite será usado como base de dados.", "For larger installations we recommend to choose a different database backend." : "Para instalações maiores, nós recomendamos que escolha uma interface de base de dados diferente.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "O uso de SQLite é desencorajado especialmente se estiver a pensar em dar uso ao cliente desktop para sincronizar os seus ficheiros no seu computador.", - "Finish setup" : "Terminar consiguração", + "Finish setup" : "Terminar configuração", "Finishing …" : "A terminar...", "Need help?" : "Precisa de ajuda?", "See the documentation" : "Consulte a documentação", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicação requer o JavaScript para funcionar corretamente. Por favor, {linkstart}ative o JavaScript{linkend} e recarregue a página.", "More apps" : "Mais apps", "Search" : "Procurar", - "This action requires you to confirm your password:" : "Esta acção requer a confirmação da password:", - "Confirm your password" : "Confirmar password", + "Reset search" : "Repor procura", + "Confirm your password" : "Confirmar palavra-passe", "Server side authentication failed!" : "Autenticação do lado do servidor falhou!", "Please contact your administrator." : "Por favor, contacte o seu administrador.", "An internal error occurred." : "Ocorreu um erro interno.", @@ -239,6 +266,7 @@ OC.L10N.register( "Log in" : "Iniciar Sessão", "Stay logged in" : "Manter sessão iniciada", "Alternative Logins" : "Contas de Acesso Alternativas", + "Redirecting …" : "A redirecionar...", "New password" : "Nova palavra-passe", "New Password" : "Nova palavra-passe", "Reset password" : "Repor palavra-passe", @@ -259,6 +287,7 @@ OC.L10N.register( "Detailed logs" : "Registos detalhados", "Update needed" : "É necessário atualizar", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para obter ajuda, consulte a <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentação</a>.", + "Upgrade via web on my own risk" : "Atualizar via web por minha conta e risco.", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instância %s está atualmente no modo de manutenção, o que poderá demorar algum tempo.", "This page will refresh itself when the %s instance is available again." : "Esta página irá ser atualizada quando a instância %s ficar novamente disponível.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacte o seu administrador do sistema se esta mensagem persistir ou apareceu inesperadamente.", @@ -296,6 +325,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "O servidor encontrou um erro interno e não conseguiu concluir o seu pedido.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Entra em contacto com o administrador do servidor se este erro aparecer várias vezes, inclui também os detalhes técnicos abaixo no seu contacto.", "Log out" : "Terminar sessão", + "This action requires you to confirm your password:" : "Esta acção requer a confirmação da password:", "Use the following link to reset your password: {link}" : "Utilize a seguinte hiperligação para repor a sua palavra-passe: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Olá,<br><br>apenas para informar que %s partilhou <strong>%s</strong> consigo.<br><a href=\"%s\">Consulte aqui!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instância do Nextcloud está atualmente configurada no modo de único utilizador.", diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json index bbad764c6d9..00b163d90c3 100644 --- a/core/l10n/pt_PT.json +++ b/core/l10n/pt_PT.json @@ -1,8 +1,8 @@ { "translations": { "Please select a file." : "Por favor, selecione um ficheiro.", "File is too big" : "O ficheiro é demasiado grande", - "The selected file is not an image." : "O ficheiro seleccionado não é uma imagem.", - "The selected file cannot be read." : "O ficheiro seleccionado não pode ser lido.", + "The selected file is not an image." : "O ficheiro selecionado não é uma imagem.", + "The selected file cannot be read." : "O ficheiro selecionado não pode ser lido.", "Invalid file provided" : "Ficheiro indicado inválido", "No image or file provided" : "Não foi indicado nenhum ficheiro ou imagem", "Unknown filetype" : "Tipo de ficheiro desconhecido", @@ -12,10 +12,15 @@ "No crop data provided" : "Não foram fornecidos dados de recorte", "No valid crop data provided" : "Não foram indicados dados de recorte válidos", "Crop is not square" : "O recorte não é quadrado", + "Password reset is disabled" : "A reposição da senha está desativada", "Couldn't reset password because the token is invalid" : "Não foi possível repor a palavra-passe porque a senha é inválida", "Couldn't reset password because the token is expired" : "Não foi possível repor a palavra-passe porque a senha expirou", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar a mensagem de reposição porque não existe nenhum endereço de e-mail associado para este utilizador. Por favor, contacte o seu administrador.", "%s password reset" : "%s reposição da palavra-passe", + "Password reset" : "Reposição da senha", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no seguinte botão para repor a sua senha. Se não solicitou a reposição da senha, ignore este e-mail.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Clique na seguinte hiperligação para repor a sua senha. Se não solicitou a reposição da senha, ignore este e-mail.", + "Reset your password" : "Repor a senha", "Couldn't send reset email. Please contact your administrator." : "Não foi possível enviar a mensagem de reposição. Por favor, contacte o seu administrador.", "Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar a mensagem de reposição. Por favor, confirme se o seu nome de utilizador está correto.", "Preparing update" : "A preparar atualização", @@ -24,14 +29,16 @@ "Repair error: " : "Erro de correção:", "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor, utilize o atualizador de linha de comando porque a atualização automática está desativada em config.php.", "[%d / %d]: Checking table %s" : "[%d / %d]: a verificar a tabela %s", - "Turned on maintenance mode" : "Ativado o modo de manutenção", - "Turned off maintenance mode" : "Desativado o modo de manutenção", + "Turned on maintenance mode" : "Ativou o modo de manutenção", + "Turned off maintenance mode" : "Desativou o modo de manutenção", "Maintenance mode is kept active" : "O modo de manutenção é mantido ativo", "Updating database schema" : "A atualizar o esquema da base de dados", "Updated database" : "Base de dados atualizada", "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "A verificar se o esquema da base de dados pode ser atualizado (isto pode demorar algum tempo dependendo do tamanho da base de dados)", "Checked database schema update" : "Atualização do esquema da base de dados verificada.", "Checking updates of apps" : "A procurar por atualizações das aplicações", + "Checking for update of app \"%s\" in appstore" : "A procurar por atualizações da aplicação \"%s\" na appstore", + "Update app \"%s\" from appstore" : "Atualizar app \"%s\" da appstore", "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "A verificar se o esquema da base de dados para %s pode ser atualizado (isto pode demorar algum tempo dependendo do tamanho da base de dados)", "Checked database schema update for apps" : "Atualização do esquema da base de dados para as aplicações verificada.", "Updated \"%s\" to %s" : "Atualizado \"%s\" para %s", @@ -43,13 +50,18 @@ "%s (incompatible)" : "%s (incompatível)", "Following apps have been disabled: %s" : "Foram desativadas as seguintes aplicações: %s", "Already up to date" : "Já está atualizado", + "Search contacts …" : "Pesquisar contactos ...", + "No contacts found" : "Não foram encontrados contactos", + "Show all contacts …" : "Mostrar todos os contactos ...", + "There was an error loading your contacts" : "Erro ao carregar os seus contactos", + "Loading your contacts …" : "A carregar os seus contactos", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Existiram alguns problemas com a verificação de integridade do código. Mais informação…</a>", "Settings" : "Configurações", "Connection to server lost" : "Ligação perdida ao servidor", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problema a carregar a página. A recarregar dentro de %n segundos","Problema ao carregar a página. A recarregar dentro de %n segundos"], "Saving..." : "A guardar...", - "Dismiss" : "Rejeitar", - "This action requires you to confirm your password" : "Esta acção requer a confirmação da password", + "Dismiss" : "Dispensar", + "This action requires you to confirm your password" : "Esta ação requer a confirmação da password", "Authentication required" : "Autenticação necessária", "Password" : "Palavra-passe", "Cancel" : "Cancelar", @@ -57,16 +69,18 @@ "Failed to authenticate, try again" : "Falha ao autenticar. Tente outra vez.", "seconds ago" : "segundos atrás", "Logging in …" : "A entrar...", - "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.<br>If it is not there ask your local administrator." : "A hiperligação para reiniciar a sua senha foi enviada para o seu correio eletrónico. Se não a receber dentro de um tempo aceitável, verifique as suas pastas de span/lixo.<br> Se não a encontrar, pergunte ao seu administrador local.", + "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.<br>If it is not there ask your local administrator." : "A hiperligação para reiniciar a sua senha foi enviada para o seu correio eletrónico. Se não a receber dentro de um tempo aceitável, verifique as suas pastas de spam/lixo.<br> Se não a encontrar, pergunte ao seu administrador local.", "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros estão encriptados. Não haverá forma de recuperar os dados depois de alterar a password.<br />Se não tiver a certeza do que fazer, por favor, contacte o administrador antes de continuar. <br />Deseja mesmo continuar?", "I know what I'm doing" : "Eu sei o que eu estou a fazer", "Password can not be changed. Please contact your administrator." : "A palavra-passe não pode ser alterada. Por favor, contacte o seu administrador.", "No" : "Não", "Yes" : "Sim", - "No files in here" : "Não ficheiros aqui", + "No files in here" : "Sem ficheiros aqui", "Choose" : "Escolher", "Copy" : "Copiar", + "Move" : "Mover", "Error loading file picker template: {error}" : "Ocorreu um erro ao carregar o modelo de seleção de ficheiro: {error}", + "OK" : "Confirmar", "Error loading message template: {error}" : "Ocorreu um erro ao carregar o modelo: {error}", "read-only" : "só de leitura", "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflito de ficheiro","{count} conflitos de ficheiro"], @@ -80,6 +94,8 @@ "({count} selected)" : "({count} selecionados)", "Error loading file exists template" : "Ocorreu um erro ao carregar o ficheiro do modelo existente", "Pending" : "Pendente", + "Copy to {folder}" : "Copiar para {folder}", + "Move to {folder}" : "Mover para {folder}", "Very weak password" : "Palavra-passe muito fraca", "Weak password" : "Palavra-passe fraca", "So-so password" : "Palavra-passe aceitável", @@ -96,6 +112,7 @@ "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Alguns ficheiros não passaram na verificação de integridade. Mais informação sobre este assunto pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Lista de ficheiros inválidos…</a> / <a href=\"{rescanEndpoint}\">Reverificar…</a>)", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "A função PHP \"set_time_limit\" não está disponível. Isso pode resultar na paragem dos scripts a meio da execução, impedindo a instalação. Recomenda-se vivamente activar esta função.", "Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "A pasta de dados e os respetivos ficheiros estão provavelmente acessíveis a partir da Internet. O ficheiro .htaccess não funciona. É altamente recomendado que configure o seu servidor web de forma a que a pasta de dados deixe de estar acessível ou mova a pasta de dados para fora da raiz do servidor web.", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "O cabeçalho HTTP \"{header}\" não está configurado para igualar \"{expected}\". Isto é um potencial risco de segurança ou privacidade e recomendamos que o corrija.", "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "O cabeçalho HTTP \"Strict-Transport-Security\" não está configurado para um mínimo de \"{seconds}\" segundos. Para uma segurança melhorada recomendados a ativação do HSTS como descrito nas nossas <a href=\"{docUrl}\" rel=\"noreferrer\">dicas de segurança</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Está a aceder a este site via HTTP. Nós recomendamos vivamente que configure o seu servidor para requerer a utilização de HTTPS, em vez do que está descrito nas nossas <a href=\"{docUrl}\">dicas de segurança</a>.", @@ -120,6 +137,7 @@ "Email link to person" : "Enviar hiperligação por mensagem para a pessoa", "Send" : "Enviar", "Allow upload and editing" : "Permitir enviar e editar", + "Read only" : "Só de leitura", "File drop (upload only)" : "Arrastar ficheiro (apenas envio)", "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}", @@ -128,6 +146,7 @@ "group" : "grupo", "remote" : "remoto", "email" : "email", + "shared by {sharer}" : "partilhado por {sharer}", "Unshare" : "Cancelar partilha", "Can reshare" : "Pode partilhar de novo", "Can edit" : "Pode editar", @@ -148,6 +167,12 @@ "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Partilhar", + "Share with other people by entering a user or group or a federated cloud ID." : "Partilhar com outros introduzindo um nome de utilizador ou grupo, um ID de cloud federada ou um endereço de e-mail.", + "Share with other people by entering a user or group or an email address." : "Partilhar com outros introduzindo um nome de utilizador ou grupo ou um endereço de e-mail.", + "Name or email address..." : "Nome ou endereço de e-mail...", + "Name or federated cloud ID..." : "Nome ou ID de cloud federada", + "Name, federated cloud ID or email address..." : "Nome, ID de cloud federada ou endereço de e-mail", + "Name..." : "Nome...", "Error" : "Erro", "Error removing share" : "Erro ao remover partilha", "Non-existing tag #{tag}" : "Etiqueta não existente #{tag}", @@ -171,7 +196,7 @@ "An error occurred." : "Ocorreu um erro.", "Please reload the page." : "Por favor, recarregue a página.", "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "A atualização falhou. Para mais informação <a href=\"{url}\">verifique o nosso fórum</a> sobre como resolver este problema.", - "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "A actualização não foi bem sucedida. Por favor, informe este problema à <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">comunidade Nextcloud</a>.", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "A atualização não foi bem sucedida. Por favor, informe este problema à <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">comunidade Nextcloud</a>.", "Continue to Nextcloud" : "Continuar para Nextcloud", "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["A actualização foi bem sucedida. A redireccionar para Nextcloud dentro de %n segundos.","A actualização foi bem sucedida. A redireccionar para Nextcloud dentro de %n segundos."], "Searching other places" : "A pesquisar noutros lugares", @@ -187,6 +212,8 @@ "The specified document has not been found on the server." : "O documento especificado não foi encontrado no servidor.", "You can click here to return to %s." : "Pode clicar aqui para voltar para %s.", "Internal Server Error" : "Erro Interno do Servidor", + "The server was unable to complete your request." : "O servidor não conseguiu completar o seu pedido.", + "If this happens again, please send the technical details below to the server administrator." : "Se voltar a acontecer, por favor envie os detalhes técnicos abaixo ao administrador do servidor.", "More details can be found in the server log." : "Mais detalhes podem ser encontrados no log do servidor.", "Technical details" : "Detalhes técnicos", "Remote Address: %s" : "Endereço remoto: %s", @@ -198,7 +225,7 @@ "Line: %s" : "Linha: %s", "Trace" : "Rasto", "Security warning" : "Aviso de Segurança", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "A pasta de dados do ownCloud e os respectivos ficheiros estão provavelmente acessíveis a partir da internet pois o ficheiro .htaccess não funciona.", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "A pasta de dados e os respetivos ficheiros estão provavelmente acessíveis a partir da internet pois o ficheiro .htaccess não funciona.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para obter informações de como configurar correctamente o servidor, veja em: <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentação</a>.", "Create an <strong>admin account</strong>" : "Criar uma <strong>conta administrativa</strong>", "Username" : "Nome de utilizador", @@ -218,15 +245,15 @@ "SQLite will be used as database." : "SQLite será usado como base de dados.", "For larger installations we recommend to choose a different database backend." : "Para instalações maiores, nós recomendamos que escolha uma interface de base de dados diferente.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "O uso de SQLite é desencorajado especialmente se estiver a pensar em dar uso ao cliente desktop para sincronizar os seus ficheiros no seu computador.", - "Finish setup" : "Terminar consiguração", + "Finish setup" : "Terminar configuração", "Finishing …" : "A terminar...", "Need help?" : "Precisa de ajuda?", "See the documentation" : "Consulte a documentação", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicação requer o JavaScript para funcionar corretamente. Por favor, {linkstart}ative o JavaScript{linkend} e recarregue a página.", "More apps" : "Mais apps", "Search" : "Procurar", - "This action requires you to confirm your password:" : "Esta acção requer a confirmação da password:", - "Confirm your password" : "Confirmar password", + "Reset search" : "Repor procura", + "Confirm your password" : "Confirmar palavra-passe", "Server side authentication failed!" : "Autenticação do lado do servidor falhou!", "Please contact your administrator." : "Por favor, contacte o seu administrador.", "An internal error occurred." : "Ocorreu um erro interno.", @@ -237,6 +264,7 @@ "Log in" : "Iniciar Sessão", "Stay logged in" : "Manter sessão iniciada", "Alternative Logins" : "Contas de Acesso Alternativas", + "Redirecting …" : "A redirecionar...", "New password" : "Nova palavra-passe", "New Password" : "Nova palavra-passe", "Reset password" : "Repor palavra-passe", @@ -257,6 +285,7 @@ "Detailed logs" : "Registos detalhados", "Update needed" : "É necessário atualizar", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para obter ajuda, consulte a <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentação</a>.", + "Upgrade via web on my own risk" : "Atualizar via web por minha conta e risco.", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instância %s está atualmente no modo de manutenção, o que poderá demorar algum tempo.", "This page will refresh itself when the %s instance is available again." : "Esta página irá ser atualizada quando a instância %s ficar novamente disponível.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacte o seu administrador do sistema se esta mensagem persistir ou apareceu inesperadamente.", @@ -294,6 +323,7 @@ "The server encountered an internal error and was unable to complete your request." : "O servidor encontrou um erro interno e não conseguiu concluir o seu pedido.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Entra em contacto com o administrador do servidor se este erro aparecer várias vezes, inclui também os detalhes técnicos abaixo no seu contacto.", "Log out" : "Terminar sessão", + "This action requires you to confirm your password:" : "Esta acção requer a confirmação da password:", "Use the following link to reset your password: {link}" : "Utilize a seguinte hiperligação para repor a sua palavra-passe: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Olá,<br><br>apenas para informar que %s partilhou <strong>%s</strong> consigo.<br><a href=\"%s\">Consulte aqui!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Esta instância do Nextcloud está atualmente configurada no modo de único utilizador.", diff --git a/core/l10n/ro.js b/core/l10n/ro.js index f91974fa0eb..075f676de1c 100644 --- a/core/l10n/ro.js +++ b/core/l10n/ro.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Parola nu a putut fi resetată deoarece token-ul este invalid", "Couldn't reset password because the token is expired" : "Parola nu a putut fi resetată deoarece token-ul este expirat", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nu a putut fi trimis un email pentru resetare deoarece nu există o adresă de email pentru acest utilizator. Vă rugăm contactați administratorul.", + "%s password reset" : "%s resetare parola", "Password reset" : "Resetare parolă", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Apăsați butonul următor pentru resetarea parolei dumneavoastră. Dacă nu ați solicitat resetarea parolei, ignorați acest email.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Apăsați link-ul următor pentru resetarea parolei dumneavoastră. Dacă nu ați solicitat resetarea parolei, ignorați acest email.", "Reset your password" : "Resetați-vă parola", - "%s password reset" : "%s resetare parola", "Couldn't send reset email. Please contact your administrator." : "Expedierea email-ului de resetare a eşuat. Vă rugăm să contactaţi administratorul dvs.", "Couldn't send reset email. Please make sure your username is correct." : "Nu a putut fi trimis un email pentru resetare. Asigură-te că numele de utilizator este corect.", "Preparing update" : "Se pregătește actualizarea", @@ -261,7 +261,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Această aplicație necesită JavaScript pentru a funcționa corect. {linkstart}Activează JavaScript{linkend} și reîncarcă pagina.", "More apps" : "Mai multe aplicatii", "Search" : "Căutare", - "This action requires you to confirm your password:" : "Această acțiune necesită confirmarea parolei tale:", "Confirm your password" : "Confirmă parola:", "Server side authentication failed!" : "Autentificarea la nivel de server a eșuat!", "Please contact your administrator." : "Contactează-ți administratorul.", @@ -341,6 +340,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Serverul a întâmpinat o eroare și nu îți poate îndeplini cererea.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Te rugăm să contactezi administratorul serverului dacă această eroare apare de mai multe ori, incluzând și următoarele detalii tehnice în raportul tău.", "Log out" : "Ieșire", + "This action requires you to confirm your password:" : "Această acțiune necesită confirmarea parolei tale:", "Use the following link to reset your password: {link}" : "Folosește următorul link pentru a reseta parola: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Salutare,<br><br>te anunțăm pe această cale că %s a partajat <strong>%s</strong> cu tine.<br><a href=\"%s\">Accesează!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Această instanță de Nextcloud funcționează momentan în modul single user.", diff --git a/core/l10n/ro.json b/core/l10n/ro.json index 50b4904e5e4..33c3492c2a1 100644 --- a/core/l10n/ro.json +++ b/core/l10n/ro.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Parola nu a putut fi resetată deoarece token-ul este invalid", "Couldn't reset password because the token is expired" : "Parola nu a putut fi resetată deoarece token-ul este expirat", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nu a putut fi trimis un email pentru resetare deoarece nu există o adresă de email pentru acest utilizator. Vă rugăm contactați administratorul.", + "%s password reset" : "%s resetare parola", "Password reset" : "Resetare parolă", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Apăsați butonul următor pentru resetarea parolei dumneavoastră. Dacă nu ați solicitat resetarea parolei, ignorați acest email.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Apăsați link-ul următor pentru resetarea parolei dumneavoastră. Dacă nu ați solicitat resetarea parolei, ignorați acest email.", "Reset your password" : "Resetați-vă parola", - "%s password reset" : "%s resetare parola", "Couldn't send reset email. Please contact your administrator." : "Expedierea email-ului de resetare a eşuat. Vă rugăm să contactaţi administratorul dvs.", "Couldn't send reset email. Please make sure your username is correct." : "Nu a putut fi trimis un email pentru resetare. Asigură-te că numele de utilizator este corect.", "Preparing update" : "Se pregătește actualizarea", @@ -259,7 +259,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Această aplicație necesită JavaScript pentru a funcționa corect. {linkstart}Activează JavaScript{linkend} și reîncarcă pagina.", "More apps" : "Mai multe aplicatii", "Search" : "Căutare", - "This action requires you to confirm your password:" : "Această acțiune necesită confirmarea parolei tale:", "Confirm your password" : "Confirmă parola:", "Server side authentication failed!" : "Autentificarea la nivel de server a eșuat!", "Please contact your administrator." : "Contactează-ți administratorul.", @@ -339,6 +338,7 @@ "The server encountered an internal error and was unable to complete your request." : "Serverul a întâmpinat o eroare și nu îți poate îndeplini cererea.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Te rugăm să contactezi administratorul serverului dacă această eroare apare de mai multe ori, incluzând și următoarele detalii tehnice în raportul tău.", "Log out" : "Ieșire", + "This action requires you to confirm your password:" : "Această acțiune necesită confirmarea parolei tale:", "Use the following link to reset your password: {link}" : "Folosește următorul link pentru a reseta parola: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Salutare,<br><br>te anunțăm pe această cale că %s a partajat <strong>%s</strong> cu tine.<br><a href=\"%s\">Accesează!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Această instanță de Nextcloud funcționează momentan în modul single user.", diff --git a/core/l10n/ru.js b/core/l10n/ru.js index f752162f149..41ccbd9160d 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Не удалось сбросить пароль, неверный токен", "Couldn't reset password because the token is expired" : "Не удалось сбросить пароль, срок действия токена истёк", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Не удалось отправить письмо сброса так как у данного пользователя не задан адрес электронной почты. Пожалуйста, обратитесь к администратору.", + "%s password reset" : "Сброс пароля %s", "Password reset" : "Сброс пароля", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Для сброса пароля нажмите на кнопку. Если вы не запрашивали сброс пароля, просто проигнорируйте это письмо.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Для сброса пароля нажмите на ссылку. Если вы не запрашивали сброс пароля, просто проигнорируйте это письмо.", "Reset your password" : "Сбросить пароль", - "%s password reset" : "Сброс пароля %s", "Couldn't send reset email. Please contact your administrator." : "Не удалось отправить письмо для сброса пароля. Пожалуйста, свяжитесь с вашим администратором.", "Couldn't send reset email. Please make sure your username is correct." : "Не удалось отправить письмо для сброса пароля. Убедитесь, что имя пользователя указано верно.", "Preparing update" : "Подготовка к обновлению", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Для корректной работы приложения требуется JavaScript. Пожалуйста, {linkstart}включите JavaScript{linkend} и обновите страницу.", "More apps" : "Ещё приложения", "Search" : "Найти", - "This action requires you to confirm your password:" : "Это действие требует подтверждения вашего пароля:", + "Reset search" : "Очистить поиск", "Confirm your password" : "Подтвердите свой пароль", "Server side authentication failed!" : "Ошибка аутентификации на стороне сервера!", "Please contact your administrator." : "Пожалуйста, обратитесь к администратору.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Запрос не выполнен, на сервере произошла ошибка.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Пожалуйста, свяжитесь с администратором сервера если эта ошибка будет повторяться. Прикрепите указанную ниже информацию к своему сообщению.", "Log out" : "Выйти", + "This action requires you to confirm your password:" : "Это действие требует подтверждения вашего пароля:", "Use the following link to reset your password: {link}" : "Используйте следующую ссылку чтобы сбросить пароль: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Здравствуйте!<br><br>%s поделился с вами <strong>%s</strong>.<br>Перейдите по <a href=\"%s\">ссылке</a>, чтобы посмотреть <br><br>", "This Nextcloud instance is currently in single user mode." : "Сервер Nextcloud в настоящее время работает в однопользовательском режиме.", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index aa21e36c886..7012873812b 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Не удалось сбросить пароль, неверный токен", "Couldn't reset password because the token is expired" : "Не удалось сбросить пароль, срок действия токена истёк", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Не удалось отправить письмо сброса так как у данного пользователя не задан адрес электронной почты. Пожалуйста, обратитесь к администратору.", + "%s password reset" : "Сброс пароля %s", "Password reset" : "Сброс пароля", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Для сброса пароля нажмите на кнопку. Если вы не запрашивали сброс пароля, просто проигнорируйте это письмо.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Для сброса пароля нажмите на ссылку. Если вы не запрашивали сброс пароля, просто проигнорируйте это письмо.", "Reset your password" : "Сбросить пароль", - "%s password reset" : "Сброс пароля %s", "Couldn't send reset email. Please contact your administrator." : "Не удалось отправить письмо для сброса пароля. Пожалуйста, свяжитесь с вашим администратором.", "Couldn't send reset email. Please make sure your username is correct." : "Не удалось отправить письмо для сброса пароля. Убедитесь, что имя пользователя указано верно.", "Preparing update" : "Подготовка к обновлению", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Для корректной работы приложения требуется JavaScript. Пожалуйста, {linkstart}включите JavaScript{linkend} и обновите страницу.", "More apps" : "Ещё приложения", "Search" : "Найти", - "This action requires you to confirm your password:" : "Это действие требует подтверждения вашего пароля:", + "Reset search" : "Очистить поиск", "Confirm your password" : "Подтвердите свой пароль", "Server side authentication failed!" : "Ошибка аутентификации на стороне сервера!", "Please contact your administrator." : "Пожалуйста, обратитесь к администратору.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Запрос не выполнен, на сервере произошла ошибка.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Пожалуйста, свяжитесь с администратором сервера если эта ошибка будет повторяться. Прикрепите указанную ниже информацию к своему сообщению.", "Log out" : "Выйти", + "This action requires you to confirm your password:" : "Это действие требует подтверждения вашего пароля:", "Use the following link to reset your password: {link}" : "Используйте следующую ссылку чтобы сбросить пароль: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Здравствуйте!<br><br>%s поделился с вами <strong>%s</strong>.<br>Перейдите по <a href=\"%s\">ссылке</a>, чтобы посмотреть <br><br>", "This Nextcloud instance is currently in single user mode." : "Сервер Nextcloud в настоящее время работает в однопользовательском режиме.", diff --git a/core/l10n/sk.js b/core/l10n/sk.js index ab9b018685f..b2b39b6555c 100644 --- a/core/l10n/sk.js +++ b/core/l10n/sk.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Nepodarilo sa obnoviť heslo, pretože token nie je platný", "Couldn't reset password because the token is expired" : "Nepodarilo sa obnoviť heslo, pretože platnosť tokenu uplynula", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nemožno poslať email pre obnovu, lebo pre zadaného používateľa neexistuje emailová adresa. Kontaktujte prosím vášho administrátora.", + "%s password reset" : "reset hesla %s", "Password reset" : "Obnovenie hesla", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Pre obnovenie hesla kliknite na nasledujúce tlačidlo. Pokiaľ ste nevyžiadali obnovenie hesla, tento email ignorujte.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Pre obnovenie hesla kliknite na nasledujúci odkaz. Pokiaľ ste nevyžiadali obnovenie hesla, tento email ignorujte.", "Reset your password" : "Vytvoriť nové heslo", - "%s password reset" : "reset hesla %s", "Couldn't send reset email. Please contact your administrator." : "Nemožno poslať email pre obnovu. Kontaktujte prosím vášho administrátora.", "Couldn't send reset email. Please make sure your username is correct." : "Nemožno poslať email pre obnovu. Uistite sa, či vkladáte správne používateľské meno.", "Preparing update" : "Pripravuje sa aktualizácia", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Táto aplikácia vyžaduje JavaScript, aby správne fungovala. Prosím, {linkstart}zapnite si JavaScript{linkend} a obnovte stránku", "More apps" : "Viac aplikácií", "Search" : "Hľadať", - "This action requires you to confirm your password:" : "Táto akcia vyžaduje potvrdenie vášho hesla:", + "Reset search" : "Vynuluj vyhľadávanie", "Confirm your password" : "Potvrďte svoje heslo", "Server side authentication failed!" : "Autentifikácia na serveri zlyhala!", "Please contact your administrator." : "Kontaktujte prosím vášho administrátora.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Na serveri došlo k vnútornej chybe a nebol schopný dokončiť vašu požiadavku.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Obráťte sa na správcu servera, ak sa táto chyba objaví znovu viackrát, uveďte nižšie zobrazené technické údaje vo svojej správe.", "Log out" : "Odhlásiť", + "This action requires you to confirm your password:" : "Táto akcia vyžaduje potvrdenie vášho hesla:", "Use the following link to reset your password: {link}" : "Použite nasledujúci odkaz pre obnovenie vášho hesla: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Dobrý deň,<br><br>používateľ %s Vám sprístupnil položku s názvom »%s«.<br><a href=\"%s\">Zobraziť!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Táto inštancia Nextcloudu je teraz v jednopoužívateľskom móde.", diff --git a/core/l10n/sk.json b/core/l10n/sk.json index a221d8e0b7d..a1899ebb724 100644 --- a/core/l10n/sk.json +++ b/core/l10n/sk.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Nepodarilo sa obnoviť heslo, pretože token nie je platný", "Couldn't reset password because the token is expired" : "Nepodarilo sa obnoviť heslo, pretože platnosť tokenu uplynula", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nemožno poslať email pre obnovu, lebo pre zadaného používateľa neexistuje emailová adresa. Kontaktujte prosím vášho administrátora.", + "%s password reset" : "reset hesla %s", "Password reset" : "Obnovenie hesla", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Pre obnovenie hesla kliknite na nasledujúce tlačidlo. Pokiaľ ste nevyžiadali obnovenie hesla, tento email ignorujte.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Pre obnovenie hesla kliknite na nasledujúci odkaz. Pokiaľ ste nevyžiadali obnovenie hesla, tento email ignorujte.", "Reset your password" : "Vytvoriť nové heslo", - "%s password reset" : "reset hesla %s", "Couldn't send reset email. Please contact your administrator." : "Nemožno poslať email pre obnovu. Kontaktujte prosím vášho administrátora.", "Couldn't send reset email. Please make sure your username is correct." : "Nemožno poslať email pre obnovu. Uistite sa, či vkladáte správne používateľské meno.", "Preparing update" : "Pripravuje sa aktualizácia", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Táto aplikácia vyžaduje JavaScript, aby správne fungovala. Prosím, {linkstart}zapnite si JavaScript{linkend} a obnovte stránku", "More apps" : "Viac aplikácií", "Search" : "Hľadať", - "This action requires you to confirm your password:" : "Táto akcia vyžaduje potvrdenie vášho hesla:", + "Reset search" : "Vynuluj vyhľadávanie", "Confirm your password" : "Potvrďte svoje heslo", "Server side authentication failed!" : "Autentifikácia na serveri zlyhala!", "Please contact your administrator." : "Kontaktujte prosím vášho administrátora.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Na serveri došlo k vnútornej chybe a nebol schopný dokončiť vašu požiadavku.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Obráťte sa na správcu servera, ak sa táto chyba objaví znovu viackrát, uveďte nižšie zobrazené technické údaje vo svojej správe.", "Log out" : "Odhlásiť", + "This action requires you to confirm your password:" : "Táto akcia vyžaduje potvrdenie vášho hesla:", "Use the following link to reset your password: {link}" : "Použite nasledujúci odkaz pre obnovenie vášho hesla: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Dobrý deň,<br><br>používateľ %s Vám sprístupnil položku s názvom »%s«.<br><a href=\"%s\">Zobraziť!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Táto inštancia Nextcloudu je teraz v jednopoužívateľskom móde.", diff --git a/core/l10n/sl.js b/core/l10n/sl.js index 077fd007086..c54cd7f6b7b 100644 --- a/core/l10n/sl.js +++ b/core/l10n/sl.js @@ -18,9 +18,9 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Ni mogoče ponastaviti gesla zaradi neustreznega žetona.", "Couldn't reset password because the token is expired" : "Ni mogoče ponastaviti gesla, ker je žeton potekel.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Ni mogoče poslati elektronskega sporočila za ponastavitev gesla, ker ni navedenega elektronskega naslova. Stopite v stik s skrbnikom sistema.", + "%s password reset" : "Ponastavitev gesla %s", "Password reset" : "Ponastavitev gesla", "Reset your password" : "Ponastavi svoje geslo", - "%s password reset" : "Ponastavitev gesla %s", "Couldn't send reset email. Please contact your administrator." : "Ni mogoče nastaviti elektronskega naslova za ponastavitev. Stopite v stik s skrbnikom sistema.", "Couldn't send reset email. Please make sure your username is correct." : "Ni mogoče poslati elektronskega sporočila. Prepričajte se, da je uporabniško ime pravilno.", "Preparing update" : "Pripravljanje posodobitve", @@ -233,7 +233,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Program zahteva podporo JavaScript za pravilno delovanje. Med nastavitvami omogočite {linkstart}JavaScript{linkend} in osvežite spletno stran.", "More apps" : "Več aplikacij", "Search" : "Poišči", - "This action requires you to confirm your password:" : "Ta operacija zahteva potrditev tvojega gesla:", "Confirm your password" : "Potrdi svoje geslo", "Server side authentication failed!" : "Overitev s strežnika je spodletela!", "Please contact your administrator." : "Stopite v stik s skrbnikom sistema.", @@ -304,6 +303,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Prišlo je do notranje napake, zato ni mogoče končati zahteve.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Stopite v stik s skrbnikom sistema, če se napaka pojavlja pogosto. V poročilo vključite tudi tehnične podatke v dnevniški datoteki.", "Log out" : "Odjava", + "This action requires you to confirm your password:" : "Ta operacija zahteva potrditev tvojega gesla:", "Use the following link to reset your password: {link}" : "Za ponastavitev gesla uporabite povezavo: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Pozdravljeni,<br><br>uporabnik %s vam je omogočil souporabo <strong>%s</strong>.<br><a href=\"%s\">Oglejte si vsebino!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Ta seja oblaka Nextcloud je trenutno v načinu enega sočasnega uporabnika.", diff --git a/core/l10n/sl.json b/core/l10n/sl.json index d4a39448e0e..f356a00c139 100644 --- a/core/l10n/sl.json +++ b/core/l10n/sl.json @@ -16,9 +16,9 @@ "Couldn't reset password because the token is invalid" : "Ni mogoče ponastaviti gesla zaradi neustreznega žetona.", "Couldn't reset password because the token is expired" : "Ni mogoče ponastaviti gesla, ker je žeton potekel.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Ni mogoče poslati elektronskega sporočila za ponastavitev gesla, ker ni navedenega elektronskega naslova. Stopite v stik s skrbnikom sistema.", + "%s password reset" : "Ponastavitev gesla %s", "Password reset" : "Ponastavitev gesla", "Reset your password" : "Ponastavi svoje geslo", - "%s password reset" : "Ponastavitev gesla %s", "Couldn't send reset email. Please contact your administrator." : "Ni mogoče nastaviti elektronskega naslova za ponastavitev. Stopite v stik s skrbnikom sistema.", "Couldn't send reset email. Please make sure your username is correct." : "Ni mogoče poslati elektronskega sporočila. Prepričajte se, da je uporabniško ime pravilno.", "Preparing update" : "Pripravljanje posodobitve", @@ -231,7 +231,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Program zahteva podporo JavaScript za pravilno delovanje. Med nastavitvami omogočite {linkstart}JavaScript{linkend} in osvežite spletno stran.", "More apps" : "Več aplikacij", "Search" : "Poišči", - "This action requires you to confirm your password:" : "Ta operacija zahteva potrditev tvojega gesla:", "Confirm your password" : "Potrdi svoje geslo", "Server side authentication failed!" : "Overitev s strežnika je spodletela!", "Please contact your administrator." : "Stopite v stik s skrbnikom sistema.", @@ -302,6 +301,7 @@ "The server encountered an internal error and was unable to complete your request." : "Prišlo je do notranje napake, zato ni mogoče končati zahteve.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Stopite v stik s skrbnikom sistema, če se napaka pojavlja pogosto. V poročilo vključite tudi tehnične podatke v dnevniški datoteki.", "Log out" : "Odjava", + "This action requires you to confirm your password:" : "Ta operacija zahteva potrditev tvojega gesla:", "Use the following link to reset your password: {link}" : "Za ponastavitev gesla uporabite povezavo: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Pozdravljeni,<br><br>uporabnik %s vam je omogočil souporabo <strong>%s</strong>.<br><a href=\"%s\">Oglejte si vsebino!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Ta seja oblaka Nextcloud je trenutno v načinu enega sočasnega uporabnika.", diff --git a/core/l10n/sq.js b/core/l10n/sq.js index 81e52a0dcfd..8a574dcec7d 100644 --- a/core/l10n/sq.js +++ b/core/l10n/sq.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "S’u ricaktua dot fjalëkalimi, ngaqë token-i është i pavlefshëm", "Couldn't reset password because the token is expired" : "S’u ricaktua dot fjalëkalimi, ngaqë token-i ka skaduar", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "S’u dërgua dot email ricaktimi, ngaqë s’ka adresë email për këtë përdoruesi. Ju lutemi, lidhuni me përgjegjësin tuaj.", + "%s password reset" : "U ricaktua fjalëkalimi për %s", "Password reset" : "Fjalkalimi u rivendos", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klikoni butonin më poshtë për të rivendosur fjalëkalimin tuaj. Nëse nuk keni kërkuar rivendosjen e fjalëkalimit, atëherë injorojeni këtë email.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klikoni ne 'link-un' e rradhes per te rivendosur fjalekalimin tuaj.Nese nuk e keni vendosur akoma fjalekalimin atehere mos e merrni parasysh kete email.", "Reset your password" : "Rivendosni nje fjalekalim te ri", - "%s password reset" : "U ricaktua fjalëkalimi për %s", "Couldn't send reset email. Please contact your administrator." : "S’u dërgua dot email-i i ricaktimit. Ju lutemi, lidhuni me përgjegjësin tuaj.", "Couldn't send reset email. Please make sure your username is correct." : "S’u dërgua dot email ricaktimi. Ju lutemi, sigurohuni që emri juaj i përdoruesit është i saktë.", "Preparing update" : "Duke përgatitur përditësimin", @@ -257,7 +257,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ky aplikacion lyp JavaScript për punim të saktë. Ju lutemi, {linkstart}aktivizoni JavaScript-in{linkend} dhe ringarkoni faqen.", "More apps" : "Më shumë aplikacione", "Search" : "Kërko", - "This action requires you to confirm your password:" : "Ky veprim kërkon të konfirmoni fjalëkalimin tuaj:", "Confirm your password" : "Konfrimoni fjalëkalimin tuaj", "Server side authentication failed!" : "Mirëfilltësimi më anë të shërbyesit dështoi!", "Please contact your administrator." : "Ju lutemi, lidhuni me përgjegjësin tuaj.", @@ -332,6 +331,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Shërbyesi hasi një gabim të brendshëm dhe s’qe në gjendje të plotësojë kërkesën tuaj.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Nëse ky gabim shfaqet shumë herë, ju lutemi, lidhuni me përgjegjësin e shërbyesit, dhe përfshini hollësitë teknike më poshtë në njoftimin tuaj.", "Log out" : "Dilni", + "This action requires you to confirm your password:" : "Ky veprim kërkon të konfirmoni fjalëkalimin tuaj:", "Use the following link to reset your password: {link}" : "Që të ricaktoni fjalëkalimin tuaj, përdorni lidhjen vijuese: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Njatjeta,<br><br>thjesht po ju bëjmë të ditur që %s ndau me ju <strong>%s</strong>.<br><a href=\"%s\">Shiheni!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Kjo instancë Nextcloud është aktualisht në gjendje me përdorues të vetëm.", diff --git a/core/l10n/sq.json b/core/l10n/sq.json index a040c1fe832..a37550561c4 100644 --- a/core/l10n/sq.json +++ b/core/l10n/sq.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "S’u ricaktua dot fjalëkalimi, ngaqë token-i është i pavlefshëm", "Couldn't reset password because the token is expired" : "S’u ricaktua dot fjalëkalimi, ngaqë token-i ka skaduar", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "S’u dërgua dot email ricaktimi, ngaqë s’ka adresë email për këtë përdoruesi. Ju lutemi, lidhuni me përgjegjësin tuaj.", + "%s password reset" : "U ricaktua fjalëkalimi për %s", "Password reset" : "Fjalkalimi u rivendos", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klikoni butonin më poshtë për të rivendosur fjalëkalimin tuaj. Nëse nuk keni kërkuar rivendosjen e fjalëkalimit, atëherë injorojeni këtë email.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klikoni ne 'link-un' e rradhes per te rivendosur fjalekalimin tuaj.Nese nuk e keni vendosur akoma fjalekalimin atehere mos e merrni parasysh kete email.", "Reset your password" : "Rivendosni nje fjalekalim te ri", - "%s password reset" : "U ricaktua fjalëkalimi për %s", "Couldn't send reset email. Please contact your administrator." : "S’u dërgua dot email-i i ricaktimit. Ju lutemi, lidhuni me përgjegjësin tuaj.", "Couldn't send reset email. Please make sure your username is correct." : "S’u dërgua dot email ricaktimi. Ju lutemi, sigurohuni që emri juaj i përdoruesit është i saktë.", "Preparing update" : "Duke përgatitur përditësimin", @@ -255,7 +255,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ky aplikacion lyp JavaScript për punim të saktë. Ju lutemi, {linkstart}aktivizoni JavaScript-in{linkend} dhe ringarkoni faqen.", "More apps" : "Më shumë aplikacione", "Search" : "Kërko", - "This action requires you to confirm your password:" : "Ky veprim kërkon të konfirmoni fjalëkalimin tuaj:", "Confirm your password" : "Konfrimoni fjalëkalimin tuaj", "Server side authentication failed!" : "Mirëfilltësimi më anë të shërbyesit dështoi!", "Please contact your administrator." : "Ju lutemi, lidhuni me përgjegjësin tuaj.", @@ -330,6 +329,7 @@ "The server encountered an internal error and was unable to complete your request." : "Shërbyesi hasi një gabim të brendshëm dhe s’qe në gjendje të plotësojë kërkesën tuaj.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Nëse ky gabim shfaqet shumë herë, ju lutemi, lidhuni me përgjegjësin e shërbyesit, dhe përfshini hollësitë teknike më poshtë në njoftimin tuaj.", "Log out" : "Dilni", + "This action requires you to confirm your password:" : "Ky veprim kërkon të konfirmoni fjalëkalimin tuaj:", "Use the following link to reset your password: {link}" : "Që të ricaktoni fjalëkalimin tuaj, përdorni lidhjen vijuese: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Njatjeta,<br><br>thjesht po ju bëjmë të ditur që %s ndau me ju <strong>%s</strong>.<br><a href=\"%s\">Shiheni!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Kjo instancë Nextcloud është aktualisht në gjendje me përdorues të vetëm.", diff --git a/core/l10n/sr.js b/core/l10n/sr.js index ca76af97299..833c94ce68d 100644 --- a/core/l10n/sr.js +++ b/core/l10n/sr.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Није могуће ресетовање лозинке јер je жетон неважећи", "Couldn't reset password because the token is expired" : "Није могуће ресетовање лозинке јер је жетон истекао", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Није могуће послати е-пошту за ресетовање лозинке јер није подешена адреса е-поште за овог корисника. Контактирајте администратора.", + "%s password reset" : "%s лозинка ресетована", "Password reset" : "Ресетовање лозинке", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Кликните следеће дугме за ресетовање лозинке. Ако нисте тражили ресетовање лозинке, занемарите ову поруку.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Кликните следећу везу за ресетовање лозинке. Ако нисте тражили ресетовање лозинке, занемарите ову поруку.", "Reset your password" : "Ресетуј лозинку", - "%s password reset" : "%s лозинка ресетована", "Couldn't send reset email. Please contact your administrator." : "Не могу да пошаљем поруку за ресетовање. Контактирајте администратора.", "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за ресетовање. Проверите да ли је корисничко име исправно.", "Preparing update" : "Припремам ажурирање", @@ -85,6 +85,7 @@ OC.L10N.register( "No files in here" : "Овде нема фајлова", "Choose" : "Изаберите", "Copy" : "Копирај", + "Move" : "Премести", "Error loading file picker template: {error}" : "Грешка при учитавању шаблона бирача фајлова: {error}", "OK" : "У реду", "Error loading message template: {error}" : "Грешка при учитавању шаблона поруке: {error}", @@ -100,6 +101,8 @@ OC.L10N.register( "({count} selected)" : "(изабрано: {count})", "Error loading file exists template" : "Грешка при учитавању шаблона „Фајл постоји“", "Pending" : "На чекању", + "Copy to {folder}" : "Копирај у {folder}", + "Move to {folder}" : "Премести у {folder}", "Very weak password" : "Веома слаба лозинка", "Weak password" : "Слаба лозинка", "So-so password" : "Осредња лозинка", @@ -259,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ова апликација захтева Јава скрипт за исправан рад. {linkstart}Омогућите Јава скрипт{linkend} и поново учитајте страницу.", "More apps" : "Још апликација", "Search" : "Претражи", - "This action requires you to confirm your password:" : "Ова радња захтева да потврдите лозинку:", + "Reset search" : "Ресетуј претрагу", "Confirm your password" : "Потврдите лозинку", "Server side authentication failed!" : "Потврда идентитета на серверу није успела!", "Please contact your administrator." : "Контактирајте вашег администратора.", @@ -339,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Због интерне грешке на серверу, ваш захтев није могао бити довршен.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Контактирајте администратора ако се грешка понови више пута и укључите у извештај техничке појединости наведене испод.", "Log out" : "Одјава", + "This action requires you to confirm your password:" : "Ова радња захтева да потврдите лозинку:", "Use the following link to reset your password: {link}" : "Употребите следећу везу да ресетујете Вашу лозинку: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Поздрав,<br><br>само Вас обавештавамо да %s дели <strong>%s</strong> са Вама.<br><a href=\"%s\">Погледајте!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Некстклауд сервер је тренутно у режиму приступа само једног корисника.", diff --git a/core/l10n/sr.json b/core/l10n/sr.json index 61882e3a044..27933119374 100644 --- a/core/l10n/sr.json +++ b/core/l10n/sr.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Није могуће ресетовање лозинке јер je жетон неважећи", "Couldn't reset password because the token is expired" : "Није могуће ресетовање лозинке јер је жетон истекао", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Није могуће послати е-пошту за ресетовање лозинке јер није подешена адреса е-поште за овог корисника. Контактирајте администратора.", + "%s password reset" : "%s лозинка ресетована", "Password reset" : "Ресетовање лозинке", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Кликните следеће дугме за ресетовање лозинке. Ако нисте тражили ресетовање лозинке, занемарите ову поруку.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Кликните следећу везу за ресетовање лозинке. Ако нисте тражили ресетовање лозинке, занемарите ову поруку.", "Reset your password" : "Ресетуј лозинку", - "%s password reset" : "%s лозинка ресетована", "Couldn't send reset email. Please contact your administrator." : "Не могу да пошаљем поруку за ресетовање. Контактирајте администратора.", "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за ресетовање. Проверите да ли је корисничко име исправно.", "Preparing update" : "Припремам ажурирање", @@ -83,6 +83,7 @@ "No files in here" : "Овде нема фајлова", "Choose" : "Изаберите", "Copy" : "Копирај", + "Move" : "Премести", "Error loading file picker template: {error}" : "Грешка при учитавању шаблона бирача фајлова: {error}", "OK" : "У реду", "Error loading message template: {error}" : "Грешка при учитавању шаблона поруке: {error}", @@ -98,6 +99,8 @@ "({count} selected)" : "(изабрано: {count})", "Error loading file exists template" : "Грешка при учитавању шаблона „Фајл постоји“", "Pending" : "На чекању", + "Copy to {folder}" : "Копирај у {folder}", + "Move to {folder}" : "Премести у {folder}", "Very weak password" : "Веома слаба лозинка", "Weak password" : "Слаба лозинка", "So-so password" : "Осредња лозинка", @@ -257,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ова апликација захтева Јава скрипт за исправан рад. {linkstart}Омогућите Јава скрипт{linkend} и поново учитајте страницу.", "More apps" : "Још апликација", "Search" : "Претражи", - "This action requires you to confirm your password:" : "Ова радња захтева да потврдите лозинку:", + "Reset search" : "Ресетуј претрагу", "Confirm your password" : "Потврдите лозинку", "Server side authentication failed!" : "Потврда идентитета на серверу није успела!", "Please contact your administrator." : "Контактирајте вашег администратора.", @@ -337,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Због интерне грешке на серверу, ваш захтев није могао бити довршен.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Контактирајте администратора ако се грешка понови више пута и укључите у извештај техничке појединости наведене испод.", "Log out" : "Одјава", + "This action requires you to confirm your password:" : "Ова радња захтева да потврдите лозинку:", "Use the following link to reset your password: {link}" : "Употребите следећу везу да ресетујете Вашу лозинку: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Поздрав,<br><br>само Вас обавештавамо да %s дели <strong>%s</strong> са Вама.<br><a href=\"%s\">Погледајте!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Некстклауд сервер је тренутно у режиму приступа само једног корисника.", diff --git a/core/l10n/sv.js b/core/l10n/sv.js index 049bfac353b..0119dee38f9 100644 --- a/core/l10n/sv.js +++ b/core/l10n/sv.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Kunde inte återställa lösenordet på grund av felaktig token", "Couldn't reset password because the token is expired" : "Lösenord kunde inte återställas eftersom \"token\" har utgått", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kunde inte skicka återställningsmejl eftersom det saknas e-postadress för denna användare. Kontakta din administratör", + "%s password reset" : "%s återställ lösenord", "Password reset" : "Lösenordsåterställning", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klicka på knappen för att återställa ditt lösenord. Om du inte har begärt att återställa ditt lösenord så kan du ignorera detta epost, inget kommer då att ske.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klicka på länken för att återställa ditt lösenord. Om du inte har begärt att lösenordet ska återställas så kan du ignorera detta epost.", "Reset your password" : "Åsterställ ditt lösenord", - "%s password reset" : "%s återställ lösenord", "Couldn't send reset email. Please contact your administrator." : "Kunde inte skicka återställningsmejl. Vänligen kontakta din administratör.", "Couldn't send reset email. Please make sure your username is correct." : "Kunde inte skicka återställningsmejl. Vänligen kontrollera att ditt användarnamn är korrekt.", "Preparing update" : "Förbereder uppdatering", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denna applikationen kräver JavaScript för att fungera korrekt. Var god {linkstart}aktivera JavaScript{linkend} och ladda om sidan.", "More apps" : "Fler appar", "Search" : "Sök", - "This action requires you to confirm your password:" : "Denna åtgärd kräver att du bekräftar ditt lösenord:", + "Reset search" : "Återställ sökning", "Confirm your password" : "Bekräfta ditt lösenord", "Server side authentication failed!" : "Servern misslyckades med autentisering!", "Please contact your administrator." : "Kontakta din administratör.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Servern påträffade ett internt fel och misslyckades att slutföra din begäran.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Vänligen kontakta serveradministratören om detta fel återkommer flera gånger, vänligen inkludera nedanstående tekniska detaljer i din felrapport.", "Log out" : "Logga ut", + "This action requires you to confirm your password:" : "Denna åtgärd kräver att du bekräftar ditt lösenord:", "Use the following link to reset your password: {link}" : "Använd följande länk för att återställa lösenordet: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hej där,<br><br>Tänkte bara informera dig om att %s delade <strong>%s</strong> med dig.<br><a href=\"%s\">Klicka här för att se!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Denna Nextcloud-instans är för närvarande i enanvändarläge", diff --git a/core/l10n/sv.json b/core/l10n/sv.json index df891e281f7..126a5895aaa 100644 --- a/core/l10n/sv.json +++ b/core/l10n/sv.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Kunde inte återställa lösenordet på grund av felaktig token", "Couldn't reset password because the token is expired" : "Lösenord kunde inte återställas eftersom \"token\" har utgått", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kunde inte skicka återställningsmejl eftersom det saknas e-postadress för denna användare. Kontakta din administratör", + "%s password reset" : "%s återställ lösenord", "Password reset" : "Lösenordsåterställning", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klicka på knappen för att återställa ditt lösenord. Om du inte har begärt att återställa ditt lösenord så kan du ignorera detta epost, inget kommer då att ske.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klicka på länken för att återställa ditt lösenord. Om du inte har begärt att lösenordet ska återställas så kan du ignorera detta epost.", "Reset your password" : "Åsterställ ditt lösenord", - "%s password reset" : "%s återställ lösenord", "Couldn't send reset email. Please contact your administrator." : "Kunde inte skicka återställningsmejl. Vänligen kontakta din administratör.", "Couldn't send reset email. Please make sure your username is correct." : "Kunde inte skicka återställningsmejl. Vänligen kontrollera att ditt användarnamn är korrekt.", "Preparing update" : "Förbereder uppdatering", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denna applikationen kräver JavaScript för att fungera korrekt. Var god {linkstart}aktivera JavaScript{linkend} och ladda om sidan.", "More apps" : "Fler appar", "Search" : "Sök", - "This action requires you to confirm your password:" : "Denna åtgärd kräver att du bekräftar ditt lösenord:", + "Reset search" : "Återställ sökning", "Confirm your password" : "Bekräfta ditt lösenord", "Server side authentication failed!" : "Servern misslyckades med autentisering!", "Please contact your administrator." : "Kontakta din administratör.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Servern påträffade ett internt fel och misslyckades att slutföra din begäran.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Vänligen kontakta serveradministratören om detta fel återkommer flera gånger, vänligen inkludera nedanstående tekniska detaljer i din felrapport.", "Log out" : "Logga ut", + "This action requires you to confirm your password:" : "Denna åtgärd kräver att du bekräftar ditt lösenord:", "Use the following link to reset your password: {link}" : "Använd följande länk för att återställa lösenordet: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hej där,<br><br>Tänkte bara informera dig om att %s delade <strong>%s</strong> med dig.<br><a href=\"%s\">Klicka här för att se!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Denna Nextcloud-instans är för närvarande i enanvändarläge", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index 0110c672d24..d53ea30519f 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Kod geçersiz olduğundan parola sıfırlanamadı", "Couldn't reset password because the token is expired" : "Kodun süresi geçtiğinden parola sıfırlanamadı", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Bu kullanıcı için bir e-posta adresi olmadığından sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile görüşün.", + "%s password reset" : "%s parola sıfırlama", "Password reset" : "Parolamı Sıfırla", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Parolanızı sıfırlamak için düğmeye tıklayın. Parola sıfırlama isteğinde bulunmadıysanız bu e-postayı yoksayabilirsiniz.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Parolanızı sıfırlamak için bağlantıya tıklayın. Parola sıfırlama isteğinde bulunmadıysanız bu e-postayı yoksayabilirsiniz.", "Reset your password" : "Parolamı Sıfırla", - "%s password reset" : "%s parola sıfırlama", "Couldn't send reset email. Please contact your administrator." : "Sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile görüşün.", "Couldn't send reset email. Please make sure your username is correct." : "Sıfırlama e-postası gönderilemedi. Lütfen kullanıcı adınızın doğru olduğundan emin olun.", "Preparing update" : "Güncelleme hazırlanıyor", @@ -74,7 +74,7 @@ OC.L10N.register( "Cancel" : "İptal", "Confirm" : "Onayla", "Failed to authenticate, try again" : "Kimlik doğrulanamadı, yeniden deneyin", - "seconds ago" : "saniye önce", + "seconds ago" : "saniyeler önce", "Logging in …" : "Oturum açılıyor ...", "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.<br>If it is not there ask your local administrator." : "Parola sıfırlama bağlantısı e-posta adresinize gönderildi. Bir kaç dakika içinde e-postayı almazsanız spam/gereksiz klasörlerinize bakın.<br>E-postayı göremiyorsanız yerel sistem yöneticinizle görüşün.", "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Parola sıfırlama işleminden sonra verilerinize erişemeyeceksiniz.<br />Ne yapacağınızdan emin değilseniz, ilerlemeden önce sistem yöneticiniz ile görüşün.<br />Gerçekten devam etmek istiyor musunuz?", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Bu uygulamanın düzgün çalışabilmesi için JavaScript gereklidir. Lütfen {linkstart}JavaScript uygulamasını etkinleştirip{linkend} sayfayı yeniden yükleyin.", "More apps" : "Diğer uygulamalar", "Search" : "Arama", - "This action requires you to confirm your password:" : "Bu işlemi yapabilmek için parolanızı yazmalısınız:", + "Reset search" : "Aramayı sıfırla", "Confirm your password" : "Parolanızı onaylayın", "Server side authentication failed!" : "Kimlik sunucu tarafında doğrulanamadı!", "Please contact your administrator." : "Lütfen sistem yöneticiniz ile görüşün.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Sunucu içinde bir sorun çıktığından isteğiniz tamamlanamadı.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Bu sorun bir kereden çok ortaya çıktıysa aşağıdaki teknik ayrıntıları da ekleyerek sunucu yöneticisiyle görüşün.", "Log out" : "Oturumu Kapat", + "This action requires you to confirm your password:" : "Bu işlemi yapabilmek için parolanızı yazmalısınız:", "Use the following link to reset your password: {link}" : "Parolanızı sıfırlamak için şu bağlantıyı kullanın: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Merhaba, <br><br>%s kullanıcısının sizinle <strong>%s</strong> paylaşımında bulunduğunu bildirmek istedik.<br><a href=\"%s\">Paylaşımı şuradan görebilirsiniz!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Bu Nextcloud kopyası şu anda tek kullanıcı kipinde.", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index ac23e2eb1e9..865d933e439 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Kod geçersiz olduğundan parola sıfırlanamadı", "Couldn't reset password because the token is expired" : "Kodun süresi geçtiğinden parola sıfırlanamadı", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Bu kullanıcı için bir e-posta adresi olmadığından sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile görüşün.", + "%s password reset" : "%s parola sıfırlama", "Password reset" : "Parolamı Sıfırla", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Parolanızı sıfırlamak için düğmeye tıklayın. Parola sıfırlama isteğinde bulunmadıysanız bu e-postayı yoksayabilirsiniz.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Parolanızı sıfırlamak için bağlantıya tıklayın. Parola sıfırlama isteğinde bulunmadıysanız bu e-postayı yoksayabilirsiniz.", "Reset your password" : "Parolamı Sıfırla", - "%s password reset" : "%s parola sıfırlama", "Couldn't send reset email. Please contact your administrator." : "Sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile görüşün.", "Couldn't send reset email. Please make sure your username is correct." : "Sıfırlama e-postası gönderilemedi. Lütfen kullanıcı adınızın doğru olduğundan emin olun.", "Preparing update" : "Güncelleme hazırlanıyor", @@ -72,7 +72,7 @@ "Cancel" : "İptal", "Confirm" : "Onayla", "Failed to authenticate, try again" : "Kimlik doğrulanamadı, yeniden deneyin", - "seconds ago" : "saniye önce", + "seconds ago" : "saniyeler önce", "Logging in …" : "Oturum açılıyor ...", "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.<br>If it is not there ask your local administrator." : "Parola sıfırlama bağlantısı e-posta adresinize gönderildi. Bir kaç dakika içinde e-postayı almazsanız spam/gereksiz klasörlerinize bakın.<br>E-postayı göremiyorsanız yerel sistem yöneticinizle görüşün.", "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Parola sıfırlama işleminden sonra verilerinize erişemeyeceksiniz.<br />Ne yapacağınızdan emin değilseniz, ilerlemeden önce sistem yöneticiniz ile görüşün.<br />Gerçekten devam etmek istiyor musunuz?", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Bu uygulamanın düzgün çalışabilmesi için JavaScript gereklidir. Lütfen {linkstart}JavaScript uygulamasını etkinleştirip{linkend} sayfayı yeniden yükleyin.", "More apps" : "Diğer uygulamalar", "Search" : "Arama", - "This action requires you to confirm your password:" : "Bu işlemi yapabilmek için parolanızı yazmalısınız:", + "Reset search" : "Aramayı sıfırla", "Confirm your password" : "Parolanızı onaylayın", "Server side authentication failed!" : "Kimlik sunucu tarafında doğrulanamadı!", "Please contact your administrator." : "Lütfen sistem yöneticiniz ile görüşün.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "Sunucu içinde bir sorun çıktığından isteğiniz tamamlanamadı.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Bu sorun bir kereden çok ortaya çıktıysa aşağıdaki teknik ayrıntıları da ekleyerek sunucu yöneticisiyle görüşün.", "Log out" : "Oturumu Kapat", + "This action requires you to confirm your password:" : "Bu işlemi yapabilmek için parolanızı yazmalısınız:", "Use the following link to reset your password: {link}" : "Parolanızı sıfırlamak için şu bağlantıyı kullanın: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Merhaba, <br><br>%s kullanıcısının sizinle <strong>%s</strong> paylaşımında bulunduğunu bildirmek istedik.<br><a href=\"%s\">Paylaşımı şuradan görebilirsiniz!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "Bu Nextcloud kopyası şu anda tek kullanıcı kipinde.", diff --git a/core/l10n/uk.js b/core/l10n/uk.js new file mode 100644 index 00000000000..6b1b4ec0c73 --- /dev/null +++ b/core/l10n/uk.js @@ -0,0 +1,298 @@ +OC.L10N.register( + "core", + { + "Please select a file." : "Будь ласка, оберіть файл.", + "File is too big" : "Файл занадто великий", + "The selected file is not an image." : "Обраний файл не є зображенням.", + "The selected file cannot be read." : "Неможливо прочитати обраний файл", + "Invalid file provided" : "Надано невірний файл", + "No image or file provided" : "Зображення або файлу не надано", + "Unknown filetype" : "Невідомий тип файлу", + "Invalid image" : "Невірне зображення", + "An error occurred. Please contact your admin." : "Виникла помилка. Будь ласка, зв'яжіться з вашим адміністратором.", + "No temporary profile picture available, try again" : "Тимчасове зображення профілю недоступне, спробуйте ще раз", + "No crop data provided" : "Не вказана інформація про кадрування", + "No valid crop data provided" : "Не вказані коректні дані про кадрування", + "Crop is not square" : "Кадр не є квадратом", + "Password reset is disabled" : "Заборонено скидання паролю", + "Couldn't reset password because the token is invalid" : "Неможливо скинути пароль, бо маркер є недійсним", + "Couldn't reset password because the token is expired" : "Неможливо скинути пароль, бо маркер застарів", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Не вдалося відправити скидання паролю, тому що немає адреси електронної пошти для цього користувача. Будь ласка, зверніться до адміністратора.", + "%s password reset" : "%s скидання паролю", + "Password reset" : "Скидання паролю", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Щоб скинути Ваш пароль, натисніть кнопку нижче. Якщо ви не робили запиту на скдування паролю, можете проігнорувати цей лист.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Натисніть на посилання для скидання вашого паролю. Якщо ви не збираєтесь змінювати пароль - проігноруйте цей лист.", + "Reset your password" : "Скинути пароль", + "Couldn't send reset email. Please contact your administrator." : "Не можу надіслати email для скидання. Будь ласка, зверніться до вашого адміністратора.", + "Couldn't send reset email. Please make sure your username is correct." : "Не вдалося відправити скидання паролю. Будь ласка, переконайтеся, що ваше ім'я користувача є правильним.", + "Preparing update" : "Підготовка до оновлення", + "[%d / %d]: %s" : "[%d / %d]: %s", + "Repair warning: " : "Попередження відновлення:", + "Repair error: " : "Помилка відновлення:", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Просимо запустити процес оновлення з командного рядка, оскільки автоматичне оновлення вимкнено у файлі config.php.", + "[%d / %d]: Checking table %s" : "[%d / %d]: Перевірка таблиці %s", + "Turned on maintenance mode" : "Увімкнено режим технічного обслуговування", + "Turned off maintenance mode" : "Вимкнено режим технічного обслуговування", + "Maintenance mode is kept active" : "Режим обслуговування залишається активним", + "Updating database schema" : "Оновлення схеми бази даних", + "Updated database" : "Базу даних оновлено", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Перевіряю, чи схема бази даних може бути оновлена (це може зайняти багато часу, залежно від розмірів бази даних)", + "Checked database schema update" : "Перевірено оновлення схеми бази даних", + "Checking updates of apps" : "Перевірка оновлень додатків", + "Checking for update of app \"%s\" in appstore" : "Перевірки оновлень для додатку \"%s\" в крамниці додатків", + "Update app \"%s\" from appstore" : "Оновлення додатку \"1%s\" з магазину додатків", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Перевіряю, чи схема бази даних для %s може бути оновлена (це може зайняти багато часу, залежно від розмірів бази даних)", + "Checked database schema update for apps" : "Перевірено оновлення схеми бази даних для додатків", + "Updated \"%s\" to %s" : "Оновлено \"%s\" до %s", + "Set log level to debug" : "Встановити рівень детальності журналу як налагодження", + "Reset log level" : "Скинути налаштування детальності журналу", + "Starting code integrity check" : "Початок перевірки цілісності коду", + "Finished code integrity check" : "Завершено перевірку цілісності коду", + "%s (3rdparty)" : "%s (стороннє)", + "%s (incompatible)" : "%s (несумісне)", + "Following apps have been disabled: %s" : "Наступні додатки були вимкнені: %s", + "Already up to date" : "Вже актуально", + "Search contacts …" : "Пошук контактів...", + "No contacts found" : "Контактів не знайдено", + "Show all contacts …" : "Показати всі контакти ...", + "There was an error loading your contacts" : "Виникла помилка під час завантаження ваших контактів", + "Loading your contacts …" : "Завантаження ваших контактів ...", + "Looking for {term} …" : "Шукаєте {term}", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Були проблеми з перевіркою цілісності коду. Більше інформації…</a>", + "No action available" : "Немає доступних дій", + "Settings" : "Налаштування", + "Connection to server lost" : "З'єднання з сервером втрачено", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за 5 сек."], + "Saving..." : "Збереження...", + "Dismiss" : "Припинити", + "This action requires you to confirm your password" : "Ця дія потребує підтвердження вашого пароля", + "Authentication required" : "Необхідна автентифікація", + "Password" : "Пароль", + "Cancel" : "Скасувати", + "Confirm" : "Підтвердити", + "Failed to authenticate, try again" : "Помилка автентифікації, спробуйте ще раз", + "seconds ago" : "секунди тому", + "Logging in …" : "Вхід...", + "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.<br>If it is not there ask your local administrator." : "Посилання для скидання вашого паролю було надіслано на ваш email. Якщо ви не отримали його найближчим часом, перевірте теку зі спамом.<br>Якщо і там немає, спитайте вашого місцевого адміністратора.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваші файли зашифровані. Якщо ви не зробили ключ відновлення, після скидання паролю відновити ваші дані буде неможливо.<br /> Якщо ви не знаєте, що робити, будь ласка, зверніться до адміністратора перед продовженням.<br /> Ви дійсно хочете продовжити?", + "I know what I'm doing" : "Я знаю що роблю", + "Password can not be changed. Please contact your administrator." : "Пароль не може бути змінено. Будь ласка, зверніться до вашого адміністратора", + "No" : "Ні", + "Yes" : "Так", + "No files in here" : "Тут немає файлів", + "Choose" : "Обрати", + "Copy" : "Копіювати", + "Move" : "Перемістити", + "Error loading file picker template: {error}" : "Помилка при завантаженні шаблону вибору: {error}", + "OK" : "OK", + "Error loading message template: {error}" : "Помилка при завантаженні шаблону повідомлення: {error}", + "read-only" : "Тільки для читання", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} файловий конфлікт","{count} файлових конфліктів","{count} файлових конфліктів"], + "One file conflict" : "Один файловий конфлікт", + "New Files" : "Нових Файлів", + "Already existing files" : "Файли що вже існують", + "Which files do you want to keep?" : "Які файли ви хочете залишити?", + "If you select both versions, the copied file will have a number added to its name." : "При виборі обох версій, до назви копійованого файлу буде додана цифра", + "Continue" : "Продовжити", + "(all selected)" : "(все обрано)", + "({count} selected)" : "({count} обраних)", + "Error loading file exists template" : "Помилка при завантаженні шаблону існуючого файлу", + "Pending" : "Очікування", + "Copy to {folder}" : "копіювання до {folder}", + "Move to {folder}" : "Переміщення до {folder}", + "Very weak password" : "Дуже слабкий пароль", + "Weak password" : "Слабкий пароль", + "So-so password" : "Такий собі пароль", + "Good password" : "Добрий пароль", + "Strong password" : "Надійний пароль", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Ваш веб-сервер ще не налаштований належним чином, щоб дозволити синхронізацію файлів, тому що інтерфейс WebDAV, здається, зіпсований.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Цей сервер не має підключення до Інтернету. Це означає, що деякі з функцій, таких як зовнішнє сховище, повідомлення про оновлення та встановлення сторонніх додатків не будуть працювати. Доступ до файлів віддалено і надсилання повідомлень поштою можуть не працювати. Ми пропонуємо включити підключення до Інтернету для цього сервера, якщо ви хочете, щоб всі функції працювали.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Кешування пам'яті не налаштовано. Для покращення швидкодії, будь ласка, налаштуйте кеш пам'яті. Детальну інформацію можна знайти у нашій <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">документації</a>", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "PHP не зміг прочитати /dev/urandom , оскільки це не рекомендується з міркувань безпеки. Детальну інформацію можна знайти у нашій <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">документації</a>.", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "Функція PHP \"set_time_limit\" не доступна. Це може бути спричинено помилкою перериванням встановлення. Ми наполегливо увімкнути цю функцію.", + "Error occurred while checking server setup" : "При перевірці налаштувань серверу сталася помилка", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ваш каталог даних і ваші файли можливо доступні з інтернету. .htaccess файл не працює. Ми наполегливо рекомендуємо вам налаштувати ваш веб сервер таким чином, щоб каталог даних більше не був доступний або перемістіть каталог даних за межі кореня веб сервера.", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP заголовок \"{header}\" не налаштований як \"{expected}\". Це потенційний ризик для безпеки чи приватності і ми радимо виправити це налаштування.", + "Shared" : "Опубліковано", + "Shared with {recipients}" : "Опубліковано для {recipients}", + "Error setting expiration date" : "Помилка при встановленні терміну дії", + "The public link will expire no later than {days} days after it is created" : "Доступ до опублікованого посилання буде припинено не пізніше ніж через {days} днів з моменту створення", + "Set expiration date" : "Встановити термін дії", + "Expiration" : "Закінчення", + "Expiration date" : "Термін дії", + "Choose a password for the public link" : "Вкажіть пароль для публічного посилання", + "Copied!" : "Скопійовано!", + "Not supported!" : "Не підтримується!", + "Press ⌘-C to copy." : "Натисніть ⌘-C щоб скопіювати.", + "Press Ctrl-C to copy." : "Натисніть Ctrl-C щоб скопіювати.", + "Resharing is not allowed" : "Пере-публікація не дозволяється", + "Share to {name}" : "Поділитися з {name}", + "Share link" : "Поділитись посиланням", + "Link" : "Посилання", + "Password protect" : "Захистити паролем", + "Allow editing" : "Дозволити редагування", + "Email link to person" : "Надіслати посилання електронною поштою", + "Send" : "Надіслати", + "Read only" : "Тільки для читання", + "Shared with you and the group {group} by {owner}" : " {owner} опублікував для Вас та для групи {group}", + "Shared with you by {owner}" : "{owner} опублікував для Вас", + "group" : "група", + "remote" : "Віддалений", + "email" : "електронна пошта", + "shared by {sharer}" : "поділився {sharer}", + "Unshare" : "Закрити доступ", + "Can reshare" : "можна ділитися з іншими", + "Can edit" : "може редагувати", + "Can create" : "Можна створити", + "Can change" : "можна змінити", + "Can delete" : "можна видалити", + "Access control" : "контроль доступу", + "Could not unshare" : "Неможливо припинити ділитися файлом", + "Error while sharing" : "Помилка під час публікації", + "No users or groups found for {search}" : "Не знайдено груп або користувачів за пошуком {search}", + "No users found for {search}" : "Не знайдено жодного користувача для {search}", + "An error occurred. Please try again" : "Сталася помилка. Спробуйте ще раз", + "{sharee} (group)" : "{sharee} (група)", + "{sharee} (remote)" : "{sharee} (віддалений)", + "Share" : "Поділитися", + "Name or email address..." : "Ім'я або адреса електронної пошти...", + "Name..." : "Ім’я", + "Error" : "Помилка", + "Error removing share" : "Помилка під час вилучення спільного", + "Non-existing tag #{tag}" : "Ця позначка відсутня #{tag}", + "restricted" : "обмежено", + "invisible" : "невидимо", + "({scope})" : "({scope})", + "Delete" : "Видалити", + "Rename" : "Перейменувати", + "Collaborative tags" : "Позначки для співпраці", + "No tags found" : "Міток не знайдено", + "unknown text" : "невідомий текст", + "Hello world!" : "Привіт світ!", + "sunny" : "сонячно", + "Hello {name}, the weather is {weather}" : "Привіт {name}, погода {weather} ", + "Hello {name}" : "Привіт {name}", + "new" : "новий", + "_download %n file_::_download %n files_" : ["завантаження %n файлу","завантаження %n файлів","завантаження %n файлів"], + "Update to {version}" : "Оновлення до {version}", + "An error occurred." : "Виникла помилка.", + "Please reload the page." : "Будь ласка, перезавантажте сторінку.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Оновлення не вдалося. За інформацією <a href=\"{url}\">зверніться до повідомлення на форумі</a>, що описує цю проблему.", + "Searching other places" : "Йде пошук в інших місцях", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} результат пошуку в інших теках","{count} результатів пошуку в інших теках","{count} результатів пошуку в інших теках"], + "Personal" : "Особисте", + "Users" : "Користувачі", + "Apps" : "Додатки", + "Admin" : "Адмін", + "Help" : "Допомога", + "Access forbidden" : "Доступ заборонено", + "File not found" : "Файл не знайдено", + "The specified document has not been found on the server." : "Не вдалось знайти вказаний документ на сервері.", + "You can click here to return to %s." : "Ви можете натиснути тут для повернення до %s.", + "Internal Server Error" : "Внутрішня помилка серверу", + "More details can be found in the server log." : "Більше деталей може бути в журналі серверу.", + "Technical details" : "Технічні деталі", + "Remote Address: %s" : "Віддалена Адреса: %s", + "Request ID: %s" : "ID запиту: %s", + "Type: %s" : "Тип: %s", + "Code: %s" : "Код: %s", + "Message: %s" : "Повідомлення: %s", + "File: %s" : "Файл: %s", + "Line: %s" : "Рядок: %s", + "Trace" : "Трасування", + "Security warning" : "Попередження безпеки", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Ваш каталог даних і ваші файли можливо доступні з інтернету, тому що .htaccess файл не працює.", + "Create an <strong>admin account</strong>" : "Створити <strong>обліковий запис адміністратора</strong>", + "Username" : "Ім'я користувача", + "Storage & database" : "Сховище і база даних", + "Data folder" : "Каталог даних", + "Configure the database" : "Налаштування бази даних", + "Only %s is available." : "Доступно тільки %s.", + "Install and activate additional PHP modules to choose other database types." : "Встановіть та активуйте додаткові модулі PHP для того, щоб обрати тип БД.", + "For more details check out the documentation." : "За подробицями зверніться до документації.", + "Database user" : "Користувач бази даних", + "Database password" : "Пароль для бази даних", + "Database name" : "Назва бази даних", + "Database tablespace" : "Таблиця бази даних", + "Database host" : "Хост бази даних", + "Performance warning" : "Попередження продуктивності", + "SQLite will be used as database." : "В якості бази даних буде використана SQLite.", + "For larger installations we recommend to choose a different database backend." : "Для великих установок ми радимо вибрати іншу базу даних.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Використання SQLite особливо не рекомендується при синхронізації файлів з використанням клієнта для ПК.", + "Finish setup" : "Завершити встановлення", + "Finishing …" : "Завершується ...", + "Need help?" : "Потрібна допомога?", + "See the documentation" : "Дивіться документацію", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ця програма вимагає увімкнений JavaScript для коректної роботи. Будь ласка, {linkstart} Увімкніть JavaScript {linkend} та перезавантажте сторінку.", + "Search" : "Пошук", + "Confirm your password" : "Підтвердіть пароль", + "Server side authentication failed!" : "Невдала аутентифікація з сервером!", + "Please contact your administrator." : "Будь ласка, зверніться до вашого Адміністратора.", + "An internal error occurred." : "Виникла внутрішня помилка.", + "Please try again or contact your administrator." : "Будь ласка, спробуйте ще раз або зверніться до адміністратора.", + "Username or email" : "Ім’я користувача або електронна пошта", + "Wrong password. Reset it?" : "Невірний пароль. Скинути його?", + "Wrong password." : "Невірний пароль.", + "Log in" : "Увійти", + "Stay logged in" : "Залишатись в системі", + "Alternative Logins" : "Альтернативні імена користувача", + "Account access" : "Доступ до облікового запису", + "New password" : "Новий пароль", + "New Password" : "Новий пароль", + "Reset password" : "Скинути пароль", + "Add \"%s\" as trusted domain" : "Додати \"%s\" як довірений домен", + "App update required" : "Додаток потребує оновлення", + "%s will be updated to version %s" : "%s буде оновлено до версії %s", + "These apps will be updated:" : "Ці додатки будуть оновлені:", + "These incompatible apps will be disabled:" : "Ці несумісні додатки будуть вимкнені:", + "The theme %s has been disabled." : "Тему %s було вимкнено.", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Перед продовженням переконайтеся, що ви зробили резервну копію бази даних, каталогу конфігурації та каталогу з даними.", + "Start update" : "Почати оновлення", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Щоб уникнути затримок у великих встановленнях, ви можете виконати наступну команду в каталозі встановлення:", + "Detailed logs" : "Деталізований журнал", + "Update needed" : "Оновлення необхідно", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "За допомогою зверніться до <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документації</a>.", + "This %s instance is currently in maintenance mode, which may take a while." : "Цей %s знаходиться в режимі технічного обслуговування, яке може зайняти деякий час.", + "This page will refresh itself when the %s instance is available again." : "Ця сторінка автоматично перезавантажиться коли екземпляр %s стане знову доступний.", + "Contact your system administrator if this message persists or appeared unexpectedly." : "Зверніться до вашого системного адміністратора якщо це повідомлення не зникає або з'являється несподівано.", + "Thank you for your patience." : "Дякуємо за ваше терпіння.", + "Problem loading page, reloading in 5 seconds" : "Проблема під час завантаження сторінки, повторне завантаження за 5 сек.", + "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.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваші файли зашифровані. Якщо ви не зробили ключ відновлення, після скидання паролю відновити ваші дані буде неможливо.<br /> Якщо ви не знаєте, що робити, будь ласка, зверніться до адміністратора перед продовженням.<br /> Ви дійсно хочете продовжити?", + "Ok" : "Гаразд", + "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 web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ваш каталог даних і ваші файли можливо доступні з інтернету. .htaccess файл не працює. Ми наполегливо рекомендуємо вам налаштувати ваш веб сервер таким чином, щоб каталог даних більше не був доступний або перемістіть каталог даних за межі кореня веб сервера.", + "Error while unsharing" : "Помилка під час відміни публікації", + "can reshare" : "може ділитися з іншими", + "can edit" : "може редагувати", + "can create" : "Можна створити", + "can change" : "можна змінити", + "can delete" : "можна видалити", + "access control" : "контроль доступу", + "Share with users or by mail..." : "Поділитись з користувачами або через пошту...", + "Share with users or remote users..." : "Поділитись з користувачами або віддаленими користувачами...", + "Share with users, remote users or by mail..." : "Поділитись з користувачами, віддаленими користувачами або через пошту...", + "Share with users or groups..." : "Поділитись з користувачами або групами...", + "Share with users, groups or by mail..." : "Поділитись з користувачами, групами або через пошту...", + "Share with users, groups or remote users..." : "Поділитись з користувачами, групами або віддаленими користувачами...", + "Share with users, groups, remote users or by mail..." : "Поділитись з користувачами, групами, віддаленими користувачами або через пошту...", + "The object type is not specified." : "Не визначено тип об'єкту.", + "Enter new" : "Введіть новий", + "Add" : "Додати", + "Edit tags" : "Редагувати мітки", + "Error loading dialog template: {error}" : "Помилка при завантаженні шаблону діалогу: {error}", + "No tags selected for deletion." : "Жодних міток не обрано для видалення.", + "The update was successful. Redirecting you to Nextcloud now." : "Оновлення було успішним. Зараз відбудеться перенаправлення до Nextcloud.", + "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!" : "Будьмо!", + "The server encountered an internal error and was unable to complete your request." : "На сервері сталася внутрішня помилка, тому він не зміг виконати ваш запит.", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Будь ласка, зверніться до адміністратора сервера, якщо ця помилка з'являється кілька разів, будь ласка, вкажіть технічні подробиці у вашому звіті.", + "Log out" : "Вихід", + "Use the following link to reset your password: {link}" : "Використовуйте наступне посилання для скидання пароля: {link}", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Агов,<br><br>просто повідомляємо вам, що %s поділився »%s« з вами.<br><a href=\"%s\">Перегляньте!</a><br><br>", + "This Nextcloud instance is currently in single user mode." : "Сервер Nextcloud в даний час працює в однокористувацькому режимі.", + "This means only administrators can use the instance." : "Це означає, що тільки адміністратори можуть використовувати сервер.", + "You are accessing the server from an untrusted domain." : "Ви намагаєтеся отримати доступ до сервера з непідтвердженого домену.", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Залежно від конфігурації Ви як адміністратор можете додати цей домен у список довірених, використовуйте кнопку нижче.", + "Please use the command line updater because you have a big instance." : "Просимо запустити процес оновлення з командного рядка, оскільки ви маєте багато даних." +}, +"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/uk.json b/core/l10n/uk.json new file mode 100644 index 00000000000..aed4056e16e --- /dev/null +++ b/core/l10n/uk.json @@ -0,0 +1,296 @@ +{ "translations": { + "Please select a file." : "Будь ласка, оберіть файл.", + "File is too big" : "Файл занадто великий", + "The selected file is not an image." : "Обраний файл не є зображенням.", + "The selected file cannot be read." : "Неможливо прочитати обраний файл", + "Invalid file provided" : "Надано невірний файл", + "No image or file provided" : "Зображення або файлу не надано", + "Unknown filetype" : "Невідомий тип файлу", + "Invalid image" : "Невірне зображення", + "An error occurred. Please contact your admin." : "Виникла помилка. Будь ласка, зв'яжіться з вашим адміністратором.", + "No temporary profile picture available, try again" : "Тимчасове зображення профілю недоступне, спробуйте ще раз", + "No crop data provided" : "Не вказана інформація про кадрування", + "No valid crop data provided" : "Не вказані коректні дані про кадрування", + "Crop is not square" : "Кадр не є квадратом", + "Password reset is disabled" : "Заборонено скидання паролю", + "Couldn't reset password because the token is invalid" : "Неможливо скинути пароль, бо маркер є недійсним", + "Couldn't reset password because the token is expired" : "Неможливо скинути пароль, бо маркер застарів", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Не вдалося відправити скидання паролю, тому що немає адреси електронної пошти для цього користувача. Будь ласка, зверніться до адміністратора.", + "%s password reset" : "%s скидання паролю", + "Password reset" : "Скидання паролю", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Щоб скинути Ваш пароль, натисніть кнопку нижче. Якщо ви не робили запиту на скдування паролю, можете проігнорувати цей лист.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Натисніть на посилання для скидання вашого паролю. Якщо ви не збираєтесь змінювати пароль - проігноруйте цей лист.", + "Reset your password" : "Скинути пароль", + "Couldn't send reset email. Please contact your administrator." : "Не можу надіслати email для скидання. Будь ласка, зверніться до вашого адміністратора.", + "Couldn't send reset email. Please make sure your username is correct." : "Не вдалося відправити скидання паролю. Будь ласка, переконайтеся, що ваше ім'я користувача є правильним.", + "Preparing update" : "Підготовка до оновлення", + "[%d / %d]: %s" : "[%d / %d]: %s", + "Repair warning: " : "Попередження відновлення:", + "Repair error: " : "Помилка відновлення:", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Просимо запустити процес оновлення з командного рядка, оскільки автоматичне оновлення вимкнено у файлі config.php.", + "[%d / %d]: Checking table %s" : "[%d / %d]: Перевірка таблиці %s", + "Turned on maintenance mode" : "Увімкнено режим технічного обслуговування", + "Turned off maintenance mode" : "Вимкнено режим технічного обслуговування", + "Maintenance mode is kept active" : "Режим обслуговування залишається активним", + "Updating database schema" : "Оновлення схеми бази даних", + "Updated database" : "Базу даних оновлено", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Перевіряю, чи схема бази даних може бути оновлена (це може зайняти багато часу, залежно від розмірів бази даних)", + "Checked database schema update" : "Перевірено оновлення схеми бази даних", + "Checking updates of apps" : "Перевірка оновлень додатків", + "Checking for update of app \"%s\" in appstore" : "Перевірки оновлень для додатку \"%s\" в крамниці додатків", + "Update app \"%s\" from appstore" : "Оновлення додатку \"1%s\" з магазину додатків", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Перевіряю, чи схема бази даних для %s може бути оновлена (це може зайняти багато часу, залежно від розмірів бази даних)", + "Checked database schema update for apps" : "Перевірено оновлення схеми бази даних для додатків", + "Updated \"%s\" to %s" : "Оновлено \"%s\" до %s", + "Set log level to debug" : "Встановити рівень детальності журналу як налагодження", + "Reset log level" : "Скинути налаштування детальності журналу", + "Starting code integrity check" : "Початок перевірки цілісності коду", + "Finished code integrity check" : "Завершено перевірку цілісності коду", + "%s (3rdparty)" : "%s (стороннє)", + "%s (incompatible)" : "%s (несумісне)", + "Following apps have been disabled: %s" : "Наступні додатки були вимкнені: %s", + "Already up to date" : "Вже актуально", + "Search contacts …" : "Пошук контактів...", + "No contacts found" : "Контактів не знайдено", + "Show all contacts …" : "Показати всі контакти ...", + "There was an error loading your contacts" : "Виникла помилка під час завантаження ваших контактів", + "Loading your contacts …" : "Завантаження ваших контактів ...", + "Looking for {term} …" : "Шукаєте {term}", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Були проблеми з перевіркою цілісності коду. Більше інформації…</a>", + "No action available" : "Немає доступних дій", + "Settings" : "Налаштування", + "Connection to server lost" : "З'єднання з сервером втрачено", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за 5 сек."], + "Saving..." : "Збереження...", + "Dismiss" : "Припинити", + "This action requires you to confirm your password" : "Ця дія потребує підтвердження вашого пароля", + "Authentication required" : "Необхідна автентифікація", + "Password" : "Пароль", + "Cancel" : "Скасувати", + "Confirm" : "Підтвердити", + "Failed to authenticate, try again" : "Помилка автентифікації, спробуйте ще раз", + "seconds ago" : "секунди тому", + "Logging in …" : "Вхід...", + "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.<br>If it is not there ask your local administrator." : "Посилання для скидання вашого паролю було надіслано на ваш email. Якщо ви не отримали його найближчим часом, перевірте теку зі спамом.<br>Якщо і там немає, спитайте вашого місцевого адміністратора.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваші файли зашифровані. Якщо ви не зробили ключ відновлення, після скидання паролю відновити ваші дані буде неможливо.<br /> Якщо ви не знаєте, що робити, будь ласка, зверніться до адміністратора перед продовженням.<br /> Ви дійсно хочете продовжити?", + "I know what I'm doing" : "Я знаю що роблю", + "Password can not be changed. Please contact your administrator." : "Пароль не може бути змінено. Будь ласка, зверніться до вашого адміністратора", + "No" : "Ні", + "Yes" : "Так", + "No files in here" : "Тут немає файлів", + "Choose" : "Обрати", + "Copy" : "Копіювати", + "Move" : "Перемістити", + "Error loading file picker template: {error}" : "Помилка при завантаженні шаблону вибору: {error}", + "OK" : "OK", + "Error loading message template: {error}" : "Помилка при завантаженні шаблону повідомлення: {error}", + "read-only" : "Тільки для читання", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} файловий конфлікт","{count} файлових конфліктів","{count} файлових конфліктів"], + "One file conflict" : "Один файловий конфлікт", + "New Files" : "Нових Файлів", + "Already existing files" : "Файли що вже існують", + "Which files do you want to keep?" : "Які файли ви хочете залишити?", + "If you select both versions, the copied file will have a number added to its name." : "При виборі обох версій, до назви копійованого файлу буде додана цифра", + "Continue" : "Продовжити", + "(all selected)" : "(все обрано)", + "({count} selected)" : "({count} обраних)", + "Error loading file exists template" : "Помилка при завантаженні шаблону існуючого файлу", + "Pending" : "Очікування", + "Copy to {folder}" : "копіювання до {folder}", + "Move to {folder}" : "Переміщення до {folder}", + "Very weak password" : "Дуже слабкий пароль", + "Weak password" : "Слабкий пароль", + "So-so password" : "Такий собі пароль", + "Good password" : "Добрий пароль", + "Strong password" : "Надійний пароль", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Ваш веб-сервер ще не налаштований належним чином, щоб дозволити синхронізацію файлів, тому що інтерфейс WebDAV, здається, зіпсований.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Цей сервер не має підключення до Інтернету. Це означає, що деякі з функцій, таких як зовнішнє сховище, повідомлення про оновлення та встановлення сторонніх додатків не будуть працювати. Доступ до файлів віддалено і надсилання повідомлень поштою можуть не працювати. Ми пропонуємо включити підключення до Інтернету для цього сервера, якщо ви хочете, щоб всі функції працювали.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Кешування пам'яті не налаштовано. Для покращення швидкодії, будь ласка, налаштуйте кеш пам'яті. Детальну інформацію можна знайти у нашій <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">документації</a>", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "PHP не зміг прочитати /dev/urandom , оскільки це не рекомендується з міркувань безпеки. Детальну інформацію можна знайти у нашій <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">документації</a>.", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "Функція PHP \"set_time_limit\" не доступна. Це може бути спричинено помилкою перериванням встановлення. Ми наполегливо увімкнути цю функцію.", + "Error occurred while checking server setup" : "При перевірці налаштувань серверу сталася помилка", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ваш каталог даних і ваші файли можливо доступні з інтернету. .htaccess файл не працює. Ми наполегливо рекомендуємо вам налаштувати ваш веб сервер таким чином, щоб каталог даних більше не був доступний або перемістіть каталог даних за межі кореня веб сервера.", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP заголовок \"{header}\" не налаштований як \"{expected}\". Це потенційний ризик для безпеки чи приватності і ми радимо виправити це налаштування.", + "Shared" : "Опубліковано", + "Shared with {recipients}" : "Опубліковано для {recipients}", + "Error setting expiration date" : "Помилка при встановленні терміну дії", + "The public link will expire no later than {days} days after it is created" : "Доступ до опублікованого посилання буде припинено не пізніше ніж через {days} днів з моменту створення", + "Set expiration date" : "Встановити термін дії", + "Expiration" : "Закінчення", + "Expiration date" : "Термін дії", + "Choose a password for the public link" : "Вкажіть пароль для публічного посилання", + "Copied!" : "Скопійовано!", + "Not supported!" : "Не підтримується!", + "Press ⌘-C to copy." : "Натисніть ⌘-C щоб скопіювати.", + "Press Ctrl-C to copy." : "Натисніть Ctrl-C щоб скопіювати.", + "Resharing is not allowed" : "Пере-публікація не дозволяється", + "Share to {name}" : "Поділитися з {name}", + "Share link" : "Поділитись посиланням", + "Link" : "Посилання", + "Password protect" : "Захистити паролем", + "Allow editing" : "Дозволити редагування", + "Email link to person" : "Надіслати посилання електронною поштою", + "Send" : "Надіслати", + "Read only" : "Тільки для читання", + "Shared with you and the group {group} by {owner}" : " {owner} опублікував для Вас та для групи {group}", + "Shared with you by {owner}" : "{owner} опублікував для Вас", + "group" : "група", + "remote" : "Віддалений", + "email" : "електронна пошта", + "shared by {sharer}" : "поділився {sharer}", + "Unshare" : "Закрити доступ", + "Can reshare" : "можна ділитися з іншими", + "Can edit" : "може редагувати", + "Can create" : "Можна створити", + "Can change" : "можна змінити", + "Can delete" : "можна видалити", + "Access control" : "контроль доступу", + "Could not unshare" : "Неможливо припинити ділитися файлом", + "Error while sharing" : "Помилка під час публікації", + "No users or groups found for {search}" : "Не знайдено груп або користувачів за пошуком {search}", + "No users found for {search}" : "Не знайдено жодного користувача для {search}", + "An error occurred. Please try again" : "Сталася помилка. Спробуйте ще раз", + "{sharee} (group)" : "{sharee} (група)", + "{sharee} (remote)" : "{sharee} (віддалений)", + "Share" : "Поділитися", + "Name or email address..." : "Ім'я або адреса електронної пошти...", + "Name..." : "Ім’я", + "Error" : "Помилка", + "Error removing share" : "Помилка під час вилучення спільного", + "Non-existing tag #{tag}" : "Ця позначка відсутня #{tag}", + "restricted" : "обмежено", + "invisible" : "невидимо", + "({scope})" : "({scope})", + "Delete" : "Видалити", + "Rename" : "Перейменувати", + "Collaborative tags" : "Позначки для співпраці", + "No tags found" : "Міток не знайдено", + "unknown text" : "невідомий текст", + "Hello world!" : "Привіт світ!", + "sunny" : "сонячно", + "Hello {name}, the weather is {weather}" : "Привіт {name}, погода {weather} ", + "Hello {name}" : "Привіт {name}", + "new" : "новий", + "_download %n file_::_download %n files_" : ["завантаження %n файлу","завантаження %n файлів","завантаження %n файлів"], + "Update to {version}" : "Оновлення до {version}", + "An error occurred." : "Виникла помилка.", + "Please reload the page." : "Будь ласка, перезавантажте сторінку.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Оновлення не вдалося. За інформацією <a href=\"{url}\">зверніться до повідомлення на форумі</a>, що описує цю проблему.", + "Searching other places" : "Йде пошук в інших місцях", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} результат пошуку в інших теках","{count} результатів пошуку в інших теках","{count} результатів пошуку в інших теках"], + "Personal" : "Особисте", + "Users" : "Користувачі", + "Apps" : "Додатки", + "Admin" : "Адмін", + "Help" : "Допомога", + "Access forbidden" : "Доступ заборонено", + "File not found" : "Файл не знайдено", + "The specified document has not been found on the server." : "Не вдалось знайти вказаний документ на сервері.", + "You can click here to return to %s." : "Ви можете натиснути тут для повернення до %s.", + "Internal Server Error" : "Внутрішня помилка серверу", + "More details can be found in the server log." : "Більше деталей може бути в журналі серверу.", + "Technical details" : "Технічні деталі", + "Remote Address: %s" : "Віддалена Адреса: %s", + "Request ID: %s" : "ID запиту: %s", + "Type: %s" : "Тип: %s", + "Code: %s" : "Код: %s", + "Message: %s" : "Повідомлення: %s", + "File: %s" : "Файл: %s", + "Line: %s" : "Рядок: %s", + "Trace" : "Трасування", + "Security warning" : "Попередження безпеки", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Ваш каталог даних і ваші файли можливо доступні з інтернету, тому що .htaccess файл не працює.", + "Create an <strong>admin account</strong>" : "Створити <strong>обліковий запис адміністратора</strong>", + "Username" : "Ім'я користувача", + "Storage & database" : "Сховище і база даних", + "Data folder" : "Каталог даних", + "Configure the database" : "Налаштування бази даних", + "Only %s is available." : "Доступно тільки %s.", + "Install and activate additional PHP modules to choose other database types." : "Встановіть та активуйте додаткові модулі PHP для того, щоб обрати тип БД.", + "For more details check out the documentation." : "За подробицями зверніться до документації.", + "Database user" : "Користувач бази даних", + "Database password" : "Пароль для бази даних", + "Database name" : "Назва бази даних", + "Database tablespace" : "Таблиця бази даних", + "Database host" : "Хост бази даних", + "Performance warning" : "Попередження продуктивності", + "SQLite will be used as database." : "В якості бази даних буде використана SQLite.", + "For larger installations we recommend to choose a different database backend." : "Для великих установок ми радимо вибрати іншу базу даних.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Використання SQLite особливо не рекомендується при синхронізації файлів з використанням клієнта для ПК.", + "Finish setup" : "Завершити встановлення", + "Finishing …" : "Завершується ...", + "Need help?" : "Потрібна допомога?", + "See the documentation" : "Дивіться документацію", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ця програма вимагає увімкнений JavaScript для коректної роботи. Будь ласка, {linkstart} Увімкніть JavaScript {linkend} та перезавантажте сторінку.", + "Search" : "Пошук", + "Confirm your password" : "Підтвердіть пароль", + "Server side authentication failed!" : "Невдала аутентифікація з сервером!", + "Please contact your administrator." : "Будь ласка, зверніться до вашого Адміністратора.", + "An internal error occurred." : "Виникла внутрішня помилка.", + "Please try again or contact your administrator." : "Будь ласка, спробуйте ще раз або зверніться до адміністратора.", + "Username or email" : "Ім’я користувача або електронна пошта", + "Wrong password. Reset it?" : "Невірний пароль. Скинути його?", + "Wrong password." : "Невірний пароль.", + "Log in" : "Увійти", + "Stay logged in" : "Залишатись в системі", + "Alternative Logins" : "Альтернативні імена користувача", + "Account access" : "Доступ до облікового запису", + "New password" : "Новий пароль", + "New Password" : "Новий пароль", + "Reset password" : "Скинути пароль", + "Add \"%s\" as trusted domain" : "Додати \"%s\" як довірений домен", + "App update required" : "Додаток потребує оновлення", + "%s will be updated to version %s" : "%s буде оновлено до версії %s", + "These apps will be updated:" : "Ці додатки будуть оновлені:", + "These incompatible apps will be disabled:" : "Ці несумісні додатки будуть вимкнені:", + "The theme %s has been disabled." : "Тему %s було вимкнено.", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Перед продовженням переконайтеся, що ви зробили резервну копію бази даних, каталогу конфігурації та каталогу з даними.", + "Start update" : "Почати оновлення", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Щоб уникнути затримок у великих встановленнях, ви можете виконати наступну команду в каталозі встановлення:", + "Detailed logs" : "Деталізований журнал", + "Update needed" : "Оновлення необхідно", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "За допомогою зверніться до <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документації</a>.", + "This %s instance is currently in maintenance mode, which may take a while." : "Цей %s знаходиться в режимі технічного обслуговування, яке може зайняти деякий час.", + "This page will refresh itself when the %s instance is available again." : "Ця сторінка автоматично перезавантажиться коли екземпляр %s стане знову доступний.", + "Contact your system administrator if this message persists or appeared unexpectedly." : "Зверніться до вашого системного адміністратора якщо це повідомлення не зникає або з'являється несподівано.", + "Thank you for your patience." : "Дякуємо за ваше терпіння.", + "Problem loading page, reloading in 5 seconds" : "Проблема під час завантаження сторінки, повторне завантаження за 5 сек.", + "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.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваші файли зашифровані. Якщо ви не зробили ключ відновлення, після скидання паролю відновити ваші дані буде неможливо.<br /> Якщо ви не знаєте, що робити, будь ласка, зверніться до адміністратора перед продовженням.<br /> Ви дійсно хочете продовжити?", + "Ok" : "Гаразд", + "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 web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ваш каталог даних і ваші файли можливо доступні з інтернету. .htaccess файл не працює. Ми наполегливо рекомендуємо вам налаштувати ваш веб сервер таким чином, щоб каталог даних більше не був доступний або перемістіть каталог даних за межі кореня веб сервера.", + "Error while unsharing" : "Помилка під час відміни публікації", + "can reshare" : "може ділитися з іншими", + "can edit" : "може редагувати", + "can create" : "Можна створити", + "can change" : "можна змінити", + "can delete" : "можна видалити", + "access control" : "контроль доступу", + "Share with users or by mail..." : "Поділитись з користувачами або через пошту...", + "Share with users or remote users..." : "Поділитись з користувачами або віддаленими користувачами...", + "Share with users, remote users or by mail..." : "Поділитись з користувачами, віддаленими користувачами або через пошту...", + "Share with users or groups..." : "Поділитись з користувачами або групами...", + "Share with users, groups or by mail..." : "Поділитись з користувачами, групами або через пошту...", + "Share with users, groups or remote users..." : "Поділитись з користувачами, групами або віддаленими користувачами...", + "Share with users, groups, remote users or by mail..." : "Поділитись з користувачами, групами, віддаленими користувачами або через пошту...", + "The object type is not specified." : "Не визначено тип об'єкту.", + "Enter new" : "Введіть новий", + "Add" : "Додати", + "Edit tags" : "Редагувати мітки", + "Error loading dialog template: {error}" : "Помилка при завантаженні шаблону діалогу: {error}", + "No tags selected for deletion." : "Жодних міток не обрано для видалення.", + "The update was successful. Redirecting you to Nextcloud now." : "Оновлення було успішним. Зараз відбудеться перенаправлення до Nextcloud.", + "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!" : "Будьмо!", + "The server encountered an internal error and was unable to complete your request." : "На сервері сталася внутрішня помилка, тому він не зміг виконати ваш запит.", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Будь ласка, зверніться до адміністратора сервера, якщо ця помилка з'являється кілька разів, будь ласка, вкажіть технічні подробиці у вашому звіті.", + "Log out" : "Вихід", + "Use the following link to reset your password: {link}" : "Використовуйте наступне посилання для скидання пароля: {link}", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Агов,<br><br>просто повідомляємо вам, що %s поділився »%s« з вами.<br><a href=\"%s\">Перегляньте!</a><br><br>", + "This Nextcloud instance is currently in single user mode." : "Сервер Nextcloud в даний час працює в однокористувацькому режимі.", + "This means only administrators can use the instance." : "Це означає, що тільки адміністратори можуть використовувати сервер.", + "You are accessing the server from an untrusted domain." : "Ви намагаєтеся отримати доступ до сервера з непідтвердженого домену.", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Залежно від конфігурації Ви як адміністратор можете додати цей домен у список довірених, використовуйте кнопку нижче.", + "Please use the command line updater because you have a big instance." : "Просимо запустити процес оновлення з командного рядка, оскільки ви маєте багато даних." +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +}
\ No newline at end of file diff --git a/core/l10n/vi.js b/core/l10n/vi.js index fffc90f7387..271f482b6f5 100644 --- a/core/l10n/vi.js +++ b/core/l10n/vi.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "Không thể thiết lập lại mật khẩu do token không hợp lệ", "Couldn't reset password because the token is expired" : "Không thể thiết lập lại mật khẩu do token hết hạn", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Không thể gửi thư điện tử yêu cầu thiết lập lại vì chưa có địa chỉ thư điện tử đối với tên đăng nhập này. Xin vui long liên hệ với quản trị hệ thống.", + "%s password reset" : "%s thiết lập lại mật khẩu", "Password reset" : "Đặt lại mật khẩu", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Nhấp vào nút sau để đặt lại mật khẩu. Nếu bạn không yêu cầu đặt lại mật khẩu, hãy bỏ qua email này.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Nhấp vào liên kết sau để đặt lại mật khẩu của bạn. Nếu bạn không yêu cầu đặt lại mật khẩu, hãy bỏ qua email này.", "Reset your password" : "Đổi mật khẩu", - "%s password reset" : "%s thiết lập lại mật khẩu", "Couldn't send reset email. Please contact your administrator." : "Không thể gửi thư điện tử yêu cầu thiết lập lại. Xin vui lòng liên hệ quản trị hệ thống", "Couldn't send reset email. Please make sure your username is correct." : "Không thể gửi thư điện tử yêu cầu thiết lập lại. Xin vui lòng kiểm tra tên tài khoản đăng nhập", "Preparing update" : "Đang chuẩn bị cập nhật", @@ -42,6 +42,7 @@ OC.L10N.register( "Checking updates of apps" : "Đang kiểm tra các bản cập nhật của các ứng dụng", "Checking for update of app \"%s\" in appstore" : "Đang kiểm tra cập nhật của ứng dụng %s trong appstore ", "Update app \"%s\" from appstore" : "Cập nhật ứng dụng \"%s\" từ appstore", + "Checked for update of app \"%s\" in appstore" : "Đã kiểm tra bản cập nhật của ứng dụng \"%s\" trong kho ứng dụng", "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Đang kiểm tra liệu lược đồ cơ sở dữ liệu đối với %s có thể được cập nhật hay không (việc này có thể mất nhiều thời gian phụ thuộc vào kích cỡ của cơ sở dữ liệu)", "Checked database schema update for apps" : "Bản cập nhật lược đồ cơ sở dữ liệu cho các ứng dụng đã được kiểm tra", "Updated \"%s\" to %s" : "Được cập nhật từ \"%s\" sang %s", @@ -84,7 +85,9 @@ OC.L10N.register( "No files in here" : "Không có file nào ở đây", "Choose" : "Chọn", "Copy" : "Sao chép", + "Move" : "Chuyển", "Error loading file picker template: {error}" : "Lỗi khi tải mẫu tập tin picker: {error}", + "OK" : "Đồng ý", "Error loading message template: {error}" : "Lỗi khi tải mẫu thông điệp: {error}", "read-only" : "Chỉ đọc", "_{count} file conflict_::_{count} file conflicts_" : ["{count} tập tin xung đột"], @@ -98,6 +101,8 @@ OC.L10N.register( "({count} selected)" : "({count} được chọn)", "Error loading file exists template" : "Lỗi khi tải tập tin mẫu đã tồn tại", "Pending" : "Đang chờ được phê duyệt", + "Copy to {folder}" : "Sao chép tới thư mục {folder}", + "Move to {folder}" : "Chuyển tới thư mục {folder}", "Very weak password" : "Mật khẩu rất yếu", "Weak password" : "Mật khẩu yếu", "So-so password" : "Mật khẩu tạm được", @@ -112,6 +117,7 @@ OC.L10N.register( "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Phần cấu hình các headers của proxy trỏ ngược không chính xác hoặc bạn đang truy cập Nextcloud từ một proxy đáng tin. Nếu bạn không thể truy cập được từ một proxy dáng tin cậy, thì dẫn tới vấn đề về mất an toàn thông tin và kẻ tấn công có thể giả mạo IP chúng để truy cập Nextcloud. Thông tin chi tiết có thể được tìm thấy trong <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Tài liệu</a> của chúng tôi. ", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached được cấu hình dưới dạng cache phân tán, nhưng mô đun PHP \"memcache\" được cài đặt trên hệ thống không hợp lệ.. \\OC\\Memcache\\Memcached chỉ hỗ trợ \"memcached\" chứ không phải \"memcache\". Xin vui lòng xem tài liệu <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Một số file không qua được quá trình kiểm tra tính toàn vẹn. Thông tin thêm về cách xử lý vấn đề này có thể được tìm thấy trong <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Tài liệu </a> của chúng tôi. (<a href=\"{codeIntegrityDownloadEndpoint}\">Danh sách các file không hợp lệ…</a> / <a href=\"{rescanEndpoint}\">Rà quét lại…</a>)", + "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "Chức năng PHP OPcache không được cấu hình hợp lệ. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Để hiệu suất hệ thống tốt hơn, chúng tôi đề xuất</a> thực hiện các thiết lập sau trong tệp tin <code>php.ini</code>:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "Chức năng PHP \"set_time_limit\" không khả dụng. Điều này có thể dẫn đến việc các tập lệnh bị tạm dừng giữa chừng khi thực hiện, phá vỡ cài đặt của bạn. Chúng tôi thực sự khuyên bạn nên bật chức năng này.", "Error occurred while checking server setup" : "Có lỗi xảy ra khi kiểm tra thiết lập máy chủ", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Thư mục chứa dữ liệu và các tệp của bạn có thể truy cập được từ Internet. Vì tệp .htaccess không hoạt động. Chúng tôi khuyên bạn nên định cấu hình máy chủ web theo cách mà thư mục dữ liệu không có thể truy cập được hoặc bạn di chuyển thư mục dữ liệu ra bên ngoài thư mục gốc của máy chủ web.", @@ -126,6 +132,7 @@ OC.L10N.register( "Expiration" : "Hết hạn", "Expiration date" : "Ngày kết thúc", "Choose a password for the public link" : "Chọn mật khẩu cho liên kết công khai", + "Choose a password for the public link or press the \"Enter\" key" : "Chọn một mật khẩu cho liên kết công cộng hoặc nhấn phím \"Enter\"", "Copied!" : "Được sao chép", "Not supported!" : "Không được hỗ trợ", "Press ⌘-C to copy." : "Nhất ⌘-C để sao chép", @@ -198,6 +205,8 @@ OC.L10N.register( "Update to {version}" : "Cập nhật lên {version}", "An error occurred." : "Đã xảy ra lỗi.", "Please reload the page." : "Vui lòng tải lại trang.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Quá trình cập nhật không thành công. Để biết thêm thông tin chi tiết <a href=\"{url}\">đề nghị xem các bài viết trong diễn đàn </a> để xử lý vấn đề này.", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Quá trình cập nhật không thành công. Xin vui lòng báo lại vấn đề gặp phải trong tới <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Cộng đồng Nextcloud</a>.", "Continue to Nextcloud" : "Tiếp tục đến Nextcloud", "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Cập nhật thành công. Đang chuyển hướng bạn tới Nextcloud trong %ngiây."], "Searching other places" : "Tìm kiếm các nơi khác", @@ -213,6 +222,8 @@ OC.L10N.register( "The specified document has not been found on the server." : "Không tìm thấy tài liệu trên máy chủ.", "You can click here to return to %s." : "Bạn có thể nhấp vào đây để quay lại %s.", "Internal Server Error" : "Lỗi máy chủ.", + "The server was unable to complete your request." : "Máy chủ không thể hoàn thành được yêu cầu của bạn", + "If this happens again, please send the technical details below to the server administrator." : "Nếu điều này tiếp tục xảy ra, xin vui lòng gửi thông tin kỹ thuật chi tiết tới người quản trị hệ thống.", "More details can be found in the server log." : "Các chi tiết có thể được tìm thấy trong nhật ký máy chủ.", "Technical details" : "Chi tiết kỹ thuật", "Remote Address: %s" : "Địa chỉ bên ngoài: %s", @@ -243,6 +254,7 @@ OC.L10N.register( "Performance warning" : "Cảnh báo hiệu suất", "SQLite will be used as database." : "SQLite sẽ được sử dụng làm cơ sở dữ liệu.", "For larger installations we recommend to choose a different database backend." : "Đối với các cài đặt hệ thống lớn, chúng tôi khuyên bạn nên chọn một hệ cơ sở dữ liệu khác.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Đặc biệt khi đang sử dụng phần mềm đồng bộ dữ liệu desktop client để đồng bộ file thì việc sử dụng CSDL SQLite là không nên.", "Finish setup" : "Cài đặt hoàn tất", "Finishing …" : "Đang hoàn thành ...", "Need help?" : "Cần hỗ trợ ?", @@ -250,7 +262,6 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ứng dụng này yêu cầu JavaScript để hoạt động chính xác. Vui lòng {linkstart} bật JavaScript {linkend} và tải lại trang.", "More apps" : "Thêm ứng dụng", "Search" : "Tìm kiếm", - "This action requires you to confirm your password:" : "Tác vụ này yêu cầu bạn phải xác nhận mật khẩu của mình:", "Confirm your password" : "Xác nhận mật khẩu của bạn", "Server side authentication failed!" : "Xác thực phía máy chủ không thành công!", "Please contact your administrator." : "Vui lòng liên hệ với quản trị viên.", @@ -262,7 +273,10 @@ OC.L10N.register( "Log in" : "Đăng nhập", "Stay logged in" : "Lưu trạng thái đăng nhập", "Alternative Logins" : "Đăng nhập khác", + "Account access" : "Truy cập tài khoản", + "You are about to grant %s access to your %s account." : "Bạn sắp được phép %s truy nhập tới tài khoản %s của bạn.", "App token" : "Dấu hiệu ứng dụng", + "Alternative login using app token" : "Cách thức đăng nhập khác sử dụng app token", "Redirecting …" : "Chuyển tiếp ...", "New password" : "Mật khẩu mới", "New Password" : "Mật khẩu mới", @@ -272,20 +286,30 @@ OC.L10N.register( "Cancel log in" : "Hủy đăng nhập", "Use backup code" : "Sử dụng mã dự phòng", "Error while validating your second factor" : "Lỗi khi xác thực 2 bước", + "Access through untrusted domain" : "Truy nhập thông qua tên miền không đáng tin", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Xin vui lòng liên hệ với quản trị hệ thống của bạn. Nếu ban là người quản trị hệ thống, sửa phần thiết lập \"trusted_domains\" trong file config/config.php giống như trong ví dụ tại file config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "Phụ thuộc vào cấu hình của bạn, nút lệnh này có thể hoạt động để bảo đảm tin tưởng tên miền:", "Add \"%s\" as trusted domain" : "Thêm \"%s\" là tên miền tin cậy", "App update required" : "Ứng dụng yêu cầu cập nhật", "%s will be updated to version %s" : "%s sẽ được cập nhật lên phiên bản %s", "These apps will be updated:" : "Những ứng dụng sẽ được cập nhật:", "These incompatible apps will be disabled:" : "Những ứng dụng không tương thích sẽ bị tắt:", "The theme %s has been disabled." : "Giao diện %s đã bị tắt.", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Bạn cần phải bảo đảm rằng cơ sở dữ liệu, thư mục chứa file cấu hình hệ thống và thư mục chứa dữ liệu người dùng phải được sao lưu trước khi thực hiện.", "Start update" : "Bắt đầu cập nhật", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Để tránh thời gian quá hạn với các cài đặt lớn hơn, bạn có thể thực hiện chạy lệnh sau từ thư mục cài đặt:", "Detailed logs" : "Nhật ký chi tiết", "Update needed" : "Cần phải cập nhật", + "Please use the command line updater because you have a big instance with more than 50 users." : "Xin vui lòng sử dụng lệnh cập nhật bằng dòng lệnh bởi vì bạn có một bản cài đặt lớn có hơn 50 người dùng.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Để được trợ giúp, hãy xem <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">tài liệu</a>liệu.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Tôi biết rằng nếu tôi tiếp tục thực hiện cập nhập qua giao diện Web có rủi ro, mà yêu cầu đó chạy trong một khoảng thời gian bị quá hạn và có thể gây mất dữ liệu, nếu tôi có một bản sao và tôi biết cách khôi phục bản cài đặt đã sao lưu trong trường hợp bị lỗi khi cập nhật.", "Upgrade via web on my own risk" : "Nâng cấp qua web", + "This %s instance is currently in maintenance mode, which may take a while." : "Bản cài đặt%s hiện tại đang trong chế độ \"bảo trì\", do vậy có thể bạn cần phải đợi thêm chút ít thời gian.", + "This page will refresh itself when the %s instance is available again." : "Trang này sẽ tự động được làm tươi khi bản cài đặt %s được sẵn sàng.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Liên hệ với người quản trị nếu lỗi này vẫn tồn tại hoặc xuất hiện bất ngờ.", "Thank you for your patience." : "Cảm ơn sự kiên nhẫn của bạn.", "Problem loading page, reloading in 5 seconds" : "Có vấn đề khi nạp trang, nạp lại trang trong vòng 5 giây", + "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.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Các tệp tin của bạn đang bị mã hóa. Nếu bạn chưa bật khóa khôi phục, sẽ không có cách nào lấy lại dữ liệu của bạn khi mật khẩu của bạn bị thiết lập lại.<br />Nếu bạn không chắc điều gì mình sẽ làm, xin vui lòng liên hệ với quản trị hệ thống để tham vấn trước khi bạn tiếp tục. <br />Bạn có thực sự muốn làm điều này?", "Ok" : "Đồng ý", "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 web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Thư mục dữ liệu và file của bạn có thể truy cập từ Internet. File .htaccess không hoạt động. Chúng tôi khuyến cáo bạn cấu hình web server của bạn sao cho thư mục dữ liệu (data folder) không thể truy câp được hoặc di chuyển thư mục data ra bên ngoài thư mục gốc (root) của Web Server.", "Error while unsharing" : "Lỗi trong quá trình gỡ chia sẻ", @@ -317,10 +341,15 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "Máy chủ gặp lỗi và không thể hoàn thành yêu cầu của bạn.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Vui lòng liên hệ với quản trị viên máy chủ nếu lỗi này xuất hiện lại nhiều lần, vui lòng đính kèm các chi tiết kỹ thuật bên dưới trong báo cáo của bạn.", "Log out" : "Đăng xuất", + "This action requires you to confirm your password:" : "Tác vụ này yêu cầu bạn phải xác nhận mật khẩu của mình:", "Use the following link to reset your password: {link}" : "Dùng đường dẫn sau để khôi phục lại mật khẩu : {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Xin chào, <br><br> báo cho bạn biết rằng %s đã chia sẽ %s với bạn. <br> <a href=\"%s\"> Xem </a><br><br>", "This Nextcloud instance is currently in single user mode." : "Nextcloud trong trường hợp này đang ở chế độ người dùng duy nhất.", "This means only administrators can use the instance." : "Điều này có nghĩa chỉ có người quản trị có thể sử dụng trong trường hợp này.", - "Please use the command line updater because you have a big instance." : "Hãy sử dụng dòng lệnh để cập nhật bởi vì bạn có một hệ thống lớn." + "You are accessing the server from an untrusted domain." : "Bạn đang truy nhập máy chủ từ một tên miền không đáng tin.", + "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Xin vui lòng liên hệ quản trị viên hệ thống của bạn. Nếu bạn là một quản trị viên của bản cài đặt hệ thống này, xin vui lòng cấu hình thiết lập \"trusted_domains\" trong tệp config/config.php. Một ví dụ cấu hình được cung cấp cho bạn để tham khảo trong tệp tin config/config.sample.php", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Phụ thuộc vào cấu hình của ban, với tư cách là quản trị viên ban có thể cho phép sử dụng nút lệnh dưới đây để tạo sự tin tưởng cho tên miền này.", + "Please use the command line updater because you have a big instance." : "Hãy sử dụng dòng lệnh để cập nhật bởi vì bạn có một hệ thống lớn.", + "You are about to grant \"%s\" access to your %s account." : "Bạn đang sắp phân quyền cho \"%s\" được phép truy cập vào tài khoản %s của bạn." }, "nplurals=1; plural=0;"); diff --git a/core/l10n/vi.json b/core/l10n/vi.json index 89a7639b06c..896fb36966a 100644 --- a/core/l10n/vi.json +++ b/core/l10n/vi.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "Không thể thiết lập lại mật khẩu do token không hợp lệ", "Couldn't reset password because the token is expired" : "Không thể thiết lập lại mật khẩu do token hết hạn", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Không thể gửi thư điện tử yêu cầu thiết lập lại vì chưa có địa chỉ thư điện tử đối với tên đăng nhập này. Xin vui long liên hệ với quản trị hệ thống.", + "%s password reset" : "%s thiết lập lại mật khẩu", "Password reset" : "Đặt lại mật khẩu", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Nhấp vào nút sau để đặt lại mật khẩu. Nếu bạn không yêu cầu đặt lại mật khẩu, hãy bỏ qua email này.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Nhấp vào liên kết sau để đặt lại mật khẩu của bạn. Nếu bạn không yêu cầu đặt lại mật khẩu, hãy bỏ qua email này.", "Reset your password" : "Đổi mật khẩu", - "%s password reset" : "%s thiết lập lại mật khẩu", "Couldn't send reset email. Please contact your administrator." : "Không thể gửi thư điện tử yêu cầu thiết lập lại. Xin vui lòng liên hệ quản trị hệ thống", "Couldn't send reset email. Please make sure your username is correct." : "Không thể gửi thư điện tử yêu cầu thiết lập lại. Xin vui lòng kiểm tra tên tài khoản đăng nhập", "Preparing update" : "Đang chuẩn bị cập nhật", @@ -40,6 +40,7 @@ "Checking updates of apps" : "Đang kiểm tra các bản cập nhật của các ứng dụng", "Checking for update of app \"%s\" in appstore" : "Đang kiểm tra cập nhật của ứng dụng %s trong appstore ", "Update app \"%s\" from appstore" : "Cập nhật ứng dụng \"%s\" từ appstore", + "Checked for update of app \"%s\" in appstore" : "Đã kiểm tra bản cập nhật của ứng dụng \"%s\" trong kho ứng dụng", "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Đang kiểm tra liệu lược đồ cơ sở dữ liệu đối với %s có thể được cập nhật hay không (việc này có thể mất nhiều thời gian phụ thuộc vào kích cỡ của cơ sở dữ liệu)", "Checked database schema update for apps" : "Bản cập nhật lược đồ cơ sở dữ liệu cho các ứng dụng đã được kiểm tra", "Updated \"%s\" to %s" : "Được cập nhật từ \"%s\" sang %s", @@ -82,7 +83,9 @@ "No files in here" : "Không có file nào ở đây", "Choose" : "Chọn", "Copy" : "Sao chép", + "Move" : "Chuyển", "Error loading file picker template: {error}" : "Lỗi khi tải mẫu tập tin picker: {error}", + "OK" : "Đồng ý", "Error loading message template: {error}" : "Lỗi khi tải mẫu thông điệp: {error}", "read-only" : "Chỉ đọc", "_{count} file conflict_::_{count} file conflicts_" : ["{count} tập tin xung đột"], @@ -96,6 +99,8 @@ "({count} selected)" : "({count} được chọn)", "Error loading file exists template" : "Lỗi khi tải tập tin mẫu đã tồn tại", "Pending" : "Đang chờ được phê duyệt", + "Copy to {folder}" : "Sao chép tới thư mục {folder}", + "Move to {folder}" : "Chuyển tới thư mục {folder}", "Very weak password" : "Mật khẩu rất yếu", "Weak password" : "Mật khẩu yếu", "So-so password" : "Mật khẩu tạm được", @@ -110,6 +115,7 @@ "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Phần cấu hình các headers của proxy trỏ ngược không chính xác hoặc bạn đang truy cập Nextcloud từ một proxy đáng tin. Nếu bạn không thể truy cập được từ một proxy dáng tin cậy, thì dẫn tới vấn đề về mất an toàn thông tin và kẻ tấn công có thể giả mạo IP chúng để truy cập Nextcloud. Thông tin chi tiết có thể được tìm thấy trong <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Tài liệu</a> của chúng tôi. ", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached được cấu hình dưới dạng cache phân tán, nhưng mô đun PHP \"memcache\" được cài đặt trên hệ thống không hợp lệ.. \\OC\\Memcache\\Memcached chỉ hỗ trợ \"memcached\" chứ không phải \"memcache\". Xin vui lòng xem tài liệu <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Một số file không qua được quá trình kiểm tra tính toàn vẹn. Thông tin thêm về cách xử lý vấn đề này có thể được tìm thấy trong <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Tài liệu </a> của chúng tôi. (<a href=\"{codeIntegrityDownloadEndpoint}\">Danh sách các file không hợp lệ…</a> / <a href=\"{rescanEndpoint}\">Rà quét lại…</a>)", + "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "Chức năng PHP OPcache không được cấu hình hợp lệ. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Để hiệu suất hệ thống tốt hơn, chúng tôi đề xuất</a> thực hiện các thiết lập sau trong tệp tin <code>php.ini</code>:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "Chức năng PHP \"set_time_limit\" không khả dụng. Điều này có thể dẫn đến việc các tập lệnh bị tạm dừng giữa chừng khi thực hiện, phá vỡ cài đặt của bạn. Chúng tôi thực sự khuyên bạn nên bật chức năng này.", "Error occurred while checking server setup" : "Có lỗi xảy ra khi kiểm tra thiết lập máy chủ", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Thư mục chứa dữ liệu và các tệp của bạn có thể truy cập được từ Internet. Vì tệp .htaccess không hoạt động. Chúng tôi khuyên bạn nên định cấu hình máy chủ web theo cách mà thư mục dữ liệu không có thể truy cập được hoặc bạn di chuyển thư mục dữ liệu ra bên ngoài thư mục gốc của máy chủ web.", @@ -124,6 +130,7 @@ "Expiration" : "Hết hạn", "Expiration date" : "Ngày kết thúc", "Choose a password for the public link" : "Chọn mật khẩu cho liên kết công khai", + "Choose a password for the public link or press the \"Enter\" key" : "Chọn một mật khẩu cho liên kết công cộng hoặc nhấn phím \"Enter\"", "Copied!" : "Được sao chép", "Not supported!" : "Không được hỗ trợ", "Press ⌘-C to copy." : "Nhất ⌘-C để sao chép", @@ -196,6 +203,8 @@ "Update to {version}" : "Cập nhật lên {version}", "An error occurred." : "Đã xảy ra lỗi.", "Please reload the page." : "Vui lòng tải lại trang.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Quá trình cập nhật không thành công. Để biết thêm thông tin chi tiết <a href=\"{url}\">đề nghị xem các bài viết trong diễn đàn </a> để xử lý vấn đề này.", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Quá trình cập nhật không thành công. Xin vui lòng báo lại vấn đề gặp phải trong tới <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Cộng đồng Nextcloud</a>.", "Continue to Nextcloud" : "Tiếp tục đến Nextcloud", "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Cập nhật thành công. Đang chuyển hướng bạn tới Nextcloud trong %ngiây."], "Searching other places" : "Tìm kiếm các nơi khác", @@ -211,6 +220,8 @@ "The specified document has not been found on the server." : "Không tìm thấy tài liệu trên máy chủ.", "You can click here to return to %s." : "Bạn có thể nhấp vào đây để quay lại %s.", "Internal Server Error" : "Lỗi máy chủ.", + "The server was unable to complete your request." : "Máy chủ không thể hoàn thành được yêu cầu của bạn", + "If this happens again, please send the technical details below to the server administrator." : "Nếu điều này tiếp tục xảy ra, xin vui lòng gửi thông tin kỹ thuật chi tiết tới người quản trị hệ thống.", "More details can be found in the server log." : "Các chi tiết có thể được tìm thấy trong nhật ký máy chủ.", "Technical details" : "Chi tiết kỹ thuật", "Remote Address: %s" : "Địa chỉ bên ngoài: %s", @@ -241,6 +252,7 @@ "Performance warning" : "Cảnh báo hiệu suất", "SQLite will be used as database." : "SQLite sẽ được sử dụng làm cơ sở dữ liệu.", "For larger installations we recommend to choose a different database backend." : "Đối với các cài đặt hệ thống lớn, chúng tôi khuyên bạn nên chọn một hệ cơ sở dữ liệu khác.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Đặc biệt khi đang sử dụng phần mềm đồng bộ dữ liệu desktop client để đồng bộ file thì việc sử dụng CSDL SQLite là không nên.", "Finish setup" : "Cài đặt hoàn tất", "Finishing …" : "Đang hoàn thành ...", "Need help?" : "Cần hỗ trợ ?", @@ -248,7 +260,6 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ứng dụng này yêu cầu JavaScript để hoạt động chính xác. Vui lòng {linkstart} bật JavaScript {linkend} và tải lại trang.", "More apps" : "Thêm ứng dụng", "Search" : "Tìm kiếm", - "This action requires you to confirm your password:" : "Tác vụ này yêu cầu bạn phải xác nhận mật khẩu của mình:", "Confirm your password" : "Xác nhận mật khẩu của bạn", "Server side authentication failed!" : "Xác thực phía máy chủ không thành công!", "Please contact your administrator." : "Vui lòng liên hệ với quản trị viên.", @@ -260,7 +271,10 @@ "Log in" : "Đăng nhập", "Stay logged in" : "Lưu trạng thái đăng nhập", "Alternative Logins" : "Đăng nhập khác", + "Account access" : "Truy cập tài khoản", + "You are about to grant %s access to your %s account." : "Bạn sắp được phép %s truy nhập tới tài khoản %s của bạn.", "App token" : "Dấu hiệu ứng dụng", + "Alternative login using app token" : "Cách thức đăng nhập khác sử dụng app token", "Redirecting …" : "Chuyển tiếp ...", "New password" : "Mật khẩu mới", "New Password" : "Mật khẩu mới", @@ -270,20 +284,30 @@ "Cancel log in" : "Hủy đăng nhập", "Use backup code" : "Sử dụng mã dự phòng", "Error while validating your second factor" : "Lỗi khi xác thực 2 bước", + "Access through untrusted domain" : "Truy nhập thông qua tên miền không đáng tin", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Xin vui lòng liên hệ với quản trị hệ thống của bạn. Nếu ban là người quản trị hệ thống, sửa phần thiết lập \"trusted_domains\" trong file config/config.php giống như trong ví dụ tại file config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "Phụ thuộc vào cấu hình của bạn, nút lệnh này có thể hoạt động để bảo đảm tin tưởng tên miền:", "Add \"%s\" as trusted domain" : "Thêm \"%s\" là tên miền tin cậy", "App update required" : "Ứng dụng yêu cầu cập nhật", "%s will be updated to version %s" : "%s sẽ được cập nhật lên phiên bản %s", "These apps will be updated:" : "Những ứng dụng sẽ được cập nhật:", "These incompatible apps will be disabled:" : "Những ứng dụng không tương thích sẽ bị tắt:", "The theme %s has been disabled." : "Giao diện %s đã bị tắt.", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Bạn cần phải bảo đảm rằng cơ sở dữ liệu, thư mục chứa file cấu hình hệ thống và thư mục chứa dữ liệu người dùng phải được sao lưu trước khi thực hiện.", "Start update" : "Bắt đầu cập nhật", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Để tránh thời gian quá hạn với các cài đặt lớn hơn, bạn có thể thực hiện chạy lệnh sau từ thư mục cài đặt:", "Detailed logs" : "Nhật ký chi tiết", "Update needed" : "Cần phải cập nhật", + "Please use the command line updater because you have a big instance with more than 50 users." : "Xin vui lòng sử dụng lệnh cập nhật bằng dòng lệnh bởi vì bạn có một bản cài đặt lớn có hơn 50 người dùng.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Để được trợ giúp, hãy xem <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">tài liệu</a>liệu.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Tôi biết rằng nếu tôi tiếp tục thực hiện cập nhập qua giao diện Web có rủi ro, mà yêu cầu đó chạy trong một khoảng thời gian bị quá hạn và có thể gây mất dữ liệu, nếu tôi có một bản sao và tôi biết cách khôi phục bản cài đặt đã sao lưu trong trường hợp bị lỗi khi cập nhật.", "Upgrade via web on my own risk" : "Nâng cấp qua web", + "This %s instance is currently in maintenance mode, which may take a while." : "Bản cài đặt%s hiện tại đang trong chế độ \"bảo trì\", do vậy có thể bạn cần phải đợi thêm chút ít thời gian.", + "This page will refresh itself when the %s instance is available again." : "Trang này sẽ tự động được làm tươi khi bản cài đặt %s được sẵn sàng.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Liên hệ với người quản trị nếu lỗi này vẫn tồn tại hoặc xuất hiện bất ngờ.", "Thank you for your patience." : "Cảm ơn sự kiên nhẫn của bạn.", "Problem loading page, reloading in 5 seconds" : "Có vấn đề khi nạp trang, nạp lại trang trong vòng 5 giây", + "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.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Các tệp tin của bạn đang bị mã hóa. Nếu bạn chưa bật khóa khôi phục, sẽ không có cách nào lấy lại dữ liệu của bạn khi mật khẩu của bạn bị thiết lập lại.<br />Nếu bạn không chắc điều gì mình sẽ làm, xin vui lòng liên hệ với quản trị hệ thống để tham vấn trước khi bạn tiếp tục. <br />Bạn có thực sự muốn làm điều này?", "Ok" : "Đồng ý", "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 web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Thư mục dữ liệu và file của bạn có thể truy cập từ Internet. File .htaccess không hoạt động. Chúng tôi khuyến cáo bạn cấu hình web server của bạn sao cho thư mục dữ liệu (data folder) không thể truy câp được hoặc di chuyển thư mục data ra bên ngoài thư mục gốc (root) của Web Server.", "Error while unsharing" : "Lỗi trong quá trình gỡ chia sẻ", @@ -315,10 +339,15 @@ "The server encountered an internal error and was unable to complete your request." : "Máy chủ gặp lỗi và không thể hoàn thành yêu cầu của bạn.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Vui lòng liên hệ với quản trị viên máy chủ nếu lỗi này xuất hiện lại nhiều lần, vui lòng đính kèm các chi tiết kỹ thuật bên dưới trong báo cáo của bạn.", "Log out" : "Đăng xuất", + "This action requires you to confirm your password:" : "Tác vụ này yêu cầu bạn phải xác nhận mật khẩu của mình:", "Use the following link to reset your password: {link}" : "Dùng đường dẫn sau để khôi phục lại mật khẩu : {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Xin chào, <br><br> báo cho bạn biết rằng %s đã chia sẽ %s với bạn. <br> <a href=\"%s\"> Xem </a><br><br>", "This Nextcloud instance is currently in single user mode." : "Nextcloud trong trường hợp này đang ở chế độ người dùng duy nhất.", "This means only administrators can use the instance." : "Điều này có nghĩa chỉ có người quản trị có thể sử dụng trong trường hợp này.", - "Please use the command line updater because you have a big instance." : "Hãy sử dụng dòng lệnh để cập nhật bởi vì bạn có một hệ thống lớn." + "You are accessing the server from an untrusted domain." : "Bạn đang truy nhập máy chủ từ một tên miền không đáng tin.", + "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Xin vui lòng liên hệ quản trị viên hệ thống của bạn. Nếu bạn là một quản trị viên của bản cài đặt hệ thống này, xin vui lòng cấu hình thiết lập \"trusted_domains\" trong tệp config/config.php. Một ví dụ cấu hình được cung cấp cho bạn để tham khảo trong tệp tin config/config.sample.php", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Phụ thuộc vào cấu hình của ban, với tư cách là quản trị viên ban có thể cho phép sử dụng nút lệnh dưới đây để tạo sự tin tưởng cho tên miền này.", + "Please use the command line updater because you have a big instance." : "Hãy sử dụng dòng lệnh để cập nhật bởi vì bạn có một hệ thống lớn.", + "You are about to grant \"%s\" access to your %s account." : "Bạn đang sắp phân quyền cho \"%s\" được phép truy cập vào tài khoản %s của bạn." },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index 2e1351e315e..e4c8086279b 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "令牌无效, 无法重置密码", "Couldn't reset password because the token is expired" : "令牌已过期, 无法重置密码", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "该用户没有设置电子邮件地址, 无发送重置邮件. 请联系管理员.", + "%s password reset" : "重置 %s 的密码", "Password reset" : "重置密码", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "点击下面的按钮来重置你的密码。如果你并没有请求密码重置,请忽略这封邮件。", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "点击下述链接重置您的密码. 如果您没有请求重置密码, 请忽略本邮件.", "Reset your password" : "重置您的密码", - "%s password reset" : "重置 %s 的密码", "Couldn't send reset email. Please contact your administrator." : "未能成功发送重置邮件, 请联系管理员.", "Couldn't send reset email. Please make sure your username is correct." : "无法发送重置邮件, 请检查您的用户名是否正确.", "Preparing update" : "正在准备更新", @@ -262,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "对于正确的操作, 该应用需要使用 JavaScript. 请 {linkstart}启用 JavaScript{linkend}, 并重新加载页面.", "More apps" : "更多的应用程序", "Search" : "搜索", - "This action requires you to confirm your password:" : "此操作需要确认您的密码:", + "Reset search" : "重置搜索", "Confirm your password" : "确认您的密码", "Server side authentication failed!" : "服务端认证失败!", "Please contact your administrator." : "请联系您的管理员.", @@ -342,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "服务器发生一个内部错误并且无法完成你的请求.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "如果多次出现这个错误, 请联系服务器管理员, 请把下面的技术细节包含在您的报告中.", "Log out" : "注销", + "This action requires you to confirm your password:" : "此操作需要确认您的密码:", "Use the following link to reset your password: {link}" : "使用以下链接重置您的密码: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "嗨、你好,<br><br>只想让你知道 %s 分享了 <strong>%s</strong> 给你。<br><a href=\"%s\">现在查看!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "当前 Nextcloud 实例运行在单用户模式下.", diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index e9207bfd842..16bb351e7c8 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "令牌无效, 无法重置密码", "Couldn't reset password because the token is expired" : "令牌已过期, 无法重置密码", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "该用户没有设置电子邮件地址, 无发送重置邮件. 请联系管理员.", + "%s password reset" : "重置 %s 的密码", "Password reset" : "重置密码", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "点击下面的按钮来重置你的密码。如果你并没有请求密码重置,请忽略这封邮件。", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "点击下述链接重置您的密码. 如果您没有请求重置密码, 请忽略本邮件.", "Reset your password" : "重置您的密码", - "%s password reset" : "重置 %s 的密码", "Couldn't send reset email. Please contact your administrator." : "未能成功发送重置邮件, 请联系管理员.", "Couldn't send reset email. Please make sure your username is correct." : "无法发送重置邮件, 请检查您的用户名是否正确.", "Preparing update" : "正在准备更新", @@ -260,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "对于正确的操作, 该应用需要使用 JavaScript. 请 {linkstart}启用 JavaScript{linkend}, 并重新加载页面.", "More apps" : "更多的应用程序", "Search" : "搜索", - "This action requires you to confirm your password:" : "此操作需要确认您的密码:", + "Reset search" : "重置搜索", "Confirm your password" : "确认您的密码", "Server side authentication failed!" : "服务端认证失败!", "Please contact your administrator." : "请联系您的管理员.", @@ -340,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "服务器发生一个内部错误并且无法完成你的请求.", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "如果多次出现这个错误, 请联系服务器管理员, 请把下面的技术细节包含在您的报告中.", "Log out" : "注销", + "This action requires you to confirm your password:" : "此操作需要确认您的密码:", "Use the following link to reset your password: {link}" : "使用以下链接重置您的密码: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "嗨、你好,<br><br>只想让你知道 %s 分享了 <strong>%s</strong> 给你。<br><a href=\"%s\">现在查看!</a><br><br>", "This Nextcloud instance is currently in single user mode." : "当前 Nextcloud 实例运行在单用户模式下.", diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js index 45b23f48f55..325899d7ddf 100644 --- a/core/l10n/zh_TW.js +++ b/core/l10n/zh_TW.js @@ -19,11 +19,11 @@ OC.L10N.register( "Couldn't reset password because the token is invalid" : "無法重設密碼因為 token 無效", "Couldn't reset password because the token is expired" : "無法重設密碼,因為 token 過期", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "無法寄送重設 email ,因為這個帳號沒有設定 email 地址,請聯絡您的系統管理員。", + "%s password reset" : "%s 密碼重設", "Password reset" : "密碼重設", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "點取下方的按鈕以重設您的密碼。 如果您沒有要求重設密碼的話,請忽略這封信。", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "點取下方的連結以重設您的密碼。 如果您沒有要求重設密碼的話,請忽略這封信。", "Reset your password" : "重設您的密碼", - "%s password reset" : "%s 密碼重設", "Couldn't send reset email. Please contact your administrator." : "無法寄送重設 email ,請聯絡系統管理員", "Couldn't send reset email. Please make sure your username is correct." : "無法寄送重設 email ,請確認您的帳號輸入正確", "Preparing update" : "準備更新", @@ -85,6 +85,7 @@ OC.L10N.register( "No files in here" : "沒有任何檔案", "Choose" : "選擇", "Copy" : "複製", + "Move" : "移動", "Error loading file picker template: {error}" : "載入檔案選擇器樣板出錯: {error}", "OK" : "OK", "Error loading message template: {error}" : "載入訊息樣板出錯: {error}", @@ -100,6 +101,8 @@ OC.L10N.register( "({count} selected)" : "(已選 {count} 項)", "Error loading file exists template" : "載入檔案存在樣板出錯", "Pending" : "等候中", + "Copy to {folder}" : "複製到 {folder}", + "Move to {folder}" : "移動到 {folder}", "Very weak password" : "密碼強度非常弱", "Weak password" : "密碼強度弱", "So-so password" : "密碼強度普通", @@ -259,7 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "這個應用程式需要啟用 Javascript 才能正常運作,請{linkstart}啟用Javascript{linkend}然後重新整理頁面。", "More apps" : "更多應用程式", "Search" : "搜尋", - "This action requires you to confirm your password:" : "這個動作需要您輸入密碼", + "Reset search" : "重置搜尋", "Confirm your password" : "輸入密碼", "Server side authentication failed!" : "伺服器端認證失敗!", "Please contact your administrator." : "請聯絡系統管理員", @@ -339,6 +342,7 @@ OC.L10N.register( "The server encountered an internal error and was unable to complete your request." : "伺服器遭遇內部錯誤,無法完成您的要求", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "如果這個錯誤重複出現,請聯絡系統管理員,並附上以下的錯誤細節", "Log out" : "登出", + "This action requires you to confirm your password:" : "這個動作需要您輸入密碼", "Use the following link to reset your password: {link}" : "請至以下連結重設您的密碼: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "嗨,<br><br>%s 與你分享了<strong>%s</strong>。<br><a href=\"%s\">檢視</a><br><br>", "This Nextcloud instance is currently in single user mode." : "這個 Nextcloud 伺服器目前運作於單一使用者模式", diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json index 3a5f872e8b3..2a743232fef 100644 --- a/core/l10n/zh_TW.json +++ b/core/l10n/zh_TW.json @@ -17,11 +17,11 @@ "Couldn't reset password because the token is invalid" : "無法重設密碼因為 token 無效", "Couldn't reset password because the token is expired" : "無法重設密碼,因為 token 過期", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "無法寄送重設 email ,因為這個帳號沒有設定 email 地址,請聯絡您的系統管理員。", + "%s password reset" : "%s 密碼重設", "Password reset" : "密碼重設", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "點取下方的按鈕以重設您的密碼。 如果您沒有要求重設密碼的話,請忽略這封信。", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "點取下方的連結以重設您的密碼。 如果您沒有要求重設密碼的話,請忽略這封信。", "Reset your password" : "重設您的密碼", - "%s password reset" : "%s 密碼重設", "Couldn't send reset email. Please contact your administrator." : "無法寄送重設 email ,請聯絡系統管理員", "Couldn't send reset email. Please make sure your username is correct." : "無法寄送重設 email ,請確認您的帳號輸入正確", "Preparing update" : "準備更新", @@ -83,6 +83,7 @@ "No files in here" : "沒有任何檔案", "Choose" : "選擇", "Copy" : "複製", + "Move" : "移動", "Error loading file picker template: {error}" : "載入檔案選擇器樣板出錯: {error}", "OK" : "OK", "Error loading message template: {error}" : "載入訊息樣板出錯: {error}", @@ -98,6 +99,8 @@ "({count} selected)" : "(已選 {count} 項)", "Error loading file exists template" : "載入檔案存在樣板出錯", "Pending" : "等候中", + "Copy to {folder}" : "複製到 {folder}", + "Move to {folder}" : "移動到 {folder}", "Very weak password" : "密碼強度非常弱", "Weak password" : "密碼強度弱", "So-so password" : "密碼強度普通", @@ -257,7 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "這個應用程式需要啟用 Javascript 才能正常運作,請{linkstart}啟用Javascript{linkend}然後重新整理頁面。", "More apps" : "更多應用程式", "Search" : "搜尋", - "This action requires you to confirm your password:" : "這個動作需要您輸入密碼", + "Reset search" : "重置搜尋", "Confirm your password" : "輸入密碼", "Server side authentication failed!" : "伺服器端認證失敗!", "Please contact your administrator." : "請聯絡系統管理員", @@ -337,6 +340,7 @@ "The server encountered an internal error and was unable to complete your request." : "伺服器遭遇內部錯誤,無法完成您的要求", "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "如果這個錯誤重複出現,請聯絡系統管理員,並附上以下的錯誤細節", "Log out" : "登出", + "This action requires you to confirm your password:" : "這個動作需要您輸入密碼", "Use the following link to reset your password: {link}" : "請至以下連結重設您的密碼: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "嗨,<br><br>%s 與你分享了<strong>%s</strong>。<br><a href=\"%s\">檢視</a><br><br>", "This Nextcloud instance is currently in single user mode." : "這個 Nextcloud 伺服器目前運作於單一使用者模式", diff --git a/core/register_command.php b/core/register_command.php index 02bdbedc6e0..3cba0565993 100644 --- a/core/register_command.php +++ b/core/register_command.php @@ -85,6 +85,7 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) { $application->add(new OC\Core\Command\Db\ConvertType(\OC::$server->getConfig(), new \OC\DB\ConnectionFactory(\OC::$server->getSystemConfig()))); $application->add(new OC\Core\Command\Db\ConvertMysqlToMB4(\OC::$server->getConfig(), \OC::$server->getDatabaseConnection(), \OC::$server->getURLGenerator(), \OC::$server->getLogger())); + $application->add(new OC\Core\Command\Db\ConvertFilecacheBigInt(\OC::$server->getDatabaseConnection())); $application->add(new OC\Core\Command\Db\Migrations\StatusCommand(\OC::$server->getDatabaseConnection())); $application->add(new OC\Core\Command\Db\Migrations\MigrateCommand(\OC::$server->getDatabaseConnection())); $application->add(new OC\Core\Command\Db\Migrations\GenerateCommand(\OC::$server->getDatabaseConnection())); diff --git a/core/templates/layout.noscript.warning.php b/core/templates/layout.noscript.warning.php index ba781f5502e..c7776bd33c4 100644 --- a/core/templates/layout.noscript.warning.php +++ b/core/templates/layout.noscript.warning.php @@ -3,7 +3,7 @@ <div> <?php print_unescaped(str_replace( ['{linkstart}', '{linkend}'], - ['<a href="http://enable-javascript.com/" target="_blank" rel="noreferrer">', '</a>'], + ['<a href="https://www.enable-javascript.com/" target="_blank" rel="noreferrer">', '</a>'], $l->t('This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.') )); ?> </div> diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 6b9db9389ba..5008392d2a3 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -33,29 +33,21 @@ <header role="banner"><div id="header"> <div class="header-left"> <a href="<?php print_unescaped(link_to('', 'index.php')); ?>" - id="nextcloud" tabindex="1"> + id="nextcloud"> <div class="logo logo-icon"> <h1 class="hidden-visually"> - <?php p($theme->getName()); ?> + <?php p($theme->getName()); ?> <?php p(!empty($_['application'])?$_['application']: $l->t('Apps')); ?> </h1> </div> </a> - <a href="#" class="header-appname-container menutoggle" tabindex="2"> - <h1 class="header-appname"> - <?php p(!empty($_['application'])?$_['application']: $l->t('Apps')); ?> - </h1> - <div class="icon-caret"></div> - </a> - <ul id="appmenu"> <?php foreach ($_['navigation'] as $entry): ?> <li data-id="<?php p($entry['id']); ?>" class="hidden"> <a href="<?php print_unescaped($entry['href']); ?>" - tabindex="3" <?php if ($entry['active']): ?> class="active"<?php endif; ?>> <img src="<?php print_unescaped($entry['icon'] . '?v=' . $_['versionHash']); ?>" - class="app-icon"/> + class="app-icon" alt="<?php p($entry['name']); ?>" /> <div class="icon-loading-small-dark" style="display:none;"></div> </a> @@ -78,7 +70,7 @@ <ul> <?php foreach($_['navigation'] as $entry): ?> <li data-id="<?php p($entry['id']); ?>"> - <a href="<?php print_unescaped($entry['href']); ?>" tabindex="3" + <a href="<?php print_unescaped($entry['href']); ?>" <?php if( $entry['active'] ): ?> class="active"<?php endif; ?>> <svg width="16" height="16" viewBox="0 0 16 16"> <defs><filter id="invert-<?php p($entry['id']); ?>"><feColorMatrix in="SourceGraphic" type="matrix" values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0"></feColorMatrix></filter></defs> @@ -103,15 +95,15 @@ </label> <input id="searchbox" type="search" name="query" value="" required - autocomplete="off" tabindex="5"> - <button class="icon-close-white" type="reset"></button> + autocomplete="off"> + <button class="icon-close-white" type="reset"><span class="hidden-visually"><?php p($l->t('Reset search'));?></span></button> </form> <div id="contactsmenu"> - <div class="icon-contacts menutoggle"></div> + <div class="icon-contacts menutoggle" tabindex="0" role="link"></div> <div class="menu"></div> </div> <div id="settings"> - <div id="expand" tabindex="6" role="link" class="menutoggle"> + <div id="expand" tabindex="0" role="link" class="menutoggle"> <div class="avatardiv<?php if ($_['userAvatarSet']) { print_unescaped(' avatardiv-shown'); } else { print_unescaped('" style="display: none'); } ?>"> <?php if ($_['userAvatarSet']): ?> <img alt="" width="32" height="32" @@ -142,10 +134,12 @@ <div id="sudo-login-background" class="hidden"></div> <form id="sudo-login-form" class="hidden"> - <?php p($l->t('This action requires you to confirm your password:')); ?><br> - <input type="password" class="question" autocomplete="new-password" name="question" value=" <?php /* Hack against browsers ignoring autocomplete="off" */ ?>" + <label> + <?php p($l->t('This action requires you to confirm your password')); ?><br/> + <input type="password" class="question" autocomplete="new-password" name="question" value=" <?php /* Hack against browsers ignoring autocomplete="off" */ ?>" placeholder="<?php p($l->t('Confirm your password')); ?>" /> - <input class="confirm icon-confirm" title="<?php p($l->t('Confirm')); ?>" value="" type="submit"> + </label> + <input class="confirm" value="<?php p($l->t('Confirm')); ?>" type="submit"> </form> <div id="content-wrapper"> diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 29bca415ed6..07f815f85ce 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -68,6 +68,10 @@ return array( 'OCP\\BackgroundJob\\IJobList' => $baseDir . '/lib/public/BackgroundJob/IJobList.php', 'OCP\\Capabilities\\ICapability' => $baseDir . '/lib/public/Capabilities/ICapability.php', 'OCP\\Capabilities\\IPublicCapability' => $baseDir . '/lib/public/Capabilities/IPublicCapability.php', + 'OCP\\Collaboration\\Collaborators\\ISearch' => $baseDir . '/lib/public/Collaboration/Collaborators/ISearch.php', + 'OCP\\Collaboration\\Collaborators\\ISearchPlugin' => $baseDir . '/lib/public/Collaboration/Collaborators/ISearchPlugin.php', + 'OCP\\Collaboration\\Collaborators\\ISearchResult' => $baseDir . '/lib/public/Collaboration/Collaborators/ISearchResult.php', + 'OCP\\Collaboration\\Collaborators\\SearchResultType' => $baseDir . '/lib/public/Collaboration/Collaborators/SearchResultType.php', 'OCP\\Command\\IBus' => $baseDir . '/lib/public/Command/IBus.php', 'OCP\\Command\\ICommand' => $baseDir . '/lib/public/Command/ICommand.php', 'OCP\\Comments\\CommentsEntityEvent' => $baseDir . '/lib/public/Comments/CommentsEntityEvent.php', @@ -222,6 +226,8 @@ return array( 'OCP\\Lockdown\\ILockdownManager' => $baseDir . '/lib/public/Lockdown/ILockdownManager.php', 'OCP\\Mail\\IEMailTemplate' => $baseDir . '/lib/public/Mail/IEMailTemplate.php', 'OCP\\Mail\\IMailer' => $baseDir . '/lib/public/Mail/IMailer.php', + 'OCP\\Mail\\IMessage' => $baseDir . '/lib/public/Mail/IMessage.php', + 'OCP\\Migration\\BigIntMigration' => $baseDir . '/lib/public/Migration/BigIntMigration.php', 'OCP\\Migration\\IMigrationStep' => $baseDir . '/lib/public/Migration/IMigrationStep.php', 'OCP\\Migration\\IOutput' => $baseDir . '/lib/public/Migration/IOutput.php', 'OCP\\Migration\\IRepairStep' => $baseDir . '/lib/public/Migration/IRepairStep.php', @@ -383,6 +389,13 @@ return array( 'OC\\Cache\\CappedMemoryCache' => $baseDir . '/lib/private/Cache/CappedMemoryCache.php', 'OC\\Cache\\File' => $baseDir . '/lib/private/Cache/File.php', 'OC\\CapabilitiesManager' => $baseDir . '/lib/private/CapabilitiesManager.php', + 'OC\\Collaboration\\Collaborators\\GroupPlugin' => $baseDir . '/lib/private/Collaboration/Collaborators/GroupPlugin.php', + 'OC\\Collaboration\\Collaborators\\LookupPlugin' => $baseDir . '/lib/private/Collaboration/Collaborators/LookupPlugin.php', + 'OC\\Collaboration\\Collaborators\\MailPlugin' => $baseDir . '/lib/private/Collaboration/Collaborators/MailPlugin.php', + 'OC\\Collaboration\\Collaborators\\RemotePlugin' => $baseDir . '/lib/private/Collaboration/Collaborators/RemotePlugin.php', + 'OC\\Collaboration\\Collaborators\\Search' => $baseDir . '/lib/private/Collaboration/Collaborators/Search.php', + 'OC\\Collaboration\\Collaborators\\SearchResult' => $baseDir . '/lib/private/Collaboration/Collaborators/SearchResult.php', + 'OC\\Collaboration\\Collaborators\\UserPlugin' => $baseDir . '/lib/private/Collaboration/Collaborators/UserPlugin.php', 'OC\\Command\\AsyncBus' => $baseDir . '/lib/private/Command/AsyncBus.php', 'OC\\Command\\CallableJob' => $baseDir . '/lib/private/Command/CallableJob.php', 'OC\\Command\\ClosureJob' => $baseDir . '/lib/private/Command/ClosureJob.php', @@ -427,6 +440,7 @@ return array( 'OC\\Core\\Command\\Config\\System\\DeleteConfig' => $baseDir . '/core/Command/Config/System/DeleteConfig.php', 'OC\\Core\\Command\\Config\\System\\GetConfig' => $baseDir . '/core/Command/Config/System/GetConfig.php', 'OC\\Core\\Command\\Config\\System\\SetConfig' => $baseDir . '/core/Command/Config/System/SetConfig.php', + 'OC\\Core\\Command\\Db\\ConvertFilecacheBigInt' => $baseDir . '/core/Command/Db/ConvertFilecacheBigInt.php', 'OC\\Core\\Command\\Db\\ConvertMysqlToMB4' => $baseDir . '/core/Command/Db/ConvertMysqlToMB4.php', 'OC\\Core\\Command\\Db\\ConvertType' => $baseDir . '/core/Command/Db/ConvertType.php', 'OC\\Core\\Command\\Db\\Migrations\\ExecuteCommand' => $baseDir . '/core/Command/Db/Migrations/ExecuteCommand.php', @@ -498,6 +512,7 @@ return array( 'OC\\Core\\Migrations\\Version13000Date20170718121200' => $baseDir . '/core/Migrations/Version13000Date20170718121200.php', 'OC\\Core\\Migrations\\Version13000Date20170814074715' => $baseDir . '/core/Migrations/Version13000Date20170814074715.php', 'OC\\Core\\Migrations\\Version13000Date20170919121250' => $baseDir . '/core/Migrations/Version13000Date20170919121250.php', + 'OC\\Core\\Migrations\\Version13000Date20170926101637' => $baseDir . '/core/Migrations/Version13000Date20170926101637.php', 'OC\\DB\\Adapter' => $baseDir . '/lib/private/DB/Adapter.php', 'OC\\DB\\AdapterMySQL' => $baseDir . '/lib/private/DB/AdapterMySQL.php', 'OC\\DB\\AdapterOCI8' => $baseDir . '/lib/private/DB/AdapterOCI8.php', @@ -514,6 +529,7 @@ return array( 'OC\\DB\\MySQLMigrator' => $baseDir . '/lib/private/DB/MySQLMigrator.php', 'OC\\DB\\MySqlTools' => $baseDir . '/lib/private/DB/MySqlTools.php', 'OC\\DB\\NoCheckMigrator' => $baseDir . '/lib/private/DB/NoCheckMigrator.php', + 'OC\\DB\\OCPostgreSqlPlatform' => $baseDir . '/lib/private/DB/OCPostgreSqlPlatform.php', 'OC\\DB\\OCSqlitePlatform' => $baseDir . '/lib/private/DB/OCSqlitePlatform.php', 'OC\\DB\\OracleConnection' => $baseDir . '/lib/private/DB/OracleConnection.php', 'OC\\DB\\OracleMigrator' => $baseDir . '/lib/private/DB/OracleMigrator.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 4cfbbcc2e39..0d327b7267f 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -98,6 +98,10 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\BackgroundJob\\IJobList' => __DIR__ . '/../../..' . '/lib/public/BackgroundJob/IJobList.php', 'OCP\\Capabilities\\ICapability' => __DIR__ . '/../../..' . '/lib/public/Capabilities/ICapability.php', 'OCP\\Capabilities\\IPublicCapability' => __DIR__ . '/../../..' . '/lib/public/Capabilities/IPublicCapability.php', + 'OCP\\Collaboration\\Collaborators\\ISearch' => __DIR__ . '/../../..' . '/lib/public/Collaboration/Collaborators/ISearch.php', + 'OCP\\Collaboration\\Collaborators\\ISearchPlugin' => __DIR__ . '/../../..' . '/lib/public/Collaboration/Collaborators/ISearchPlugin.php', + 'OCP\\Collaboration\\Collaborators\\ISearchResult' => __DIR__ . '/../../..' . '/lib/public/Collaboration/Collaborators/ISearchResult.php', + 'OCP\\Collaboration\\Collaborators\\SearchResultType' => __DIR__ . '/../../..' . '/lib/public/Collaboration/Collaborators/SearchResultType.php', 'OCP\\Command\\IBus' => __DIR__ . '/../../..' . '/lib/public/Command/IBus.php', 'OCP\\Command\\ICommand' => __DIR__ . '/../../..' . '/lib/public/Command/ICommand.php', 'OCP\\Comments\\CommentsEntityEvent' => __DIR__ . '/../../..' . '/lib/public/Comments/CommentsEntityEvent.php', @@ -252,6 +256,8 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\Lockdown\\ILockdownManager' => __DIR__ . '/../../..' . '/lib/public/Lockdown/ILockdownManager.php', 'OCP\\Mail\\IEMailTemplate' => __DIR__ . '/../../..' . '/lib/public/Mail/IEMailTemplate.php', 'OCP\\Mail\\IMailer' => __DIR__ . '/../../..' . '/lib/public/Mail/IMailer.php', + 'OCP\\Mail\\IMessage' => __DIR__ . '/../../..' . '/lib/public/Mail/IMessage.php', + 'OCP\\Migration\\BigIntMigration' => __DIR__ . '/../../..' . '/lib/public/Migration/BigIntMigration.php', 'OCP\\Migration\\IMigrationStep' => __DIR__ . '/../../..' . '/lib/public/Migration/IMigrationStep.php', 'OCP\\Migration\\IOutput' => __DIR__ . '/../../..' . '/lib/public/Migration/IOutput.php', 'OCP\\Migration\\IRepairStep' => __DIR__ . '/../../..' . '/lib/public/Migration/IRepairStep.php', @@ -413,6 +419,13 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Cache\\CappedMemoryCache' => __DIR__ . '/../../..' . '/lib/private/Cache/CappedMemoryCache.php', 'OC\\Cache\\File' => __DIR__ . '/../../..' . '/lib/private/Cache/File.php', 'OC\\CapabilitiesManager' => __DIR__ . '/../../..' . '/lib/private/CapabilitiesManager.php', + 'OC\\Collaboration\\Collaborators\\GroupPlugin' => __DIR__ . '/../../..' . '/lib/private/Collaboration/Collaborators/GroupPlugin.php', + 'OC\\Collaboration\\Collaborators\\LookupPlugin' => __DIR__ . '/../../..' . '/lib/private/Collaboration/Collaborators/LookupPlugin.php', + 'OC\\Collaboration\\Collaborators\\MailPlugin' => __DIR__ . '/../../..' . '/lib/private/Collaboration/Collaborators/MailPlugin.php', + 'OC\\Collaboration\\Collaborators\\RemotePlugin' => __DIR__ . '/../../..' . '/lib/private/Collaboration/Collaborators/RemotePlugin.php', + 'OC\\Collaboration\\Collaborators\\Search' => __DIR__ . '/../../..' . '/lib/private/Collaboration/Collaborators/Search.php', + 'OC\\Collaboration\\Collaborators\\SearchResult' => __DIR__ . '/../../..' . '/lib/private/Collaboration/Collaborators/SearchResult.php', + 'OC\\Collaboration\\Collaborators\\UserPlugin' => __DIR__ . '/../../..' . '/lib/private/Collaboration/Collaborators/UserPlugin.php', 'OC\\Command\\AsyncBus' => __DIR__ . '/../../..' . '/lib/private/Command/AsyncBus.php', 'OC\\Command\\CallableJob' => __DIR__ . '/../../..' . '/lib/private/Command/CallableJob.php', 'OC\\Command\\ClosureJob' => __DIR__ . '/../../..' . '/lib/private/Command/ClosureJob.php', @@ -457,6 +470,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Core\\Command\\Config\\System\\DeleteConfig' => __DIR__ . '/../../..' . '/core/Command/Config/System/DeleteConfig.php', 'OC\\Core\\Command\\Config\\System\\GetConfig' => __DIR__ . '/../../..' . '/core/Command/Config/System/GetConfig.php', 'OC\\Core\\Command\\Config\\System\\SetConfig' => __DIR__ . '/../../..' . '/core/Command/Config/System/SetConfig.php', + 'OC\\Core\\Command\\Db\\ConvertFilecacheBigInt' => __DIR__ . '/../../..' . '/core/Command/Db/ConvertFilecacheBigInt.php', 'OC\\Core\\Command\\Db\\ConvertMysqlToMB4' => __DIR__ . '/../../..' . '/core/Command/Db/ConvertMysqlToMB4.php', 'OC\\Core\\Command\\Db\\ConvertType' => __DIR__ . '/../../..' . '/core/Command/Db/ConvertType.php', 'OC\\Core\\Command\\Db\\Migrations\\ExecuteCommand' => __DIR__ . '/../../..' . '/core/Command/Db/Migrations/ExecuteCommand.php', @@ -528,6 +542,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Core\\Migrations\\Version13000Date20170718121200' => __DIR__ . '/../../..' . '/core/Migrations/Version13000Date20170718121200.php', 'OC\\Core\\Migrations\\Version13000Date20170814074715' => __DIR__ . '/../../..' . '/core/Migrations/Version13000Date20170814074715.php', 'OC\\Core\\Migrations\\Version13000Date20170919121250' => __DIR__ . '/../../..' . '/core/Migrations/Version13000Date20170919121250.php', + 'OC\\Core\\Migrations\\Version13000Date20170926101637' => __DIR__ . '/../../..' . '/core/Migrations/Version13000Date20170926101637.php', 'OC\\DB\\Adapter' => __DIR__ . '/../../..' . '/lib/private/DB/Adapter.php', 'OC\\DB\\AdapterMySQL' => __DIR__ . '/../../..' . '/lib/private/DB/AdapterMySQL.php', 'OC\\DB\\AdapterOCI8' => __DIR__ . '/../../..' . '/lib/private/DB/AdapterOCI8.php', @@ -544,6 +559,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\DB\\MySQLMigrator' => __DIR__ . '/../../..' . '/lib/private/DB/MySQLMigrator.php', 'OC\\DB\\MySqlTools' => __DIR__ . '/../../..' . '/lib/private/DB/MySqlTools.php', 'OC\\DB\\NoCheckMigrator' => __DIR__ . '/../../..' . '/lib/private/DB/NoCheckMigrator.php', + 'OC\\DB\\OCPostgreSqlPlatform' => __DIR__ . '/../../..' . '/lib/private/DB/OCPostgreSqlPlatform.php', 'OC\\DB\\OCSqlitePlatform' => __DIR__ . '/../../..' . '/lib/private/DB/OCSqlitePlatform.php', 'OC\\DB\\OracleConnection' => __DIR__ . '/../../..' . '/lib/private/DB/OracleConnection.php', 'OC\\DB\\OracleMigrator' => __DIR__ . '/../../..' . '/lib/private/DB/OracleMigrator.php', diff --git a/lib/l10n/cs.js b/lib/l10n/cs.js index aec9881d4c8..20c6ad9d241 100644 --- a/lib/l10n/cs.js +++ b/lib/l10n/cs.js @@ -173,6 +173,7 @@ OC.L10N.register( "Username must not consist of dots only" : "Uživatelské jméno se nesmí skládat ze samých teček", "A valid password must be provided" : "Musíte zadat platné heslo", "The username is already being used" : "Uživatelské jméno je již využíváno", + "Could not create user" : "Nepodařilo se vytvořit uživatele", "User disabled" : "Uživatel zakázán", "Login canceled by app" : "Přihlášení zrušeno aplikací", "No app name specified" : "Nebyl zadan název aplikace", diff --git a/lib/l10n/cs.json b/lib/l10n/cs.json index 410829a38af..d9f4b8ba636 100644 --- a/lib/l10n/cs.json +++ b/lib/l10n/cs.json @@ -171,6 +171,7 @@ "Username must not consist of dots only" : "Uživatelské jméno se nesmí skládat ze samých teček", "A valid password must be provided" : "Musíte zadat platné heslo", "The username is already being used" : "Uživatelské jméno je již využíváno", + "Could not create user" : "Nepodařilo se vytvořit uživatele", "User disabled" : "Uživatel zakázán", "Login canceled by app" : "Přihlášení zrušeno aplikací", "No app name specified" : "Nebyl zadan název aplikace", diff --git a/lib/l10n/de.js b/lib/l10n/de.js index 57ff861609e..0e41425ab5a 100644 --- a/lib/l10n/de.js +++ b/lib/l10n/de.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Ungültiges Bild", "Avatar image is not square" : "Benutzerbild ist nicht quadratisch", "today" : "Heute", + "tomorrow" : "Morgen", "yesterday" : "Gestern", + "_in %n day_::_in %n days_" : ["in %n Tag","in %n Tagen"], "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"], + "next month" : "Nächsten Monat", "last month" : "Letzten Monat", + "_in %n month_::_in %n months_" : ["in %n Monat","in %n Monaten"], "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"], + "next year" : "nächstes Jahr", "last year" : "Letztes Jahr", + "_in %n year_::_in %n years_" : ["in %n Jahr","in %n Jahren"], "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"], + "_in %n hour_::_in %n hours_" : ["in %n Stunde","in %n Stunden"], "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"], + "_in %n minute_::_in %n minutes_" : ["in %n Minute","in %n Minuten"], "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"], + "in a few seconds" : "in wenigen Sekunden", "seconds ago" : "Gerade eben", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Das Modul mit der ID: %s existiert nicht. Bitte die App in den App-Einstellungen aktivieren oder den Administrator kontaktieren.", "File name is a reserved word" : "Der Dateiname ist ein reserviertes Wort", @@ -84,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Einen Administrator-Benutzernamen setzen.", "Set an admin password." : "Ein Administrator-Passwort setzen.", "Can't create or write into the data directory %s" : "Das Datenverzeichnis %s kann nicht erstellt oder es kann darin nicht geschrieben werden.", + "Given database host is invalid and must not contain the port: %s" : "Der angegebene Datenbank-Host ist ungültig und muss den Port beinhalten: %s", "Invalid Federated Cloud ID" : "Ungültige Federated-Cloud-ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Freigabe von %s fehlgeschlagen, da das Backend die Freigabe vom Typ %i nicht erlaubt.", "Sharing %s failed, because the file does not exist" : "Freigabe von %s fehlgeschlagen, da die Datei nicht existiert", diff --git a/lib/l10n/de.json b/lib/l10n/de.json index e3d3bbc508b..1b58bcc8f67 100644 --- a/lib/l10n/de.json +++ b/lib/l10n/de.json @@ -29,14 +29,23 @@ "Invalid image" : "Ungültiges Bild", "Avatar image is not square" : "Benutzerbild ist nicht quadratisch", "today" : "Heute", + "tomorrow" : "Morgen", "yesterday" : "Gestern", + "_in %n day_::_in %n days_" : ["in %n Tag","in %n Tagen"], "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"], + "next month" : "Nächsten Monat", "last month" : "Letzten Monat", + "_in %n month_::_in %n months_" : ["in %n Monat","in %n Monaten"], "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"], + "next year" : "nächstes Jahr", "last year" : "Letztes Jahr", + "_in %n year_::_in %n years_" : ["in %n Jahr","in %n Jahren"], "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"], + "_in %n hour_::_in %n hours_" : ["in %n Stunde","in %n Stunden"], "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"], + "_in %n minute_::_in %n minutes_" : ["in %n Minute","in %n Minuten"], "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"], + "in a few seconds" : "in wenigen Sekunden", "seconds ago" : "Gerade eben", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Das Modul mit der ID: %s existiert nicht. Bitte die App in den App-Einstellungen aktivieren oder den Administrator kontaktieren.", "File name is a reserved word" : "Der Dateiname ist ein reserviertes Wort", @@ -82,6 +91,7 @@ "Set an admin username." : "Einen Administrator-Benutzernamen setzen.", "Set an admin password." : "Ein Administrator-Passwort setzen.", "Can't create or write into the data directory %s" : "Das Datenverzeichnis %s kann nicht erstellt oder es kann darin nicht geschrieben werden.", + "Given database host is invalid and must not contain the port: %s" : "Der angegebene Datenbank-Host ist ungültig und muss den Port beinhalten: %s", "Invalid Federated Cloud ID" : "Ungültige Federated-Cloud-ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Freigabe von %s fehlgeschlagen, da das Backend die Freigabe vom Typ %i nicht erlaubt.", "Sharing %s failed, because the file does not exist" : "Freigabe von %s fehlgeschlagen, da die Datei nicht existiert", diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js index 6daa00b3a4f..a5520e188e3 100644 --- a/lib/l10n/de_DE.js +++ b/lib/l10n/de_DE.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Ungültiges Bild", "Avatar image is not square" : "Benutzerbild ist nicht quadratisch", "today" : "Heute", + "tomorrow" : "Morgen", "yesterday" : "Gestern", + "_in %n day_::_in %n days_" : ["in %n Tag","in %n Tagen"], "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"], + "next month" : "Nächsten Monat", "last month" : "Letzten Monat", + "_in %n month_::_in %n months_" : ["in %n Monat","in %n Monaten"], "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"], + "next year" : "nächstes Jahr", "last year" : "Letztes Jahr", + "_in %n year_::_in %n years_" : ["in %n Jahr","in %n Jahren"], "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"], + "_in %n hour_::_in %n hours_" : ["in %n Stunde","in %n Stunden"], "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"], + "_in %n minute_::_in %n minutes_" : ["in %n Minute","in %n Minuten"], "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"], + "in a few seconds" : "in wenigen Sekunden", "seconds ago" : "Gerade eben", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Das Modul mit der ID: %s existiert nicht. Bitte aktiviere es in deinen Einstellungen oder kontaktiere deinen Administrator.", "File name is a reserved word" : "Der Dateiname ist ein reserviertes Wort", @@ -84,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Einen Administrator-Benutzernamen setzen.", "Set an admin password." : "Ein Administrator-Passwort setzen.", "Can't create or write into the data directory %s" : "Das Datenverzeichnis %s kann nicht erstellt oder es kann darin nicht geschrieben werden.", + "Given database host is invalid and must not contain the port: %s" : "Der angegebene Datenbank-Host ist ungültig und muss den Port beinhalten: %s", "Invalid Federated Cloud ID" : "Ungültige Federated-Cloud-ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Freigabe von %s fehlgeschlagen, da das Backend die Freigabe vom Typ %i nicht erlaubt.", "Sharing %s failed, because the file does not exist" : "Freigabe von %s fehlgeschlagen, da die Datei nicht existiert", diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json index 1311285bc77..6bee5022eb6 100644 --- a/lib/l10n/de_DE.json +++ b/lib/l10n/de_DE.json @@ -29,14 +29,23 @@ "Invalid image" : "Ungültiges Bild", "Avatar image is not square" : "Benutzerbild ist nicht quadratisch", "today" : "Heute", + "tomorrow" : "Morgen", "yesterday" : "Gestern", + "_in %n day_::_in %n days_" : ["in %n Tag","in %n Tagen"], "_%n day ago_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"], + "next month" : "Nächsten Monat", "last month" : "Letzten Monat", + "_in %n month_::_in %n months_" : ["in %n Monat","in %n Monaten"], "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"], + "next year" : "nächstes Jahr", "last year" : "Letztes Jahr", + "_in %n year_::_in %n years_" : ["in %n Jahr","in %n Jahren"], "_%n year ago_::_%n years ago_" : ["Vor %n Jahr","Vor %n Jahren"], + "_in %n hour_::_in %n hours_" : ["in %n Stunde","in %n Stunden"], "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"], + "_in %n minute_::_in %n minutes_" : ["in %n Minute","in %n Minuten"], "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"], + "in a few seconds" : "in wenigen Sekunden", "seconds ago" : "Gerade eben", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Das Modul mit der ID: %s existiert nicht. Bitte aktiviere es in deinen Einstellungen oder kontaktiere deinen Administrator.", "File name is a reserved word" : "Der Dateiname ist ein reserviertes Wort", @@ -82,6 +91,7 @@ "Set an admin username." : "Einen Administrator-Benutzernamen setzen.", "Set an admin password." : "Ein Administrator-Passwort setzen.", "Can't create or write into the data directory %s" : "Das Datenverzeichnis %s kann nicht erstellt oder es kann darin nicht geschrieben werden.", + "Given database host is invalid and must not contain the port: %s" : "Der angegebene Datenbank-Host ist ungültig und muss den Port beinhalten: %s", "Invalid Federated Cloud ID" : "Ungültige Federated-Cloud-ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Freigabe von %s fehlgeschlagen, da das Backend die Freigabe vom Typ %i nicht erlaubt.", "Sharing %s failed, because the file does not exist" : "Freigabe von %s fehlgeschlagen, da die Datei nicht existiert", diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js index aedd831de38..a169502af15 100644 --- a/lib/l10n/en_GB.js +++ b/lib/l10n/en_GB.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin username." : "Set an admin username.", "Set an admin password." : "Set an admin password.", "Can't create or write into the data directory %s" : "Can't create or write into the data directory %s", + "Given database host is invalid and must not contain the port: %s" : "Given database host is invalid and must not contain the port: %s", "Invalid Federated Cloud ID" : "Invalid Federated Cloud ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Sharing %s failed, because the backend does not allow shares from type %i", "Sharing %s failed, because the file does not exist" : "Sharing %s failed, because the file does not exist", diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json index 9a113df3b16..bf08239be71 100644 --- a/lib/l10n/en_GB.json +++ b/lib/l10n/en_GB.json @@ -82,6 +82,7 @@ "Set an admin username." : "Set an admin username.", "Set an admin password." : "Set an admin password.", "Can't create or write into the data directory %s" : "Can't create or write into the data directory %s", + "Given database host is invalid and must not contain the port: %s" : "Given database host is invalid and must not contain the port: %s", "Invalid Federated Cloud ID" : "Invalid Federated Cloud ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Sharing %s failed, because the backend does not allow shares from type %i", "Sharing %s failed, because the file does not exist" : "Sharing %s failed, because the file does not exist", diff --git a/lib/l10n/es.js b/lib/l10n/es.js index f7805c86832..14eda42f187 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -1,13 +1,13 @@ OC.L10N.register( "lib", { - "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio \"config\"!", - "This can usually be fixed by giving the webserver write access to the config directory" : "Esto puede solucionarse fácilmente dándole al servidor permisos de escritura del directorio de configuración", - "See %s" : "Mirar %s", - "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Habitualmente, esto puede arreglarse dando al servidor web acceso de escritura al directorio de configuración. Véase %s", + "Cannot write into \"config\" directory!" : "No se puede escribir en la carpeta \"config\"", + "This can usually be fixed by giving the webserver write access to the config directory" : "Esto podría ser solucionado dándole al servidor permisos de escritura del directorio de configuración", + "See %s" : "Ver %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Esto podría ser solucionado dándole al servidor permisos de escritura del directorio de configuración. Ver %s", "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Los archivos de la aplicación %$1s no fueron reemplazados correctamente. Asegúrese que es una versión compatible con el servidor.", "Sample configuration detected" : "Ejemplo de configuración detectado", - "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que el ejemplo de configuración ha sido copiado. Esto puede arruinar su instalación y es un caso para el que no se brinda soporte. Lea la documentación antes de hacer cambios en config.php", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que el ejemplo de configuración ha sido copiado. Esto podría afectar a su instalación, por lo que no tiene soporte. Lea la documentación antes de hacer cambios en config.php", "%1$s and %2$s" : "%1$s y %2$s", "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s, y %4$s", @@ -17,7 +17,7 @@ OC.L10N.register( "Groupware bundle" : "Conjunto de groupware", "Social sharing bundle" : "Conjunto para compartir en redes", "PHP %s or higher is required." : "Se requiere PHP %s o superior.", - "PHP with a version lower than %s is required." : "PHP con una versión inferior que %s la requerida.", + "PHP with a version lower than %s is required." : "Se necesita una versión de PHP inferior a %s", "%sbit or higher PHP required." : "Se requiere PHP %sbit o superior.", "Following databases are supported: %s" : "Las siguientes bases de datos están soportadas: %s", "The command line tool %s could not be found" : "No se encontró la herramienta %s de línea de comandos", @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin username." : "Configurar un nombre de usuario del administrador", "Set an admin password." : "Configurar la contraseña del administrador.", "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", + "Given database host is invalid and must not contain the port: %s" : "El servidor de la base de datos dado es inválido y no debe contener el puerto: %s", "Invalid Federated Cloud ID" : "ID Nube federada inválida", "Sharing %s failed, because the backend does not allow shares from type %i" : "No se pudo compartir %s porque el repositorio no permite recursos compartidos del tipo %i", "Sharing %s failed, because the file does not exist" : "No se pudo compartir %s porque el archivo no existe", diff --git a/lib/l10n/es.json b/lib/l10n/es.json index f599a8ffc10..23227e69ac6 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -1,11 +1,11 @@ { "translations": { - "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio \"config\"!", - "This can usually be fixed by giving the webserver write access to the config directory" : "Esto puede solucionarse fácilmente dándole al servidor permisos de escritura del directorio de configuración", - "See %s" : "Mirar %s", - "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Habitualmente, esto puede arreglarse dando al servidor web acceso de escritura al directorio de configuración. Véase %s", + "Cannot write into \"config\" directory!" : "No se puede escribir en la carpeta \"config\"", + "This can usually be fixed by giving the webserver write access to the config directory" : "Esto podría ser solucionado dándole al servidor permisos de escritura del directorio de configuración", + "See %s" : "Ver %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Esto podría ser solucionado dándole al servidor permisos de escritura del directorio de configuración. Ver %s", "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Los archivos de la aplicación %$1s no fueron reemplazados correctamente. Asegúrese que es una versión compatible con el servidor.", "Sample configuration detected" : "Ejemplo de configuración detectado", - "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que el ejemplo de configuración ha sido copiado. Esto puede arruinar su instalación y es un caso para el que no se brinda soporte. Lea la documentación antes de hacer cambios en config.php", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que el ejemplo de configuración ha sido copiado. Esto podría afectar a su instalación, por lo que no tiene soporte. Lea la documentación antes de hacer cambios en config.php", "%1$s and %2$s" : "%1$s y %2$s", "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s, y %4$s", @@ -15,7 +15,7 @@ "Groupware bundle" : "Conjunto de groupware", "Social sharing bundle" : "Conjunto para compartir en redes", "PHP %s or higher is required." : "Se requiere PHP %s o superior.", - "PHP with a version lower than %s is required." : "PHP con una versión inferior que %s la requerida.", + "PHP with a version lower than %s is required." : "Se necesita una versión de PHP inferior a %s", "%sbit or higher PHP required." : "Se requiere PHP %sbit o superior.", "Following databases are supported: %s" : "Las siguientes bases de datos están soportadas: %s", "The command line tool %s could not be found" : "No se encontró la herramienta %s de línea de comandos", @@ -82,6 +82,7 @@ "Set an admin username." : "Configurar un nombre de usuario del administrador", "Set an admin password." : "Configurar la contraseña del administrador.", "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", + "Given database host is invalid and must not contain the port: %s" : "El servidor de la base de datos dado es inválido y no debe contener el puerto: %s", "Invalid Federated Cloud ID" : "ID Nube federada inválida", "Sharing %s failed, because the backend does not allow shares from type %i" : "No se pudo compartir %s porque el repositorio no permite recursos compartidos del tipo %i", "Sharing %s failed, because the file does not exist" : "No se pudo compartir %s porque el archivo no existe", diff --git a/lib/l10n/es_MX.js b/lib/l10n/es_MX.js index ecec10607b4..bc252633450 100644 --- a/lib/l10n/es_MX.js +++ b/lib/l10n/es_MX.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin username." : "Establecer un Usuario administrador", "Set an admin password." : "Establecer la contraseña del administrador.", "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", + "Given database host is invalid and must not contain the port: %s" : "El servidor de base de datos ingresado es inválido y no debe contener el puerto: %s", "Invalid Federated Cloud ID" : "ID Inválido", "Sharing %s failed, because the backend does not allow shares from type %i" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %i", "Sharing %s failed, because the file does not exist" : "Se presentó una falla al compartir %s porque el archivo no existe", diff --git a/lib/l10n/es_MX.json b/lib/l10n/es_MX.json index 5f05674435c..6a7c6474bb9 100644 --- a/lib/l10n/es_MX.json +++ b/lib/l10n/es_MX.json @@ -82,6 +82,7 @@ "Set an admin username." : "Establecer un Usuario administrador", "Set an admin password." : "Establecer la contraseña del administrador.", "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", + "Given database host is invalid and must not contain the port: %s" : "El servidor de base de datos ingresado es inválido y no debe contener el puerto: %s", "Invalid Federated Cloud ID" : "ID Inválido", "Sharing %s failed, because the backend does not allow shares from type %i" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %i", "Sharing %s failed, because the file does not exist" : "Se presentó una falla al compartir %s porque el archivo no existe", diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js index 9257203dfff..8463db273ac 100644 --- a/lib/l10n/fr.js +++ b/lib/l10n/fr.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Image non valable", "Avatar image is not square" : "L'image d'avatar n'est pas carré", "today" : "aujourd'hui", + "tomorrow" : "demain", "yesterday" : "hier", + "_in %n day_::_in %n days_" : ["dans %n jour","dans %n jours"], "_%n day ago_::_%n days ago_" : ["il y a %n jour","il y a %n jours"], + "next month" : "mois suivant", "last month" : "le mois dernier", + "_in %n month_::_in %n months_" : ["dans %n mois","dans %n mois"], "_%n month ago_::_%n months ago_" : ["Il y a %n mois","Il y a %n mois"], + "next year" : "année suivante", "last year" : "l'année dernière", + "_in %n year_::_in %n years_" : ["dans %n an","dans %n ans"], "_%n year ago_::_%n years ago_" : ["il y a %n an","il y a %n ans"], + "_in %n hour_::_in %n hours_" : ["dans %n heure","dans %n heures"], "_%n hour ago_::_%n hours ago_" : ["Il y a %n heure","Il y a %n heures"], + "_in %n minute_::_in %n minutes_" : ["dans %n minute","dans %n minutes"], "_%n minute ago_::_%n minutes ago_" : ["il y a %n minute","il y a %n minutes"], + "in a few seconds" : "dans quelques secondes", "seconds ago" : "il y a quelques secondes", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Le module avec l'ID: %s n'existe pas. Merci de l'activer dans les paramètres d'applications ou de contacter votre administrateur.", "File name is a reserved word" : "Ce nom de fichier est un mot réservé", @@ -84,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Spécifiez un nom d'utilisateur pour l'administrateur.", "Set an admin password." : "Spécifiez un mot de passe pour l'administrateur.", "Can't create or write into the data directory %s" : "Impossible de créer, ou d'écrire dans, le répertoire des données %s", + "Given database host is invalid and must not contain the port: %s" : "L'hôte de la base de donnée donné est invalide et ne doit pas contenir le port: %s", "Invalid Federated Cloud ID" : "ID Federated Cloud incorrect", "Sharing %s failed, because the backend does not allow shares from type %i" : "Le partage de %s a échoué car l’infrastructure n'autorise pas les partages de type %i", "Sharing %s failed, because the file does not exist" : "Le partage de %s a échoué car le fichier n'existe pas", diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json index da9e80b617c..3722544dd97 100644 --- a/lib/l10n/fr.json +++ b/lib/l10n/fr.json @@ -29,14 +29,23 @@ "Invalid image" : "Image non valable", "Avatar image is not square" : "L'image d'avatar n'est pas carré", "today" : "aujourd'hui", + "tomorrow" : "demain", "yesterday" : "hier", + "_in %n day_::_in %n days_" : ["dans %n jour","dans %n jours"], "_%n day ago_::_%n days ago_" : ["il y a %n jour","il y a %n jours"], + "next month" : "mois suivant", "last month" : "le mois dernier", + "_in %n month_::_in %n months_" : ["dans %n mois","dans %n mois"], "_%n month ago_::_%n months ago_" : ["Il y a %n mois","Il y a %n mois"], + "next year" : "année suivante", "last year" : "l'année dernière", + "_in %n year_::_in %n years_" : ["dans %n an","dans %n ans"], "_%n year ago_::_%n years ago_" : ["il y a %n an","il y a %n ans"], + "_in %n hour_::_in %n hours_" : ["dans %n heure","dans %n heures"], "_%n hour ago_::_%n hours ago_" : ["Il y a %n heure","Il y a %n heures"], + "_in %n minute_::_in %n minutes_" : ["dans %n minute","dans %n minutes"], "_%n minute ago_::_%n minutes ago_" : ["il y a %n minute","il y a %n minutes"], + "in a few seconds" : "dans quelques secondes", "seconds ago" : "il y a quelques secondes", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Le module avec l'ID: %s n'existe pas. Merci de l'activer dans les paramètres d'applications ou de contacter votre administrateur.", "File name is a reserved word" : "Ce nom de fichier est un mot réservé", @@ -82,6 +91,7 @@ "Set an admin username." : "Spécifiez un nom d'utilisateur pour l'administrateur.", "Set an admin password." : "Spécifiez un mot de passe pour l'administrateur.", "Can't create or write into the data directory %s" : "Impossible de créer, ou d'écrire dans, le répertoire des données %s", + "Given database host is invalid and must not contain the port: %s" : "L'hôte de la base de donnée donné est invalide et ne doit pas contenir le port: %s", "Invalid Federated Cloud ID" : "ID Federated Cloud incorrect", "Sharing %s failed, because the backend does not allow shares from type %i" : "Le partage de %s a échoué car l’infrastructure n'autorise pas les partages de type %i", "Sharing %s failed, because the file does not exist" : "Le partage de %s a échoué car le fichier n'existe pas", diff --git a/lib/l10n/it.js b/lib/l10n/it.js index 03b6dc69a2d..d84c0673b41 100644 --- a/lib/l10n/it.js +++ b/lib/l10n/it.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Immagine non valida", "Avatar image is not square" : "L'immagine personale non è quadrata", "today" : "oggi", + "tomorrow" : "domani", "yesterday" : "ieri", + "_in %n day_::_in %n days_" : ["tra %n giorno","tra %n giorni"], "_%n day ago_::_%n days ago_" : ["%d giorno fa","%n giorni fa"], + "next month" : "il prossimo mese", "last month" : "mese scorso", + "_in %n month_::_in %n months_" : ["tra %n mese","tra %n mesi"], "_%n month ago_::_%n months ago_" : ["%n mese fa","%n mesi fa"], + "next year" : "il prossimo anno", "last year" : "anno scorso", + "_in %n year_::_in %n years_" : ["tra %n anno","tra %n anni"], "_%n year ago_::_%n years ago_" : ["%n anno fa","%n anni fa"], + "_in %n hour_::_in %n hours_" : ["tra %n ora","tra %n ore"], "_%n hour ago_::_%n hours ago_" : ["%n ora fa","%n ore fa"], + "_in %n minute_::_in %n minutes_" : ["tra %n minuto","tra %n minuti"], "_%n minute ago_::_%n minutes ago_" : ["%n minuto fa","%n minuti fa"], + "in a few seconds" : "tra pochi secondi", "seconds ago" : "secondi fa", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Il modulo con ID: %s non esiste. Abilitalo nelle impostazioni delle applicazioni o contatta il tuo amministratore.", "File name is a reserved word" : "Il nome del file è una parola riservata", @@ -84,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Imposta un nome utente di amministrazione.", "Set an admin password." : "Imposta una password di amministrazione.", "Can't create or write into the data directory %s" : "Impossibile creare o scrivere nella cartella dei dati %s", + "Given database host is invalid and must not contain the port: %s" : "L'host del database fornito non è valido e deve contenere la porta: %s", "Invalid Federated Cloud ID" : "ID di cloud federata non valido", "Sharing %s failed, because the backend does not allow shares from type %i" : "Condivisione di %s non riuscita, poiché il motore non consente condivisioni del tipo %i", "Sharing %s failed, because the file does not exist" : "Condivisione di %s non riuscita, poiché il file non esiste", diff --git a/lib/l10n/it.json b/lib/l10n/it.json index bdfa78d45bb..ba09f39ffc9 100644 --- a/lib/l10n/it.json +++ b/lib/l10n/it.json @@ -29,14 +29,23 @@ "Invalid image" : "Immagine non valida", "Avatar image is not square" : "L'immagine personale non è quadrata", "today" : "oggi", + "tomorrow" : "domani", "yesterday" : "ieri", + "_in %n day_::_in %n days_" : ["tra %n giorno","tra %n giorni"], "_%n day ago_::_%n days ago_" : ["%d giorno fa","%n giorni fa"], + "next month" : "il prossimo mese", "last month" : "mese scorso", + "_in %n month_::_in %n months_" : ["tra %n mese","tra %n mesi"], "_%n month ago_::_%n months ago_" : ["%n mese fa","%n mesi fa"], + "next year" : "il prossimo anno", "last year" : "anno scorso", + "_in %n year_::_in %n years_" : ["tra %n anno","tra %n anni"], "_%n year ago_::_%n years ago_" : ["%n anno fa","%n anni fa"], + "_in %n hour_::_in %n hours_" : ["tra %n ora","tra %n ore"], "_%n hour ago_::_%n hours ago_" : ["%n ora fa","%n ore fa"], + "_in %n minute_::_in %n minutes_" : ["tra %n minuto","tra %n minuti"], "_%n minute ago_::_%n minutes ago_" : ["%n minuto fa","%n minuti fa"], + "in a few seconds" : "tra pochi secondi", "seconds ago" : "secondi fa", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Il modulo con ID: %s non esiste. Abilitalo nelle impostazioni delle applicazioni o contatta il tuo amministratore.", "File name is a reserved word" : "Il nome del file è una parola riservata", @@ -82,6 +91,7 @@ "Set an admin username." : "Imposta un nome utente di amministrazione.", "Set an admin password." : "Imposta una password di amministrazione.", "Can't create or write into the data directory %s" : "Impossibile creare o scrivere nella cartella dei dati %s", + "Given database host is invalid and must not contain the port: %s" : "L'host del database fornito non è valido e deve contenere la porta: %s", "Invalid Federated Cloud ID" : "ID di cloud federata non valido", "Sharing %s failed, because the backend does not allow shares from type %i" : "Condivisione di %s non riuscita, poiché il motore non consente condivisioni del tipo %i", "Sharing %s failed, because the file does not exist" : "Condivisione di %s non riuscita, poiché il file non esiste", diff --git a/lib/l10n/lt_LT.js b/lib/l10n/lt_LT.js index c9cfe5c10b6..9b9679e19a6 100644 --- a/lib/l10n/lt_LT.js +++ b/lib/l10n/lt_LT.js @@ -92,8 +92,12 @@ OC.L10N.register( "Share type %s is not valid for %s" : "Bendrinimo tipas %s netinka %s", "Cannot set expiration date. Expiration date is in the past" : "Nepavyko nustatyti galiojimo datos. Galiojimo data yra praėjęs laikas.", "Sharing failed, because the user %s is the original sharer" : "Bendrinimas nepavyko, nes naudotojas %s yra bendrintojas.", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s bendrinimas nepavyko, kadangi teisės viršijo %s suteiktas teises.", "Sharing %s failed, because resharing is not allowed" : "%s bendrinimas nepavyko, nes perskirstymas yra neleidžiamas.", + "Sharing %s failed, because the file could not be found in the file cache" : "%s dalinimasis nepavyko, nes failo nepavyko rasti podelyje. ", "Can’t increase permissions of %s" : "Negalima pridėti papildomų %s leidimų", + "Files can’t be shared with delete permissions" : "Failai negali būti bendrinami su trynimo leidimu.", + "Files can’t be shared with create permissions" : "Failai negali būti bendrinami su sukūrimo leidimu.", "Expiration date is in the past" : "Bendrinimo pabaigos data yra praėjęs laikas", "Can’t set expiration date more than %s days in the future" : "Negalima nustatyti galiojimo laiko ilgesnio nei %s dienos.", "%s shared »%s« with you" : "%s pasidalino »%s« su jumis", @@ -159,6 +163,7 @@ OC.L10N.register( "Login canceled by app" : "Programėlė nutraukė prisijungimo procesą", "No app name specified" : "Nenurodytas programėlės pavadinimas", "App '%s' could not be installed!" : "Nepavyko įdiegti '%s' programėlės!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "Programa \"%s\" negali būti įdiegta, nes nėra įvykdytos: %s", "a safe home for all your data" : "saugūs namai visiems jūsų duomenims", "File is currently busy, please try again later" : "Failas šiuo metu yra užimtas, prašome vėliau pabandyti dar kartą", "Can't read file" : "Nepavyksta perskaityti failo", @@ -169,34 +174,55 @@ OC.L10N.register( "No database drivers (sqlite, mysql, or postgresql) installed." : "Nėra įdiegtos duomenų bazių tvarkyklės (sqlite, mysql, or postgresql)", "Cannot write into \"config\" directory" : "Nepavyksta rašyti į \"config\" katalogą!", "Cannot write into \"apps\" directory" : "Nepavyksta įrašyti į \"apps\" katalogą", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Tai, dažniausiai, gali būti ištaisyta, suteikiant saityno serveriui rašymo prieigą prie programų katalogo arba uždraudžiant appstore konfigūraciniame kataloge. Žiūrėkite %s", "Cannot create \"data\" directory" : "Nepavyksta sukurti katalogo \"data\"", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Tai, dažniausiai, gali būti ištaisyta, suteikiant saityno serveriui rašymo prieigą prie šakninio katalogo. Žiūrėkite %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Teisės gali būti pataisytos, suteikiant saityno serveriui rašymo prieigą prie šakninio katalogo. Žiūrėkite %s", + "Setting locale to %s failed" : "Nepavyko nustatyti vietos %s", "Please install one of these locales on your system and restart your webserver." : "Prašome įdiekite vieną šių lokalių savo sistemoje ir perkraukite žiniatinklio serverį.", "Please ask your server administrator to install the module." : "Kreipkitės į savo sistemos administratorių, kad jis įdiegtų modulį.", "PHP module %s not installed." : "PHP modulis %s neįdiegtas.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP nustatymas \"%s\" nenustatytas į \"%s\".", + "Adjusting this setting in php.ini will make Nextcloud run again" : "Šių nustatymų pritaikymas php.ini faile, iš naujo paleis Nextcloud", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload yra nustatytas į \"%s\" vietoj numatomos reikšmės \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Norėdami išspręsti šią problemą, nustatykite <code>mbstring.func_overload</code> į <code>0</code> savo php.ini faile", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Reikalinga ne mažesnė nei libxml2 2.7.0 versija. Šiuo metu yra instaliuota %s.", "To fix this issue update your libxml2 version and restart your web server." : "Atnaujinkite libxml2 versiją ir perkraukite žiniatinklio serverį, kad sutvarkytumėte šią problemą.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moduliai yra įdiegti, bet jų vis tiek trūksta?", "Please ask your server administrator to restart the web server." : "Kreipkitės į savo sistemos administratorių, kad jis perkrautų žiniatinklio serverį.", "PostgreSQL >= 9 required" : "Reikalinga PostgreSQL >= 9", "Please upgrade your database version" : "Atnaujinkite duomenų bazės versiją.", + "Your data directory is readable by other users" : "Duomenų katalogą gali skaityti kiti naudotojai", + "Check the value of \"datadirectory\" in your configuration" : "Patikrinkite \"duomenų direktorijos\" reikšmę konfigūracijoje.", "Your data directory is invalid" : "Neteisingas duomenų katalogas", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Įsitikinkite, kad šakniniame duomenų kataloge yra yra \".ocdata\" failas.", "Storage unauthorized. %s" : "Saugykla nesankcionuota. %s", "Storage incomplete configuration. %s" : "Nepilna saugyklos konfigūracija. %s", "Storage connection error. %s" : "Saugyklos sujungimo ryšio klaida. %s", "Storage is temporarily not available" : "Saugykla yra laikinai neprieinama", + "Storage connection timeout. %s" : "Sujungimo su saugykla laikas baigėsi. %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tai, dažniausiai, gali būti ištaisyta %ssuteikiant saityno serveriui rašymo prieigą prie konfigūracijos katalogo%s.", "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modulio, kurio id: %s, nėra. Prašome jį įjungti savo programėlių nustatymuose arba susisiekti su savo administratoriumi.", "Server settings" : "Serverio nustatymai", "DB Error: \"%s\"" : "DB klaida: \"%s\"", "Offending command was: \"%s\"" : "Vykdyta komanda buvo: \"%s\"", "You need to enter either an existing account or the administrator." : "Turite prisijungti su egzistuojančia paskyra arba su administratoriumi.", "Offending command was: \"%s\", name: %s, password: %s" : "Vykdyta komanda buvo: \"%s\", name: %s, password: %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%s bendrinimas nepavyko, kadangi teisės viršijo %s suteiktas teises.", + "Setting permissions for %s failed, because the item was not found" : "Teisių nustatymas %s nepavyko, nes elementas nerastas.", + "Cannot clear expiration date. Shares are required to have an expiration date." : "Negalima pašalinti galiojimo datos. Bendrinamai privalo turėti galiojimo datą", "Cannot increase permissions of %s" : "Negalima pridėti papildomų %s leidimų", "Files can't be shared with delete permissions" : "Failai negali būti bendrinami su trynimo leidimu.", "Files can't be shared with create permissions" : "Failai negali būti bendrinami su sukūrimo leidimu.", + "Cannot set expiration date more than %s days in the future" : "Negalima nustatyti galiojimo laiko ilgesnio nei %s dienos.", "Personal" : "Asmeniniai", "Admin" : "Administravimas", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Tai, dažniausiai, gali būti ištaisyta, %s suteikiant saityno serveriui rašymo prieigą prie programų katalogo%s arba uždraudžiant appstore konfigūraciniame kataloge. ", "Cannot create \"data\" directory (%s)" : "Nepavyksta sukurti katalogo \"data\" (%s)", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">Tai, dažniausiai, gali būti ištaisyta, suteikiant saityno serveriui rašymo prieigą prie šakninio katalogo</a>.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Teisės gali būti pataisytos, %s suteikiant saityno serveriui rašymo prieigą prie šakninio katalogo%s. ", "Data directory (%s) is readable by other users" : "Duomenų katalogą (%s) skaito kiti naudotojai", - "Data directory (%s) is invalid" : "Duomenų katalogas (%s) netinkamas." + "Data directory (%s) is invalid" : "Duomenų katalogas (%s) netinkamas.", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Prašau pasitikrinkite, ar duomenų šakninė direktorija turi \".ocdata\" failą." }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/lib/l10n/lt_LT.json b/lib/l10n/lt_LT.json index c1908945c52..93e4486b13d 100644 --- a/lib/l10n/lt_LT.json +++ b/lib/l10n/lt_LT.json @@ -90,8 +90,12 @@ "Share type %s is not valid for %s" : "Bendrinimo tipas %s netinka %s", "Cannot set expiration date. Expiration date is in the past" : "Nepavyko nustatyti galiojimo datos. Galiojimo data yra praėjęs laikas.", "Sharing failed, because the user %s is the original sharer" : "Bendrinimas nepavyko, nes naudotojas %s yra bendrintojas.", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s bendrinimas nepavyko, kadangi teisės viršijo %s suteiktas teises.", "Sharing %s failed, because resharing is not allowed" : "%s bendrinimas nepavyko, nes perskirstymas yra neleidžiamas.", + "Sharing %s failed, because the file could not be found in the file cache" : "%s dalinimasis nepavyko, nes failo nepavyko rasti podelyje. ", "Can’t increase permissions of %s" : "Negalima pridėti papildomų %s leidimų", + "Files can’t be shared with delete permissions" : "Failai negali būti bendrinami su trynimo leidimu.", + "Files can’t be shared with create permissions" : "Failai negali būti bendrinami su sukūrimo leidimu.", "Expiration date is in the past" : "Bendrinimo pabaigos data yra praėjęs laikas", "Can’t set expiration date more than %s days in the future" : "Negalima nustatyti galiojimo laiko ilgesnio nei %s dienos.", "%s shared »%s« with you" : "%s pasidalino »%s« su jumis", @@ -157,6 +161,7 @@ "Login canceled by app" : "Programėlė nutraukė prisijungimo procesą", "No app name specified" : "Nenurodytas programėlės pavadinimas", "App '%s' could not be installed!" : "Nepavyko įdiegti '%s' programėlės!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "Programa \"%s\" negali būti įdiegta, nes nėra įvykdytos: %s", "a safe home for all your data" : "saugūs namai visiems jūsų duomenims", "File is currently busy, please try again later" : "Failas šiuo metu yra užimtas, prašome vėliau pabandyti dar kartą", "Can't read file" : "Nepavyksta perskaityti failo", @@ -167,34 +172,55 @@ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nėra įdiegtos duomenų bazių tvarkyklės (sqlite, mysql, or postgresql)", "Cannot write into \"config\" directory" : "Nepavyksta rašyti į \"config\" katalogą!", "Cannot write into \"apps\" directory" : "Nepavyksta įrašyti į \"apps\" katalogą", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Tai, dažniausiai, gali būti ištaisyta, suteikiant saityno serveriui rašymo prieigą prie programų katalogo arba uždraudžiant appstore konfigūraciniame kataloge. Žiūrėkite %s", "Cannot create \"data\" directory" : "Nepavyksta sukurti katalogo \"data\"", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Tai, dažniausiai, gali būti ištaisyta, suteikiant saityno serveriui rašymo prieigą prie šakninio katalogo. Žiūrėkite %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Teisės gali būti pataisytos, suteikiant saityno serveriui rašymo prieigą prie šakninio katalogo. Žiūrėkite %s", + "Setting locale to %s failed" : "Nepavyko nustatyti vietos %s", "Please install one of these locales on your system and restart your webserver." : "Prašome įdiekite vieną šių lokalių savo sistemoje ir perkraukite žiniatinklio serverį.", "Please ask your server administrator to install the module." : "Kreipkitės į savo sistemos administratorių, kad jis įdiegtų modulį.", "PHP module %s not installed." : "PHP modulis %s neįdiegtas.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP nustatymas \"%s\" nenustatytas į \"%s\".", + "Adjusting this setting in php.ini will make Nextcloud run again" : "Šių nustatymų pritaikymas php.ini faile, iš naujo paleis Nextcloud", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload yra nustatytas į \"%s\" vietoj numatomos reikšmės \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Norėdami išspręsti šią problemą, nustatykite <code>mbstring.func_overload</code> į <code>0</code> savo php.ini faile", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Reikalinga ne mažesnė nei libxml2 2.7.0 versija. Šiuo metu yra instaliuota %s.", "To fix this issue update your libxml2 version and restart your web server." : "Atnaujinkite libxml2 versiją ir perkraukite žiniatinklio serverį, kad sutvarkytumėte šią problemą.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moduliai yra įdiegti, bet jų vis tiek trūksta?", "Please ask your server administrator to restart the web server." : "Kreipkitės į savo sistemos administratorių, kad jis perkrautų žiniatinklio serverį.", "PostgreSQL >= 9 required" : "Reikalinga PostgreSQL >= 9", "Please upgrade your database version" : "Atnaujinkite duomenų bazės versiją.", + "Your data directory is readable by other users" : "Duomenų katalogą gali skaityti kiti naudotojai", + "Check the value of \"datadirectory\" in your configuration" : "Patikrinkite \"duomenų direktorijos\" reikšmę konfigūracijoje.", "Your data directory is invalid" : "Neteisingas duomenų katalogas", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Įsitikinkite, kad šakniniame duomenų kataloge yra yra \".ocdata\" failas.", "Storage unauthorized. %s" : "Saugykla nesankcionuota. %s", "Storage incomplete configuration. %s" : "Nepilna saugyklos konfigūracija. %s", "Storage connection error. %s" : "Saugyklos sujungimo ryšio klaida. %s", "Storage is temporarily not available" : "Saugykla yra laikinai neprieinama", + "Storage connection timeout. %s" : "Sujungimo su saugykla laikas baigėsi. %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tai, dažniausiai, gali būti ištaisyta %ssuteikiant saityno serveriui rašymo prieigą prie konfigūracijos katalogo%s.", "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modulio, kurio id: %s, nėra. Prašome jį įjungti savo programėlių nustatymuose arba susisiekti su savo administratoriumi.", "Server settings" : "Serverio nustatymai", "DB Error: \"%s\"" : "DB klaida: \"%s\"", "Offending command was: \"%s\"" : "Vykdyta komanda buvo: \"%s\"", "You need to enter either an existing account or the administrator." : "Turite prisijungti su egzistuojančia paskyra arba su administratoriumi.", "Offending command was: \"%s\", name: %s, password: %s" : "Vykdyta komanda buvo: \"%s\", name: %s, password: %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%s bendrinimas nepavyko, kadangi teisės viršijo %s suteiktas teises.", + "Setting permissions for %s failed, because the item was not found" : "Teisių nustatymas %s nepavyko, nes elementas nerastas.", + "Cannot clear expiration date. Shares are required to have an expiration date." : "Negalima pašalinti galiojimo datos. Bendrinamai privalo turėti galiojimo datą", "Cannot increase permissions of %s" : "Negalima pridėti papildomų %s leidimų", "Files can't be shared with delete permissions" : "Failai negali būti bendrinami su trynimo leidimu.", "Files can't be shared with create permissions" : "Failai negali būti bendrinami su sukūrimo leidimu.", + "Cannot set expiration date more than %s days in the future" : "Negalima nustatyti galiojimo laiko ilgesnio nei %s dienos.", "Personal" : "Asmeniniai", "Admin" : "Administravimas", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Tai, dažniausiai, gali būti ištaisyta, %s suteikiant saityno serveriui rašymo prieigą prie programų katalogo%s arba uždraudžiant appstore konfigūraciniame kataloge. ", "Cannot create \"data\" directory (%s)" : "Nepavyksta sukurti katalogo \"data\" (%s)", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">Tai, dažniausiai, gali būti ištaisyta, suteikiant saityno serveriui rašymo prieigą prie šakninio katalogo</a>.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Teisės gali būti pataisytos, %s suteikiant saityno serveriui rašymo prieigą prie šakninio katalogo%s. ", "Data directory (%s) is readable by other users" : "Duomenų katalogą (%s) skaito kiti naudotojai", - "Data directory (%s) is invalid" : "Duomenų katalogas (%s) netinkamas." + "Data directory (%s) is invalid" : "Duomenų katalogas (%s) netinkamas.", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Prašau pasitikrinkite, ar duomenų šakninė direktorija turi \".ocdata\" failą." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/lib/l10n/nb.js b/lib/l10n/nb.js index 4ee0de2cc9b..f706f8be447 100644 --- a/lib/l10n/nb.js +++ b/lib/l10n/nb.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Ugyldig bilde", "Avatar image is not square" : "Avatarbilde er ikke firkantet", "today" : "i dag", + "tomorrow" : "I morgen", "yesterday" : "i går", + "_in %n day_::_in %n days_" : ["om én dag","om %n dager"], "_%n day ago_::_%n days ago_" : ["%n dag siden","%n dager siden"], + "next month" : "neste måned", "last month" : "forrige måned", + "_in %n month_::_in %n months_" : ["neste måned","om %n måneder"], "_%n month ago_::_%n months ago_" : ["for %n måned siden","for %n måneder siden"], + "next year" : "neste år", "last year" : "forrige år", + "_in %n year_::_in %n years_" : ["neste år","om %n år"], "_%n year ago_::_%n years ago_" : ["%n år siden","%n år siden"], + "_in %n hour_::_in %n hours_" : ["om %n time","om én timer"], "_%n hour ago_::_%n hours ago_" : ["for %n time siden","for %n timer siden"], + "_in %n minute_::_in %n minutes_" : ["om ett minutt","om %n minutter"], "_%n minute ago_::_%n minutes ago_" : ["for %n minutt siden","for %n minutter siden"], + "in a few seconds" : "om noen sekunder", "seconds ago" : "for få sekunder siden", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul med ID: %s finnes ikke. Skru den på i programinnstillingene eller kontakt en administrator.", "File name is a reserved word" : "Filnavnet er et reservert ord", @@ -84,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Sett et admin-brukernavn.", "Set an admin password." : "Sett et admin-passord.", "Can't create or write into the data directory %s" : "Kan ikke opprette eller skrive i datamappen %s", + "Given database host is invalid and must not contain the port: %s" : "Oppgitt databasevert er ugyldig og kan ikke inneholde porten: %s", "Invalid Federated Cloud ID" : "Ugyldig ID for sammenknyttet sky", "Sharing %s failed, because the backend does not allow shares from type %i" : "Deling av %s mislyktes, fordi tjeneren ikke tillater delinger fra type %i", "Sharing %s failed, because the file does not exist" : "Deling av %s mislyktes, fordi filen ikke eksisterer", @@ -109,7 +119,7 @@ OC.L10N.register( "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Deling av %s mislyktes, fordi tillatelsene går utover tillatelsene som er gitt til %s", "Sharing %s failed, because resharing is not allowed" : "Deling av %s mislyktes, fordi videre-deling ikke er tillatt", "Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling av %s mislyktes, fordi delings-bakenden for %s ikke kunne finne kilden", - "Sharing %s failed, because the file could not be found in the file cache" : "Deling av %s mislyktes, fordi filen ikke ble funnet i fil-mellomlageret", + "Sharing %s failed, because the file could not be found in the file cache" : "Deling av %s mislyktes, fordi filen ikke ble funnet i fil-hurtiglageret", "Can’t increase permissions of %s" : "Kan ikke øke tillatelser for %s", "Files can’t be shared with delete permissions" : "Filer kan ikke deles med tilgang til sletting", "Files can’t be shared with create permissions" : "Filer kan ikke deles med tilgang til opprettelse", @@ -204,7 +214,7 @@ OC.L10N.register( "libxml2 2.7.0 is at least required. Currently %s is installed." : "Krever minst libxml2 2.7.0. Per nå er %s installert.", "To fix this issue update your libxml2 version and restart your web server." : "For å fikse dette problemet, oppdater din libxml2 versjon og omstart vevtjeneren.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Det ser ut til at at PHP er satt opp til å fjerne innebygde doc-blokker. Dette gjør at flere av kjerneapplikasjonene blir utilgjengelige.", - "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av en bufrer/akselerator, som f.eks. Zend OPcache eller eAccelerator.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av hurtiglager/akselerator, som f.eks. Zend OPcache eller eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?", "Please ask your server administrator to restart the web server." : "Be tjener-administratoren om å starte vevtjeneren på nytt.", "PostgreSQL >= 9 required" : "PostgreSQL >= 9 kreves", diff --git a/lib/l10n/nb.json b/lib/l10n/nb.json index d62b5998f73..2ca07638214 100644 --- a/lib/l10n/nb.json +++ b/lib/l10n/nb.json @@ -29,14 +29,23 @@ "Invalid image" : "Ugyldig bilde", "Avatar image is not square" : "Avatarbilde er ikke firkantet", "today" : "i dag", + "tomorrow" : "I morgen", "yesterday" : "i går", + "_in %n day_::_in %n days_" : ["om én dag","om %n dager"], "_%n day ago_::_%n days ago_" : ["%n dag siden","%n dager siden"], + "next month" : "neste måned", "last month" : "forrige måned", + "_in %n month_::_in %n months_" : ["neste måned","om %n måneder"], "_%n month ago_::_%n months ago_" : ["for %n måned siden","for %n måneder siden"], + "next year" : "neste år", "last year" : "forrige år", + "_in %n year_::_in %n years_" : ["neste år","om %n år"], "_%n year ago_::_%n years ago_" : ["%n år siden","%n år siden"], + "_in %n hour_::_in %n hours_" : ["om %n time","om én timer"], "_%n hour ago_::_%n hours ago_" : ["for %n time siden","for %n timer siden"], + "_in %n minute_::_in %n minutes_" : ["om ett minutt","om %n minutter"], "_%n minute ago_::_%n minutes ago_" : ["for %n minutt siden","for %n minutter siden"], + "in a few seconds" : "om noen sekunder", "seconds ago" : "for få sekunder siden", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul med ID: %s finnes ikke. Skru den på i programinnstillingene eller kontakt en administrator.", "File name is a reserved word" : "Filnavnet er et reservert ord", @@ -82,6 +91,7 @@ "Set an admin username." : "Sett et admin-brukernavn.", "Set an admin password." : "Sett et admin-passord.", "Can't create or write into the data directory %s" : "Kan ikke opprette eller skrive i datamappen %s", + "Given database host is invalid and must not contain the port: %s" : "Oppgitt databasevert er ugyldig og kan ikke inneholde porten: %s", "Invalid Federated Cloud ID" : "Ugyldig ID for sammenknyttet sky", "Sharing %s failed, because the backend does not allow shares from type %i" : "Deling av %s mislyktes, fordi tjeneren ikke tillater delinger fra type %i", "Sharing %s failed, because the file does not exist" : "Deling av %s mislyktes, fordi filen ikke eksisterer", @@ -107,7 +117,7 @@ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Deling av %s mislyktes, fordi tillatelsene går utover tillatelsene som er gitt til %s", "Sharing %s failed, because resharing is not allowed" : "Deling av %s mislyktes, fordi videre-deling ikke er tillatt", "Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling av %s mislyktes, fordi delings-bakenden for %s ikke kunne finne kilden", - "Sharing %s failed, because the file could not be found in the file cache" : "Deling av %s mislyktes, fordi filen ikke ble funnet i fil-mellomlageret", + "Sharing %s failed, because the file could not be found in the file cache" : "Deling av %s mislyktes, fordi filen ikke ble funnet i fil-hurtiglageret", "Can’t increase permissions of %s" : "Kan ikke øke tillatelser for %s", "Files can’t be shared with delete permissions" : "Filer kan ikke deles med tilgang til sletting", "Files can’t be shared with create permissions" : "Filer kan ikke deles med tilgang til opprettelse", @@ -202,7 +212,7 @@ "libxml2 2.7.0 is at least required. Currently %s is installed." : "Krever minst libxml2 2.7.0. Per nå er %s installert.", "To fix this issue update your libxml2 version and restart your web server." : "For å fikse dette problemet, oppdater din libxml2 versjon og omstart vevtjeneren.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Det ser ut til at at PHP er satt opp til å fjerne innebygde doc-blokker. Dette gjør at flere av kjerneapplikasjonene blir utilgjengelige.", - "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av en bufrer/akselerator, som f.eks. Zend OPcache eller eAccelerator.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av hurtiglager/akselerator, som f.eks. Zend OPcache eller eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?", "Please ask your server administrator to restart the web server." : "Be tjener-administratoren om å starte vevtjeneren på nytt.", "PostgreSQL >= 9 required" : "PostgreSQL >= 9 kreves", diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index 89a5842b88b..20965576b7b 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin username." : "Ustaw nazwę administratora.", "Set an admin password." : "Ustaw hasło administratora.", "Can't create or write into the data directory %s" : "Nie można tworzyć ani zapisywać w katalogu %s", + "Given database host is invalid and must not contain the port: %s" : "Podany host bazy danych jest nieprawidłowy i nie może zawierać portu: %s", "Invalid Federated Cloud ID" : "Nieprawidłowy ID Stowarzyszonej Chmury", "Sharing %s failed, because the backend does not allow shares from type %i" : "Współdzielenie %s nie udało się, ponieważ backend nie pozwala na współdzielenie takiego typu jak %i.", "Sharing %s failed, because the file does not exist" : "Wspóldzielenie %s nie powiodło się. ponieważ plik nie istnieje", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index 1967561da88..6d4a34b7c6b 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -82,6 +82,7 @@ "Set an admin username." : "Ustaw nazwę administratora.", "Set an admin password." : "Ustaw hasło administratora.", "Can't create or write into the data directory %s" : "Nie można tworzyć ani zapisywać w katalogu %s", + "Given database host is invalid and must not contain the port: %s" : "Podany host bazy danych jest nieprawidłowy i nie może zawierać portu: %s", "Invalid Federated Cloud ID" : "Nieprawidłowy ID Stowarzyszonej Chmury", "Sharing %s failed, because the backend does not allow shares from type %i" : "Współdzielenie %s nie udało się, ponieważ backend nie pozwala na współdzielenie takiego typu jak %i.", "Sharing %s failed, because the file does not exist" : "Wspóldzielenie %s nie powiodło się. ponieważ plik nie istnieje", diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js index 85959121d24..eff10f244f9 100644 --- a/lib/l10n/pt_BR.js +++ b/lib/l10n/pt_BR.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Imagem inválida", "Avatar image is not square" : "A imagem do avatar não é quadrada", "today" : "hoje", + "tomorrow" : "amanhã", "yesterday" : "ontem", + "_in %n day_::_in %n days_" : ["em %n dia","em %n dias"], "_%n day ago_::_%n days ago_" : ["%n dia atrás","%n dias atrás"], + "next month" : "Mês que vem", "last month" : "último mês", + "_in %n month_::_in %n months_" : ["em %n mês","em %n meses"], "_%n month ago_::_%n months ago_" : ["há %n mês atrás","há %n meses atrás"], + "next year" : "ano que vem", "last year" : "último ano", + "_in %n year_::_in %n years_" : ["em %n ano","em %n anos"], "_%n year ago_::_%n years ago_" : ["%n ano atrás","%n anos atrás"], + "_in %n hour_::_in %n hours_" : ["em %n hora","em %n horas"], "_%n hour ago_::_%n hours ago_" : ["há %n hora atrás","há %n horas atrás"], + "_in %n minute_::_in %n minutes_" : ["em %n minuto","em %n minutos"], "_%n minute ago_::_%n minutes ago_" : ["há %n minuto atrás","há %n minutos atrás"], + "in a few seconds" : "Em alguns segundos", "seconds ago" : "segundos atrás", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "O módulo com a ID: %s não existe. Por favor, habilite-o nas configurações de seu aplicativo ou contacte o administrador.", "File name is a reserved word" : "O nome do arquivo é uma palavra reservada", @@ -84,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Defina um nome do usuário administrador.", "Set an admin password." : "Defina uma senha para o administrador.", "Can't create or write into the data directory %s" : "Não foi possível criar ou gravar no diretório de dados %s", + "Given database host is invalid and must not contain the port: %s" : "O host do banco de dados é inválido e não deve conter a porta: %s", "Invalid Federated Cloud ID" : "ID inválida de Nuvem Federada", "Sharing %s failed, because the backend does not allow shares from type %i" : "O compartilhamento %s falhou pois a plataforma de serviço não permite ações de tipo %i", "Sharing %s failed, because the file does not exist" : "Compartilhamento %s falhou pois o arquivo não existe", diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json index b6f9bcbbc0e..e9ed63b4d66 100644 --- a/lib/l10n/pt_BR.json +++ b/lib/l10n/pt_BR.json @@ -29,14 +29,23 @@ "Invalid image" : "Imagem inválida", "Avatar image is not square" : "A imagem do avatar não é quadrada", "today" : "hoje", + "tomorrow" : "amanhã", "yesterday" : "ontem", + "_in %n day_::_in %n days_" : ["em %n dia","em %n dias"], "_%n day ago_::_%n days ago_" : ["%n dia atrás","%n dias atrás"], + "next month" : "Mês que vem", "last month" : "último mês", + "_in %n month_::_in %n months_" : ["em %n mês","em %n meses"], "_%n month ago_::_%n months ago_" : ["há %n mês atrás","há %n meses atrás"], + "next year" : "ano que vem", "last year" : "último ano", + "_in %n year_::_in %n years_" : ["em %n ano","em %n anos"], "_%n year ago_::_%n years ago_" : ["%n ano atrás","%n anos atrás"], + "_in %n hour_::_in %n hours_" : ["em %n hora","em %n horas"], "_%n hour ago_::_%n hours ago_" : ["há %n hora atrás","há %n horas atrás"], + "_in %n minute_::_in %n minutes_" : ["em %n minuto","em %n minutos"], "_%n minute ago_::_%n minutes ago_" : ["há %n minuto atrás","há %n minutos atrás"], + "in a few seconds" : "Em alguns segundos", "seconds ago" : "segundos atrás", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "O módulo com a ID: %s não existe. Por favor, habilite-o nas configurações de seu aplicativo ou contacte o administrador.", "File name is a reserved word" : "O nome do arquivo é uma palavra reservada", @@ -82,6 +91,7 @@ "Set an admin username." : "Defina um nome do usuário administrador.", "Set an admin password." : "Defina uma senha para o administrador.", "Can't create or write into the data directory %s" : "Não foi possível criar ou gravar no diretório de dados %s", + "Given database host is invalid and must not contain the port: %s" : "O host do banco de dados é inválido e não deve conter a porta: %s", "Invalid Federated Cloud ID" : "ID inválida de Nuvem Federada", "Sharing %s failed, because the backend does not allow shares from type %i" : "O compartilhamento %s falhou pois a plataforma de serviço não permite ações de tipo %i", "Sharing %s failed, because the file does not exist" : "Compartilhamento %s falhou pois o arquivo não existe", diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index a5c32da43d1..109c0f66938 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin username." : "Задать имя пользователя для администратора.", "Set an admin password." : "Задать пароль для admin.", "Can't create or write into the data directory %s" : "Невозможно создать или записать в каталог данных %s", + "Given database host is invalid and must not contain the port: %s" : "Узел базы данных указан неверно: он не должен содержать номер порта: %s", "Invalid Federated Cloud ID" : "Неверный ID в объединении облачных хранилищ.", "Sharing %s failed, because the backend does not allow shares from type %i" : "Не удалось поделиться %s, так как механизм хранения не допускает публикации из элементов типа %i", "Sharing %s failed, because the file does not exist" : "Не удалось поделиться %s, файл не существует", diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json index 660469dda56..553aa793810 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -82,6 +82,7 @@ "Set an admin username." : "Задать имя пользователя для администратора.", "Set an admin password." : "Задать пароль для admin.", "Can't create or write into the data directory %s" : "Невозможно создать или записать в каталог данных %s", + "Given database host is invalid and must not contain the port: %s" : "Узел базы данных указан неверно: он не должен содержать номер порта: %s", "Invalid Federated Cloud ID" : "Неверный ID в объединении облачных хранилищ.", "Sharing %s failed, because the backend does not allow shares from type %i" : "Не удалось поделиться %s, так как механизм хранения не допускает публикации из элементов типа %i", "Sharing %s failed, because the file does not exist" : "Не удалось поделиться %s, файл не существует", diff --git a/lib/l10n/sk.js b/lib/l10n/sk.js index 10bdef88995..a3254b2bac6 100644 --- a/lib/l10n/sk.js +++ b/lib/l10n/sk.js @@ -4,6 +4,7 @@ OC.L10N.register( "Cannot write into \"config\" directory!" : "Nie je možné zapisovat do priečinka \"config\"!", "This can usually be fixed by giving the webserver write access to the config directory" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do priečinka s konfiguráciou.", "See %s" : "Pozri %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do adresára s konfiguráciou. Viď %s", "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Súbory aplikácie %$1s nebolo možné úspešne nahradiť. Uistite sa, že verzia je kompatibilná s verziou servera.", "Sample configuration detected" : "Detekovaná bola vzorová konfigurácia", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zistilo sa, že konfigurácia bola skopírovaná zo vzorových súborov. Takáto konfigurácia nie je podporovaná a môže poškodiť vašu inštaláciu. Prečítajte si dokumentáciu pred vykonaním zmien v config.php", @@ -11,6 +12,10 @@ OC.L10N.register( "%1$s, %2$s and %3$s" : "%1$s, %2$s a %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s a %4$s", "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s a %5$s", + "Education Edition" : "Edícia pre výuku", + "Enterprise bundle" : "Enterprise balíček", + "Groupware bundle" : "Balíček groupware", + "Social sharing bundle" : "Balíček sociálneho zdieľania", "PHP %s or higher is required." : "Požadovaná verzia PHP %s alebo vyššia.", "PHP with a version lower than %s is required." : "PHP je vyžadované vo vyššej verzii ako %s.", "%sbit or higher PHP required." : "%sbit alebo vyššie PHP je vyžadované.", @@ -26,15 +31,20 @@ OC.L10N.register( "Invalid image" : "Chybný obrázok", "Avatar image is not square" : "Obrázok avatara nie je štvorcový", "today" : "dnes", + "tomorrow" : "zajtra", "yesterday" : "včera", "_%n day ago_::_%n days ago_" : ["včera","pred %n dňami","pred %n dňami"], + "next month" : "budúci mesiac", "last month" : "minulý mesiac", "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"], + "next year" : "budúci rok", "last year" : "minulý rok", "_%n year ago_::_%n years ago_" : ["vlani","pred %n rokmi","pred %n rokmi"], "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"], "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"], + "in a few seconds" : "o pár sekúnd", "seconds ago" : "pred sekundami", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s ID: %s neexistuje. Povoľte ho prosím vo vašom nastavení aplikácií alebo kontaktujte správcu.", "File name is a reserved word" : "Názov súboru je rezervované slovo.", "File name contains at least one invalid character" : "Názov súboru obsahuje nepovolené znaky.", "File name is too long" : "Meno súboru je veľmi dlhé.", @@ -42,21 +52,35 @@ OC.L10N.register( "Empty filename is not allowed" : "Prázdny názov súboru nie je povolený", "App \"%s\" cannot be installed because appinfo file cannot be read." : "Aplikáciu \"%s\" nie je možné nainštalovať, lebo nebolo možné načítať súbor s informáciami o aplikácií.", "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "Aplikácia \"%s\" nie je kompatibilná s verziou servera, preto nemôže byť nainštalovaná.", + "This is an automatically sent email, please do not reply." : "Toto je automaticky odosielaný e-mail, prosím, neodpovedajte.", "Help" : "Pomoc", "Apps" : "Aplikácie", + "Settings" : "Nastavenia", + "Log out" : "Odhlásiť sa", "Users" : "Používatelia", "APCu" : "APCu", "Redis" : "Redis", + "Basic settings" : "Základné nastavenia", "Sharing" : "Sprístupnenie", + "Security" : "Zabezpečenie", "Encryption" : "Šifrovanie", "Additional settings" : "Ďalšie nastavenia", "Tips & tricks" : "Tipy a triky", + "Personal info" : "Osobné informácie", + "Sync clients" : "Klienti synchronizácie", + "Unlimited" : "Neobmedzené", + "__language_name__" : "Slovenčina", + "Verifying" : "Overovanie", + "Verifying …" : "Overovanie ...", + "Verify" : "Overiť", + "%s enter the database username and name." : "%s zadajte používateľské meno a meno databázy", "%s enter the database username." : "Zadajte používateľské meno %s databázy.", "%s enter the database name." : "Zadajte názov databázy pre %s databázy.", "%s you may not use dots in the database name" : "V názve databázy %s nemôžete používať bodky", "Oracle connection could not be established" : "Nie je možné pripojiť sa k Oracle", "Oracle username and/or password not valid" : "Používateľské meno a/alebo heslo pre Oracle databázu je neplatné", "PostgreSQL username and/or password not valid" : "Používateľské meno a/alebo heslo pre PostgreSQL databázu je neplatné", + "You need to enter details of an existing account." : "Musíte zadať údaje existujúceho účtu.", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X nie je podporovaný a %s nebude správne fungovať na tejto platforme. Použite ho na vlastné riziko!", "For the best results, please consider using a GNU/Linux server instead." : "Pre dosiahnutie najlepších výsledkov, prosím zvážte použitie GNU/Linux servera.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Zdá sa, že táto inštancia %s beží v 32-bitovom prostredí PHP a v php.ini bola nastavená voľba open_basedir. To bude zdrojom problémov so súbormi väčšími ako 4GB a dôrazne sa neodporúča.", @@ -64,6 +88,7 @@ OC.L10N.register( "Set an admin username." : "Zadajte používateľské meno administrátora.", "Set an admin password." : "Zadajte heslo administrátora.", "Can't create or write into the data directory %s" : "Nemožno vytvoriť alebo zapisovať do priečinka dát %s", + "Given database host is invalid and must not contain the port: %s" : "Zadaný hostiteľ databázy je neplatný a nesmie obsahovať port: %s", "Invalid Federated Cloud ID" : "Neplatné združené Cloud ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Sprístupnenie %s zlyhalo, backend nepodporuje typ sprístupnenia %i", "Sharing %s failed, because the file does not exist" : "Nie je možné sprístupniť %s, súbor neexistuje", @@ -90,9 +115,17 @@ OC.L10N.register( "Sharing %s failed, because resharing is not allowed" : "Nie je možné sprístupniť %s ďalším osobám", "Sharing %s failed, because the sharing backend for %s could not find its source" : "Sprístupnenie %s zlyhalo, backend nenašiel zdrojový %s", "Sharing %s failed, because the file could not be found in the file cache" : "Sprístupnenie %s zlyhalo, pretože súbor sa nenachádza vo vyrovnávacej pamäti súborov", + "Can’t increase permissions of %s" : "Nie je možné navýšiť oprávnenia pre %s", + "Files can’t be shared with delete permissions" : "Súbory nie je možné sprístupňovať s oprávneniami na odstránenie", + "Files can’t be shared with create permissions" : "Súbory nie je možné sprístupňovať s oprávneniami na vytváranie", "Expiration date is in the past" : "Dátum konca platnosti je v minulosti", + "Can’t set expiration date more than %s days in the future" : "Nie je možné nastaviť dátum konca platnosti viac ako %s dní v budúcnosti", "%s shared »%s« with you" : "%s vám sprístupnil »%s«", + "%s shared »%s« with you." : "%s vám sprístupnil »%s«", + "Click the button below to open it." : "Pre otvorenie klienta kliknite na tlačítko nižšie.", + "Open »%s«" : "Otvoriť »%s«", "%s via %s" : "%s cez %s", + "The requested share does not exist anymore" : "Požadované sprístupnenie už neexistuje", "Could not find category \"%s\"" : "Nemožno nájsť danú kategóriu \"%s\"", "Sunday" : "Nedeľa", "Monday" : "Pondelok", @@ -142,8 +175,10 @@ OC.L10N.register( "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "V mene používateľa je možné použiť iba nasledovné znaky: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"", "A valid username must be provided" : "Musíte zadať platné používateľské meno", "Username contains whitespace at the beginning or at the end" : "Meno používateľa obsahuje na začiatku, alebo na konci medzeru", + "Username must not consist of dots only" : "Používateľské meno sa nesmie skladať len z bodiek", "A valid password must be provided" : "Musíte zadať platné heslo", "The username is already being used" : "Meno používateľa je už použité", + "Could not create user" : "Nepodarilo sa vytvoriť používateľa", "User disabled" : "Používateľ zakázaný", "Login canceled by app" : "Prihlásenie bolo zrušené aplikáciou", "No app name specified" : "Nešpecifikované meno aplikácie", @@ -159,6 +194,10 @@ OC.L10N.register( "No database drivers (sqlite, mysql, or postgresql) installed." : "Ovládače databázy (sqlite, mysql, alebo postgresql) nie sú nainštalované.", "Cannot write into \"config\" directory" : "Nie je možné zapisovať do priečinka \"config\"", "Cannot write into \"apps\" directory" : "Nie je možné zapisovať do priečinka \"apps\"", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Toto je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do priečinka aplikácií alebo vypnete obchod s aplikáciami v konfiguračnom súbore. Viď %s", + "Cannot create \"data\" directory" : "Nie je možné vytvoriť priečinok \"data\"", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového adresára. Viď %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Oprávnenia je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového priečinka. Viď %s.", "Setting locale to %s failed" : "Nastavenie locale na %s zlyhalo", "Please install one of these locales on your system and restart your webserver." : "Prosím, nainštalujte si aspoň jeden z týchto jazykov so svojho systému a reštartujte webserver.", "Please ask your server administrator to install the module." : "Prosím, požiadajte administrátora vášho servera o inštaláciu modulu.", @@ -176,10 +215,17 @@ OC.L10N.register( "PostgreSQL >= 9 required" : "Vyžadované PostgreSQL >= 9", "Please upgrade your database version" : "Prosím, aktualizujte verziu svojej databázy", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Prosím, zmeňte oprávnenia na 0770, aby tento priečinok nemohli ostatní používatelia otvoriť.", + "Your data directory is readable by other users" : "Váš priečinok s dátami je prístupný na čítanie ostatným používateľom", + "Your data directory must be an absolute path" : "Priečinok s dátami musí byť zadaný ako absolútna cesta", "Check the value of \"datadirectory\" in your configuration" : "Skontrolujte hodnotu \"datadirectory\" vo vašej konfigurácii", + "Your data directory is invalid" : "Priečinok s dátami je neplatný", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Uistite sa, že v koreňovom adresári sa nachádza súbor s názvom \".ocdata\".", "Could not obtain lock type %d on \"%s\"." : "Nepodarilo sa získať zámok typu %d na „%s“.", + "Storage unauthorized. %s" : "Úložisko neoverené. %s", + "Storage incomplete configuration. %s" : "Neplatná konfigurácia úložiska. %s", "Storage connection error. %s" : "Chyba pripojenia k úložisku. %s", "Storage is temporarily not available" : "Úložisko je dočasne nedostupné", + "Storage connection timeout. %s" : "Vypršanie pripojenia k úložisku. %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "To je zvyčajne možné opraviť tým, že %s udelíte webovému serveru oprávnenie na zápis k adresáru s konfiguráciou%s.", "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s ID: %s neexistuje. Povoľte ho prosím vo vašom nastavení aplikácií alebo konaktujte správcu.", "Server settings" : "Nastavenia servera", @@ -190,6 +236,9 @@ OC.L10N.register( "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nastavenie povolení pre %s zlyhalo, pretože povolenia prekračujú povolenia udelené %s", "Setting permissions for %s failed, because the item was not found" : "Nastavenie povolení pre %s zlyhalo, pretože položka sa nenašla", "Cannot clear expiration date. Shares are required to have an expiration date." : "Nemožno vymazať čas expirácie. Pri sprístupnení je čas exspirácie vyžadovaný.", + "Cannot increase permissions of %s" : "Nie je možné navýšiť oprávnenia pre %s", + "Files can't be shared with delete permissions" : "Súbory nie je možné sprístupňovať s oprávneniami na odstránenie", + "Files can't be shared with create permissions" : "Súbory nie je možné sprístupňovať s oprávneniami na vytváranie", "Cannot set expiration date more than %s days in the future" : "Nie je možné nastaviť dátum konca platnosti viac ako %s dní v budúcnosti", "Personal" : "Osobné", "Admin" : "Administrátor", diff --git a/lib/l10n/sk.json b/lib/l10n/sk.json index e85250c1cc3..47374743310 100644 --- a/lib/l10n/sk.json +++ b/lib/l10n/sk.json @@ -2,6 +2,7 @@ "Cannot write into \"config\" directory!" : "Nie je možné zapisovat do priečinka \"config\"!", "This can usually be fixed by giving the webserver write access to the config directory" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do priečinka s konfiguráciou.", "See %s" : "Pozri %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do adresára s konfiguráciou. Viď %s", "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Súbory aplikácie %$1s nebolo možné úspešne nahradiť. Uistite sa, že verzia je kompatibilná s verziou servera.", "Sample configuration detected" : "Detekovaná bola vzorová konfigurácia", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zistilo sa, že konfigurácia bola skopírovaná zo vzorových súborov. Takáto konfigurácia nie je podporovaná a môže poškodiť vašu inštaláciu. Prečítajte si dokumentáciu pred vykonaním zmien v config.php", @@ -9,6 +10,10 @@ "%1$s, %2$s and %3$s" : "%1$s, %2$s a %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s a %4$s", "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s a %5$s", + "Education Edition" : "Edícia pre výuku", + "Enterprise bundle" : "Enterprise balíček", + "Groupware bundle" : "Balíček groupware", + "Social sharing bundle" : "Balíček sociálneho zdieľania", "PHP %s or higher is required." : "Požadovaná verzia PHP %s alebo vyššia.", "PHP with a version lower than %s is required." : "PHP je vyžadované vo vyššej verzii ako %s.", "%sbit or higher PHP required." : "%sbit alebo vyššie PHP je vyžadované.", @@ -24,15 +29,20 @@ "Invalid image" : "Chybný obrázok", "Avatar image is not square" : "Obrázok avatara nie je štvorcový", "today" : "dnes", + "tomorrow" : "zajtra", "yesterday" : "včera", "_%n day ago_::_%n days ago_" : ["včera","pred %n dňami","pred %n dňami"], + "next month" : "budúci mesiac", "last month" : "minulý mesiac", "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"], + "next year" : "budúci rok", "last year" : "minulý rok", "_%n year ago_::_%n years ago_" : ["vlani","pred %n rokmi","pred %n rokmi"], "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"], "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"], + "in a few seconds" : "o pár sekúnd", "seconds ago" : "pred sekundami", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s ID: %s neexistuje. Povoľte ho prosím vo vašom nastavení aplikácií alebo kontaktujte správcu.", "File name is a reserved word" : "Názov súboru je rezervované slovo.", "File name contains at least one invalid character" : "Názov súboru obsahuje nepovolené znaky.", "File name is too long" : "Meno súboru je veľmi dlhé.", @@ -40,21 +50,35 @@ "Empty filename is not allowed" : "Prázdny názov súboru nie je povolený", "App \"%s\" cannot be installed because appinfo file cannot be read." : "Aplikáciu \"%s\" nie je možné nainštalovať, lebo nebolo možné načítať súbor s informáciami o aplikácií.", "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "Aplikácia \"%s\" nie je kompatibilná s verziou servera, preto nemôže byť nainštalovaná.", + "This is an automatically sent email, please do not reply." : "Toto je automaticky odosielaný e-mail, prosím, neodpovedajte.", "Help" : "Pomoc", "Apps" : "Aplikácie", + "Settings" : "Nastavenia", + "Log out" : "Odhlásiť sa", "Users" : "Používatelia", "APCu" : "APCu", "Redis" : "Redis", + "Basic settings" : "Základné nastavenia", "Sharing" : "Sprístupnenie", + "Security" : "Zabezpečenie", "Encryption" : "Šifrovanie", "Additional settings" : "Ďalšie nastavenia", "Tips & tricks" : "Tipy a triky", + "Personal info" : "Osobné informácie", + "Sync clients" : "Klienti synchronizácie", + "Unlimited" : "Neobmedzené", + "__language_name__" : "Slovenčina", + "Verifying" : "Overovanie", + "Verifying …" : "Overovanie ...", + "Verify" : "Overiť", + "%s enter the database username and name." : "%s zadajte používateľské meno a meno databázy", "%s enter the database username." : "Zadajte používateľské meno %s databázy.", "%s enter the database name." : "Zadajte názov databázy pre %s databázy.", "%s you may not use dots in the database name" : "V názve databázy %s nemôžete používať bodky", "Oracle connection could not be established" : "Nie je možné pripojiť sa k Oracle", "Oracle username and/or password not valid" : "Používateľské meno a/alebo heslo pre Oracle databázu je neplatné", "PostgreSQL username and/or password not valid" : "Používateľské meno a/alebo heslo pre PostgreSQL databázu je neplatné", + "You need to enter details of an existing account." : "Musíte zadať údaje existujúceho účtu.", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X nie je podporovaný a %s nebude správne fungovať na tejto platforme. Použite ho na vlastné riziko!", "For the best results, please consider using a GNU/Linux server instead." : "Pre dosiahnutie najlepších výsledkov, prosím zvážte použitie GNU/Linux servera.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Zdá sa, že táto inštancia %s beží v 32-bitovom prostredí PHP a v php.ini bola nastavená voľba open_basedir. To bude zdrojom problémov so súbormi väčšími ako 4GB a dôrazne sa neodporúča.", @@ -62,6 +86,7 @@ "Set an admin username." : "Zadajte používateľské meno administrátora.", "Set an admin password." : "Zadajte heslo administrátora.", "Can't create or write into the data directory %s" : "Nemožno vytvoriť alebo zapisovať do priečinka dát %s", + "Given database host is invalid and must not contain the port: %s" : "Zadaný hostiteľ databázy je neplatný a nesmie obsahovať port: %s", "Invalid Federated Cloud ID" : "Neplatné združené Cloud ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Sprístupnenie %s zlyhalo, backend nepodporuje typ sprístupnenia %i", "Sharing %s failed, because the file does not exist" : "Nie je možné sprístupniť %s, súbor neexistuje", @@ -88,9 +113,17 @@ "Sharing %s failed, because resharing is not allowed" : "Nie je možné sprístupniť %s ďalším osobám", "Sharing %s failed, because the sharing backend for %s could not find its source" : "Sprístupnenie %s zlyhalo, backend nenašiel zdrojový %s", "Sharing %s failed, because the file could not be found in the file cache" : "Sprístupnenie %s zlyhalo, pretože súbor sa nenachádza vo vyrovnávacej pamäti súborov", + "Can’t increase permissions of %s" : "Nie je možné navýšiť oprávnenia pre %s", + "Files can’t be shared with delete permissions" : "Súbory nie je možné sprístupňovať s oprávneniami na odstránenie", + "Files can’t be shared with create permissions" : "Súbory nie je možné sprístupňovať s oprávneniami na vytváranie", "Expiration date is in the past" : "Dátum konca platnosti je v minulosti", + "Can’t set expiration date more than %s days in the future" : "Nie je možné nastaviť dátum konca platnosti viac ako %s dní v budúcnosti", "%s shared »%s« with you" : "%s vám sprístupnil »%s«", + "%s shared »%s« with you." : "%s vám sprístupnil »%s«", + "Click the button below to open it." : "Pre otvorenie klienta kliknite na tlačítko nižšie.", + "Open »%s«" : "Otvoriť »%s«", "%s via %s" : "%s cez %s", + "The requested share does not exist anymore" : "Požadované sprístupnenie už neexistuje", "Could not find category \"%s\"" : "Nemožno nájsť danú kategóriu \"%s\"", "Sunday" : "Nedeľa", "Monday" : "Pondelok", @@ -140,8 +173,10 @@ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "V mene používateľa je možné použiť iba nasledovné znaky: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"", "A valid username must be provided" : "Musíte zadať platné používateľské meno", "Username contains whitespace at the beginning or at the end" : "Meno používateľa obsahuje na začiatku, alebo na konci medzeru", + "Username must not consist of dots only" : "Používateľské meno sa nesmie skladať len z bodiek", "A valid password must be provided" : "Musíte zadať platné heslo", "The username is already being used" : "Meno používateľa je už použité", + "Could not create user" : "Nepodarilo sa vytvoriť používateľa", "User disabled" : "Používateľ zakázaný", "Login canceled by app" : "Prihlásenie bolo zrušené aplikáciou", "No app name specified" : "Nešpecifikované meno aplikácie", @@ -157,6 +192,10 @@ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ovládače databázy (sqlite, mysql, alebo postgresql) nie sú nainštalované.", "Cannot write into \"config\" directory" : "Nie je možné zapisovať do priečinka \"config\"", "Cannot write into \"apps\" directory" : "Nie je možné zapisovať do priečinka \"apps\"", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Toto je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do priečinka aplikácií alebo vypnete obchod s aplikáciami v konfiguračnom súbore. Viď %s", + "Cannot create \"data\" directory" : "Nie je možné vytvoriť priečinok \"data\"", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového adresára. Viď %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Oprávnenia je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového priečinka. Viď %s.", "Setting locale to %s failed" : "Nastavenie locale na %s zlyhalo", "Please install one of these locales on your system and restart your webserver." : "Prosím, nainštalujte si aspoň jeden z týchto jazykov so svojho systému a reštartujte webserver.", "Please ask your server administrator to install the module." : "Prosím, požiadajte administrátora vášho servera o inštaláciu modulu.", @@ -174,10 +213,17 @@ "PostgreSQL >= 9 required" : "Vyžadované PostgreSQL >= 9", "Please upgrade your database version" : "Prosím, aktualizujte verziu svojej databázy", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Prosím, zmeňte oprávnenia na 0770, aby tento priečinok nemohli ostatní používatelia otvoriť.", + "Your data directory is readable by other users" : "Váš priečinok s dátami je prístupný na čítanie ostatným používateľom", + "Your data directory must be an absolute path" : "Priečinok s dátami musí byť zadaný ako absolútna cesta", "Check the value of \"datadirectory\" in your configuration" : "Skontrolujte hodnotu \"datadirectory\" vo vašej konfigurácii", + "Your data directory is invalid" : "Priečinok s dátami je neplatný", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Uistite sa, že v koreňovom adresári sa nachádza súbor s názvom \".ocdata\".", "Could not obtain lock type %d on \"%s\"." : "Nepodarilo sa získať zámok typu %d na „%s“.", + "Storage unauthorized. %s" : "Úložisko neoverené. %s", + "Storage incomplete configuration. %s" : "Neplatná konfigurácia úložiska. %s", "Storage connection error. %s" : "Chyba pripojenia k úložisku. %s", "Storage is temporarily not available" : "Úložisko je dočasne nedostupné", + "Storage connection timeout. %s" : "Vypršanie pripojenia k úložisku. %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "To je zvyčajne možné opraviť tým, že %s udelíte webovému serveru oprávnenie na zápis k adresáru s konfiguráciou%s.", "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s ID: %s neexistuje. Povoľte ho prosím vo vašom nastavení aplikácií alebo konaktujte správcu.", "Server settings" : "Nastavenia servera", @@ -188,6 +234,9 @@ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nastavenie povolení pre %s zlyhalo, pretože povolenia prekračujú povolenia udelené %s", "Setting permissions for %s failed, because the item was not found" : "Nastavenie povolení pre %s zlyhalo, pretože položka sa nenašla", "Cannot clear expiration date. Shares are required to have an expiration date." : "Nemožno vymazať čas expirácie. Pri sprístupnení je čas exspirácie vyžadovaný.", + "Cannot increase permissions of %s" : "Nie je možné navýšiť oprávnenia pre %s", + "Files can't be shared with delete permissions" : "Súbory nie je možné sprístupňovať s oprávneniami na odstránenie", + "Files can't be shared with create permissions" : "Súbory nie je možné sprístupňovať s oprávneniami na vytváranie", "Cannot set expiration date more than %s days in the future" : "Nie je možné nastaviť dátum konca platnosti viac ako %s dní v budúcnosti", "Personal" : "Osobné", "Admin" : "Administrátor", diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js index a90a8cd15cf..6da56da6f74 100644 --- a/lib/l10n/sr.js +++ b/lib/l10n/sr.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Неисправна слика", "Avatar image is not square" : "Слика аватара није квадратна", "today" : "данас", + "tomorrow" : "сутра", "yesterday" : "јуче", + "_in %n day_::_in %n days_" : ["за %n дан","за %n дана","за %n дана"], "_%n day ago_::_%n days ago_" : ["пре %n дан","пре %n дана","пре %n дана"], + "next month" : "следећег месеца", "last month" : "прошлог месеца", + "_in %n month_::_in %n months_" : ["за %n месец","за %n месеца","за %n месеци"], "_%n month ago_::_%n months ago_" : ["пре %n месец","пре %n месеца","пре %n месеци"], + "next year" : "следеће године", "last year" : "прошле године", + "_in %n year_::_in %n years_" : ["за %n годину","за %n године","за %n година"], "_%n year ago_::_%n years ago_" : ["пре %n годину","пре %n године","пре %n година"], + "_in %n hour_::_in %n hours_" : ["за %n сат","за %n сата","за %n сати"], "_%n hour ago_::_%n hours ago_" : ["пре %n сат","пре %n сата","пре %n сати"], + "_in %n minute_::_in %n minutes_" : ["за %n минут","за %n минута","за %n минута"], "_%n minute ago_::_%n minutes ago_" : ["пре %n минут","пре %n минута","пре %n минута"], + "in a few seconds" : "за пар секунди", "seconds ago" : "пре неколико секунди", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Модул са идентификацијом: %s не постоји. Омогућите га у подешавањима апликација или контактирајте администратора.", "File name is a reserved word" : "Назив фајла је резервисана реч", @@ -84,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Поставите име за администратора.", "Set an admin password." : "Поставите лозинку за администратора.", "Can't create or write into the data directory %s" : "Не могу креирати или уписивати у директоријум података %s", + "Given database host is invalid and must not contain the port: %s" : "Задата адреса базе није исправна и не сме да садржи порт: %s", "Invalid Federated Cloud ID" : "Неисправан ИД Здруженог облака", "Sharing %s failed, because the backend does not allow shares from type %i" : "Дељење %s није успело зато што позадина не дозвољава дељење од типа %i", "Sharing %s failed, because the file does not exist" : "Дељење %s није успело зато што фајл не постоји", diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json index 51d96c26337..18d7ead1274 100644 --- a/lib/l10n/sr.json +++ b/lib/l10n/sr.json @@ -29,14 +29,23 @@ "Invalid image" : "Неисправна слика", "Avatar image is not square" : "Слика аватара није квадратна", "today" : "данас", + "tomorrow" : "сутра", "yesterday" : "јуче", + "_in %n day_::_in %n days_" : ["за %n дан","за %n дана","за %n дана"], "_%n day ago_::_%n days ago_" : ["пре %n дан","пре %n дана","пре %n дана"], + "next month" : "следећег месеца", "last month" : "прошлог месеца", + "_in %n month_::_in %n months_" : ["за %n месец","за %n месеца","за %n месеци"], "_%n month ago_::_%n months ago_" : ["пре %n месец","пре %n месеца","пре %n месеци"], + "next year" : "следеће године", "last year" : "прошле године", + "_in %n year_::_in %n years_" : ["за %n годину","за %n године","за %n година"], "_%n year ago_::_%n years ago_" : ["пре %n годину","пре %n године","пре %n година"], + "_in %n hour_::_in %n hours_" : ["за %n сат","за %n сата","за %n сати"], "_%n hour ago_::_%n hours ago_" : ["пре %n сат","пре %n сата","пре %n сати"], + "_in %n minute_::_in %n minutes_" : ["за %n минут","за %n минута","за %n минута"], "_%n minute ago_::_%n minutes ago_" : ["пре %n минут","пре %n минута","пре %n минута"], + "in a few seconds" : "за пар секунди", "seconds ago" : "пре неколико секунди", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Модул са идентификацијом: %s не постоји. Омогућите га у подешавањима апликација или контактирајте администратора.", "File name is a reserved word" : "Назив фајла је резервисана реч", @@ -82,6 +91,7 @@ "Set an admin username." : "Поставите име за администратора.", "Set an admin password." : "Поставите лозинку за администратора.", "Can't create or write into the data directory %s" : "Не могу креирати или уписивати у директоријум података %s", + "Given database host is invalid and must not contain the port: %s" : "Задата адреса базе није исправна и не сме да садржи порт: %s", "Invalid Federated Cloud ID" : "Неисправан ИД Здруженог облака", "Sharing %s failed, because the backend does not allow shares from type %i" : "Дељење %s није успело зато што позадина не дозвољава дељење од типа %i", "Sharing %s failed, because the file does not exist" : "Дељење %s није успело зато што фајл не постоји", diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js index d1ee6307c37..364b64aa550 100644 --- a/lib/l10n/sv.js +++ b/lib/l10n/sv.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin username." : "Ange ett användarnamn för administratören.", "Set an admin password." : "Ange ett administratörslösenord.", "Can't create or write into the data directory %s" : "Kan inte skapa eller skriva till data-katalogen %s", + "Given database host is invalid and must not contain the port: %s" : "Angiven databasvärd är ogiltig och måste innehålla porten: %s", "Invalid Federated Cloud ID" : "Ogiltigt Federerat Moln-ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Misslyckades dela ut %s då backend inte tillåter delningar från typ %i", "Sharing %s failed, because the file does not exist" : "Delning av %s misslyckades på grund av att filen inte existerar", diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json index 40fc9189707..1b599ae3e96 100644 --- a/lib/l10n/sv.json +++ b/lib/l10n/sv.json @@ -82,6 +82,7 @@ "Set an admin username." : "Ange ett användarnamn för administratören.", "Set an admin password." : "Ange ett administratörslösenord.", "Can't create or write into the data directory %s" : "Kan inte skapa eller skriva till data-katalogen %s", + "Given database host is invalid and must not contain the port: %s" : "Angiven databasvärd är ogiltig och måste innehålla porten: %s", "Invalid Federated Cloud ID" : "Ogiltigt Federerat Moln-ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Misslyckades dela ut %s då backend inte tillåter delningar från typ %i", "Sharing %s failed, because the file does not exist" : "Delning av %s misslyckades på grund av att filen inte existerar", diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js index b1d5f60a905..12c64e8b2b1 100644 --- a/lib/l10n/tr.js +++ b/lib/l10n/tr.js @@ -39,7 +39,7 @@ OC.L10N.register( "_%n year ago_::_%n years ago_" : ["%n yıl önce","%n yıl önce"], "_%n hour ago_::_%n hours ago_" : ["%n saat önce","%n saat önce"], "_%n minute ago_::_%n minutes ago_" : ["%n dakika önce","%n dakika önce"], - "seconds ago" : "saniye önce", + "seconds ago" : "saniyeler önce", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "%s kodlu modül bulunamadı. Lütfen uygulamalarınız içinden modülü etkinleştirin ya da sistem yöneticinizle görüşün.", "File name is a reserved word" : "Bu dosya adı sistem kullanıma ayrılmıştır", "File name contains at least one invalid character" : "Dosya adında en az bir geçersiz karakter var", @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin username." : "Bir yönetici kullanıcı adı yazın.", "Set an admin password." : "Bir yönetici parolası yazın.", "Can't create or write into the data directory %s" : "%s veri klasörü oluşturulamadı ya da içine yazılamadı", + "Given database host is invalid and must not contain the port: %s" : "Belirtilen veritabanı sunucusu geçersiz ve şu kapıyı kullanmamalı: %s", "Invalid Federated Cloud ID" : "Birleşmiş Bulut Kimliği Geçersiz", "Sharing %s failed, because the backend does not allow shares from type %i" : "Arka uç %s türündeki paylaşımlara izin vermediğinden %s paylaşılamadı", "Sharing %s failed, because the file does not exist" : "Dosya bulunamadığından %s paylaşılamadı", diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json index a8d82273338..3ed52c7fe26 100644 --- a/lib/l10n/tr.json +++ b/lib/l10n/tr.json @@ -37,7 +37,7 @@ "_%n year ago_::_%n years ago_" : ["%n yıl önce","%n yıl önce"], "_%n hour ago_::_%n hours ago_" : ["%n saat önce","%n saat önce"], "_%n minute ago_::_%n minutes ago_" : ["%n dakika önce","%n dakika önce"], - "seconds ago" : "saniye önce", + "seconds ago" : "saniyeler önce", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "%s kodlu modül bulunamadı. Lütfen uygulamalarınız içinden modülü etkinleştirin ya da sistem yöneticinizle görüşün.", "File name is a reserved word" : "Bu dosya adı sistem kullanıma ayrılmıştır", "File name contains at least one invalid character" : "Dosya adında en az bir geçersiz karakter var", @@ -82,6 +82,7 @@ "Set an admin username." : "Bir yönetici kullanıcı adı yazın.", "Set an admin password." : "Bir yönetici parolası yazın.", "Can't create or write into the data directory %s" : "%s veri klasörü oluşturulamadı ya da içine yazılamadı", + "Given database host is invalid and must not contain the port: %s" : "Belirtilen veritabanı sunucusu geçersiz ve şu kapıyı kullanmamalı: %s", "Invalid Federated Cloud ID" : "Birleşmiş Bulut Kimliği Geçersiz", "Sharing %s failed, because the backend does not allow shares from type %i" : "Arka uç %s türündeki paylaşımlara izin vermediğinden %s paylaşılamadı", "Sharing %s failed, because the file does not exist" : "Dosya bulunamadığından %s paylaşılamadı", diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js index 2a9eb59c28c..fa15a8ea431 100644 --- a/lib/l10n/zh_CN.js +++ b/lib/l10n/zh_CN.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin username." : "请设置一个管理员用户名。", "Set an admin password." : "请设置一个管理员密码。", "Can't create or write into the data directory %s" : "无法创建或写入数据目录 %s", + "Given database host is invalid and must not contain the port: %s" : "给定的数据库主机不正确且不可包含端口:%s", "Invalid Federated Cloud ID" : "无效的联合云ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "分享 %s 失败, 因为后端不允许分享 %i 类型", "Sharing %s failed, because the file does not exist" : "分享 %s 失败, 因为文件不存在.", diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json index 4c27d20aa7b..a9b761c3835 100644 --- a/lib/l10n/zh_CN.json +++ b/lib/l10n/zh_CN.json @@ -82,6 +82,7 @@ "Set an admin username." : "请设置一个管理员用户名。", "Set an admin password." : "请设置一个管理员密码。", "Can't create or write into the data directory %s" : "无法创建或写入数据目录 %s", + "Given database host is invalid and must not contain the port: %s" : "给定的数据库主机不正确且不可包含端口:%s", "Invalid Federated Cloud ID" : "无效的联合云ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "分享 %s 失败, 因为后端不允许分享 %i 类型", "Sharing %s failed, because the file does not exist" : "分享 %s 失败, 因为文件不存在.", diff --git a/lib/private/App/InfoParser.php b/lib/private/App/InfoParser.php index fef8ab7a1e8..40eaaf21bca 100644 --- a/lib/private/App/InfoParser.php +++ b/lib/private/App/InfoParser.php @@ -122,6 +122,21 @@ class InfoParser { if (!array_key_exists('providers', $array['activity'])) { $array['activity']['providers'] = []; } + if (!array_key_exists('settings', $array)) { + $array['settings'] = []; + } + if (!array_key_exists('admin', $array['settings'])) { + $array['settings']['admin'] = []; + } + if (!array_key_exists('admin-section', $array['settings'])) { + $array['settings']['admin-section'] = []; + } + if (!array_key_exists('personal', $array['settings'])) { + $array['settings']['personal'] = []; + } + if (!array_key_exists('personal-section', $array['settings'])) { + $array['settings']['personal-section'] = []; + } if (array_key_exists('types', $array)) { if (is_array($array['types'])) { @@ -165,6 +180,24 @@ class InfoParser { if (isset($array['activity']['providers']['provider']) && is_array($array['activity']['providers']['provider'])) { $array['activity']['providers'] = $array['activity']['providers']['provider']; } + if (isset($array['collaboration']['collaborators']['searchPlugins']['searchPlugin']) + && is_array($array['collaboration']['collaborators']['searchPlugins']['searchPlugin']) + && !isset($array['collaboration']['collaborators']['searchPlugins']['searchPlugin']['class']) + ) { + $array['collaboration']['collaborators']['searchPlugins'] = $array['collaboration']['collaborators']['searchPlugins']['searchPlugin']; + } + if (isset($array['settings']['admin']) && !is_array($array['settings']['admin'])) { + $array['settings']['admin'] = [$array['settings']['admin']]; + } + if (isset($array['settings']['admin-section']) && !is_array($array['settings']['admin-section'])) { + $array['settings']['admin-section'] = [$array['settings']['admin-section']]; + } + if (isset($array['settings']['personal']) && !is_array($array['settings']['personal'])) { + $array['settings']['personal'] = [$array['settings']['personal']]; + } + if (isset($array['settings']['personal-section']) && !is_array($array['settings']['personal-section'])) { + $array['settings']['personal-section'] = [$array['settings']['personal-section']]; + } if(!is_null($this->cache)) { $this->cache->set($fileCacheKey, json_encode($array)); diff --git a/lib/private/Collaboration/Collaborators/GroupPlugin.php b/lib/private/Collaboration/Collaborators/GroupPlugin.php new file mode 100644 index 00000000000..0b2b3d71028 --- /dev/null +++ b/lib/private/Collaboration/Collaborators/GroupPlugin.php @@ -0,0 +1,124 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Collaboration\Collaborators; + +use OCP\Collaboration\Collaborators\ISearchPlugin; +use OCP\Collaboration\Collaborators\ISearchResult; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\IConfig; +use OCP\IGroup; +use OCP\IGroupManager; +use OCP\IUserSession; +use OCP\Share; + +class GroupPlugin implements ISearchPlugin { + protected $shareeEnumeration; + protected $shareWithGroupOnly; + + /** @var IGroupManager */ + private $groupManager; + /** @var IConfig */ + private $config; + /** @var IUserSession */ + private $userSession; + + public function __construct(IConfig $config, IGroupManager $groupManager, IUserSession $userSession) { + $this->groupManager = $groupManager; + $this->config = $config; + $this->userSession = $userSession; + + $this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes'; + $this->shareWithGroupOnly = $this->config->getAppValue('core', 'shareapi_only_share_with_group_members', 'no') === 'yes'; + } + + public function search($search, $limit, $offset, ISearchResult $searchResult) { + $hasMoreResults = false; + $result = ['wide' => [], 'exact' => []]; + + $groups = $this->groupManager->search($search, $limit, $offset); + $groupIds = array_map(function (IGroup $group) { return $group->getGID(); }, $groups); + + if (!$this->shareeEnumeration || sizeof($groups) < $limit) { + $hasMoreResults = true; + } + + $userGroups = []; + if (!empty($groups) && $this->shareWithGroupOnly) { + // Intersect all the groups that match with the groups this user is a member of + $userGroups = $this->groupManager->getUserGroups($this->userSession->getUser()); + $userGroups = array_map(function (IGroup $group) { return $group->getGID(); }, $userGroups); + $groupIds = array_intersect($groupIds, $userGroups); + } + + $lowerSearch = strtolower($search); + foreach ($groups as $group) { + // FIXME: use a more efficient approach + $gid = $group->getGID(); + if (!in_array($gid, $groupIds)) { + continue; + } + if (strtolower($gid) === $lowerSearch || strtolower($group->getDisplayName()) === $lowerSearch) { + $result['exact'][] = [ + 'label' => $group->getDisplayName(), + 'value' => [ + 'shareType' => Share::SHARE_TYPE_GROUP, + 'shareWith' => $gid, + ], + ]; + } else { + $result['wide'][] = [ + 'label' => $group->getDisplayName(), + 'value' => [ + 'shareType' => Share::SHARE_TYPE_GROUP, + 'shareWith' => $gid, + ], + ]; + } + } + + if ($offset === 0 && empty($result['exact'])) { + // On page one we try if the search result has a direct hit on the + // user id and if so, we add that to the exact match list + $group = $this->groupManager->get($search); + if ($group instanceof IGroup && (!$this->shareWithGroupOnly || in_array($group->getGID(), $userGroups))) { + array_push($result['exact'], [ + 'label' => $group->getDisplayName(), + 'value' => [ + 'shareType' => Share::SHARE_TYPE_GROUP, + 'shareWith' => $group->getGID(), + ], + ]); + } + } + + if (!$this->shareeEnumeration) { + $result['wide'] = []; + } + + $type = new SearchResultType('groups'); + $searchResult->addResultSet($type, $result['wide'], $result['exact']); + + return $hasMoreResults; + } +} diff --git a/lib/private/Collaboration/Collaborators/LookupPlugin.php b/lib/private/Collaboration/Collaborators/LookupPlugin.php new file mode 100644 index 00000000000..3a6a0943772 --- /dev/null +++ b/lib/private/Collaboration/Collaborators/LookupPlugin.php @@ -0,0 +1,85 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Collaboration\Collaborators; + + +use OCP\Collaboration\Collaborators\ISearchPlugin; +use OCP\Collaboration\Collaborators\ISearchResult; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\Http\Client\IClientService; +use OCP\IConfig; +use OCP\Share; + +class LookupPlugin implements ISearchPlugin { + + /** @var IConfig */ + private $config; + /** @var IClientService */ + private $clientService; + + public function __construct(IConfig $config, IClientService $clientService) { + $this->config = $config; + $this->clientService = $clientService; + } + + public function search($search, $limit, $offset, ISearchResult $searchResult) { + if ($this->config->getAppValue('files_sharing', 'lookupServerEnabled', 'no') !== 'yes') { + return false; + } + + $lookupServerUrl = $this->config->getSystemValue('lookup_server', 'https://lookup.nextcloud.com'); + $lookupServerUrl = rtrim($lookupServerUrl, '/'); + $result = []; + + try { + $client = $this->clientService->newClient(); + $response = $client->get( + $lookupServerUrl . '/users?search=' . urlencode($search), + [ + 'timeout' => 10, + 'connect_timeout' => 3, + ] + ); + + $body = json_decode($response->getBody(), true); + + foreach ($body as $lookup) { + $result[] = [ + 'label' => $lookup['federationId'], + 'value' => [ + 'shareType' => Share::SHARE_TYPE_REMOTE, + 'shareWith' => $lookup['federationId'], + ], + 'extra' => $lookup, + ]; + } + } catch (\Exception $e) { + } + + $type = new SearchResultType('lookup'); + $searchResult->addResultSet($type, $result, []); + + return false; + } +} diff --git a/lib/private/Collaboration/Collaborators/MailPlugin.php b/lib/private/Collaboration/Collaborators/MailPlugin.php new file mode 100644 index 00000000000..d28bd3692a4 --- /dev/null +++ b/lib/private/Collaboration/Collaborators/MailPlugin.php @@ -0,0 +1,164 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Collaboration\Collaborators; + + +use OCP\Collaboration\Collaborators\ISearchPlugin; +use OCP\Collaboration\Collaborators\ISearchResult; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\Contacts\IManager; +use OCP\Federation\ICloudIdManager; +use OCP\IConfig; +use OCP\Share; + +class MailPlugin implements ISearchPlugin { + protected $shareeEnumeration; + + /** @var IManager */ + private $contactsManager; + /** @var ICloudIdManager */ + private $cloudIdManager; + /** @var IConfig */ + private $config; + + public function __construct(IManager $contactsManager, ICloudIdManager $cloudIdManager, IConfig $config) { + $this->contactsManager = $contactsManager; + $this->cloudIdManager = $cloudIdManager; + $this->config = $config; + + $this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes'; + } + + /** + * @param $search + * @param $limit + * @param $offset + * @param ISearchResult $searchResult + * @return bool + * @since 13.0.0 + */ + public function search($search, $limit, $offset, ISearchResult $searchResult) { + $result = ['wide' => [], 'exact' => []]; + $userType = new SearchResultType('users'); + $emailType = new SearchResultType('emails'); + + // Search in contacts + //@todo Pagination missing + $addressBookContacts = $this->contactsManager->search($search, ['EMAIL', 'FN']); + $lowerSearch = strtolower($search); + foreach ($addressBookContacts as $contact) { + if (isset($contact['EMAIL'])) { + $emailAddresses = $contact['EMAIL']; + if (!is_array($emailAddresses)) { + $emailAddresses = [$emailAddresses]; + } + foreach ($emailAddresses as $emailAddress) { + $exactEmailMatch = strtolower($emailAddress) === $lowerSearch; + + if (isset($contact['isLocalSystemBook'])) { + if ($exactEmailMatch) { + try { + $cloud = $this->cloudIdManager->resolveCloudId($contact['CLOUD'][0]); + } catch (\InvalidArgumentException $e) { + continue; + } + + if (!$searchResult->hasResult($userType, $cloud->getUser())) { + $singleResult = [[ + 'label' => $contact['FN'] . " ($emailAddress)", + 'value' => [ + 'shareType' => Share::SHARE_TYPE_USER, + 'shareWith' => $cloud->getUser(), + ], + ]]; + $searchResult->addResultSet($userType, [], $singleResult); + $searchResult->markExactIdMatch($emailType); + } + return false; + } + + if ($this->shareeEnumeration) { + try { + $cloud = $this->cloudIdManager->resolveCloudId($contact['CLOUD'][0]); + } catch (\InvalidArgumentException $e) { + continue; + } + + if (!$searchResult->hasResult($userType, $cloud->getUser())) { + $singleResult = [[ + 'label' => $contact['FN'] . " ($emailAddress)", + 'value' => [ + 'shareType' => Share::SHARE_TYPE_USER, + 'shareWith' => $cloud->getUser(), + ]], + ]; + $searchResult->addResultSet($userType, $singleResult, []); + } + } + continue; + } + + if ($exactEmailMatch || strtolower($contact['FN']) === $lowerSearch) { + if ($exactEmailMatch) { + $searchResult->markExactIdMatch($emailType); + } + $result['exact'][] = [ + 'label' => $contact['FN'] . " ($emailAddress)", + 'value' => [ + 'shareType' => Share::SHARE_TYPE_EMAIL, + 'shareWith' => $emailAddress, + ], + ]; + } else { + $result['wide'][] = [ + 'label' => $contact['FN'] . " ($emailAddress)", + 'value' => [ + 'shareType' => Share::SHARE_TYPE_EMAIL, + 'shareWith' => $emailAddress, + ], + ]; + } + } + } + } + + if (!$this->shareeEnumeration) { + $result['wide'] = []; + } + + if (!$searchResult->hasExactIdMatch($emailType) && filter_var($search, FILTER_VALIDATE_EMAIL)) { + $result['exact'][] = [ + 'label' => $search, + 'value' => [ + 'shareType' => Share::SHARE_TYPE_EMAIL, + 'shareWith' => $search, + ], + ]; + } + + $searchResult->addResultSet($emailType, $result['wide'], $result['exact']); + + return true; + } +} diff --git a/lib/private/Collaboration/Collaborators/RemotePlugin.php b/lib/private/Collaboration/Collaborators/RemotePlugin.php new file mode 100644 index 00000000000..b17a64e4ff1 --- /dev/null +++ b/lib/private/Collaboration/Collaborators/RemotePlugin.php @@ -0,0 +1,137 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Collaboration\Collaborators; + + +use OCP\Collaboration\Collaborators\ISearchPlugin; +use OCP\Collaboration\Collaborators\ISearchResult; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\Contacts\IManager; +use OCP\Federation\ICloudIdManager; +use OCP\IConfig; +use OCP\Share; + +class RemotePlugin implements ISearchPlugin { + protected $shareeEnumeration; + + /** @var IManager */ + private $contactsManager; + /** @var ICloudIdManager */ + private $cloudIdManager; + /** @var IConfig */ + private $config; + + public function __construct(IManager $contactsManager, ICloudIdManager $cloudIdManager, IConfig $config) { + $this->contactsManager = $contactsManager; + $this->cloudIdManager = $cloudIdManager; + $this->config = $config; + + $this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes'; + } + + public function search($search, $limit, $offset, ISearchResult $searchResult) { + $result = ['wide' => [], 'exact' => []]; + $resultType = new SearchResultType('remotes'); + + // Search in contacts + //@todo Pagination missing + $addressBookContacts = $this->contactsManager->search($search, ['CLOUD', 'FN']); + foreach ($addressBookContacts as $contact) { + if (isset($contact['isLocalSystemBook'])) { + continue; + } + if (isset($contact['CLOUD'])) { + $cloudIds = $contact['CLOUD']; + if (!is_array($cloudIds)) { + $cloudIds = [$cloudIds]; + } + $lowerSearch = strtolower($search); + foreach ($cloudIds as $cloudId) { + try { + list(, $serverUrl) = $this->splitUserRemote($cloudId); + } catch (\InvalidArgumentException $e) { + continue; + } + + if (strtolower($contact['FN']) === $lowerSearch || strtolower($cloudId) === $lowerSearch) { + if (strtolower($cloudId) === $lowerSearch) { + $searchResult->markExactIdMatch($resultType); + } + $result['exact'][] = [ + 'label' => $contact['FN'] . " ($cloudId)", + 'value' => [ + 'shareType' => Share::SHARE_TYPE_REMOTE, + 'shareWith' => $cloudId, + 'server' => $serverUrl, + ], + ]; + } else { + $result['wide'][] = [ + 'label' => $contact['FN'] . " ($cloudId)", + 'value' => [ + 'shareType' => Share::SHARE_TYPE_REMOTE, + 'shareWith' => $cloudId, + 'server' => $serverUrl, + ], + ]; + } + } + } + } + + if (!$this->shareeEnumeration) { + $result['wide'] = []; + } + + if (!$searchResult->hasExactIdMatch($resultType) && $this->cloudIdManager->isValidCloudId($search) && $offset === 0) { + $result['exact'][] = [ + 'label' => $search, + 'value' => [ + 'shareType' => Share::SHARE_TYPE_REMOTE, + 'shareWith' => $search, + ], + ]; + } + + $searchResult->addResultSet($resultType, $result['wide'], $result['exact']); + + return true; + } + + /** + * split user and remote from federated cloud id + * + * @param string $address federated share address + * @return array [user, remoteURL] + * @throws \InvalidArgumentException + */ + public function splitUserRemote($address) { + try { + $cloudId = $this->cloudIdManager->resolveCloudId($address); + return [$cloudId->getUser(), $cloudId->getRemote()]; + } catch (\InvalidArgumentException $e) { + throw new \InvalidArgumentException('Invalid Federated Cloud ID', 0, $e); + } + } +} diff --git a/lib/private/Collaboration/Collaborators/Search.php b/lib/private/Collaboration/Collaborators/Search.php new file mode 100644 index 00000000000..e9b15dd1201 --- /dev/null +++ b/lib/private/Collaboration/Collaborators/Search.php @@ -0,0 +1,89 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Collaboration\Collaborators; + +use OCP\Collaboration\Collaborators\ISearch; +use OCP\Collaboration\Collaborators\ISearchPlugin; +use OCP\Collaboration\Collaborators\ISearchResult; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\IContainer; +use OCP\Share; + +class Search implements ISearch { + /** @var IContainer */ + private $c; + + protected $pluginList = []; + + public function __construct(IContainer $c) { + $this->c = $c; + } + + public function search($search, array $shareTypes, $lookup, $limit, $offset) { + $hasMoreResults = false; + + /** @var ISearchResult $searchResult */ + $searchResult = $this->c->resolve(SearchResult::class); + + foreach ($shareTypes as $type) { + if(!isset($this->pluginList[$type])) { + continue; + } + foreach ($this->pluginList[$type] as $plugin) { + /** @var ISearchPlugin $searchPlugin */ + $searchPlugin = $this->c->resolve($plugin); + $hasMoreResults |= $searchPlugin->search($search, $limit, $offset, $searchResult); + } + } + + // Get from lookup server, not a separate share type + if ($lookup) { + $searchPlugin = $this->c->resolve(LookupPlugin::class); + $hasMoreResults |= $searchPlugin->search($search, $limit, $offset, $searchResult); + } + + // sanitizing, could go into the plugins as well + + // if we have a exact match, either for the federated cloud id or for the + // email address we only return the exact match. It is highly unlikely + // that the exact same email address and federated cloud id exists + $emailType = new SearchResultType('emails'); + $remoteType = new SearchResultType('remotes'); + if($searchResult->hasExactIdMatch($emailType) && !$searchResult->hasExactIdMatch($remoteType)) { + $searchResult->unsetResult($remoteType); + } elseif (!$searchResult->hasExactIdMatch($emailType) && $searchResult->hasExactIdMatch($remoteType)) { + $searchResult->unsetResult($emailType); + } + + return [$searchResult->asArray(), (bool)$hasMoreResults]; + } + + public function registerPlugin(array $pluginInfo) { + $shareType = constant(Share::class . '::' . $pluginInfo['shareType']); + if($shareType === null) { + throw new \InvalidArgumentException('Provided ShareType is invalid'); + } + $this->pluginList[$shareType][] = $pluginInfo['class']; + } +} diff --git a/lib/private/Collaboration/Collaborators/SearchResult.php b/lib/private/Collaboration/Collaborators/SearchResult.php new file mode 100644 index 00000000000..7b32b388203 --- /dev/null +++ b/lib/private/Collaboration/Collaborators/SearchResult.php @@ -0,0 +1,86 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Collaboration\Collaborators; + + +use OCP\Collaboration\Collaborators\ISearchResult; +use OCP\Collaboration\Collaborators\SearchResultType; + +class SearchResult implements ISearchResult { + + protected $result = [ + 'exact' => [], + ]; + + protected $exactIdMatches = []; + + public function addResultSet(SearchResultType $type, array $matches, array $exactMatches = null) { + $type = $type->getLabel(); + if(!isset($this->result[$type])) { + $this->result[$type] = []; + $this->result['exact'][$type] = []; + } + + $this->result[$type] = array_merge($this->result[$type], $matches); + if(is_array($exactMatches)) { + $this->result['exact'][$type] = array_merge($this->result['exact'][$type], $exactMatches); + } + } + + public function markExactIdMatch(SearchResultType $type) { + $this->exactIdMatches[$type->getLabel()] = 1; + } + + public function hasExactIdMatch(SearchResultType$type) { + return isset($this->exactIdMatches[$type->getLabel()]); + } + + public function hasResult(SearchResultType $type, $collaboratorId) { + $type = $type->getLabel(); + if(!isset($this->result[$type])) { + return false; + } + + $resultArrays = [$this->result['exact'][$type], $this->result[$type]]; + foreach($resultArrays as $resultArray) { + if ($resultArray['value']['shareWith'] === $collaboratorId) { + return true; + } + } + + return false; + } + + public function asArray() { + return $this->result; + } + + public function unsetResult(SearchResultType $type) { + $type = $type->getLabel(); + $this->result[$type] = []; + if(isset($this->result['exact'][$type])) { + $this->result['exact'][$type] = []; + } + } +} diff --git a/lib/private/Collaboration/Collaborators/UserPlugin.php b/lib/private/Collaboration/Collaborators/UserPlugin.php new file mode 100644 index 00000000000..86a55aa428f --- /dev/null +++ b/lib/private/Collaboration/Collaborators/UserPlugin.php @@ -0,0 +1,149 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Collaboration\Collaborators; + + +use OCP\Collaboration\Collaborators\ISearchPlugin; +use OCP\Collaboration\Collaborators\ISearchResult; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\IConfig; +use OCP\IGroupManager; +use OCP\IUser; +use OCP\IUserManager; +use OCP\IUserSession; +use OCP\Share; + +class UserPlugin implements ISearchPlugin { + /* @var bool */ + protected $shareWithGroupOnly; + protected $shareeEnumeration; + + /** @var IConfig */ + private $config; + /** @var IGroupManager */ + private $groupManager; + /** @var IUserSession */ + private $userSession; + /** @var IUserManager */ + private $userManager; + + public function __construct(IConfig $config, IUserManager $userManager, IGroupManager $groupManager, IUserSession $userSession) { + $this->config = $config; + + $this->groupManager = $groupManager; + $this->userSession = $userSession; + $this->userManager = $userManager; + + $this->shareWithGroupOnly = $this->config->getAppValue('core', 'shareapi_only_share_with_group_members', 'no') === 'yes'; + $this->shareeEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes'; + } + + public function search($search, $limit, $offset, ISearchResult $searchResult) { + $result = ['wide' => [], 'exact' => []]; + $users = []; + $hasMoreResults = false; + + $userGroups = []; + if ($this->shareWithGroupOnly) { + // Search in all the groups this user is part of + $userGroups = $this->groupManager->getUserGroupIds($this->userSession->getUser()); + foreach ($userGroups as $userGroup) { + $usersTmp = $this->groupManager->displayNamesInGroup($userGroup, $search, $limit, $offset); + foreach ($usersTmp as $uid => $userDisplayName) { + $users[$uid] = $userDisplayName; + } + } + } else { + // Search in all users + $usersTmp = $this->userManager->searchDisplayName($search, $limit, $offset); + + foreach ($usersTmp as $user) { + $users[$user->getUID()] = $user->getDisplayName(); + } + } + + if (!$this->shareeEnumeration || sizeof($users) < $limit) { + $hasMoreResults = true; + } + + $foundUserById = false; + $lowerSearch = strtolower($search); + foreach ($users as $uid => $userDisplayName) { + if (strtolower($uid) === $lowerSearch || strtolower($userDisplayName) === $lowerSearch) { + if (strtolower($uid) === $lowerSearch) { + $foundUserById = true; + } + $result['exact'][] = [ + 'label' => $userDisplayName, + 'value' => [ + 'shareType' => Share::SHARE_TYPE_USER, + 'shareWith' => $uid, + ], + ]; + } else { + $result['wide'][] = [ + 'label' => $userDisplayName, + 'value' => [ + 'shareType' => Share::SHARE_TYPE_USER, + 'shareWith' => $uid, + ], + ]; + } + } + + if ($offset === 0 && !$foundUserById) { + // On page one we try if the search result has a direct hit on the + // user id and if so, we add that to the exact match list + $user = $this->userManager->get($search); + if ($user instanceof IUser) { + $addUser = true; + + if ($this->shareWithGroupOnly) { + // Only add, if we have a common group + $commonGroups = array_intersect($userGroups, $this->groupManager->getUserGroupIds($user)); + $addUser = !empty($commonGroups); + } + + if ($addUser) { + array_push($result['exact'], [ + 'label' => $user->getDisplayName(), + 'value' => [ + 'shareType' => Share::SHARE_TYPE_USER, + 'shareWith' => $user->getUID(), + ], + ]); + } + } + } + + if (!$this->shareeEnumeration) { + $result['wide'] = []; + } + + $type = new SearchResultType('users'); + $searchResult->addResultSet($type, $result['wide'], $result['exact']); + + return $hasMoreResults; + } +} diff --git a/lib/private/DB/ConnectionFactory.php b/lib/private/DB/ConnectionFactory.php index d90d7737d40..8848f6db3b4 100644 --- a/lib/private/DB/ConnectionFactory.php +++ b/lib/private/DB/ConnectionFactory.php @@ -137,6 +137,10 @@ class ConnectionFactory { } unset($additionalConnectionParams['host']); break; + + case 'pgsql': + $additionalConnectionParams['platform'] = new OCPostgreSqlPlatform(); + break; case 'sqlite3': $journalMode = $additionalConnectionParams['sqlite.journal_mode']; $additionalConnectionParams['platform'] = new OCSqlitePlatform(); diff --git a/lib/private/DB/OCPostgreSqlPlatform.php b/lib/private/DB/OCPostgreSqlPlatform.php new file mode 100644 index 00000000000..524a62c2beb --- /dev/null +++ b/lib/private/DB/OCPostgreSqlPlatform.php @@ -0,0 +1,94 @@ +<?php +/** + * @author Victor Dubiniuk <dubiniuk@owncloud.com> + * + * @copyright Copyright (c) 2017, ownCloud GmbH + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program 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, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\DB; + +use Doctrine\DBAL\Platforms\PostgreSqlPlatform; +use Doctrine\DBAL\Schema\ColumnDiff; +use Doctrine\DBAL\Schema\TableDiff; +use Doctrine\DBAL\Types\Type; + +class OCPostgreSqlPlatform extends PostgreSqlPlatform { + + /** + * {@inheritDoc} + */ + public function getAlterTableSQL(TableDiff $diff){ + $queries = parent::getAlterTableSQL($diff); + foreach ($queries as $index => $sql){ + // BIGSERIAL could not be used in statements altering column type + // That's why we replace it with BIGINT + // see https://github.com/owncloud/core/pull/28364#issuecomment-315006853 + if (preg_match('|(ALTER TABLE\s+\S+\s+ALTER\s+\S+\s+TYPE\s+)(BIGSERIAL)|i', $sql, $matches)) { + $alterTable = $matches[1]; + $queries[$index] = $alterTable . 'BIGINT'; + } + + // Changing integer to bigint kills next autoincrement value + // see https://github.com/owncloud/core/pull/28364#issuecomment-315006853 + if (preg_match('|ALTER TABLE\s+(\S+)\s+ALTER\s+(\S+)\s+DROP DEFAULT|i', $sql, $matches)) { + $queryColumnName = $matches[2]; + $columnDiff = $this->findColumnDiffByName($diff, $queryColumnName); + if ($columnDiff && $this->shouldSkipDropDefault($columnDiff)) { + unset($queries[$index]); + continue; + } + } + } + + return $queries; + } + + /** + * We should NOT drop next sequence value if + * - type was changed from INTEGER to BIGINT + * - column keeps an autoincrement + * - default value is kept NULL + * + * @param ColumnDiff $columnDiff + * @return bool + */ + private function shouldSkipDropDefault(ColumnDiff $columnDiff) { + $column = $columnDiff->column; + $fromColumn = $columnDiff->fromColumn; + return $fromColumn->getType()->getName() === Type::INTEGER + && $column->getType()->getName() === Type::BIGINT + && $fromColumn->getDefault() === null + && $column->getDefault() === null + && $fromColumn->getAutoincrement() + && $column->getAutoincrement(); + } + + /** + * @param TableDiff $diff + * @param string $name + * @return ColumnDiff | false + */ + private function findColumnDiffByName(TableDiff $diff, $name) { + foreach ($diff->changedColumns as $columnDiff) { + $oldColumnName = $columnDiff->getOldColumnName()->getQuotedName($this); + if ($oldColumnName === $name) { + return $columnDiff; + } + } + return false; + } +} diff --git a/lib/private/DateTimeFormatter.php b/lib/private/DateTimeFormatter.php index 3d0a4dd620c..7fed5cf26a8 100644 --- a/lib/private/DateTimeFormatter.php +++ b/lib/private/DateTimeFormatter.php @@ -149,6 +149,7 @@ class DateTimeFormatter implements \OCP\IDateTimeFormatter { $l = $this->getLocale($l); $timestamp = $this->getDateTime($timestamp); $timestamp->setTime(0, 0, 0); + if ($baseTimestamp === null) { $baseTimestamp = time(); } @@ -157,19 +158,43 @@ class DateTimeFormatter implements \OCP\IDateTimeFormatter { $dateInterval = $timestamp->diff($baseTimestamp); if ($dateInterval->y == 0 && $dateInterval->m == 0 && $dateInterval->d == 0) { - return (string) $l->t('today'); + return $l->t('today'); } else if ($dateInterval->y == 0 && $dateInterval->m == 0 && $dateInterval->d == 1) { - return (string) $l->t('yesterday'); + if ($timestamp > $baseTimestamp) { + return $l->t('tomorrow'); + } else { + return $l->t('yesterday'); + } } else if ($dateInterval->y == 0 && $dateInterval->m == 0) { - return (string) $l->n('%n day ago', '%n days ago', $dateInterval->d); + if ($timestamp > $baseTimestamp) { + return $l->n('in %n day', 'in %n days', $dateInterval->d); + } else { + return $l->n('%n day ago', '%n days ago', $dateInterval->d); + } } else if ($dateInterval->y == 0 && $dateInterval->m == 1) { - return (string) $l->t('last month'); + if ($timestamp > $baseTimestamp) { + return $l->t('next month'); + } else { + return $l->t('last month'); + } } else if ($dateInterval->y == 0) { - return (string) $l->n('%n month ago', '%n months ago', $dateInterval->m); + if ($timestamp > $baseTimestamp) { + return $l->n('in %n month', 'in %n months', $dateInterval->m); + } else { + return $l->n('%n month ago', '%n months ago', $dateInterval->m); + } } else if ($dateInterval->y == 1) { - return (string) $l->t('last year'); + if ($timestamp > $baseTimestamp) { + return $l->t('next year'); + } else { + return $l->t('last year'); + } + } + if ($timestamp > $baseTimestamp) { + return $l->n('in %n year', 'in %n years', $dateInterval->y); + } else { + return $l->n('%n year ago', '%n years ago', $dateInterval->y); } - return (string) $l->n('%n year ago', '%n years ago', $dateInterval->y); } /** @@ -215,15 +240,27 @@ class DateTimeFormatter implements \OCP\IDateTimeFormatter { $diff = $timestamp->diff($baseTimestamp); if ($diff->y > 0 || $diff->m > 0 || $diff->d > 0) { - return (string) $this->formatDateSpan($timestamp, $baseTimestamp, $l); + return $this->formatDateSpan($timestamp, $baseTimestamp, $l); } if ($diff->h > 0) { - return (string) $l->n('%n hour ago', '%n hours ago', $diff->h); + if ($timestamp > $baseTimestamp) { + return $l->n('in %n hour', 'in %n hours', $diff->h); + } else { + return $l->n('%n hour ago', '%n hours ago', $diff->h); + } } else if ($diff->i > 0) { - return (string) $l->n('%n minute ago', '%n minutes ago', $diff->i); + if ($timestamp > $baseTimestamp) { + return $l->n('in %n minute', 'in %n minutes', $diff->i); + } else { + return $l->n('%n minute ago', '%n minutes ago', $diff->i); + } + } + if ($timestamp > $baseTimestamp) { + return $l->t('in a few seconds'); + } else { + return $l->t('seconds ago'); } - return (string) $l->t('seconds ago'); } /** @@ -274,7 +311,7 @@ class DateTimeFormatter implements \OCP\IDateTimeFormatter { $timeZone = $this->getTimeZone($timeZone); $timestamp = $this->getDateTime($timestamp, $timeZone); - return (string) $l->l($type, $timestamp, array( + return $l->l($type, $timestamp, array( 'width' => $format, )); } diff --git a/lib/private/Files/Mount/CacheMountProvider.php b/lib/private/Files/Mount/CacheMountProvider.php index 14ebb7c5843..782dcffc439 100644 --- a/lib/private/Files/Mount/CacheMountProvider.php +++ b/lib/private/Files/Mount/CacheMountProvider.php @@ -58,10 +58,12 @@ class CacheMountProvider implements IMountProvider { $cacheDir = rtrim($cacheBaseDir, '/') . '/' . $user->getUID(); if (!file_exists($cacheDir)) { mkdir($cacheDir, 0770, true); + mkdir($cacheDir . '/uploads', 0770, true); } return [ - new MountPoint('\OC\Files\Storage\Local', '/' . $user->getUID() . '/cache', ['datadir' => $cacheDir, $loader]) + new MountPoint('\OC\Files\Storage\Local', '/' . $user->getUID() . '/cache', ['datadir' => $cacheDir, $loader]), + new MountPoint('\OC\Files\Storage\Local', '/' . $user->getUID() . '/uploads', ['datadir' => $cacheDir . '/uploads', $loader]) ]; } else { return []; diff --git a/lib/private/Files/ObjectStore/S3ObjectTrait.php b/lib/private/Files/ObjectStore/S3ObjectTrait.php index 3ba4da92b98..6fb12265cb7 100644 --- a/lib/private/Files/ObjectStore/S3ObjectTrait.php +++ b/lib/private/Files/ObjectStore/S3ObjectTrait.php @@ -21,9 +21,13 @@ namespace OC\Files\ObjectStore; +use Aws\Exception\MultipartUploadException; +use Aws\S3\MultipartUploader; use Aws\S3\S3Client; use Psr\Http\Message\StreamInterface; +const S3_UPLOAD_PART_SIZE = 524288000; // 500MB + trait S3ObjectTrait { /** * Returns the connection @@ -60,6 +64,17 @@ trait S3ObjectTrait { * @since 7.0.0 */ function writeObject($urn, $stream) { + $stat = fstat($stream); + + if ($stat['size'] && $stat['size'] < S3_UPLOAD_PART_SIZE) { + $this->singlePartUpload($urn, $stream); + } else { + $this->multiPartUpload($urn, $stream); + } + + } + + protected function singlePartUpload($urn, $stream) { $this->getConnection()->putObject([ 'Bucket' => $this->bucket, 'Key' => $urn, @@ -67,6 +82,35 @@ trait S3ObjectTrait { ]); } + protected function multiPartUpload($urn, $stream) { + $uploader = new MultipartUploader($this->getConnection(), $stream, [ + 'bucket' => $this->bucket, + 'key' => $urn, + 'part_size' => S3_UPLOAD_PART_SIZE + ]); + + $tries = 0; + + do { + try { + $result = $uploader->upload(); + } catch (MultipartUploadException $e) { + \OC::$server->getLogger()->logException($e); + rewind($stream); + $tries++; + + if ($tries < 5) { + $uploader = new MultipartUploader($this->getConnection(), $stream, [ + 'state' => $e->getState() + ]); + } else { + $this->getConnection()->abortMultipartUpload($e->getState()->getId()); + throw $e; + } + } + } while (!isset($result) && $tries < 5); + } + /** * @param string $urn the unified resource name used to identify the object * @return void @@ -79,4 +123,4 @@ trait S3ObjectTrait { 'Key' => $urn ]); } -}
\ No newline at end of file +} diff --git a/lib/private/Mail/EMailTemplate.php b/lib/private/Mail/EMailTemplate.php index da3341b6709..e4e28a9294e 100644 --- a/lib/private/Mail/EMailTemplate.php +++ b/lib/private/Mail/EMailTemplate.php @@ -51,6 +51,8 @@ class EMailTemplate implements IEMailTemplate { protected $data; /** @var string */ + protected $subject = ''; + /** @var string */ protected $htmlBody = ''; /** @var string */ protected $plainBody = ''; @@ -359,6 +361,15 @@ EOF; } /** + * Sets the subject of the email + * + * @param string $subject + */ + public function setSubject($subject) { + $this->subject = $subject; + } + + /** * Adds a header to the email */ public function addHeader() { @@ -596,6 +607,15 @@ EOF; } /** + * Returns the rendered email subject as string + * + * @return string + */ + public function renderSubject() { + return $this->subject; + } + + /** * Returns the rendered HTML email as string * * @return string diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php index 45405157d26..43fdb07b810 100644 --- a/lib/private/Mail/Mailer.php +++ b/lib/private/Mail/Mailer.php @@ -29,6 +29,7 @@ use OCP\IURLGenerator; use OCP\Mail\IEMailTemplate; use OCP\Mail\IMailer; use OCP\ILogger; +use OCP\Mail\IMessage; /** * Class Mailer provides some basic functions to create a mail message that can be used in combination with @@ -84,7 +85,7 @@ class Mailer implements IMailer { /** * Creates a new message object that can be passed to send() * - * @return Message + * @return IMessage */ public function createMessage() { return new Message(new \Swift_Message()); @@ -124,13 +125,13 @@ class Mailer implements IMailer { * Send the specified message. Also sets the from address to the value defined in config.php * if no-one has been passed. * - * @param Message $message Message to send + * @param IMessage|Message $message Message to send * @return string[] Array with failed recipients. Be aware that this depends on the used mail backend and * therefore should be considered * @throws \Exception In case it was not possible to send the message. (for example if an invalid mail address * has been supplied.) */ - public function send(Message $message) { + public function send(IMessage $message) { $debugMode = $this->config->getSystemValue('mail_smtpdebug', false); if (empty($message->getFrom())) { diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index 2d3c49d0ce1..b4d1e4dbe7a 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -23,6 +23,8 @@ namespace OC\Mail; +use OCP\Mail\IEMailTemplate; +use OCP\Mail\IMessage; use Swift_Message; /** @@ -30,7 +32,7 @@ use Swift_Message; * * @package OC\Mail */ -class Message { +class Message implements IMessage { /** @var Swift_Message */ private $swiftMessage; @@ -250,4 +252,15 @@ class Message { $this->swiftMessage->setBody($body, $contentType); return $this; } + + /** + * @param IEMailTemplate $emailTemplate + * @return $this + */ + public function useTemplate(IEMailTemplate $emailTemplate) { + $this->setSubject($emailTemplate->renderSubject()); + $this->setPlainBody($emailTemplate->renderText()); + $this->setHtmlBody($emailTemplate->renderHtml()); + return $this; + } } diff --git a/lib/private/Repair/NC13/RepairInvalidPaths.php b/lib/private/Repair/NC13/RepairInvalidPaths.php index 8e6a4ca0e37..a8ccb9a579f 100644 --- a/lib/private/Repair/NC13/RepairInvalidPaths.php +++ b/lib/private/Repair/NC13/RepairInvalidPaths.php @@ -172,10 +172,18 @@ class RepairInvalidPaths implements IRepairStep { return $count; } - public function run(IOutput $output) { + private function shouldRun() { $versionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0'); - // was added to 12.0.0.30 and 13.0.0.1 - if (version_compare($versionFromBeforeUpdate, '12.0.0.30', '<') || version_compare($versionFromBeforeUpdate, '13.0.0.0', '==')) { + + // was added to 11.0.5.2, 12.0.0.30 and 13.0.0.1 + $shouldRun = version_compare($versionFromBeforeUpdate, '11.0.5.2', '<'); + $shouldRun |= version_compare($versionFromBeforeUpdate, '12.0.0.0', '>=') && version_compare($versionFromBeforeUpdate, '12.0.0.30', '<'); + $shouldRun |= version_compare($versionFromBeforeUpdate, '13.0.0.0', '=='); + return $shouldRun; + } + + public function run(IOutput $output) { + if ($this->shouldRun()) { $count = $this->repair(); $output->info('Repaired ' . $count . ' paths'); diff --git a/lib/private/Server.php b/lib/private/Server.php index a20d9ccfc01..29aee06d896 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -52,6 +52,10 @@ use OC\AppFramework\Http\Request; use OC\AppFramework\Utility\SimpleContainer; use OC\AppFramework\Utility\TimeFactory; use OC\Authentication\LoginCredentials\Store; +use OC\Collaboration\Collaborators\GroupPlugin; +use OC\Collaboration\Collaborators\MailPlugin; +use OC\Collaboration\Collaborators\RemotePlugin; +use OC\Collaboration\Collaborators\UserPlugin; use OC\Command\CronBus; use OC\Contacts\ContactsMenu\ActionFactory; use OC\Diagnostics\EventLogger; @@ -115,6 +119,7 @@ use OCP\Contacts\ContactsMenu\IActionFactory; use OCP\Lock\ILockingProvider; use OCP\RichObjectStrings\IValidator; use OCP\Security\IContentSecurityPolicyManager; +use OCP\Share; use OCP\Share\IShareHelper; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\EventDispatcher\EventDispatcherInterface; @@ -993,6 +998,19 @@ class Server extends ServerContainer implements IServerContainer { }); $this->registerAlias('ShareManager', \OCP\Share\IManager::class); + $this->registerService(\OCP\Collaboration\Collaborators\ISearch::class, function(Server $c) { + $instance = new Collaboration\Collaborators\Search($c); + + // register default plugins + $instance->registerPlugin(['shareType' => 'SHARE_TYPE_USER', 'class' => UserPlugin::class]); + $instance->registerPlugin(['shareType' => 'SHARE_TYPE_GROUP', 'class' => GroupPlugin::class]); + $instance->registerPlugin(['shareType' => 'SHARE_TYPE_EMAIL', 'class' => MailPlugin::class]); + $instance->registerPlugin(['shareType' => 'SHARE_TYPE_REMOTE', 'class' => RemotePlugin::class]); + + return $instance; + }); + $this->registerAlias('CollaboratorSearch', \OCP\Collaboration\Collaborators\ISearch::class); + $this->registerService('SettingsManager', function (Server $c) { $manager = new \OC\Settings\Manager( $c->getLogger(), @@ -1777,6 +1795,13 @@ class Server extends ServerContainer implements IServerContainer { } /** + * @return \OCP\Collaboration\Collaborators\ISearch + */ + public function getCollaboratorSearch() { + return $this->query('CollaboratorSearch'); + } + + /** * Returns the LDAP Provider * * @return \OCP\LDAP\ILDAPProvider diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index 3c5ff5670da..8de72ce314e 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -127,18 +127,26 @@ class Manager implements IManager { * @inheritdoc */ public function setupSettings(array $settings) { - if (isset($settings[IManager::KEY_ADMIN_SECTION])) { - $this->setupSectionEntry($settings[IManager::KEY_ADMIN_SECTION], 'admin'); + if (!empty($settings[IManager::KEY_ADMIN_SECTION])) { + foreach ($settings[IManager::KEY_ADMIN_SECTION] as $className) { + $this->setupSectionEntry($className, 'admin'); + } } - if (isset($settings[IManager::KEY_ADMIN_SETTINGS])) { - $this->setupSettingsEntry($settings[IManager::KEY_ADMIN_SETTINGS], 'admin'); + if (!empty($settings[IManager::KEY_ADMIN_SETTINGS])) { + foreach ($settings[IManager::KEY_ADMIN_SETTINGS] as $className) { + $this->setupSettingsEntry($className, 'admin'); + } } - if (isset($settings[IManager::KEY_PERSONAL_SECTION])) { - $this->setupSectionEntry($settings[IManager::KEY_PERSONAL_SECTION], 'personal'); + if (!empty($settings[IManager::KEY_PERSONAL_SECTION])) { + foreach ($settings[IManager::KEY_PERSONAL_SECTION] as $className) { + $this->setupSectionEntry($className, 'personal'); + } } - if (isset($settings[IManager::KEY_PERSONAL_SETTINGS])) { - $this->setupSettingsEntry($settings[IManager::KEY_PERSONAL_SETTINGS], 'personal'); + if (!empty($settings[IManager::KEY_PERSONAL_SETTINGS])) { + foreach ($settings[IManager::KEY_PERSONAL_SETTINGS] as $className) { + $this->setupSettingsEntry($className, 'personal'); + } } } @@ -153,18 +161,26 @@ class Manager implements IManager { public function onAppDisabled($appId) { $appInfo = \OC_App::getAppInfo($appId); // hello static legacy - if (isset($appInfo['settings'][IManager::KEY_ADMIN_SECTION])) { - $this->mapper->remove(Mapper::TABLE_ADMIN_SECTIONS, trim($appInfo['settings'][IManager::KEY_ADMIN_SECTION], '\\')); + if (!empty($appInfo['settings'][IManager::KEY_ADMIN_SECTION])) { + foreach ($appInfo['settings'][IManager::KEY_ADMIN_SECTION] as $className) { + $this->mapper->remove(Mapper::TABLE_ADMIN_SECTIONS, trim($className, '\\')); + } } - if (isset($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS])) { - $this->mapper->remove(Mapper::TABLE_ADMIN_SETTINGS, trim($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS], '\\')); + if (!empty($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS])) { + foreach ($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS] as $className) { + $this->mapper->remove(Mapper::TABLE_ADMIN_SETTINGS, trim($className, '\\')); + } } - if (isset($appInfo['settings'][IManager::KEY_PERSONAL_SECTION])) { - $this->mapper->remove(Mapper::TABLE_PERSONAL_SECTIONS, trim($appInfo['settings'][IManager::KEY_PERSONAL_SECTION], '\\')); + if (!empty($appInfo['settings'][IManager::KEY_PERSONAL_SECTION])) { + foreach ($appInfo['settings'][IManager::KEY_PERSONAL_SECTION] as $className) { + $this->mapper->remove(Mapper::TABLE_PERSONAL_SECTIONS, trim($className, '\\')); + } } - if (isset($appInfo['settings'][IManager::KEY_PERSONAL_SETTINGS])) { - $this->mapper->remove(Mapper::TABLE_PERSONAL_SETTINGS, trim($appInfo['settings'][IManager::KEY_PERSONAL_SETTINGS], '\\')); + if (!empty($appInfo['settings'][IManager::KEY_PERSONAL_SETTINGS])) { + foreach ($appInfo['settings'][IManager::KEY_PERSONAL_SETTINGS] as $className) { + $this->mapper->remove(Mapper::TABLE_PERSONAL_SETTINGS, trim($className, '\\')); + } } } diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index e92541c0010..389257cf892 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -116,7 +116,7 @@ class PersonalInfo implements ISettings { $parameters = [ 'total_space' => $totalSpace, 'usage' => \OC_Helper::humanFileSize($storageInfo['used']), - 'usage_relative' => $storageInfo['relative'], + 'usage_relative' => round($storageInfo['relative']), 'quota' => $storageInfo['quota'], 'avatarChangeSupported' => $user->canChangeAvatar(), 'lookupServerUploadEnabled' => $lookupServerUploadEnabled, diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index b2e192b8309..42f2170122e 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -702,7 +702,6 @@ class Manager implements IManager { \DateTime $expiration = null) { $initiatorUser = $this->userManager->get($initiator); $initiatorDisplayName = ($initiatorUser instanceof IUser) ? $initiatorUser->getDisplayName() : $initiator; - $subject = $l->t('%s shared »%s« with you', array($initiatorDisplayName, $filename)); $message = $this->mailer->createMessage(); @@ -714,6 +713,7 @@ class Manager implements IManager { 'shareWith' => $shareWith, ]); + $emailTemplate->setSubject($l->t('%s shared »%s« with you', array($initiatorDisplayName, $filename))); $emailTemplate->addHeader(); $emailTemplate->addHeading($l->t('%s shared »%s« with you', [$initiatorDisplayName, $filename]), false); $text = $l->t('%s shared »%s« with you.', [$initiatorDisplayName, $filename]); @@ -750,9 +750,7 @@ class Manager implements IManager { $emailTemplate->addFooter(); } - $message->setSubject($subject); - $message->setPlainBody($emailTemplate->renderText()); - $message->setHtmlBody($emailTemplate->renderHtml()); + $message->useTemplate($emailTemplate); $this->mailer->send($message); } diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php index 24c7a344e00..bd261b05e51 100644 --- a/lib/private/legacy/app.php +++ b/lib/private/legacy/app.php @@ -174,6 +174,20 @@ class OC_App { \OC::$server->getActivityManager()->registerProvider($provider); } } + if (!empty($info['collaboration']['plugins'])) { + // deal with one or many plugin entries + $plugins = isset($info['collaboration']['plugins']['plugin']['@value']) ? + [$info['collaboration']['plugins']['plugin']] : $info['collaboration']['plugins']['plugin']; + foreach ($plugins as $plugin) { + if($plugin['@attributes']['type'] === 'collaborator-search') { + $pluginInfo = [ + 'shareType' => $plugin['@attributes']['share-type'], + 'class' => $plugin['@value'], + ]; + \OC::$server->getCollaboratorSearch()->registerPlugin($pluginInfo); + } + } + } } /** @@ -186,17 +200,25 @@ class OC_App { if(isset(self::$alreadyRegistered[$key])) { return; } + self::$alreadyRegistered[$key] = true; + // Register on PSR-4 composer autoloader $appNamespace = \OC\AppFramework\App::buildAppNamespace($app); \OC::$server->registerNamespace($app, $appNamespace); - \OC::$composerAutoloader->addPsr4($appNamespace . '\\', $path . '/lib/', true); + + if (file_exists($path . '/composer/autoload.php')) { + require_once $path . '/composer/autoload.php'; + } else { + \OC::$composerAutoloader->addPsr4($appNamespace . '\\', $path . '/lib/', true); + // Register on legacy autoloader + \OC::$loader->addValidRoot($path); + } + + // Register Test namespace only when testing if (defined('PHPUNIT_RUN') || defined('CLI_TEST_RUN')) { \OC::$composerAutoloader->addPsr4($appNamespace . '\\Tests\\', $path . '/tests/', true); } - - // Register on legacy autoloader - \OC::$loader->addValidRoot($path); } /** @@ -754,6 +776,8 @@ class OC_App { } } + $apps = array_unique($apps); + return $apps; } diff --git a/lib/public/Collaboration/Collaborators/ISearch.php b/lib/public/Collaboration/Collaborators/ISearch.php new file mode 100644 index 00000000000..281893908ee --- /dev/null +++ b/lib/public/Collaboration/Collaborators/ISearch.php @@ -0,0 +1,50 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\Collaboration\Collaborators; + +/** + * Interface ISearch + * + * @package OCP\Collaboration\Collaborators + * @since 13.0.0 + */ +interface ISearch { + /** + * @param string $search + * @param array $shareTypes + * @param bool $lookup + * @param int $limit + * @param int $offset + * @return array with two elements, 1st ISearchResult as array, 2nd a bool indicating whether more result are available + * @since 13.0.0 + */ + public function search($search, array $shareTypes, $lookup, $limit, $offset); + + /** + * @param array $pluginInfo with keys 'shareType' containing the name of a corresponding constant in \OCP\Share and + * 'class' with the class name of the plugin + * @since 13.0.0 + */ + public function registerPlugin(array $pluginInfo); +} diff --git a/lib/public/Collaboration/Collaborators/ISearchPlugin.php b/lib/public/Collaboration/Collaborators/ISearchPlugin.php new file mode 100644 index 00000000000..bc6fa53799b --- /dev/null +++ b/lib/public/Collaboration/Collaborators/ISearchPlugin.php @@ -0,0 +1,42 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\Collaboration\Collaborators; + +/** + * Interface ISearchPlugin + * + * @package OCP\Collaboration\Collaborators + * @since 13.0.0 + */ +interface ISearchPlugin { + /** + * @param string $search + * @param int $limit + * @param int $offset + * @param ISearchResult $searchResult + * @return bool whether the plugin has more results + * @since 13.0.0 + */ + public function search($search, $limit, $offset, ISearchResult $searchResult); +} diff --git a/lib/public/Collaboration/Collaborators/ISearchResult.php b/lib/public/Collaboration/Collaborators/ISearchResult.php new file mode 100644 index 00000000000..abea5df8598 --- /dev/null +++ b/lib/public/Collaboration/Collaborators/ISearchResult.php @@ -0,0 +1,73 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\Collaboration\Collaborators; + +/** + * Interface ISearchResult + * + * @package OCP\Collaboration\Collaborators + * @since 13.0.0 + */ +interface ISearchResult { + /** + * @param SearchResultType $type + * @param array $matches + * @param array|null $exactMatches + * @since 13.0.0 + */ + public function addResultSet(SearchResultType $type, array $matches, array $exactMatches = null); + + /** + * @param SearchResultType $type + * @param string $collaboratorId + * @return bool + * @since 13.0.0 + */ + public function hasResult(SearchResultType $type, $collaboratorId); + + /** + * @param SearchResultType $type + * @since 13.0.0 + */ + public function unsetResult(SearchResultType $type); + + /** + * @param SearchResultType $type + * @since 13.0.0 + */ + public function markExactIdMatch(SearchResultType $type); + + /** + * @param SearchResultType $type + * @return bool + * @since 13.0.0 + */ + public function hasExactIdMatch(SearchResultType $type); + + /** + * @return array + * @since 13.0.0 + */ + public function asArray(); +} diff --git a/lib/public/Collaboration/Collaborators/SearchResultType.php b/lib/public/Collaboration/Collaborators/SearchResultType.php new file mode 100644 index 00000000000..e4ad888d6e4 --- /dev/null +++ b/lib/public/Collaboration/Collaborators/SearchResultType.php @@ -0,0 +1,73 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\Collaboration\Collaborators; + +/** + * Class SearchResultType + * + * @package OCP\Collaboration\Collaborators + * @since 13.0.0 + */ +class SearchResultType { + /** @var string */ + protected $label; + + /** + * SearchResultType constructor. + * + * @param string $label + * @since 13.0.0 + */ + public function __construct($label) { + $this->label = $this->getValidatedType($label); + } + + /** + * @return string + * @since 13.0.0 + */ + public function getLabel() { + return $this->label; + } + + /** + * @param $type + * @return string + * @throws \InvalidArgumentException + * @since 13.0.0 + */ + protected function getValidatedType($type) { + $type = trim(strval($type)); + + if($type === '') { + throw new \InvalidArgumentException('Type must not be empty'); + } + + if($type === 'exact') { + throw new \InvalidArgumentException('Provided type is a reserved word'); + } + + return $type; + } +} diff --git a/lib/public/Mail/IEMailTemplate.php b/lib/public/Mail/IEMailTemplate.php index 04a3905c2e3..c1766076c44 100644 --- a/lib/public/Mail/IEMailTemplate.php +++ b/lib/public/Mail/IEMailTemplate.php @@ -53,6 +53,15 @@ namespace OCP\Mail; interface IEMailTemplate { /** + * Sets the subject of the email + * + * @param string $subject + * + * @since 13.0.0 + */ + public function setSubject($subject); + + /** * Adds a header to the email * * @since 12.0.0 @@ -131,6 +140,15 @@ interface IEMailTemplate { public function addFooter($text = ''); /** + * Returns the rendered email subject as string + * + * @return string + * + * @since 13.0.0 + */ + public function renderSubject(); + + /** * Returns the rendered HTML email as string * * @return string diff --git a/lib/public/Mail/IMailer.php b/lib/public/Mail/IMailer.php index c283d346745..35189c22a69 100644 --- a/lib/public/Mail/IMailer.php +++ b/lib/public/Mail/IMailer.php @@ -23,7 +23,6 @@ */ namespace OCP\Mail; -use OC\Mail\Message; /** * Class IMailer provides some basic functions to create a mail message that can be used in combination with @@ -34,7 +33,7 @@ use OC\Mail\Message; * $mailer = \OC::$server->getMailer(); * $message = $mailer->createMessage(); * $message->setSubject('Your Subject'); - * $message->setFrom(['cloud@domain.org' => 'ownCloud Notifier']); + * $message->setFrom(['cloud@domain.org' => 'Nextcloud Notifier']); * $message->setTo(['recipient@domain.org' => 'Recipient']); * $message->setPlainBody('The message text'); * $message->setHtmlBody('The <strong>message</strong> text'); @@ -49,7 +48,7 @@ interface IMailer { /** * Creates a new message object that can be passed to send() * - * @return Message + * @return IMessage * @since 8.1.0 */ public function createMessage(); @@ -68,14 +67,14 @@ interface IMailer { * Send the specified message. Also sets the from address to the value defined in config.php * if no-one has been passed. * - * @param Message $message Message to send + * @param IMessage $message Message to send * @return string[] Array with failed recipients. Be aware that this depends on the used mail backend and * therefore should be considered * @throws \Exception In case it was not possible to send the message. (for example if an invalid mail address * has been supplied.) * @since 8.1.0 */ - public function send(Message $message); + public function send(IMessage $message); /** * Checks if an e-mail address is valid diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php new file mode 100644 index 00000000000..20e4ea19c4c --- /dev/null +++ b/lib/public/Mail/IMessage.php @@ -0,0 +1,84 @@ +<?php +/** + * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\Mail; + +/** + * Class Message + * + * @package OCP\Mail + * @since 13.0.0 + */ +interface IMessage { + /** + * Set the from address of this message. + * + * If no "From" address is used \OC\Mail\Mailer will use mail_from_address and mail_domain from config.php + * + * @param array $addresses Example: array('sender@domain.org', 'other@domain.org' => 'A name') + * @return $this + * @since 13.0.0 + */ + public function setFrom(array $addresses); + + /** + * Set the Reply-To address of this message + * + * @param array $addresses + * @return $this + * @since 13.0.0 + */ + public function setReplyTo(array $addresses); + + /** + * Set the to addresses of this message. + * + * @param array $recipients Example: array('recipient@domain.org', 'other@domain.org' => 'A name') + * @return $this + * @since 13.0.0 + */ + public function setTo(array $recipients); + + /** + * Set the CC recipients of this message. + * + * @param array $recipients Example: array('recipient@domain.org', 'other@domain.org' => 'A name') + * @return $this + * @since 13.0.0 + */ + public function setCc(array $recipients); + + /** + * Set the BCC recipients of this message. + * + * @param array $recipients Example: array('recipient@domain.org', 'other@domain.org' => 'A name') + * @return $this + * @since 13.0.0 + */ + public function setBcc(array $recipients); + + /** + * @param IEMailTemplate $emailTemplate + * @return $this + * @since 13.0.0 + */ + public function useTemplate(IEMailTemplate $emailTemplate); +} diff --git a/lib/public/Migration/BigIntMigration.php b/lib/public/Migration/BigIntMigration.php new file mode 100644 index 00000000000..91722671860 --- /dev/null +++ b/lib/public/Migration/BigIntMigration.php @@ -0,0 +1,66 @@ +<?php +/** + * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\Migration; + +use Doctrine\DBAL\Schema\Schema; +use Doctrine\DBAL\Types\Type; + +/** + * @since 13.0.0 + */ +abstract class BigIntMigration extends SimpleMigrationStep { + + /** + * @return array Returns an array with the following structure + * ['table1' => ['column1', 'column2'], ...] + * @since 13.0.0 + */ + abstract protected function getColumnsByTable(); + + /** + * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `Schema` + * @param array $options + * @return null|Schema + * @since 13.0.0 + */ + public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) { + /** @var Schema $schema */ + $schema = $schemaClosure(); + + $tables = $this->getColumnsByTable(); + + foreach ($tables as $tableName => $columns) { + $table = $schema->getTable($tableName); + + foreach ($columns as $columnName) { + $column = $table->getColumn($columnName); + if ($column->getType()->getName() !== Type::BIGINT) { + $column->setType(Type::getType(Type::BIGINT)); + $column->setOptions(['length' => 20]); + } + } + } + + return $schema; + } +} diff --git a/settings/Controller/AppSettingsController.php b/settings/Controller/AppSettingsController.php index ac77b2e7dd6..da59461e5fa 100644 --- a/settings/Controller/AppSettingsController.php +++ b/settings/Controller/AppSettingsController.php @@ -52,6 +52,7 @@ class AppSettingsController extends Controller { const CAT_DISABLED = 1; const CAT_ALL_INSTALLED = 2; const CAT_APP_BUNDLES = 3; + const CAT_UPDATES = 4; /** @var \OCP\IL10N */ private $l10n; @@ -130,8 +131,10 @@ class AppSettingsController extends Controller { private function getAllCategories() { $currentLanguage = substr($this->l10nFactory->findLanguage(), 0, 2); + $updateCount = count($this->getAppsWithUpdates()); $formattedCategories = [ ['id' => self::CAT_ALL_INSTALLED, 'ident' => 'installed', 'displayName' => (string)$this->l10n->t('Your apps')], + ['id' => self::CAT_UPDATES, 'ident' => 'updates', 'displayName' => (string)$this->l10n->t('Updates'), 'counter' => $updateCount], ['id' => self::CAT_ENABLED, 'ident' => 'enabled', 'displayName' => (string)$this->l10n->t('Enabled apps')], ['id' => self::CAT_DISABLED, 'ident' => 'disabled', 'displayName' => (string)$this->l10n->t('Disabled apps')], ['id' => self::CAT_APP_BUNDLES, 'ident' => 'app-bundles', 'displayName' => (string)$this->l10n->t('App bundles')], @@ -273,6 +276,28 @@ class AppSettingsController extends Controller { return $formattedApps; } + private function getAppsWithUpdates() { + $appClass = new \OC_App(); + $apps = $appClass->listAllApps(); + foreach($apps as $key => $app) { + $newVersion = \OC\Installer::isUpdateAvailable($app['id'], $this->appFetcher); + if($newVersion !== false) { + $apps[$key]['update'] = $newVersion; + } else { + unset($apps[$key]); + } + } + usort($apps, function ($a, $b) { + $a = (string)$a['name']; + $b = (string)$b['name']; + if ($a === $b) { + return 0; + } + return ($a < $b) ? -1 : 1; + }); + return $apps; + } + /** * Get all available apps in a category * @@ -301,6 +326,10 @@ class AppSettingsController extends Controller { return ($a < $b) ? -1 : 1; }); break; + // updates + case 'updates': + $apps = $this->getAppsWithUpdates(); + break; // enabled apps case 'enabled': $apps = $appClass->listAllApps(); diff --git a/settings/Controller/CheckSetupController.php b/settings/Controller/CheckSetupController.php index 58de0f4e6d1..151e546e558 100644 --- a/settings/Controller/CheckSetupController.php +++ b/settings/Controller/CheckSetupController.php @@ -214,10 +214,10 @@ class CheckSetupController extends Controller { if(strpos($versionString, 'NSS/') === 0) { try { $firstClient = $this->clientService->newClient(); - $firstClient->get('https://www.owncloud.org/'); + $firstClient->get('https://nextcloud.com/'); $secondClient = $this->clientService->newClient(); - $secondClient->get('https://owncloud.org/'); + $secondClient->get('https://nextcloud.com/'); } catch (ClientException $e) { if($e->getResponse()->getStatusCode() === 400) { return (string) $this->l10n->t('cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably.', ['NSS', $versionString, $features]); diff --git a/settings/Controller/MailSettingsController.php b/settings/Controller/MailSettingsController.php index 974a95618ad..02bd51e843e 100644 --- a/settings/Controller/MailSettingsController.php +++ b/settings/Controller/MailSettingsController.php @@ -151,6 +151,7 @@ class MailSettingsController extends Controller { 'displayname' => $displayName, ]); + $template->setSubject($this->l10n->t('Email setting test')); $template->addHeader(); $template->addHeading($this->l10n->t('Well done, %s!', [$displayName])); $template->addBodyText($this->l10n->t('If you received this email, the email configuration seems to be correct.')); @@ -158,9 +159,7 @@ class MailSettingsController extends Controller { $message = $this->mailer->createMessage(); $message->setTo([$email => $displayName]); - $message->setSubject($this->l10n->t('Email setting test')); - $message->setHtmlBody($template->renderHtml()); - $message->setPlainBody($template->renderText()); + $message->useTemplate($template); $errors = $this->mailer->send($message); if (!empty($errors)) { throw new \RuntimeException($this->l10n->t('Email could not be sent. Check your mail server log')); diff --git a/settings/Hooks.php b/settings/Hooks.php index 6f537796517..59bd7bb905d 100644 --- a/settings/Hooks.php +++ b/settings/Hooks.php @@ -122,6 +122,8 @@ class Hooks { 'emailAddress' => $user->getEMailAddress(), 'instanceUrl' => $instanceUrl, ]); + + $template->setSubject($this->l->t('Password for %1$s changed on %2$s', [$user->getDisplayName(), $instanceUrl])); $template->addHeader(); $template->addHeading($this->l->t('Password changed for %s', [$user->getDisplayName()]), false); $template->addBodyText($text . ' ' . $this->l->t('If you did not request this, please contact an administrator.')); @@ -130,10 +132,7 @@ class Hooks { $message = $this->mailer->createMessage(); $message->setTo([$user->getEMailAddress() => $user->getDisplayName()]); - $message->setSubject($this->l->t('Password for %1$s changed on %2$s', [$user->getDisplayName(), $instanceUrl])); - $message->setBody($template->renderText(), 'text/plain'); - $message->setHtmlBody($template->renderHtml()); - + $message->useTemplate($template); $this->mailer->send($message); } } @@ -193,6 +192,8 @@ class Hooks { 'oldEMailAddress' => $oldMailAddress, 'instanceUrl' => $instanceUrl, ]); + + $template->setSubject($this->l->t('Email address for %1$s changed on %2$s', [$user->getDisplayName(), $instanceUrl])); $template->addHeader(); $template->addHeading($this->l->t('Email address changed for %s', [$user->getDisplayName()]), false); $template->addBodyText($text . ' ' . $this->l->t('If you did not request this, please contact an administrator.')); @@ -204,10 +205,7 @@ class Hooks { $message = $this->mailer->createMessage(); $message->setTo([$oldMailAddress => $user->getDisplayName()]); - $message->setSubject($this->l->t('Email address for %1$s changed on %2$s', [$user->getDisplayName(), $instanceUrl])); - $message->setBody($template->renderText(), 'text/plain'); - $message->setHtmlBody($template->renderHtml()); - + $message->useTemplate($template); $this->mailer->send($message); } } diff --git a/settings/Mailer/NewUserMailHelper.php b/settings/Mailer/NewUserMailHelper.php index c111ffeb4fa..935b3f0e075 100644 --- a/settings/Mailer/NewUserMailHelper.php +++ b/settings/Mailer/NewUserMailHelper.php @@ -124,6 +124,7 @@ class NewUserMailHelper { 'resetTokenGenerated' => $generatePasswordResetToken, ]); + $emailTemplate->setSubject($this->l10n->t('Your %s account was created', [$this->themingDefaults->getName()])); $emailTemplate->addHeader(); if ($displayName === $userId) { $emailTemplate->addHeading($this->l10n->t('Welcome aboard')); @@ -159,10 +160,8 @@ class NewUserMailHelper { IEMailTemplate $emailTemplate) { $message = $this->mailer->createMessage(); $message->setTo([$user->getEMailAddress() => $user->getDisplayName()]); - $message->setSubject($this->l10n->t('Your %s account was created', [$this->themingDefaults->getName()])); - $message->setHtmlBody($emailTemplate->renderHtml()); - $message->setPlainBody($emailTemplate->renderText()); $message->setFrom([$this->fromAddress => $this->themingDefaults->getName()]); + $message->useTemplate($emailTemplate); $this->mailer->send($message); } } diff --git a/settings/css/settings.scss b/settings/css/settings.scss index 8a722896fa5..b6432c5a96e 100644 --- a/settings/css/settings.scss +++ b/settings/css/settings.scss @@ -35,12 +35,13 @@ input { } #avatarform { - > h2 { - position: relative; - } .avatardiv { margin: 10px auto; } + .federationScopeMenu { + /* popover magic fix */ + margin-right: calc(-50% - 7px); + } .warning { width: 100%; } @@ -117,11 +118,11 @@ input { } .icon-federation-menu { - float: right; padding-left: 16px; background-size: 16px; background-position: left 8px; opacity: .3; + margin-left: 10px; cursor: pointer; .icon-triangle-s { @@ -163,12 +164,23 @@ input { &:after { clear: both; } - > div { + &:not(#personal-settings-avatar-container) > div { float: left; width: 300px; + } + > div { h2 { position: relative; margin-bottom: 5px; + display: inline-flex; + flex-wrap: nowrap; + justify-content: space-between; + width: 100%; + > label { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + } } > form span { &[class^="icon-checkmark"], &[class^="icon-error"] { @@ -579,42 +591,6 @@ span.usersLastLoginTooltip { .groupsListContainer.hidden { display: none; } - .bubble { - z-index: 1; - right: -6px; - top: auto; - &:after { - right: 5px; - } - } - .popovermenu { - a.menuitem { - height: 20px; - margin: 0; - padding: 0; - line-height: initial; - } - margin-top: 4px; - border-top-right-radius: 3px; - right: 3px; - opacity: 0; - display: block; - visibility: hidden; - transition: opacity 0.1s, visibility 0.1s; - } - tr.active .popovermenu { - opacity: 1; - visibility: visible; - } - .popovermenu > ul.userActionsMenu { - right: 15px; - a { - margin: 5px 0; - span:last-child { - margin-left: 5px; - } - } - } } /* because of accessibility the name cell is <th> - therefore we enforce the black color */ @@ -649,10 +625,24 @@ tr:hover > td { td.userActions { width: 25px; text-align: center; + position: relative; .action { position: relative; top: 3px; } + .toggleUserActions { + border: none; + background-color: rgba(0, 0, 0, 0); + width: 34px; + height: 34px; + margin: 0; + opacity: 0.5; + &:hover, + &:focus { + background-color: transparent; + opacity: 1; + } + } } tr.active td.userActions .action { @@ -683,18 +673,30 @@ input#recoveryPassword { #userlist td.quota { position: relative; width: 10em; + progress.quota-user-progress { + position: absolute; + width: calc(10em + 0px); + margin-top: -7px; + z-index: 0; + margin-left: 1px; + height: 3px; + } } select { &.quota-user { - position: absolute; - left: 0; - top: 0; width: 10em; height: 34px; + z-index: 50; + position: relative; } - &.quota.active { - background: #fff; + + progress.quota-user-progress { + position: absolute; + width: calc(10em + 0px); + margin-top: -7px; + z-index: 0; + margin-left: 1px; + height: 3px; } } @@ -702,20 +704,6 @@ input.userFilter { width: 200px; } -.quota_progress_container { - position: absolute; - left: 0; - top: 0; - width: 10em; - margin: 3px 3px 3px 0; - border-radius: 3px; -} - -.quota_progress { - background-color: #eee; - height: 34px; -} - #newusergroups + input[type='submit'] { position: relative; top: -1px; diff --git a/settings/js/apps.js b/settings/js/apps.js index d5322bf6bd6..6406e37cbcb 100644 --- a/settings/js/apps.js +++ b/settings/js/apps.js @@ -58,8 +58,15 @@ OC.Settings.Apps = OC.Settings.Apps || { type:'GET', success:function (jsondata) { var html = template(jsondata); + var updateCategory = $.grep(jsondata, function(element, index) { + return element.ident === 'updates' + }); $('#apps-categories').html(html); $('#app-category-' + OC.Settings.Apps.State.currentCategory).addClass('active'); + if (updateCategory.length === 1) { + OC.Settings.Apps.State.availableUpdates = updateCategory[0].counter; + OC.Settings.Apps.refreshUpdateCounter(); + } }, complete: function() { $('#app-navigation').removeClass('icon-loading'); @@ -84,7 +91,6 @@ OC.Settings.Apps = OC.Settings.Apps || { $('#app-category-' + OC.Settings.Apps.State.currentCategory).removeClass('active'); $('#app-category-' + categoryId).addClass('active'); OC.Settings.Apps.State.currentCategory = categoryId; - OC.Settings.Apps.State.availableUpdates = 0; this._loadCategoryCall = $.ajax(OC.generateUrl('settings/apps/list?category={categoryId}', { categoryId: categoryId @@ -99,7 +105,7 @@ OC.Settings.Apps = OC.Settings.Apps || { return _.extend({level: 0}, app); }); var source; - if (categoryId === 'enabled' || categoryId === 'disabled' || categoryId === 'installed' || categoryId === 'app-bundles') { + if (categoryId === 'enabled' || categoryId === 'updates' || categoryId === 'disabled' || categoryId === 'installed' || categoryId === 'app-bundles') { source = $("#app-template-installed").html(); $('#apps-list').addClass('installed'); } else { @@ -113,13 +119,16 @@ OC.Settings.Apps = OC.Settings.Apps || { appList.sort(function (a, b) { if (a.active !== b.active) { return (a.active ? -1 : 1) - } else { - return OC.Util.naturalSortCompare(a.name, b.name); } + if (a.update !== b.update) { + return (a.update ? -1 : 1) + } + return OC.Util.naturalSortCompare(a.name, b.name); }); } var firstExperimental = false; + var hasNewUpdates = false; _.each(appList, function(app) { if(app.level === 0 && firstExperimental === false) { firstExperimental = true; @@ -129,19 +138,28 @@ OC.Settings.Apps = OC.Settings.Apps || { } if (app.update) { + hasNewUpdates = true; var $update = $('#app-' + app.id + ' .update'); $update.removeClass('hidden'); $update.val(t('settings', 'Update to %s').replace(/%s/g, app.update)); - OC.Settings.Apps.State.availableUpdates++; } }); - - if (OC.Settings.Apps.State.availableUpdates > 0) { - OC.Settings.Apps.State.$updateNotification = OC.Notification.show(n('settings', 'You have %n app update pending', 'You have %n app updates pending', OC.Settings.Apps.State.availableUpdates)); + // reload updates if a list with new updates is loaded + if (hasNewUpdates) { + OC.Settings.Apps.reloadUpdates(); + } else { + // hide update category after all updates are installed + // and the user is switching away from the empty updates view + OC.Settings.Apps.refreshUpdateCounter(); } } else { - $('#apps-list').addClass('hidden'); - $('#apps-list-empty').removeClass('hidden').find('h2').text(t('settings', 'No apps found for your version')); + if (categoryId === 'updates') { + OC.Settings.Apps.showEmptyUpdates(); + } else { + $('#apps-list').addClass('hidden'); + $('#apps-list-empty').removeClass('hidden').find('h2').text(t('settings', 'No apps found for your version')); + $('#app-list-empty-icon').addClass('icon-search').removeClass('icon-download'); + } } $('.enable.needs-download').tooltip({ @@ -515,6 +533,12 @@ OC.Settings.Apps = OC.Settings.Apps || { } }, + showEmptyUpdates: function() { + $('#apps-list').addClass('hidden'); + $('#apps-list-empty').removeClass('hidden').find('h2').text(t('settings', 'No app updates available')); + $('#app-list-empty-icon').removeClass('icon-search').addClass('icon-download'); + }, + updateApp:function(appId, element) { var oldButtonText = element.val(); element.val(t('settings','Updating....')); @@ -537,13 +561,14 @@ OC.Settings.Apps = OC.Settings.Apps || { var $version = $('#app-' + appId + ' .app-version'); $version.text(OC.Settings.Apps.State.apps[appId]['update']); - if (OC.Settings.Apps.State.$updateNotification) { - OC.Notification.hide(OC.Settings.Apps.State.$updateNotification); - } - OC.Settings.Apps.State.availableUpdates--; - if (OC.Settings.Apps.State.availableUpdates > 0) { - OC.Settings.Apps.State.$updateNotification = OC.Notification.show(n('settings', 'You have %n app update pending', 'You have %n app updates pending', OC.Settings.Apps.State.availableUpdates)); + OC.Settings.Apps.refreshUpdateCounter(); + + if (OC.Settings.Apps.State.currentCategory === 'updates') { + $('#app-' + appId).remove(); + if (OC.Settings.Apps.State.availableUpdates === 0) { + OC.Settings.Apps.showEmptyUpdates(); + } } } },'json'); @@ -654,6 +679,33 @@ OC.Settings.Apps = OC.Settings.Apps || { }); }, + reloadUpdates: function() { + if (this._loadUpdatesCall) { + this._loadUpdatesCall.abort(); + } + this._loadUpdatesCall = $.ajax(OC.generateUrl('settings/apps/list?category=updates'), { + type:'GET', + success: function (apps) { + OC.Settings.Apps.State.availableUpdates = apps.apps.length; + OC.Settings.Apps.refreshUpdateCounter(); + } + }); + }, + + refreshUpdateCounter: function() { + var $appCategoryUpdates = $('#app-category-updates'); + var $updateCount = $appCategoryUpdates.find('.app-navigation-entry-utils-counter'); + if (OC.Settings.Apps.State.availableUpdates > 0) { + $updateCount.html(OC.Settings.Apps.State.availableUpdates); + $appCategoryUpdates.show(); + } else { + $updateCount.empty(); + if (OC.Settings.Apps.State.currentCategory !== 'updates') { + $appCategoryUpdates.hide(); + } + } + }, + showErrorMessage: function(appId, message) { $('div#app-'+appId+' .warning') .show() @@ -701,6 +753,7 @@ OC.Settings.Apps = OC.Settings.Apps || { filter: function(query) { var $appList = $('#apps-list'), $emptyList = $('#apps-list-empty'); + $('#app-list-empty-icon').addClass('icon-search').removeClass('icon-download'); $appList.removeClass('hidden'); $appList.find('.section').removeClass('hidden'); $emptyList.addClass('hidden'); diff --git a/settings/js/settings/personalInfo.js b/settings/js/settings/personalInfo.js index 10c92ece8f4..3a4542df748 100644 --- a/settings/js/settings/personalInfo.js +++ b/settings/js/settings/personalInfo.js @@ -128,6 +128,7 @@ function avatarResponseHandler (data) { var $warning = $('#avatarform .warning'); $warning.hide(); if (data.status === "success") { + $('#displayavatar .avatardiv').removeClass('icon-loading'); updateAvatar(); } else if (data.data === "notsquare") { showAvatarCropper(); @@ -180,7 +181,7 @@ $(document).ready(function () { { 'status' : 'error', 'data' : { - 'message' : t('core', 'Unable to change password') + 'message' : t('settings', 'Unable to change password') } } ); @@ -195,7 +196,7 @@ $(document).ready(function () { { 'status' : 'error', 'data' : { - 'message' : t('core', 'Unable to change password') + 'message' : t('settings', 'Unable to change password') } } ); @@ -234,7 +235,7 @@ $(document).ready(function () { ).done(function (data) { var dialog = verify.children('.verification-dialog'); showVerifyDialog($(dialog), data.msg, data.code); - indicator.attr('data-origin-title', t('core', 'Verifying …')); + indicator.attr('data-origin-title', t('settings', 'Verifying …')); indicator.attr('src', OC.imagePath('core', 'actions/verifying.svg')); indicator.data('status', '1'); }); @@ -302,7 +303,7 @@ $(document).ready(function () { }, submit: function(e, data) { $('#displayavatar img').hide(); - $('#displayavatar .avatardiv').addClass('loading'); + $('#displayavatar .avatardiv').addClass('icon-loading'); data.formData = _.extend(data.formData || {}, { requesttoken: OC.requestToken }); @@ -379,11 +380,11 @@ $(document).ready(function () { $('#pass2').strengthify({ zxcvbn: OC.linkTo('core','vendor/zxcvbn/dist/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') + t('settings', 'Very weak password'), + t('settings', 'Weak password'), + t('settings', 'So-so password'), + t('settings', 'Good password'), + t('settings', 'Strong password') ], drawTitles: true, }); diff --git a/settings/js/users/users.js b/settings/js/users/users.js index 6fb74e1ba63..4a4faf13ec7 100644 --- a/settings/js/users/users.js +++ b/settings/js/users/users.js @@ -571,7 +571,12 @@ var UserList = { //asymptotic curve approaching 50% at 10GB to visualize used stace with infinite quota usedQuota = 95 * (1 - (1 / (usedInGB + 1))); } - $tr.find('.quota_progress').width(usedQuota + '%'); + $tr.find('.quota-user-progress').val( isNaN(usedQuota) ? 0 : usedQuota ); + if (usedQuota > 80) { + $tr.find('.quota-user-progress').addClass('warn'); + } else { + $tr.find('.quota-user-progress').removeClass('warn'); + } }, /** @@ -950,9 +955,12 @@ $(document).ready(function () { if ($tr.is('.active')) { $tr.removeClass('active'); + menudiv.removeClass('open'); return; } $('#userlist tr.active').removeClass('active'); + $('#userlist .popovermenu').removeClass('open'); + menudiv.addClass('open'); menudiv.find('.action-togglestate').empty(); if ($tr.data('userEnabled')) { $('.action-togglestate', $td).html('<span class="icon icon-close"></span><span>' + t('settings', 'Disable') + '</span>'); diff --git a/settings/l10n/ast.js b/settings/l10n/ast.js index e53cd4eeeb1..0a1efe53dec 100644 --- a/settings/l10n/ast.js +++ b/settings/l10n/ast.js @@ -57,20 +57,20 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s camudó la to contraseña en %2$s.", "Your password on %s was changed." : "Camudóse la to contraseña en %s", "Your password on %s was reset by an administrator." : "Un alministrador reanició la to contraseña en %s", + "Password for %1$s changed on %2$s" : "La contraseña pa %1$s camudó en %2$s", "Password changed for %s" : "Camudóse la contraseña de %s", "If you did not request this, please contact an administrator." : "Si nun solicitesti esto, por favor contautu con un alministrador.", - "Password for %1$s changed on %2$s" : "La contraseña pa %1$s camudó en %2$s", "%1$s changed your email address on %2$s." : "%1$s camudó la to direición de corréu en %2$s.", "Your email address on %s was changed." : "Camudóse la to direición de corréu en %s", "Your email address on %s was changed by an administrator." : "Un alministrador camudó la to direción de corréu en %s", "The new email address is %s" : "La nueva direición de corréu ye %s", + "Your %s account was created" : "Creóse la to cuenta %s", "Welcome aboard" : "Afáyate en barcu", "Welcome aboard %s" : "Afáyate en barcu %s", "Your username is: %s" : "El to nome d'usuariu ye: %s", "Set your password" : "Afita la to contraseña", "Go to %s" : "Dir a %s", "Install Client" : "Instalar veceru", - "Your %s account was created" : "Creóse la to cuenta %s", "Password confirmation is required" : "Ríquese la contraseña de confirmación", "Couldn't remove app." : "Nun pudo desaniciase l'aplicación.", "Couldn't update app." : "Nun pudo anovase l'aplicación.", @@ -84,7 +84,6 @@ OC.L10N.register( "Official" : "Oficial", "All" : "Toos", "Update to %s" : "Anovar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Tienes %n anovamientu","Tienes %n anovamientos"], "No apps found for your version" : "Nun s'alcontraron anovamientos pa la to versión", "The app will be downloaded from the app store" : "L'aplicación baxaráse dende la tienda d'aplicaciones", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Les aplicaciones oficiales desendólquense dientro la comunidá. Ufren funcionalidá central y tán preparaes pal usu en producción.", @@ -174,7 +173,6 @@ OC.L10N.register( "Developer documentation" : "Documentación de desendolcaores", "View in store" : "Ver na tienda", "Limit to groups" : "Llendar a grupos", - "This app has an update available." : "Esta apllicación tien un anovamientu disponible.", "by %s" : "por %s", "%s-licensed" : "Llicencia %s", "Documentation:" : "Documentación:", @@ -183,6 +181,7 @@ OC.L10N.register( "Report a bug" : "Informar un fallu", "Show description …" : "Amosar descripción...", "Hide description …" : "Anubrir descripción...", + "This app has an update available." : "Esta apllicación tien un anovamientu disponible.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Nun pue instalase esta aplicación porque nun se cumplen les dependencies de darréu:", "Enable only for specific groups" : "Habilitar namái pa grupos específicos", "Common Name" : "Nome común", @@ -340,6 +339,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Nun pudo amestase l'usuariu al grupu %s", "Unable to remove user from group %s" : "Nun pudo desaniciase al usuariu del grupu %s", "Sending..." : "Unviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Tienes %n anovamientu","Tienes %n anovamientos"], "Uninstalling ...." : "Desinstalando ...", "Error while uninstalling app" : "Fallu mientres se desinstalaba l'aplicación", "Uninstall" : "Desinstalar", diff --git a/settings/l10n/ast.json b/settings/l10n/ast.json index ca27c403a58..bd662e49be6 100644 --- a/settings/l10n/ast.json +++ b/settings/l10n/ast.json @@ -55,20 +55,20 @@ "%1$s changed your password on %2$s." : "%1$s camudó la to contraseña en %2$s.", "Your password on %s was changed." : "Camudóse la to contraseña en %s", "Your password on %s was reset by an administrator." : "Un alministrador reanició la to contraseña en %s", + "Password for %1$s changed on %2$s" : "La contraseña pa %1$s camudó en %2$s", "Password changed for %s" : "Camudóse la contraseña de %s", "If you did not request this, please contact an administrator." : "Si nun solicitesti esto, por favor contautu con un alministrador.", - "Password for %1$s changed on %2$s" : "La contraseña pa %1$s camudó en %2$s", "%1$s changed your email address on %2$s." : "%1$s camudó la to direición de corréu en %2$s.", "Your email address on %s was changed." : "Camudóse la to direición de corréu en %s", "Your email address on %s was changed by an administrator." : "Un alministrador camudó la to direción de corréu en %s", "The new email address is %s" : "La nueva direición de corréu ye %s", + "Your %s account was created" : "Creóse la to cuenta %s", "Welcome aboard" : "Afáyate en barcu", "Welcome aboard %s" : "Afáyate en barcu %s", "Your username is: %s" : "El to nome d'usuariu ye: %s", "Set your password" : "Afita la to contraseña", "Go to %s" : "Dir a %s", "Install Client" : "Instalar veceru", - "Your %s account was created" : "Creóse la to cuenta %s", "Password confirmation is required" : "Ríquese la contraseña de confirmación", "Couldn't remove app." : "Nun pudo desaniciase l'aplicación.", "Couldn't update app." : "Nun pudo anovase l'aplicación.", @@ -82,7 +82,6 @@ "Official" : "Oficial", "All" : "Toos", "Update to %s" : "Anovar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Tienes %n anovamientu","Tienes %n anovamientos"], "No apps found for your version" : "Nun s'alcontraron anovamientos pa la to versión", "The app will be downloaded from the app store" : "L'aplicación baxaráse dende la tienda d'aplicaciones", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Les aplicaciones oficiales desendólquense dientro la comunidá. Ufren funcionalidá central y tán preparaes pal usu en producción.", @@ -172,7 +171,6 @@ "Developer documentation" : "Documentación de desendolcaores", "View in store" : "Ver na tienda", "Limit to groups" : "Llendar a grupos", - "This app has an update available." : "Esta apllicación tien un anovamientu disponible.", "by %s" : "por %s", "%s-licensed" : "Llicencia %s", "Documentation:" : "Documentación:", @@ -181,6 +179,7 @@ "Report a bug" : "Informar un fallu", "Show description …" : "Amosar descripción...", "Hide description …" : "Anubrir descripción...", + "This app has an update available." : "Esta apllicación tien un anovamientu disponible.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Nun pue instalase esta aplicación porque nun se cumplen les dependencies de darréu:", "Enable only for specific groups" : "Habilitar namái pa grupos específicos", "Common Name" : "Nome común", @@ -338,6 +337,7 @@ "Unable to add user to group %s" : "Nun pudo amestase l'usuariu al grupu %s", "Unable to remove user from group %s" : "Nun pudo desaniciase al usuariu del grupu %s", "Sending..." : "Unviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Tienes %n anovamientu","Tienes %n anovamientos"], "Uninstalling ...." : "Desinstalando ...", "Error while uninstalling app" : "Fallu mientres se desinstalaba l'aplicación", "Uninstall" : "Desinstalar", diff --git a/settings/l10n/bg.js b/settings/l10n/bg.js index 48239466f4c..0359ad6be63 100644 --- a/settings/l10n/bg.js +++ b/settings/l10n/bg.js @@ -82,13 +82,13 @@ OC.L10N.register( "A valid password must be provided" : "Трябва да бъде зададена валидна парола", "A valid email must be provided" : "Трябва да бъде зададена валидна електронна поща", "Developer documentation" : "Документация за разработчици", - "This app has an update available." : "Това приложение има налично обновление.", "by %s" : "от %s", "Documentation:" : "Документация:", "Visit website" : "Посещаване на интернет страница", "Report a bug" : "Докладване на грешка", "Show description …" : "Покажи описание ...", "Hide description …" : "Скрии описание ...", + "This app has an update available." : "Това приложение има налично обновление.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Приложението не може да бъде инсталирано, защото следните зависимости не са удовлетворени:", "Enable only for specific groups" : "Включи само за определени групи", "Common Name" : "Познато Име", diff --git a/settings/l10n/bg.json b/settings/l10n/bg.json index e5f3e750c9f..d90fcff92d7 100644 --- a/settings/l10n/bg.json +++ b/settings/l10n/bg.json @@ -80,13 +80,13 @@ "A valid password must be provided" : "Трябва да бъде зададена валидна парола", "A valid email must be provided" : "Трябва да бъде зададена валидна електронна поща", "Developer documentation" : "Документация за разработчици", - "This app has an update available." : "Това приложение има налично обновление.", "by %s" : "от %s", "Documentation:" : "Документация:", "Visit website" : "Посещаване на интернет страница", "Report a bug" : "Докладване на грешка", "Show description …" : "Покажи описание ...", "Hide description …" : "Скрии описание ...", + "This app has an update available." : "Това приложение има налично обновление.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Приложението не може да бъде инсталирано, защото следните зависимости не са удовлетворени:", "Enable only for specific groups" : "Включи само за определени групи", "Common Name" : "Познато Име", diff --git a/settings/l10n/ca.js b/settings/l10n/ca.js index c77d8c898c8..4ff0617fcf9 100644 --- a/settings/l10n/ca.js +++ b/settings/l10n/ca.js @@ -29,9 +29,9 @@ OC.L10N.register( "Unable to add group." : "No es pot agregar el grup.", "Unable to delete group." : "No es pot esborrar el grup.", "Invalid SMTP password." : "Contrasenya SMTP no vàlida.", + "Email setting test" : "Prova de l'arranjament del correu", "Well done, %s!" : "Ben fet, %s!", "If you received this email, the email configuration seems to be correct." : "Si heu rebut aquest correu , la configuració del correu electrònic es correcta.", - "Email setting test" : "Prova de l'arranjament del correu", "Email could not be sent. Check your mail server log" : "No s'ha pogut enviar el correu. Revisa el registre del servidor de correu", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Hi ha hagut un problema en enviar el correu. Revisi la seva configuració. (Error: %s)", "You need to set your user email before being able to send test emails." : "Heu d'establir un nom d'usuari abans de poder enviar correus de prova.", @@ -55,15 +55,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s va canviar la teva contrasenya a %2$s.", "Your password on %s was changed." : "La teva contrasenya a %s es va canviar.", "Your password on %s was reset by an administrator." : "La teva contrasenya a %s va ser restablerta per un administrador.", + "Password for %1$s changed on %2$s" : "Contrasenya per %1$s canviada a %2$s", "Password changed for %s" : "Contrasenya canviada per %s", "If you did not request this, please contact an administrator." : "Si vostè no l'ha sol·licitat, si us plau, poseu-vos en contacte amb un administrador.", - "Password for %1$s changed on %2$s" : "Contrasenya per %1$s canviada a %2$s", "%1$s changed your email address on %2$s." : "%1$s va canviar el teu email a %2$s.", "Your email address on %s was changed." : "El teu email a %s es va canviar.", "Your email address on %s was changed by an administrator." : "El teu email a %s es va canviar per un administrador.", + "Email address for %1$s changed on %2$s" : "Adreça d'email per %1$s canviada a %2$s", "Email address changed for %s" : "Adreça d'email canviada per %s", "The new email address is %s" : "La teva adreça d'email és %s", - "Email address for %1$s changed on %2$s" : "Adreça d'email per %1$s canviada a %2$s", + "Your %s account was created" : "S'ha creat el seu compte %s", "Welcome aboard" : "Benvingut a bord", "Welcome aboard %s" : "Benvingut a bord %s", "You now have an %s account, you can add, protect, and share your data." : "Ara tens un compte %s, pot afegir, protegir i compartir les teves dades.", @@ -71,7 +72,6 @@ OC.L10N.register( "Set your password" : "Establir la contrasenya", "Go to %s" : "Anar a %s", "Install Client" : "Instal·lar Client", - "Your %s account was created" : "S'ha creat el seu compte %s", "Password confirmation is required" : "Cal una confirmació de la contrasenya", "Couldn't remove app." : "No s'ha pogut eliminar l'aplicació", "Couldn't update app." : "No s'ha pogut actualitzar l'aplicació.", @@ -85,7 +85,6 @@ OC.L10N.register( "Official" : "Oficial", "All" : "Tots", "Update to %s" : "Actualitzar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Tens %n aplicació pendent d'actualitzar","Tens %n aplicacions pendents d'actualitzar"], "No apps found for your version" : "No s'han trobat aplicacions per la seva versió", "The app will be downloaded from the app store" : "L'app es descarregarà des de la botiga d'apps", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Les aplicacions oficials són desenvolupades per i dins de la comunitat. Ofereixen funcionalitat central i estan preparats per a l'ús de la producció.", @@ -181,7 +180,6 @@ OC.L10N.register( "Developer documentation" : "Documentació para desenvolupadors", "View in store" : "Veure al repositori", "Limit to groups" : "Limitar per grups", - "This app has an update available." : "Aquesta aplicació té una actualització disponible.", "by %s" : "per %s", "Documentation:" : "Documentació:", "User documentation" : "Documentació d'usuari", @@ -190,6 +188,7 @@ OC.L10N.register( "Report a bug" : "Reportar un error", "Show description …" : "Mostrar descripció...", "Hide description …" : "Amagar descripció...", + "This app has an update available." : "Aquesta aplicació té una actualització disponible.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Aquesta aplicació no té cap versió mínima de Nextcloud assignada. ", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Aquesta aplicació no té cap versió màxima de Nextcloud assignada. ", "This app cannot be installed because the following dependencies are not fulfilled:" : "Aquesta aplicació no es pot instal·lar perquè les següents dependències no es compleixen:", @@ -349,6 +348,7 @@ OC.L10N.register( "Unable to add user to group %s" : "No es pot afegir l'usuari al grup %s", "Unable to remove user from group %s" : "No es pot eliminar l'usuari del grup %s", "Sending..." : "Enviant...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Tens %n aplicació pendent d'actualitzar","Tens %n aplicacions pendents d'actualitzar"], "Uninstalling ...." : "Desintal·lant ...", "Error while uninstalling app" : "Error en desinstal·lar l'aplicació", "Uninstall" : "Desinstal·la", diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json index 0e1f2fddb05..87bc07bd6bd 100644 --- a/settings/l10n/ca.json +++ b/settings/l10n/ca.json @@ -27,9 +27,9 @@ "Unable to add group." : "No es pot agregar el grup.", "Unable to delete group." : "No es pot esborrar el grup.", "Invalid SMTP password." : "Contrasenya SMTP no vàlida.", + "Email setting test" : "Prova de l'arranjament del correu", "Well done, %s!" : "Ben fet, %s!", "If you received this email, the email configuration seems to be correct." : "Si heu rebut aquest correu , la configuració del correu electrònic es correcta.", - "Email setting test" : "Prova de l'arranjament del correu", "Email could not be sent. Check your mail server log" : "No s'ha pogut enviar el correu. Revisa el registre del servidor de correu", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Hi ha hagut un problema en enviar el correu. Revisi la seva configuració. (Error: %s)", "You need to set your user email before being able to send test emails." : "Heu d'establir un nom d'usuari abans de poder enviar correus de prova.", @@ -53,15 +53,16 @@ "%1$s changed your password on %2$s." : "%1$s va canviar la teva contrasenya a %2$s.", "Your password on %s was changed." : "La teva contrasenya a %s es va canviar.", "Your password on %s was reset by an administrator." : "La teva contrasenya a %s va ser restablerta per un administrador.", + "Password for %1$s changed on %2$s" : "Contrasenya per %1$s canviada a %2$s", "Password changed for %s" : "Contrasenya canviada per %s", "If you did not request this, please contact an administrator." : "Si vostè no l'ha sol·licitat, si us plau, poseu-vos en contacte amb un administrador.", - "Password for %1$s changed on %2$s" : "Contrasenya per %1$s canviada a %2$s", "%1$s changed your email address on %2$s." : "%1$s va canviar el teu email a %2$s.", "Your email address on %s was changed." : "El teu email a %s es va canviar.", "Your email address on %s was changed by an administrator." : "El teu email a %s es va canviar per un administrador.", + "Email address for %1$s changed on %2$s" : "Adreça d'email per %1$s canviada a %2$s", "Email address changed for %s" : "Adreça d'email canviada per %s", "The new email address is %s" : "La teva adreça d'email és %s", - "Email address for %1$s changed on %2$s" : "Adreça d'email per %1$s canviada a %2$s", + "Your %s account was created" : "S'ha creat el seu compte %s", "Welcome aboard" : "Benvingut a bord", "Welcome aboard %s" : "Benvingut a bord %s", "You now have an %s account, you can add, protect, and share your data." : "Ara tens un compte %s, pot afegir, protegir i compartir les teves dades.", @@ -69,7 +70,6 @@ "Set your password" : "Establir la contrasenya", "Go to %s" : "Anar a %s", "Install Client" : "Instal·lar Client", - "Your %s account was created" : "S'ha creat el seu compte %s", "Password confirmation is required" : "Cal una confirmació de la contrasenya", "Couldn't remove app." : "No s'ha pogut eliminar l'aplicació", "Couldn't update app." : "No s'ha pogut actualitzar l'aplicació.", @@ -83,7 +83,6 @@ "Official" : "Oficial", "All" : "Tots", "Update to %s" : "Actualitzar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Tens %n aplicació pendent d'actualitzar","Tens %n aplicacions pendents d'actualitzar"], "No apps found for your version" : "No s'han trobat aplicacions per la seva versió", "The app will be downloaded from the app store" : "L'app es descarregarà des de la botiga d'apps", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Les aplicacions oficials són desenvolupades per i dins de la comunitat. Ofereixen funcionalitat central i estan preparats per a l'ús de la producció.", @@ -179,7 +178,6 @@ "Developer documentation" : "Documentació para desenvolupadors", "View in store" : "Veure al repositori", "Limit to groups" : "Limitar per grups", - "This app has an update available." : "Aquesta aplicació té una actualització disponible.", "by %s" : "per %s", "Documentation:" : "Documentació:", "User documentation" : "Documentació d'usuari", @@ -188,6 +186,7 @@ "Report a bug" : "Reportar un error", "Show description …" : "Mostrar descripció...", "Hide description …" : "Amagar descripció...", + "This app has an update available." : "Aquesta aplicació té una actualització disponible.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Aquesta aplicació no té cap versió mínima de Nextcloud assignada. ", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Aquesta aplicació no té cap versió màxima de Nextcloud assignada. ", "This app cannot be installed because the following dependencies are not fulfilled:" : "Aquesta aplicació no es pot instal·lar perquè les següents dependències no es compleixen:", @@ -347,6 +346,7 @@ "Unable to add user to group %s" : "No es pot afegir l'usuari al grup %s", "Unable to remove user from group %s" : "No es pot eliminar l'usuari del grup %s", "Sending..." : "Enviant...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Tens %n aplicació pendent d'actualitzar","Tens %n aplicacions pendents d'actualitzar"], "Uninstalling ...." : "Desintal·lant ...", "Error while uninstalling app" : "Error en desinstal·lar l'aplicació", "Uninstall" : "Desinstal·la", diff --git a/settings/l10n/cs.js b/settings/l10n/cs.js index db32fbece7b..9658971a021 100644 --- a/settings/l10n/cs.js +++ b/settings/l10n/cs.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "Nelze přidat skupinu.", "Unable to delete group." : "Nelze smazat skupinu.", "Invalid SMTP password." : "Neplatné heslo SMTP.", + "Email setting test" : "Zkouška nastavení e-mailu", "Well done, %s!" : "Dobře, %s.", "If you received this email, the email configuration seems to be correct." : "Pokud jste obdržel(a) tento e-mail, nastavení e-mailů bude asi správné.", - "Email setting test" : "Zkouška nastavení e-mailu", "Email could not be sent. Check your mail server log" : "E-mail se nepodařilo odeslat. Zkontrolujte protokol vašeho e-mailového serveru.", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání emailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)", "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních emailů musíte nejprve nastavit svou emailovou adresu.", @@ -59,22 +59,23 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s změnil(a) vaše heslo na %2$s.", "Your password on %s was changed." : "Vaše heslo na %s bylo změněno.", "Your password on %s was reset by an administrator." : "Vaše heslo na %s bylo resetováno administrátorem.", + "Password for %1$s changed on %2$s" : "Heslo pro %1$s na %2$s změněno ", "Password changed for %s" : "Změna hesla pro %s", "If you did not request this, please contact an administrator." : "Pokud jste o toto nežádali, prosím, kontaktujte administrátora.", - "Password for %1$s changed on %2$s" : "Heslo pro %1$s na %2$s změněno ", "%1$s changed your email address on %2$s." : "%1$s změnil(a) vaši e-mailovou adresu na %2s.", "Your email address on %s was changed." : "Vaše e-mailová adresa na %s byla změněna.", "Your email address on %s was changed by an administrator." : "Vaše e-mailová adresa na %s byla změněna administrátorem.", + "Email address for %1$s changed on %2$s" : "E-mailová adresa pro %1$s se na %2$s změnila", "Email address changed for %s" : "E-mailová adresa pro %s byla změněna", "The new email address is %s" : "Nová e-mailová adresa je %s", - "Email address for %1$s changed on %2$s" : "E-mailová adresa pro %1$s se na %2$s změnila", + "Your %s account was created" : "Účet %s byl vytvořen", "Welcome aboard" : "Vítejte na palubě", "Welcome aboard %s" : "Vítej na palubě, %s", + "You now have an %s account, you can add, protect, and share your data." : "Nyní máte účet %s. Můžete přidat, ochránit a sdílet vaše data.", "Your username is: %s" : "Vaše uživatelské jméno je: %s", "Set your password" : "Nastavte vaše heslo", "Go to %s" : "Jít na %s", "Install Client" : "Nainstalovat klienta", - "Your %s account was created" : "Účet %s byl vytvořen", "Password confirmation is required" : "Je vyžadováno potvrzení hesla", "Couldn't remove app." : "Nepodařilo se odebrat aplikaci.", "Couldn't update app." : "Nelze aktualizovat aplikaci.", @@ -88,7 +89,6 @@ OC.L10N.register( "Official" : "Oficiální", "All" : "Vše", "Update to %s" : "Aktualizovat na %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Je dostupná %n čekající aktualizace aplikace","Jsou dostupné %n čekající aktualizace aplikací","Je dostupných %n čekajících aktualizací aplikací"], "No apps found for your version" : "Nebyly nalezeny aplikace pro vaši verzi", "The app will be downloaded from the app store" : "Aplikace bude stažena z obchodu aplikací", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficiální aplikace jsou vyvíjeny komunitou. Poskytují klíčovou funkcionalitu a jsou připravené na produkční nasazení.", @@ -184,7 +184,6 @@ OC.L10N.register( "Developer documentation" : "Vývojářská dokumentace", "View in store" : "Zobrazit v obchodě", "Limit to groups" : "Omezit na skupiny", - "This app has an update available." : "Pro tuto aplikaci je dostupná aktualizace.", "by %s" : "%s", "%s-licensed" : "%s-licencováno", "Documentation:" : "Dokumentace:", @@ -194,6 +193,7 @@ OC.L10N.register( "Report a bug" : "Nahlásit chybu", "Show description …" : "Zobrazit popis ...", "Hide description …" : "Skrýt popis ...", + "This app has an update available." : "Pro tuto aplikaci je dostupná aktualizace.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Tato aplikace nemá nastavenou žádnou minimální verzi Nextcloudu. To se v budoucnu projeví jako chyba.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tato aplikace nemá nastavenou žádnou maximální verzi Nextcloudu. To se v budoucnu projeví jako chyba.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Tuto aplikaci nelze nainstalovat, protože nejsou splněny následující závislosti:", @@ -392,6 +392,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Nelze přidat uživatele do skupiny %s", "Unable to remove user from group %s" : "Nelze odebrat uživatele ze skupiny %s", "Sending..." : "Odesílání...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Je dostupná %n čekající aktualizace aplikace","Jsou dostupné %n čekající aktualizace aplikací","Je dostupných %n čekajících aktualizací aplikací"], "Uninstalling ...." : "Probíhá odinstalace ...", "Error while uninstalling app" : "Chyba při odinstalaci aplikace", "Uninstall" : "Odinstalovat", diff --git a/settings/l10n/cs.json b/settings/l10n/cs.json index 0fcc54b74f6..b0cad8194cc 100644 --- a/settings/l10n/cs.json +++ b/settings/l10n/cs.json @@ -30,9 +30,9 @@ "Unable to add group." : "Nelze přidat skupinu.", "Unable to delete group." : "Nelze smazat skupinu.", "Invalid SMTP password." : "Neplatné heslo SMTP.", + "Email setting test" : "Zkouška nastavení e-mailu", "Well done, %s!" : "Dobře, %s.", "If you received this email, the email configuration seems to be correct." : "Pokud jste obdržel(a) tento e-mail, nastavení e-mailů bude asi správné.", - "Email setting test" : "Zkouška nastavení e-mailu", "Email could not be sent. Check your mail server log" : "E-mail se nepodařilo odeslat. Zkontrolujte protokol vašeho e-mailového serveru.", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání emailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)", "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních emailů musíte nejprve nastavit svou emailovou adresu.", @@ -57,22 +57,23 @@ "%1$s changed your password on %2$s." : "%1$s změnil(a) vaše heslo na %2$s.", "Your password on %s was changed." : "Vaše heslo na %s bylo změněno.", "Your password on %s was reset by an administrator." : "Vaše heslo na %s bylo resetováno administrátorem.", + "Password for %1$s changed on %2$s" : "Heslo pro %1$s na %2$s změněno ", "Password changed for %s" : "Změna hesla pro %s", "If you did not request this, please contact an administrator." : "Pokud jste o toto nežádali, prosím, kontaktujte administrátora.", - "Password for %1$s changed on %2$s" : "Heslo pro %1$s na %2$s změněno ", "%1$s changed your email address on %2$s." : "%1$s změnil(a) vaši e-mailovou adresu na %2s.", "Your email address on %s was changed." : "Vaše e-mailová adresa na %s byla změněna.", "Your email address on %s was changed by an administrator." : "Vaše e-mailová adresa na %s byla změněna administrátorem.", + "Email address for %1$s changed on %2$s" : "E-mailová adresa pro %1$s se na %2$s změnila", "Email address changed for %s" : "E-mailová adresa pro %s byla změněna", "The new email address is %s" : "Nová e-mailová adresa je %s", - "Email address for %1$s changed on %2$s" : "E-mailová adresa pro %1$s se na %2$s změnila", + "Your %s account was created" : "Účet %s byl vytvořen", "Welcome aboard" : "Vítejte na palubě", "Welcome aboard %s" : "Vítej na palubě, %s", + "You now have an %s account, you can add, protect, and share your data." : "Nyní máte účet %s. Můžete přidat, ochránit a sdílet vaše data.", "Your username is: %s" : "Vaše uživatelské jméno je: %s", "Set your password" : "Nastavte vaše heslo", "Go to %s" : "Jít na %s", "Install Client" : "Nainstalovat klienta", - "Your %s account was created" : "Účet %s byl vytvořen", "Password confirmation is required" : "Je vyžadováno potvrzení hesla", "Couldn't remove app." : "Nepodařilo se odebrat aplikaci.", "Couldn't update app." : "Nelze aktualizovat aplikaci.", @@ -86,7 +87,6 @@ "Official" : "Oficiální", "All" : "Vše", "Update to %s" : "Aktualizovat na %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Je dostupná %n čekající aktualizace aplikace","Jsou dostupné %n čekající aktualizace aplikací","Je dostupných %n čekajících aktualizací aplikací"], "No apps found for your version" : "Nebyly nalezeny aplikace pro vaši verzi", "The app will be downloaded from the app store" : "Aplikace bude stažena z obchodu aplikací", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficiální aplikace jsou vyvíjeny komunitou. Poskytují klíčovou funkcionalitu a jsou připravené na produkční nasazení.", @@ -182,7 +182,6 @@ "Developer documentation" : "Vývojářská dokumentace", "View in store" : "Zobrazit v obchodě", "Limit to groups" : "Omezit na skupiny", - "This app has an update available." : "Pro tuto aplikaci je dostupná aktualizace.", "by %s" : "%s", "%s-licensed" : "%s-licencováno", "Documentation:" : "Dokumentace:", @@ -192,6 +191,7 @@ "Report a bug" : "Nahlásit chybu", "Show description …" : "Zobrazit popis ...", "Hide description …" : "Skrýt popis ...", + "This app has an update available." : "Pro tuto aplikaci je dostupná aktualizace.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Tato aplikace nemá nastavenou žádnou minimální verzi Nextcloudu. To se v budoucnu projeví jako chyba.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tato aplikace nemá nastavenou žádnou maximální verzi Nextcloudu. To se v budoucnu projeví jako chyba.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Tuto aplikaci nelze nainstalovat, protože nejsou splněny následující závislosti:", @@ -390,6 +390,7 @@ "Unable to add user to group %s" : "Nelze přidat uživatele do skupiny %s", "Unable to remove user from group %s" : "Nelze odebrat uživatele ze skupiny %s", "Sending..." : "Odesílání...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Je dostupná %n čekající aktualizace aplikace","Jsou dostupné %n čekající aktualizace aplikací","Je dostupných %n čekajících aktualizací aplikací"], "Uninstalling ...." : "Probíhá odinstalace ...", "Error while uninstalling app" : "Chyba při odinstalaci aplikace", "Uninstall" : "Odinstalovat", diff --git a/settings/l10n/da.js b/settings/l10n/da.js index 120b2baf626..5bccde39d75 100644 --- a/settings/l10n/da.js +++ b/settings/l10n/da.js @@ -5,12 +5,25 @@ OC.L10N.register( "You changed your password" : "Du ændrede din kode", "Your password was reset by an administrator" : "Din adgangskode er blevet resat af en administrator", "{actor} changed your email address" : "{actor} skiftede din e-mail adresse", + "You changed your email address" : "Du har ændret din email adresse", + "Your email address was changed by an administrator" : "Din email adresse er blevet ændret af en administrator", + "Security" : "Sikkerhed", + "You successfully logged in using two-factor authentication (%1$s)" : "Du loggede in ved at bruge two-factor authentication (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "Et login forsøg mislykkedes med two-factor authentication (%1$s)", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Dit <strong>password</strong> eller <strong>email</strong> blev ændret", + "Your apps" : "Dine apps", + "Updates" : "Opdateringer", + "Enabled apps" : "Aktiverede apps", + "Disabled apps" : "Deaktiverede apps", + "App bundles" : "App bundles", "Wrong password" : "Forkert kodeord", "Saved" : "Gemt", "No user supplied" : "Intet brugernavn givet", "Unable to change password" : "Kunne ikke ændre kodeord", "Authentication error" : "Adgangsfejl", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Angiv venligst en administrator gendannelseskode, ellers vil alt brugerdata gå tabt", "Wrong admin recovery password. Please check the password and try again." : "Forkert admin gendannelseskode. Se venligst koden efter og prøv igen.", + "Backend doesn't support password change, but the user's encryption key was updated." : "Backend'en understøtter ikke skift af kodeord, men opdateringen af brugerens krypteringsnøgle blev gennemført.", "installing and updating apps via the app store or Federated Cloud Sharing" : "installation og opdatering af apps via app-butikken eller sammensluttet Cloud deling", "Federated Cloud Sharing" : "Sammensluttet Cloud deling", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL bruger en forældet %s version (%s). Husk at opdatere dit styresystem ellers vil funktioner såsom %s ikke fungere pålideligt.", @@ -19,43 +32,104 @@ OC.L10N.register( "Group already exists." : "Gruppen findes allerede.", "Unable to add group." : "Kan ikke tilføje gruppen.", "Unable to delete group." : "Kan ikke slette gruppen.", + "Invalid SMTP password." : "Ikke gyldigt SMTP password", + "Email setting test" : "Test email-indstillinger", + "Well done, %s!" : "Godt gået, %s!", + "If you received this email, the email configuration seems to be correct." : "Hvis du har modtaget denne email, så er email konfigureret rigtigt.", + "Email could not be sent. Check your mail server log" : "Email kunne ikke sendes. Tjek din mail server log", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Der opstod et problem under afsendelse af e-mailen. Gennemse venligst dine indstillinger. (Fejl: %s)", "You need to set your user email before being able to send test emails." : "Du skal angive din bruger-e-mail før der kan sendes test-e-mail.", "Invalid mail address" : "Ugyldig mailadresse", + "No valid group selected" : "Ingen gyldig gruppe valgt", "A user with that name already exists." : "Dette brugernavn eksistere allerede.", + "To send a password link to the user an email address is required." : "For at sende et password link til brugeren skal der bruges en email.", "Unable to create user." : "Kan ikke oprette brugeren.", "Unable to delete user." : "Kan ikke slette brugeren.", + "Error while enabling user." : "Fejl ved aktivering af bruger", + "Error while disabling user." : "Fejl ved deaktivering af bruger", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "For at verificerer din Twitter konto, post den følgende tweet på Twitter (Sørg for at poste det uden linjeskift)", + "Settings saved" : "Indstillinger gemt", "Unable to change full name" : "Ikke i stand til at ændre dit fulde navn", + "Unable to change email address" : "Kan ikke ændre emailadressen", "Your full name has been changed." : "Dit fulde navn er blevet ændret.", "Forbidden" : "Forbudt", "Invalid user" : "Ugyldig bruger", "Unable to change mail address" : "Kan ikke ændre mailadresse", "Email saved" : "E-mailadressen er gemt", + "%1$s changed your password on %2$s." : "%1$s ændrede dit password på %2$s.", + "Your password on %s was changed." : "Dit password på %s blev ændret.", + "Your password on %s was reset by an administrator." : "Dit password på %s er blevet nulstillet af en administrator.", + "Password for %1$s changed on %2$s" : "Password for %1$s er ændret på %2$s", + "Password changed for %s" : "Password ændret for %s", + "If you did not request this, please contact an administrator." : "Kontakt en administrator, hvis du ikke har bedt om dette.", + "%1$s changed your email address on %2$s." : "%1$s ændrede din email på %2$s.", + "Your email address on %s was changed." : "Din email på %s blev ændret.", + "Your email address on %s was changed by an administrator." : "Din email adresse på %s er blevet ændret af en administrator", + "Email address for %1$s changed on %2$s" : "Email adresse for %1$s ændret på %2$s", + "Email address changed for %s" : "Email adresse ændret for %s", + "The new email address is %s" : "Den nye email adresse er %s", "Your %s account was created" : "Din %s-konto blev oprettet", + "Welcome aboard" : "Velkommen ombord", + "Welcome aboard %s" : "velkommen ombord %s", + "Your username is: %s" : "Dit brugernavn er: %s", + "Set your password" : "Sæt dit password", + "Go to %s" : "Gå til %s", + "Install Client" : "Installer client", + "Password confirmation is required" : "Password beskæftigelse er påkrævet", "Couldn't remove app." : "Kunne ikke fjerne app'en.", "Couldn't update app." : "Kunne ikke opdatere app'en.", + "Are you really sure you want add {domain} as trusted domain?" : "Er du helt sikker på at du vil tilføje {domain} som et betroet domæne?", "Add trusted domain" : "Tilføj et domæne som du har tillid til", "Migration in progress. Please wait until the migration is finished" : "Immigration er i gang. Vent venligst indtil overflytningen er afsluttet", "Migration started …" : "Migrering er påbegyndt...", + "Not saved" : "Ikke gemt", + "Sending…" : "Sender...", "Email sent" : "E-mail afsendt", "Official" : "Officiel", "All" : "Alle", "Update to %s" : "Opdatér til %s", "No apps found for your version" : "Ingen apps fundet til din verion", + "The app will be downloaded from the app store" : "Appen vil blive downloaded fra app storen.", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Godkendte programmer er udviklet af betroet udviklere som har bestået en let sikkerheds gennemgang. De er aktivt vedligeholdt i et åben kode lager og udviklerne vurdere programmet til at være stabilt for normalt brug.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Dette program er ikke kontrolleret for sikkerhedsproblemer, og er nyt eller kendt for at være ustabilt. Installer på eget ansvar.", + "Disabling app …" : "Deaktiverer app...", "Error while disabling app" : "Kunne ikke deaktivere app", "Disable" : "Deaktiver", "Enable" : "Aktiver", + "Enabling app …" : "Aktiverer app...", "Error while enabling app" : "Kunne ikke aktivere app", + "Error: This app can not be enabled because it makes the server unstable" : "Fejl: Denne app kan ikke aktiveres fordi den gør serveren ustabil", "Updating...." : "Opdaterer....", "Error while updating app" : "Der opstod en fejl under app opgraderingen", "Updated" : "Opdateret", + "Removing …" : "Fjerner...", + "Remove" : "Fjern", + "App update" : "App update", "Approved" : "Godkendt", "Experimental" : "Eksperimentel", + "No apps found for {query}" : "Ingen apps fundet for {query}", + "Enable all" : "Aktiver alle", + "Disconnect" : "Frakobl", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome til Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS Client", + "Android Client" : "Android klient", + "Copy" : "Kopier", + "Copied!" : "Kopieret", + "Not supported!" : "Ikke understøttet", "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Der opstod en fejl. Upload venligst et ASCII-indkodet PEM-certifikat.", "Valid until {date}" : "Gyldig indtil {date}", "Delete" : "Slet", + "Local" : "Lokal", + "Private" : "Privat", + "Contacts" : "Kontakter", + "Public" : "Offentlig", "Select a profile picture" : "Vælg et profilbillede", "Very weak password" : "Meget svagt kodeord", "Weak password" : "Svagt kodeord", @@ -67,8 +141,11 @@ OC.L10N.register( "A valid group name must be provided" : "Et gyldigt gruppenavn skal angives ", "deleted {groupName}" : "slettede {groupName}", "undo" : "fortryd", + "{size} used" : "{size} brugt", "never" : "aldrig", "deleted {userName}" : "slettede {userName}", + "Add group" : "Tilføj gruppe", + "no group" : "ingen gruppe", "Changing the password will result in data loss, because data recovery is not available for this user" : "Ændring af kodeordet vil føre til datatab, fordi datagendannelse ikke er tilgængelig for denne bruger", "A valid username must be provided" : "Et gyldigt brugernavn skal angives", "A valid password must be provided" : "En gyldig adgangskode skal angives", diff --git a/settings/l10n/da.json b/settings/l10n/da.json index 1ab8afc7ca5..3409997f253 100644 --- a/settings/l10n/da.json +++ b/settings/l10n/da.json @@ -3,12 +3,25 @@ "You changed your password" : "Du ændrede din kode", "Your password was reset by an administrator" : "Din adgangskode er blevet resat af en administrator", "{actor} changed your email address" : "{actor} skiftede din e-mail adresse", + "You changed your email address" : "Du har ændret din email adresse", + "Your email address was changed by an administrator" : "Din email adresse er blevet ændret af en administrator", + "Security" : "Sikkerhed", + "You successfully logged in using two-factor authentication (%1$s)" : "Du loggede in ved at bruge two-factor authentication (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "Et login forsøg mislykkedes med two-factor authentication (%1$s)", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Dit <strong>password</strong> eller <strong>email</strong> blev ændret", + "Your apps" : "Dine apps", + "Updates" : "Opdateringer", + "Enabled apps" : "Aktiverede apps", + "Disabled apps" : "Deaktiverede apps", + "App bundles" : "App bundles", "Wrong password" : "Forkert kodeord", "Saved" : "Gemt", "No user supplied" : "Intet brugernavn givet", "Unable to change password" : "Kunne ikke ændre kodeord", "Authentication error" : "Adgangsfejl", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Angiv venligst en administrator gendannelseskode, ellers vil alt brugerdata gå tabt", "Wrong admin recovery password. Please check the password and try again." : "Forkert admin gendannelseskode. Se venligst koden efter og prøv igen.", + "Backend doesn't support password change, but the user's encryption key was updated." : "Backend'en understøtter ikke skift af kodeord, men opdateringen af brugerens krypteringsnøgle blev gennemført.", "installing and updating apps via the app store or Federated Cloud Sharing" : "installation og opdatering af apps via app-butikken eller sammensluttet Cloud deling", "Federated Cloud Sharing" : "Sammensluttet Cloud deling", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL bruger en forældet %s version (%s). Husk at opdatere dit styresystem ellers vil funktioner såsom %s ikke fungere pålideligt.", @@ -17,43 +30,104 @@ "Group already exists." : "Gruppen findes allerede.", "Unable to add group." : "Kan ikke tilføje gruppen.", "Unable to delete group." : "Kan ikke slette gruppen.", + "Invalid SMTP password." : "Ikke gyldigt SMTP password", + "Email setting test" : "Test email-indstillinger", + "Well done, %s!" : "Godt gået, %s!", + "If you received this email, the email configuration seems to be correct." : "Hvis du har modtaget denne email, så er email konfigureret rigtigt.", + "Email could not be sent. Check your mail server log" : "Email kunne ikke sendes. Tjek din mail server log", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Der opstod et problem under afsendelse af e-mailen. Gennemse venligst dine indstillinger. (Fejl: %s)", "You need to set your user email before being able to send test emails." : "Du skal angive din bruger-e-mail før der kan sendes test-e-mail.", "Invalid mail address" : "Ugyldig mailadresse", + "No valid group selected" : "Ingen gyldig gruppe valgt", "A user with that name already exists." : "Dette brugernavn eksistere allerede.", + "To send a password link to the user an email address is required." : "For at sende et password link til brugeren skal der bruges en email.", "Unable to create user." : "Kan ikke oprette brugeren.", "Unable to delete user." : "Kan ikke slette brugeren.", + "Error while enabling user." : "Fejl ved aktivering af bruger", + "Error while disabling user." : "Fejl ved deaktivering af bruger", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "For at verificerer din Twitter konto, post den følgende tweet på Twitter (Sørg for at poste det uden linjeskift)", + "Settings saved" : "Indstillinger gemt", "Unable to change full name" : "Ikke i stand til at ændre dit fulde navn", + "Unable to change email address" : "Kan ikke ændre emailadressen", "Your full name has been changed." : "Dit fulde navn er blevet ændret.", "Forbidden" : "Forbudt", "Invalid user" : "Ugyldig bruger", "Unable to change mail address" : "Kan ikke ændre mailadresse", "Email saved" : "E-mailadressen er gemt", + "%1$s changed your password on %2$s." : "%1$s ændrede dit password på %2$s.", + "Your password on %s was changed." : "Dit password på %s blev ændret.", + "Your password on %s was reset by an administrator." : "Dit password på %s er blevet nulstillet af en administrator.", + "Password for %1$s changed on %2$s" : "Password for %1$s er ændret på %2$s", + "Password changed for %s" : "Password ændret for %s", + "If you did not request this, please contact an administrator." : "Kontakt en administrator, hvis du ikke har bedt om dette.", + "%1$s changed your email address on %2$s." : "%1$s ændrede din email på %2$s.", + "Your email address on %s was changed." : "Din email på %s blev ændret.", + "Your email address on %s was changed by an administrator." : "Din email adresse på %s er blevet ændret af en administrator", + "Email address for %1$s changed on %2$s" : "Email adresse for %1$s ændret på %2$s", + "Email address changed for %s" : "Email adresse ændret for %s", + "The new email address is %s" : "Den nye email adresse er %s", "Your %s account was created" : "Din %s-konto blev oprettet", + "Welcome aboard" : "Velkommen ombord", + "Welcome aboard %s" : "velkommen ombord %s", + "Your username is: %s" : "Dit brugernavn er: %s", + "Set your password" : "Sæt dit password", + "Go to %s" : "Gå til %s", + "Install Client" : "Installer client", + "Password confirmation is required" : "Password beskæftigelse er påkrævet", "Couldn't remove app." : "Kunne ikke fjerne app'en.", "Couldn't update app." : "Kunne ikke opdatere app'en.", + "Are you really sure you want add {domain} as trusted domain?" : "Er du helt sikker på at du vil tilføje {domain} som et betroet domæne?", "Add trusted domain" : "Tilføj et domæne som du har tillid til", "Migration in progress. Please wait until the migration is finished" : "Immigration er i gang. Vent venligst indtil overflytningen er afsluttet", "Migration started …" : "Migrering er påbegyndt...", + "Not saved" : "Ikke gemt", + "Sending…" : "Sender...", "Email sent" : "E-mail afsendt", "Official" : "Officiel", "All" : "Alle", "Update to %s" : "Opdatér til %s", "No apps found for your version" : "Ingen apps fundet til din verion", + "The app will be downloaded from the app store" : "Appen vil blive downloaded fra app storen.", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Godkendte programmer er udviklet af betroet udviklere som har bestået en let sikkerheds gennemgang. De er aktivt vedligeholdt i et åben kode lager og udviklerne vurdere programmet til at være stabilt for normalt brug.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Dette program er ikke kontrolleret for sikkerhedsproblemer, og er nyt eller kendt for at være ustabilt. Installer på eget ansvar.", + "Disabling app …" : "Deaktiverer app...", "Error while disabling app" : "Kunne ikke deaktivere app", "Disable" : "Deaktiver", "Enable" : "Aktiver", + "Enabling app …" : "Aktiverer app...", "Error while enabling app" : "Kunne ikke aktivere app", + "Error: This app can not be enabled because it makes the server unstable" : "Fejl: Denne app kan ikke aktiveres fordi den gør serveren ustabil", "Updating...." : "Opdaterer....", "Error while updating app" : "Der opstod en fejl under app opgraderingen", "Updated" : "Opdateret", + "Removing …" : "Fjerner...", + "Remove" : "Fjern", + "App update" : "App update", "Approved" : "Godkendt", "Experimental" : "Eksperimentel", + "No apps found for {query}" : "Ingen apps fundet for {query}", + "Enable all" : "Aktiver alle", + "Disconnect" : "Frakobl", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome til Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS Client", + "Android Client" : "Android klient", + "Copy" : "Kopier", + "Copied!" : "Kopieret", + "Not supported!" : "Ikke understøttet", "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Der opstod en fejl. Upload venligst et ASCII-indkodet PEM-certifikat.", "Valid until {date}" : "Gyldig indtil {date}", "Delete" : "Slet", + "Local" : "Lokal", + "Private" : "Privat", + "Contacts" : "Kontakter", + "Public" : "Offentlig", "Select a profile picture" : "Vælg et profilbillede", "Very weak password" : "Meget svagt kodeord", "Weak password" : "Svagt kodeord", @@ -65,8 +139,11 @@ "A valid group name must be provided" : "Et gyldigt gruppenavn skal angives ", "deleted {groupName}" : "slettede {groupName}", "undo" : "fortryd", + "{size} used" : "{size} brugt", "never" : "aldrig", "deleted {userName}" : "slettede {userName}", + "Add group" : "Tilføj gruppe", + "no group" : "ingen gruppe", "Changing the password will result in data loss, because data recovery is not available for this user" : "Ændring af kodeordet vil føre til datatab, fordi datagendannelse ikke er tilgængelig for denne bruger", "A valid username must be provided" : "Et gyldigt brugernavn skal angives", "A valid password must be provided" : "En gyldig adgangskode skal angives", diff --git a/settings/l10n/de.js b/settings/l10n/de.js index 96a5269582e..ab5a213b27f 100644 --- a/settings/l10n/de.js +++ b/settings/l10n/de.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Dein <strong>Passwort</strong> oder Deine <strong>E-Mail-Adresse</strong> wurde geändert", "Your apps" : "Deine Apps", + "Updates" : "Aktualisierungen", "Enabled apps" : "Aktivierte Apps", "Disabled apps" : "Deaktivierte Apps", "App bundles" : "App-Pakete", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", "Invalid SMTP password." : "Ungültiges SMTP-Passwort", + "Email setting test" : "Test der E-Mail-Einstellungen", "Well done, %s!" : "Gut gemacht, %s!", "If you received this email, the email configuration seems to be correct." : "Wenn du diese E-Mail empfangen hast, sind die E-Mail-Einstellungen korrekt.", - "Email setting test" : "Test der E-Mail-Einstellungen", "Email could not be sent. Check your mail server log" : "E-Mail konnte nicht versandt werden. Prüfe Dein E-Mail-Server-Protokoll", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Beim Senden der E-Mail ist ein Problem aufgetreten. Bitte überprüfe Deine Einstellungen. (Fehler: %s)", "You need to set your user email before being able to send test emails." : "Zunächst muss die Benutzer-E-Mail-Adresse angegeben werden, bevor Test-E-Mails verschickt werden können.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s hat Dein Passwort auf %2$s geändert.", "Your password on %s was changed." : "Dein Passwort auf %s wurde geändert.", "Your password on %s was reset by an administrator." : "Dein Passwort auf %s wurde vom Administrator zurückgesetzt.", + "Password for %1$s changed on %2$s" : "Passwort für %1$s geändert auf %2$s", "Password changed for %s" : "Passwort geändert für %s", "If you did not request this, please contact an administrator." : "Wenn Du das nicht angefordert haben solltest, wende Dich bitte an den Administrator.", - "Password for %1$s changed on %2$s" : "Passwort für %1$s geändert auf %2$s", "%1$s changed your email address on %2$s." : "%1$s hat Deine E-Mail-Adresse geändert auf %2$s.", "Your email address on %s was changed." : "Deine E-Mail-Adresse auf %s wurde geändert.", "Your email address on %s was changed by an administrator." : "Deine E-Mail-Adresse auf %s wurde von einen Administrator geändert.", + "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", - "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", + "Your %s account was created" : "Dein %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", "You now have an %s account, you can add, protect, and share your data." : "Du hast jetzt ein %s-Konto. Du kannst Deine Daten hinzufügen, schützen und teilen.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Vergebe Dein Passwort", "Go to %s" : "Gehe zu %s", "Install Client" : "Installiere den Client", - "Your %s account was created" : "Dein %s-Konto wurde erstellt", "Password confirmation is required" : "Passwortbestätigung erforderlich", "Couldn't remove app." : "Die App konnte nicht entfernt werden.", "Couldn't update app." : "Die App konnte nicht aktualisiert werden.", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "Offiziell", "All" : "Alle", "Update to %s" : "Aktualisierung auf %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Du hast %n Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"], "No apps found for your version" : "Es wurden keine Apps für Deine Version gefunden", "The app will be downloaded from the app store" : "Die App wird aus dem App-Store heruntergeladen", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", + "No app updates available" : "Keine App-Aktualisierungen verfügbar", "Updating...." : "Aktualisiere…", "Error while updating app" : "Es ist ein Fehler während der Aktualisierung der App aufgetreten", "Updated" : "Aktualisiert", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "Dokumentation für Entwickler", "View in store" : "Im Store anzeigen", "Limit to groups" : "Auf Gruppen beschränken", - "This app has an update available." : "Für diese App ist eine Aktualisierung verfügbar.", "by %s" : "von %s", "%s-licensed" : "%s-Lizensiert", "Documentation:" : "Dokumentation:", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "Melde einen technischen Fehler", "Show description …" : "Beschreibung anzeigen…", "Hide description …" : "Beschreibung ausblenden…", + "This app has an update available." : "Für diese App ist eine Aktualisierung verfügbar.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden", "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden", "Sending..." : "Wird gesendet…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Du hast %n Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"], "Uninstalling ...." : "Wird deinstalliert…", "Error while uninstalling app" : "Fehler beim Deinstallieren der App", "Uninstall" : "Deinstallieren", diff --git a/settings/l10n/de.json b/settings/l10n/de.json index a2f174d37dd..4a6c7292c18 100644 --- a/settings/l10n/de.json +++ b/settings/l10n/de.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Dein <strong>Passwort</strong> oder Deine <strong>E-Mail-Adresse</strong> wurde geändert", "Your apps" : "Deine Apps", + "Updates" : "Aktualisierungen", "Enabled apps" : "Aktivierte Apps", "Disabled apps" : "Deaktivierte Apps", "App bundles" : "App-Pakete", @@ -30,9 +31,9 @@ "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", "Invalid SMTP password." : "Ungültiges SMTP-Passwort", + "Email setting test" : "Test der E-Mail-Einstellungen", "Well done, %s!" : "Gut gemacht, %s!", "If you received this email, the email configuration seems to be correct." : "Wenn du diese E-Mail empfangen hast, sind die E-Mail-Einstellungen korrekt.", - "Email setting test" : "Test der E-Mail-Einstellungen", "Email could not be sent. Check your mail server log" : "E-Mail konnte nicht versandt werden. Prüfe Dein E-Mail-Server-Protokoll", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Beim Senden der E-Mail ist ein Problem aufgetreten. Bitte überprüfe Deine Einstellungen. (Fehler: %s)", "You need to set your user email before being able to send test emails." : "Zunächst muss die Benutzer-E-Mail-Adresse angegeben werden, bevor Test-E-Mails verschickt werden können.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s hat Dein Passwort auf %2$s geändert.", "Your password on %s was changed." : "Dein Passwort auf %s wurde geändert.", "Your password on %s was reset by an administrator." : "Dein Passwort auf %s wurde vom Administrator zurückgesetzt.", + "Password for %1$s changed on %2$s" : "Passwort für %1$s geändert auf %2$s", "Password changed for %s" : "Passwort geändert für %s", "If you did not request this, please contact an administrator." : "Wenn Du das nicht angefordert haben solltest, wende Dich bitte an den Administrator.", - "Password for %1$s changed on %2$s" : "Passwort für %1$s geändert auf %2$s", "%1$s changed your email address on %2$s." : "%1$s hat Deine E-Mail-Adresse geändert auf %2$s.", "Your email address on %s was changed." : "Deine E-Mail-Adresse auf %s wurde geändert.", "Your email address on %s was changed by an administrator." : "Deine E-Mail-Adresse auf %s wurde von einen Administrator geändert.", + "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", - "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", + "Your %s account was created" : "Dein %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", "You now have an %s account, you can add, protect, and share your data." : "Du hast jetzt ein %s-Konto. Du kannst Deine Daten hinzufügen, schützen und teilen.", @@ -73,7 +75,6 @@ "Set your password" : "Vergebe Dein Passwort", "Go to %s" : "Gehe zu %s", "Install Client" : "Installiere den Client", - "Your %s account was created" : "Dein %s-Konto wurde erstellt", "Password confirmation is required" : "Passwortbestätigung erforderlich", "Couldn't remove app." : "Die App konnte nicht entfernt werden.", "Couldn't update app." : "Die App konnte nicht aktualisiert werden.", @@ -87,7 +88,6 @@ "Official" : "Offiziell", "All" : "Alle", "Update to %s" : "Aktualisierung auf %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Du hast %n Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"], "No apps found for your version" : "Es wurden keine Apps für Deine Version gefunden", "The app will be downloaded from the app store" : "Die App wird aus dem App-Store heruntergeladen", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", + "No app updates available" : "Keine App-Aktualisierungen verfügbar", "Updating...." : "Aktualisiere…", "Error while updating app" : "Es ist ein Fehler während der Aktualisierung der App aufgetreten", "Updated" : "Aktualisiert", @@ -183,7 +184,6 @@ "Developer documentation" : "Dokumentation für Entwickler", "View in store" : "Im Store anzeigen", "Limit to groups" : "Auf Gruppen beschränken", - "This app has an update available." : "Für diese App ist eine Aktualisierung verfügbar.", "by %s" : "von %s", "%s-licensed" : "%s-Lizensiert", "Documentation:" : "Dokumentation:", @@ -193,6 +193,7 @@ "Report a bug" : "Melde einen technischen Fehler", "Show description …" : "Beschreibung anzeigen…", "Hide description …" : "Beschreibung ausblenden…", + "This app has an update available." : "Für diese App ist eine Aktualisierung verfügbar.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden", "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden", "Sending..." : "Wird gesendet…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Du hast %n Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"], "Uninstalling ...." : "Wird deinstalliert…", "Error while uninstalling app" : "Fehler beim Deinstallieren der App", "Uninstall" : "Deinstallieren", diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js index cf32086def6..aa5b35c3889 100644 --- a/settings/l10n/de_DE.js +++ b/settings/l10n/de_DE.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Ihr <strong>Passwort</strong> oder Ihre <strong>E-Mail-Adresse</strong> wurde geändert", "Your apps" : "Ihre Apps", + "Updates" : "Aktualisierungen", "Enabled apps" : "Aktivierte Apps", "Disabled apps" : "Deaktivierte Apps", "App bundles" : "App-Pakete", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", "Invalid SMTP password." : "Ungültiges SMTP Passwort.", + "Email setting test" : "Test der E-Mail-Einstellungen", "Well done, %s!" : "Gut gemacht, %s!", "If you received this email, the email configuration seems to be correct." : "Wenn du diese E-Mail empfangen hast, sind die E-Mail-Einstellungen korrekt.", - "Email setting test" : "Test der E-Mail-Einstellungen", "Email could not be sent. Check your mail server log" : "E-Mail konnte nicht versandt werden. Prüfen Sie Ihr E-Mail-Server-Protokoll", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Beim Senden der E-Mail ist ein Problem aufgetreten. Bitte überprüfen Sie Ihre Einstellungen. (Fehler: %s)", "You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s hat Ihr Passwort auf %2$s geändert.", "Your password on %s was changed." : "Ihr Passwort auf %s wurde geändert.", "Your password on %s was reset by an administrator." : "Ihr Passwort auf %s wurde vom Administrator zurückgesetzt.", + "Password for %1$s changed on %2$s" : "Passwort für %1$s geändert auf %2$s", "Password changed for %s" : "Passwort geändert für %s ", "If you did not request this, please contact an administrator." : "Wenn Sie das nicht angefordert haben sollten, wenden Sie sich bitte an den Administrator.", - "Password for %1$s changed on %2$s" : "Passwort für %1$s geändert auf %2$s", "%1$s changed your email address on %2$s." : "%1$s hat Ihre E-Mail-Adresse geändert auf %2$s.", "Your email address on %s was changed." : "Ihre E-Mail-Adresse auf %s wurde geändert.", "Your email address on %s was changed by an administrator." : "Ihre E-Mail-Adresse auf %s wurde von einem Administrator geändert.", + "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", - "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", + "Your %s account was created" : "Ihr %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", "You now have an %s account, you can add, protect, and share your data." : "Sie haben jetzt ein %s-Konto. Sie können Ihre Daten hinzufügen, schützen und teilen.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Vergeben Sie Ihr Passwort", "Go to %s" : "Gehe zu %s", "Install Client" : "Installiere den Client", - "Your %s account was created" : "Ihr %s-Konto wurde erstellt", "Password confirmation is required" : "Passwortbestätigung erforderlich", "Couldn't remove app." : "Die App konnte nicht entfernt werden.", "Couldn't update app." : "Die App konnte nicht aktualisiert werden.", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "Offiziell", "All" : "Alle", "Update to %s" : "Aktualisierung auf %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Es ist %n App-Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"], "No apps found for your version" : "Es wurden keine Apps für Ihre Version gefunden", "The app will be downloaded from the app store" : "Die App wird aus dem App-Store heruntergeladen", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", + "No app updates available" : "Keine App-Aktualisierungen verfügbar", "Updating...." : "Aktualisiere…", "Error while updating app" : "Es ist ein Fehler während der Aktualisierung der App aufgetreten", "Updated" : "Aktualisiert", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "Dokumentation für Entwickler", "View in store" : "Im Store anzeigen", "Limit to groups" : "Auf Gruppen beschränken", - "This app has an update available." : "Für diese App ist eine Aktualisierung verfügbar.", "by %s" : "von %s", "%s-licensed" : "%s-Lizensiert", "Documentation:" : "Dokumentation:", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "Melden Sie einen technischen Fehler", "Show description …" : "Beschreibung anzeigen…", "Hide description …" : "Beschreibung ausblenden…", + "This app has an update available." : "Für diese App ist eine Aktualisierung verfügbar.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden", "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden", "Sending..." : "Wird gesendet…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Es ist %n App-Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"], "Uninstalling ...." : "Wird deinstalliert…", "Error while uninstalling app" : "Fehler beim Deinstallieren der App", "Uninstall" : "Deinstallieren", diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json index 22e401511d9..4e062144700 100644 --- a/settings/l10n/de_DE.json +++ b/settings/l10n/de_DE.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Ihr <strong>Passwort</strong> oder Ihre <strong>E-Mail-Adresse</strong> wurde geändert", "Your apps" : "Ihre Apps", + "Updates" : "Aktualisierungen", "Enabled apps" : "Aktivierte Apps", "Disabled apps" : "Deaktivierte Apps", "App bundles" : "App-Pakete", @@ -30,9 +31,9 @@ "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", "Invalid SMTP password." : "Ungültiges SMTP Passwort.", + "Email setting test" : "Test der E-Mail-Einstellungen", "Well done, %s!" : "Gut gemacht, %s!", "If you received this email, the email configuration seems to be correct." : "Wenn du diese E-Mail empfangen hast, sind die E-Mail-Einstellungen korrekt.", - "Email setting test" : "Test der E-Mail-Einstellungen", "Email could not be sent. Check your mail server log" : "E-Mail konnte nicht versandt werden. Prüfen Sie Ihr E-Mail-Server-Protokoll", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Beim Senden der E-Mail ist ein Problem aufgetreten. Bitte überprüfen Sie Ihre Einstellungen. (Fehler: %s)", "You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s hat Ihr Passwort auf %2$s geändert.", "Your password on %s was changed." : "Ihr Passwort auf %s wurde geändert.", "Your password on %s was reset by an administrator." : "Ihr Passwort auf %s wurde vom Administrator zurückgesetzt.", + "Password for %1$s changed on %2$s" : "Passwort für %1$s geändert auf %2$s", "Password changed for %s" : "Passwort geändert für %s ", "If you did not request this, please contact an administrator." : "Wenn Sie das nicht angefordert haben sollten, wenden Sie sich bitte an den Administrator.", - "Password for %1$s changed on %2$s" : "Passwort für %1$s geändert auf %2$s", "%1$s changed your email address on %2$s." : "%1$s hat Ihre E-Mail-Adresse geändert auf %2$s.", "Your email address on %s was changed." : "Ihre E-Mail-Adresse auf %s wurde geändert.", "Your email address on %s was changed by an administrator." : "Ihre E-Mail-Adresse auf %s wurde von einem Administrator geändert.", + "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", - "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", + "Your %s account was created" : "Ihr %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", "You now have an %s account, you can add, protect, and share your data." : "Sie haben jetzt ein %s-Konto. Sie können Ihre Daten hinzufügen, schützen und teilen.", @@ -73,7 +75,6 @@ "Set your password" : "Vergeben Sie Ihr Passwort", "Go to %s" : "Gehe zu %s", "Install Client" : "Installiere den Client", - "Your %s account was created" : "Ihr %s-Konto wurde erstellt", "Password confirmation is required" : "Passwortbestätigung erforderlich", "Couldn't remove app." : "Die App konnte nicht entfernt werden.", "Couldn't update app." : "Die App konnte nicht aktualisiert werden.", @@ -87,7 +88,6 @@ "Official" : "Offiziell", "All" : "Alle", "Update to %s" : "Aktualisierung auf %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Es ist %n App-Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"], "No apps found for your version" : "Es wurden keine Apps für Ihre Version gefunden", "The app will be downloaded from the app store" : "Die App wird aus dem App-Store heruntergeladen", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", + "No app updates available" : "Keine App-Aktualisierungen verfügbar", "Updating...." : "Aktualisiere…", "Error while updating app" : "Es ist ein Fehler während der Aktualisierung der App aufgetreten", "Updated" : "Aktualisiert", @@ -183,7 +184,6 @@ "Developer documentation" : "Dokumentation für Entwickler", "View in store" : "Im Store anzeigen", "Limit to groups" : "Auf Gruppen beschränken", - "This app has an update available." : "Für diese App ist eine Aktualisierung verfügbar.", "by %s" : "von %s", "%s-licensed" : "%s-Lizensiert", "Documentation:" : "Dokumentation:", @@ -193,6 +193,7 @@ "Report a bug" : "Melden Sie einen technischen Fehler", "Show description …" : "Beschreibung anzeigen…", "Hide description …" : "Beschreibung ausblenden…", + "This app has an update available." : "Für diese App ist eine Aktualisierung verfügbar.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden", "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden", "Sending..." : "Wird gesendet…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Es ist %n App-Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"], "Uninstalling ...." : "Wird deinstalliert…", "Error while uninstalling app" : "Fehler beim Deinstallieren der App", "Uninstall" : "Deinstallieren", diff --git a/settings/l10n/el.js b/settings/l10n/el.js index d2cb2a920ed..84da8dbb5aa 100644 --- a/settings/l10n/el.js +++ b/settings/l10n/el.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "Αδυναμία προσθήκης ομάδας.", "Unable to delete group." : "Αδυναμία διαγραφής ομάδας.", "Invalid SMTP password." : "Μη έγκυρο συνθηματικό SMTP.", + "Email setting test" : "Δοκιμή ρυθμίσεων email", "Well done, %s!" : "Συγχαρητήρια, %s!", "If you received this email, the email configuration seems to be correct." : "Εάν λάβατε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου, ", - "Email setting test" : "Δοκιμή ρυθμίσεων email", "Email could not be sent. Check your mail server log" : "Το μήνυμα ηλεκτρονικού ταχυδρομείου δεν εστάλη. Ελέγξτε το αρχείο καταγραφής.", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Παρουσιάστηκε σφάλμα κατά την αποστολή e-mail. Παρακαλώ ελέγξτε τις ρυθμίσεις σας.(Error: %s)", "You need to set your user email before being able to send test emails." : "Πρέπει να ορίσετε το email του χρήστη πριν να είστε σε θέση να στείλετε δοκιμαστικά emails.", @@ -58,22 +58,22 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$sάλλαξε το συνθηματικό σε %2$s.", "Your password on %s was changed." : "Ο κωδικός πρόσβασης στο %s έχει αλλάξει.", "Your password on %s was reset by an administrator." : "Έχει γίνει επαναφορά του κωδικού πρόσβασης στο %s από τον διαχειριστή.", + "Password for %1$s changed on %2$s" : "Ο κωδικός πρόσβασης για το %1$s άλλαξε σε %2$s", "Password changed for %s" : "Το συνθηματικό άλλαξε για τον %s", "If you did not request this, please contact an administrator." : "Εάν δεν το αιτηθήκατε, παρακαλούμε επικοινωνήστε με τον διαχειριστή.", - "Password for %1$s changed on %2$s" : "Ο κωδικός πρόσβασης για το %1$s άλλαξε σε %2$s", "%1$s changed your email address on %2$s." : "%1$sάλλαξε τη διεύθυνση ηλεκτρονικού ταχυδρομείου σε %2$s.", "Your email address on %s was changed." : "Η ηλεκτρονική σας διεύθυνση στο %s έχει αλλάξει.", "Your email address on %s was changed by an administrator." : "Η διεύθυνση ηλεκτρονικής αλληλογραφίας στο %s άλλαξε από τον διαχειριστή.", + "Email address for %1$s changed on %2$s" : "Η διεύθυνση ηλεκτρονικού ταχυδρομείου για το %1$s άλλαξε σε %2$s", "Email address changed for %s" : "Το συνθηματικό άλλαξε για τον %s", "The new email address is %s" : "Η νέα διεύθυνση ηλεκτρονικής αλληλογραφίας είναι %s", - "Email address for %1$s changed on %2$s" : "Η διεύθυνση ηλεκτρονικού ταχυδρομείου για το %1$s άλλαξε σε %2$s", + "Your %s account was created" : "Ο λογαριασμός %s δημιουργήθηκε", "Welcome aboard" : "Καλώς ήλθατε", "Welcome aboard %s" : "Καλώς ήλθατε %s", "Your username is: %s" : "Το όνομα χρήστη σας είναι: %s", "Set your password" : "Καθορισμός συνθηματικού", "Go to %s" : "Πηγαίνετε στο %s", "Install Client" : "Εγκατάσταση πελάτη", - "Your %s account was created" : "Ο λογαριασμός %s δημιουργήθηκε", "Password confirmation is required" : "Απαιτείται επιβεβαίωση συνθηματικού", "Couldn't remove app." : "Αδυναμία αφαίρεσης εφαρμογής.", "Couldn't update app." : "Αδυναμία ενημέρωσης εφαρμογής", @@ -178,7 +178,6 @@ OC.L10N.register( "Developer documentation" : "Τεκμηρίωση προγραμματιστή", "View in store" : "Προβολή στο κέντρο εφαρμογών", "Limit to groups" : "Όριο στις ομάδες", - "This app has an update available." : "Αυτή η εφαρμογή έχει διαθέσιμη ενημέρωση.", "by %s" : "από %s", "%s-licensed" : "%s-αδειοδοτημένο", "Documentation:" : "Τεκμηρίωση:", @@ -188,6 +187,7 @@ OC.L10N.register( "Report a bug" : "Αναφέρετε σφάλμα", "Show description …" : "Εμφάνιση περιγραφής", "Hide description …" : "Απόκρυψη περιγραφής", + "This app has an update available." : "Αυτή η εφαρμογή έχει διαθέσιμη ενημέρωση.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Αυτή η εφαρμογή δεν έχει ελάχιστη έκδοση του Nextcloud ανατεθειμένη. Αυτό θα αποτελεί σφάλμα στο μέλλον.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Αυτή η εφαρμογή δεν έχει μέγιστη έκδοση του Nextcloud ανατεθειμένη. Αυτό θα αποτελεί σφάλμα στο μέλλον.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Αυτή η εφαρμογή δεν μπορεί να εγκατασταθεί διότι δεν εκπληρώνονται οι ακόλουθες εξαρτήσεις:", diff --git a/settings/l10n/el.json b/settings/l10n/el.json index 0105d70f523..6261c65896f 100644 --- a/settings/l10n/el.json +++ b/settings/l10n/el.json @@ -30,9 +30,9 @@ "Unable to add group." : "Αδυναμία προσθήκης ομάδας.", "Unable to delete group." : "Αδυναμία διαγραφής ομάδας.", "Invalid SMTP password." : "Μη έγκυρο συνθηματικό SMTP.", + "Email setting test" : "Δοκιμή ρυθμίσεων email", "Well done, %s!" : "Συγχαρητήρια, %s!", "If you received this email, the email configuration seems to be correct." : "Εάν λάβατε αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου, ", - "Email setting test" : "Δοκιμή ρυθμίσεων email", "Email could not be sent. Check your mail server log" : "Το μήνυμα ηλεκτρονικού ταχυδρομείου δεν εστάλη. Ελέγξτε το αρχείο καταγραφής.", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Παρουσιάστηκε σφάλμα κατά την αποστολή e-mail. Παρακαλώ ελέγξτε τις ρυθμίσεις σας.(Error: %s)", "You need to set your user email before being able to send test emails." : "Πρέπει να ορίσετε το email του χρήστη πριν να είστε σε θέση να στείλετε δοκιμαστικά emails.", @@ -56,22 +56,22 @@ "%1$s changed your password on %2$s." : "%1$sάλλαξε το συνθηματικό σε %2$s.", "Your password on %s was changed." : "Ο κωδικός πρόσβασης στο %s έχει αλλάξει.", "Your password on %s was reset by an administrator." : "Έχει γίνει επαναφορά του κωδικού πρόσβασης στο %s από τον διαχειριστή.", + "Password for %1$s changed on %2$s" : "Ο κωδικός πρόσβασης για το %1$s άλλαξε σε %2$s", "Password changed for %s" : "Το συνθηματικό άλλαξε για τον %s", "If you did not request this, please contact an administrator." : "Εάν δεν το αιτηθήκατε, παρακαλούμε επικοινωνήστε με τον διαχειριστή.", - "Password for %1$s changed on %2$s" : "Ο κωδικός πρόσβασης για το %1$s άλλαξε σε %2$s", "%1$s changed your email address on %2$s." : "%1$sάλλαξε τη διεύθυνση ηλεκτρονικού ταχυδρομείου σε %2$s.", "Your email address on %s was changed." : "Η ηλεκτρονική σας διεύθυνση στο %s έχει αλλάξει.", "Your email address on %s was changed by an administrator." : "Η διεύθυνση ηλεκτρονικής αλληλογραφίας στο %s άλλαξε από τον διαχειριστή.", + "Email address for %1$s changed on %2$s" : "Η διεύθυνση ηλεκτρονικού ταχυδρομείου για το %1$s άλλαξε σε %2$s", "Email address changed for %s" : "Το συνθηματικό άλλαξε για τον %s", "The new email address is %s" : "Η νέα διεύθυνση ηλεκτρονικής αλληλογραφίας είναι %s", - "Email address for %1$s changed on %2$s" : "Η διεύθυνση ηλεκτρονικού ταχυδρομείου για το %1$s άλλαξε σε %2$s", + "Your %s account was created" : "Ο λογαριασμός %s δημιουργήθηκε", "Welcome aboard" : "Καλώς ήλθατε", "Welcome aboard %s" : "Καλώς ήλθατε %s", "Your username is: %s" : "Το όνομα χρήστη σας είναι: %s", "Set your password" : "Καθορισμός συνθηματικού", "Go to %s" : "Πηγαίνετε στο %s", "Install Client" : "Εγκατάσταση πελάτη", - "Your %s account was created" : "Ο λογαριασμός %s δημιουργήθηκε", "Password confirmation is required" : "Απαιτείται επιβεβαίωση συνθηματικού", "Couldn't remove app." : "Αδυναμία αφαίρεσης εφαρμογής.", "Couldn't update app." : "Αδυναμία ενημέρωσης εφαρμογής", @@ -176,7 +176,6 @@ "Developer documentation" : "Τεκμηρίωση προγραμματιστή", "View in store" : "Προβολή στο κέντρο εφαρμογών", "Limit to groups" : "Όριο στις ομάδες", - "This app has an update available." : "Αυτή η εφαρμογή έχει διαθέσιμη ενημέρωση.", "by %s" : "από %s", "%s-licensed" : "%s-αδειοδοτημένο", "Documentation:" : "Τεκμηρίωση:", @@ -186,6 +185,7 @@ "Report a bug" : "Αναφέρετε σφάλμα", "Show description …" : "Εμφάνιση περιγραφής", "Hide description …" : "Απόκρυψη περιγραφής", + "This app has an update available." : "Αυτή η εφαρμογή έχει διαθέσιμη ενημέρωση.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Αυτή η εφαρμογή δεν έχει ελάχιστη έκδοση του Nextcloud ανατεθειμένη. Αυτό θα αποτελεί σφάλμα στο μέλλον.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Αυτή η εφαρμογή δεν έχει μέγιστη έκδοση του Nextcloud ανατεθειμένη. Αυτό θα αποτελεί σφάλμα στο μέλλον.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Αυτή η εφαρμογή δεν μπορεί να εγκατασταθεί διότι δεν εκπληρώνονται οι ακόλουθες εξαρτήσεις:", diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js index db4f6ea198d..bdb155285be 100644 --- a/settings/l10n/en_GB.js +++ b/settings/l10n/en_GB.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "A login attempt using two-factor authentication failed (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Your <strong>password</strong> or <strong>email</strong> was modified", "Your apps" : "Your apps", + "Updates" : "Updates", "Enabled apps" : "Enabled apps", "Disabled apps" : "Disabled apps", "App bundles" : "App bundles", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Unable to add group.", "Unable to delete group." : "Unable to delete group.", "Invalid SMTP password." : "Invalid SMTP password.", + "Email setting test" : "Email setting test", "Well done, %s!" : "Well done, %s!", "If you received this email, the email configuration seems to be correct." : "If you received this email, the email configuration seems to be correct.", - "Email setting test" : "Email setting test", "Email could not be sent. Check your mail server log" : "Email could not be sent. Check your mail server log", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "A problem occurred while sending the email. Please revise your settings. (Error: %s)", "You need to set your user email before being able to send test emails." : "You need to set your user email before being able to send test emails.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s changed your password on %2$s.", "Your password on %s was changed." : "Your password on %s was changed.", "Your password on %s was reset by an administrator." : "Your password on %s was reset by an administrator.", + "Password for %1$s changed on %2$s" : "Password for %1$s changed on %2$s", "Password changed for %s" : "Password changed for %s", "If you did not request this, please contact an administrator." : "If you did not request this, please contact an administrator.", - "Password for %1$s changed on %2$s" : "Password for %1$s changed on %2$s", "%1$s changed your email address on %2$s." : "%1$s changed your email address on %2$s.", "Your email address on %s was changed." : "Your email address on %s was changed.", "Your email address on %s was changed by an administrator." : "Your email address on %s was changed by an administrator.", + "Email address for %1$s changed on %2$s" : "Email address for %1$s changed on %2$s", "Email address changed for %s" : "Email address changed for %s", "The new email address is %s" : "The new email address is %s", - "Email address for %1$s changed on %2$s" : "Email address for %1$s changed on %2$s", + "Your %s account was created" : "Your %s account was created", "Welcome aboard" : "Welcome aboard", "Welcome aboard %s" : "Welcome aboard %s", "You now have an %s account, you can add, protect, and share your data." : "You now have an %s account, you can add, protect, and share your data.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Set your password", "Go to %s" : "Go to %s", "Install Client" : "Install Client", - "Your %s account was created" : "Your %s account was created", "Password confirmation is required" : "Password confirmation is required", "Couldn't remove app." : "Couldn't remove app.", "Couldn't update app." : "Couldn't update app.", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "Official", "All" : "All", "Update to %s" : "Update to %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["You have %n app update pending","You have %n app updates pending"], "No apps found for your version" : "No apps found for your version", "The app will be downloaded from the app store" : "The app will be downloaded from the app store", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Official apps are developed by the community. They offer additional functionality and are ready for production use.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Error: This app can not be enabled because it makes the server unstable", "Error: Could not disable broken app" : "Error: Could not disable broken app", "Error while disabling broken app" : "Error whilst disabling broken app", + "No app updates available" : "No app updates available", "Updating...." : "Updating....", "Error while updating app" : "Error whilst updating app", "Updated" : "Updated", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "Developer documentation", "View in store" : "View in store", "Limit to groups" : "Limit to groups", - "This app has an update available." : "This app has an update available.", "by %s" : "by %s", "%s-licensed" : "%s-licensed", "Documentation:" : "Documentation:", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "Report a bug", "Show description …" : "Show description …", "Hide description …" : "Hide description …", + "This app has an update available." : "This app has an update available.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "This app has no minimum Nextcloud version assigned. This will cause an error in the future.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will cause an error in the future.", "This app cannot be installed because the following dependencies are not fulfilled:" : "This app cannot be installed because the following dependencies are not fulfilled:", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Unable to add user to group %s", "Unable to remove user from group %s" : "Unable to remove user from group %s", "Sending..." : "Sending...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["You have %n app update pending","You have %n app updates pending"], "Uninstalling ...." : "Uninstalling...", "Error while uninstalling app" : "Error whilst uninstalling app", "Uninstall" : "Uninstall", diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json index 174aa3a4069..cdd1e51aaf4 100644 --- a/settings/l10n/en_GB.json +++ b/settings/l10n/en_GB.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "A login attempt using two-factor authentication failed (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Your <strong>password</strong> or <strong>email</strong> was modified", "Your apps" : "Your apps", + "Updates" : "Updates", "Enabled apps" : "Enabled apps", "Disabled apps" : "Disabled apps", "App bundles" : "App bundles", @@ -30,9 +31,9 @@ "Unable to add group." : "Unable to add group.", "Unable to delete group." : "Unable to delete group.", "Invalid SMTP password." : "Invalid SMTP password.", + "Email setting test" : "Email setting test", "Well done, %s!" : "Well done, %s!", "If you received this email, the email configuration seems to be correct." : "If you received this email, the email configuration seems to be correct.", - "Email setting test" : "Email setting test", "Email could not be sent. Check your mail server log" : "Email could not be sent. Check your mail server log", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "A problem occurred while sending the email. Please revise your settings. (Error: %s)", "You need to set your user email before being able to send test emails." : "You need to set your user email before being able to send test emails.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s changed your password on %2$s.", "Your password on %s was changed." : "Your password on %s was changed.", "Your password on %s was reset by an administrator." : "Your password on %s was reset by an administrator.", + "Password for %1$s changed on %2$s" : "Password for %1$s changed on %2$s", "Password changed for %s" : "Password changed for %s", "If you did not request this, please contact an administrator." : "If you did not request this, please contact an administrator.", - "Password for %1$s changed on %2$s" : "Password for %1$s changed on %2$s", "%1$s changed your email address on %2$s." : "%1$s changed your email address on %2$s.", "Your email address on %s was changed." : "Your email address on %s was changed.", "Your email address on %s was changed by an administrator." : "Your email address on %s was changed by an administrator.", + "Email address for %1$s changed on %2$s" : "Email address for %1$s changed on %2$s", "Email address changed for %s" : "Email address changed for %s", "The new email address is %s" : "The new email address is %s", - "Email address for %1$s changed on %2$s" : "Email address for %1$s changed on %2$s", + "Your %s account was created" : "Your %s account was created", "Welcome aboard" : "Welcome aboard", "Welcome aboard %s" : "Welcome aboard %s", "You now have an %s account, you can add, protect, and share your data." : "You now have an %s account, you can add, protect, and share your data.", @@ -73,7 +75,6 @@ "Set your password" : "Set your password", "Go to %s" : "Go to %s", "Install Client" : "Install Client", - "Your %s account was created" : "Your %s account was created", "Password confirmation is required" : "Password confirmation is required", "Couldn't remove app." : "Couldn't remove app.", "Couldn't update app." : "Couldn't update app.", @@ -87,7 +88,6 @@ "Official" : "Official", "All" : "All", "Update to %s" : "Update to %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["You have %n app update pending","You have %n app updates pending"], "No apps found for your version" : "No apps found for your version", "The app will be downloaded from the app store" : "The app will be downloaded from the app store", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Official apps are developed by the community. They offer additional functionality and are ready for production use.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Error: This app can not be enabled because it makes the server unstable", "Error: Could not disable broken app" : "Error: Could not disable broken app", "Error while disabling broken app" : "Error whilst disabling broken app", + "No app updates available" : "No app updates available", "Updating...." : "Updating....", "Error while updating app" : "Error whilst updating app", "Updated" : "Updated", @@ -183,7 +184,6 @@ "Developer documentation" : "Developer documentation", "View in store" : "View in store", "Limit to groups" : "Limit to groups", - "This app has an update available." : "This app has an update available.", "by %s" : "by %s", "%s-licensed" : "%s-licensed", "Documentation:" : "Documentation:", @@ -193,6 +193,7 @@ "Report a bug" : "Report a bug", "Show description …" : "Show description …", "Hide description …" : "Hide description …", + "This app has an update available." : "This app has an update available.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "This app has no minimum Nextcloud version assigned. This will cause an error in the future.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will cause an error in the future.", "This app cannot be installed because the following dependencies are not fulfilled:" : "This app cannot be installed because the following dependencies are not fulfilled:", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "Unable to add user to group %s", "Unable to remove user from group %s" : "Unable to remove user from group %s", "Sending..." : "Sending...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["You have %n app update pending","You have %n app updates pending"], "Uninstalling ...." : "Uninstalling...", "Error while uninstalling app" : "Error whilst uninstalling app", "Uninstall" : "Uninstall", diff --git a/settings/l10n/es.js b/settings/l10n/es.js index 73b11f01f3b..198f420071b 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "No se pudo agregar el grupo.", "Unable to delete group." : "No se pudo eliminar el grupo.", "Invalid SMTP password." : "Contraseña SMTP inválida", + "Email setting test" : "Prueba de configuración de correo", "Well done, %s!" : "Bien hecho, %s!", "If you received this email, the email configuration seems to be correct." : "Si recibe este correo, la configuración de correo parece ser correcta.", - "Email setting test" : "Prueba de configuración de correo", "Email could not be sent. Check your mail server log" : "No se ha podido enviar el correo. Comprueba el registro del servidor de correo", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocurrió un problema al enviar el mensaje de correo electrónico. Revise su configuración. (Error: %s)", "You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.", @@ -59,15 +59,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s cambió su contraseña en %2$s.", "Your password on %s was changed." : "Su contraseña en %s fue cambiada.", "Your password on %s was reset by an administrator." : "Su contraseña en %s fue restaurada por un administrador.", + "Password for %1$s changed on %2$s" : "Contrasñea para %1$s cambiada en %2$s", "Password changed for %s" : "Contraseña cambiada por %s", "If you did not request this, please contact an administrator." : "Si usted no soliticitó esto, por favor contacte con el administrador.", - "Password for %1$s changed on %2$s" : "Contrasñea para %1$s cambiada en %2$s", "%1$s changed your email address on %2$s." : "%1$s cambió su dirección de correo electrónico en %2$s", "Your email address on %s was changed." : "Su dirección de correo electrónico en %s fue cambiada.", "Your email address on %s was changed by an administrator." : "Su dirección de correo electrónico en %s fue cambiada por un administrador.", + "Email address for %1$s changed on %2$s" : "Dirección de correo electrónico para %1$s cambiada en %2$s", "Email address changed for %s" : "Dirección de correo eletrónico cambiada para %s", "The new email address is %s" : "La nueva direción de correo eletrónica es %s", - "Email address for %1$s changed on %2$s" : "Dirección de correo electrónico para %1$s cambiada en %2$s", + "Your %s account was created" : "Se ha creado su cuenta de %s", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", "You now have an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta en %s, puedes añadir, proteger y compartir tus datos.", @@ -75,7 +76,6 @@ OC.L10N.register( "Set your password" : "Establezca su contraseña", "Go to %s" : "Vaya a %s", "Install Client" : "Instalar cliente", - "Your %s account was created" : "Se ha creado su cuenta de %s", "Password confirmation is required" : "Se requiere confirmar la contraseña", "Couldn't remove app." : "No se pudo eliminar la aplicación.", "Couldn't update app." : "No se pudo actualizar la aplicación.", @@ -89,7 +89,6 @@ OC.L10N.register( "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Actualizar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Tiene %n actualización de app pendiente","Tiene %n actualizaciones de app pendientes"], "No apps found for your version" : "No se han encontrado aplicaciones para su versión", "The app will be downloaded from the app store" : "La app debe ser descargada desde una app store", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las apps oficiales están desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad central y están preparadas para uso en producción.", @@ -185,7 +184,6 @@ OC.L10N.register( "Developer documentation" : "Documentación de desarrollador", "View in store" : "Ver en la tienda", "Limit to groups" : "Límite para grupos", - "This app has an update available." : "Está app tiene una actualización pendiente.", "by %s" : "por %s", "%s-licensed" : "Licencia %s", "Documentation:" : "Documentación:", @@ -195,6 +193,7 @@ OC.L10N.register( "Report a bug" : "Notificar un error", "Show description …" : "Mostrar descripción…", "Hide description …" : "Ocultar descripción…", + "This app has an update available." : "Está app tiene una actualización pendiente.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta app no tiene una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta app no tiene una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede instalarse porque las siguientes dependencias no están cumplimentadas:", @@ -293,6 +292,7 @@ OC.L10N.register( "Restrict users to only share with users in their groups" : "Restringe a los usuarios a compartir solo con otros usuarios en sus grupos", "Exclude groups from sharing" : "Excluye grupos de compartir", "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán, pero no podrán iniciarlos.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Permitir autocompletado del nombre de usuario en el diálogo de compartir. Si se desactiva, se necesita introducir el nombre de usuario completo o la dirección de correo electrónico", "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar texto de renuncia de responsabilidad en la páigina de subida de enlace público. (Solo se muestra cuando se la lista de archivos está oculta.)", "This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la pagina de subida de enlace público cuando la lista de archivos está oculta.", "Tips & tricks" : "Sugerencias y trucos", @@ -394,6 +394,7 @@ OC.L10N.register( "Unable to add user to group %s" : "No se pudo añadir el usuario al grupo %s", "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s", "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Tiene %n actualización de app pendiente","Tiene %n actualizaciones de app pendientes"], "Uninstalling ...." : "Desinstalando...", "Error while uninstalling app" : "Error al desinstalar la aplicación", "Uninstall" : "Desinstalar", diff --git a/settings/l10n/es.json b/settings/l10n/es.json index b164e2bba75..5822e8053c6 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -30,9 +30,9 @@ "Unable to add group." : "No se pudo agregar el grupo.", "Unable to delete group." : "No se pudo eliminar el grupo.", "Invalid SMTP password." : "Contraseña SMTP inválida", + "Email setting test" : "Prueba de configuración de correo", "Well done, %s!" : "Bien hecho, %s!", "If you received this email, the email configuration seems to be correct." : "Si recibe este correo, la configuración de correo parece ser correcta.", - "Email setting test" : "Prueba de configuración de correo", "Email could not be sent. Check your mail server log" : "No se ha podido enviar el correo. Comprueba el registro del servidor de correo", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocurrió un problema al enviar el mensaje de correo electrónico. Revise su configuración. (Error: %s)", "You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.", @@ -57,15 +57,16 @@ "%1$s changed your password on %2$s." : "%1$s cambió su contraseña en %2$s.", "Your password on %s was changed." : "Su contraseña en %s fue cambiada.", "Your password on %s was reset by an administrator." : "Su contraseña en %s fue restaurada por un administrador.", + "Password for %1$s changed on %2$s" : "Contrasñea para %1$s cambiada en %2$s", "Password changed for %s" : "Contraseña cambiada por %s", "If you did not request this, please contact an administrator." : "Si usted no soliticitó esto, por favor contacte con el administrador.", - "Password for %1$s changed on %2$s" : "Contrasñea para %1$s cambiada en %2$s", "%1$s changed your email address on %2$s." : "%1$s cambió su dirección de correo electrónico en %2$s", "Your email address on %s was changed." : "Su dirección de correo electrónico en %s fue cambiada.", "Your email address on %s was changed by an administrator." : "Su dirección de correo electrónico en %s fue cambiada por un administrador.", + "Email address for %1$s changed on %2$s" : "Dirección de correo electrónico para %1$s cambiada en %2$s", "Email address changed for %s" : "Dirección de correo eletrónico cambiada para %s", "The new email address is %s" : "La nueva direción de correo eletrónica es %s", - "Email address for %1$s changed on %2$s" : "Dirección de correo electrónico para %1$s cambiada en %2$s", + "Your %s account was created" : "Se ha creado su cuenta de %s", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", "You now have an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta en %s, puedes añadir, proteger y compartir tus datos.", @@ -73,7 +74,6 @@ "Set your password" : "Establezca su contraseña", "Go to %s" : "Vaya a %s", "Install Client" : "Instalar cliente", - "Your %s account was created" : "Se ha creado su cuenta de %s", "Password confirmation is required" : "Se requiere confirmar la contraseña", "Couldn't remove app." : "No se pudo eliminar la aplicación.", "Couldn't update app." : "No se pudo actualizar la aplicación.", @@ -87,7 +87,6 @@ "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Actualizar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Tiene %n actualización de app pendiente","Tiene %n actualizaciones de app pendientes"], "No apps found for your version" : "No se han encontrado aplicaciones para su versión", "The app will be downloaded from the app store" : "La app debe ser descargada desde una app store", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las apps oficiales están desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad central y están preparadas para uso en producción.", @@ -183,7 +182,6 @@ "Developer documentation" : "Documentación de desarrollador", "View in store" : "Ver en la tienda", "Limit to groups" : "Límite para grupos", - "This app has an update available." : "Está app tiene una actualización pendiente.", "by %s" : "por %s", "%s-licensed" : "Licencia %s", "Documentation:" : "Documentación:", @@ -193,6 +191,7 @@ "Report a bug" : "Notificar un error", "Show description …" : "Mostrar descripción…", "Hide description …" : "Ocultar descripción…", + "This app has an update available." : "Está app tiene una actualización pendiente.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta app no tiene una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta app no tiene una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede instalarse porque las siguientes dependencias no están cumplimentadas:", @@ -291,6 +290,7 @@ "Restrict users to only share with users in their groups" : "Restringe a los usuarios a compartir solo con otros usuarios en sus grupos", "Exclude groups from sharing" : "Excluye grupos de compartir", "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán, pero no podrán iniciarlos.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Permitir autocompletado del nombre de usuario en el diálogo de compartir. Si se desactiva, se necesita introducir el nombre de usuario completo o la dirección de correo electrónico", "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar texto de renuncia de responsabilidad en la páigina de subida de enlace público. (Solo se muestra cuando se la lista de archivos está oculta.)", "This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la pagina de subida de enlace público cuando la lista de archivos está oculta.", "Tips & tricks" : "Sugerencias y trucos", @@ -392,6 +392,7 @@ "Unable to add user to group %s" : "No se pudo añadir el usuario al grupo %s", "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s", "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Tiene %n actualización de app pendiente","Tiene %n actualizaciones de app pendientes"], "Uninstalling ...." : "Desinstalando...", "Error while uninstalling app" : "Error al desinstalar la aplicación", "Uninstall" : "Desinstalar", diff --git a/settings/l10n/es_AR.js b/settings/l10n/es_AR.js index 43f251b13e7..09548e9f313 100644 --- a/settings/l10n/es_AR.js +++ b/settings/l10n/es_AR.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "No fue posible agregar al grupo.", "Unable to delete group." : "No fue posible borrar el grupo.", "Invalid SMTP password." : "Constraseña SMTP inválida. ", + "Email setting test" : "Prueba de ajustes de correo", "Well done, %s!" : "¡Bien hecho, %s!", "If you received this email, the email configuration seems to be correct." : "Si usted ha recibido este correo electrónico, la configuración del correo electrónico parece estar correcta. ", - "Email setting test" : "Prueba de ajustes de correo", "Email could not be sent. Check your mail server log" : "No fue posible enviar el correo electrónico. Favor de verficiar la bitácora de su servidor de correo", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Se presentó un problema al enviar el correo electrónico. Favor de revisar sus configuraciones (Error: %s)", "You need to set your user email before being able to send test emails." : "Requiere establecer su correo electrónico andes de poder enviar correos electrónicos de prueba. ", @@ -59,22 +59,22 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s cambió su contraseña el %2$s.", "Your password on %s was changed." : "Su contraseña de %s fue cambiada. ", "Your password on %s was reset by an administrator." : "Su contraseña de %s fue restablecida por un administrador.", + "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", "Password changed for %s" : "La contraseña fue cambiada para %s", "If you did not request this, please contact an administrator." : "Si no lo solicitó, favor de contactar a un administrador. ", - "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", "%1$s changed your email address on %2$s." : "%1$s cambió su dirección de correo electrónico el %2$s.", "Your email address on %s was changed." : "Su dirección de correo electrónico en %s fue cambiada. ", "Your email address on %s was changed by an administrator." : "Su dirección de correo electrónico en %s fue cambiada por un adminsitrador. ", + "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", "Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s", "The new email address is %s" : "La nueva dirección de correo electrónico es %s", - "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", + "Your %s account was created" : "Su %s cuenta ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", "Your username is: %s" : "Su nombre de usuario es: %s", "Set your password" : "Establezca su contraseña", "Go to %s" : "Ir a %s", "Install Client" : "Instalar el cliente", - "Your %s account was created" : "Su %s cuenta ha sido creada", "Password confirmation is required" : "Se requiere la confirmación de la contraseña", "Couldn't remove app." : "No fue posible eliminar la aplicación. ", "Couldn't update app." : "No fue posible actualizar la aplicación.", @@ -88,7 +88,6 @@ OC.L10N.register( "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Actualizar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Usted tiene %n actualizaciones de la aplicación pendientes"], "No apps found for your version" : "No se encontraron aplicaciones para su versión", "The app will be downloaded from the app store" : "La aplicación será descargada de la tienda de aplicaciones <app store>", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las aplicaciones oficiales son desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad centralizada y se encuentran listas para ser usadas en producción. ", @@ -180,7 +179,6 @@ OC.L10N.register( "Developer documentation" : "Documentación del desarrollador", "View in store" : "Ver en la tienda", "Limit to groups" : "Limitar a grupos", - "This app has an update available." : "Esta aplicación tiene una actualización disponible.", "by %s" : "por %s", "%s-licensed" : "%s-licensed", "Documentation:" : "Documentación:", @@ -190,6 +188,7 @@ OC.L10N.register( "Report a bug" : "Reporte un tema", "Show description …" : "Mostrar descripción ...", "Hide description …" : "Ocultar descripción ...", + "This app has an update available." : "Esta aplicación tiene una actualización disponible.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:", @@ -370,6 +369,7 @@ OC.L10N.register( "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s", "Unable to remove user from group %s" : "No fue posible eliminar el usuario del grupo %s", "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Usted tiene %n actualizaciones de la aplicación pendientes"], "Uninstalling ...." : "Desinstalando ...", "Error while uninstalling app" : "Se presentó un error al desinstalar la aplicación", "Uninstall" : "Desinstalar", diff --git a/settings/l10n/es_AR.json b/settings/l10n/es_AR.json index 83b2b85e5d2..bceb15e5c0f 100644 --- a/settings/l10n/es_AR.json +++ b/settings/l10n/es_AR.json @@ -30,9 +30,9 @@ "Unable to add group." : "No fue posible agregar al grupo.", "Unable to delete group." : "No fue posible borrar el grupo.", "Invalid SMTP password." : "Constraseña SMTP inválida. ", + "Email setting test" : "Prueba de ajustes de correo", "Well done, %s!" : "¡Bien hecho, %s!", "If you received this email, the email configuration seems to be correct." : "Si usted ha recibido este correo electrónico, la configuración del correo electrónico parece estar correcta. ", - "Email setting test" : "Prueba de ajustes de correo", "Email could not be sent. Check your mail server log" : "No fue posible enviar el correo electrónico. Favor de verficiar la bitácora de su servidor de correo", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Se presentó un problema al enviar el correo electrónico. Favor de revisar sus configuraciones (Error: %s)", "You need to set your user email before being able to send test emails." : "Requiere establecer su correo electrónico andes de poder enviar correos electrónicos de prueba. ", @@ -57,22 +57,22 @@ "%1$s changed your password on %2$s." : "%1$s cambió su contraseña el %2$s.", "Your password on %s was changed." : "Su contraseña de %s fue cambiada. ", "Your password on %s was reset by an administrator." : "Su contraseña de %s fue restablecida por un administrador.", + "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", "Password changed for %s" : "La contraseña fue cambiada para %s", "If you did not request this, please contact an administrator." : "Si no lo solicitó, favor de contactar a un administrador. ", - "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", "%1$s changed your email address on %2$s." : "%1$s cambió su dirección de correo electrónico el %2$s.", "Your email address on %s was changed." : "Su dirección de correo electrónico en %s fue cambiada. ", "Your email address on %s was changed by an administrator." : "Su dirección de correo electrónico en %s fue cambiada por un adminsitrador. ", + "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", "Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s", "The new email address is %s" : "La nueva dirección de correo electrónico es %s", - "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", + "Your %s account was created" : "Su %s cuenta ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", "Your username is: %s" : "Su nombre de usuario es: %s", "Set your password" : "Establezca su contraseña", "Go to %s" : "Ir a %s", "Install Client" : "Instalar el cliente", - "Your %s account was created" : "Su %s cuenta ha sido creada", "Password confirmation is required" : "Se requiere la confirmación de la contraseña", "Couldn't remove app." : "No fue posible eliminar la aplicación. ", "Couldn't update app." : "No fue posible actualizar la aplicación.", @@ -86,7 +86,6 @@ "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Actualizar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Usted tiene %n actualizaciones de la aplicación pendientes"], "No apps found for your version" : "No se encontraron aplicaciones para su versión", "The app will be downloaded from the app store" : "La aplicación será descargada de la tienda de aplicaciones <app store>", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las aplicaciones oficiales son desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad centralizada y se encuentran listas para ser usadas en producción. ", @@ -178,7 +177,6 @@ "Developer documentation" : "Documentación del desarrollador", "View in store" : "Ver en la tienda", "Limit to groups" : "Limitar a grupos", - "This app has an update available." : "Esta aplicación tiene una actualización disponible.", "by %s" : "por %s", "%s-licensed" : "%s-licensed", "Documentation:" : "Documentación:", @@ -188,6 +186,7 @@ "Report a bug" : "Reporte un tema", "Show description …" : "Mostrar descripción ...", "Hide description …" : "Ocultar descripción ...", + "This app has an update available." : "Esta aplicación tiene una actualización disponible.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:", @@ -368,6 +367,7 @@ "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s", "Unable to remove user from group %s" : "No fue posible eliminar el usuario del grupo %s", "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Usted tiene %n actualizaciones de la aplicación pendientes"], "Uninstalling ...." : "Desinstalando ...", "Error while uninstalling app" : "Se presentó un error al desinstalar la aplicación", "Uninstall" : "Desinstalar", diff --git a/settings/l10n/es_CL.js b/settings/l10n/es_CL.js new file mode 100644 index 00000000000..690d3e3dcd3 --- /dev/null +++ b/settings/l10n/es_CL.js @@ -0,0 +1,8 @@ +OC.L10N.register( + "settings", + { + "Cancel" : "Cancelar", + "Password" : "Clave", + "Username" : "Usuario" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/es_CL.json b/settings/l10n/es_CL.json new file mode 100644 index 00000000000..79f9fcc3236 --- /dev/null +++ b/settings/l10n/es_CL.json @@ -0,0 +1,6 @@ +{ "translations": { + "Cancel" : "Cancelar", + "Password" : "Clave", + "Username" : "Usuario" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/settings/l10n/es_MX.js b/settings/l10n/es_MX.js index 6f07754ebf2..2e49b039e4d 100644 --- a/settings/l10n/es_MX.js +++ b/settings/l10n/es_MX.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "No fue posible agregar el grupo.", "Unable to delete group." : "No fue posible borrar el grupo.", "Invalid SMTP password." : "Constraseña SMTP inválida. ", + "Email setting test" : "Prueba de ajustes de correo", "Well done, %s!" : "¡Bien hecho, %s!", "If you received this email, the email configuration seems to be correct." : "Si has recibido este correo electrónico, la configuración del correo electrónico parece estar correcta. ", - "Email setting test" : "Prueba de ajustes de correo", "Email could not be sent. Check your mail server log" : "No fue posible enviar el correo electrónico. Por favor verfica la bitácora de tu servidor de correo", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Se presentó un problema al enviar el correo electrónico. Por favor revisa tus configuraciones (Error: %s)", "You need to set your user email before being able to send test emails." : "Requieres establecer tu correo electrónico antes de poder enviar correos electrónicos de prueba. ", @@ -59,15 +59,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s cambió tu contraseña el %2$s.", "Your password on %s was changed." : "Tu contraseña de %s fue cambiada. ", "Your password on %s was reset by an administrator." : "Tu contraseña de %s fue restablecida por un administrador.", + "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", "Password changed for %s" : "La contraseña fue cambiada para %s", "If you did not request this, please contact an administrator." : "Si no lo solicitaste, por favor contacta a un administrador. ", - "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", "%1$s changed your email address on %2$s." : "%1$s cambió tu dirección de correo electrónico el %2$s.", "Your email address on %s was changed." : "Tu dirección de correo electrónico en %s fue cambiada. ", "Your email address on %s was changed by an administrator." : "Tu dirección de correo electrónico en %s fue cambiada por un adminsitrador. ", + "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", "Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s", "The new email address is %s" : "La nueva dirección de correo electrónico es %s", - "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", + "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", "You now have an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos.", @@ -75,7 +76,6 @@ OC.L10N.register( "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", "Install Client" : "Instalar el cliente", - "Your %s account was created" : "Tu cuenta %s ha sido creada", "Password confirmation is required" : "Se requiere la confirmación de la contraseña", "Couldn't remove app." : "No fue posible eliminar la aplicación. ", "Couldn't update app." : "No fue posible actualizar la aplicación.", @@ -89,7 +89,6 @@ OC.L10N.register( "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Actualizar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Tienes %n actualizaciones de la aplicación pendientes"], "No apps found for your version" : "No se encontraron aplicaciones para tu versión", "The app will be downloaded from the app store" : "La aplicación será descargada de la tienda de aplicaciones <app store>", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las aplicaciones oficiales son desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad centralizada y se encuentran listas para ser usadas en producción. ", @@ -185,7 +184,6 @@ OC.L10N.register( "Developer documentation" : "Documentación del desarrollador", "View in store" : "Ver en la tienda", "Limit to groups" : "Limitar a grupos", - "This app has an update available." : "Esta aplicación tiene una actualización disponible.", "by %s" : "por %s", "%s-licensed" : "%s-licensed", "Documentation:" : "Documentación:", @@ -195,6 +193,7 @@ OC.L10N.register( "Report a bug" : "Reporta un detalle", "Show description …" : "Mostrar descripción ...", "Hide description …" : "Ocultar descripción ...", + "This app has an update available." : "Esta aplicación tiene una actualización disponible.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:", @@ -325,7 +324,7 @@ OC.L10N.register( "Email" : "Correo electrónico", "Your email address" : "Tu dirección de correo electrónico", "No email address set" : "No se ha establecido la dirección de correo electrónico", - "For password reset and notifications" : "Para reestablecer contraseña y notificaciones", + "For password reset and notifications" : "Para restablecer contraseña y notificaciones", "Phone number" : "Número de teléfono", "Your phone number" : "Su número telefónico", "Address" : "Dirección", @@ -395,6 +394,7 @@ OC.L10N.register( "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s", "Unable to remove user from group %s" : "No fue posible eliminar el usuario del grupo %s", "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Tienes %n actualizaciones de la aplicación pendientes"], "Uninstalling ...." : "Desinstalando ...", "Error while uninstalling app" : "Se presentó un error al desinstalar la aplicación", "Uninstall" : "Desinstalar", diff --git a/settings/l10n/es_MX.json b/settings/l10n/es_MX.json index 3bf94f09e42..c1b76a53c25 100644 --- a/settings/l10n/es_MX.json +++ b/settings/l10n/es_MX.json @@ -30,9 +30,9 @@ "Unable to add group." : "No fue posible agregar el grupo.", "Unable to delete group." : "No fue posible borrar el grupo.", "Invalid SMTP password." : "Constraseña SMTP inválida. ", + "Email setting test" : "Prueba de ajustes de correo", "Well done, %s!" : "¡Bien hecho, %s!", "If you received this email, the email configuration seems to be correct." : "Si has recibido este correo electrónico, la configuración del correo electrónico parece estar correcta. ", - "Email setting test" : "Prueba de ajustes de correo", "Email could not be sent. Check your mail server log" : "No fue posible enviar el correo electrónico. Por favor verfica la bitácora de tu servidor de correo", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Se presentó un problema al enviar el correo electrónico. Por favor revisa tus configuraciones (Error: %s)", "You need to set your user email before being able to send test emails." : "Requieres establecer tu correo electrónico antes de poder enviar correos electrónicos de prueba. ", @@ -57,15 +57,16 @@ "%1$s changed your password on %2$s." : "%1$s cambió tu contraseña el %2$s.", "Your password on %s was changed." : "Tu contraseña de %s fue cambiada. ", "Your password on %s was reset by an administrator." : "Tu contraseña de %s fue restablecida por un administrador.", + "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", "Password changed for %s" : "La contraseña fue cambiada para %s", "If you did not request this, please contact an administrator." : "Si no lo solicitaste, por favor contacta a un administrador. ", - "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", "%1$s changed your email address on %2$s." : "%1$s cambió tu dirección de correo electrónico el %2$s.", "Your email address on %s was changed." : "Tu dirección de correo electrónico en %s fue cambiada. ", "Your email address on %s was changed by an administrator." : "Tu dirección de correo electrónico en %s fue cambiada por un adminsitrador. ", + "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", "Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s", "The new email address is %s" : "La nueva dirección de correo electrónico es %s", - "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", + "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", "You now have an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos.", @@ -73,7 +74,6 @@ "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", "Install Client" : "Instalar el cliente", - "Your %s account was created" : "Tu cuenta %s ha sido creada", "Password confirmation is required" : "Se requiere la confirmación de la contraseña", "Couldn't remove app." : "No fue posible eliminar la aplicación. ", "Couldn't update app." : "No fue posible actualizar la aplicación.", @@ -87,7 +87,6 @@ "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Actualizar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Tienes %n actualizaciones de la aplicación pendientes"], "No apps found for your version" : "No se encontraron aplicaciones para tu versión", "The app will be downloaded from the app store" : "La aplicación será descargada de la tienda de aplicaciones <app store>", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las aplicaciones oficiales son desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad centralizada y se encuentran listas para ser usadas en producción. ", @@ -183,7 +182,6 @@ "Developer documentation" : "Documentación del desarrollador", "View in store" : "Ver en la tienda", "Limit to groups" : "Limitar a grupos", - "This app has an update available." : "Esta aplicación tiene una actualización disponible.", "by %s" : "por %s", "%s-licensed" : "%s-licensed", "Documentation:" : "Documentación:", @@ -193,6 +191,7 @@ "Report a bug" : "Reporta un detalle", "Show description …" : "Mostrar descripción ...", "Hide description …" : "Ocultar descripción ...", + "This app has an update available." : "Esta aplicación tiene una actualización disponible.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:", @@ -323,7 +322,7 @@ "Email" : "Correo electrónico", "Your email address" : "Tu dirección de correo electrónico", "No email address set" : "No se ha establecido la dirección de correo electrónico", - "For password reset and notifications" : "Para reestablecer contraseña y notificaciones", + "For password reset and notifications" : "Para restablecer contraseña y notificaciones", "Phone number" : "Número de teléfono", "Your phone number" : "Su número telefónico", "Address" : "Dirección", @@ -393,6 +392,7 @@ "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s", "Unable to remove user from group %s" : "No fue posible eliminar el usuario del grupo %s", "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Tienes %n actualizaciones de la aplicación pendientes"], "Uninstalling ...." : "Desinstalando ...", "Error while uninstalling app" : "Se presentó un error al desinstalar la aplicación", "Uninstall" : "Desinstalar", diff --git a/settings/l10n/eu.js b/settings/l10n/eu.js index 8743e0e4249..c8ce2d2038a 100644 --- a/settings/l10n/eu.js +++ b/settings/l10n/eu.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "Ezin izan da taldea gehitu.", "Unable to delete group." : "Ezin izan da taldea ezabatu.", "Invalid SMTP password." : "SMTP pasahitza baliogabea", + "Email setting test" : "E-postaren ezarpenen proba", "Well done, %s!" : "Ongi egina, %s!", "If you received this email, the email configuration seems to be correct." : "E-posta mezu hau jaso baduzu, e-postaren ezarpenak egokiak direnaren seinale.", - "Email setting test" : "E-postaren ezarpenen proba", "Email could not be sent. Check your mail server log" : "E-posta mezua ezin izan da bidali. Begiratu zure posta-zerbitzariaren egunkaria", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Arazo bat sortu da posta bidaltzerakoan. Berrikusi zure ezarpenak. (Error: %s)", "You need to set your user email before being able to send test emails." : "Epostaren erabiltzailea zehaztu behar duzu probako eposta bidali aurretik.", @@ -59,22 +59,22 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s-(e)k zure pasahitza aldatu du %2$s-(e)n", "Your password on %s was changed." : "Zure %s-(e)ko pasahitza aldatu da.", "Your password on %s was reset by an administrator." : "Administratzaile batek zure %s-(e)ko pasahitza berrezarri du", + "Password for %1$s changed on %2$s" : "%1$s-(r)en %2$s-(e)ko pasahitza aldatu da", "Password changed for %s" : "%s-(r)en pasahitza aldatu da", "If you did not request this, please contact an administrator." : "Zuk ez baduzu hau eskatu, jarri kontaktuan administratzailearekin.", - "Password for %1$s changed on %2$s" : "%1$s-(r)en %2$s-(e)ko pasahitza aldatu da", "%1$s changed your email address on %2$s." : "%1$s-(e)k zure e-posta helbidea aldatu du %2$s-(e)n", "Your email address on %s was changed." : "Zure %s-(e)ko e-posta helbidea aldatu da.", "Your email address on %s was changed by an administrator." : "Administratzaile batek zure %s-(e)ko e-posta helbidea berrezarri du", + "Email address for %1$s changed on %2$s" : "%1$s-(r)en %2$s-(e)ko e-posta helbidea aldatu da", "Email address changed for %s" : "%s-(r)en e-posta helbidea aldatu da", "The new email address is %s" : "E-posta helbide berria hau da: %s", - "Email address for %1$s changed on %2$s" : "%1$s-(r)en %2$s-(e)ko e-posta helbidea aldatu da", + "Your %s account was created" : "Zure %s kontua sortu da", "Welcome aboard" : "Ongi etorri barrura", "Welcome aboard %s" : "Ongi etorri barrura, %s", "Your username is: %s" : "Zure erabiltzailea hau da: %s", "Set your password" : "Ezarri zure pasahitza", "Go to %s" : "%s-ra joan", "Install Client" : "Instalatu bezeroa", - "Your %s account was created" : "Zure %s kontua sortu da", "Password confirmation is required" : "Pasahitza konfirmatzea beharrezkoa da", "Couldn't remove app." : "Ezin izan da aplikazioa ezabatu..", "Couldn't update app." : "Ezin izan da aplikazioa eguneratu.", @@ -88,7 +88,6 @@ OC.L10N.register( "Official" : "Ofiziala", "All" : "Denak", "Update to %s" : "Eguneratu %sra", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Aplikazio %n daukazu eguneratzeko","%n aplikazio dituzu eguneratzeko"], "No apps found for your version" : "Ez dira aplikaziorik aurkitu zure bertsiorako", "The app will be downloaded from the app store" : "Aplikazioa aplikazio dendatik deskargatuko da", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikazio ofizialak komunitateak eta komunitatean garatzen dira. Funtzionalak dira eta produkziorako gertu daude.", @@ -182,7 +181,6 @@ OC.L10N.register( "A valid password must be provided" : "Baliozko pasahitza eman behar da", "A valid email must be provided" : "Baliozko posta elektronikoa eman behar da", "Developer documentation" : "Garatzailearen dokumentazioa", - "This app has an update available." : "Aplikazio honek eguneraketa bat eskuragarri ditu.", "by %s" : "by %s", "%s-licensed" : "%s-lizentziapean", "Documentation:" : "Dokumentazioa:", @@ -192,6 +190,7 @@ OC.L10N.register( "Report a bug" : "Akats baten berri eman", "Show description …" : "Erakutsi deskribapena ...", "Hide description …" : "Ezkutatu deskribapena ...", + "This app has an update available." : "Aplikazio honek eguneraketa bat eskuragarri ditu.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "This app has no minimum Nextcloud version assigned. This will be an error in the future.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will be an error in the future.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Aplikazioa ezin da instalatu hurrengo menpekotasunak betetzen ez direlako:", @@ -338,6 +337,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Ezin izan da erabiltzailea %s taldera gehitu", "Unable to remove user from group %s" : "Ezin izan da erabiltzailea %s taldetik ezabatu", "Sending..." : "Bidaltzen...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Aplikazio %n daukazu eguneratzeko","%n aplikazio dituzu eguneratzeko"], "Uninstalling ...." : "Desinstalatzen ...", "Error while uninstalling app" : "Erroea izan da aplikazioa desinstalatzerakoan", "Uninstall" : "Desinstalatu", diff --git a/settings/l10n/eu.json b/settings/l10n/eu.json index 13dfae98eff..2c3315d1ca3 100644 --- a/settings/l10n/eu.json +++ b/settings/l10n/eu.json @@ -30,9 +30,9 @@ "Unable to add group." : "Ezin izan da taldea gehitu.", "Unable to delete group." : "Ezin izan da taldea ezabatu.", "Invalid SMTP password." : "SMTP pasahitza baliogabea", + "Email setting test" : "E-postaren ezarpenen proba", "Well done, %s!" : "Ongi egina, %s!", "If you received this email, the email configuration seems to be correct." : "E-posta mezu hau jaso baduzu, e-postaren ezarpenak egokiak direnaren seinale.", - "Email setting test" : "E-postaren ezarpenen proba", "Email could not be sent. Check your mail server log" : "E-posta mezua ezin izan da bidali. Begiratu zure posta-zerbitzariaren egunkaria", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Arazo bat sortu da posta bidaltzerakoan. Berrikusi zure ezarpenak. (Error: %s)", "You need to set your user email before being able to send test emails." : "Epostaren erabiltzailea zehaztu behar duzu probako eposta bidali aurretik.", @@ -57,22 +57,22 @@ "%1$s changed your password on %2$s." : "%1$s-(e)k zure pasahitza aldatu du %2$s-(e)n", "Your password on %s was changed." : "Zure %s-(e)ko pasahitza aldatu da.", "Your password on %s was reset by an administrator." : "Administratzaile batek zure %s-(e)ko pasahitza berrezarri du", + "Password for %1$s changed on %2$s" : "%1$s-(r)en %2$s-(e)ko pasahitza aldatu da", "Password changed for %s" : "%s-(r)en pasahitza aldatu da", "If you did not request this, please contact an administrator." : "Zuk ez baduzu hau eskatu, jarri kontaktuan administratzailearekin.", - "Password for %1$s changed on %2$s" : "%1$s-(r)en %2$s-(e)ko pasahitza aldatu da", "%1$s changed your email address on %2$s." : "%1$s-(e)k zure e-posta helbidea aldatu du %2$s-(e)n", "Your email address on %s was changed." : "Zure %s-(e)ko e-posta helbidea aldatu da.", "Your email address on %s was changed by an administrator." : "Administratzaile batek zure %s-(e)ko e-posta helbidea berrezarri du", + "Email address for %1$s changed on %2$s" : "%1$s-(r)en %2$s-(e)ko e-posta helbidea aldatu da", "Email address changed for %s" : "%s-(r)en e-posta helbidea aldatu da", "The new email address is %s" : "E-posta helbide berria hau da: %s", - "Email address for %1$s changed on %2$s" : "%1$s-(r)en %2$s-(e)ko e-posta helbidea aldatu da", + "Your %s account was created" : "Zure %s kontua sortu da", "Welcome aboard" : "Ongi etorri barrura", "Welcome aboard %s" : "Ongi etorri barrura, %s", "Your username is: %s" : "Zure erabiltzailea hau da: %s", "Set your password" : "Ezarri zure pasahitza", "Go to %s" : "%s-ra joan", "Install Client" : "Instalatu bezeroa", - "Your %s account was created" : "Zure %s kontua sortu da", "Password confirmation is required" : "Pasahitza konfirmatzea beharrezkoa da", "Couldn't remove app." : "Ezin izan da aplikazioa ezabatu..", "Couldn't update app." : "Ezin izan da aplikazioa eguneratu.", @@ -86,7 +86,6 @@ "Official" : "Ofiziala", "All" : "Denak", "Update to %s" : "Eguneratu %sra", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Aplikazio %n daukazu eguneratzeko","%n aplikazio dituzu eguneratzeko"], "No apps found for your version" : "Ez dira aplikaziorik aurkitu zure bertsiorako", "The app will be downloaded from the app store" : "Aplikazioa aplikazio dendatik deskargatuko da", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikazio ofizialak komunitateak eta komunitatean garatzen dira. Funtzionalak dira eta produkziorako gertu daude.", @@ -180,7 +179,6 @@ "A valid password must be provided" : "Baliozko pasahitza eman behar da", "A valid email must be provided" : "Baliozko posta elektronikoa eman behar da", "Developer documentation" : "Garatzailearen dokumentazioa", - "This app has an update available." : "Aplikazio honek eguneraketa bat eskuragarri ditu.", "by %s" : "by %s", "%s-licensed" : "%s-lizentziapean", "Documentation:" : "Dokumentazioa:", @@ -190,6 +188,7 @@ "Report a bug" : "Akats baten berri eman", "Show description …" : "Erakutsi deskribapena ...", "Hide description …" : "Ezkutatu deskribapena ...", + "This app has an update available." : "Aplikazio honek eguneraketa bat eskuragarri ditu.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "This app has no minimum Nextcloud version assigned. This will be an error in the future.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will be an error in the future.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Aplikazioa ezin da instalatu hurrengo menpekotasunak betetzen ez direlako:", @@ -336,6 +335,7 @@ "Unable to add user to group %s" : "Ezin izan da erabiltzailea %s taldera gehitu", "Unable to remove user from group %s" : "Ezin izan da erabiltzailea %s taldetik ezabatu", "Sending..." : "Bidaltzen...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Aplikazio %n daukazu eguneratzeko","%n aplikazio dituzu eguneratzeko"], "Uninstalling ...." : "Desinstalatzen ...", "Error while uninstalling app" : "Erroea izan da aplikazioa desinstalatzerakoan", "Uninstall" : "Desinstalatu", diff --git a/settings/l10n/fi.js b/settings/l10n/fi.js index 68148baa695..c423725c222 100644 --- a/settings/l10n/fi.js +++ b/settings/l10n/fi.js @@ -31,9 +31,9 @@ OC.L10N.register( "Unable to add group." : "Ryhmän lisääminen ei onnistunut.", "Unable to delete group." : "Ryhmän poistaminen ei onnistunut.", "Invalid SMTP password." : "Virheellinen SMTP-salasana.", + "Email setting test" : "Sähköpostiasetusten testaus", "Well done, %s!" : "Hyvin tehty, %s!", "If you received this email, the email configuration seems to be correct." : "Jos vastaanotit tämän viestin, sähköpostimääritykset vaikuttavat olevan kunnossa.", - "Email setting test" : "Sähköpostiasetusten testaus", "Email could not be sent. Check your mail server log" : "Sähköpostia ei voitu lähettää. Tarkista sähköpostipalvelimen lokitiedosto", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Sähköpostia lähettäessä tapahtui virhe. Tarkista asetukset. (Virhe: %s)", "You need to set your user email before being able to send test emails." : "Aseta sähköpostiosoite, jotta voit testata sähköpostin toimivuutta.", @@ -53,22 +53,22 @@ OC.L10N.register( "Email saved" : "Sähköposti tallennettu", "Your password on %s was changed." : "Salasanasi osoitteessa %s on muutettu.", "Your password on %s was reset by an administrator." : "Ylläpitäjä muutti salasanasi osoitteessa %s.", + "Password for %1$s changed on %2$s" : "Salasana käyttäjälle %1$s muutettu osoitteessa %2$s", "Password changed for %s" : "Salasana muutettu käyttäjälle %s", "If you did not request this, please contact an administrator." : "Jos et pyytänyt tätä, ota yhteyttä ylläpitäjään.", - "Password for %1$s changed on %2$s" : "Salasana käyttäjälle %1$s muutettu osoitteessa %2$s", "%1$s changed your email address on %2$s." : "%1$s vaihtoi sähköpostiosoitteesi osoitteessa %2$s.", "Your email address on %s was changed." : "Sähköpostiosoitteesi osoitteessa %s on muutettu.", "Your email address on %s was changed by an administrator." : "Ylläpitäjä muutti sähköpostiosoitteesi osoitteessa %s.", + "Email address for %1$s changed on %2$s" : "Sähköpostiosoite käyttäjälle %1$s muutettu osoitteessa %2$s", "Email address changed for %s" : "Sähköpostiosoite muutettu käyttäjälle %s", "The new email address is %s" : "Uusi sähköpostiosoite on %s", - "Email address for %1$s changed on %2$s" : "Sähköpostiosoite käyttäjälle %1$s muutettu osoitteessa %2$s", + "Your %s account was created" : "%s-tilisi luotiin", "Welcome aboard" : "Tervetuloa mukaan", "Welcome aboard %s" : "Tervetuloa mukaan %s", "Your username is: %s" : "Käyttäjätunnuksesi on: %s", "Set your password" : "Aseta salasanasi", "Go to %s" : "Siirry %s-palveluun", "Install Client" : "Asenna sovellus", - "Your %s account was created" : "%s-tilisi luotiin", "Password confirmation is required" : "Salasanavahvistus vaaditaan", "Couldn't remove app." : "Sovelluksen poistaminen epäonnistui.", "Couldn't update app." : "Sovelluksen päivitys epäonnistui.", @@ -82,7 +82,6 @@ OC.L10N.register( "Official" : "Virallinen", "All" : "Kaikki", "Update to %s" : "Päivitä versioon %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["%n sovelluspäivitys odottaa","%n sovelluspäivitystä odottaa"], "No apps found for your version" : "Sovelluksia ei löytynyt versiollesi", "The app will be downloaded from the app store" : "Sovellus ladataan sovelluskaupasta", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Viralliset sovellukset ovat yhteisössä kehitettyjä. Ne tarjoavat keskeistä toiminnallisuutta ja ovat valmiita tuotantokäyttöön.", @@ -168,7 +167,6 @@ OC.L10N.register( "Developer documentation" : "Kehittäjädokumentaatio", "View in store" : "Näytä kaupassa", "Limit to groups" : "Rajoita ryhmiin", - "This app has an update available." : "Tähän sovellukseen on päivitys saatavilla.", "by %s" : "tekijä %s", "%s-licensed" : "%s-lisensoitu", "Documentation:" : "Ohjeistus:", @@ -178,6 +176,7 @@ OC.L10N.register( "Report a bug" : "Ilmoita viasta", "Show description …" : "Näytä kuvaus…", "Hide description …" : "Piilota kuvaus…", + "This app has an update available." : "Tähän sovellukseen on päivitys saatavilla.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Tämä sovellus ei ole määritellyt minimi Nextcloud-versiota. Tämä tulee olemaan ongelma tulevaisuudessa.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tämä sovellus ei ole määritellyt maksimi Nextcloud-versiota. Tämä tulee olemaan ongelma tulevaisuudessa.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Tätä sovellusta ei voi asentaa, koska seuraavat riippuvuudet eivät täyty:", @@ -351,6 +350,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Käyttäjän tai ryhmän %s lisääminen ei onnistu", "Unable to remove user from group %s" : "Käyttäjän poistaminen ryhmästä %s ei onnistu", "Sending..." : "Lähetetään...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["%n sovelluspäivitys odottaa","%n sovelluspäivitystä odottaa"], "Uninstalling ...." : "Poistetaan asennusta...", "Error while uninstalling app" : "Virhe sovellusta poistaessa", "Uninstall" : "Poista asennus", diff --git a/settings/l10n/fi.json b/settings/l10n/fi.json index 37c27665200..868cbf93de2 100644 --- a/settings/l10n/fi.json +++ b/settings/l10n/fi.json @@ -29,9 +29,9 @@ "Unable to add group." : "Ryhmän lisääminen ei onnistunut.", "Unable to delete group." : "Ryhmän poistaminen ei onnistunut.", "Invalid SMTP password." : "Virheellinen SMTP-salasana.", + "Email setting test" : "Sähköpostiasetusten testaus", "Well done, %s!" : "Hyvin tehty, %s!", "If you received this email, the email configuration seems to be correct." : "Jos vastaanotit tämän viestin, sähköpostimääritykset vaikuttavat olevan kunnossa.", - "Email setting test" : "Sähköpostiasetusten testaus", "Email could not be sent. Check your mail server log" : "Sähköpostia ei voitu lähettää. Tarkista sähköpostipalvelimen lokitiedosto", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Sähköpostia lähettäessä tapahtui virhe. Tarkista asetukset. (Virhe: %s)", "You need to set your user email before being able to send test emails." : "Aseta sähköpostiosoite, jotta voit testata sähköpostin toimivuutta.", @@ -51,22 +51,22 @@ "Email saved" : "Sähköposti tallennettu", "Your password on %s was changed." : "Salasanasi osoitteessa %s on muutettu.", "Your password on %s was reset by an administrator." : "Ylläpitäjä muutti salasanasi osoitteessa %s.", + "Password for %1$s changed on %2$s" : "Salasana käyttäjälle %1$s muutettu osoitteessa %2$s", "Password changed for %s" : "Salasana muutettu käyttäjälle %s", "If you did not request this, please contact an administrator." : "Jos et pyytänyt tätä, ota yhteyttä ylläpitäjään.", - "Password for %1$s changed on %2$s" : "Salasana käyttäjälle %1$s muutettu osoitteessa %2$s", "%1$s changed your email address on %2$s." : "%1$s vaihtoi sähköpostiosoitteesi osoitteessa %2$s.", "Your email address on %s was changed." : "Sähköpostiosoitteesi osoitteessa %s on muutettu.", "Your email address on %s was changed by an administrator." : "Ylläpitäjä muutti sähköpostiosoitteesi osoitteessa %s.", + "Email address for %1$s changed on %2$s" : "Sähköpostiosoite käyttäjälle %1$s muutettu osoitteessa %2$s", "Email address changed for %s" : "Sähköpostiosoite muutettu käyttäjälle %s", "The new email address is %s" : "Uusi sähköpostiosoite on %s", - "Email address for %1$s changed on %2$s" : "Sähköpostiosoite käyttäjälle %1$s muutettu osoitteessa %2$s", + "Your %s account was created" : "%s-tilisi luotiin", "Welcome aboard" : "Tervetuloa mukaan", "Welcome aboard %s" : "Tervetuloa mukaan %s", "Your username is: %s" : "Käyttäjätunnuksesi on: %s", "Set your password" : "Aseta salasanasi", "Go to %s" : "Siirry %s-palveluun", "Install Client" : "Asenna sovellus", - "Your %s account was created" : "%s-tilisi luotiin", "Password confirmation is required" : "Salasanavahvistus vaaditaan", "Couldn't remove app." : "Sovelluksen poistaminen epäonnistui.", "Couldn't update app." : "Sovelluksen päivitys epäonnistui.", @@ -80,7 +80,6 @@ "Official" : "Virallinen", "All" : "Kaikki", "Update to %s" : "Päivitä versioon %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["%n sovelluspäivitys odottaa","%n sovelluspäivitystä odottaa"], "No apps found for your version" : "Sovelluksia ei löytynyt versiollesi", "The app will be downloaded from the app store" : "Sovellus ladataan sovelluskaupasta", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Viralliset sovellukset ovat yhteisössä kehitettyjä. Ne tarjoavat keskeistä toiminnallisuutta ja ovat valmiita tuotantokäyttöön.", @@ -166,7 +165,6 @@ "Developer documentation" : "Kehittäjädokumentaatio", "View in store" : "Näytä kaupassa", "Limit to groups" : "Rajoita ryhmiin", - "This app has an update available." : "Tähän sovellukseen on päivitys saatavilla.", "by %s" : "tekijä %s", "%s-licensed" : "%s-lisensoitu", "Documentation:" : "Ohjeistus:", @@ -176,6 +174,7 @@ "Report a bug" : "Ilmoita viasta", "Show description …" : "Näytä kuvaus…", "Hide description …" : "Piilota kuvaus…", + "This app has an update available." : "Tähän sovellukseen on päivitys saatavilla.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Tämä sovellus ei ole määritellyt minimi Nextcloud-versiota. Tämä tulee olemaan ongelma tulevaisuudessa.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tämä sovellus ei ole määritellyt maksimi Nextcloud-versiota. Tämä tulee olemaan ongelma tulevaisuudessa.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Tätä sovellusta ei voi asentaa, koska seuraavat riippuvuudet eivät täyty:", @@ -349,6 +348,7 @@ "Unable to add user to group %s" : "Käyttäjän tai ryhmän %s lisääminen ei onnistu", "Unable to remove user from group %s" : "Käyttäjän poistaminen ryhmästä %s ei onnistu", "Sending..." : "Lähetetään...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["%n sovelluspäivitys odottaa","%n sovelluspäivitystä odottaa"], "Uninstalling ...." : "Poistetaan asennusta...", "Error while uninstalling app" : "Virhe sovellusta poistaessa", "Uninstall" : "Poista asennus", diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js index af26cb3324a..db62831e0b2 100644 --- a/settings/l10n/fr.js +++ b/settings/l10n/fr.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "Une tentative de connexion utilisant l'authentification à deux facteurs a échoué (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Votre <strong>mot de passe</strong> ou <strong>adresse e-mail</strong> a été modifié", "Your apps" : "Vos applications", + "Updates" : "Mises à jour", "Enabled apps" : "Applications activées", "Disabled apps" : "Applications désactivées", "App bundles" : "Pack d'applications", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Impossible d'ajouter le groupe.", "Unable to delete group." : "Impossible de supprimer le groupe.", "Invalid SMTP password." : "Mot de passe SMTP incorrect.", + "Email setting test" : "Test des paramètres e-mail", "Well done, %s!" : "Bien joué, %s !", "If you received this email, the email configuration seems to be correct." : "Si vous avez reçu cet e-mail, la configuration de l'adresse e-mail semble être correcte.", - "Email setting test" : "Test des paramètres e-mail", "Email could not be sent. Check your mail server log" : "L'email n'a pu être envoyé. Vérifiez le journal du serveur de messagerie", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres. (Erreur: %s)", "You need to set your user email before being able to send test emails." : "Vous devez définir une adresse e-mail dans vos paramètres personnels avant de pouvoir envoyer des e-mails de test.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s a modifié votre mot de passe sur %2$s.", "Your password on %s was changed." : "Votre mot de passe sur %s a été modifié.", "Your password on %s was reset by an administrator." : "Votre mot de passe sur %s a été réinitialisé par un administrateur.", + "Password for %1$s changed on %2$s" : "Mot de passe pour %1$s a été modifié sur %2$s", "Password changed for %s" : "Mot de passe modifié pour %s", "If you did not request this, please contact an administrator." : "Si vous n'aviez pas effectué cette demande, veuillez contacter un administrateur.", - "Password for %1$s changed on %2$s" : "Mot de passe pour %1$s a été modifié sur %2$s", "%1$s changed your email address on %2$s." : "%1$s a modifié votre adresse e-mail sur %2$s.", "Your email address on %s was changed." : "Votre adresse e-mail sur %s a été modifié.", "Your email address on %s was changed by an administrator." : "Votre adresse e-mail sur %s a été modifié par un administrateur.", + "Email address for %1$s changed on %2$s" : "Adresse e-mail pour %1$s a été modifié sur %2$s", "Email address changed for %s" : "Adresse e-mail a été modifié pour %s", "The new email address is %s" : "La nouvelle adresse e-mail est %s", - "Email address for %1$s changed on %2$s" : "Adresse e-mail pour %1$s a été modifié sur %2$s", + "Your %s account was created" : "Votre compte %s a été créé", "Welcome aboard" : "Bienvenue à bord", "Welcome aboard %s" : "Bienvenue à bord %s", "You now have an %s account, you can add, protect, and share your data." : "Vous avez maintenant un compte %s, vous pouvez désormais ajouter, protéger et partager vos données.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Saisissez votre mot de passe", "Go to %s" : "Aller à %s", "Install Client" : "Installer le Client", - "Your %s account was created" : "Votre compte %s a été créé", "Password confirmation is required" : "Confirmation par mot de passe est requise", "Couldn't remove app." : "Impossible de supprimer l'application.", "Couldn't update app." : "Impossible de mettre à jour l'application", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "Officielle", "All" : "Tous", "Update to %s" : "Mettre à niveau vers la version %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Vous avez %n application en attente de mise à jour","Vous avez %n applications en attente de mise à jour"], "No apps found for your version" : "Pas d'application trouvée pour votre version", "The app will be downloaded from the app store" : "Cette application va être téléchargée depuis l'app store", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Les applications officielles sont développées par et dans la communauté. Elles offrent les fonctionnalités indispensables et sont prêtes pour être utilisées en production.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Erreur : Cette application ne peut pas être activée car cela rend le serveur instable.", "Error: Could not disable broken app" : "Erreur : Impossible de désactiver l’application cassé", "Error while disabling broken app" : "Erreur lors de la désactivation de l'application cassé .", + "No app updates available" : "Aucune mise à jour de l'application n'est disponible", "Updating...." : "Mise à jour...", "Error while updating app" : "Erreur lors de la mise à jour de l'application", "Updated" : "Mise à jour terminée", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "Documentation pour développeurs", "View in store" : "Afficher dans le magasin d'application", "Limit to groups" : "Limiter aux groupes", - "This app has an update available." : "Cette application a une mise à jour disponible.", "by %s" : "par %s", "%s-licensed" : "Sous licence %s", "Documentation:" : "Documentation :", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "Signaler un bogue", "Show description …" : "Afficher la description...", "Hide description …" : "Masquer la description", + "This app has an update available." : "Cette application a une mise à jour disponible.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Cette application n'a pas de version minimum Nextcloud exigée. Ce sera considéré comme une erreur à l'avenir.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Cette application n'a pas de version maximum Nextcloud exigée. Ce sera considéré comme une erreur à l'avenir.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Cette application ne peut être installée à cause de ces dépendances non satisfaites :", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s", "Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s", "Sending..." : "Envoi en cours…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Vous avez %n application en attente de mise à jour","Vous avez %n applications en attente de mise à jour"], "Uninstalling ...." : "Désinstallation...", "Error while uninstalling app" : "Erreur lors de la désinstallation de l'application", "Uninstall" : "Désinstaller", diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json index 2640a12c4a6..c3eede358bc 100644 --- a/settings/l10n/fr.json +++ b/settings/l10n/fr.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "Une tentative de connexion utilisant l'authentification à deux facteurs a échoué (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Votre <strong>mot de passe</strong> ou <strong>adresse e-mail</strong> a été modifié", "Your apps" : "Vos applications", + "Updates" : "Mises à jour", "Enabled apps" : "Applications activées", "Disabled apps" : "Applications désactivées", "App bundles" : "Pack d'applications", @@ -30,9 +31,9 @@ "Unable to add group." : "Impossible d'ajouter le groupe.", "Unable to delete group." : "Impossible de supprimer le groupe.", "Invalid SMTP password." : "Mot de passe SMTP incorrect.", + "Email setting test" : "Test des paramètres e-mail", "Well done, %s!" : "Bien joué, %s !", "If you received this email, the email configuration seems to be correct." : "Si vous avez reçu cet e-mail, la configuration de l'adresse e-mail semble être correcte.", - "Email setting test" : "Test des paramètres e-mail", "Email could not be sent. Check your mail server log" : "L'email n'a pu être envoyé. Vérifiez le journal du serveur de messagerie", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres. (Erreur: %s)", "You need to set your user email before being able to send test emails." : "Vous devez définir une adresse e-mail dans vos paramètres personnels avant de pouvoir envoyer des e-mails de test.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s a modifié votre mot de passe sur %2$s.", "Your password on %s was changed." : "Votre mot de passe sur %s a été modifié.", "Your password on %s was reset by an administrator." : "Votre mot de passe sur %s a été réinitialisé par un administrateur.", + "Password for %1$s changed on %2$s" : "Mot de passe pour %1$s a été modifié sur %2$s", "Password changed for %s" : "Mot de passe modifié pour %s", "If you did not request this, please contact an administrator." : "Si vous n'aviez pas effectué cette demande, veuillez contacter un administrateur.", - "Password for %1$s changed on %2$s" : "Mot de passe pour %1$s a été modifié sur %2$s", "%1$s changed your email address on %2$s." : "%1$s a modifié votre adresse e-mail sur %2$s.", "Your email address on %s was changed." : "Votre adresse e-mail sur %s a été modifié.", "Your email address on %s was changed by an administrator." : "Votre adresse e-mail sur %s a été modifié par un administrateur.", + "Email address for %1$s changed on %2$s" : "Adresse e-mail pour %1$s a été modifié sur %2$s", "Email address changed for %s" : "Adresse e-mail a été modifié pour %s", "The new email address is %s" : "La nouvelle adresse e-mail est %s", - "Email address for %1$s changed on %2$s" : "Adresse e-mail pour %1$s a été modifié sur %2$s", + "Your %s account was created" : "Votre compte %s a été créé", "Welcome aboard" : "Bienvenue à bord", "Welcome aboard %s" : "Bienvenue à bord %s", "You now have an %s account, you can add, protect, and share your data." : "Vous avez maintenant un compte %s, vous pouvez désormais ajouter, protéger et partager vos données.", @@ -73,7 +75,6 @@ "Set your password" : "Saisissez votre mot de passe", "Go to %s" : "Aller à %s", "Install Client" : "Installer le Client", - "Your %s account was created" : "Votre compte %s a été créé", "Password confirmation is required" : "Confirmation par mot de passe est requise", "Couldn't remove app." : "Impossible de supprimer l'application.", "Couldn't update app." : "Impossible de mettre à jour l'application", @@ -87,7 +88,6 @@ "Official" : "Officielle", "All" : "Tous", "Update to %s" : "Mettre à niveau vers la version %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Vous avez %n application en attente de mise à jour","Vous avez %n applications en attente de mise à jour"], "No apps found for your version" : "Pas d'application trouvée pour votre version", "The app will be downloaded from the app store" : "Cette application va être téléchargée depuis l'app store", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Les applications officielles sont développées par et dans la communauté. Elles offrent les fonctionnalités indispensables et sont prêtes pour être utilisées en production.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Erreur : Cette application ne peut pas être activée car cela rend le serveur instable.", "Error: Could not disable broken app" : "Erreur : Impossible de désactiver l’application cassé", "Error while disabling broken app" : "Erreur lors de la désactivation de l'application cassé .", + "No app updates available" : "Aucune mise à jour de l'application n'est disponible", "Updating...." : "Mise à jour...", "Error while updating app" : "Erreur lors de la mise à jour de l'application", "Updated" : "Mise à jour terminée", @@ -183,7 +184,6 @@ "Developer documentation" : "Documentation pour développeurs", "View in store" : "Afficher dans le magasin d'application", "Limit to groups" : "Limiter aux groupes", - "This app has an update available." : "Cette application a une mise à jour disponible.", "by %s" : "par %s", "%s-licensed" : "Sous licence %s", "Documentation:" : "Documentation :", @@ -193,6 +193,7 @@ "Report a bug" : "Signaler un bogue", "Show description …" : "Afficher la description...", "Hide description …" : "Masquer la description", + "This app has an update available." : "Cette application a une mise à jour disponible.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Cette application n'a pas de version minimum Nextcloud exigée. Ce sera considéré comme une erreur à l'avenir.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Cette application n'a pas de version maximum Nextcloud exigée. Ce sera considéré comme une erreur à l'avenir.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Cette application ne peut être installée à cause de ces dépendances non satisfaites :", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s", "Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s", "Sending..." : "Envoi en cours…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Vous avez %n application en attente de mise à jour","Vous avez %n applications en attente de mise à jour"], "Uninstalling ...." : "Désinstallation...", "Error while uninstalling app" : "Erreur lors de la désinstallation de l'application", "Uninstall" : "Désinstaller", diff --git a/settings/l10n/he.js b/settings/l10n/he.js index 8b7ae373467..6beda29443a 100644 --- a/settings/l10n/he.js +++ b/settings/l10n/he.js @@ -37,7 +37,6 @@ OC.L10N.register( "Official" : "רישמי", "All" : "הכל", "Update to %s" : "עדכון ל- %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["ממתין עבורך %n עדכון יישום","ממתינים עבורך %n עדכוני יישום"], "No apps found for your version" : "לא נמצאו יישומים לגרסה שלך", "The app will be downloaded from the app store" : "היישום ירד מחנות היישומים", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "יישומים מאושרים מפותחים על ידי מפתחים מהימנים ועברו בדיקת הבטחה ראשונית. הם נשמרים באופן פעיל במאגר קוד פתוח והמתזקים שלהם מייעדים אותם לשימוש מזדמן ורגיל.", @@ -82,7 +81,6 @@ OC.L10N.register( "A valid password must be provided" : "יש לספק סיסמא תקנית", "A valid email must be provided" : "יש לספק כתובת דואר אלקטרוני תקנית", "Developer documentation" : "תיעוד מפתח", - "This app has an update available." : "ליישום זה קיים עדכון זמין.", "by %s" : "על ידי %s", "%s-licensed" : "%s-בעל רישיון", "Documentation:" : "תיעוד", @@ -92,6 +90,7 @@ OC.L10N.register( "Report a bug" : "דיווח על באג", "Show description …" : "הצגת תיאור ...", "Hide description …" : "הסתרת תיאור ...", + "This app has an update available." : "ליישום זה קיים עדכון זמין.", "This app cannot be installed because the following dependencies are not fulfilled:" : "לא ניתן להתקין את יישום זה כיוון שייחסי התלות הבאים לא התקיימו:", "Enable only for specific groups" : "אפשר רק לקבוצות מסויימות", "SSL Root Certificates" : "אישורי אבטחת SSL לנתיב יסוד", @@ -220,6 +219,7 @@ OC.L10N.register( "Unable to add user to group %s" : "לא ניתן להוסיף משתמש לקבוצה %s", "Unable to remove user from group %s" : "לא ניתן להסיר משתמש מהקבוצה %s", "Sending..." : "שולח...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["ממתין עבורך %n עדכון יישום","ממתינים עבורך %n עדכוני יישום"], "Uninstalling ...." : "מסיר התקנה...", "Error while uninstalling app" : "אירעה שגיאה בעת הסרת היישום", "Uninstall" : "הסרת התקנה", diff --git a/settings/l10n/he.json b/settings/l10n/he.json index 49cb4597122..ef0484aa047 100644 --- a/settings/l10n/he.json +++ b/settings/l10n/he.json @@ -35,7 +35,6 @@ "Official" : "רישמי", "All" : "הכל", "Update to %s" : "עדכון ל- %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["ממתין עבורך %n עדכון יישום","ממתינים עבורך %n עדכוני יישום"], "No apps found for your version" : "לא נמצאו יישומים לגרסה שלך", "The app will be downloaded from the app store" : "היישום ירד מחנות היישומים", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "יישומים מאושרים מפותחים על ידי מפתחים מהימנים ועברו בדיקת הבטחה ראשונית. הם נשמרים באופן פעיל במאגר קוד פתוח והמתזקים שלהם מייעדים אותם לשימוש מזדמן ורגיל.", @@ -80,7 +79,6 @@ "A valid password must be provided" : "יש לספק סיסמא תקנית", "A valid email must be provided" : "יש לספק כתובת דואר אלקטרוני תקנית", "Developer documentation" : "תיעוד מפתח", - "This app has an update available." : "ליישום זה קיים עדכון זמין.", "by %s" : "על ידי %s", "%s-licensed" : "%s-בעל רישיון", "Documentation:" : "תיעוד", @@ -90,6 +88,7 @@ "Report a bug" : "דיווח על באג", "Show description …" : "הצגת תיאור ...", "Hide description …" : "הסתרת תיאור ...", + "This app has an update available." : "ליישום זה קיים עדכון זמין.", "This app cannot be installed because the following dependencies are not fulfilled:" : "לא ניתן להתקין את יישום זה כיוון שייחסי התלות הבאים לא התקיימו:", "Enable only for specific groups" : "אפשר רק לקבוצות מסויימות", "SSL Root Certificates" : "אישורי אבטחת SSL לנתיב יסוד", @@ -218,6 +217,7 @@ "Unable to add user to group %s" : "לא ניתן להוסיף משתמש לקבוצה %s", "Unable to remove user from group %s" : "לא ניתן להסיר משתמש מהקבוצה %s", "Sending..." : "שולח...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["ממתין עבורך %n עדכון יישום","ממתינים עבורך %n עדכוני יישום"], "Uninstalling ...." : "מסיר התקנה...", "Error while uninstalling app" : "אירעה שגיאה בעת הסרת היישום", "Uninstall" : "הסרת התקנה", diff --git a/settings/l10n/hu.js b/settings/l10n/hu.js index 22ef8817528..454e68312b9 100644 --- a/settings/l10n/hu.js +++ b/settings/l10n/hu.js @@ -41,13 +41,13 @@ OC.L10N.register( "Invalid user" : "Érvénytelen felhasználó", "Unable to change mail address" : "Nem lehet megváltoztatni az e-mail címet", "Email saved" : "E-mail elmentve!", + "Your %s account was created" : "%s fiók létrehozva", "Welcome aboard" : "Üdv a fedélzeten", "Welcome aboard %s" : "Üdv a fedélzeten %s", "Your username is: %s" : "A felhasználóneved: %s", "Set your password" : "Állítsd be a jelszabad", "Go to %s" : "Menj ide: %s", "Install Client" : "Kliens telepítés", - "Your %s account was created" : "%s fiók létrehozva", "Password confirmation is required" : "Jelszó megerősítés szükséges", "Couldn't remove app." : "Az alkalmazást nem sikerült eltávolítani.", "Couldn't update app." : "Az alkalmazás frissítése nem sikerült.", @@ -61,7 +61,6 @@ OC.L10N.register( "Official" : "Hivatalos", "All" : "Mind", "Update to %s" : "Frissítés erre: %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["%n alkalmazás frissítése függőben van","%n alkalmazás frissítése függőben van"], "No apps found for your version" : "Nem található alkalmazás a verziód számára", "The app will be downloaded from the app store" : "Az alkalmazás letöltésre kerül az alkalmazástárból", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "A hivatalos alkalmazásokat a közösség fejleszti. Ezek adják a központi funkcionalitásokat és éles rendszerekben használhatóak.", @@ -146,7 +145,6 @@ OC.L10N.register( "A valid password must be provided" : "Érvényes jelszót kell megadnia", "A valid email must be provided" : "Érvényes e-mail címet kell megadni", "Developer documentation" : "Fejlesztői dokumentáció", - "This app has an update available." : "Frissítés érhető el az alkalmazáshoz.", "by %s" : "készítő: %s", "%s-licensed" : "%s-licencelt", "Documentation:" : "Dokumentációk:", @@ -156,6 +154,7 @@ OC.L10N.register( "Report a bug" : "Hiba bejelentése", "Show description …" : "Leírás megjelenítése ...", "Hide description …" : "Leírás elrejtése ...", + "This app has an update available." : "Frissítés érhető el az alkalmazáshoz.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ennek az alkalmazásnak nincs minimum szükséges Nextcloud verziója megadva. Ez hiba lesz a jövőben.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ennek az alkalmazásnak nincs maximum szükséges Nextcloud verziója megadva. Ez hiba lesz a jövőben.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ezt az alkalmazást nem lehet telepíteni, mert a következő függőségek hiányoznak:", @@ -322,6 +321,7 @@ OC.L10N.register( "Unable to add user to group %s" : "A felhasználó nem adható hozzá ehhez a csoporthoz: %s", "Unable to remove user from group %s" : "A felhasználó nem távolítható el ebből a csoportból: %s", "Sending..." : "Küldés...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["%n alkalmazás frissítése függőben van","%n alkalmazás frissítése függőben van"], "Uninstalling ...." : "Eltávolítás ...", "Error while uninstalling app" : "Hiba történt az alkalmazás eltávolítása közben", "Uninstall" : "Eltávolítás", diff --git a/settings/l10n/hu.json b/settings/l10n/hu.json index d3e2d83a883..2c297a11660 100644 --- a/settings/l10n/hu.json +++ b/settings/l10n/hu.json @@ -39,13 +39,13 @@ "Invalid user" : "Érvénytelen felhasználó", "Unable to change mail address" : "Nem lehet megváltoztatni az e-mail címet", "Email saved" : "E-mail elmentve!", + "Your %s account was created" : "%s fiók létrehozva", "Welcome aboard" : "Üdv a fedélzeten", "Welcome aboard %s" : "Üdv a fedélzeten %s", "Your username is: %s" : "A felhasználóneved: %s", "Set your password" : "Állítsd be a jelszabad", "Go to %s" : "Menj ide: %s", "Install Client" : "Kliens telepítés", - "Your %s account was created" : "%s fiók létrehozva", "Password confirmation is required" : "Jelszó megerősítés szükséges", "Couldn't remove app." : "Az alkalmazást nem sikerült eltávolítani.", "Couldn't update app." : "Az alkalmazás frissítése nem sikerült.", @@ -59,7 +59,6 @@ "Official" : "Hivatalos", "All" : "Mind", "Update to %s" : "Frissítés erre: %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["%n alkalmazás frissítése függőben van","%n alkalmazás frissítése függőben van"], "No apps found for your version" : "Nem található alkalmazás a verziód számára", "The app will be downloaded from the app store" : "Az alkalmazás letöltésre kerül az alkalmazástárból", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "A hivatalos alkalmazásokat a közösség fejleszti. Ezek adják a központi funkcionalitásokat és éles rendszerekben használhatóak.", @@ -144,7 +143,6 @@ "A valid password must be provided" : "Érvényes jelszót kell megadnia", "A valid email must be provided" : "Érvényes e-mail címet kell megadni", "Developer documentation" : "Fejlesztői dokumentáció", - "This app has an update available." : "Frissítés érhető el az alkalmazáshoz.", "by %s" : "készítő: %s", "%s-licensed" : "%s-licencelt", "Documentation:" : "Dokumentációk:", @@ -154,6 +152,7 @@ "Report a bug" : "Hiba bejelentése", "Show description …" : "Leírás megjelenítése ...", "Hide description …" : "Leírás elrejtése ...", + "This app has an update available." : "Frissítés érhető el az alkalmazáshoz.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ennek az alkalmazásnak nincs minimum szükséges Nextcloud verziója megadva. Ez hiba lesz a jövőben.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ennek az alkalmazásnak nincs maximum szükséges Nextcloud verziója megadva. Ez hiba lesz a jövőben.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ezt az alkalmazást nem lehet telepíteni, mert a következő függőségek hiányoznak:", @@ -320,6 +319,7 @@ "Unable to add user to group %s" : "A felhasználó nem adható hozzá ehhez a csoporthoz: %s", "Unable to remove user from group %s" : "A felhasználó nem távolítható el ebből a csoportból: %s", "Sending..." : "Küldés...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["%n alkalmazás frissítése függőben van","%n alkalmazás frissítése függőben van"], "Uninstalling ...." : "Eltávolítás ...", "Error while uninstalling app" : "Hiba történt az alkalmazás eltávolítása közben", "Uninstall" : "Eltávolítás", diff --git a/settings/l10n/ia.js b/settings/l10n/ia.js index 59f9fcb54e5..1a143a4b8a9 100644 --- a/settings/l10n/ia.js +++ b/settings/l10n/ia.js @@ -43,7 +43,6 @@ OC.L10N.register( "Official" : "Official", "All" : "Tote", "Update to %s" : "Actualisar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Tu ha %n application preste a actualisar se","Tu ha %n applicationes preste a actualisar se"], "No apps found for your version" : "Nulle application trovate pro tu version", "Disabling app …" : "Disactivante application ...", "Error while disabling app" : "Error durante disactivation del application...", @@ -115,7 +114,6 @@ OC.L10N.register( "A valid password must be provided" : "Un contrasigno valide debe esser providite", "A valid email must be provided" : "Un adresse de e-posta valide debe esser providite", "Developer documentation" : "Documentation de disveloppator", - "This app has an update available." : "Iste application ha un actualisation disponibile", "by %s" : "per %s", "%s-licensed" : "Licentiate como %s", "Documentation:" : "Documentation:", @@ -125,6 +123,7 @@ OC.L10N.register( "Report a bug" : "Reportar un defecto", "Show description …" : "Monstrar description...", "Hide description …" : "Celar description...", + "This app has an update available." : "Iste application ha un actualisation disponibile", "Enable only for specific groups" : "Activar solmente a gruppos specific", "SSL Root Certificates" : "Certificatos Root SSL", "Common Name" : "Nomine Commun", @@ -226,6 +225,7 @@ OC.L10N.register( "test email settings" : "testar configurationes de e-posta", "Invalid request" : "Requesta non valide", "Sending..." : "Inviante...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Tu ha %n application preste a actualisar se","Tu ha %n applicationes preste a actualisar se"], "Uninstalling ...." : "De-installante...", "Error while uninstalling app" : "Error durante de-installation del application", "Uninstall" : "De-installar", diff --git a/settings/l10n/ia.json b/settings/l10n/ia.json index 425ac5c8025..78bbb510584 100644 --- a/settings/l10n/ia.json +++ b/settings/l10n/ia.json @@ -41,7 +41,6 @@ "Official" : "Official", "All" : "Tote", "Update to %s" : "Actualisar a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Tu ha %n application preste a actualisar se","Tu ha %n applicationes preste a actualisar se"], "No apps found for your version" : "Nulle application trovate pro tu version", "Disabling app …" : "Disactivante application ...", "Error while disabling app" : "Error durante disactivation del application...", @@ -113,7 +112,6 @@ "A valid password must be provided" : "Un contrasigno valide debe esser providite", "A valid email must be provided" : "Un adresse de e-posta valide debe esser providite", "Developer documentation" : "Documentation de disveloppator", - "This app has an update available." : "Iste application ha un actualisation disponibile", "by %s" : "per %s", "%s-licensed" : "Licentiate como %s", "Documentation:" : "Documentation:", @@ -123,6 +121,7 @@ "Report a bug" : "Reportar un defecto", "Show description …" : "Monstrar description...", "Hide description …" : "Celar description...", + "This app has an update available." : "Iste application ha un actualisation disponibile", "Enable only for specific groups" : "Activar solmente a gruppos specific", "SSL Root Certificates" : "Certificatos Root SSL", "Common Name" : "Nomine Commun", @@ -224,6 +223,7 @@ "test email settings" : "testar configurationes de e-posta", "Invalid request" : "Requesta non valide", "Sending..." : "Inviante...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Tu ha %n application preste a actualisar se","Tu ha %n applicationes preste a actualisar se"], "Uninstalling ...." : "De-installante...", "Error while uninstalling app" : "Error durante de-installation del application", "Uninstall" : "De-installar", diff --git a/settings/l10n/id.js b/settings/l10n/id.js index 1ec77228cff..b9fc0ced4cf 100644 --- a/settings/l10n/id.js +++ b/settings/l10n/id.js @@ -46,7 +46,6 @@ OC.L10N.register( "Official" : "Resmi", "All" : "Semua", "Update to %s" : "Perbarui ke %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Anda memiliki %n pembaruan aplikasi tertunda"], "No apps found for your version" : "Aplikasi tidak ditemukan untuk versi ini.", "The app will be downloaded from the app store" : "Aplikasi akan diunduh melalui toko aplikasi", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikasi resmi dikembangkan oleh dan didalam komunitas. Mereka menawarkan fungsi sentral dan siap untuk penggunaan produksi.", @@ -117,7 +116,6 @@ OC.L10N.register( "A valid password must be provided" : "Harus memberikan sandi yang benar", "A valid email must be provided" : "Email yang benar harus diberikan", "Developer documentation" : "Dokumentasi pengembang", - "This app has an update available." : "Aplikasi ini dapat diperbarui.", "by %s" : "oleh %s", "%s-licensed" : "dilisensikan %s", "Documentation:" : "Dokumentasi:", @@ -127,6 +125,7 @@ OC.L10N.register( "Report a bug" : "Laporkan kerusakan", "Show description …" : "Tampilkan deskripsi ...", "Hide description …" : "Sembunyikan deskripsi ...", + "This app has an update available." : "Aplikasi ini dapat diperbarui.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Aplikasi ini tidak mempunyai versi minimum Nextcloud yang ditetapkan. Di masa depan nanti ini akan menjadi kesalahan.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Aplikasi ini tidak mempunyai versi maksimum Nextcloud yang ditetapkan. Di masa depan nanti ini akan menjadi kesalahan.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Apl ini tidak dapat diinstal karena ketergantungan berikut belum terpenuhi:", @@ -270,6 +269,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Tidak dapat menambahkan pengguna ke grup %s", "Unable to remove user from group %s" : "Tidak dapat menghapus pengguna dari grup %s", "Sending..." : "Mengirim", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Anda memiliki %n pembaruan aplikasi tertunda"], "Uninstalling ...." : "Mencopot ...", "Error while uninstalling app" : "Terjadi kesalahan saat mencopot aplikasi", "Uninstall" : "Copot", diff --git a/settings/l10n/id.json b/settings/l10n/id.json index 64a90d7f539..2386a0de616 100644 --- a/settings/l10n/id.json +++ b/settings/l10n/id.json @@ -44,7 +44,6 @@ "Official" : "Resmi", "All" : "Semua", "Update to %s" : "Perbarui ke %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Anda memiliki %n pembaruan aplikasi tertunda"], "No apps found for your version" : "Aplikasi tidak ditemukan untuk versi ini.", "The app will be downloaded from the app store" : "Aplikasi akan diunduh melalui toko aplikasi", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikasi resmi dikembangkan oleh dan didalam komunitas. Mereka menawarkan fungsi sentral dan siap untuk penggunaan produksi.", @@ -115,7 +114,6 @@ "A valid password must be provided" : "Harus memberikan sandi yang benar", "A valid email must be provided" : "Email yang benar harus diberikan", "Developer documentation" : "Dokumentasi pengembang", - "This app has an update available." : "Aplikasi ini dapat diperbarui.", "by %s" : "oleh %s", "%s-licensed" : "dilisensikan %s", "Documentation:" : "Dokumentasi:", @@ -125,6 +123,7 @@ "Report a bug" : "Laporkan kerusakan", "Show description …" : "Tampilkan deskripsi ...", "Hide description …" : "Sembunyikan deskripsi ...", + "This app has an update available." : "Aplikasi ini dapat diperbarui.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Aplikasi ini tidak mempunyai versi minimum Nextcloud yang ditetapkan. Di masa depan nanti ini akan menjadi kesalahan.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Aplikasi ini tidak mempunyai versi maksimum Nextcloud yang ditetapkan. Di masa depan nanti ini akan menjadi kesalahan.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Apl ini tidak dapat diinstal karena ketergantungan berikut belum terpenuhi:", @@ -268,6 +267,7 @@ "Unable to add user to group %s" : "Tidak dapat menambahkan pengguna ke grup %s", "Unable to remove user from group %s" : "Tidak dapat menghapus pengguna dari grup %s", "Sending..." : "Mengirim", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Anda memiliki %n pembaruan aplikasi tertunda"], "Uninstalling ...." : "Mencopot ...", "Error while uninstalling app" : "Terjadi kesalahan saat mencopot aplikasi", "Uninstall" : "Copot", diff --git a/settings/l10n/is.js b/settings/l10n/is.js index 92960201a54..84100ac6784 100644 --- a/settings/l10n/is.js +++ b/settings/l10n/is.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "Ekki tókst að bæta hóp við.", "Unable to delete group." : "Get ekki eytt hópi.", "Invalid SMTP password." : "Ógilt SMTP-lykilorð", + "Email setting test" : "Prófa tölvupóststillingar", "Well done, %s!" : "Vel gert, %s!", "If you received this email, the email configuration seems to be correct." : "Fyrst að þú fékkst þennan tölvupóst, þá lítur út fyrir að tölvupóstuppsetningin sé í lagi.", - "Email setting test" : "Prófa tölvupóststillingar", "Email could not be sent. Check your mail server log" : "Ekki var hægt að senda póst. Skoðaðu annál póstþjónsins", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Vandamál kom upp við að senda tölvupóst. Farðu yfir stillingarnar þínar. (Villa: %s)", "You need to set your user email before being able to send test emails." : "Þú verður að gefa upp netfangið þitt svo að þú getir sent prófunarpósta.", @@ -59,15 +59,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s breytti lykilorðinu þínu á %2$s.", "Your password on %s was changed." : "Lykilorðinu þínu á %s hefur verið breytt.", "Your password on %s was reset by an administrator." : "Kerfisstjóri breytti lykilorðinu þínu á %s.", + "Password for %1$s changed on %2$s" : "Lykilorð fyrir %1$s breyttist %2$s", "Password changed for %s" : "Lykilorð breyttist fyrir %s", "If you did not request this, please contact an administrator." : "Ef þú baðst ekki um þetta, hafðu þá samband við kerfisstjóra.", - "Password for %1$s changed on %2$s" : "Lykilorð fyrir %1$s breyttist %2$s", "%1$s changed your email address on %2$s." : "%1$s breytti tölvupóstfanginu þínu þann %2$s.", "Your email address on %s was changed." : "Tölvupóstfanginu þínu á %s var breytt.", "Your email address on %s was changed by an administrator." : "Kerfisstjóri breytti tölvupóstfanginu þínu á %s.", + "Email address for %1$s changed on %2$s" : "Lykilorð fyrir %1$s breyttist þann %2$s", "Email address changed for %s" : "Tölvupóstfang breyttist fyrir %s", "The new email address is %s" : "Nýja tölvupóstfangið er %s", - "Email address for %1$s changed on %2$s" : "Lykilorð fyrir %1$s breyttist þann %2$s", + "Your %s account was created" : "%s notandaaðgangurinn þinn var búinn til", "Welcome aboard" : "Velkomin um borð", "Welcome aboard %s" : "Velkomin um borð %s", "You now have an %s account, you can add, protect, and share your data." : "Þú ert núna með %s aðgang, þú getur bætt við, varið og deilt gögnunum þínum.", @@ -75,7 +76,6 @@ OC.L10N.register( "Set your password" : "Stilltu lykilorðið þitt", "Go to %s" : "Farðu í %s", "Install Client" : "Setja upp biðlaraforrit", - "Your %s account was created" : "%s notandaaðgangurinn þinn var búinn til", "Password confirmation is required" : "Þörf á staðfestingu lykilorðs", "Couldn't remove app." : "Gat ekki fjarlægt forrit.", "Couldn't update app." : "Gat ekki uppfært forrit.", @@ -89,7 +89,6 @@ OC.L10N.register( "Official" : "Opinbert", "All" : "Allt", "Update to %s" : "Uppfæra í %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Það er %n forritsuppfærsla í bið","Það eru %n forritauppfærslur í bið"], "No apps found for your version" : "Engin forrit fundust fyrir útgáfuna þína", "The app will be downloaded from the app store" : "Forritinu verður hlaðið niður úr forritabúðinni", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Opinber forrit eru þróuð af og innan samfélagsins. Þau bjóða upp á ýmsa kjarnaeiginleika og eru tilbúin til notkunar í raunvinnslu.", @@ -185,7 +184,6 @@ OC.L10N.register( "Developer documentation" : "Skjölun fyrir þróunaraðila", "View in store" : "Skoða í hugbúnaðarsafni", "Limit to groups" : "Takmarka við hópa", - "This app has an update available." : "Uppfærsla er tiltæk fyrir þetta forrit.", "by %s" : "frá %s", "%s-licensed" : "%s-notkunarleyfi", "Documentation:" : "Hjálparskjöl:", @@ -195,6 +193,7 @@ OC.L10N.register( "Report a bug" : "Tilkynna um villu", "Show description …" : "Birta lýsingu …", "Hide description …" : "Fela lýsingu …", + "This app has an update available." : "Uppfærsla er tiltæk fyrir þetta forrit.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Þetta vorrit er ekki með tiltekna neina lágmarksútgáfu Nextcloud. Þetta mun gefa villu í framtíðinni.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Þetta vorrit er ekki með tiltekna neina hámarksútgáfu Nextcloud. Þetta mun gefa villu í framtíðinni.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ekki var hægt að setja upp forritið þar sem eftirfarandi kerfiskröfur eru ekki uppfylltar:", @@ -395,6 +394,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Ekki tókst að bæta notanda við hópinn %s", "Unable to remove user from group %s" : "Ekki tókst að fjarlægja notanda úr hópnum %s", "Sending..." : "Sendi...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Það er %n forritsuppfærsla í bið","Það eru %n forritauppfærslur í bið"], "Uninstalling ...." : "Tek út uppsetningu ....", "Error while uninstalling app" : "Villa við að fjarlægja forrit", "Uninstall" : "Henda út", diff --git a/settings/l10n/is.json b/settings/l10n/is.json index d72c6b2732b..068547d07da 100644 --- a/settings/l10n/is.json +++ b/settings/l10n/is.json @@ -30,9 +30,9 @@ "Unable to add group." : "Ekki tókst að bæta hóp við.", "Unable to delete group." : "Get ekki eytt hópi.", "Invalid SMTP password." : "Ógilt SMTP-lykilorð", + "Email setting test" : "Prófa tölvupóststillingar", "Well done, %s!" : "Vel gert, %s!", "If you received this email, the email configuration seems to be correct." : "Fyrst að þú fékkst þennan tölvupóst, þá lítur út fyrir að tölvupóstuppsetningin sé í lagi.", - "Email setting test" : "Prófa tölvupóststillingar", "Email could not be sent. Check your mail server log" : "Ekki var hægt að senda póst. Skoðaðu annál póstþjónsins", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Vandamál kom upp við að senda tölvupóst. Farðu yfir stillingarnar þínar. (Villa: %s)", "You need to set your user email before being able to send test emails." : "Þú verður að gefa upp netfangið þitt svo að þú getir sent prófunarpósta.", @@ -57,15 +57,16 @@ "%1$s changed your password on %2$s." : "%1$s breytti lykilorðinu þínu á %2$s.", "Your password on %s was changed." : "Lykilorðinu þínu á %s hefur verið breytt.", "Your password on %s was reset by an administrator." : "Kerfisstjóri breytti lykilorðinu þínu á %s.", + "Password for %1$s changed on %2$s" : "Lykilorð fyrir %1$s breyttist %2$s", "Password changed for %s" : "Lykilorð breyttist fyrir %s", "If you did not request this, please contact an administrator." : "Ef þú baðst ekki um þetta, hafðu þá samband við kerfisstjóra.", - "Password for %1$s changed on %2$s" : "Lykilorð fyrir %1$s breyttist %2$s", "%1$s changed your email address on %2$s." : "%1$s breytti tölvupóstfanginu þínu þann %2$s.", "Your email address on %s was changed." : "Tölvupóstfanginu þínu á %s var breytt.", "Your email address on %s was changed by an administrator." : "Kerfisstjóri breytti tölvupóstfanginu þínu á %s.", + "Email address for %1$s changed on %2$s" : "Lykilorð fyrir %1$s breyttist þann %2$s", "Email address changed for %s" : "Tölvupóstfang breyttist fyrir %s", "The new email address is %s" : "Nýja tölvupóstfangið er %s", - "Email address for %1$s changed on %2$s" : "Lykilorð fyrir %1$s breyttist þann %2$s", + "Your %s account was created" : "%s notandaaðgangurinn þinn var búinn til", "Welcome aboard" : "Velkomin um borð", "Welcome aboard %s" : "Velkomin um borð %s", "You now have an %s account, you can add, protect, and share your data." : "Þú ert núna með %s aðgang, þú getur bætt við, varið og deilt gögnunum þínum.", @@ -73,7 +74,6 @@ "Set your password" : "Stilltu lykilorðið þitt", "Go to %s" : "Farðu í %s", "Install Client" : "Setja upp biðlaraforrit", - "Your %s account was created" : "%s notandaaðgangurinn þinn var búinn til", "Password confirmation is required" : "Þörf á staðfestingu lykilorðs", "Couldn't remove app." : "Gat ekki fjarlægt forrit.", "Couldn't update app." : "Gat ekki uppfært forrit.", @@ -87,7 +87,6 @@ "Official" : "Opinbert", "All" : "Allt", "Update to %s" : "Uppfæra í %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Það er %n forritsuppfærsla í bið","Það eru %n forritauppfærslur í bið"], "No apps found for your version" : "Engin forrit fundust fyrir útgáfuna þína", "The app will be downloaded from the app store" : "Forritinu verður hlaðið niður úr forritabúðinni", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Opinber forrit eru þróuð af og innan samfélagsins. Þau bjóða upp á ýmsa kjarnaeiginleika og eru tilbúin til notkunar í raunvinnslu.", @@ -183,7 +182,6 @@ "Developer documentation" : "Skjölun fyrir þróunaraðila", "View in store" : "Skoða í hugbúnaðarsafni", "Limit to groups" : "Takmarka við hópa", - "This app has an update available." : "Uppfærsla er tiltæk fyrir þetta forrit.", "by %s" : "frá %s", "%s-licensed" : "%s-notkunarleyfi", "Documentation:" : "Hjálparskjöl:", @@ -193,6 +191,7 @@ "Report a bug" : "Tilkynna um villu", "Show description …" : "Birta lýsingu …", "Hide description …" : "Fela lýsingu …", + "This app has an update available." : "Uppfærsla er tiltæk fyrir þetta forrit.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Þetta vorrit er ekki með tiltekna neina lágmarksútgáfu Nextcloud. Þetta mun gefa villu í framtíðinni.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Þetta vorrit er ekki með tiltekna neina hámarksútgáfu Nextcloud. Þetta mun gefa villu í framtíðinni.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ekki var hægt að setja upp forritið þar sem eftirfarandi kerfiskröfur eru ekki uppfylltar:", @@ -393,6 +392,7 @@ "Unable to add user to group %s" : "Ekki tókst að bæta notanda við hópinn %s", "Unable to remove user from group %s" : "Ekki tókst að fjarlægja notanda úr hópnum %s", "Sending..." : "Sendi...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Það er %n forritsuppfærsla í bið","Það eru %n forritauppfærslur í bið"], "Uninstalling ...." : "Tek út uppsetningu ....", "Error while uninstalling app" : "Villa við að fjarlægja forrit", "Uninstall" : "Henda út", diff --git a/settings/l10n/it.js b/settings/l10n/it.js index 5b3f0444ddc..a777f676c21 100644 --- a/settings/l10n/it.js +++ b/settings/l10n/it.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "Un tentativo di utilizzare l'autenticazione a due fattori non è riuscito (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "La tua<strong>password</strong> o <strong>email</strong> è stata modificata", "Your apps" : "Le tue applicazioni", + "Updates" : "Aggiornamenti", "Enabled apps" : "Applicazioni abilitate", "Disabled apps" : "Applicazioni disabilitate", "App bundles" : "Pacchetti di applicazioni", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Impossibile aggiungere il gruppo.", "Unable to delete group." : "Impossibile eliminare il gruppo.", "Invalid SMTP password." : "Password SMTP non valida.", + "Email setting test" : "Prova impostazioni email", "Well done, %s!" : "Ben fatto, %s!", "If you received this email, the email configuration seems to be correct." : "Se hai ricevuto questo messaggio, la configurazione della posta elettronica dovrebbe essere corretta.", - "Email setting test" : "Prova impostazioni email", "Email could not be sent. Check your mail server log" : "Il messaggio non può essere inviato. Controlla il log del tuo server di posta", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Si è verificato un problema durante l'invio dell'email. Controlla le tue impostazioni. (Errore: %s)", "You need to set your user email before being able to send test emails." : "Devi impostare l'indirizzo del tuo utente prima di poter provare l'invio delle email.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s ha cambiato la tua password su %2$s.", "Your password on %s was changed." : "La tua password su %s è stata modificata.", "Your password on %s was reset by an administrator." : "La tua password su %s è stata reimpostata da un amministratore", + "Password for %1$s changed on %2$s" : "Password per %1$s cambiata su %2$s", "Password changed for %s" : "Password modificata per %s", "If you did not request this, please contact an administrator." : "Se non lo hai richiesto, contatta un amministratore.", - "Password for %1$s changed on %2$s" : "Password per %1$s cambiata su %2$s", "%1$s changed your email address on %2$s." : "%1$s ha modificato il tuo indirizzo di posta su %2$s.", "Your email address on %s was changed." : "Il tuo indirizzo di posta su %s è stata modificato.", "Your email address on %s was changed by an administrator." : "Il tuo indirizzo di posta su %s è stato modificato da un amministratore.", + "Email address for %1$s changed on %2$s" : "Indirizzo di posta per %1$s modificato su %2$s", "Email address changed for %s" : "Indirizzo di posta modificato per %s", "The new email address is %s" : "Il nuovo indirizzo email è %s", - "Email address for %1$s changed on %2$s" : "Indirizzo di posta per %1$s modificato su %2$s", + "Your %s account was created" : "Il tuo account %s è stato creato", "Welcome aboard" : "Benvenuto a bordo", "Welcome aboard %s" : "Benvenuto a bordo di %s", "You now have an %s account, you can add, protect, and share your data." : "Ora hai un account %s, puoi aggiungere, proteggere e condividere i tuoi dati.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Imposta la tua password", "Go to %s" : "Vai a %s", "Install Client" : "Installa client", - "Your %s account was created" : "Il tuo account %s è stato creato", "Password confirmation is required" : "La conferma della password è richiesta", "Couldn't remove app." : "Impossibile rimuovere l'applicazione.", "Couldn't update app." : "Impossibile aggiornate l'applicazione.", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "Ufficiale", "All" : "Tutti", "Update to %s" : "Aggiornato a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Hai %n aggiornamento di applicazione in corso","Hai %n aggiornamenti di applicazione in corso"], "No apps found for your version" : "Nessuna applicazione trovata per la tua versione", "The app will be downloaded from the app store" : "L'applicazione sarà scaricata dallo store delle applicazioni", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Le applicazioni ufficiali sono sviluppate dalla comunità. Esse offrono nuove funzionalità e sono pronte per l'uso in produzione.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Errore: questa applicazione non può essere abilitata perché rende il server instabile", "Error: Could not disable broken app" : "Errore: impossibile disabilitare l'applicazione danneggiata", "Error while disabling broken app" : "Errore durante la disabilitazione dell'applicazione danneggiata", + "No app updates available" : "Nessun aggiornamento applicazioni disponibile", "Updating...." : "Aggiornamento in corso...", "Error while updating app" : "Errore durante l'aggiornamento", "Updated" : "Aggiornato", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "Documentazione dello sviluppatore", "View in store" : "Visualizza nell'archivio", "Limit to groups" : "Limita a gruppi", - "This app has an update available." : "Un aggiornamento di questa applicazione è disponibile.", "by %s" : "di %s", "%s-licensed" : "sotto licenza %s", "Documentation:" : "Documentazione:", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "Segnala un bug", "Show description …" : "Mostra descrizione...", "Hide description …" : "Nascondi descrizione...", + "This app has an update available." : "Un aggiornamento di questa applicazione è disponibile.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Questa applicazione non contiene l'informazione della versione minima di Nextcloud richiesta. In futuro ciò sarà considerato un errore.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Questa applicazione non contiene l'informazione della versione massima di Nextcloud richiesta. In futuro ciò sarà considerato un errore.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Questa applicazione non può essere installata perché le seguenti dipendenze non sono soddisfatte:", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Impossibile aggiungere l'utente al gruppo %s", "Unable to remove user from group %s" : "Impossibile rimuovere l'utente dal gruppo %s", "Sending..." : "Invio in corso...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Hai %n aggiornamento di applicazione in corso","Hai %n aggiornamenti di applicazione in corso"], "Uninstalling ...." : "Disinstallazione...", "Error while uninstalling app" : "Errore durante la disinstallazione dell'applicazione", "Uninstall" : "Disinstalla", diff --git a/settings/l10n/it.json b/settings/l10n/it.json index 4556e2dff1b..de93e12812f 100644 --- a/settings/l10n/it.json +++ b/settings/l10n/it.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "Un tentativo di utilizzare l'autenticazione a due fattori non è riuscito (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "La tua<strong>password</strong> o <strong>email</strong> è stata modificata", "Your apps" : "Le tue applicazioni", + "Updates" : "Aggiornamenti", "Enabled apps" : "Applicazioni abilitate", "Disabled apps" : "Applicazioni disabilitate", "App bundles" : "Pacchetti di applicazioni", @@ -30,9 +31,9 @@ "Unable to add group." : "Impossibile aggiungere il gruppo.", "Unable to delete group." : "Impossibile eliminare il gruppo.", "Invalid SMTP password." : "Password SMTP non valida.", + "Email setting test" : "Prova impostazioni email", "Well done, %s!" : "Ben fatto, %s!", "If you received this email, the email configuration seems to be correct." : "Se hai ricevuto questo messaggio, la configurazione della posta elettronica dovrebbe essere corretta.", - "Email setting test" : "Prova impostazioni email", "Email could not be sent. Check your mail server log" : "Il messaggio non può essere inviato. Controlla il log del tuo server di posta", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Si è verificato un problema durante l'invio dell'email. Controlla le tue impostazioni. (Errore: %s)", "You need to set your user email before being able to send test emails." : "Devi impostare l'indirizzo del tuo utente prima di poter provare l'invio delle email.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s ha cambiato la tua password su %2$s.", "Your password on %s was changed." : "La tua password su %s è stata modificata.", "Your password on %s was reset by an administrator." : "La tua password su %s è stata reimpostata da un amministratore", + "Password for %1$s changed on %2$s" : "Password per %1$s cambiata su %2$s", "Password changed for %s" : "Password modificata per %s", "If you did not request this, please contact an administrator." : "Se non lo hai richiesto, contatta un amministratore.", - "Password for %1$s changed on %2$s" : "Password per %1$s cambiata su %2$s", "%1$s changed your email address on %2$s." : "%1$s ha modificato il tuo indirizzo di posta su %2$s.", "Your email address on %s was changed." : "Il tuo indirizzo di posta su %s è stata modificato.", "Your email address on %s was changed by an administrator." : "Il tuo indirizzo di posta su %s è stato modificato da un amministratore.", + "Email address for %1$s changed on %2$s" : "Indirizzo di posta per %1$s modificato su %2$s", "Email address changed for %s" : "Indirizzo di posta modificato per %s", "The new email address is %s" : "Il nuovo indirizzo email è %s", - "Email address for %1$s changed on %2$s" : "Indirizzo di posta per %1$s modificato su %2$s", + "Your %s account was created" : "Il tuo account %s è stato creato", "Welcome aboard" : "Benvenuto a bordo", "Welcome aboard %s" : "Benvenuto a bordo di %s", "You now have an %s account, you can add, protect, and share your data." : "Ora hai un account %s, puoi aggiungere, proteggere e condividere i tuoi dati.", @@ -73,7 +75,6 @@ "Set your password" : "Imposta la tua password", "Go to %s" : "Vai a %s", "Install Client" : "Installa client", - "Your %s account was created" : "Il tuo account %s è stato creato", "Password confirmation is required" : "La conferma della password è richiesta", "Couldn't remove app." : "Impossibile rimuovere l'applicazione.", "Couldn't update app." : "Impossibile aggiornate l'applicazione.", @@ -87,7 +88,6 @@ "Official" : "Ufficiale", "All" : "Tutti", "Update to %s" : "Aggiornato a %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Hai %n aggiornamento di applicazione in corso","Hai %n aggiornamenti di applicazione in corso"], "No apps found for your version" : "Nessuna applicazione trovata per la tua versione", "The app will be downloaded from the app store" : "L'applicazione sarà scaricata dallo store delle applicazioni", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Le applicazioni ufficiali sono sviluppate dalla comunità. Esse offrono nuove funzionalità e sono pronte per l'uso in produzione.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Errore: questa applicazione non può essere abilitata perché rende il server instabile", "Error: Could not disable broken app" : "Errore: impossibile disabilitare l'applicazione danneggiata", "Error while disabling broken app" : "Errore durante la disabilitazione dell'applicazione danneggiata", + "No app updates available" : "Nessun aggiornamento applicazioni disponibile", "Updating...." : "Aggiornamento in corso...", "Error while updating app" : "Errore durante l'aggiornamento", "Updated" : "Aggiornato", @@ -183,7 +184,6 @@ "Developer documentation" : "Documentazione dello sviluppatore", "View in store" : "Visualizza nell'archivio", "Limit to groups" : "Limita a gruppi", - "This app has an update available." : "Un aggiornamento di questa applicazione è disponibile.", "by %s" : "di %s", "%s-licensed" : "sotto licenza %s", "Documentation:" : "Documentazione:", @@ -193,6 +193,7 @@ "Report a bug" : "Segnala un bug", "Show description …" : "Mostra descrizione...", "Hide description …" : "Nascondi descrizione...", + "This app has an update available." : "Un aggiornamento di questa applicazione è disponibile.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Questa applicazione non contiene l'informazione della versione minima di Nextcloud richiesta. In futuro ciò sarà considerato un errore.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Questa applicazione non contiene l'informazione della versione massima di Nextcloud richiesta. In futuro ciò sarà considerato un errore.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Questa applicazione non può essere installata perché le seguenti dipendenze non sono soddisfatte:", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "Impossibile aggiungere l'utente al gruppo %s", "Unable to remove user from group %s" : "Impossibile rimuovere l'utente dal gruppo %s", "Sending..." : "Invio in corso...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Hai %n aggiornamento di applicazione in corso","Hai %n aggiornamenti di applicazione in corso"], "Uninstalling ...." : "Disinstallazione...", "Error while uninstalling app" : "Errore durante la disinstallazione dell'applicazione", "Uninstall" : "Disinstalla", diff --git a/settings/l10n/ja.js b/settings/l10n/ja.js index 4007d1cfc0e..4c2eda706e0 100644 --- a/settings/l10n/ja.js +++ b/settings/l10n/ja.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "グループを追加できません", "Unable to delete group." : "グループを削除できません", "Invalid SMTP password." : "SMTPパスワードが無効", + "Email setting test" : "メール設定のテスト", "Well done, %s!" : "%s、素晴らしい!", "If you received this email, the email configuration seems to be correct." : "メールが届いていたら、メールは正しく設定されています。", - "Email setting test" : "メール設定のテスト", "Email could not be sent. Check your mail server log" : "メールが送信できませんでした。メールサーバーのログを確認してください", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "メールの送信中に問題が発生しました。設定を確認してください。 (Error: %s)", "You need to set your user email before being able to send test emails." : "ユーザーメールを設定して初めて、テストメールを送信することができるようになります。", @@ -57,22 +57,22 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$sにより %2$sのパスワードが変更されました。", "Your password on %s was changed." : "%s のパスワードを変更しました。", "Your password on %s was reset by an administrator." : "%sのパスワードは、管理者がリセットしました。", + "Password for %1$s changed on %2$s" : "%1$s のパスワードが %2$sで変更されました", "Password changed for %s" : "%s のパスワードは変更されました", "If you did not request this, please contact an administrator." : "このリクエストをしていない場合は、管理者に問い合わせてください。", - "Password for %1$s changed on %2$s" : "%1$s のパスワードが %2$sで変更されました", "%1$s changed your email address on %2$s." : "%1$sにより %2$s のメールアドレスが変更されました", "Your email address on %s was changed." : "%s のメールアドレスを変更しました。", "Your email address on %s was changed by an administrator." : "%s のメールアドレスを管理者が変更しました。", + "Email address for %1$s changed on %2$s" : "%1$s のメールアドレスが %2$sで変更されました。", "Email address changed for %s" : "%s のメールアドレスは変更されました", "The new email address is %s" : "新しいメールアドレスは、%s です", - "Email address for %1$s changed on %2$s" : "%1$s のメールアドレスが %2$sで変更されました。", + "Your %s account was created" : "アカウント %s を作成しました", "Welcome aboard" : "ようこそ", "Welcome aboard %s" : "%s さん、ようこそ", "Your username is: %s" : "あなたの名前: %s", "Set your password" : "パスワードを設定", "Go to %s" : "%s に移動", "Install Client" : "クライアントをインストール", - "Your %s account was created" : "アカウント %s を作成しました", "Password confirmation is required" : "パスワードの確認が必要です", "Couldn't remove app." : "アプリが削除できませんでした。", "Couldn't update app." : "アプリをアップデートできませんでした。", @@ -86,7 +86,6 @@ OC.L10N.register( "Official" : "公式", "All" : "すべて", "Update to %s" : "%sにアップデート", - "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 個のアプリのアップデートを保留中"], "No apps found for your version" : "現在のバージョンに対応するアプリはありません", "The app will be downloaded from the app store" : "このアプリは、アプリストアからダウンロードできます。", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "公式アプリは Nextcloud コミュニティにより開発されています。公式アプリは Nextcloud の中心的な機能を提供し、製品として可能です。", @@ -182,7 +181,6 @@ OC.L10N.register( "Developer documentation" : "開発者ドキュメント", "View in store" : "ストア内で表示", "Limit to groups" : "次のグループに制限", - "This app has an update available." : "このアプリでアップデートが利用できます.", "by %s" : "%s による", "%s-licensed" : "%s ライセンス", "Documentation:" : "ドキュメント:", @@ -192,6 +190,7 @@ OC.L10N.register( "Report a bug" : "バグを報告", "Show description …" : "説明を表示 ...", "Hide description …" : "説明を隠す ...", + "This app has an update available." : "このアプリでアップデートが利用できます.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud の最小バージョンが指定されていません.将来、エラーが発生する可能性があります.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud バージョンの上限が指定されていません.将来、エラーが発生する可能性があります.", "This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係が満たされないためこのアプリをインストールできません:", @@ -383,6 +382,7 @@ OC.L10N.register( "Unable to add user to group %s" : "ユーザーをグループ %s に追加できません", "Unable to remove user from group %s" : "ユーザーをグループ %s から削除できません", "Sending..." : "送信中…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 個のアプリのアップデートを保留中"], "Uninstalling ...." : "アンインストール中 ....", "Error while uninstalling app" : "アプリをアンインストール中にエラーが発生", "Uninstall" : "アンインストール", diff --git a/settings/l10n/ja.json b/settings/l10n/ja.json index d26d276ec66..931a38e4dcf 100644 --- a/settings/l10n/ja.json +++ b/settings/l10n/ja.json @@ -30,9 +30,9 @@ "Unable to add group." : "グループを追加できません", "Unable to delete group." : "グループを削除できません", "Invalid SMTP password." : "SMTPパスワードが無効", + "Email setting test" : "メール設定のテスト", "Well done, %s!" : "%s、素晴らしい!", "If you received this email, the email configuration seems to be correct." : "メールが届いていたら、メールは正しく設定されています。", - "Email setting test" : "メール設定のテスト", "Email could not be sent. Check your mail server log" : "メールが送信できませんでした。メールサーバーのログを確認してください", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "メールの送信中に問題が発生しました。設定を確認してください。 (Error: %s)", "You need to set your user email before being able to send test emails." : "ユーザーメールを設定して初めて、テストメールを送信することができるようになります。", @@ -55,22 +55,22 @@ "%1$s changed your password on %2$s." : "%1$sにより %2$sのパスワードが変更されました。", "Your password on %s was changed." : "%s のパスワードを変更しました。", "Your password on %s was reset by an administrator." : "%sのパスワードは、管理者がリセットしました。", + "Password for %1$s changed on %2$s" : "%1$s のパスワードが %2$sで変更されました", "Password changed for %s" : "%s のパスワードは変更されました", "If you did not request this, please contact an administrator." : "このリクエストをしていない場合は、管理者に問い合わせてください。", - "Password for %1$s changed on %2$s" : "%1$s のパスワードが %2$sで変更されました", "%1$s changed your email address on %2$s." : "%1$sにより %2$s のメールアドレスが変更されました", "Your email address on %s was changed." : "%s のメールアドレスを変更しました。", "Your email address on %s was changed by an administrator." : "%s のメールアドレスを管理者が変更しました。", + "Email address for %1$s changed on %2$s" : "%1$s のメールアドレスが %2$sで変更されました。", "Email address changed for %s" : "%s のメールアドレスは変更されました", "The new email address is %s" : "新しいメールアドレスは、%s です", - "Email address for %1$s changed on %2$s" : "%1$s のメールアドレスが %2$sで変更されました。", + "Your %s account was created" : "アカウント %s を作成しました", "Welcome aboard" : "ようこそ", "Welcome aboard %s" : "%s さん、ようこそ", "Your username is: %s" : "あなたの名前: %s", "Set your password" : "パスワードを設定", "Go to %s" : "%s に移動", "Install Client" : "クライアントをインストール", - "Your %s account was created" : "アカウント %s を作成しました", "Password confirmation is required" : "パスワードの確認が必要です", "Couldn't remove app." : "アプリが削除できませんでした。", "Couldn't update app." : "アプリをアップデートできませんでした。", @@ -84,7 +84,6 @@ "Official" : "公式", "All" : "すべて", "Update to %s" : "%sにアップデート", - "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 個のアプリのアップデートを保留中"], "No apps found for your version" : "現在のバージョンに対応するアプリはありません", "The app will be downloaded from the app store" : "このアプリは、アプリストアからダウンロードできます。", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "公式アプリは Nextcloud コミュニティにより開発されています。公式アプリは Nextcloud の中心的な機能を提供し、製品として可能です。", @@ -180,7 +179,6 @@ "Developer documentation" : "開発者ドキュメント", "View in store" : "ストア内で表示", "Limit to groups" : "次のグループに制限", - "This app has an update available." : "このアプリでアップデートが利用できます.", "by %s" : "%s による", "%s-licensed" : "%s ライセンス", "Documentation:" : "ドキュメント:", @@ -190,6 +188,7 @@ "Report a bug" : "バグを報告", "Show description …" : "説明を表示 ...", "Hide description …" : "説明を隠す ...", + "This app has an update available." : "このアプリでアップデートが利用できます.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud の最小バージョンが指定されていません.将来、エラーが発生する可能性があります.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud バージョンの上限が指定されていません.将来、エラーが発生する可能性があります.", "This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係が満たされないためこのアプリをインストールできません:", @@ -381,6 +380,7 @@ "Unable to add user to group %s" : "ユーザーをグループ %s に追加できません", "Unable to remove user from group %s" : "ユーザーをグループ %s から削除できません", "Sending..." : "送信中…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 個のアプリのアップデートを保留中"], "Uninstalling ...." : "アンインストール中 ....", "Error while uninstalling app" : "アプリをアンインストール中にエラーが発生", "Uninstall" : "アンインストール", diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js index ca2222fd47e..fcd5bb431af 100644 --- a/settings/l10n/ko.js +++ b/settings/l10n/ko.js @@ -29,9 +29,9 @@ OC.L10N.register( "Unable to add group." : "그룹을 추가할 수 없습니다.", "Unable to delete group." : "그룹을 삭제할 수 없습니다.", "Invalid SMTP password." : "SMTP 암호가 잘못되었습니다.", + "Email setting test" : "이메일 설정 시험", "Well done, %s!" : "%s 님, 잘 하셨습니다!", "If you received this email, the email configuration seems to be correct." : "이 이메일을 받으셨다면 이메일 설정이 올바릅니다.", - "Email setting test" : "이메일 설정 시험", "Email could not be sent. Check your mail server log" : "이메일을 보낼 수 없습니다. 메일 서버 로그를 확인하십시오.", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "이메일을 보내는 중 오류가 발생했습니다. 설정을 확인하십시오.(오류: %s)", "You need to set your user email before being able to send test emails." : "테스트 이메일을 보내기 전 내 주소를 설정해야 합니다.", @@ -54,22 +54,22 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s 님이 내 암호를 %2$s에 변경했습니다.", "Your password on %s was changed." : "내 %s 암호를 변경했습니다.", "Your password on %s was reset by an administrator." : "관리자가 내 %s 암호를 초기화했습니다.", + "Password for %1$s changed on %2$s" : "%1$s의 암호를 %2$s에 변경함", "Password changed for %s" : "%s의 암호 변경됨", "If you did not request this, please contact an administrator." : "요청하지 않았다면 관리자에게 연락하십시오.", - "Password for %1$s changed on %2$s" : "%1$s의 암호를 %2$s에 변경함", "%1$s changed your email address on %2$s." : "%1$s 님이 내 이메일 주소를 %2$s에 변경했습니다.", "Your email address on %s was changed." : "내 %s 이메일 주소를 변경했습니다.", "Your email address on %s was changed by an administrator." : "관리자가 내 %s 이메일 주소를 변경했습니다.", + "Email address for %1$s changed on %2$s" : "%1$s의 이메일 주소를 %2$s에 변경함", "Email address changed for %s" : "%s의 이메일 주소 변경됨", "The new email address is %s" : "새 이메일 주소는 %s입니다", - "Email address for %1$s changed on %2$s" : "%1$s의 이메일 주소를 %2$s에 변경함", + "Your %s account was created" : "%s 계정을 등록했습니다", "Welcome aboard" : "환영합니다", "Welcome aboard %s" : "%s 님, 환영합니다", "Your username is: %s" : "사용자 이름: %s", "Set your password" : "내 암호 설정하기", "Go to %s" : "%s(으)로 이동", "Install Client" : "클라이언트 설치", - "Your %s account was created" : "%s 계정을 등록했습니다", "Password confirmation is required" : "암호 확인이 필요합니다", "Couldn't remove app." : "앱을 삭제할 수 없습니다.", "Couldn't update app." : "앱을 업데이트할 수 없습니다.", @@ -83,7 +83,6 @@ OC.L10N.register( "Official" : "공식", "All" : "모두", "Update to %s" : "%s(으)로 업데이트", - "_You have %n app update pending_::_You have %n app updates pending_" : ["앱 %n개 업데이트 대기 중"], "No apps found for your version" : "설치된 버전에 대한 앱 없음", "The app will be downloaded from the app store" : "이 앱을 앱 스토어에서 다운로드합니다", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "커뮤니티가 개발한 공식 앱입니다. 이 앱은 Nextcloud의 핵심 기능이며 프로덕션 환경에서 사용할 수 있습니다.", @@ -175,7 +174,6 @@ OC.L10N.register( "Developer documentation" : "개발자 문서", "View in store" : "스토어에서 보기", "Limit to groups" : "그룹으로 제한", - "This app has an update available." : "이 앱을 업데이트할 수 있습니다.", "by %s" : "%s 개발", "%s-licensed" : "%s 라이선스", "Documentation:" : "문서:", @@ -185,6 +183,7 @@ OC.L10N.register( "Report a bug" : "버그 신고", "Show description …" : "설명 보기 …", "Hide description …" : "설명 숨기기 …", + "This app has an update available." : "이 앱을 업데이트할 수 있습니다.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최소 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최대 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.", "This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:", @@ -360,6 +359,7 @@ OC.L10N.register( "Unable to add user to group %s" : "그룹 %s에 사용자를 추가할 수 없음", "Unable to remove user from group %s" : "그룹 %s에서 사용자를 삭제할 수 없음", "Sending..." : "보내는 중...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["앱 %n개 업데이트 대기 중"], "Uninstalling ...." : "제거하는 중 ....", "Error while uninstalling app" : "앱을 제거하는 중 오류 발생", "Uninstall" : "제거", diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json index 175804ac091..df8a7bd586c 100644 --- a/settings/l10n/ko.json +++ b/settings/l10n/ko.json @@ -27,9 +27,9 @@ "Unable to add group." : "그룹을 추가할 수 없습니다.", "Unable to delete group." : "그룹을 삭제할 수 없습니다.", "Invalid SMTP password." : "SMTP 암호가 잘못되었습니다.", + "Email setting test" : "이메일 설정 시험", "Well done, %s!" : "%s 님, 잘 하셨습니다!", "If you received this email, the email configuration seems to be correct." : "이 이메일을 받으셨다면 이메일 설정이 올바릅니다.", - "Email setting test" : "이메일 설정 시험", "Email could not be sent. Check your mail server log" : "이메일을 보낼 수 없습니다. 메일 서버 로그를 확인하십시오.", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "이메일을 보내는 중 오류가 발생했습니다. 설정을 확인하십시오.(오류: %s)", "You need to set your user email before being able to send test emails." : "테스트 이메일을 보내기 전 내 주소를 설정해야 합니다.", @@ -52,22 +52,22 @@ "%1$s changed your password on %2$s." : "%1$s 님이 내 암호를 %2$s에 변경했습니다.", "Your password on %s was changed." : "내 %s 암호를 변경했습니다.", "Your password on %s was reset by an administrator." : "관리자가 내 %s 암호를 초기화했습니다.", + "Password for %1$s changed on %2$s" : "%1$s의 암호를 %2$s에 변경함", "Password changed for %s" : "%s의 암호 변경됨", "If you did not request this, please contact an administrator." : "요청하지 않았다면 관리자에게 연락하십시오.", - "Password for %1$s changed on %2$s" : "%1$s의 암호를 %2$s에 변경함", "%1$s changed your email address on %2$s." : "%1$s 님이 내 이메일 주소를 %2$s에 변경했습니다.", "Your email address on %s was changed." : "내 %s 이메일 주소를 변경했습니다.", "Your email address on %s was changed by an administrator." : "관리자가 내 %s 이메일 주소를 변경했습니다.", + "Email address for %1$s changed on %2$s" : "%1$s의 이메일 주소를 %2$s에 변경함", "Email address changed for %s" : "%s의 이메일 주소 변경됨", "The new email address is %s" : "새 이메일 주소는 %s입니다", - "Email address for %1$s changed on %2$s" : "%1$s의 이메일 주소를 %2$s에 변경함", + "Your %s account was created" : "%s 계정을 등록했습니다", "Welcome aboard" : "환영합니다", "Welcome aboard %s" : "%s 님, 환영합니다", "Your username is: %s" : "사용자 이름: %s", "Set your password" : "내 암호 설정하기", "Go to %s" : "%s(으)로 이동", "Install Client" : "클라이언트 설치", - "Your %s account was created" : "%s 계정을 등록했습니다", "Password confirmation is required" : "암호 확인이 필요합니다", "Couldn't remove app." : "앱을 삭제할 수 없습니다.", "Couldn't update app." : "앱을 업데이트할 수 없습니다.", @@ -81,7 +81,6 @@ "Official" : "공식", "All" : "모두", "Update to %s" : "%s(으)로 업데이트", - "_You have %n app update pending_::_You have %n app updates pending_" : ["앱 %n개 업데이트 대기 중"], "No apps found for your version" : "설치된 버전에 대한 앱 없음", "The app will be downloaded from the app store" : "이 앱을 앱 스토어에서 다운로드합니다", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "커뮤니티가 개발한 공식 앱입니다. 이 앱은 Nextcloud의 핵심 기능이며 프로덕션 환경에서 사용할 수 있습니다.", @@ -173,7 +172,6 @@ "Developer documentation" : "개발자 문서", "View in store" : "스토어에서 보기", "Limit to groups" : "그룹으로 제한", - "This app has an update available." : "이 앱을 업데이트할 수 있습니다.", "by %s" : "%s 개발", "%s-licensed" : "%s 라이선스", "Documentation:" : "문서:", @@ -183,6 +181,7 @@ "Report a bug" : "버그 신고", "Show description …" : "설명 보기 …", "Hide description …" : "설명 숨기기 …", + "This app has an update available." : "이 앱을 업데이트할 수 있습니다.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최소 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최대 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.", "This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:", @@ -358,6 +357,7 @@ "Unable to add user to group %s" : "그룹 %s에 사용자를 추가할 수 없음", "Unable to remove user from group %s" : "그룹 %s에서 사용자를 삭제할 수 없음", "Sending..." : "보내는 중...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["앱 %n개 업데이트 대기 중"], "Uninstalling ...." : "제거하는 중 ....", "Error while uninstalling app" : "앱을 제거하는 중 오류 발생", "Uninstall" : "제거", diff --git a/settings/l10n/lt_LT.js b/settings/l10n/lt_LT.js index 460f74769c4..a90f70e6678 100644 --- a/settings/l10n/lt_LT.js +++ b/settings/l10n/lt_LT.js @@ -48,8 +48,8 @@ OC.L10N.register( "Email saved" : "El. paštas įrašytas", "%1$s changed your password on %2$s." : "%1$s pakeitė jūsų slaptažodį %2$s", "The new email address is %s" : "Naujasis el. pašto adresas yra %s", - "Your username is: %s" : "Jūsų naudotojo vardas yra: %s", "Your %s account was created" : "Jūsų paskyra %s sukurta", + "Your username is: %s" : "Jūsų naudotojo vardas yra: %s", "Password confirmation is required" : "Reikalingas slaptažodžio patvirtinimas", "Couldn't remove app." : "Nepavyko pašalinti programėlės.", "Couldn't update app." : "Nepavyko atnaujinti programėlės.", @@ -114,13 +114,13 @@ OC.L10N.register( "Changing the password will result in data loss, because data recovery is not available for this user" : "Slaptažodžio pakeitimas sąlygos duomenų praradimą, kadangi šiam naudotojui nėra prieinamas duomenų atkūrimas", "A valid username must be provided" : "Privalo būti pateiktas tinkamas naudotojo vardas", "A valid password must be provided" : "Slaptažodis turi būti tinkamas", - "This app has an update available." : "Šiai programėlei yra prieinamas atnaujinimas.", "Documentation:" : "Dokumentacija:", "User documentation" : "Naudotojo dokumentacija", "Admin documentation" : "Administratoriaus dokumentacija", "Report a bug" : "Pranešti apie klaidą", "Show description …" : "Rodyti aprašą …", "Hide description …" : "Slėpti aprašą …", + "This app has an update available." : "Šiai programėlei yra prieinamas atnaujinimas.", "Online documentation" : "Dokumentacija internete", "Forum" : "Forumas", "None" : "Nieko", diff --git a/settings/l10n/lt_LT.json b/settings/l10n/lt_LT.json index ea35e96e137..fc4795f8755 100644 --- a/settings/l10n/lt_LT.json +++ b/settings/l10n/lt_LT.json @@ -46,8 +46,8 @@ "Email saved" : "El. paštas įrašytas", "%1$s changed your password on %2$s." : "%1$s pakeitė jūsų slaptažodį %2$s", "The new email address is %s" : "Naujasis el. pašto adresas yra %s", - "Your username is: %s" : "Jūsų naudotojo vardas yra: %s", "Your %s account was created" : "Jūsų paskyra %s sukurta", + "Your username is: %s" : "Jūsų naudotojo vardas yra: %s", "Password confirmation is required" : "Reikalingas slaptažodžio patvirtinimas", "Couldn't remove app." : "Nepavyko pašalinti programėlės.", "Couldn't update app." : "Nepavyko atnaujinti programėlės.", @@ -112,13 +112,13 @@ "Changing the password will result in data loss, because data recovery is not available for this user" : "Slaptažodžio pakeitimas sąlygos duomenų praradimą, kadangi šiam naudotojui nėra prieinamas duomenų atkūrimas", "A valid username must be provided" : "Privalo būti pateiktas tinkamas naudotojo vardas", "A valid password must be provided" : "Slaptažodis turi būti tinkamas", - "This app has an update available." : "Šiai programėlei yra prieinamas atnaujinimas.", "Documentation:" : "Dokumentacija:", "User documentation" : "Naudotojo dokumentacija", "Admin documentation" : "Administratoriaus dokumentacija", "Report a bug" : "Pranešti apie klaidą", "Show description …" : "Rodyti aprašą …", "Hide description …" : "Slėpti aprašą …", + "This app has an update available." : "Šiai programėlei yra prieinamas atnaujinimas.", "Online documentation" : "Dokumentacija internete", "Forum" : "Forumas", "None" : "Nieko", diff --git a/settings/l10n/lv.js b/settings/l10n/lv.js index 3c9c536938b..a2dcbc4968c 100644 --- a/settings/l10n/lv.js +++ b/settings/l10n/lv.js @@ -110,7 +110,6 @@ OC.L10N.register( "A valid password must be provided" : "Jānorāda derīga parole", "A valid email must be provided" : "Jānorāda derīga e-pasta adrese", "Developer documentation" : "Izstrādātāja dokumentācija", - "This app has an update available." : "Šai programmai ir pieejams jauninājums", "%s-licensed" : "%s-licencēts", "Documentation:" : "Dokumentācija:", "User documentation" : "Lietotāja dokumentācija", @@ -119,6 +118,7 @@ OC.L10N.register( "Report a bug" : "Ziņot par kļūdu", "Show description …" : "Rādīt aprakstu …", "Hide description …" : "Slēpt aprakstu …", + "This app has an update available." : "Šai programmai ir pieejams jauninājums", "Enable only for specific groups" : "Iespējot tikai konkrētām grupām", "SSL Root Certificates" : "SSL Root Sertifikāti", "Common Name" : "Kopīgais nosaukums", diff --git a/settings/l10n/lv.json b/settings/l10n/lv.json index 2ff0cb23e0c..46c832a14aa 100644 --- a/settings/l10n/lv.json +++ b/settings/l10n/lv.json @@ -108,7 +108,6 @@ "A valid password must be provided" : "Jānorāda derīga parole", "A valid email must be provided" : "Jānorāda derīga e-pasta adrese", "Developer documentation" : "Izstrādātāja dokumentācija", - "This app has an update available." : "Šai programmai ir pieejams jauninājums", "%s-licensed" : "%s-licencēts", "Documentation:" : "Dokumentācija:", "User documentation" : "Lietotāja dokumentācija", @@ -117,6 +116,7 @@ "Report a bug" : "Ziņot par kļūdu", "Show description …" : "Rādīt aprakstu …", "Hide description …" : "Slēpt aprakstu …", + "This app has an update available." : "Šai programmai ir pieejams jauninājums", "Enable only for specific groups" : "Iespējot tikai konkrētām grupām", "SSL Root Certificates" : "SSL Root Sertifikāti", "Common Name" : "Kopīgais nosaukums", diff --git a/settings/l10n/mn.js b/settings/l10n/mn.js index f416b0fad19..a6b31171d28 100644 --- a/settings/l10n/mn.js +++ b/settings/l10n/mn.js @@ -20,8 +20,8 @@ OC.L10N.register( "Unable to add group." : "Бүлэг нэмэх боломжгүй", "Unable to delete group." : "Бүлэг устгах боломжгүй", "Invalid SMTP password." : "SMTP -н нууц үг буруу байна ", - "If you received this email, the email configuration seems to be correct." : "Хэрэв та энэ цахим захидалыг хүлээн авсан бол цахим шуудангийн тохиргоо нь зөв байна.", "Email setting test" : "Цахим шуудангийн тохиргоог шалгах", + "If you received this email, the email configuration seems to be correct." : "Хэрэв та энэ цахим захидалыг хүлээн авсан бол цахим шуудангийн тохиргоо нь зөв байна.", "Email could not be sent. Check your mail server log" : "Цахим захидлыг илгээж чадсангүй. Цахим шуудангийн серверийн лог шалгана уу.", "Unable to create user." : "Хэрэглэгч үүсгэх боломжгүй", "Unable to delete user." : "Хэрэглэгч устгах боломжгүй", diff --git a/settings/l10n/mn.json b/settings/l10n/mn.json index 2e264cc5fcd..ece370349d1 100644 --- a/settings/l10n/mn.json +++ b/settings/l10n/mn.json @@ -18,8 +18,8 @@ "Unable to add group." : "Бүлэг нэмэх боломжгүй", "Unable to delete group." : "Бүлэг устгах боломжгүй", "Invalid SMTP password." : "SMTP -н нууц үг буруу байна ", - "If you received this email, the email configuration seems to be correct." : "Хэрэв та энэ цахим захидалыг хүлээн авсан бол цахим шуудангийн тохиргоо нь зөв байна.", "Email setting test" : "Цахим шуудангийн тохиргоог шалгах", + "If you received this email, the email configuration seems to be correct." : "Хэрэв та энэ цахим захидалыг хүлээн авсан бол цахим шуудангийн тохиргоо нь зөв байна.", "Email could not be sent. Check your mail server log" : "Цахим захидлыг илгээж чадсангүй. Цахим шуудангийн серверийн лог шалгана уу.", "Unable to create user." : "Хэрэглэгч үүсгэх боломжгүй", "Unable to delete user." : "Хэрэглэгч устгах боломжгүй", diff --git a/settings/l10n/nb.js b/settings/l10n/nb.js index c51b4304b2a..fd330f7e614 100644 --- a/settings/l10n/nb.js +++ b/settings/l10n/nb.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "En innlogging med to-trinns bekreftelse mislyktes (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Ditt <strong>passord</strong> eller din <strong>e-postadresse</strong> ble endret", "Your apps" : "Dine programmer", + "Updates" : "Oppdateringer", "Enabled apps" : "Påskrudde programmer", "Disabled apps" : "Avskrudde programmer", "App bundles" : "Programpakker", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Kunne ikke legge til gruppe.", "Unable to delete group." : "Kan ikke slette gruppe.", "Invalid SMTP password." : "Ugyldig SMTP-passord.", + "Email setting test" : "E-postinnstillingstest", "Well done, %s!" : "Bra gjort, %s!", "If you received this email, the email configuration seems to be correct." : "Hvis du mottar denne e-posten, er e-postoppsettet rett.", - "Email setting test" : "E-postinnstillingstest", "Email could not be sent. Check your mail server log" : "E-post kunne ikke sendes. Sjekk tjenerloggen på din e-posttjener", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Et problem oppstod med sending av e-post. Sjekk innstillingene. (Feil: %s)", "You need to set your user email before being able to send test emails." : "Du må sette e-postadressen for brukeren din før du kan teste sending av e-post.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s endret ditt passord på %2$s.", "Your password on %s was changed." : "Ditt passord på %s ble endret.", "Your password on %s was reset by an administrator." : "Passordet ditt på %s ble tilbakestilt av en administrator.", + "Password for %1$s changed on %2$s" : "Passord for %1$s endret på %2$s", "Password changed for %s" : "Passord endret for %s", "If you did not request this, please contact an administrator." : "Hvis du ikke forespurte dette, kontakt en administrator.", - "Password for %1$s changed on %2$s" : "Passord for %1$s endret på %2$s", "%1$s changed your email address on %2$s." : "%1$s endret din e-postadresse på %2$s.", "Your email address on %s was changed." : "Din e-postadresse på %s ble endret.", "Your email address on %s was changed by an administrator." : "Din e-postadresse på %s ble endret av en administrator.", + "Email address for %1$s changed on %2$s" : "E-postadresse for %1$s endret på %2$s", "Email address changed for %s" : "E-postadresse endret for %s", "The new email address is %s" : "Den nye e-postadressen er %s", - "Email address for %1$s changed on %2$s" : "E-postadresse for %1$s endret på %2$s", + "Your %s account was created" : "%s-kontoen din ble opprettet", "Welcome aboard" : "Velkommen ombord", "Welcome aboard %s" : "Velkommen ombord i %s", "You now have an %s account, you can add, protect, and share your data." : "Du har nå en %s-konto, og kan legge til, beskytte og dele din data.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Sett passordet ditt", "Go to %s" : "Gå til %s", "Install Client" : "Installer klient", - "Your %s account was created" : "%s-kontoen din ble opprettet", "Password confirmation is required" : "Passord bekreftelse er nødvendig", "Couldn't remove app." : "Klarte ikke å fjerne program.", "Couldn't update app." : "Kunne ikke oppdatere programmet.", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "Offisiell", "All" : "Alle", "Update to %s" : "Oppdater til %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Du har %n app-oppdatering som venter","Du har %n programoppgraderinger som venter"], "No apps found for your version" : "Ingen programmer funnet for din versjon", "The app will be downloaded from the app store" : "Denne appen blir lastet ned fra program-butikken", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offisielle programmer utvikles av og innenfor miljøet, de byr på sentral funksjonalitet og er klare for bruk i produksjon.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Feil: Dette programmet kan ikke aktiveres fordi det gjør tjeneren ustabil", "Error: Could not disable broken app" : "Feil: Kunne ikke deaktivere ustabilt program", "Error while disabling broken app" : "Feil ved deaktivering av ustabilt program", + "No app updates available" : "Ingen programoppdateringer tilgjengelig", "Updating...." : "Oppdaterer…", "Error while updating app" : "Feil ved oppdatering av program", "Updated" : "Oppdatert", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "Utviklerdokumentasjon", "View in store" : "Vis i butikk", "Limit to groups" : "Begrens til grupper", - "This app has an update available." : "En oppdatering er tilgjengelig for dette programmet.", "by %s" : "av %s", "%s-licensed" : "%s-lisensiert", "Documentation:" : "Dokumentasjon:", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "Rapporter en feil", "Show description …" : "Vis beskrivelse…", "Hide description …" : "Skjul beskrivelse…", + "This app has an update available." : "En oppdatering er tilgjengelig for dette programmet.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Dette programmet har ingen laveste versjon av Nextcloud definert. Dette vil være en feil i fremtiden.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Dette programmet har ingen høyeste versjon av Nextcloud definert. Dette vil være en feil i fremtiden.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Dette programmet kan ikke installeres fordi følgende avhengigheter ikke er tilfredsstilt:", @@ -254,7 +255,7 @@ OC.L10N.register( "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Sjekk <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installasjonsdokumentasjonen ↗</a> etter PHP-oppsettsnotater og oppsett av PHP på tjeneren din, særlig om du bruker php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Det skrivebeskyttede oppsettet er blitt aktivert. Dette forhindrer setting av visse oppsett via vev-grensesnittet. Videre må config-filen gjøres skrivbar manuelt for hver oppdatering.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Det ser ut til at at PHP er satt opp til å fjerne innebygde doc-blokker. Dette gjør at flere av kjerneapplikasjonene blir utilgjengelige.", - "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av en bufrer/akselerator, som f.eks. Zend OPcache eller eAccelerator.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av hurtiglager/akselerator, som f.eks. Zend OPcache eller eAccelerator.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Din database kjører ikke med \"READ COMMITED\" transaksjonsisolering. Dette kan lage problemer når flere handlinger kjøres i paralell.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s lavere enn versjon %2$s er installert. Det anbefales å oppgradere til en nyere %1$s-versjon for å få bedre stabilitet og ytelse.", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "PHP-modulen 'fileinfo' mangler. Det anbefales at du aktiverer denne modulen for å kunne detektere MIME-typen korrekt.", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Kan ikke legge bruker til gruppen %s", "Unable to remove user from group %s" : "Kan ikke slette bruker fra gruppen %s", "Sending..." : "Sender…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Du har %n app-oppdatering som venter","Du har %n programoppgraderinger som venter"], "Uninstalling ...." : "Avinstallerer…", "Error while uninstalling app" : "Feil ved avinstallering av program", "Uninstall" : "Avinstaller", diff --git a/settings/l10n/nb.json b/settings/l10n/nb.json index c3823f83911..260cf766179 100644 --- a/settings/l10n/nb.json +++ b/settings/l10n/nb.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "En innlogging med to-trinns bekreftelse mislyktes (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Ditt <strong>passord</strong> eller din <strong>e-postadresse</strong> ble endret", "Your apps" : "Dine programmer", + "Updates" : "Oppdateringer", "Enabled apps" : "Påskrudde programmer", "Disabled apps" : "Avskrudde programmer", "App bundles" : "Programpakker", @@ -30,9 +31,9 @@ "Unable to add group." : "Kunne ikke legge til gruppe.", "Unable to delete group." : "Kan ikke slette gruppe.", "Invalid SMTP password." : "Ugyldig SMTP-passord.", + "Email setting test" : "E-postinnstillingstest", "Well done, %s!" : "Bra gjort, %s!", "If you received this email, the email configuration seems to be correct." : "Hvis du mottar denne e-posten, er e-postoppsettet rett.", - "Email setting test" : "E-postinnstillingstest", "Email could not be sent. Check your mail server log" : "E-post kunne ikke sendes. Sjekk tjenerloggen på din e-posttjener", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Et problem oppstod med sending av e-post. Sjekk innstillingene. (Feil: %s)", "You need to set your user email before being able to send test emails." : "Du må sette e-postadressen for brukeren din før du kan teste sending av e-post.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s endret ditt passord på %2$s.", "Your password on %s was changed." : "Ditt passord på %s ble endret.", "Your password on %s was reset by an administrator." : "Passordet ditt på %s ble tilbakestilt av en administrator.", + "Password for %1$s changed on %2$s" : "Passord for %1$s endret på %2$s", "Password changed for %s" : "Passord endret for %s", "If you did not request this, please contact an administrator." : "Hvis du ikke forespurte dette, kontakt en administrator.", - "Password for %1$s changed on %2$s" : "Passord for %1$s endret på %2$s", "%1$s changed your email address on %2$s." : "%1$s endret din e-postadresse på %2$s.", "Your email address on %s was changed." : "Din e-postadresse på %s ble endret.", "Your email address on %s was changed by an administrator." : "Din e-postadresse på %s ble endret av en administrator.", + "Email address for %1$s changed on %2$s" : "E-postadresse for %1$s endret på %2$s", "Email address changed for %s" : "E-postadresse endret for %s", "The new email address is %s" : "Den nye e-postadressen er %s", - "Email address for %1$s changed on %2$s" : "E-postadresse for %1$s endret på %2$s", + "Your %s account was created" : "%s-kontoen din ble opprettet", "Welcome aboard" : "Velkommen ombord", "Welcome aboard %s" : "Velkommen ombord i %s", "You now have an %s account, you can add, protect, and share your data." : "Du har nå en %s-konto, og kan legge til, beskytte og dele din data.", @@ -73,7 +75,6 @@ "Set your password" : "Sett passordet ditt", "Go to %s" : "Gå til %s", "Install Client" : "Installer klient", - "Your %s account was created" : "%s-kontoen din ble opprettet", "Password confirmation is required" : "Passord bekreftelse er nødvendig", "Couldn't remove app." : "Klarte ikke å fjerne program.", "Couldn't update app." : "Kunne ikke oppdatere programmet.", @@ -87,7 +88,6 @@ "Official" : "Offisiell", "All" : "Alle", "Update to %s" : "Oppdater til %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Du har %n app-oppdatering som venter","Du har %n programoppgraderinger som venter"], "No apps found for your version" : "Ingen programmer funnet for din versjon", "The app will be downloaded from the app store" : "Denne appen blir lastet ned fra program-butikken", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offisielle programmer utvikles av og innenfor miljøet, de byr på sentral funksjonalitet og er klare for bruk i produksjon.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Feil: Dette programmet kan ikke aktiveres fordi det gjør tjeneren ustabil", "Error: Could not disable broken app" : "Feil: Kunne ikke deaktivere ustabilt program", "Error while disabling broken app" : "Feil ved deaktivering av ustabilt program", + "No app updates available" : "Ingen programoppdateringer tilgjengelig", "Updating...." : "Oppdaterer…", "Error while updating app" : "Feil ved oppdatering av program", "Updated" : "Oppdatert", @@ -183,7 +184,6 @@ "Developer documentation" : "Utviklerdokumentasjon", "View in store" : "Vis i butikk", "Limit to groups" : "Begrens til grupper", - "This app has an update available." : "En oppdatering er tilgjengelig for dette programmet.", "by %s" : "av %s", "%s-licensed" : "%s-lisensiert", "Documentation:" : "Dokumentasjon:", @@ -193,6 +193,7 @@ "Report a bug" : "Rapporter en feil", "Show description …" : "Vis beskrivelse…", "Hide description …" : "Skjul beskrivelse…", + "This app has an update available." : "En oppdatering er tilgjengelig for dette programmet.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Dette programmet har ingen laveste versjon av Nextcloud definert. Dette vil være en feil i fremtiden.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Dette programmet har ingen høyeste versjon av Nextcloud definert. Dette vil være en feil i fremtiden.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Dette programmet kan ikke installeres fordi følgende avhengigheter ikke er tilfredsstilt:", @@ -252,7 +253,7 @@ "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Sjekk <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installasjonsdokumentasjonen ↗</a> etter PHP-oppsettsnotater og oppsett av PHP på tjeneren din, særlig om du bruker php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Det skrivebeskyttede oppsettet er blitt aktivert. Dette forhindrer setting av visse oppsett via vev-grensesnittet. Videre må config-filen gjøres skrivbar manuelt for hver oppdatering.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Det ser ut til at at PHP er satt opp til å fjerne innebygde doc-blokker. Dette gjør at flere av kjerneapplikasjonene blir utilgjengelige.", - "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av en bufrer/akselerator, som f.eks. Zend OPcache eller eAccelerator.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av hurtiglager/akselerator, som f.eks. Zend OPcache eller eAccelerator.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Din database kjører ikke med \"READ COMMITED\" transaksjonsisolering. Dette kan lage problemer når flere handlinger kjøres i paralell.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s lavere enn versjon %2$s er installert. Det anbefales å oppgradere til en nyere %1$s-versjon for å få bedre stabilitet og ytelse.", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "PHP-modulen 'fileinfo' mangler. Det anbefales at du aktiverer denne modulen for å kunne detektere MIME-typen korrekt.", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "Kan ikke legge bruker til gruppen %s", "Unable to remove user from group %s" : "Kan ikke slette bruker fra gruppen %s", "Sending..." : "Sender…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Du har %n app-oppdatering som venter","Du har %n programoppgraderinger som venter"], "Uninstalling ...." : "Avinstallerer…", "Error while uninstalling app" : "Feil ved avinstallering av program", "Uninstall" : "Avinstaller", diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index 35b394664b3..3a055aa3632 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "Kan de groep niet toevoegen.", "Unable to delete group." : "Kan de groep niet verwijderen.", "Invalid SMTP password." : "Ongeldig SMTP wachtwoord", + "Email setting test" : "E-mailinstellingen test", "Well done, %s!" : "Goed gedaan, %s!", "If you received this email, the email configuration seems to be correct." : "Als je dit e-mailtje ontving, dan lijken de e-mailinstellingen correct.", - "Email setting test" : "E-mailinstellingen test", "Email could not be sent. Check your mail server log" : "Er kon geen e-mail verstuurd worden. Controleer je server log files", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Er ontstond een probleem bij het versturen van de e-mail. Controleer je instellingen. (Fout: %s)", "You need to set your user email before being able to send test emails." : "Je moet je e-mailadres invoeren voordat je testberichten kunt versturen.", @@ -59,22 +59,23 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$swijzigde je wachtwoord op %2$s.", "Your password on %s was changed." : "Je wachtwoord op %s is gewijzigd.", "Your password on %s was reset by an administrator." : "Je wachtwoord op %s werd hersteld door een beheerder.", + "Password for %1$s changed on %2$s" : "Wachtwoord voor %1$sgewijzigd op %2$s", "Password changed for %s" : "Wachtwoord gewijzigd voor %s", "If you did not request this, please contact an administrator." : "Als je dat niet aanvroeg, neem dan contact op met een beheerder.", - "Password for %1$s changed on %2$s" : "Wachtwoord voor %1$sgewijzigd op %2$s", "%1$s changed your email address on %2$s." : "%1$s wijzigde je e-mailadres op %2$s.", "Your email address on %s was changed." : "Je e-mailadres op %sis gewijzigd.", "Your email address on %s was changed by an administrator." : "Je e-mailadres op %s is gewijzigd door een beheerder.", + "Email address for %1$s changed on %2$s" : "E-mailadres voor %1$sgewijzigd op %2$s", "Email address changed for %s" : "E-mailadres gewijzigd voor %s", "The new email address is %s" : "Het nieuwe e-mailadres is %s", - "Email address for %1$s changed on %2$s" : "E-mailadres voor %1$sgewijzigd op %2$s", + "Your %s account was created" : "Je %s account is aangemaakt", "Welcome aboard" : "Welkom aan boord", "Welcome aboard %s" : "Welkom aan boord %s", + "You now have an %s account, you can add, protect, and share your data." : "Je hebt nu een %s account; je kunt je data toevoegen, beschermen en delen.", "Your username is: %s" : "Je gebruikersnaam is: %s", "Set your password" : "Stel je wachtwoord in", "Go to %s" : "Ga naar %s", "Install Client" : "Installeer Client", - "Your %s account was created" : "Je %s account is aangemaakt", "Password confirmation is required" : "Wachtwoordbevestiging vereist", "Couldn't remove app." : "Kon app niet verwijderen.", "Couldn't update app." : "Kon de app niet bijwerken.", @@ -88,7 +89,6 @@ OC.L10N.register( "Official" : "Officieel", "All" : "Alle", "Update to %s" : "Werk bij naar %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Er is %n update voor een applicatie","Er zijn %n applicaties die bijgewerkt kunnen worden"], "No apps found for your version" : "Geen apps gevonden voor jouw versie", "The app will be downloaded from the app store" : "De app zal worden gedownload van de app store", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiële apps worden ontwikkeld door en binnen de community. Ze bieden centrale functionaliteit en zijn klaar voor productie.", @@ -184,7 +184,6 @@ OC.L10N.register( "Developer documentation" : "Ontwikkelaarsdocumentatie", "View in store" : "Bekijken in store", "Limit to groups" : "Beperk to groepen", - "This app has an update available." : "Er is een update beschikbaar voor deze applicatie.", "by %s" : "op %s", "%s-licensed" : "%s-licensed", "Documentation:" : "Documentatie:", @@ -194,6 +193,7 @@ OC.L10N.register( "Report a bug" : "Rapporteer een fout", "Show description …" : "Toon beschrijving ...", "Hide description …" : "Verberg beschrijving ...", + "This app has an update available." : "Er is een update beschikbaar voor deze applicatie.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Deze app heeft geen minimum Nextcloud versie toegewezen gekregen. In de toekomst wordt dit wordt een fout.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Deze app heeft geen maximum Nextcloud versie toegewezen gekregen. In de toekomst wordt dit wordt een fout.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Deze app kan niet worden geïnstalleerd, omdat de volgende afhankelijkheden niet zijn ingevuld:", @@ -292,6 +292,7 @@ OC.L10N.register( "Restrict users to only share with users in their groups" : "Laat gebruikers alleen delen met andere gebruikers in hun groepen", "Exclude groups from sharing" : "Sluit groepen uit van delen", "These groups will still be able to receive shares, but not to initiate them." : "Deze groepen kunnen gedeelde mappen bestanden ontvangen, maar kunnen ze niet starten.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Automatisch afmaken gebruikersnaam bij het delen. Als dit is uitgeschakeld moet een volledige gebruiksnaam of volledig emailadres worden opgegeven.", "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Tonen disclaimer op de openbare link uploadpagina (alleen tonen als het bestandsoverzicht verborgen is).", "This text will be shown on the public link upload page when the file list is hidden." : "Deze tekst wordt getoond op de openbare link uploadpagina als het bestandsoverzicht is verborgen.", "Tips & tricks" : "Tips & trucs", @@ -393,6 +394,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Niet in staat om gebruiker toe te voegen aan groep %s", "Unable to remove user from group %s" : "Niet in staat om gebruiker te verwijderen uit groep %s", "Sending..." : "Versturen...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Er is %n update voor een applicatie","Er zijn %n applicaties die bijgewerkt kunnen worden"], "Uninstalling ...." : "De-installeren ...", "Error while uninstalling app" : "Fout bij de-installeren app", "Uninstall" : "De-installeren", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index 2f2042eb7e6..f8e90285d13 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -30,9 +30,9 @@ "Unable to add group." : "Kan de groep niet toevoegen.", "Unable to delete group." : "Kan de groep niet verwijderen.", "Invalid SMTP password." : "Ongeldig SMTP wachtwoord", + "Email setting test" : "E-mailinstellingen test", "Well done, %s!" : "Goed gedaan, %s!", "If you received this email, the email configuration seems to be correct." : "Als je dit e-mailtje ontving, dan lijken de e-mailinstellingen correct.", - "Email setting test" : "E-mailinstellingen test", "Email could not be sent. Check your mail server log" : "Er kon geen e-mail verstuurd worden. Controleer je server log files", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Er ontstond een probleem bij het versturen van de e-mail. Controleer je instellingen. (Fout: %s)", "You need to set your user email before being able to send test emails." : "Je moet je e-mailadres invoeren voordat je testberichten kunt versturen.", @@ -57,22 +57,23 @@ "%1$s changed your password on %2$s." : "%1$swijzigde je wachtwoord op %2$s.", "Your password on %s was changed." : "Je wachtwoord op %s is gewijzigd.", "Your password on %s was reset by an administrator." : "Je wachtwoord op %s werd hersteld door een beheerder.", + "Password for %1$s changed on %2$s" : "Wachtwoord voor %1$sgewijzigd op %2$s", "Password changed for %s" : "Wachtwoord gewijzigd voor %s", "If you did not request this, please contact an administrator." : "Als je dat niet aanvroeg, neem dan contact op met een beheerder.", - "Password for %1$s changed on %2$s" : "Wachtwoord voor %1$sgewijzigd op %2$s", "%1$s changed your email address on %2$s." : "%1$s wijzigde je e-mailadres op %2$s.", "Your email address on %s was changed." : "Je e-mailadres op %sis gewijzigd.", "Your email address on %s was changed by an administrator." : "Je e-mailadres op %s is gewijzigd door een beheerder.", + "Email address for %1$s changed on %2$s" : "E-mailadres voor %1$sgewijzigd op %2$s", "Email address changed for %s" : "E-mailadres gewijzigd voor %s", "The new email address is %s" : "Het nieuwe e-mailadres is %s", - "Email address for %1$s changed on %2$s" : "E-mailadres voor %1$sgewijzigd op %2$s", + "Your %s account was created" : "Je %s account is aangemaakt", "Welcome aboard" : "Welkom aan boord", "Welcome aboard %s" : "Welkom aan boord %s", + "You now have an %s account, you can add, protect, and share your data." : "Je hebt nu een %s account; je kunt je data toevoegen, beschermen en delen.", "Your username is: %s" : "Je gebruikersnaam is: %s", "Set your password" : "Stel je wachtwoord in", "Go to %s" : "Ga naar %s", "Install Client" : "Installeer Client", - "Your %s account was created" : "Je %s account is aangemaakt", "Password confirmation is required" : "Wachtwoordbevestiging vereist", "Couldn't remove app." : "Kon app niet verwijderen.", "Couldn't update app." : "Kon de app niet bijwerken.", @@ -86,7 +87,6 @@ "Official" : "Officieel", "All" : "Alle", "Update to %s" : "Werk bij naar %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Er is %n update voor een applicatie","Er zijn %n applicaties die bijgewerkt kunnen worden"], "No apps found for your version" : "Geen apps gevonden voor jouw versie", "The app will be downloaded from the app store" : "De app zal worden gedownload van de app store", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiële apps worden ontwikkeld door en binnen de community. Ze bieden centrale functionaliteit en zijn klaar voor productie.", @@ -182,7 +182,6 @@ "Developer documentation" : "Ontwikkelaarsdocumentatie", "View in store" : "Bekijken in store", "Limit to groups" : "Beperk to groepen", - "This app has an update available." : "Er is een update beschikbaar voor deze applicatie.", "by %s" : "op %s", "%s-licensed" : "%s-licensed", "Documentation:" : "Documentatie:", @@ -192,6 +191,7 @@ "Report a bug" : "Rapporteer een fout", "Show description …" : "Toon beschrijving ...", "Hide description …" : "Verberg beschrijving ...", + "This app has an update available." : "Er is een update beschikbaar voor deze applicatie.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Deze app heeft geen minimum Nextcloud versie toegewezen gekregen. In de toekomst wordt dit wordt een fout.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Deze app heeft geen maximum Nextcloud versie toegewezen gekregen. In de toekomst wordt dit wordt een fout.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Deze app kan niet worden geïnstalleerd, omdat de volgende afhankelijkheden niet zijn ingevuld:", @@ -290,6 +290,7 @@ "Restrict users to only share with users in their groups" : "Laat gebruikers alleen delen met andere gebruikers in hun groepen", "Exclude groups from sharing" : "Sluit groepen uit van delen", "These groups will still be able to receive shares, but not to initiate them." : "Deze groepen kunnen gedeelde mappen bestanden ontvangen, maar kunnen ze niet starten.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Automatisch afmaken gebruikersnaam bij het delen. Als dit is uitgeschakeld moet een volledige gebruiksnaam of volledig emailadres worden opgegeven.", "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Tonen disclaimer op de openbare link uploadpagina (alleen tonen als het bestandsoverzicht verborgen is).", "This text will be shown on the public link upload page when the file list is hidden." : "Deze tekst wordt getoond op de openbare link uploadpagina als het bestandsoverzicht is verborgen.", "Tips & tricks" : "Tips & trucs", @@ -391,6 +392,7 @@ "Unable to add user to group %s" : "Niet in staat om gebruiker toe te voegen aan groep %s", "Unable to remove user from group %s" : "Niet in staat om gebruiker te verwijderen uit groep %s", "Sending..." : "Versturen...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Er is %n update voor een applicatie","Er zijn %n applicaties die bijgewerkt kunnen worden"], "Uninstalling ...." : "De-installeren ...", "Error while uninstalling app" : "Fout bij de-installeren app", "Uninstall" : "De-installeren", diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js index 7aa8bee50b0..4f38d4df973 100644 --- a/settings/l10n/pl.js +++ b/settings/l10n/pl.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "Próba logowania z wykorzystaniem uwierzytelniania dwuetepowego zakończyła się niepowodzeniem (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Twoje <strong>hasło</strong> lub <strong>e-mail</strong> zostal zmieniony", "Your apps" : "Twoje aplikacje", + "Updates" : "Aktualizacje", "Enabled apps" : "Włączone aplikacje", "Disabled apps" : "Wyłączone aplikacje", "App bundles" : "Zestawy aplikacji", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Nie można dodać grupy.", "Unable to delete group." : "Nie można usunąć grupy.", "Invalid SMTP password." : "Błędne hasło SMTP.", + "Email setting test" : "Test ustawień e-mail", "Well done, %s!" : "Dobra robota, %s!", "If you received this email, the email configuration seems to be correct." : "Jeśli otrzymałeś/-aś tego e-maila to wydaje się, że konfiguracja e-maili jest prawidłowa.", - "Email setting test" : "Test ustawień e-mail", "Email could not be sent. Check your mail server log" : "E-mail nie został wysłany. Sprawdź logi swojego serwera poczty", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Wystąpił błąd podczas wysyłania wiadomości e-mail. Proszę zmienić swoje ustawienia. (Error: %s)", "You need to set your user email before being able to send test emails." : "Musisz najpierw ustawić użytkownika e-mail, aby móc wysyłać wiadomości testowe.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s zmienił/-a Twoje hasło dla %2$s.", "Your password on %s was changed." : "Twoje hasło dla %s zostało zmienione.", "Your password on %s was reset by an administrator." : "Twoje hasło dla %s zostało zresetowane przez administratora", + "Password for %1$s changed on %2$s" : "Hasło dla %1$s zostało zmienione w %2$s", "Password changed for %s" : "Hsło zmieniono dla %s", "If you did not request this, please contact an administrator." : "Jeśli o to nie prosiłeś skontaktuj się proszę z administratorem", - "Password for %1$s changed on %2$s" : "Hasło dla %1$s zostało zmienione w %2$s", "%1$s changed your email address on %2$s." : "%1$s zmienił/-a Twój adres e-mail w %2$s.", "Your email address on %s was changed." : "Twój adres e-mail dla %s został zmieniony.", "Your email address on %s was changed by an administrator." : "Twój adres e-mail dla %s został zmieniony przez administratora.", + "Email address for %1$s changed on %2$s" : "Adres e-mail dla %1$s zmieniono w %2$s", "Email address changed for %s" : "E-mail adres dla %s został zmieniony", "The new email address is %s" : "Nowy adres e-mail to %s", - "Email address for %1$s changed on %2$s" : "Adres e-mail dla %1$s zmieniono w %2$s", + "Your %s account was created" : "Twoje konto %s zostało stworzone", "Welcome aboard" : "Witamy na pokładzie", "Welcome aboard %s" : "Witamy na pokładzie %s", "You now have an %s account, you can add, protect, and share your data." : "Posiadasz teraz konto %s, możesz dodawać, chronić i współdzielić swoje dane.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Ustaw hasło", "Go to %s" : "Idź do: %s", "Install Client" : "Zainstaluj klienta", - "Your %s account was created" : "Twoje konto %s zostało stworzone", "Password confirmation is required" : "Wymagane jest potwierdzenie hasła", "Couldn't remove app." : "Nie można usunąć aplikacji.", "Couldn't update app." : "Nie można uaktualnić aplikacji.", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "Oficjalny", "All" : "Wszystkie", "Update to %s" : "Uaktualnij do %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Masz %n oczekującą aktualizację aplikacji","Masz %n oczekujące aktualizacje aplikacji","Masz %n oczekujących aktualizacji aplikacji","Masz %n oczekujących aktualizacji aplikacji"], "No apps found for your version" : "Nie znaleziono aplikacji dla Twojej wersji", "The app will be downloaded from the app store" : "Aplikacja zostanie pobrana z App Store", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficjalne aplikacje są tworzone przez i wewnątrz społeczności. Oferują one centralną funkcjonalność i są gotowe do użycia produkcyjnego.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Błąd: ta aplikacja nie zostanie włączona ze względu na możliwość niestabilnej pracy serwera.", "Error: Could not disable broken app" : "Błąd: Nie można wyłączyć uszkodzonej aplikacji", "Error while disabling broken app" : "Błąd podczas wyłączania uszkodzonej aplikacji", + "No app updates available" : "Brak aktualizacji aplikacji", "Updating...." : "Aktualizacja w toku...", "Error while updating app" : "Błąd podczas aktualizacji aplikacji", "Updated" : "Zaktualizowano", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "Dokumentacja dewelopera", "View in store" : "Zobacz w sklepie", "Limit to groups" : "Ogranicz do group", - "This app has an update available." : "Ta aplikacja ma dostępną aktualizację.", "by %s" : "autorstwa %s", "%s-licensed" : "%s-licencjonowany", "Documentation:" : "Dokumentacja:", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "Zgłoś błąd", "Show description …" : "Pokaż opis ...", "Hide description …" : "Ukryj opis ...", + "This app has an update available." : "Ta aplikacja ma dostępną aktualizację.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej minimalnej wersji Nextcloud. W przyszłości będzie to błąd.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej maksymalnej wersji Nextcloud. W przyszłości będzie to błąd.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ta aplikacja nie może być zainstalowana, ponieważ nie są spełnione następujące zależności:", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Nie można dodać użytkownika do grupy %s", "Unable to remove user from group %s" : "Nie można usunąć użytkownika z grupy %s", "Sending..." : "Wysyłam...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Masz %n oczekującą aktualizację aplikacji","Masz %n oczekujące aktualizacje aplikacji","Masz %n oczekujących aktualizacji aplikacji","Masz %n oczekujących aktualizacji aplikacji"], "Uninstalling ...." : "Odinstalowywanie....", "Error while uninstalling app" : "Błąd przy odinstalowywaniu aplikacji", "Uninstall" : "Odinstaluj", diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json index bf70ea5f965..941e5d44091 100644 --- a/settings/l10n/pl.json +++ b/settings/l10n/pl.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "Próba logowania z wykorzystaniem uwierzytelniania dwuetepowego zakończyła się niepowodzeniem (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Twoje <strong>hasło</strong> lub <strong>e-mail</strong> zostal zmieniony", "Your apps" : "Twoje aplikacje", + "Updates" : "Aktualizacje", "Enabled apps" : "Włączone aplikacje", "Disabled apps" : "Wyłączone aplikacje", "App bundles" : "Zestawy aplikacji", @@ -30,9 +31,9 @@ "Unable to add group." : "Nie można dodać grupy.", "Unable to delete group." : "Nie można usunąć grupy.", "Invalid SMTP password." : "Błędne hasło SMTP.", + "Email setting test" : "Test ustawień e-mail", "Well done, %s!" : "Dobra robota, %s!", "If you received this email, the email configuration seems to be correct." : "Jeśli otrzymałeś/-aś tego e-maila to wydaje się, że konfiguracja e-maili jest prawidłowa.", - "Email setting test" : "Test ustawień e-mail", "Email could not be sent. Check your mail server log" : "E-mail nie został wysłany. Sprawdź logi swojego serwera poczty", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Wystąpił błąd podczas wysyłania wiadomości e-mail. Proszę zmienić swoje ustawienia. (Error: %s)", "You need to set your user email before being able to send test emails." : "Musisz najpierw ustawić użytkownika e-mail, aby móc wysyłać wiadomości testowe.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s zmienił/-a Twoje hasło dla %2$s.", "Your password on %s was changed." : "Twoje hasło dla %s zostało zmienione.", "Your password on %s was reset by an administrator." : "Twoje hasło dla %s zostało zresetowane przez administratora", + "Password for %1$s changed on %2$s" : "Hasło dla %1$s zostało zmienione w %2$s", "Password changed for %s" : "Hsło zmieniono dla %s", "If you did not request this, please contact an administrator." : "Jeśli o to nie prosiłeś skontaktuj się proszę z administratorem", - "Password for %1$s changed on %2$s" : "Hasło dla %1$s zostało zmienione w %2$s", "%1$s changed your email address on %2$s." : "%1$s zmienił/-a Twój adres e-mail w %2$s.", "Your email address on %s was changed." : "Twój adres e-mail dla %s został zmieniony.", "Your email address on %s was changed by an administrator." : "Twój adres e-mail dla %s został zmieniony przez administratora.", + "Email address for %1$s changed on %2$s" : "Adres e-mail dla %1$s zmieniono w %2$s", "Email address changed for %s" : "E-mail adres dla %s został zmieniony", "The new email address is %s" : "Nowy adres e-mail to %s", - "Email address for %1$s changed on %2$s" : "Adres e-mail dla %1$s zmieniono w %2$s", + "Your %s account was created" : "Twoje konto %s zostało stworzone", "Welcome aboard" : "Witamy na pokładzie", "Welcome aboard %s" : "Witamy na pokładzie %s", "You now have an %s account, you can add, protect, and share your data." : "Posiadasz teraz konto %s, możesz dodawać, chronić i współdzielić swoje dane.", @@ -73,7 +75,6 @@ "Set your password" : "Ustaw hasło", "Go to %s" : "Idź do: %s", "Install Client" : "Zainstaluj klienta", - "Your %s account was created" : "Twoje konto %s zostało stworzone", "Password confirmation is required" : "Wymagane jest potwierdzenie hasła", "Couldn't remove app." : "Nie można usunąć aplikacji.", "Couldn't update app." : "Nie można uaktualnić aplikacji.", @@ -87,7 +88,6 @@ "Official" : "Oficjalny", "All" : "Wszystkie", "Update to %s" : "Uaktualnij do %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Masz %n oczekującą aktualizację aplikacji","Masz %n oczekujące aktualizacje aplikacji","Masz %n oczekujących aktualizacji aplikacji","Masz %n oczekujących aktualizacji aplikacji"], "No apps found for your version" : "Nie znaleziono aplikacji dla Twojej wersji", "The app will be downloaded from the app store" : "Aplikacja zostanie pobrana z App Store", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficjalne aplikacje są tworzone przez i wewnątrz społeczności. Oferują one centralną funkcjonalność i są gotowe do użycia produkcyjnego.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Błąd: ta aplikacja nie zostanie włączona ze względu na możliwość niestabilnej pracy serwera.", "Error: Could not disable broken app" : "Błąd: Nie można wyłączyć uszkodzonej aplikacji", "Error while disabling broken app" : "Błąd podczas wyłączania uszkodzonej aplikacji", + "No app updates available" : "Brak aktualizacji aplikacji", "Updating...." : "Aktualizacja w toku...", "Error while updating app" : "Błąd podczas aktualizacji aplikacji", "Updated" : "Zaktualizowano", @@ -183,7 +184,6 @@ "Developer documentation" : "Dokumentacja dewelopera", "View in store" : "Zobacz w sklepie", "Limit to groups" : "Ogranicz do group", - "This app has an update available." : "Ta aplikacja ma dostępną aktualizację.", "by %s" : "autorstwa %s", "%s-licensed" : "%s-licencjonowany", "Documentation:" : "Dokumentacja:", @@ -193,6 +193,7 @@ "Report a bug" : "Zgłoś błąd", "Show description …" : "Pokaż opis ...", "Hide description …" : "Ukryj opis ...", + "This app has an update available." : "Ta aplikacja ma dostępną aktualizację.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej minimalnej wersji Nextcloud. W przyszłości będzie to błąd.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej maksymalnej wersji Nextcloud. W przyszłości będzie to błąd.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ta aplikacja nie może być zainstalowana, ponieważ nie są spełnione następujące zależności:", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "Nie można dodać użytkownika do grupy %s", "Unable to remove user from group %s" : "Nie można usunąć użytkownika z grupy %s", "Sending..." : "Wysyłam...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Masz %n oczekującą aktualizację aplikacji","Masz %n oczekujące aktualizacje aplikacji","Masz %n oczekujących aktualizacji aplikacji","Masz %n oczekujących aktualizacji aplikacji"], "Uninstalling ...." : "Odinstalowywanie....", "Error while uninstalling app" : "Błąd przy odinstalowywaniu aplikacji", "Uninstall" : "Odinstaluj", diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js index 77fe0f97c56..fcc04bf8449 100644 --- a/settings/l10n/pt_BR.js +++ b/settings/l10n/pt_BR.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "A tentativa de login usando autenticação de dois fatores falhou (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Sua <strong>senha</strong> ou <strong>e-mail</strong> foram alterados", "Your apps" : "Seus aplicativos", + "Updates" : "Atualizações", "Enabled apps" : "Aplicativos habilitados", "Disabled apps" : "Aplicativos desabilitados", "App bundles" : "Pacotes de aplicativos", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Não foi possível adicionar o grupo.", "Unable to delete group." : "Não foi possível excluir o grupo.", "Invalid SMTP password." : "Senha SMTP incorreta.", + "Email setting test" : "Teste da configuração de e-mail", "Well done, %s!" : "Bom trabalho %s!", "If you received this email, the email configuration seems to be correct." : "Se você recebeu este e-mail, é sinal que a configuração do servidor de e-mail está correta.", - "Email setting test" : "Teste da configuração de e-mail", "Email could not be sent. Check your mail server log" : "O e-mail não pôde ser enviado. Verifique o log do servidor de e-mail", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocorreu um problema ao enviar o e-mail. Por favor, revise suas configurações. (Erro: %s)", "You need to set your user email before being able to send test emails." : "Você precisa configurar seu e-mail de usuário antes de ser capaz de enviar e-mails de teste.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s mudou sua senha em %2$s.", "Your password on %s was changed." : "Sua senha em %s foi alterada.", "Your password on %s was reset by an administrator." : "Sua senha em %s foi redefinida por um administrador.", + "Password for %1$s changed on %2$s" : "Senha para %1$s alterada em %2$s", "Password changed for %s" : "Senha alterada para %s", "If you did not request this, please contact an administrator." : "Se você não solicitou isso, por favor contacte o administrador.", - "Password for %1$s changed on %2$s" : "Senha para %1$s alterada em %2$s", "%1$s changed your email address on %2$s." : "%1$s alterou seu e-mail em %2$s.", "Your email address on %s was changed." : "Seu e-mail em %s foi alterado.", "Your email address on %s was changed by an administrator." : "Seu e-mail em %s foi alterado por um administrador.", + "Email address for %1$s changed on %2$s" : "O endereço de E-mail para %1$s foi alterado em %2$s", "Email address changed for %s" : "E-mail alterado para %s", "The new email address is %s" : "O novo e-mail é %s", - "Email address for %1$s changed on %2$s" : "O endereço de E-mail para %1$s foi alterado em %2$s", + "Your %s account was created" : "Sua conta %s foi criada", "Welcome aboard" : "Bem-vindo a bordo", "Welcome aboard %s" : "%s, bem-vindo a bordo", "You now have an %s account, you can add, protect, and share your data." : "Agora você tem uma conta%s e pode adicionar, proteger e compartilhar seus dados.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Defina sua senha", "Go to %s" : "Ir para 1 %s", "Install Client" : "Instalar Cliente", - "Your %s account was created" : "Sua conta %s foi criada", "Password confirmation is required" : "A confirmação da senha é necessária", "Couldn't remove app." : "Não foi possível excluir aplicativos.", "Couldn't update app." : "Não foi possível atualizar o aplicativo", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Atualizar para %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Você tem %n atualização pendente","Existem %n aplicativos com atualização pendente"], "No apps found for your version" : "Nenhum aplicativo encontrado para a sua versão", "The app will be downloaded from the app store" : "O aplicativo será baixado da loja de aplicativos", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Os aplicativos oficiais são desenvolvidos pela comunidade e dentro dela. Eles oferecem funcionalidades centrais e estão prontos para uso em produção.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Erro: Este aplicativo não pode ser ativado porque torna o servidor instável", "Error: Could not disable broken app" : "Erro: Não foi possível desativar o aplicativo defeituoso", "Error while disabling broken app" : "Erro ao desativar aplicativo corrompido", + "No app updates available" : "Não há atualizações de aplicativos", "Updating...." : "Atualizando...", "Error while updating app" : "Erro ao atualizar aplicativo", "Updated" : "Atualizado", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "Documentação do desenvolvedor", "View in store" : "Ver na loja", "Limit to groups" : "Limitado a grupos", - "This app has an update available." : "Este aplicativo tem uma atualização disponível.", "by %s" : "por %s", "%s-licensed" : "%s-licenciado", "Documentation:" : "Documentação:", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "Reportar um erro", "Show description …" : "Mostrar descrição...", "Hide description …" : "Ocultar descrição...", + "This app has an update available." : "Este aplicativo tem uma atualização disponível.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não possui uma versão mínima atribuída para uso no Nextcloud. Isto poderá se converter em um erro no futuro.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não possui uma versão máxima atribuida para uso no Nextcloud. Isto poderá se converter em um erro no futuro.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Este aplicativo não pode ser instalado pois as seguintes dependências não forão cumpridas:", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Não foi possível adicionar o usuário ao grupo %s", "Unable to remove user from group %s" : "Não foi possível excluir o usuário do grupo %s", "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Você tem %n atualização pendente","Existem %n aplicativos com atualização pendente"], "Uninstalling ...." : "Desinstalando...", "Error while uninstalling app" : "Erro enquanto desinstalava aplicativo", "Uninstall" : "Desinstalar", diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json index 3f0389f19a1..6eddf7971c6 100644 --- a/settings/l10n/pt_BR.json +++ b/settings/l10n/pt_BR.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "A tentativa de login usando autenticação de dois fatores falhou (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Sua <strong>senha</strong> ou <strong>e-mail</strong> foram alterados", "Your apps" : "Seus aplicativos", + "Updates" : "Atualizações", "Enabled apps" : "Aplicativos habilitados", "Disabled apps" : "Aplicativos desabilitados", "App bundles" : "Pacotes de aplicativos", @@ -30,9 +31,9 @@ "Unable to add group." : "Não foi possível adicionar o grupo.", "Unable to delete group." : "Não foi possível excluir o grupo.", "Invalid SMTP password." : "Senha SMTP incorreta.", + "Email setting test" : "Teste da configuração de e-mail", "Well done, %s!" : "Bom trabalho %s!", "If you received this email, the email configuration seems to be correct." : "Se você recebeu este e-mail, é sinal que a configuração do servidor de e-mail está correta.", - "Email setting test" : "Teste da configuração de e-mail", "Email could not be sent. Check your mail server log" : "O e-mail não pôde ser enviado. Verifique o log do servidor de e-mail", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocorreu um problema ao enviar o e-mail. Por favor, revise suas configurações. (Erro: %s)", "You need to set your user email before being able to send test emails." : "Você precisa configurar seu e-mail de usuário antes de ser capaz de enviar e-mails de teste.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s mudou sua senha em %2$s.", "Your password on %s was changed." : "Sua senha em %s foi alterada.", "Your password on %s was reset by an administrator." : "Sua senha em %s foi redefinida por um administrador.", + "Password for %1$s changed on %2$s" : "Senha para %1$s alterada em %2$s", "Password changed for %s" : "Senha alterada para %s", "If you did not request this, please contact an administrator." : "Se você não solicitou isso, por favor contacte o administrador.", - "Password for %1$s changed on %2$s" : "Senha para %1$s alterada em %2$s", "%1$s changed your email address on %2$s." : "%1$s alterou seu e-mail em %2$s.", "Your email address on %s was changed." : "Seu e-mail em %s foi alterado.", "Your email address on %s was changed by an administrator." : "Seu e-mail em %s foi alterado por um administrador.", + "Email address for %1$s changed on %2$s" : "O endereço de E-mail para %1$s foi alterado em %2$s", "Email address changed for %s" : "E-mail alterado para %s", "The new email address is %s" : "O novo e-mail é %s", - "Email address for %1$s changed on %2$s" : "O endereço de E-mail para %1$s foi alterado em %2$s", + "Your %s account was created" : "Sua conta %s foi criada", "Welcome aboard" : "Bem-vindo a bordo", "Welcome aboard %s" : "%s, bem-vindo a bordo", "You now have an %s account, you can add, protect, and share your data." : "Agora você tem uma conta%s e pode adicionar, proteger e compartilhar seus dados.", @@ -73,7 +75,6 @@ "Set your password" : "Defina sua senha", "Go to %s" : "Ir para 1 %s", "Install Client" : "Instalar Cliente", - "Your %s account was created" : "Sua conta %s foi criada", "Password confirmation is required" : "A confirmação da senha é necessária", "Couldn't remove app." : "Não foi possível excluir aplicativos.", "Couldn't update app." : "Não foi possível atualizar o aplicativo", @@ -87,7 +88,6 @@ "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Atualizar para %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Você tem %n atualização pendente","Existem %n aplicativos com atualização pendente"], "No apps found for your version" : "Nenhum aplicativo encontrado para a sua versão", "The app will be downloaded from the app store" : "O aplicativo será baixado da loja de aplicativos", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Os aplicativos oficiais são desenvolvidos pela comunidade e dentro dela. Eles oferecem funcionalidades centrais e estão prontos para uso em produção.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Erro: Este aplicativo não pode ser ativado porque torna o servidor instável", "Error: Could not disable broken app" : "Erro: Não foi possível desativar o aplicativo defeituoso", "Error while disabling broken app" : "Erro ao desativar aplicativo corrompido", + "No app updates available" : "Não há atualizações de aplicativos", "Updating...." : "Atualizando...", "Error while updating app" : "Erro ao atualizar aplicativo", "Updated" : "Atualizado", @@ -183,7 +184,6 @@ "Developer documentation" : "Documentação do desenvolvedor", "View in store" : "Ver na loja", "Limit to groups" : "Limitado a grupos", - "This app has an update available." : "Este aplicativo tem uma atualização disponível.", "by %s" : "por %s", "%s-licensed" : "%s-licenciado", "Documentation:" : "Documentação:", @@ -193,6 +193,7 @@ "Report a bug" : "Reportar um erro", "Show description …" : "Mostrar descrição...", "Hide description …" : "Ocultar descrição...", + "This app has an update available." : "Este aplicativo tem uma atualização disponível.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não possui uma versão mínima atribuída para uso no Nextcloud. Isto poderá se converter em um erro no futuro.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não possui uma versão máxima atribuida para uso no Nextcloud. Isto poderá se converter em um erro no futuro.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Este aplicativo não pode ser instalado pois as seguintes dependências não forão cumpridas:", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "Não foi possível adicionar o usuário ao grupo %s", "Unable to remove user from group %s" : "Não foi possível excluir o usuário do grupo %s", "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Você tem %n atualização pendente","Existem %n aplicativos com atualização pendente"], "Uninstalling ...." : "Desinstalando...", "Error while uninstalling app" : "Erro enquanto desinstalava aplicativo", "Uninstall" : "Desinstalar", diff --git a/settings/l10n/pt_PT.js b/settings/l10n/pt_PT.js index 9085f6508b8..1793753c2db 100644 --- a/settings/l10n/pt_PT.js +++ b/settings/l10n/pt_PT.js @@ -1,6 +1,15 @@ OC.L10N.register( "settings", { + "{actor} changed your password" : "{actor} alterou a sua senha", + "You changed your password" : "Você alterou a sua senha", + "Your password was reset by an administrator" : "A sua senha foi alterada por um administrador", + "{actor} changed your email address" : "{actor} alterou o seu endereço de e-mail", + "You changed your email address" : "Você alterou o seu endereço de e-mail", + "Your email address was changed by an administrator" : "O seu endereço de e-mail foi alterado por um administrador", + "Security" : "Segurança", + "Enabled apps" : "Apps ativas", + "Disabled apps" : "Apps desativadas", "Wrong password" : "Palavra-passe errada", "Saved" : "Guardado", "No user supplied" : "Nenhum utilizador especificado", @@ -15,17 +24,21 @@ OC.L10N.register( "Group already exists." : "O grupo já existe.", "Unable to add group." : "Impossível adicionar o grupo.", "Unable to delete group." : "Impossível eliminar grupo.", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Um problema ocorreu ao enviar o email. Por favor verifique as suas definições. (Erro: %s)", - "You need to set your user email before being able to send test emails." : "Você precisa de configurar o seu e-mail de usuário antes de ser capaz de enviar e-mails de teste", + "Invalid SMTP password." : "Senha de SMTP enválida.", + "Well done, %s!" : "Muito bem, %s!", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocorreu um problema ao enviar o e-mail. Por favor verifique as suas definições. (Erro: %s)", + "You need to set your user email before being able to send test emails." : "Você tem de configurar o seu e-mail de utilizador antes de ser capaz de enviar e-mails de teste", "Invalid mail address" : "Endereço de correio eletrónico inválido", "A user with that name already exists." : "Já existe um utilizador com esse nome.", "Unable to create user." : "Impossível criar o utilizador.", "Unable to delete user." : "Impossível apagar o utilizador.", + "Settings saved" : "Definições guardadas", "Unable to change full name" : "Não foi possível alterar o seu nome completo", + "Unable to change email address" : "Não foi possível alterar o seu endereço de e-mail", "Your full name has been changed." : "O seu nome completo foi alterado.", "Forbidden" : "Proibido", "Invalid user" : "Utilizador inválido", - "Unable to change mail address" : "Não foi possível alterar o teu endereço de email", + "Unable to change mail address" : "Não foi possível alterar o seu endereço de e-mail", "Email saved" : "E-mail guardado", "Your %s account was created" : "A tua conta %s foi criada", "Couldn't remove app." : "Não foi possível remover a aplicação.", @@ -37,7 +50,6 @@ OC.L10N.register( "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Actualizar para %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Você tem %n atualização de aplicação pendente","Você tem %n atualizações de aplicações pendentes"], "No apps found for your version" : "Nenhuma aplicação encontrada para a sua versão", "The app will be downloaded from the app store" : "A aplicação será descarregada da loja de aplicações", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "As aplicações aprovadas são desenvolvidas por developers de confiança e passaram numa verificação de segurança. São mantidas ativamente num repositório de código aberto e quem as mantém considera-as estáveis para uso casual a normal.", @@ -50,18 +62,30 @@ OC.L10N.register( "Updating...." : "A atualizar...", "Error while updating app" : "Ocorreu um erro enquanto atualizava a app", "Updated" : "Atualizada", + "Removing …" : "A remover...", + "Remove" : "Remover", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "A aplicação foi ativada, mas precisa de ser atualizada. Você será redirecionado para a página de atualização em 5 segundos.", "App update" : "Atualizar App", "Approved" : "Aprovado", "Experimental" : "Experimental", "No apps found for {query}" : "Não foram encontradas aplicações para {query}", + "Enable all" : "Ativar todas", + "Allow filesystem access" : "Permitir acesso ao sistema de ficheiros", "Disconnect" : "Desligado", + "Revoke" : "Revogar", + "iOS Client" : "Cliente iOS", + "Android Client" : "Cliente Android", + "Copy" : "Copiar", + "Not supported!" : "Não suportado!", "Error while loading browser sessions and device tokens" : "Erro durante o carregamento das sessões do navegador e tokens do dispositivo", "Error while creating device token" : "Erro durante a criação do token do dispositivo", "Error while deleting the token" : "Erro durante a eliminação do token", "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Ocorreu um erro. Por favor, envie um certificado PEM codificado em ASCII.", "Valid until {date}" : "Válida até {date}", "Delete" : "Apagar", + "Private" : "Privado", + "Contacts" : "Contactos", + "Public" : "Público", "Select a profile picture" : "Selecione uma fotografia de perfil", "Very weak password" : "Palavra-passe muito fraca", "Weak password" : "Palavra-passe fraca", @@ -75,14 +99,13 @@ OC.L10N.register( "deleted {groupName}" : "{groupName} apagado", "undo" : "Anular", "never" : "nunca", - "deleted {userName}" : "{userName} apagado", + "deleted {userName}" : "{userName} eliminado", "Changing the password will result in data loss, because data recovery is not available for this user" : "A alteração da palavra-passe resultará na perda de dados, porque a recuperação de dados não está disponível para este utilizador", "A valid username must be provided" : "Deve ser indicado um nome de utilizador válido", "Error creating user: {message}" : "Erro ao criar utilizador: {message}", "A valid password must be provided" : "Deve ser indicada uma palavra-passe válida", "A valid email must be provided" : "Deve ser fornecido um email válido", "Developer documentation" : "Documentação de Programador", - "This app has an update available." : "Esta aplicação tem uma atualização disponível.", "by %s" : "por %s", "%s-licensed" : "%s-autorizado", "Documentation:" : "Documentação:", @@ -91,6 +114,7 @@ OC.L10N.register( "Report a bug" : "Reportar um erro", "Show description …" : "Mostrar descrição ...", "Hide description …" : "Esconder descrição ...", + "This app has an update available." : "Esta aplicação tem uma atualização disponível.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicação não pode ser instalada porque as seguintes dependências não podem ser realizadas:", "Enable only for specific groups" : "Activar só para grupos específicos", "SSL Root Certificates" : "Certificados SSL Root", @@ -102,11 +126,14 @@ OC.L10N.register( "Administrator documentation" : "Documentação de Administrador.", "Online documentation" : "Documentação Online", "Forum" : "Fórum", + "Getting help" : "Obtendo ajuda", "Commercial support" : "Suporte Comercial", "None" : "Nenhum", "Login" : "Iniciar Sessão", "Plain" : "Plano", "NT LAN Manager" : "Gestor de REDE NT", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Servidor de Correio Eletrónico", "Open documentation" : "Abrir documentação", "Send mode" : "Modo de Envio", @@ -130,11 +157,11 @@ OC.L10N.register( "Be aware that encryption always increases the file size." : "Tenha em conta que a encriptação aumenta sempre o tamanho do ficheiro.", "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "É sempre bom criar cópias de segurança regulares dos seus dados, em caso de encriptação tenha a certeza de que faz cópia das chaves de encriptação em conjunto com os seus dados.", "This is the final warning: Do you really want to enable encryption?" : "Este é o aviso final: quer mesmo ativar a encriptação?", - "Enable encryption" : "Ative a encriptação", + "Enable encryption" : "Ativar a encriptação", "No encryption module loaded, please enable an encryption module in the app menu." : "Nenhum módulo de encriptação carregador, por favor ative um módulo de encriptação no menu das aplicações.", "Select default encryption module:" : "Selecionar o módulo de encriptação predefinido:", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Precisa de migrar as suas chaves de encriptação da encriptação antiga (ownCloud <= 8.0) para a nova. Por favor, ative o \"Módulo de encriptação padrão\" e execute 'occ encryption:migrate'", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Precisa de migrar as suas chaves de encriptação da encriptação antiga (ownCloud <= 8.0) para a nova.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "É necessário migrar as suas chaves de encriptação da encriptação antiga (ownCloud <= 8.0) para a nova. Por favor, ative o \"Módulo de encriptação padrão\" e execute 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "É necessário migrar as suas chaves de encriptação da encriptação antiga (ownCloud <= 8.0) para a nova.", "Start migration" : "Iniciar migração", "Security & setup warnings" : "Avisos de configuração e segurança", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "A configuração Só-de-Leitura foi ativada. Isto evita definir algumas configurações através da interface da Web. Além disso, o ficheiro precisa de ser definido gravável manualmente para cada atualização.", @@ -166,6 +193,8 @@ OC.L10N.register( "Improving the config.php" : "Melhorar o config.php", "Theming" : "Temas", "Hardening and security guidance" : "Orientações de proteção e segurança", + "Personal" : "Pessoal", + "Administration" : "Administração", "You are using <strong>%s</strong> of <strong>%s</strong>" : "Está a usar <strong>%s</strong> de <strong>%s</strong>", "Profile picture" : "Foto do perfil", "Upload new" : "Carregar novo", @@ -180,6 +209,10 @@ OC.L10N.register( "Email" : "Email", "Your email address" : "O seu endereço de email", "No email address set" : "Nenhum endereço de email estabelecido", + "Phone number" : "Número de telefone", + "Your phone number" : "O seu número de telefone", + "Address" : "Morada", + "Your postal address" : "A sua morada", "You are member of the following groups:" : "Você é membro dos seguintes grupos:", "Language" : "Idioma", "Help translate" : "Ajude a traduzir", @@ -187,6 +220,10 @@ OC.L10N.register( "Current password" : "Palavra-passe atual", "New password" : "Nova palavra-passe", "Change password" : "Alterar palavra-passe", + "Device" : "Dispositivo", + "Last activity" : "Última atividade", + "App name" : "Nome da App", + "Create new app password" : "Criar nova senha", "Username" : "Nome de utilizador", "Done" : "Concluído", "Show storage location" : "Mostrar a localização do armazenamento", @@ -203,6 +240,7 @@ OC.L10N.register( "Unlimited" : "Ilimitado", "Other" : "Outro", "Quota" : "Quota", + "Last login" : "Último início de sessão", "change full name" : "alterar nome completo", "set new password" : "definir nova palavra-passe", "change email address" : "alterar endereço do correio eletrónico", @@ -217,6 +255,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Não é possível adicionar o utilizador ao grupo %s", "Unable to remove user from group %s" : "Não é possível remover o utilizador do grupo %s", "Sending..." : "A enviar...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Você tem %n atualização de aplicação pendente","Você tem %n atualizações de aplicações pendentes"], "Uninstalling ...." : "A desinstalar....", "Error while uninstalling app" : "Ocorreu um erro durante a desinstalação da app", "Uninstall" : "Desinstalar", @@ -239,8 +278,9 @@ OC.L10N.register( "Last cron job execution: %s. Something seems wrong." : "Última execução de cron job: %s. Algo está errado.", "Cron was not executed yet!" : "Cron ainda não foi executado!", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registado num serviço webcron para chamar a página cron.php por http a cada 15 minutos.", - "Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço sistema cron para ligar o ficheiro cron.php a cada 15 minutos.", + "Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço cron do sistema para ligar o ficheiro cron.php a cada 15 minutos.", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Permitir o auto-completar de nome de utilizador no diálogo da partilha. Se isto for desativado, será necessário preencher o nome de utilizador completo.", + "Uninstall app" : "Desinstalar app", "Cheers!" : "Parabéns!", "For password recovery and notifications" : "Para recuperação da palavra-passe e notificações", "Get the apps to sync your files" : "Obtenha as aplicações para sincronizar os seus ficheiros", diff --git a/settings/l10n/pt_PT.json b/settings/l10n/pt_PT.json index 11afdaa4ae6..cc2eab3342e 100644 --- a/settings/l10n/pt_PT.json +++ b/settings/l10n/pt_PT.json @@ -1,4 +1,13 @@ { "translations": { + "{actor} changed your password" : "{actor} alterou a sua senha", + "You changed your password" : "Você alterou a sua senha", + "Your password was reset by an administrator" : "A sua senha foi alterada por um administrador", + "{actor} changed your email address" : "{actor} alterou o seu endereço de e-mail", + "You changed your email address" : "Você alterou o seu endereço de e-mail", + "Your email address was changed by an administrator" : "O seu endereço de e-mail foi alterado por um administrador", + "Security" : "Segurança", + "Enabled apps" : "Apps ativas", + "Disabled apps" : "Apps desativadas", "Wrong password" : "Palavra-passe errada", "Saved" : "Guardado", "No user supplied" : "Nenhum utilizador especificado", @@ -13,17 +22,21 @@ "Group already exists." : "O grupo já existe.", "Unable to add group." : "Impossível adicionar o grupo.", "Unable to delete group." : "Impossível eliminar grupo.", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Um problema ocorreu ao enviar o email. Por favor verifique as suas definições. (Erro: %s)", - "You need to set your user email before being able to send test emails." : "Você precisa de configurar o seu e-mail de usuário antes de ser capaz de enviar e-mails de teste", + "Invalid SMTP password." : "Senha de SMTP enválida.", + "Well done, %s!" : "Muito bem, %s!", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocorreu um problema ao enviar o e-mail. Por favor verifique as suas definições. (Erro: %s)", + "You need to set your user email before being able to send test emails." : "Você tem de configurar o seu e-mail de utilizador antes de ser capaz de enviar e-mails de teste", "Invalid mail address" : "Endereço de correio eletrónico inválido", "A user with that name already exists." : "Já existe um utilizador com esse nome.", "Unable to create user." : "Impossível criar o utilizador.", "Unable to delete user." : "Impossível apagar o utilizador.", + "Settings saved" : "Definições guardadas", "Unable to change full name" : "Não foi possível alterar o seu nome completo", + "Unable to change email address" : "Não foi possível alterar o seu endereço de e-mail", "Your full name has been changed." : "O seu nome completo foi alterado.", "Forbidden" : "Proibido", "Invalid user" : "Utilizador inválido", - "Unable to change mail address" : "Não foi possível alterar o teu endereço de email", + "Unable to change mail address" : "Não foi possível alterar o seu endereço de e-mail", "Email saved" : "E-mail guardado", "Your %s account was created" : "A tua conta %s foi criada", "Couldn't remove app." : "Não foi possível remover a aplicação.", @@ -35,7 +48,6 @@ "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Actualizar para %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Você tem %n atualização de aplicação pendente","Você tem %n atualizações de aplicações pendentes"], "No apps found for your version" : "Nenhuma aplicação encontrada para a sua versão", "The app will be downloaded from the app store" : "A aplicação será descarregada da loja de aplicações", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "As aplicações aprovadas são desenvolvidas por developers de confiança e passaram numa verificação de segurança. São mantidas ativamente num repositório de código aberto e quem as mantém considera-as estáveis para uso casual a normal.", @@ -48,18 +60,30 @@ "Updating...." : "A atualizar...", "Error while updating app" : "Ocorreu um erro enquanto atualizava a app", "Updated" : "Atualizada", + "Removing …" : "A remover...", + "Remove" : "Remover", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "A aplicação foi ativada, mas precisa de ser atualizada. Você será redirecionado para a página de atualização em 5 segundos.", "App update" : "Atualizar App", "Approved" : "Aprovado", "Experimental" : "Experimental", "No apps found for {query}" : "Não foram encontradas aplicações para {query}", + "Enable all" : "Ativar todas", + "Allow filesystem access" : "Permitir acesso ao sistema de ficheiros", "Disconnect" : "Desligado", + "Revoke" : "Revogar", + "iOS Client" : "Cliente iOS", + "Android Client" : "Cliente Android", + "Copy" : "Copiar", + "Not supported!" : "Não suportado!", "Error while loading browser sessions and device tokens" : "Erro durante o carregamento das sessões do navegador e tokens do dispositivo", "Error while creating device token" : "Erro durante a criação do token do dispositivo", "Error while deleting the token" : "Erro durante a eliminação do token", "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Ocorreu um erro. Por favor, envie um certificado PEM codificado em ASCII.", "Valid until {date}" : "Válida até {date}", "Delete" : "Apagar", + "Private" : "Privado", + "Contacts" : "Contactos", + "Public" : "Público", "Select a profile picture" : "Selecione uma fotografia de perfil", "Very weak password" : "Palavra-passe muito fraca", "Weak password" : "Palavra-passe fraca", @@ -73,14 +97,13 @@ "deleted {groupName}" : "{groupName} apagado", "undo" : "Anular", "never" : "nunca", - "deleted {userName}" : "{userName} apagado", + "deleted {userName}" : "{userName} eliminado", "Changing the password will result in data loss, because data recovery is not available for this user" : "A alteração da palavra-passe resultará na perda de dados, porque a recuperação de dados não está disponível para este utilizador", "A valid username must be provided" : "Deve ser indicado um nome de utilizador válido", "Error creating user: {message}" : "Erro ao criar utilizador: {message}", "A valid password must be provided" : "Deve ser indicada uma palavra-passe válida", "A valid email must be provided" : "Deve ser fornecido um email válido", "Developer documentation" : "Documentação de Programador", - "This app has an update available." : "Esta aplicação tem uma atualização disponível.", "by %s" : "por %s", "%s-licensed" : "%s-autorizado", "Documentation:" : "Documentação:", @@ -89,6 +112,7 @@ "Report a bug" : "Reportar um erro", "Show description …" : "Mostrar descrição ...", "Hide description …" : "Esconder descrição ...", + "This app has an update available." : "Esta aplicação tem uma atualização disponível.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicação não pode ser instalada porque as seguintes dependências não podem ser realizadas:", "Enable only for specific groups" : "Activar só para grupos específicos", "SSL Root Certificates" : "Certificados SSL Root", @@ -100,11 +124,14 @@ "Administrator documentation" : "Documentação de Administrador.", "Online documentation" : "Documentação Online", "Forum" : "Fórum", + "Getting help" : "Obtendo ajuda", "Commercial support" : "Suporte Comercial", "None" : "Nenhum", "Login" : "Iniciar Sessão", "Plain" : "Plano", "NT LAN Manager" : "Gestor de REDE NT", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Servidor de Correio Eletrónico", "Open documentation" : "Abrir documentação", "Send mode" : "Modo de Envio", @@ -128,11 +155,11 @@ "Be aware that encryption always increases the file size." : "Tenha em conta que a encriptação aumenta sempre o tamanho do ficheiro.", "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "É sempre bom criar cópias de segurança regulares dos seus dados, em caso de encriptação tenha a certeza de que faz cópia das chaves de encriptação em conjunto com os seus dados.", "This is the final warning: Do you really want to enable encryption?" : "Este é o aviso final: quer mesmo ativar a encriptação?", - "Enable encryption" : "Ative a encriptação", + "Enable encryption" : "Ativar a encriptação", "No encryption module loaded, please enable an encryption module in the app menu." : "Nenhum módulo de encriptação carregador, por favor ative um módulo de encriptação no menu das aplicações.", "Select default encryption module:" : "Selecionar o módulo de encriptação predefinido:", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Precisa de migrar as suas chaves de encriptação da encriptação antiga (ownCloud <= 8.0) para a nova. Por favor, ative o \"Módulo de encriptação padrão\" e execute 'occ encryption:migrate'", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Precisa de migrar as suas chaves de encriptação da encriptação antiga (ownCloud <= 8.0) para a nova.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "É necessário migrar as suas chaves de encriptação da encriptação antiga (ownCloud <= 8.0) para a nova. Por favor, ative o \"Módulo de encriptação padrão\" e execute 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "É necessário migrar as suas chaves de encriptação da encriptação antiga (ownCloud <= 8.0) para a nova.", "Start migration" : "Iniciar migração", "Security & setup warnings" : "Avisos de configuração e segurança", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "A configuração Só-de-Leitura foi ativada. Isto evita definir algumas configurações através da interface da Web. Além disso, o ficheiro precisa de ser definido gravável manualmente para cada atualização.", @@ -164,6 +191,8 @@ "Improving the config.php" : "Melhorar o config.php", "Theming" : "Temas", "Hardening and security guidance" : "Orientações de proteção e segurança", + "Personal" : "Pessoal", + "Administration" : "Administração", "You are using <strong>%s</strong> of <strong>%s</strong>" : "Está a usar <strong>%s</strong> de <strong>%s</strong>", "Profile picture" : "Foto do perfil", "Upload new" : "Carregar novo", @@ -178,6 +207,10 @@ "Email" : "Email", "Your email address" : "O seu endereço de email", "No email address set" : "Nenhum endereço de email estabelecido", + "Phone number" : "Número de telefone", + "Your phone number" : "O seu número de telefone", + "Address" : "Morada", + "Your postal address" : "A sua morada", "You are member of the following groups:" : "Você é membro dos seguintes grupos:", "Language" : "Idioma", "Help translate" : "Ajude a traduzir", @@ -185,6 +218,10 @@ "Current password" : "Palavra-passe atual", "New password" : "Nova palavra-passe", "Change password" : "Alterar palavra-passe", + "Device" : "Dispositivo", + "Last activity" : "Última atividade", + "App name" : "Nome da App", + "Create new app password" : "Criar nova senha", "Username" : "Nome de utilizador", "Done" : "Concluído", "Show storage location" : "Mostrar a localização do armazenamento", @@ -201,6 +238,7 @@ "Unlimited" : "Ilimitado", "Other" : "Outro", "Quota" : "Quota", + "Last login" : "Último início de sessão", "change full name" : "alterar nome completo", "set new password" : "definir nova palavra-passe", "change email address" : "alterar endereço do correio eletrónico", @@ -215,6 +253,7 @@ "Unable to add user to group %s" : "Não é possível adicionar o utilizador ao grupo %s", "Unable to remove user from group %s" : "Não é possível remover o utilizador do grupo %s", "Sending..." : "A enviar...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Você tem %n atualização de aplicação pendente","Você tem %n atualizações de aplicações pendentes"], "Uninstalling ...." : "A desinstalar....", "Error while uninstalling app" : "Ocorreu um erro durante a desinstalação da app", "Uninstall" : "Desinstalar", @@ -237,8 +276,9 @@ "Last cron job execution: %s. Something seems wrong." : "Última execução de cron job: %s. Algo está errado.", "Cron was not executed yet!" : "Cron ainda não foi executado!", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registado num serviço webcron para chamar a página cron.php por http a cada 15 minutos.", - "Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço sistema cron para ligar o ficheiro cron.php a cada 15 minutos.", + "Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço cron do sistema para ligar o ficheiro cron.php a cada 15 minutos.", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Permitir o auto-completar de nome de utilizador no diálogo da partilha. Se isto for desativado, será necessário preencher o nome de utilizador completo.", + "Uninstall app" : "Desinstalar app", "Cheers!" : "Parabéns!", "For password recovery and notifications" : "Para recuperação da palavra-passe e notificações", "Get the apps to sync your files" : "Obtenha as aplicações para sincronizar os seus ficheiros", diff --git a/settings/l10n/ro.js b/settings/l10n/ro.js index f751b23a894..b1a9ef2ed3c 100644 --- a/settings/l10n/ro.js +++ b/settings/l10n/ro.js @@ -33,7 +33,6 @@ OC.L10N.register( "Email sent" : "Mesajul a fost expediat", "Official" : "Oficial", "All" : "Toate ", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Ai %n actualizare de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare"], "No apps found for your version" : "Nu au fost găsite aplicații pentru versiunea ta", "The app will be downloaded from the app store" : "Aplicația va fi descărcată din magazin", "Error while disabling app" : "Eroare în timpul dezactivării aplicației", @@ -69,7 +68,6 @@ OC.L10N.register( "A valid password must be provided" : "Trebuie să furnizaţi o parolă validă", "A valid email must be provided" : "Trebuie furnizată o adresă email validă", "Developer documentation" : "Documentație pentru dezvoltatori", - "This app has an update available." : "Este disponibilă o actualizare pentru această aplicație.", "by %s" : "de %s", "%s-licensed" : "%s-licențiat", "Documentation:" : "Documentație:", @@ -78,6 +76,7 @@ OC.L10N.register( "Report a bug" : "Raportează un defect", "Show description …" : "Arată descriere ...", "Hide description …" : "Ascunde descriere ...", + "This app has an update available." : "Este disponibilă o actualizare pentru această aplicație.", "Enable only for specific groups" : "Activează doar pentru grupuri specifice", "SSL Root Certificates" : "Certificate SSL rădăcină", "Common Name" : "Nume comun", @@ -170,6 +169,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Nu s-a putut adăuga utilizatorul în grupul %s", "Unable to remove user from group %s" : "Nu s-a putut elimina utilizatorul din grupul %s", "Sending..." : "Se expediază...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Ai %n actualizare de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare"], "Uninstalling ...." : "Dezinstalaza ....", "Error while uninstalling app" : "Eroare la dezinstalarea aplicației", "Uninstall" : "Dezinstalați", diff --git a/settings/l10n/ro.json b/settings/l10n/ro.json index be304786f71..18ca550e770 100644 --- a/settings/l10n/ro.json +++ b/settings/l10n/ro.json @@ -31,7 +31,6 @@ "Email sent" : "Mesajul a fost expediat", "Official" : "Oficial", "All" : "Toate ", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Ai %n actualizare de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare"], "No apps found for your version" : "Nu au fost găsite aplicații pentru versiunea ta", "The app will be downloaded from the app store" : "Aplicația va fi descărcată din magazin", "Error while disabling app" : "Eroare în timpul dezactivării aplicației", @@ -67,7 +66,6 @@ "A valid password must be provided" : "Trebuie să furnizaţi o parolă validă", "A valid email must be provided" : "Trebuie furnizată o adresă email validă", "Developer documentation" : "Documentație pentru dezvoltatori", - "This app has an update available." : "Este disponibilă o actualizare pentru această aplicație.", "by %s" : "de %s", "%s-licensed" : "%s-licențiat", "Documentation:" : "Documentație:", @@ -76,6 +74,7 @@ "Report a bug" : "Raportează un defect", "Show description …" : "Arată descriere ...", "Hide description …" : "Ascunde descriere ...", + "This app has an update available." : "Este disponibilă o actualizare pentru această aplicație.", "Enable only for specific groups" : "Activează doar pentru grupuri specifice", "SSL Root Certificates" : "Certificate SSL rădăcină", "Common Name" : "Nume comun", @@ -168,6 +167,7 @@ "Unable to add user to group %s" : "Nu s-a putut adăuga utilizatorul în grupul %s", "Unable to remove user from group %s" : "Nu s-a putut elimina utilizatorul din grupul %s", "Sending..." : "Se expediază...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Ai %n actualizare de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare"], "Uninstalling ...." : "Dezinstalaza ....", "Error while uninstalling app" : "Eroare la dezinstalarea aplicației", "Uninstall" : "Dezinstalați", diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js index 9faac63ede0..8d63e2c97b3 100644 --- a/settings/l10n/ru.js +++ b/settings/l10n/ru.js @@ -17,7 +17,7 @@ OC.L10N.register( "App bundles" : "Пакеты приложений", "Wrong password" : "Неправильный пароль", "Saved" : "Сохранено", - "No user supplied" : "Пользователь не задан", + "No user supplied" : "Не выбран Пользователь", "Unable to change password" : "Невозможно изменить пароль", "Authentication error" : "Ошибка аутентификации", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Введите пароль восстановления администратора, в противном случае все пользовательские данные будут утеряны.", @@ -25,16 +25,16 @@ OC.L10N.register( "Backend doesn't support password change, but the user's encryption key was updated." : "Используемый механизм не поддерживает смену паролей, но пользовательский ключ шифрования был обновлён.", "installing and updating apps via the app store or Federated Cloud Sharing" : "установка и обновление приложений через магазин приложений или федерацию облачных хранилищ", "Federated Cloud Sharing" : "Федерация облачных хранилищ", - "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL использует устаревшую версию %s (%s). Пожалуйста, обновите Вашу операционную систему, иначе такие возможности, как %s, не будут работать надежно.", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL использует устаревшую версию %s (%s). Пожалуйста, обновите Вашу операционную систему, иначе такие возможности, как %s, не будут работать корректно.", "A problem occurred, please check your log files (Error: %s)" : "Возникла проблема, пожалуйста, проверьте ваши файлы журнала (Ошибка: %s)", "Migration Completed" : "Миграция завершена", "Group already exists." : "Группа уже существует.", "Unable to add group." : "Невозможно добавить группу.", "Unable to delete group." : "Невозможно удалить группу.", "Invalid SMTP password." : "Неверный пароль SMTP.", + "Email setting test" : "Проверка настроек электронной почты", "Well done, %s!" : "Отлично, %s!", "If you received this email, the email configuration seems to be correct." : "Если вы получили это сообщение, значит электронная почта настроена правильно.", - "Email setting test" : "Проверка настроек электронной почты", "Email could not be sent. Check your mail server log" : "Не удалось отправить email. Проверьте журнал почтового сервера", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Во время отправки письма произошла ошибка. Пожалуйста проверьте настройки. (Ошибка: %s)", "You need to set your user email before being able to send test emails." : "Вы должны настроить ваш собственный адрес электронной почты прежде чем отправлять тестовые сообщения.", @@ -55,30 +55,30 @@ OC.L10N.register( "Forbidden" : "Запрещено", "Invalid user" : "Неверный пользователь", "Unable to change mail address" : "Невозможно изменить адрес электронной почты", - "Email saved" : "Адрес сохранен", + "Email saved" : "Адрес email сохранен", "%1$s changed your password on %2$s." : "%1$s сменил ваш пароль для сервера %2$s.", "Your password on %s was changed." : "Ваш пароль на сервере %s был изменён", "Your password on %s was reset by an administrator." : "Ваш пароль на сервере %s был сброшен администратором.", + "Password for %1$s changed on %2$s" : "Пароль %1$s изменен на сервере %2$s", "Password changed for %s" : "Пароль изменён для %s", "If you did not request this, please contact an administrator." : "В случае, если вы не запрашивали это действие, свяжитесь с администратором.", - "Password for %1$s changed on %2$s" : "Пароль %1$s изменен на сервере %2$s", "%1$s changed your email address on %2$s." : "%1$s изменил ваш адрес эл.почты на сервере %2$s.", "Your email address on %s was changed." : "Ваш адрес эл.почты на сервере %s был изменён.", "Your email address on %s was changed by an administrator." : "Ваш адрес эл.почты на сервере %s был изменён администратором.", + "Email address for %1$s changed on %2$s" : "Адрес электронной почты %1$s изменён на %2$s", "Email address changed for %s" : "Адрес эл.почты был изменен для %s.", "The new email address is %s" : "Новый адрес эл.почты теперь %s", - "Email address for %1$s changed on %2$s" : "Адрес электронной почты %1$s изменён на %2$s", + "Your %s account was created" : "Была создана ваша учётная запись %s ", "Welcome aboard" : "Добро пожаловать", "Welcome aboard %s" : "Добро пожаловать, %s!", "You now have an %s account, you can add, protect, and share your data." : "Теперь у вас есть учётная запись на сервере %s, вы можете добавлять, защищать и делиться своими данными.", "Your username is: %s" : "Ваше имя пользователя: %s", "Set your password" : "Установить свой пароль", "Go to %s" : "Передите к %s", - "Install Client" : "Установить программу–клиент", - "Your %s account was created" : "Была создана ваша учётная запись %s ", + "Install Client" : "Установить программу-клиент", "Password confirmation is required" : "Требуется подтверждение пароля", "Couldn't remove app." : "Не удалось удалить приложение.", - "Couldn't update app." : "Невозможно обновить приложение", + "Couldn't update app." : "Невозможно обновить приложение.", "Are you really sure you want add {domain} as trusted domain?" : "Вы действительно хотите добавить домен {domain} как доверенный?", "Add trusted domain" : "Добавить доверенный домен", "Migration in progress. Please wait until the migration is finished" : "Миграция в процессе. Пожалуйста, подождите завершения миграции", @@ -89,7 +89,6 @@ OC.L10N.register( "Official" : "Официальное", "All" : "Все", "Update to %s" : "Обновить до %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["У вас есть %n доступное обновление","У вас есть %n доступных обновления","У вас есть %n доступных обновлений","У вас есть %n доступных обновлений"], "No apps found for your version" : "Не найдено приложений для вашей версии", "The app will be downloaded from the app store" : "Приложение будет скачано из магазина приложений", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Официальные приложения разработаны вместе с сообществом. Они предлагают базовую функциональность и готовы для использования.", @@ -185,7 +184,6 @@ OC.L10N.register( "Developer documentation" : "Документация для разработчиков", "View in store" : "Посмотреть в магазине приложений", "Limit to groups" : "Ограничить группами", - "This app has an update available." : "Для этого приложения доступно обновление.", "by %s" : "от %s", "%s-licensed" : "Лицензия %s", "Documentation:" : "Документация:", @@ -195,6 +193,7 @@ OC.L10N.register( "Report a bug" : "Сообщить об ошибке", "Show description …" : "Показать описание ...", "Hide description …" : "Скрыть описание ...", + "This app has an update available." : "Для этого приложения доступно обновление.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Для этого приложения не указана минимальная версия Nextcloud. В будущем это будет ошибкой.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Для этого приложения не указана максимальная версия Nextcloud. В будущем это будет ошибкой.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Приложение не может быть установлено, следующие зависимости не удовлетворены:", @@ -395,6 +394,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Невозможно добавить пользователя в группу %s", "Unable to remove user from group %s" : "Невозможно удалить пользователя из группы %s", "Sending..." : "Отправляется ...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["У вас есть %n доступное обновление","У вас есть %n доступных обновления","У вас есть %n доступных обновлений","У вас есть %n доступных обновлений"], "Uninstalling ...." : "Удаление ...", "Error while uninstalling app" : "Ошибка при удалении приложения", "Uninstall" : "Удалить", diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json index 93e50b9f3b5..dae7cc617c6 100644 --- a/settings/l10n/ru.json +++ b/settings/l10n/ru.json @@ -15,7 +15,7 @@ "App bundles" : "Пакеты приложений", "Wrong password" : "Неправильный пароль", "Saved" : "Сохранено", - "No user supplied" : "Пользователь не задан", + "No user supplied" : "Не выбран Пользователь", "Unable to change password" : "Невозможно изменить пароль", "Authentication error" : "Ошибка аутентификации", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Введите пароль восстановления администратора, в противном случае все пользовательские данные будут утеряны.", @@ -23,16 +23,16 @@ "Backend doesn't support password change, but the user's encryption key was updated." : "Используемый механизм не поддерживает смену паролей, но пользовательский ключ шифрования был обновлён.", "installing and updating apps via the app store or Federated Cloud Sharing" : "установка и обновление приложений через магазин приложений или федерацию облачных хранилищ", "Federated Cloud Sharing" : "Федерация облачных хранилищ", - "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL использует устаревшую версию %s (%s). Пожалуйста, обновите Вашу операционную систему, иначе такие возможности, как %s, не будут работать надежно.", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL использует устаревшую версию %s (%s). Пожалуйста, обновите Вашу операционную систему, иначе такие возможности, как %s, не будут работать корректно.", "A problem occurred, please check your log files (Error: %s)" : "Возникла проблема, пожалуйста, проверьте ваши файлы журнала (Ошибка: %s)", "Migration Completed" : "Миграция завершена", "Group already exists." : "Группа уже существует.", "Unable to add group." : "Невозможно добавить группу.", "Unable to delete group." : "Невозможно удалить группу.", "Invalid SMTP password." : "Неверный пароль SMTP.", + "Email setting test" : "Проверка настроек электронной почты", "Well done, %s!" : "Отлично, %s!", "If you received this email, the email configuration seems to be correct." : "Если вы получили это сообщение, значит электронная почта настроена правильно.", - "Email setting test" : "Проверка настроек электронной почты", "Email could not be sent. Check your mail server log" : "Не удалось отправить email. Проверьте журнал почтового сервера", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Во время отправки письма произошла ошибка. Пожалуйста проверьте настройки. (Ошибка: %s)", "You need to set your user email before being able to send test emails." : "Вы должны настроить ваш собственный адрес электронной почты прежде чем отправлять тестовые сообщения.", @@ -53,30 +53,30 @@ "Forbidden" : "Запрещено", "Invalid user" : "Неверный пользователь", "Unable to change mail address" : "Невозможно изменить адрес электронной почты", - "Email saved" : "Адрес сохранен", + "Email saved" : "Адрес email сохранен", "%1$s changed your password on %2$s." : "%1$s сменил ваш пароль для сервера %2$s.", "Your password on %s was changed." : "Ваш пароль на сервере %s был изменён", "Your password on %s was reset by an administrator." : "Ваш пароль на сервере %s был сброшен администратором.", + "Password for %1$s changed on %2$s" : "Пароль %1$s изменен на сервере %2$s", "Password changed for %s" : "Пароль изменён для %s", "If you did not request this, please contact an administrator." : "В случае, если вы не запрашивали это действие, свяжитесь с администратором.", - "Password for %1$s changed on %2$s" : "Пароль %1$s изменен на сервере %2$s", "%1$s changed your email address on %2$s." : "%1$s изменил ваш адрес эл.почты на сервере %2$s.", "Your email address on %s was changed." : "Ваш адрес эл.почты на сервере %s был изменён.", "Your email address on %s was changed by an administrator." : "Ваш адрес эл.почты на сервере %s был изменён администратором.", + "Email address for %1$s changed on %2$s" : "Адрес электронной почты %1$s изменён на %2$s", "Email address changed for %s" : "Адрес эл.почты был изменен для %s.", "The new email address is %s" : "Новый адрес эл.почты теперь %s", - "Email address for %1$s changed on %2$s" : "Адрес электронной почты %1$s изменён на %2$s", + "Your %s account was created" : "Была создана ваша учётная запись %s ", "Welcome aboard" : "Добро пожаловать", "Welcome aboard %s" : "Добро пожаловать, %s!", "You now have an %s account, you can add, protect, and share your data." : "Теперь у вас есть учётная запись на сервере %s, вы можете добавлять, защищать и делиться своими данными.", "Your username is: %s" : "Ваше имя пользователя: %s", "Set your password" : "Установить свой пароль", "Go to %s" : "Передите к %s", - "Install Client" : "Установить программу–клиент", - "Your %s account was created" : "Была создана ваша учётная запись %s ", + "Install Client" : "Установить программу-клиент", "Password confirmation is required" : "Требуется подтверждение пароля", "Couldn't remove app." : "Не удалось удалить приложение.", - "Couldn't update app." : "Невозможно обновить приложение", + "Couldn't update app." : "Невозможно обновить приложение.", "Are you really sure you want add {domain} as trusted domain?" : "Вы действительно хотите добавить домен {domain} как доверенный?", "Add trusted domain" : "Добавить доверенный домен", "Migration in progress. Please wait until the migration is finished" : "Миграция в процессе. Пожалуйста, подождите завершения миграции", @@ -87,7 +87,6 @@ "Official" : "Официальное", "All" : "Все", "Update to %s" : "Обновить до %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["У вас есть %n доступное обновление","У вас есть %n доступных обновления","У вас есть %n доступных обновлений","У вас есть %n доступных обновлений"], "No apps found for your version" : "Не найдено приложений для вашей версии", "The app will be downloaded from the app store" : "Приложение будет скачано из магазина приложений", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Официальные приложения разработаны вместе с сообществом. Они предлагают базовую функциональность и готовы для использования.", @@ -183,7 +182,6 @@ "Developer documentation" : "Документация для разработчиков", "View in store" : "Посмотреть в магазине приложений", "Limit to groups" : "Ограничить группами", - "This app has an update available." : "Для этого приложения доступно обновление.", "by %s" : "от %s", "%s-licensed" : "Лицензия %s", "Documentation:" : "Документация:", @@ -193,6 +191,7 @@ "Report a bug" : "Сообщить об ошибке", "Show description …" : "Показать описание ...", "Hide description …" : "Скрыть описание ...", + "This app has an update available." : "Для этого приложения доступно обновление.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Для этого приложения не указана минимальная версия Nextcloud. В будущем это будет ошибкой.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Для этого приложения не указана максимальная версия Nextcloud. В будущем это будет ошибкой.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Приложение не может быть установлено, следующие зависимости не удовлетворены:", @@ -393,6 +392,7 @@ "Unable to add user to group %s" : "Невозможно добавить пользователя в группу %s", "Unable to remove user from group %s" : "Невозможно удалить пользователя из группы %s", "Sending..." : "Отправляется ...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["У вас есть %n доступное обновление","У вас есть %n доступных обновления","У вас есть %n доступных обновлений","У вас есть %n доступных обновлений"], "Uninstalling ...." : "Удаление ...", "Error while uninstalling app" : "Ошибка при удалении приложения", "Uninstall" : "Удалить", diff --git a/settings/l10n/sk.js b/settings/l10n/sk.js index dd5dbd4c29f..78846a2de02 100644 --- a/settings/l10n/sk.js +++ b/settings/l10n/sk.js @@ -28,13 +28,13 @@ OC.L10N.register( "Invalid user" : "Neplatný používateľ", "Unable to change mail address" : "Nemožno zmeniť emailovú adresu", "Email saved" : "Email uložený", + "Your %s account was created" : "Váš účet %s bol vytvorený", "Welcome aboard" : "Vitajte na palube", "Welcome aboard %s" : "Vitajte na palube %s", "Your username is: %s" : "Vaše používateľské meno je: %s", "Set your password" : "Nastavte si heslo", "Go to %s" : "Prejsť na %s", "Install Client" : "Inštalácia klienta", - "Your %s account was created" : "Váš účet %s bol vytvorený", "Password confirmation is required" : "Vyžaduje sa overenie heslom", "Couldn't remove app." : "Nemožno odstrániť aplikáciu.", "Couldn't update app." : "Nemožno aktualizovať aplikáciu.", @@ -47,7 +47,6 @@ OC.L10N.register( "Official" : "Oficiálny", "All" : "Všetky", "Update to %s" : "Aktualizovať na %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Prebieha aktualizácia %n aplikácie","Prebieha aktualizácia %n aplikácií","Prebieha aktualizácia %n aplikácií"], "No apps found for your version" : "Aplikácie pre vašu verziu sa nenašli", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Táto aplikácia nie je skontrolovaná na bezpečnostné chyby, je nová, alebo patrí medzi nestabilné. Inštalácia na vlastné riziko.", "Disabling app …" : "Vypínanie aplikácie ...", @@ -118,7 +117,6 @@ OC.L10N.register( "A valid password must be provided" : "Musíte zadať platné heslo", "A valid email must be provided" : "Musíte zadať platnú emailovú adresu", "Developer documentation" : "Dokumentácia vývojára", - "This app has an update available." : "Pre túto aplikáciu je dostupná aktualizácia.", "by %s" : "od %s", "%s-licensed" : "%s-licencovaný", "Documentation:" : "Dokumentácia:", @@ -128,6 +126,7 @@ OC.L10N.register( "Report a bug" : "Nahlásiť chybu", "Show description …" : "Zobraziť popis …", "Hide description …" : "Skryť popis …", + "This app has an update available." : "Pre túto aplikáciu je dostupná aktualizácia.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Pre túto aplikáciu nie je zadaná minimálna verzia Nextcloudu. Toto v budúcnosti spôsobí chybu.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Pre túto aplikáciu nie je zadaná maximálna verzia Nextcloudu. Toto v budúcnosti spôsobí chybu.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Túto aplikáciu nemožno nainštalovať, pretože nie sú splnené nasledovné závislosti:", @@ -278,6 +277,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Nie je možné pridať používateľa do skupiny %s", "Unable to remove user from group %s" : "Nie je možné odstrániť používateľa zo skupiny %s", "Sending..." : "Odosielam...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Prebieha aktualizácia %n aplikácie","Prebieha aktualizácia %n aplikácií","Prebieha aktualizácia %n aplikácií"], "Uninstalling ...." : "Prebieha odinštalovanie...", "Error while uninstalling app" : "Chyba pri odinštalovaní aplikácie", "Uninstall" : "Odinštalácia", diff --git a/settings/l10n/sk.json b/settings/l10n/sk.json index 53aff52471c..020fca7063e 100644 --- a/settings/l10n/sk.json +++ b/settings/l10n/sk.json @@ -26,13 +26,13 @@ "Invalid user" : "Neplatný používateľ", "Unable to change mail address" : "Nemožno zmeniť emailovú adresu", "Email saved" : "Email uložený", + "Your %s account was created" : "Váš účet %s bol vytvorený", "Welcome aboard" : "Vitajte na palube", "Welcome aboard %s" : "Vitajte na palube %s", "Your username is: %s" : "Vaše používateľské meno je: %s", "Set your password" : "Nastavte si heslo", "Go to %s" : "Prejsť na %s", "Install Client" : "Inštalácia klienta", - "Your %s account was created" : "Váš účet %s bol vytvorený", "Password confirmation is required" : "Vyžaduje sa overenie heslom", "Couldn't remove app." : "Nemožno odstrániť aplikáciu.", "Couldn't update app." : "Nemožno aktualizovať aplikáciu.", @@ -45,7 +45,6 @@ "Official" : "Oficiálny", "All" : "Všetky", "Update to %s" : "Aktualizovať na %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Prebieha aktualizácia %n aplikácie","Prebieha aktualizácia %n aplikácií","Prebieha aktualizácia %n aplikácií"], "No apps found for your version" : "Aplikácie pre vašu verziu sa nenašli", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Táto aplikácia nie je skontrolovaná na bezpečnostné chyby, je nová, alebo patrí medzi nestabilné. Inštalácia na vlastné riziko.", "Disabling app …" : "Vypínanie aplikácie ...", @@ -116,7 +115,6 @@ "A valid password must be provided" : "Musíte zadať platné heslo", "A valid email must be provided" : "Musíte zadať platnú emailovú adresu", "Developer documentation" : "Dokumentácia vývojára", - "This app has an update available." : "Pre túto aplikáciu je dostupná aktualizácia.", "by %s" : "od %s", "%s-licensed" : "%s-licencovaný", "Documentation:" : "Dokumentácia:", @@ -126,6 +124,7 @@ "Report a bug" : "Nahlásiť chybu", "Show description …" : "Zobraziť popis …", "Hide description …" : "Skryť popis …", + "This app has an update available." : "Pre túto aplikáciu je dostupná aktualizácia.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Pre túto aplikáciu nie je zadaná minimálna verzia Nextcloudu. Toto v budúcnosti spôsobí chybu.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Pre túto aplikáciu nie je zadaná maximálna verzia Nextcloudu. Toto v budúcnosti spôsobí chybu.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Túto aplikáciu nemožno nainštalovať, pretože nie sú splnené nasledovné závislosti:", @@ -276,6 +275,7 @@ "Unable to add user to group %s" : "Nie je možné pridať používateľa do skupiny %s", "Unable to remove user from group %s" : "Nie je možné odstrániť používateľa zo skupiny %s", "Sending..." : "Odosielam...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Prebieha aktualizácia %n aplikácie","Prebieha aktualizácia %n aplikácií","Prebieha aktualizácia %n aplikácií"], "Uninstalling ...." : "Prebieha odinštalovanie...", "Error while uninstalling app" : "Chyba pri odinštalovaní aplikácie", "Uninstall" : "Odinštalácia", diff --git a/settings/l10n/sl.js b/settings/l10n/sl.js index 1c4173c17e4..22ff5bfca88 100644 --- a/settings/l10n/sl.js +++ b/settings/l10n/sl.js @@ -28,8 +28,8 @@ OC.L10N.register( "Invalid user" : "Neveljavni podatki uporabnika", "Unable to change mail address" : "Ni mogoče spremeniti naslova elektronske pošte.", "Email saved" : "Elektronski naslov je shranjen", - "Set your password" : "Nastavi vaše geslo", "Your %s account was created" : "Račun %s je uspešno ustvarjen.", + "Set your password" : "Nastavi vaše geslo", "Couldn't remove app." : "Ni mogoče odstraniti programa.", "Couldn't update app." : "Programa ni mogoče posodobiti.", "Add trusted domain" : "Dodaj varno domeno", @@ -39,7 +39,6 @@ OC.L10N.register( "Official" : "Uradno", "All" : "Vsi", "Update to %s" : "Posodobi na %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Na čakanju je %n posodobitev","Na čakanju sta %n posodobitvi","Na čakanju so %n posodobitve","Na čakanju je %n posodobitev"], "No apps found for your version" : "Za to različico ni na voljo noben vstavek", "The app will be downloaded from the app store" : "Program bo prejet iz zbirke programov", "Error while disabling app" : "Napaka onemogočanja programa", @@ -82,7 +81,6 @@ OC.L10N.register( "A valid password must be provided" : "Navedeno mora biti veljavno geslo", "A valid email must be provided" : "Naveden mora biti veljaven naslov elektronske pošte.", "Developer documentation" : "Dokumentacija za razvijalce", - "This app has an update available." : "Za program so na voljo posodobitve.", "%s-licensed" : "dovoljenje-%s", "Documentation:" : "Dokumentacija:", "User documentation" : "Uporabniška dokumentacija", @@ -91,6 +89,7 @@ OC.L10N.register( "Report a bug" : "Pošlji poročilo o hrošču", "Show description …" : "Pokaži opis ...", "Hide description …" : "Skrij opis ...", + "This app has an update available." : "Za program so na voljo posodobitve.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacija nima določene minimalne NextCloud verzije. V prihodnosti bo to napaka.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacija nima določene maksimalne NextCloud verzije. V prihodnosti bo to napaka.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerešenih odvisnosti:", @@ -214,6 +213,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Uporabnika ni mogoče dodati k skupini %s", "Unable to remove user from group %s" : "Uporabnika ni mogoče odstraniti iz skupine %s", "Sending..." : "Poteka pošiljanje ...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Na čakanju je %n posodobitev","Na čakanju sta %n posodobitvi","Na čakanju so %n posodobitve","Na čakanju je %n posodobitev"], "Uninstalling ...." : "Odstranjevanje namestitve ...", "Error while uninstalling app" : "Prišlo je do napake med odstranjevanjem programa.", "Uninstall" : "Odstrani namestitev", diff --git a/settings/l10n/sl.json b/settings/l10n/sl.json index 9e79f982899..c9fccd88ba4 100644 --- a/settings/l10n/sl.json +++ b/settings/l10n/sl.json @@ -26,8 +26,8 @@ "Invalid user" : "Neveljavni podatki uporabnika", "Unable to change mail address" : "Ni mogoče spremeniti naslova elektronske pošte.", "Email saved" : "Elektronski naslov je shranjen", - "Set your password" : "Nastavi vaše geslo", "Your %s account was created" : "Račun %s je uspešno ustvarjen.", + "Set your password" : "Nastavi vaše geslo", "Couldn't remove app." : "Ni mogoče odstraniti programa.", "Couldn't update app." : "Programa ni mogoče posodobiti.", "Add trusted domain" : "Dodaj varno domeno", @@ -37,7 +37,6 @@ "Official" : "Uradno", "All" : "Vsi", "Update to %s" : "Posodobi na %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Na čakanju je %n posodobitev","Na čakanju sta %n posodobitvi","Na čakanju so %n posodobitve","Na čakanju je %n posodobitev"], "No apps found for your version" : "Za to različico ni na voljo noben vstavek", "The app will be downloaded from the app store" : "Program bo prejet iz zbirke programov", "Error while disabling app" : "Napaka onemogočanja programa", @@ -80,7 +79,6 @@ "A valid password must be provided" : "Navedeno mora biti veljavno geslo", "A valid email must be provided" : "Naveden mora biti veljaven naslov elektronske pošte.", "Developer documentation" : "Dokumentacija za razvijalce", - "This app has an update available." : "Za program so na voljo posodobitve.", "%s-licensed" : "dovoljenje-%s", "Documentation:" : "Dokumentacija:", "User documentation" : "Uporabniška dokumentacija", @@ -89,6 +87,7 @@ "Report a bug" : "Pošlji poročilo o hrošču", "Show description …" : "Pokaži opis ...", "Hide description …" : "Skrij opis ...", + "This app has an update available." : "Za program so na voljo posodobitve.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacija nima določene minimalne NextCloud verzije. V prihodnosti bo to napaka.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacija nima določene maksimalne NextCloud verzije. V prihodnosti bo to napaka.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerešenih odvisnosti:", @@ -212,6 +211,7 @@ "Unable to add user to group %s" : "Uporabnika ni mogoče dodati k skupini %s", "Unable to remove user from group %s" : "Uporabnika ni mogoče odstraniti iz skupine %s", "Sending..." : "Poteka pošiljanje ...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Na čakanju je %n posodobitev","Na čakanju sta %n posodobitvi","Na čakanju so %n posodobitve","Na čakanju je %n posodobitev"], "Uninstalling ...." : "Odstranjevanje namestitve ...", "Error while uninstalling app" : "Prišlo je do napake med odstranjevanjem programa.", "Uninstall" : "Odstrani namestitev", diff --git a/settings/l10n/sq.js b/settings/l10n/sq.js index 3b8d002079d..a6d94e4c406 100644 --- a/settings/l10n/sq.js +++ b/settings/l10n/sq.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "S’arrin të shtojë grup.", "Unable to delete group." : "S’arrin të fshijë grup.", "Invalid SMTP password." : "Fjalëkalim SMTP i pavlefshëm", + "Email setting test" : "Test i konfigurimeve të Email-it", "Well done, %s!" : "U krye, %s!", "If you received this email, the email configuration seems to be correct." : "Nëse keni marrë këtë email, konfigurimi i email-it duket të jetë i saktë.", - "Email setting test" : "Test i konfigurimeve të Email-it", "Email could not be sent. Check your mail server log" : "Email nuk mund të dërgohej. Kontrolloni logun e serverit tuaj të postës", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ndodhi një gabim gjatë dërgimit të email-it. Ju lutemi, rishikoni rregullimet tuaja. (Error: %s)", "You need to set your user email before being able to send test emails." : "Lypset të caktoni email-in tuaj si përdorues, përpara se të jeni në gjendje të dërgoni email-e provë.", @@ -59,22 +59,22 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s ju ka ndryshuar fjalëkalmin në %2$s.", "Your password on %s was changed." : "Fjalëkalimi juaj në %s u ndryshua. ", "Your password on %s was reset by an administrator." : "Fjalëkalimi juaj në %s u rivendos nga një administrator.", + "Password for %1$s changed on %2$s" : "Fjalëkalimi për %1$s ndryshojë në %2$s", "Password changed for %s" : "Fjalëkalimi ndryshojë për %s", "If you did not request this, please contact an administrator." : "Nëse ju nuk e keni kërkuar këtë, ju lutem kontaktoni një administrator.", - "Password for %1$s changed on %2$s" : "Fjalëkalimi për %1$s ndryshojë në %2$s", "%1$s changed your email address on %2$s." : "%1$s adresa juaj e email-it ndryshoi në %2$s.", "Your email address on %s was changed." : "Adresa e juaj e email-it në %s u ndryshua", "Your email address on %s was changed by an administrator." : "Adresa e juaj e email-it në %s u ndryshua nga një adminstrator.", + "Email address for %1$s changed on %2$s" : "Adresa e email-it për %1$s ndryshojë në %2$s", "Email address changed for %s" : "Adresa e email-it ndryshojë për %s", "The new email address is %s" : "Adresa e re e email-it është %s", - "Email address for %1$s changed on %2$s" : "Adresa e email-it për %1$s ndryshojë në %2$s", + "Your %s account was created" : "Llogaria juaj %s u krijua", "Welcome aboard" : "Mirë se vini në bord", "Welcome aboard %s" : "Mirë se vini në bord %s", "Your username is: %s" : "Emri juaj i përdoruesit është: %s", "Set your password" : "Vendos fjalëkalimin tënd", "Go to %s" : "Shko tek %s", "Install Client" : "Instalo Klient", - "Your %s account was created" : "Llogaria juaj %s u krijua", "Password confirmation is required" : "Kërkohet konfirmimi i fjalëkalimit", "Couldn't remove app." : "S’hoqi dot aplikacionin.", "Couldn't update app." : "S’përditësoi dot aplikacionin.", @@ -88,7 +88,6 @@ OC.L10N.register( "Official" : "Zyrtare", "All" : "Krejt", "Update to %s" : "Përditësoje me %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Keni %n përditësim aplikacioni në pritje","Keni %n përditësime aplikacionesh në pritje"], "No apps found for your version" : "S’u gjetën aplikacione për versionin tuaj", "The app will be downloaded from the app store" : "Aplikacioni do të shkarkohet nga shitorja e aplikacioneve", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikacionet zyrtare zhvillohen nga komuniteti dhe brenta tij. Ato ofrojnë funksionalitet qëndror dhe janë gati për përdorim.", @@ -184,7 +183,6 @@ OC.L10N.register( "Developer documentation" : "Dokumentim për zhvillues", "View in store" : "Shiko në dyqan", "Limit to groups" : "Kufizo grupet", - "This app has an update available." : "Ka gati një përditësim për këtë aplikacion.", "by %s" : "nga %s", "%s-licensed" : "licencuar prej %s", "Documentation:" : "Dokumentim:", @@ -194,6 +192,7 @@ OC.L10N.register( "Report a bug" : "Njoftoni një të metë", "Show description …" : "Shfaq përshkrim …", "Hide description …" : "Fshihe përshkrimin …", + "This app has an update available." : "Ka gati një përditësim për këtë aplikacion.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ky aplikacion nuk ka të caktuar një minimum versioni të Nextcloud. Ky do të jetë një gabim në të ardhmen.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ky aplikacion nuk ka të caktuar një maksimum versioni të Nextcloud. Ky do të jetë një gabim në të ardhmen.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ky aplikacion s’mund të instalohet, ngaqë për të nuk plotësohen varësitë vijuese:", @@ -390,6 +389,7 @@ OC.L10N.register( "Unable to add user to group %s" : "S’arrin të shtojë përdorues te grupi %s", "Unable to remove user from group %s" : "S’arrin të heqë përdorues nga grupi %s", "Sending..." : "Po dërgohet…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Keni %n përditësim aplikacioni në pritje","Keni %n përditësime aplikacionesh në pritje"], "Uninstalling ...." : "Po çinstalohet…", "Error while uninstalling app" : "Gabim në çinstalimin e aplikacionit", "Uninstall" : "Çinstaloje", diff --git a/settings/l10n/sq.json b/settings/l10n/sq.json index cbae6e63510..0e1e528862c 100644 --- a/settings/l10n/sq.json +++ b/settings/l10n/sq.json @@ -30,9 +30,9 @@ "Unable to add group." : "S’arrin të shtojë grup.", "Unable to delete group." : "S’arrin të fshijë grup.", "Invalid SMTP password." : "Fjalëkalim SMTP i pavlefshëm", + "Email setting test" : "Test i konfigurimeve të Email-it", "Well done, %s!" : "U krye, %s!", "If you received this email, the email configuration seems to be correct." : "Nëse keni marrë këtë email, konfigurimi i email-it duket të jetë i saktë.", - "Email setting test" : "Test i konfigurimeve të Email-it", "Email could not be sent. Check your mail server log" : "Email nuk mund të dërgohej. Kontrolloni logun e serverit tuaj të postës", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ndodhi një gabim gjatë dërgimit të email-it. Ju lutemi, rishikoni rregullimet tuaja. (Error: %s)", "You need to set your user email before being able to send test emails." : "Lypset të caktoni email-in tuaj si përdorues, përpara se të jeni në gjendje të dërgoni email-e provë.", @@ -57,22 +57,22 @@ "%1$s changed your password on %2$s." : "%1$s ju ka ndryshuar fjalëkalmin në %2$s.", "Your password on %s was changed." : "Fjalëkalimi juaj në %s u ndryshua. ", "Your password on %s was reset by an administrator." : "Fjalëkalimi juaj në %s u rivendos nga një administrator.", + "Password for %1$s changed on %2$s" : "Fjalëkalimi për %1$s ndryshojë në %2$s", "Password changed for %s" : "Fjalëkalimi ndryshojë për %s", "If you did not request this, please contact an administrator." : "Nëse ju nuk e keni kërkuar këtë, ju lutem kontaktoni një administrator.", - "Password for %1$s changed on %2$s" : "Fjalëkalimi për %1$s ndryshojë në %2$s", "%1$s changed your email address on %2$s." : "%1$s adresa juaj e email-it ndryshoi në %2$s.", "Your email address on %s was changed." : "Adresa e juaj e email-it në %s u ndryshua", "Your email address on %s was changed by an administrator." : "Adresa e juaj e email-it në %s u ndryshua nga një adminstrator.", + "Email address for %1$s changed on %2$s" : "Adresa e email-it për %1$s ndryshojë në %2$s", "Email address changed for %s" : "Adresa e email-it ndryshojë për %s", "The new email address is %s" : "Adresa e re e email-it është %s", - "Email address for %1$s changed on %2$s" : "Adresa e email-it për %1$s ndryshojë në %2$s", + "Your %s account was created" : "Llogaria juaj %s u krijua", "Welcome aboard" : "Mirë se vini në bord", "Welcome aboard %s" : "Mirë se vini në bord %s", "Your username is: %s" : "Emri juaj i përdoruesit është: %s", "Set your password" : "Vendos fjalëkalimin tënd", "Go to %s" : "Shko tek %s", "Install Client" : "Instalo Klient", - "Your %s account was created" : "Llogaria juaj %s u krijua", "Password confirmation is required" : "Kërkohet konfirmimi i fjalëkalimit", "Couldn't remove app." : "S’hoqi dot aplikacionin.", "Couldn't update app." : "S’përditësoi dot aplikacionin.", @@ -86,7 +86,6 @@ "Official" : "Zyrtare", "All" : "Krejt", "Update to %s" : "Përditësoje me %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Keni %n përditësim aplikacioni në pritje","Keni %n përditësime aplikacionesh në pritje"], "No apps found for your version" : "S’u gjetën aplikacione për versionin tuaj", "The app will be downloaded from the app store" : "Aplikacioni do të shkarkohet nga shitorja e aplikacioneve", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikacionet zyrtare zhvillohen nga komuniteti dhe brenta tij. Ato ofrojnë funksionalitet qëndror dhe janë gati për përdorim.", @@ -182,7 +181,6 @@ "Developer documentation" : "Dokumentim për zhvillues", "View in store" : "Shiko në dyqan", "Limit to groups" : "Kufizo grupet", - "This app has an update available." : "Ka gati një përditësim për këtë aplikacion.", "by %s" : "nga %s", "%s-licensed" : "licencuar prej %s", "Documentation:" : "Dokumentim:", @@ -192,6 +190,7 @@ "Report a bug" : "Njoftoni një të metë", "Show description …" : "Shfaq përshkrim …", "Hide description …" : "Fshihe përshkrimin …", + "This app has an update available." : "Ka gati një përditësim për këtë aplikacion.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ky aplikacion nuk ka të caktuar një minimum versioni të Nextcloud. Ky do të jetë një gabim në të ardhmen.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ky aplikacion nuk ka të caktuar një maksimum versioni të Nextcloud. Ky do të jetë një gabim në të ardhmen.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ky aplikacion s’mund të instalohet, ngaqë për të nuk plotësohen varësitë vijuese:", @@ -388,6 +387,7 @@ "Unable to add user to group %s" : "S’arrin të shtojë përdorues te grupi %s", "Unable to remove user from group %s" : "S’arrin të heqë përdorues nga grupi %s", "Sending..." : "Po dërgohet…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Keni %n përditësim aplikacioni në pritje","Keni %n përditësime aplikacionesh në pritje"], "Uninstalling ...." : "Po çinstalohet…", "Error while uninstalling app" : "Gabim në çinstalimin e aplikacionit", "Uninstall" : "Çinstaloje", diff --git a/settings/l10n/sr.js b/settings/l10n/sr.js index 515560264aa..dbb85d3e2b8 100644 --- a/settings/l10n/sr.js +++ b/settings/l10n/sr.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "Пријава са двофакторском провером идентитета неуспела (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Ваша <strong>лозинка</strong> или <strong>адреса е-поште</strong> је измењена", "Your apps" : "Ваше апликације", + "Updates" : "Ажурирања", "Enabled apps" : "Укључене апликације", "Disabled apps" : "Искључене апликације", "App bundles" : "Пакети апликација", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Није могуће додати групу.", "Unable to delete group." : "Није могуће обрисати групу.", "Invalid SMTP password." : "Неисправна SMTP лозинка.", + "Email setting test" : "Тестирај поставке е-поште", "Well done, %s!" : "Свака част, %s!", "If you received this email, the email configuration seems to be correct." : "Ако добијате ову е-пошту, подешавања е-поште су вам исправна.", - "Email setting test" : "Тестирај поставке е-поште", "Email could not be sent. Check your mail server log" : "Не могу да пошаљем Е-пошта. Погледајте записнике сервера е-поште", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Појавио се проблем приликом слања е-поште. Проверите ваше поставке. (Грешка: %s)", "You need to set your user email before being able to send test emails." : "Морате поставити адресу е-поште пре слања тестне поруке.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s је изменио Вашу лозинку на %2$s.", "Your password on %s was changed." : "Ваша лозинка на %s је измењена.", "Your password on %s was reset by an administrator." : "Администратор на %s је ресетовао Вашу лозинку.", + "Password for %1$s changed on %2$s" : "Лозинка за %1$s промењена на %2$s", "Password changed for %s" : "Лозинка на %s промењена.", "If you did not request this, please contact an administrator." : "Ако нисте Ви ово захтевали, контактирајте администратора.", - "Password for %1$s changed on %2$s" : "Лозинка за %1$s промењена на %2$s", "%1$s changed your email address on %2$s." : "%1$s је изменио адресу Ваше е-поште на %2$s.", "Your email address on %s was changed." : "Адреса Ваше е-поште на %s је измењена.", "Your email address on %s was changed by an administrator." : "Администратор на %s је изменио адресу Ваше е-поште.", + "Email address for %1$s changed on %2$s" : "Адреса е-поште за %1$s промењена на %2$s", "Email address changed for %s" : "Адреса е-поште на %s промењена", "The new email address is %s" : "Адреса е-поште је сад %s", - "Email address for %1$s changed on %2$s" : "Адреса е-поште за %1$s промењена на %2$s", + "Your %s account was created" : "Ваш %s налог је направљен", "Welcome aboard" : "Добродошли", "Welcome aboard %s" : "Добродошли %s", "You now have an %s account, you can add, protect, and share your data." : "Сада имате %s налог, можете додавати, штитити и делити Ваше податке.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Поставите лозинку", "Go to %s" : "Иди на %s", "Install Client" : "Инсталирајте клијенте", - "Your %s account was created" : "Ваш %s налог је направљен", "Password confirmation is required" : "Потребна је потврда лозинке", "Couldn't remove app." : "Не могу да уклоним апликацију.", "Couldn't update app." : "Не могу да ажурирам апликацију.", @@ -103,14 +104,56 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Грешка: ова апликација не може да се укључи јер је због ње цео сервер нестабилан", "Error: Could not disable broken app" : "Грешка: Не могу да искључим покварену апликацију", "Error while disabling broken app" : "Грешка приликом искључивања покварене апликације", + "No app updates available" : "Нема доступних ажурирања", "Updating...." : "Ажурирам…", "Error while updating app" : "Грешка при ажурирању апликације", "Updated" : "Ажурирано", + "Removing …" : "Уклањам …", + "Error while removing app" : "Грешка при уклањању апликације", + "Remove" : "Уклони", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Апликација је укључена, али треба да се ажурира. Бићете преусмерени на страну са ажурирањем за 5 секунди.", + "App update" : "Ажурирање апликације", "Approved" : "Одобрене", "Experimental" : "Експерименталне", - "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Дошло је до грешке. Отпремите АСКИ кодирани ПЕМ сертификат.", + "No apps found for {query}" : "Није нађена ниједна апликација за претрагу {query}", + "Enable all" : "Укључи све", + "Allow filesystem access" : "Дозволи приступ фајловима", + "Disconnect" : "Раскачи се", + "Revoke" : "Повуци", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome за Андроид", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS Client", + "Android Client" : "Андроид клијент", + "Sync client - {os}" : "Клијент за синхронизовање - {os}", + "This session" : "Ова сесија", + "Copy" : "Копирај", + "Copied!" : "Копирано!", + "Not supported!" : "Није подржано!", + "Press ⌘-C to copy." : "Притисни ⌘-C за копирање.", + "Press Ctrl-C to copy." : "Притисни Ctrl-C за копирање.", + "Error while loading browser sessions and device tokens" : "Грешка при учитавању сесија веб читача и токена са уређаја", + "Error while creating device token" : "Грешка при прављењу токена на уређају", + "Error while deleting the token" : "Грешка при брисању токена", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Дошло је до грешке. Отпремите ASCII кодирани PEM сертификат.", "Valid until {date}" : "Важи до {date}", "Delete" : "Обриши", + "Local" : "Локално", + "Private" : "Приватно", + "Only visible to local users" : "Видљиво само локалним корисницима", + "Only visible to you" : "Видљиво само Вама", + "Contacts" : "Контакти", + "Visible to local users and to trusted servers" : "Видљиво локалним корисницима и серверима од поверења", + "Public" : "Јавно", + "Will be synced to a global and public address book" : "Биће синхронизовано на глобални и јавни именик", + "Verify" : "Провери", + "Verifying …" : "Проверавам …", + "An error occured while changing your language. Please reload the page and try again." : "Грешка приликом промене језика. Освежите страну и покушајте поново.", "Select a profile picture" : "Изаберите слику профила", "Very weak password" : "Веома слаба лозинка", "Weak password" : "Слаба лозинка", @@ -119,23 +162,45 @@ OC.L10N.register( "Strong password" : "Јака лозинка", "Groups" : "Групе", "Unable to delete {objName}" : "Не могу да обришем {objName}", + "Error creating group: {message}" : "Грешка при прављењу групе: {message}", "A valid group name must be provided" : "Мора бити наведено исправно име групе", "deleted {groupName}" : "обрисана {groupName}", "undo" : "опозови", + "{size} used" : "{size} искоршћенп", "never" : "никада", "deleted {userName}" : "обрисан {userName}", + "No user found for <strong>{pattern}</strong>" : "Није нађен ниједан корисник за<strong>{pattern}</strong>", + "Unable to add user to group {group}" : "Не могу да додам корисника у групу {group}", + "Unable to remove user from group {group}" : "Не могу да уклоним корисника из групе {group}", + "Add group" : "Додај групу", + "Invalid quota value \"{val}\"" : "Неисправна вредност за квоту \"{val}\"", + "no group" : "нема групе", + "Password successfully changed" : "Лозинка успешно промењена", "Changing the password will result in data loss, because data recovery is not available for this user" : "Измена лозинке ће резултирати губитком података јер опорављање података није доступно за овог корисника", + "Could not change the users email" : "Не могу да изменим е-пошту корисника", + "Error while changing status of {user}" : "Грешка при промени статуса корисника {user}", "A valid username must be provided" : "Морате унети исправно корисничко име", + "Error creating user: {message}" : "Грешка при прављењу корисника: {message}", "A valid password must be provided" : "Морате унети исправну лозинку", "A valid email must be provided" : "Мора бити наведена исправна е-адреса", "Developer documentation" : "Програмерска документација", + "View in store" : "Погледај у продавници", + "Limit to groups" : "Ограничи на групе", + "by %s" : "од %s", + "%s-licensed" : "%s лиценцирано", "Documentation:" : "Документација:", "User documentation" : "Корисничка документација", "Admin documentation" : "Администраторска документација", - "Show description …" : "Прикажи опис…", - "Hide description …" : "Сакриј опис…", + "Visit website" : "Посети веб сајт", + "Report a bug" : "Пријави проблем", + "Show description …" : "Прикажи опис …", + "Hide description …" : "Сакриј опис …", + "This app has an update available." : "Ова апликација има доступно ажурирање.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ова апликација нема дефинисану минималну верзију Некстклауда на којој ради. Ово ће у будућности постати грешка.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ова апликација нема дефинисану максималну верзију Некстклауда на којој ради. Ово ће у будућности постати грешка.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Апликација се не може инсталирати јер следеће зависности нису испуњене:", "Enable only for specific groups" : "Укључи само за одређене групе", + "SSL Root Certificates" : "SSL корени сертификат", "Common Name" : "Уобичајено име", "Valid until" : "Важи до", "Issued By" : "Издавач", @@ -144,134 +209,249 @@ OC.L10N.register( "Administrator documentation" : "Администраторска документација", "Online documentation" : "Документација на мрежи", "Forum" : "Форум", + "Getting help" : "Добијање помоћи", "Commercial support" : "Комерцијална подршка", "None" : "Ништа", "Login" : "Пријава", "Plain" : "Обичан", "NT LAN Manager" : "НТ ЛАН менаџер", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Сервер е-поште", "Open documentation" : "Отвори документацију", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Важно је да подесите сервер да може да шаље е-пошту, када нпр. треба послати ресетовање лозинке или нека обавештења.", "Send mode" : "Режим слања", "Encryption" : "Шифровање", "From address" : "Са адресе", "mail" : "пошта", - "Authentication method" : "Начин аутентификације", + "Authentication method" : "Начин провере идентитета", "Authentication required" : "Неопходна провера идентитета", "Server address" : "Адреса сервера", "Port" : "Порт", "Credentials" : "Акредитиви", - "SMTP Username" : "СМТП корисничко име", - "SMTP Password" : "СМТП лозинка", + "SMTP Username" : "SMTP корисничко име", + "SMTP Password" : "SMTP лозинка", "Store credentials" : "Сачувај акредитиве", "Test email settings" : "Тестирај поставке е-поште", "Send email" : "Пошаљи е-пошту", "Server-side encryption" : "Шифровање на страни сервера", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Шифровање на страни сервера омогућава да шифрујете фајлове који се стављају на овај сервер. Цена за ово се плаћа кроз лошије перформансе, тако да треба да омогућите ово само ако Вам је стварно потребно.", "Enable server-side encryption" : "Укључи шифровање на страни сервера", + "Please read carefully before activating server-side encryption: " : "Молимо прочитајте пажљиво пре него што укључите ово шифровање:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Једном кад се шифровање укључи, сви фајлови окачени на сервер од тог тренутка ће бити шифровани на серверу. Једини начин да искључите шифровање касније је да активни шифрарски модул то подржава и сви остали услови су задовољени (нпр. постављање кључа за опоравак).", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Шифровање само по себи не гарантује безбедност система. Погледајте документацију за више инфромација како шифровање функционише и подржане начине коришћења.", + "Be aware that encryption always increases the file size." : "Водите рачуна и да шифровање повећава величину фајлова.", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Увек је паметно да правите редовне резервне копије података. У случају када су подаци шифровани, онда поред њих и резервне копије кључева за шифровања.", + "This is the final warning: Do you really want to enable encryption?" : "Ово је последње упозорење: Да ли стварно желите да укључите шифровање?", "Enable encryption" : "Укључи шифровање", "No encryption module loaded, please enable an encryption module in the app menu." : "Шифрарски модул није учитан. Укључите га у менију апликација", "Select default encryption module:" : "Изаберите подразумевани шифрарски модул:", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) на нови. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) на нове. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Морате да преселите шифрарске кључеве старог шифровања (оунКлауд <= 8.0) на нове.", "Start migration" : "Покрени пресељење", "Security & setup warnings" : "Безбедносна и упозорења поставе", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Због безбедности и перформанси Ваше инстанце сервера, важно је да је све подешено исправно. Да бисмо Вам помогли у томе, радићемо неке аутоматске провере. Погледајте секцију са саветима и триковима, као и документацију за више информација.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP изгледа није исправно подешен да дохвата променљиве окружења. Тест са getenv(\"PATH\") враћа празну листу као одговор.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Погледајте <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">инсталациону документацију ↗</a> за белешке око PHP конфигурације и PHP конфигурацију Вашег сервера, поготову ако користите php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Омогућена је Само-читај конфигурација. То спречава постављање неке конфигурације преко веб-интерфејса. Осим тога, фајлу мора бити ручно омогућено уписивање код сваког освежавања.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP је очигледно подешен да склања уметнуте doc блокове. То ће учинити неколико кључних апликација недоступним.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ово је вероватно изазвано кешом или акцелератором као што су ЗендОПкеш или еАкцелератор.", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "База података није покренута са \"READ COMMITTED\" нивоом изолације трансакција. Ово може изазвати проблеме ако се више различитих акција изврши у паралели.", + "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s испод верзије %2$s је инсталиран. Због стабилности и перформанси, препоручује се ажурирање на новију, %1$s верзију.", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Недостаје PHP модул „fileinfo“. Препоручујемо да га укључите да бисте добили најбоље резултате с откривањем MIME типова фајлова.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "Трансактивно закључавање фајлова је искључено, што може довести до проблема са утркивањем процеса. Укључите 'filelocking.enabled' у config.php да бисте избегли проблеме овог типа. Погледајте <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документацију ↗</a> за више информација.", "System locale can not be set to a one which supports UTF-8." : "Системски локалитет се не може поставити на неки који подржава УТФ-8", + "This means that there might be problems with certain characters in filenames." : "Ово значи да може бити проблема са одређеним каракетерима који се појављују у именима фајлова.", + "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Препоручујемо да инсталирате потребне пакете да бисте подржали следеће локалитете: %s.", + "If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталација није инсталирана у основи домена и користи системски крон, може бити проблема са генерисањем веб адреса. Да бисте избегли ове проблеме, молимо вас да подесите \"overwrite.cli.url\" опцију у вашем config.php фајлу у путању веб-основе ваше инсталације (Предложено: \"%s\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Није било могуће да се изврши крон задатак путем интерфејса командне линије. Појавила су се следеће техничке грешке:", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Добро погледајте <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">инсталациону документацију ↗</a> и проверите за било какве грешке или упозорења у <a href=\"%s\">записнику</a>.", + "All checks passed." : "Све провере успешно прошле.", + "Background jobs" : "Послови у позадини", + "Last job ran %s." : "Последњи посао покренут %s.", + "Last job execution ran %s. Something seems wrong." : "Последњи извршени посао је радио %s. Нешто изгледа није у реду.", + "Background job didn’t run yet!" : "Послови у позадини се још нису извршили!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "За оптималне перформансе, битно је да правилно подесите послове у позадини. За веће инстанце, 'крон' је препоручено подешавање. Погледајте документацију за више информација.", "Execute one task with each page loaded" : "Изврши један задатак са сваком учитаном страницом", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php је регистрован код вебкрон сервиса за позивање cron.php сваких 15 минута преко протокола HTTP.", + "Use system cron service to call the cron.php file every 15 minutes." : "Користите системски крон сервис за позивање cron.php фајла сваких 15 минута.", + "The cron.php needs to be executed by the system user \"%s\"." : "cron.php треба да се извршава као системски корисник \"%s\".", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Да бисте ово покренули, потребна је PHP POSIX екстензија. Погледајте {linkstart}PHP документацију{linkend} за више детаља.", "Version" : "Верзија", "Sharing" : "Дељење", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Као администратор, можете фино подешавати понашања дељења. Погледајте документацију за више информација.", "Allow apps to use the Share API" : "Дозвољава апликацијама да користе АПИ дељења", "Allow users to share via link" : "Дозволи корисницима да деле путем везе", "Allow public uploads" : "Дозволи јавна отпремања", + "Always ask for a password" : "Увек питај за лозинку", "Enforce password protection" : "Захтевај заштиту лозинком", "Set default expiration date" : "Постави подразумевано време истека", "Expire after " : "Истиче након", "days" : "дана", "Enforce expiration date" : "Захтевај датум истека", "Allow resharing" : "Дозволи поновно дељење", + "Allow sharing with groups" : "Дозволи дељење са групама", "Restrict users to only share with users in their groups" : "Ограничи кориснике да могу да деле само унутар групе", "Exclude groups from sharing" : "Изузми групе из дељења", - "These groups will still be able to receive shares, but not to initiate them." : "Ове групе ће моћи да примају дељења али не и да их праве.", + "These groups will still be able to receive shares, but not to initiate them." : "Ове групе ће моћи да примају дељења, али не и да их праве.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Дозволи самодовршавање корисничких имена у дијалогу за дељење. Ако је ово искључено, корисник ће морати да унесе пуно корисничко име или адресу е-поште.", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Прикажи текст о ограђивању на јавној страни за отпремање (приказан је само када је сакривена листа фајлова)", + "This text will be shown on the public link upload page when the file list is hidden." : "Овај текст ће бити приказан на јавној страни отпремања када је скривен листа фајлова.", "Tips & tricks" : "Савети и трикови", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Постоји доста доступних функционалности и конфигурација да оптимално прилагодите и користите ову инстанце. Овде су неки основни савети.", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Тренутно се као база података користи SQLite. За веће инсталације, препоручујемо да промените базу података.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Ово се нарочито порепоручује ако се користи клијент програм у графичком окружењу за синхронизацију.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "За пресељење на другу базу података, користите алат командне линије: 'occ db:convert-type', или погледајте <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документацију ↗</a>.", "How to do backups" : "Како правити резерве", "Advanced monitoring" : "Напредно праћење", "Performance tuning" : "Побољшање перформанси", "Improving the config.php" : "Побољшање фајла поставки", "Theming" : "Теме", + "Check the security of your Nextcloud over our security scan" : "Проверавање безбедности Вашег Некстклауда кроз наше безбедоносно скенирање", "Hardening and security guidance" : "Ојачавање система и безбедносне препоруке", + "Personal" : "Лично", + "Administration" : "Администрација", + "You are using <strong>%s</strong> of <strong>%s</strong>" : "Користите <strong>%s</strong> од <strong>%s</strong>.", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Користите <strong>%s</strong> од <strong>%s</strong> (<strong>%s%%</strong>)", "Profile picture" : "Слика профила", "Upload new" : "Отпреми нову", + "Select from Files" : "Изабери из фајлова", "Remove image" : "Уклони слику", + "png or jpg, max. 20 MB" : "png или jpg, макс. 20 MB", + "Picture provided by original account" : "Слика оригиналног налога", "Cancel" : "Одустани", + "Choose as profile picture" : "Одаберите слику профила", "Full name" : "Пуно име", "No display name set" : "Није постављено име за приказ", "Email" : "Е-пошта", - "Your email address" : "Ваша адреса е-поште", - "No email address set" : "Није постављена е-адреса", - "You are member of the following groups:" : "Имате чланство у следећим групама:", + "Your email address" : "Адреса Ваше е-поште", + "No email address set" : "Није постављена адреса е-поште", + "For password reset and notifications" : "За ресетовање лозинке и обавештења", + "Phone number" : "Број телефона", + "Your phone number" : "Ваш број телефона", + "Address" : "Адреса", + "Your postal address" : "Ваша адреса становања", + "Website" : "Веб сајт", + "It can take up to 24 hours before the account is displayed as verified." : "Може да прође и до 24h пре него што налог буде потврђен.", + "Link https://…" : "Веза https://…", + "Twitter" : "Твитер", + "Twitter handle @…" : "Твитер надимак @…", + "You are member of the following groups:" : "Члан сте следећих група:", "Language" : "Језик", "Help translate" : " Помозите у превођењу", "Password" : "Лозинка", "Current password" : "Тренутна лозинка", "New password" : "Нова лозинка", "Change password" : "Измени лозинку", + "Web, desktop and mobile clients currently logged in to your account." : "Веб, рачунарски и мобилни клијенти тренутно пријављени на Ваш налог.", + "Device" : "Уређај", + "Last activity" : "Последња активност", + "App name" : "Име апликације", + "Create new app password" : "Направите нову лозинку апликације", + "Use the credentials below to configure your app or device." : "Употребите акредитиве наведене испод да подесите Вашу апликацију или уређај.", + "For security reasons this password will only be shown once." : "Из безбедносних разлога, ова лозинка ће бити приказана само једном.", "Username" : "Корисничко име", "Done" : "Завршено", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Развијено од стране {communityopen}Некстклауд заједнице{linkclose}, {githubopen}изворни код{linkclose} је под {licenseopen}AGPL{linkclose} лиценцом.", + "Follow us on Google+" : "Пратите нас на Google+", + "Like our Facebook page" : "Лајкујте нашу Фејсбук страну", + "Follow us on Twitter" : "Пратите нас на Твитеру", + "Check out our blog" : "Баците поглед на наш блог", + "Subscribe to our newsletter" : "Пријавите се на наше новине", + "Settings" : "Подешавања", "Show storage location" : "Прикажи локацију складишта", "Show user backend" : "Прикажи позадину за кориснике", - "Show email address" : "Прикажи е-адресу", + "Show last login" : "Прикажи последњу пријаву", + "Show email address" : "Прикажи адресу е-поште", "Send email to new user" : "Пошаљи е-пошту новом кориснику", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Када се поље лозинке новог корисника остави празним, кориснику ће бити послата е-пошта са везом за постављање лозинке.", "E-Mail" : "Е-пошта", "Create" : "Направи", "Admin Recovery Password" : "Администраторска лозинка за опоравак", "Enter the recovery password in order to recover the users files during password change" : "Унесите лозинку за опоравак корисничких фајлова током промене лозинке", + "Group name" : "Назив групе", "Everyone" : "Сви", "Admins" : "Администратори", + "Disabled" : "Искључено", + "Default quota" : "Подразумевана квота", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Унесите квоту складиштења (нпр. 512 MB или 12 GB)", "Unlimited" : "Неограничено", "Other" : "Друго", + "Group admin for" : "Администратор групе за", "Quota" : "Квота", + "Storage location" : "Локација складишта", + "User backend" : "Позадина за кориснике", + "Last login" : "Последња пријава", "change full name" : "измени пуно име", "set new password" : "постави нову лозинку", - "change email address" : "измени е-адресу", + "change email address" : "измени адресу е-поште", "Default" : "Подразумевано", "Enabled" : "Укључено", "Not enabled" : "Искључено", "Please provide an admin recovery password, otherwise all user data will be lost" : "Наведите администраторску лозинку опоравка. У супротном, сви кориснички подаци биће изгубљени.", - "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Позадина не подржава измеу лозинке али кориснички шифрарски кључеви су успешно ажурирани.", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Позадина не подржава измену лозинке, али су кориснички шифрарски кључеви успешно ажурирани.", "test email settings" : "тестирајте поставке е-поште", "Invalid request" : "Неисправан захтев", "Admins can't remove themself from the admin group" : "Администратор не може себе да уклони из admin групе", "Unable to add user to group %s" : "Не могу да додам корисника у групу %s", "Unable to remove user from group %s" : "Не могу да уклоним корисника из групе %s", "Sending..." : "Шаљем...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Имате ажирирање за %n апликацију","Имате ажирирање за %n апликације","Имате ажирирање за %n апликација"], "Uninstalling ...." : "Деинсталирам ...", "Error while uninstalling app" : "Грешка при деинсталацији апликације", "Uninstall" : "Деинсталирај", "__language_name__" : "Српски", "Personal info" : "Лични подаци", - "Sync clients" : "Синхронизовање клијената", + "Sessions" : "Сесије", + "App passwords" : "Апликативне лозинке", + "Sync clients" : "Клијенти у синхронизацији", "This is used for sending out notifications." : "Ово се користи за слање обавештења.", - "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "ПХП није подешен да може да провери системске променљиве. Проба са getenv(\"PATH\") враћа празан одговор.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "ПХП је очигледно подешен да се скида уметнуте док блокова. То ће учинити неколико кључних апликација недоступним.", - "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Недостаје ПХП модул „fileinfo“. Препоручујемо вам да га укључите да бисте добили најбоље резултате с откривањем МИМЕ врста.", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP није подешен да може да провери системске променљиве. Проба са getenv(\"PATH\") враћа празан одговор.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Погледајте <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">инсталациону документацију ↗</a> за белешке око PHP конфигурације и PHP конфигурацију Вашег сервера, поготову ако користите php-fpm.", + "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP је очигледно подешен да склања уметнуте doc блоковe. То ће учинити неколико кључних апликација недоступним.", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s испод верзије %2$s је инсталиран. Због стабилности и перформанси, препоручујемо ажурирање на новију, %1$s верзију.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Недостаје PHP модул „fileinfo“. Препоручујемо вам да га укључите да бисте добили најбоље резултате с откривањем MIME типова фајлова.", "This means that there might be problems with certain characters in file names." : "То значи да може доћи до проблема са неким знаковима у називима фајлова.", - "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Препоручујемо да инсталирате потребне пакете да бисте подржали следеће локалитете: %s", + "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Препоручујемо да инсталирате потребне пакете да бисте подржали следеће локалитете: %s.", "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталација није инсталирана у основи домена и користи системски крон, може бити проблема са генерисањем веб адреса. Да бисте избегли ове проблеме, молимо вас да подесите \"overwrite.cli.url\" опцију у вашем config.php фајлу у путању веб-основе ваше инсталације (Предложено: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Није било могуће да се изврши крон задатак путем интерфејса командне линије. Појавила су се следеће техничке грешке:", "Cron" : "Крон", - "Last cron job execution: %s." : "Последњи извршени крон задатак: %s.", - "Last cron job execution: %s. Something seems wrong." : "Последњи извршени крон задатак: %s. Нешто изгледа није у реду.", - "Cron was not executed yet!" : "Крон задатак још увек није извршен!", + "Last cron job execution: %s." : "Последњи извршени крон посао: %s.", + "Last cron job execution: %s. Something seems wrong." : "Последњи извршени крон посао: %s. Нешто изгледа није у реду.", + "Cron was not executed yet!" : "Крон још увек није извршен!", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php је регистрован код вебкрон сервиса за позивање cron.php сваких 15 минута преко протокола http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Користите системски крон сервис за позивање cron.php фајла сваких 15 минута.", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Да бисте ово покренули, потребна је PHP posix екстензија. Погледајте {linkstart}PHP документацију{linkend} за више детаља.", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Дозволи самодовршавање корисничких имена у дијалогу за дељење. Ако је ово искључено, корисник ће морати да унесе пуно корисничко име.", + "Uninstall app" : "Деинсталирај апликацију", + "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "Поздрав,<br><br>само вас обавештавам да сад имате %s налог.<br><br>Ваше корисничко име: <strong>%s</strong><br>Приступите му на: <strong><a href=\"%s\">%s</a></strong><br><br>", "Cheers!" : "Здраво!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Здраво,\n\nСамо да знате да сада имате %s налог.\n\nВаше корисничко име: %s\nПриступите му на: %s\n\n", + "For password recovery and notifications" : "За ресетовање лозинке и обавештења", + "Your website" : "Ваш веб сајт", + "Your Twitter handle" : "Ваш Твитер надимак", "Get the apps to sync your files" : "Преузмите апликације ради синхронизовања ваших фајлова", "Desktop client" : "Клијент за рачунар", "Android app" : "Андроид апликација", "iOS app" : "иОС апликација", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Ако желите да подржите пројекат, {contributeopen}придружите се развоју{linkclose} или {contributeopen}разгласите{linkclose}!", "Show First Run Wizard again" : "Поново прикажи чаробњака за прво покретање", - "Name" : "назив", - "Show last log in" : "Прикажи последњу пријаву" + "Passcodes that give an app or device permissions to access your account." : "Шифре које апликацији или уређају дају привилегије да приступи Вашем налогу.", + "Name" : "Име", + "Follow us on Google Plus!" : "Пратите нас на Google+!", + "Like our facebook page!" : "Лајкујте нашу Фејсбук страну!", + "Subscribe to our twitter channel!" : "Пријавите се на наш твитер канал!", + "Subscribe to our news feed!" : "Пријавите се на довод новина!", + "Subscribe to our newsletter!" : "Пријавите се на наше новине!", + "Show last log in" : "Прикажи последњу пријаву", + "You have now an %s account, you can add, protect, and share your data." : "Сада имате %s налог, можете додавати, штитити и делити Ваше податке.", + "Verifying" : "Проверавам", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Због безбедности и перформанси Ваше инстанце сервера, важно је да је све подешено исправно. Да бисмо Вам помогли у томе, радићемо неке аутоматске провере. Погледајте секцију са саветима и триковима, као и документацију за више информација.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "Недостаје PHP модул „fileinfo“. Препоручујемо вам да га укључите да бисте добили најбоље резултате с откривањем MIME типова фајлова.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Веб, рачунарске, мобилне и лозинке специфичне за апликације које тренутно имају приступ Вашем налогу.", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Овде можете изгенерисати појединачне лозинке за апликације, тако да не морате да дајете Вашу лозинку. Можете их појединачно и повући.", + "Follow us on Google+!" : "Пратите нас на Google+!", + "Follow us on Twitter!" : "Пратите нас на Твитеру!", + "Check out our blog!" : "Баците поглед на наш блог!" }, "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/settings/l10n/sr.json b/settings/l10n/sr.json index f5ebe0cbc10..fbce5ecf57f 100644 --- a/settings/l10n/sr.json +++ b/settings/l10n/sr.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "Пријава са двофакторском провером идентитета неуспела (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Ваша <strong>лозинка</strong> или <strong>адреса е-поште</strong> је измењена", "Your apps" : "Ваше апликације", + "Updates" : "Ажурирања", "Enabled apps" : "Укључене апликације", "Disabled apps" : "Искључене апликације", "App bundles" : "Пакети апликација", @@ -30,9 +31,9 @@ "Unable to add group." : "Није могуће додати групу.", "Unable to delete group." : "Није могуће обрисати групу.", "Invalid SMTP password." : "Неисправна SMTP лозинка.", + "Email setting test" : "Тестирај поставке е-поште", "Well done, %s!" : "Свака част, %s!", "If you received this email, the email configuration seems to be correct." : "Ако добијате ову е-пошту, подешавања е-поште су вам исправна.", - "Email setting test" : "Тестирај поставке е-поште", "Email could not be sent. Check your mail server log" : "Не могу да пошаљем Е-пошта. Погледајте записнике сервера е-поште", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Појавио се проблем приликом слања е-поште. Проверите ваше поставке. (Грешка: %s)", "You need to set your user email before being able to send test emails." : "Морате поставити адресу е-поште пре слања тестне поруке.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s је изменио Вашу лозинку на %2$s.", "Your password on %s was changed." : "Ваша лозинка на %s је измењена.", "Your password on %s was reset by an administrator." : "Администратор на %s је ресетовао Вашу лозинку.", + "Password for %1$s changed on %2$s" : "Лозинка за %1$s промењена на %2$s", "Password changed for %s" : "Лозинка на %s промењена.", "If you did not request this, please contact an administrator." : "Ако нисте Ви ово захтевали, контактирајте администратора.", - "Password for %1$s changed on %2$s" : "Лозинка за %1$s промењена на %2$s", "%1$s changed your email address on %2$s." : "%1$s је изменио адресу Ваше е-поште на %2$s.", "Your email address on %s was changed." : "Адреса Ваше е-поште на %s је измењена.", "Your email address on %s was changed by an administrator." : "Администратор на %s је изменио адресу Ваше е-поште.", + "Email address for %1$s changed on %2$s" : "Адреса е-поште за %1$s промењена на %2$s", "Email address changed for %s" : "Адреса е-поште на %s промењена", "The new email address is %s" : "Адреса е-поште је сад %s", - "Email address for %1$s changed on %2$s" : "Адреса е-поште за %1$s промењена на %2$s", + "Your %s account was created" : "Ваш %s налог је направљен", "Welcome aboard" : "Добродошли", "Welcome aboard %s" : "Добродошли %s", "You now have an %s account, you can add, protect, and share your data." : "Сада имате %s налог, можете додавати, штитити и делити Ваше податке.", @@ -73,7 +75,6 @@ "Set your password" : "Поставите лозинку", "Go to %s" : "Иди на %s", "Install Client" : "Инсталирајте клијенте", - "Your %s account was created" : "Ваш %s налог је направљен", "Password confirmation is required" : "Потребна је потврда лозинке", "Couldn't remove app." : "Не могу да уклоним апликацију.", "Couldn't update app." : "Не могу да ажурирам апликацију.", @@ -101,14 +102,56 @@ "Error: This app can not be enabled because it makes the server unstable" : "Грешка: ова апликација не може да се укључи јер је због ње цео сервер нестабилан", "Error: Could not disable broken app" : "Грешка: Не могу да искључим покварену апликацију", "Error while disabling broken app" : "Грешка приликом искључивања покварене апликације", + "No app updates available" : "Нема доступних ажурирања", "Updating...." : "Ажурирам…", "Error while updating app" : "Грешка при ажурирању апликације", "Updated" : "Ажурирано", + "Removing …" : "Уклањам …", + "Error while removing app" : "Грешка при уклањању апликације", + "Remove" : "Уклони", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Апликација је укључена, али треба да се ажурира. Бићете преусмерени на страну са ажурирањем за 5 секунди.", + "App update" : "Ажурирање апликације", "Approved" : "Одобрене", "Experimental" : "Експерименталне", - "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Дошло је до грешке. Отпремите АСКИ кодирани ПЕМ сертификат.", + "No apps found for {query}" : "Није нађена ниједна апликација за претрагу {query}", + "Enable all" : "Укључи све", + "Allow filesystem access" : "Дозволи приступ фајловима", + "Disconnect" : "Раскачи се", + "Revoke" : "Повуци", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome за Андроид", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS Client", + "Android Client" : "Андроид клијент", + "Sync client - {os}" : "Клијент за синхронизовање - {os}", + "This session" : "Ова сесија", + "Copy" : "Копирај", + "Copied!" : "Копирано!", + "Not supported!" : "Није подржано!", + "Press ⌘-C to copy." : "Притисни ⌘-C за копирање.", + "Press Ctrl-C to copy." : "Притисни Ctrl-C за копирање.", + "Error while loading browser sessions and device tokens" : "Грешка при учитавању сесија веб читача и токена са уређаја", + "Error while creating device token" : "Грешка при прављењу токена на уређају", + "Error while deleting the token" : "Грешка при брисању токена", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Дошло је до грешке. Отпремите ASCII кодирани PEM сертификат.", "Valid until {date}" : "Важи до {date}", "Delete" : "Обриши", + "Local" : "Локално", + "Private" : "Приватно", + "Only visible to local users" : "Видљиво само локалним корисницима", + "Only visible to you" : "Видљиво само Вама", + "Contacts" : "Контакти", + "Visible to local users and to trusted servers" : "Видљиво локалним корисницима и серверима од поверења", + "Public" : "Јавно", + "Will be synced to a global and public address book" : "Биће синхронизовано на глобални и јавни именик", + "Verify" : "Провери", + "Verifying …" : "Проверавам …", + "An error occured while changing your language. Please reload the page and try again." : "Грешка приликом промене језика. Освежите страну и покушајте поново.", "Select a profile picture" : "Изаберите слику профила", "Very weak password" : "Веома слаба лозинка", "Weak password" : "Слаба лозинка", @@ -117,23 +160,45 @@ "Strong password" : "Јака лозинка", "Groups" : "Групе", "Unable to delete {objName}" : "Не могу да обришем {objName}", + "Error creating group: {message}" : "Грешка при прављењу групе: {message}", "A valid group name must be provided" : "Мора бити наведено исправно име групе", "deleted {groupName}" : "обрисана {groupName}", "undo" : "опозови", + "{size} used" : "{size} искоршћенп", "never" : "никада", "deleted {userName}" : "обрисан {userName}", + "No user found for <strong>{pattern}</strong>" : "Није нађен ниједан корисник за<strong>{pattern}</strong>", + "Unable to add user to group {group}" : "Не могу да додам корисника у групу {group}", + "Unable to remove user from group {group}" : "Не могу да уклоним корисника из групе {group}", + "Add group" : "Додај групу", + "Invalid quota value \"{val}\"" : "Неисправна вредност за квоту \"{val}\"", + "no group" : "нема групе", + "Password successfully changed" : "Лозинка успешно промењена", "Changing the password will result in data loss, because data recovery is not available for this user" : "Измена лозинке ће резултирати губитком података јер опорављање података није доступно за овог корисника", + "Could not change the users email" : "Не могу да изменим е-пошту корисника", + "Error while changing status of {user}" : "Грешка при промени статуса корисника {user}", "A valid username must be provided" : "Морате унети исправно корисничко име", + "Error creating user: {message}" : "Грешка при прављењу корисника: {message}", "A valid password must be provided" : "Морате унети исправну лозинку", "A valid email must be provided" : "Мора бити наведена исправна е-адреса", "Developer documentation" : "Програмерска документација", + "View in store" : "Погледај у продавници", + "Limit to groups" : "Ограничи на групе", + "by %s" : "од %s", + "%s-licensed" : "%s лиценцирано", "Documentation:" : "Документација:", "User documentation" : "Корисничка документација", "Admin documentation" : "Администраторска документација", - "Show description …" : "Прикажи опис…", - "Hide description …" : "Сакриј опис…", + "Visit website" : "Посети веб сајт", + "Report a bug" : "Пријави проблем", + "Show description …" : "Прикажи опис …", + "Hide description …" : "Сакриј опис …", + "This app has an update available." : "Ова апликација има доступно ажурирање.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ова апликација нема дефинисану минималну верзију Некстклауда на којој ради. Ово ће у будућности постати грешка.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ова апликација нема дефинисану максималну верзију Некстклауда на којој ради. Ово ће у будућности постати грешка.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Апликација се не може инсталирати јер следеће зависности нису испуњене:", "Enable only for specific groups" : "Укључи само за одређене групе", + "SSL Root Certificates" : "SSL корени сертификат", "Common Name" : "Уобичајено име", "Valid until" : "Важи до", "Issued By" : "Издавач", @@ -142,134 +207,249 @@ "Administrator documentation" : "Администраторска документација", "Online documentation" : "Документација на мрежи", "Forum" : "Форум", + "Getting help" : "Добијање помоћи", "Commercial support" : "Комерцијална подршка", "None" : "Ништа", "Login" : "Пријава", "Plain" : "Обичан", "NT LAN Manager" : "НТ ЛАН менаџер", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Сервер е-поште", "Open documentation" : "Отвори документацију", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Важно је да подесите сервер да може да шаље е-пошту, када нпр. треба послати ресетовање лозинке или нека обавештења.", "Send mode" : "Режим слања", "Encryption" : "Шифровање", "From address" : "Са адресе", "mail" : "пошта", - "Authentication method" : "Начин аутентификације", + "Authentication method" : "Начин провере идентитета", "Authentication required" : "Неопходна провера идентитета", "Server address" : "Адреса сервера", "Port" : "Порт", "Credentials" : "Акредитиви", - "SMTP Username" : "СМТП корисничко име", - "SMTP Password" : "СМТП лозинка", + "SMTP Username" : "SMTP корисничко име", + "SMTP Password" : "SMTP лозинка", "Store credentials" : "Сачувај акредитиве", "Test email settings" : "Тестирај поставке е-поште", "Send email" : "Пошаљи е-пошту", "Server-side encryption" : "Шифровање на страни сервера", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Шифровање на страни сервера омогућава да шифрујете фајлове који се стављају на овај сервер. Цена за ово се плаћа кроз лошије перформансе, тако да треба да омогућите ово само ако Вам је стварно потребно.", "Enable server-side encryption" : "Укључи шифровање на страни сервера", + "Please read carefully before activating server-side encryption: " : "Молимо прочитајте пажљиво пре него што укључите ово шифровање:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Једном кад се шифровање укључи, сви фајлови окачени на сервер од тог тренутка ће бити шифровани на серверу. Једини начин да искључите шифровање касније је да активни шифрарски модул то подржава и сви остали услови су задовољени (нпр. постављање кључа за опоравак).", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Шифровање само по себи не гарантује безбедност система. Погледајте документацију за више инфромација како шифровање функционише и подржане начине коришћења.", + "Be aware that encryption always increases the file size." : "Водите рачуна и да шифровање повећава величину фајлова.", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Увек је паметно да правите редовне резервне копије података. У случају када су подаци шифровани, онда поред њих и резервне копије кључева за шифровања.", + "This is the final warning: Do you really want to enable encryption?" : "Ово је последње упозорење: Да ли стварно желите да укључите шифровање?", "Enable encryption" : "Укључи шифровање", "No encryption module loaded, please enable an encryption module in the app menu." : "Шифрарски модул није учитан. Укључите га у менију апликација", "Select default encryption module:" : "Изаберите подразумевани шифрарски модул:", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) на нови. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) на нове. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Морате да преселите шифрарске кључеве старог шифровања (оунКлауд <= 8.0) на нове.", "Start migration" : "Покрени пресељење", "Security & setup warnings" : "Безбедносна и упозорења поставе", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Због безбедности и перформанси Ваше инстанце сервера, важно је да је све подешено исправно. Да бисмо Вам помогли у томе, радићемо неке аутоматске провере. Погледајте секцију са саветима и триковима, као и документацију за више информација.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP изгледа није исправно подешен да дохвата променљиве окружења. Тест са getenv(\"PATH\") враћа празну листу као одговор.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Погледајте <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">инсталациону документацију ↗</a> за белешке око PHP конфигурације и PHP конфигурацију Вашег сервера, поготову ако користите php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Омогућена је Само-читај конфигурација. То спречава постављање неке конфигурације преко веб-интерфејса. Осим тога, фајлу мора бити ручно омогућено уписивање код сваког освежавања.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP је очигледно подешен да склања уметнуте doc блокове. То ће учинити неколико кључних апликација недоступним.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ово је вероватно изазвано кешом или акцелератором као што су ЗендОПкеш или еАкцелератор.", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "База података није покренута са \"READ COMMITTED\" нивоом изолације трансакција. Ово може изазвати проблеме ако се више различитих акција изврши у паралели.", + "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s испод верзије %2$s је инсталиран. Због стабилности и перформанси, препоручује се ажурирање на новију, %1$s верзију.", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Недостаје PHP модул „fileinfo“. Препоручујемо да га укључите да бисте добили најбоље резултате с откривањем MIME типова фајлова.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "Трансактивно закључавање фајлова је искључено, што може довести до проблема са утркивањем процеса. Укључите 'filelocking.enabled' у config.php да бисте избегли проблеме овог типа. Погледајте <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документацију ↗</a> за више информација.", "System locale can not be set to a one which supports UTF-8." : "Системски локалитет се не може поставити на неки који подржава УТФ-8", + "This means that there might be problems with certain characters in filenames." : "Ово значи да може бити проблема са одређеним каракетерима који се појављују у именима фајлова.", + "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Препоручујемо да инсталирате потребне пакете да бисте подржали следеће локалитете: %s.", + "If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталација није инсталирана у основи домена и користи системски крон, може бити проблема са генерисањем веб адреса. Да бисте избегли ове проблеме, молимо вас да подесите \"overwrite.cli.url\" опцију у вашем config.php фајлу у путању веб-основе ваше инсталације (Предложено: \"%s\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Није било могуће да се изврши крон задатак путем интерфејса командне линије. Појавила су се следеће техничке грешке:", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Добро погледајте <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">инсталациону документацију ↗</a> и проверите за било какве грешке или упозорења у <a href=\"%s\">записнику</a>.", + "All checks passed." : "Све провере успешно прошле.", + "Background jobs" : "Послови у позадини", + "Last job ran %s." : "Последњи посао покренут %s.", + "Last job execution ran %s. Something seems wrong." : "Последњи извршени посао је радио %s. Нешто изгледа није у реду.", + "Background job didn’t run yet!" : "Послови у позадини се још нису извршили!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "За оптималне перформансе, битно је да правилно подесите послове у позадини. За веће инстанце, 'крон' је препоручено подешавање. Погледајте документацију за више информација.", "Execute one task with each page loaded" : "Изврши један задатак са сваком учитаном страницом", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php је регистрован код вебкрон сервиса за позивање cron.php сваких 15 минута преко протокола HTTP.", + "Use system cron service to call the cron.php file every 15 minutes." : "Користите системски крон сервис за позивање cron.php фајла сваких 15 минута.", + "The cron.php needs to be executed by the system user \"%s\"." : "cron.php треба да се извршава као системски корисник \"%s\".", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Да бисте ово покренули, потребна је PHP POSIX екстензија. Погледајте {linkstart}PHP документацију{linkend} за више детаља.", "Version" : "Верзија", "Sharing" : "Дељење", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Као администратор, можете фино подешавати понашања дељења. Погледајте документацију за више информација.", "Allow apps to use the Share API" : "Дозвољава апликацијама да користе АПИ дељења", "Allow users to share via link" : "Дозволи корисницима да деле путем везе", "Allow public uploads" : "Дозволи јавна отпремања", + "Always ask for a password" : "Увек питај за лозинку", "Enforce password protection" : "Захтевај заштиту лозинком", "Set default expiration date" : "Постави подразумевано време истека", "Expire after " : "Истиче након", "days" : "дана", "Enforce expiration date" : "Захтевај датум истека", "Allow resharing" : "Дозволи поновно дељење", + "Allow sharing with groups" : "Дозволи дељење са групама", "Restrict users to only share with users in their groups" : "Ограничи кориснике да могу да деле само унутар групе", "Exclude groups from sharing" : "Изузми групе из дељења", - "These groups will still be able to receive shares, but not to initiate them." : "Ове групе ће моћи да примају дељења али не и да их праве.", + "These groups will still be able to receive shares, but not to initiate them." : "Ове групе ће моћи да примају дељења, али не и да их праве.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Дозволи самодовршавање корисничких имена у дијалогу за дељење. Ако је ово искључено, корисник ће морати да унесе пуно корисничко име или адресу е-поште.", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Прикажи текст о ограђивању на јавној страни за отпремање (приказан је само када је сакривена листа фајлова)", + "This text will be shown on the public link upload page when the file list is hidden." : "Овај текст ће бити приказан на јавној страни отпремања када је скривен листа фајлова.", "Tips & tricks" : "Савети и трикови", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Постоји доста доступних функционалности и конфигурација да оптимално прилагодите и користите ову инстанце. Овде су неки основни савети.", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Тренутно се као база података користи SQLite. За веће инсталације, препоручујемо да промените базу података.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Ово се нарочито порепоручује ако се користи клијент програм у графичком окружењу за синхронизацију.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "За пресељење на другу базу података, користите алат командне линије: 'occ db:convert-type', или погледајте <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документацију ↗</a>.", "How to do backups" : "Како правити резерве", "Advanced monitoring" : "Напредно праћење", "Performance tuning" : "Побољшање перформанси", "Improving the config.php" : "Побољшање фајла поставки", "Theming" : "Теме", + "Check the security of your Nextcloud over our security scan" : "Проверавање безбедности Вашег Некстклауда кроз наше безбедоносно скенирање", "Hardening and security guidance" : "Ојачавање система и безбедносне препоруке", + "Personal" : "Лично", + "Administration" : "Администрација", + "You are using <strong>%s</strong> of <strong>%s</strong>" : "Користите <strong>%s</strong> од <strong>%s</strong>.", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Користите <strong>%s</strong> од <strong>%s</strong> (<strong>%s%%</strong>)", "Profile picture" : "Слика профила", "Upload new" : "Отпреми нову", + "Select from Files" : "Изабери из фајлова", "Remove image" : "Уклони слику", + "png or jpg, max. 20 MB" : "png или jpg, макс. 20 MB", + "Picture provided by original account" : "Слика оригиналног налога", "Cancel" : "Одустани", + "Choose as profile picture" : "Одаберите слику профила", "Full name" : "Пуно име", "No display name set" : "Није постављено име за приказ", "Email" : "Е-пошта", - "Your email address" : "Ваша адреса е-поште", - "No email address set" : "Није постављена е-адреса", - "You are member of the following groups:" : "Имате чланство у следећим групама:", + "Your email address" : "Адреса Ваше е-поште", + "No email address set" : "Није постављена адреса е-поште", + "For password reset and notifications" : "За ресетовање лозинке и обавештења", + "Phone number" : "Број телефона", + "Your phone number" : "Ваш број телефона", + "Address" : "Адреса", + "Your postal address" : "Ваша адреса становања", + "Website" : "Веб сајт", + "It can take up to 24 hours before the account is displayed as verified." : "Може да прође и до 24h пре него што налог буде потврђен.", + "Link https://…" : "Веза https://…", + "Twitter" : "Твитер", + "Twitter handle @…" : "Твитер надимак @…", + "You are member of the following groups:" : "Члан сте следећих група:", "Language" : "Језик", "Help translate" : " Помозите у превођењу", "Password" : "Лозинка", "Current password" : "Тренутна лозинка", "New password" : "Нова лозинка", "Change password" : "Измени лозинку", + "Web, desktop and mobile clients currently logged in to your account." : "Веб, рачунарски и мобилни клијенти тренутно пријављени на Ваш налог.", + "Device" : "Уређај", + "Last activity" : "Последња активност", + "App name" : "Име апликације", + "Create new app password" : "Направите нову лозинку апликације", + "Use the credentials below to configure your app or device." : "Употребите акредитиве наведене испод да подесите Вашу апликацију или уређај.", + "For security reasons this password will only be shown once." : "Из безбедносних разлога, ова лозинка ће бити приказана само једном.", "Username" : "Корисничко име", "Done" : "Завршено", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Развијено од стране {communityopen}Некстклауд заједнице{linkclose}, {githubopen}изворни код{linkclose} је под {licenseopen}AGPL{linkclose} лиценцом.", + "Follow us on Google+" : "Пратите нас на Google+", + "Like our Facebook page" : "Лајкујте нашу Фејсбук страну", + "Follow us on Twitter" : "Пратите нас на Твитеру", + "Check out our blog" : "Баците поглед на наш блог", + "Subscribe to our newsletter" : "Пријавите се на наше новине", + "Settings" : "Подешавања", "Show storage location" : "Прикажи локацију складишта", "Show user backend" : "Прикажи позадину за кориснике", - "Show email address" : "Прикажи е-адресу", + "Show last login" : "Прикажи последњу пријаву", + "Show email address" : "Прикажи адресу е-поште", "Send email to new user" : "Пошаљи е-пошту новом кориснику", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Када се поље лозинке новог корисника остави празним, кориснику ће бити послата е-пошта са везом за постављање лозинке.", "E-Mail" : "Е-пошта", "Create" : "Направи", "Admin Recovery Password" : "Администраторска лозинка за опоравак", "Enter the recovery password in order to recover the users files during password change" : "Унесите лозинку за опоравак корисничких фајлова током промене лозинке", + "Group name" : "Назив групе", "Everyone" : "Сви", "Admins" : "Администратори", + "Disabled" : "Искључено", + "Default quota" : "Подразумевана квота", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Унесите квоту складиштења (нпр. 512 MB или 12 GB)", "Unlimited" : "Неограничено", "Other" : "Друго", + "Group admin for" : "Администратор групе за", "Quota" : "Квота", + "Storage location" : "Локација складишта", + "User backend" : "Позадина за кориснике", + "Last login" : "Последња пријава", "change full name" : "измени пуно име", "set new password" : "постави нову лозинку", - "change email address" : "измени е-адресу", + "change email address" : "измени адресу е-поште", "Default" : "Подразумевано", "Enabled" : "Укључено", "Not enabled" : "Искључено", "Please provide an admin recovery password, otherwise all user data will be lost" : "Наведите администраторску лозинку опоравка. У супротном, сви кориснички подаци биће изгубљени.", - "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Позадина не подржава измеу лозинке али кориснички шифрарски кључеви су успешно ажурирани.", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Позадина не подржава измену лозинке, али су кориснички шифрарски кључеви успешно ажурирани.", "test email settings" : "тестирајте поставке е-поште", "Invalid request" : "Неисправан захтев", "Admins can't remove themself from the admin group" : "Администратор не може себе да уклони из admin групе", "Unable to add user to group %s" : "Не могу да додам корисника у групу %s", "Unable to remove user from group %s" : "Не могу да уклоним корисника из групе %s", "Sending..." : "Шаљем...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Имате ажирирање за %n апликацију","Имате ажирирање за %n апликације","Имате ажирирање за %n апликација"], "Uninstalling ...." : "Деинсталирам ...", "Error while uninstalling app" : "Грешка при деинсталацији апликације", "Uninstall" : "Деинсталирај", "__language_name__" : "Српски", "Personal info" : "Лични подаци", - "Sync clients" : "Синхронизовање клијената", + "Sessions" : "Сесије", + "App passwords" : "Апликативне лозинке", + "Sync clients" : "Клијенти у синхронизацији", "This is used for sending out notifications." : "Ово се користи за слање обавештења.", - "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "ПХП није подешен да може да провери системске променљиве. Проба са getenv(\"PATH\") враћа празан одговор.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "ПХП је очигледно подешен да се скида уметнуте док блокова. То ће учинити неколико кључних апликација недоступним.", - "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Недостаје ПХП модул „fileinfo“. Препоручујемо вам да га укључите да бисте добили најбоље резултате с откривањем МИМЕ врста.", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP није подешен да може да провери системске променљиве. Проба са getenv(\"PATH\") враћа празан одговор.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Погледајте <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">инсталациону документацију ↗</a> за белешке око PHP конфигурације и PHP конфигурацију Вашег сервера, поготову ако користите php-fpm.", + "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP је очигледно подешен да склања уметнуте doc блоковe. То ће учинити неколико кључних апликација недоступним.", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s испод верзије %2$s је инсталиран. Због стабилности и перформанси, препоручујемо ажурирање на новију, %1$s верзију.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Недостаје PHP модул „fileinfo“. Препоручујемо вам да га укључите да бисте добили најбоље резултате с откривањем MIME типова фајлова.", "This means that there might be problems with certain characters in file names." : "То значи да може доћи до проблема са неким знаковима у називима фајлова.", - "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Препоручујемо да инсталирате потребне пакете да бисте подржали следеће локалитете: %s", + "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Препоручујемо да инсталирате потребне пакете да бисте подржали следеће локалитете: %s.", "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталација није инсталирана у основи домена и користи системски крон, може бити проблема са генерисањем веб адреса. Да бисте избегли ове проблеме, молимо вас да подесите \"overwrite.cli.url\" опцију у вашем config.php фајлу у путању веб-основе ваше инсталације (Предложено: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Није било могуће да се изврши крон задатак путем интерфејса командне линије. Појавила су се следеће техничке грешке:", "Cron" : "Крон", - "Last cron job execution: %s." : "Последњи извршени крон задатак: %s.", - "Last cron job execution: %s. Something seems wrong." : "Последњи извршени крон задатак: %s. Нешто изгледа није у реду.", - "Cron was not executed yet!" : "Крон задатак још увек није извршен!", + "Last cron job execution: %s." : "Последњи извршени крон посао: %s.", + "Last cron job execution: %s. Something seems wrong." : "Последњи извршени крон посао: %s. Нешто изгледа није у реду.", + "Cron was not executed yet!" : "Крон још увек није извршен!", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php је регистрован код вебкрон сервиса за позивање cron.php сваких 15 минута преко протокола http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Користите системски крон сервис за позивање cron.php фајла сваких 15 минута.", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Да бисте ово покренули, потребна је PHP posix екстензија. Погледајте {linkstart}PHP документацију{linkend} за више детаља.", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Дозволи самодовршавање корисничких имена у дијалогу за дељење. Ако је ово искључено, корисник ће морати да унесе пуно корисничко име.", + "Uninstall app" : "Деинсталирај апликацију", + "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "Поздрав,<br><br>само вас обавештавам да сад имате %s налог.<br><br>Ваше корисничко име: <strong>%s</strong><br>Приступите му на: <strong><a href=\"%s\">%s</a></strong><br><br>", "Cheers!" : "Здраво!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Здраво,\n\nСамо да знате да сада имате %s налог.\n\nВаше корисничко име: %s\nПриступите му на: %s\n\n", + "For password recovery and notifications" : "За ресетовање лозинке и обавештења", + "Your website" : "Ваш веб сајт", + "Your Twitter handle" : "Ваш Твитер надимак", "Get the apps to sync your files" : "Преузмите апликације ради синхронизовања ваших фајлова", "Desktop client" : "Клијент за рачунар", "Android app" : "Андроид апликација", "iOS app" : "иОС апликација", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Ако желите да подржите пројекат, {contributeopen}придружите се развоју{linkclose} или {contributeopen}разгласите{linkclose}!", "Show First Run Wizard again" : "Поново прикажи чаробњака за прво покретање", - "Name" : "назив", - "Show last log in" : "Прикажи последњу пријаву" + "Passcodes that give an app or device permissions to access your account." : "Шифре које апликацији или уређају дају привилегије да приступи Вашем налогу.", + "Name" : "Име", + "Follow us on Google Plus!" : "Пратите нас на Google+!", + "Like our facebook page!" : "Лајкујте нашу Фејсбук страну!", + "Subscribe to our twitter channel!" : "Пријавите се на наш твитер канал!", + "Subscribe to our news feed!" : "Пријавите се на довод новина!", + "Subscribe to our newsletter!" : "Пријавите се на наше новине!", + "Show last log in" : "Прикажи последњу пријаву", + "You have now an %s account, you can add, protect, and share your data." : "Сада имате %s налог, можете додавати, штитити и делити Ваше податке.", + "Verifying" : "Проверавам", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Због безбедности и перформанси Ваше инстанце сервера, важно је да је све подешено исправно. Да бисмо Вам помогли у томе, радићемо неке аутоматске провере. Погледајте секцију са саветима и триковима, као и документацију за више информација.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "Недостаје PHP модул „fileinfo“. Препоручујемо вам да га укључите да бисте добили најбоље резултате с откривањем MIME типова фајлова.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Веб, рачунарске, мобилне и лозинке специфичне за апликације које тренутно имају приступ Вашем налогу.", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Овде можете изгенерисати појединачне лозинке за апликације, тако да не морате да дајете Вашу лозинку. Можете их појединачно и повући.", + "Follow us on Google+!" : "Пратите нас на Google+!", + "Follow us on Twitter!" : "Пратите нас на Твитеру!", + "Check out our blog!" : "Баците поглед на наш блог!" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/settings/l10n/sv.js b/settings/l10n/sv.js index 5eb7dba8387..18b2f672caf 100644 --- a/settings/l10n/sv.js +++ b/settings/l10n/sv.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "Ett inloggningsförsök med tvåfaktorautentisering misslyckades (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Ditt <strong>lösenord</strong> eller <strong>e-postadress</strong> har ändrats", "Your apps" : "Dina appar", + "Updates" : "Uppdateringar", "Enabled apps" : "Aktiverade appar", "Disabled apps" : "Inaktiverade appar", "App bundles" : "App-paket", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Lyckades inte lägga till grupp.", "Unable to delete group." : "Lyckades inte radera grupp.", "Invalid SMTP password." : "Ogiltigt SMTP-lösenord.", + "Email setting test" : "E-postinställningar test", "Well done, %s!" : "Bra gjort, %s!", "If you received this email, the email configuration seems to be correct." : "Om du får detta e-postmeddelande så har du ställt in e-postinställningarna rätt.", - "Email setting test" : "E-postinställningar test", "Email could not be sent. Check your mail server log" : "E-post kunde inte skickas. Titta i din e-postserverlogg", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ett problem uppstod när e-post försökte skickas. Var god kontrollera dina inställningar. (Fel: %s)", "You need to set your user email before being able to send test emails." : "Du behöver ställa in din användares e-postadress före du kan skicka test e-post.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s ändrade ditt lösenord på %2$s", "Your password on %s was changed." : "Ditt lösenord på %s har ändrats.", "Your password on %s was reset by an administrator." : "Ditt lösenord på %s har blivit återställt av en administratör.", + "Password for %1$s changed on %2$s" : "Lösenord för %1$s ändrades %2$s", "Password changed for %s" : "Lösenord ändrat för %s", "If you did not request this, please contact an administrator." : "Om du inte har begärt detta, vänligen kontakta en administratör.", - "Password for %1$s changed on %2$s" : "Lösenord för %1$s ändrades %2$s", "%1$s changed your email address on %2$s." : "%1$s ändrade din e-postadress %2$s.", "Your email address on %s was changed." : "Din e-postadress på %s har ändrats.", "Your email address on %s was changed by an administrator." : "Din e-postadress på %s har ändrats av en administratör.", + "Email address for %1$s changed on %2$s" : "E-postadressen för %1$s ändrades %2$s", "Email address changed for %s" : "E-postadress ändrad för %s", "The new email address is %s" : "Nya e-postadressen är %s", - "Email address for %1$s changed on %2$s" : "E-postadressen för %1$s ändrades %2$s", + "Your %s account was created" : "Ditt %s konto skapades", "Welcome aboard" : "Välkommen ombord", "Welcome aboard %s" : "Välkommen ombord %s", "You now have an %s account, you can add, protect, and share your data." : "Du har ett %s-konto, du kan lägga till, skydda och dela din data.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Ställ in ditt lösenord", "Go to %s" : "Gå till %s", "Install Client" : "Installera Klient", - "Your %s account was created" : "Ditt %s konto skapades", "Password confirmation is required" : "Lösenordsbekräftelse krävs", "Couldn't remove app." : "Kunde inte ta bort applikationen.", "Couldn't update app." : "Kunde inte uppdatera appen.", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "Officiell", "All" : "Alla", "Update to %s" : "Uppdatera till %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Du har %n applikationsuppdatering väntandes.","Du har %n applikationsuppdateringar väntandes."], "No apps found for your version" : "Inga appar funna för din version", "The app will be downloaded from the app store" : "Appen kommer hämtas från appstore", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiella appar är utvecklade av Nextclouds community. De erbjuder central funktionalitet och är redo för att användas i produktion.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Fel: Denna app kan inte aktiveras eftersom det gör servern instabil", "Error: Could not disable broken app" : "Fel: Kunde inte inaktivera trasig app", "Error while disabling broken app" : "Fel under inaktivering av trasig applikation.", + "No app updates available" : "Inga uppdateringar tillgängliga", "Updating...." : "Uppdaterar ...", "Error while updating app" : "Fel uppstod vid uppdatering av appen", "Updated" : "Uppdaterad", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "Utvecklardokumentation", "View in store" : "Visa i butik", "Limit to groups" : "Begränsa till grupper", - "This app has an update available." : "Denna applikation har en uppdatering tillgänglig.", "by %s" : "av %s", "%s-licensed" : "%s-licensierad.", "Documentation:" : "Dokumentation:", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "Rapportera ett problem", "Show description …" : "Visa beskrivning", "Hide description …" : "Dölj beskrivning", + "This app has an update available." : "Denna applikation har en uppdatering tillgänglig.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Denna app har ingen max Nextcloud-version tilldelad. Detta kommer att innebära ett problem i framtiden.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denna app har ingen minimum Nextcloud-version tilldelad. Detta kommer att innebära ett problem i framtiden.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Denna applikation kan inte installeras då följande beroenden inte är uppfyllda: %s", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Kan inte lägga till användare i gruppen %s", "Unable to remove user from group %s" : "Kan inte radera användare från gruppen %s", "Sending..." : "Skickar ...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Du har %n applikationsuppdatering väntandes.","Du har %n applikationsuppdateringar väntandes."], "Uninstalling ...." : "Avinstallerar ...", "Error while uninstalling app" : "Ett fel inträffade när applikationen avinstallerades", "Uninstall" : "Avinstallera", diff --git a/settings/l10n/sv.json b/settings/l10n/sv.json index 046851f9e87..58480a7384f 100644 --- a/settings/l10n/sv.json +++ b/settings/l10n/sv.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "Ett inloggningsförsök med tvåfaktorautentisering misslyckades (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Ditt <strong>lösenord</strong> eller <strong>e-postadress</strong> har ändrats", "Your apps" : "Dina appar", + "Updates" : "Uppdateringar", "Enabled apps" : "Aktiverade appar", "Disabled apps" : "Inaktiverade appar", "App bundles" : "App-paket", @@ -30,9 +31,9 @@ "Unable to add group." : "Lyckades inte lägga till grupp.", "Unable to delete group." : "Lyckades inte radera grupp.", "Invalid SMTP password." : "Ogiltigt SMTP-lösenord.", + "Email setting test" : "E-postinställningar test", "Well done, %s!" : "Bra gjort, %s!", "If you received this email, the email configuration seems to be correct." : "Om du får detta e-postmeddelande så har du ställt in e-postinställningarna rätt.", - "Email setting test" : "E-postinställningar test", "Email could not be sent. Check your mail server log" : "E-post kunde inte skickas. Titta i din e-postserverlogg", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ett problem uppstod när e-post försökte skickas. Var god kontrollera dina inställningar. (Fel: %s)", "You need to set your user email before being able to send test emails." : "Du behöver ställa in din användares e-postadress före du kan skicka test e-post.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s ändrade ditt lösenord på %2$s", "Your password on %s was changed." : "Ditt lösenord på %s har ändrats.", "Your password on %s was reset by an administrator." : "Ditt lösenord på %s har blivit återställt av en administratör.", + "Password for %1$s changed on %2$s" : "Lösenord för %1$s ändrades %2$s", "Password changed for %s" : "Lösenord ändrat för %s", "If you did not request this, please contact an administrator." : "Om du inte har begärt detta, vänligen kontakta en administratör.", - "Password for %1$s changed on %2$s" : "Lösenord för %1$s ändrades %2$s", "%1$s changed your email address on %2$s." : "%1$s ändrade din e-postadress %2$s.", "Your email address on %s was changed." : "Din e-postadress på %s har ändrats.", "Your email address on %s was changed by an administrator." : "Din e-postadress på %s har ändrats av en administratör.", + "Email address for %1$s changed on %2$s" : "E-postadressen för %1$s ändrades %2$s", "Email address changed for %s" : "E-postadress ändrad för %s", "The new email address is %s" : "Nya e-postadressen är %s", - "Email address for %1$s changed on %2$s" : "E-postadressen för %1$s ändrades %2$s", + "Your %s account was created" : "Ditt %s konto skapades", "Welcome aboard" : "Välkommen ombord", "Welcome aboard %s" : "Välkommen ombord %s", "You now have an %s account, you can add, protect, and share your data." : "Du har ett %s-konto, du kan lägga till, skydda och dela din data.", @@ -73,7 +75,6 @@ "Set your password" : "Ställ in ditt lösenord", "Go to %s" : "Gå till %s", "Install Client" : "Installera Klient", - "Your %s account was created" : "Ditt %s konto skapades", "Password confirmation is required" : "Lösenordsbekräftelse krävs", "Couldn't remove app." : "Kunde inte ta bort applikationen.", "Couldn't update app." : "Kunde inte uppdatera appen.", @@ -87,7 +88,6 @@ "Official" : "Officiell", "All" : "Alla", "Update to %s" : "Uppdatera till %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Du har %n applikationsuppdatering väntandes.","Du har %n applikationsuppdateringar väntandes."], "No apps found for your version" : "Inga appar funna för din version", "The app will be downloaded from the app store" : "Appen kommer hämtas från appstore", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiella appar är utvecklade av Nextclouds community. De erbjuder central funktionalitet och är redo för att användas i produktion.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Fel: Denna app kan inte aktiveras eftersom det gör servern instabil", "Error: Could not disable broken app" : "Fel: Kunde inte inaktivera trasig app", "Error while disabling broken app" : "Fel under inaktivering av trasig applikation.", + "No app updates available" : "Inga uppdateringar tillgängliga", "Updating...." : "Uppdaterar ...", "Error while updating app" : "Fel uppstod vid uppdatering av appen", "Updated" : "Uppdaterad", @@ -183,7 +184,6 @@ "Developer documentation" : "Utvecklardokumentation", "View in store" : "Visa i butik", "Limit to groups" : "Begränsa till grupper", - "This app has an update available." : "Denna applikation har en uppdatering tillgänglig.", "by %s" : "av %s", "%s-licensed" : "%s-licensierad.", "Documentation:" : "Dokumentation:", @@ -193,6 +193,7 @@ "Report a bug" : "Rapportera ett problem", "Show description …" : "Visa beskrivning", "Hide description …" : "Dölj beskrivning", + "This app has an update available." : "Denna applikation har en uppdatering tillgänglig.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Denna app har ingen max Nextcloud-version tilldelad. Detta kommer att innebära ett problem i framtiden.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denna app har ingen minimum Nextcloud-version tilldelad. Detta kommer att innebära ett problem i framtiden.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Denna applikation kan inte installeras då följande beroenden inte är uppfyllda: %s", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "Kan inte lägga till användare i gruppen %s", "Unable to remove user from group %s" : "Kan inte radera användare från gruppen %s", "Sending..." : "Skickar ...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Du har %n applikationsuppdatering väntandes.","Du har %n applikationsuppdateringar väntandes."], "Uninstalling ...." : "Avinstallerar ...", "Error while uninstalling app" : "Ett fel inträffade när applikationen avinstallerades", "Uninstall" : "Avinstallera", diff --git a/settings/l10n/th.js b/settings/l10n/th.js index cf08f20afd8..18c85a46d9a 100644 --- a/settings/l10n/th.js +++ b/settings/l10n/th.js @@ -37,7 +37,6 @@ OC.L10N.register( "Official" : "เป็นทางการ", "All" : "ทั้งหมด", "Update to %s" : "อัพเดทไปยัง %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["คุณมีอัพเดทแอพฯ n% รายการ อยู่ในระหว่างดำเนินการ"], "No apps found for your version" : "ไม่พบแอพพลิเคชันสำหรับรุ่นของคุณ", "The app will be downloaded from the app store" : "แอพฯจะดาวน์โหลดได้จากแอพสโตร์", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "แอพพลิเคชันได้รับการอนุมัติและพัฒนาโดยนักพัฒนาที่น่าเชื่อถือและได้ผ่านการตรวจสอบความปลอดภัยคร่าวๆ พวกเขาจะได้รับการบำรุงรักษาอย่างดีในการเก็บข้อมูลรหัสเปิด มันอาจยังไม่เสถียรพอสำหรับการเปิดใช้งานปกติ", @@ -209,6 +208,7 @@ OC.L10N.register( "Unable to add user to group %s" : "ไม่สามารถเพิ่มผู้ใช้งานเข้าไปที่กลุ่ม %s ได้", "Unable to remove user from group %s" : "ไม่สามารถลบผู้ใช้งานออกจากกลุ่ม %s ได้", "Sending..." : "กำลังส่ง...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["คุณมีอัพเดทแอพฯ n% รายการ อยู่ในระหว่างดำเนินการ"], "Uninstalling ...." : "กำลังถอนการติดตั้ง ...", "Error while uninstalling app" : "เกิดข้อผิดพลาดขณะถอนการติดตั้งแอพพลิเคชัน", "Uninstall" : "ถอนการติดตั้ง", diff --git a/settings/l10n/th.json b/settings/l10n/th.json index 70805dc7fe6..893e17e23a6 100644 --- a/settings/l10n/th.json +++ b/settings/l10n/th.json @@ -35,7 +35,6 @@ "Official" : "เป็นทางการ", "All" : "ทั้งหมด", "Update to %s" : "อัพเดทไปยัง %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["คุณมีอัพเดทแอพฯ n% รายการ อยู่ในระหว่างดำเนินการ"], "No apps found for your version" : "ไม่พบแอพพลิเคชันสำหรับรุ่นของคุณ", "The app will be downloaded from the app store" : "แอพฯจะดาวน์โหลดได้จากแอพสโตร์", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "แอพพลิเคชันได้รับการอนุมัติและพัฒนาโดยนักพัฒนาที่น่าเชื่อถือและได้ผ่านการตรวจสอบความปลอดภัยคร่าวๆ พวกเขาจะได้รับการบำรุงรักษาอย่างดีในการเก็บข้อมูลรหัสเปิด มันอาจยังไม่เสถียรพอสำหรับการเปิดใช้งานปกติ", @@ -207,6 +206,7 @@ "Unable to add user to group %s" : "ไม่สามารถเพิ่มผู้ใช้งานเข้าไปที่กลุ่ม %s ได้", "Unable to remove user from group %s" : "ไม่สามารถลบผู้ใช้งานออกจากกลุ่ม %s ได้", "Sending..." : "กำลังส่ง...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["คุณมีอัพเดทแอพฯ n% รายการ อยู่ในระหว่างดำเนินการ"], "Uninstalling ...." : "กำลังถอนการติดตั้ง ...", "Error while uninstalling app" : "เกิดข้อผิดพลาดขณะถอนการติดตั้งแอพพลิเคชัน", "Uninstall" : "ถอนการติดตั้ง", diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js index 040ca39e67f..c5b687d8511 100644 --- a/settings/l10n/tr.js +++ b/settings/l10n/tr.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "İki aşamalı kimlik doğrulama ile oturum açma girişimi reddedildi (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "<strong>Parolanız</strong> ya da <strong>e-posta adresiniz</strong> değiştirildi", "Your apps" : "Uygulamalarınız", + "Updates" : "Güncellemeler", "Enabled apps" : "Etkinleştirilmiş Uygulamalar", "Disabled apps" : "Devre Dışı Uygulamalar", "App bundles" : "Uygulama Paketleri", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "Grup eklenemedi.", "Unable to delete group." : "Grup silinemedi.", "Invalid SMTP password." : "SMTP parolası geçersiz.", + "Email setting test" : "E-posta ayarları sınaması", "Well done, %s!" : "Tamamdır %s!", "If you received this email, the email configuration seems to be correct." : "Bu e-postayı aldıysanız e-posta ayarları doğru olarak yapılmıştır.", - "Email setting test" : "E-posta ayarları sınaması", "Email could not be sent. Check your mail server log" : "E-posta gönderilemedi. E-posta sunucunuzun günlüklerine bakın", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "E-posta gönderilirken bir sorun çıktı. Lütfen ayarlarınızı gözden geçirin. (Hata: %s)", "You need to set your user email before being able to send test emails." : "Sınama e-postaları göndermeden önce kullanıcı e-postasını ayarlamalısınız.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s, %2$s üzerindeki parolanızı değiştirdi.", "Your password on %s was changed." : "%s üzerindeki parolanız değiştirildi.", "Your password on %s was reset by an administrator." : "%s üzerindeki parolanız bir yönetici tarafından sıfırlandı.", + "Password for %1$s changed on %2$s" : "%2$s üzerindeki %1$s parolası değiştirildi", "Password changed for %s" : "%s parolası değiştirildi", "If you did not request this, please contact an administrator." : "Bu işlemi siz başlatmadıysanız lütfen bir yönetici ile görüşün.", - "Password for %1$s changed on %2$s" : "%2$s üzerindeki %1$s parolası değiştirildi", "%1$s changed your email address on %2$s." : "%1$s, %2$s üzerindeki e-posta adresini değiştirdi", "Your email address on %s was changed." : "%s üzerindeki e-posta adresiniz değiştirildi.", "Your email address on %s was changed by an administrator." : "%s üzerindeki e-posta adresiniz bir yönetici tarafından değiştirildi.", + "Email address for %1$s changed on %2$s" : "%2$s üzerindeki %1$s e-posta değiştirildi", "Email address changed for %s" : "%s e-posta adresi değiştirildi", "The new email address is %s" : "Yeni e-posta adresi: %s", - "Email address for %1$s changed on %2$s" : "%2$s üzerindeki %1$s e-posta değiştirildi", + "Your %s account was created" : "%s hesabınız oluşturuldu", "Welcome aboard" : "Panonuza hoş geldiniz", "Welcome aboard %s" : "%s panonuza hoş geldiniz", "You now have an %s account, you can add, protect, and share your data." : "%s hesabınız açıldı. Verilerinizi ekleyip koruyabilir ve paylaşabilirsiniz.", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "Parolanızı ayarlayın", "Go to %s" : "%s sayfasına gidin", "Install Client" : "İstemciyi Yükleyin", - "Your %s account was created" : "%s hesabınız oluşturuldu", "Password confirmation is required" : "Parola onayının yazılması zorunludur", "Couldn't remove app." : "Uygulama kaldırılamadı.", "Couldn't update app." : "Uygulama güncellenemedi.", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "Resmi", "All" : "Tümü", "Update to %s" : "%s sürümüne güncelle", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Güncellenmeyi bekleyen %n uygulama var","Güncellenmeyi bekleyen %n uygulama var"], "No apps found for your version" : "Sürümünüze uygun bir uygulama bulunamadı", "The app will be downloaded from the app store" : "Uygulama uygulama mağazasından indirilecek", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Resmi uygulamalar topluluk tarafından geliştirilmiştir. Merkezi işlevleri yerine getirdikleri gibi kullanıma da hazırdırlar.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Hata: Bu uygulama sunucuda kararsızlığa yol açtığından etkinleştirilemez", "Error: Could not disable broken app" : "Hata: Bozuk uygulama devre dışı bırakılamadı", "Error while disabling broken app" : "Bozuk uygulama devre dışı bırakılırken sorun çıktı", + "No app updates available" : "Herhangi bir uygulama güncellemesi yok", "Updating...." : "Güncelleniyor....", "Error while updating app" : "Uygulama güncellenirken sorun çıktı", "Updated" : "Güncellendi", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "Geliştirici belgeleri", "View in store" : "Mağazada görüntüle", "Limit to groups" : "Şu gruplarla sınırla", - "This app has an update available." : "Bu uygulama için bir güncelleme yayınlanmış.", "by %s" : "Yazar: %s", "%s-licensed" : "%s lisanslı", "Documentation:" : "Belgeler:", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "Hata bildirin", "Show description …" : "Açıklama görüntülensin ...", "Hide description …" : "Açıklama gizlensin ...", + "This app has an update available." : "Bu uygulama için bir güncelleme yayınlanmış.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Bu uygulama için en düşük Nextcloud sürümü belirtilmemiş. Bu durum ileride sorun çıkarır.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Bu uygulama için en yüksek Nextcloud sürümü belirtilmemiş. Bu durum ileride sorun çıkarır.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Aşağıdaki bağımlılıklar sağlanmadığından bu uygulama kurulamıyor:", @@ -342,7 +343,7 @@ OC.L10N.register( "Current password" : "Geçerli parola", "New password" : "Yeni parola", "Change password" : "Parola değiştir", - "Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınıza web, masaüstü ve mobil istemciler oturum açmış.", + "Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınıza oturum açmış web, masaüstü ve mobil istemciler.", "Device" : "Aygıt", "Last activity" : "Son işlem", "App name" : "Uygulama adı", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "Kullanıcı %s grubuna eklenemedi", "Unable to remove user from group %s" : "Kullanıcı %s grubundan çıkartılamadı", "Sending..." : "Gönderiliyor...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Güncellenmeyi bekleyen %n uygulama var","Güncellenmeyi bekleyen %n uygulama var"], "Uninstalling ...." : "Kaldırılıyor ....", "Error while uninstalling app" : "Uygulama kaldırılırken sorun çıktı", "Uninstall" : "Kaldır", @@ -433,7 +435,7 @@ OC.L10N.register( "Android app" : "Android uygulaması", "iOS app" : "iOS uygulaması", "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Projeyi desteklemek için {contributeopen}geliştirmeye katılabilir{linkclose} ya da {contributeopen}tanıtımını yapabilirsiniz{linkclose}!", - "Show First Run Wizard again" : "İlk Çalıştırma Yardımcısı yeniden görüntülensin", + "Show First Run Wizard again" : "İlk Çalıştırma Sihirbazı'nı yeniden görüntüle", "Passcodes that give an app or device permissions to access your account." : "Parola kodları bir uygulama ya da aygıtın hesabınıza erişmesini sağlar.", "Name" : "Ad", "Follow us on Google Plus!" : "Bizi Google Plus üzerinde izleyin", @@ -446,7 +448,7 @@ OC.L10N.register( "Verifying" : "Doğrulanıyor", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Kopyanızın güvenli ve yüksek başarımla çalışması için ayarların doğru yapılmış olması önemlidir. Bunu sağlamak için bazı otomatik denetimler yapılır. Ayrıntılı bilgi almak için İpuçları bölümüne ve belgelere bakın.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "PHP 'fileinfo' modülü bulunamadı. MIME türü algılamasında en iyi sonuçları elde etmek için bu modülü etkinleştirmeniz önerilir.", - "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Şu anda hesabınıza erişebilen web, masa üstü ve mobil istemciler ile uygulamaya özel parolalar.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Şu anda hesabınıza erişebilen web, masaüstü ve mobil istemciler ile uygulamaya özel parolalar.", "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Bu bölümden uygulamalara özel parolalar üretebilirsiniz. Böylece kendi parolanızı vermeniz gerekmez. Daha sonra bu parolaları ayrı ayrı geçersiz kılabilirsiniz.", "Follow us on Google+!" : "Bizi Google+ üzerinde izleyin!", "Follow us on Twitter!" : "Bizi Twitter üzerinde izleyin!", diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json index 332a91bfd82..35bdd74ace2 100644 --- a/settings/l10n/tr.json +++ b/settings/l10n/tr.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "İki aşamalı kimlik doğrulama ile oturum açma girişimi reddedildi (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "<strong>Parolanız</strong> ya da <strong>e-posta adresiniz</strong> değiştirildi", "Your apps" : "Uygulamalarınız", + "Updates" : "Güncellemeler", "Enabled apps" : "Etkinleştirilmiş Uygulamalar", "Disabled apps" : "Devre Dışı Uygulamalar", "App bundles" : "Uygulama Paketleri", @@ -30,9 +31,9 @@ "Unable to add group." : "Grup eklenemedi.", "Unable to delete group." : "Grup silinemedi.", "Invalid SMTP password." : "SMTP parolası geçersiz.", + "Email setting test" : "E-posta ayarları sınaması", "Well done, %s!" : "Tamamdır %s!", "If you received this email, the email configuration seems to be correct." : "Bu e-postayı aldıysanız e-posta ayarları doğru olarak yapılmıştır.", - "Email setting test" : "E-posta ayarları sınaması", "Email could not be sent. Check your mail server log" : "E-posta gönderilemedi. E-posta sunucunuzun günlüklerine bakın", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "E-posta gönderilirken bir sorun çıktı. Lütfen ayarlarınızı gözden geçirin. (Hata: %s)", "You need to set your user email before being able to send test emails." : "Sınama e-postaları göndermeden önce kullanıcı e-postasını ayarlamalısınız.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s, %2$s üzerindeki parolanızı değiştirdi.", "Your password on %s was changed." : "%s üzerindeki parolanız değiştirildi.", "Your password on %s was reset by an administrator." : "%s üzerindeki parolanız bir yönetici tarafından sıfırlandı.", + "Password for %1$s changed on %2$s" : "%2$s üzerindeki %1$s parolası değiştirildi", "Password changed for %s" : "%s parolası değiştirildi", "If you did not request this, please contact an administrator." : "Bu işlemi siz başlatmadıysanız lütfen bir yönetici ile görüşün.", - "Password for %1$s changed on %2$s" : "%2$s üzerindeki %1$s parolası değiştirildi", "%1$s changed your email address on %2$s." : "%1$s, %2$s üzerindeki e-posta adresini değiştirdi", "Your email address on %s was changed." : "%s üzerindeki e-posta adresiniz değiştirildi.", "Your email address on %s was changed by an administrator." : "%s üzerindeki e-posta adresiniz bir yönetici tarafından değiştirildi.", + "Email address for %1$s changed on %2$s" : "%2$s üzerindeki %1$s e-posta değiştirildi", "Email address changed for %s" : "%s e-posta adresi değiştirildi", "The new email address is %s" : "Yeni e-posta adresi: %s", - "Email address for %1$s changed on %2$s" : "%2$s üzerindeki %1$s e-posta değiştirildi", + "Your %s account was created" : "%s hesabınız oluşturuldu", "Welcome aboard" : "Panonuza hoş geldiniz", "Welcome aboard %s" : "%s panonuza hoş geldiniz", "You now have an %s account, you can add, protect, and share your data." : "%s hesabınız açıldı. Verilerinizi ekleyip koruyabilir ve paylaşabilirsiniz.", @@ -73,7 +75,6 @@ "Set your password" : "Parolanızı ayarlayın", "Go to %s" : "%s sayfasına gidin", "Install Client" : "İstemciyi Yükleyin", - "Your %s account was created" : "%s hesabınız oluşturuldu", "Password confirmation is required" : "Parola onayının yazılması zorunludur", "Couldn't remove app." : "Uygulama kaldırılamadı.", "Couldn't update app." : "Uygulama güncellenemedi.", @@ -87,7 +88,6 @@ "Official" : "Resmi", "All" : "Tümü", "Update to %s" : "%s sürümüne güncelle", - "_You have %n app update pending_::_You have %n app updates pending_" : ["Güncellenmeyi bekleyen %n uygulama var","Güncellenmeyi bekleyen %n uygulama var"], "No apps found for your version" : "Sürümünüze uygun bir uygulama bulunamadı", "The app will be downloaded from the app store" : "Uygulama uygulama mağazasından indirilecek", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Resmi uygulamalar topluluk tarafından geliştirilmiştir. Merkezi işlevleri yerine getirdikleri gibi kullanıma da hazırdırlar.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Hata: Bu uygulama sunucuda kararsızlığa yol açtığından etkinleştirilemez", "Error: Could not disable broken app" : "Hata: Bozuk uygulama devre dışı bırakılamadı", "Error while disabling broken app" : "Bozuk uygulama devre dışı bırakılırken sorun çıktı", + "No app updates available" : "Herhangi bir uygulama güncellemesi yok", "Updating...." : "Güncelleniyor....", "Error while updating app" : "Uygulama güncellenirken sorun çıktı", "Updated" : "Güncellendi", @@ -183,7 +184,6 @@ "Developer documentation" : "Geliştirici belgeleri", "View in store" : "Mağazada görüntüle", "Limit to groups" : "Şu gruplarla sınırla", - "This app has an update available." : "Bu uygulama için bir güncelleme yayınlanmış.", "by %s" : "Yazar: %s", "%s-licensed" : "%s lisanslı", "Documentation:" : "Belgeler:", @@ -193,6 +193,7 @@ "Report a bug" : "Hata bildirin", "Show description …" : "Açıklama görüntülensin ...", "Hide description …" : "Açıklama gizlensin ...", + "This app has an update available." : "Bu uygulama için bir güncelleme yayınlanmış.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Bu uygulama için en düşük Nextcloud sürümü belirtilmemiş. Bu durum ileride sorun çıkarır.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Bu uygulama için en yüksek Nextcloud sürümü belirtilmemiş. Bu durum ileride sorun çıkarır.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Aşağıdaki bağımlılıklar sağlanmadığından bu uygulama kurulamıyor:", @@ -340,7 +341,7 @@ "Current password" : "Geçerli parola", "New password" : "Yeni parola", "Change password" : "Parola değiştir", - "Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınıza web, masaüstü ve mobil istemciler oturum açmış.", + "Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınıza oturum açmış web, masaüstü ve mobil istemciler.", "Device" : "Aygıt", "Last activity" : "Son işlem", "App name" : "Uygulama adı", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "Kullanıcı %s grubuna eklenemedi", "Unable to remove user from group %s" : "Kullanıcı %s grubundan çıkartılamadı", "Sending..." : "Gönderiliyor...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Güncellenmeyi bekleyen %n uygulama var","Güncellenmeyi bekleyen %n uygulama var"], "Uninstalling ...." : "Kaldırılıyor ....", "Error while uninstalling app" : "Uygulama kaldırılırken sorun çıktı", "Uninstall" : "Kaldır", @@ -431,7 +433,7 @@ "Android app" : "Android uygulaması", "iOS app" : "iOS uygulaması", "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Projeyi desteklemek için {contributeopen}geliştirmeye katılabilir{linkclose} ya da {contributeopen}tanıtımını yapabilirsiniz{linkclose}!", - "Show First Run Wizard again" : "İlk Çalıştırma Yardımcısı yeniden görüntülensin", + "Show First Run Wizard again" : "İlk Çalıştırma Sihirbazı'nı yeniden görüntüle", "Passcodes that give an app or device permissions to access your account." : "Parola kodları bir uygulama ya da aygıtın hesabınıza erişmesini sağlar.", "Name" : "Ad", "Follow us on Google Plus!" : "Bizi Google Plus üzerinde izleyin", @@ -444,7 +446,7 @@ "Verifying" : "Doğrulanıyor", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Kopyanızın güvenli ve yüksek başarımla çalışması için ayarların doğru yapılmış olması önemlidir. Bunu sağlamak için bazı otomatik denetimler yapılır. Ayrıntılı bilgi almak için İpuçları bölümüne ve belgelere bakın.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "PHP 'fileinfo' modülü bulunamadı. MIME türü algılamasında en iyi sonuçları elde etmek için bu modülü etkinleştirmeniz önerilir.", - "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Şu anda hesabınıza erişebilen web, masa üstü ve mobil istemciler ile uygulamaya özel parolalar.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Şu anda hesabınıza erişebilen web, masaüstü ve mobil istemciler ile uygulamaya özel parolalar.", "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Bu bölümden uygulamalara özel parolalar üretebilirsiniz. Böylece kendi parolanızı vermeniz gerekmez. Daha sonra bu parolaları ayrı ayrı geçersiz kılabilirsiniz.", "Follow us on Google+!" : "Bizi Google+ üzerinde izleyin!", "Follow us on Twitter!" : "Bizi Twitter üzerinde izleyin!", diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js index 1adfafac2d6..797673ac2fd 100644 --- a/settings/l10n/zh_CN.js +++ b/settings/l10n/zh_CN.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "使用两步验证登录失败的尝试 (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "你的 <strong>密码</strong> 或 <strong>密码</strong> 已被更改", "Your apps" : "你的应用", + "Updates" : "更新", "Enabled apps" : "启用应用", "Disabled apps" : "禁用应用", "App bundles" : "应用软件包", @@ -32,9 +33,9 @@ OC.L10N.register( "Unable to add group." : "无法添加分组.", "Unable to delete group." : "无法删除分组.", "Invalid SMTP password." : "无效的SMTP密码", + "Email setting test" : "电子邮件设置测试", "Well done, %s!" : "已完成, %s!", "If you received this email, the email configuration seems to be correct." : "如果你收到了这封邮件,电子邮件配置应该就是正确的。", - "Email setting test" : "电子邮件设置测试", "Email could not be sent. Check your mail server log" : "邮件无法发送. 检查你的邮件服务器日志", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "在发送电子邮件时出现问题. 请修正您的设置. (错误: %s)", "You need to set your user email before being able to send test emails." : "在发送测试邮件前您需要设置您的电子邮件地址.", @@ -59,15 +60,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s 在 %2$s.上已更改你的密码", "Your password on %s was changed." : "你的密码在 %s 已被更改.", "Your password on %s was reset by an administrator." : "你的密码在 %s 已被管理员重置", + "Password for %1$s changed on %2$s" : "%1$s的密码更改为%2$s", "Password changed for %s" : "密码更改为%s", "If you did not request this, please contact an administrator." : "如果您发出此项请求,请联系管理员。", - "Password for %1$s changed on %2$s" : "%1$s的密码更改为%2$s", "%1$s changed your email address on %2$s." : "%1$s把你的邮箱地址更改成%2$s", "Your email address on %s was changed." : "你在%s上的电子邮件地址已更改", "Your email address on %s was changed by an administrator." : "你在%s上的电子邮件地址已被管理员修改", + "Email address for %1$s changed on %2$s" : "%1$s的邮箱地址更改为%2$s", "Email address changed for %s" : "邮箱地址更改为%s", "The new email address is %s" : "新的电子邮件地址是%s", - "Email address for %1$s changed on %2$s" : "%1$s的邮箱地址更改为%2$s", + "Your %s account was created" : "你的帐户 %s 已创建", "Welcome aboard" : "欢迎登陆", "Welcome aboard %s" : "欢迎登陆 %s", "You now have an %s account, you can add, protect, and share your data." : "您已经创建账户%s,您现在可以增加、保护和共享数据。", @@ -75,7 +77,6 @@ OC.L10N.register( "Set your password" : "设置你的密码", "Go to %s" : "到 %s", "Install Client" : "安装客户端", - "Your %s account was created" : "你的帐户 %s 已创建", "Password confirmation is required" : "需要密码确认", "Couldn't remove app." : "无法删除应用.", "Couldn't update app." : "无法更新应用.", @@ -89,7 +90,6 @@ OC.L10N.register( "Official" : "官方", "All" : "全部", "Update to %s" : "更新为 %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 个应用正在等待升级"], "No apps found for your version" : "未找到适合当前版本的应用", "The app will be downloaded from the app store" : "该应用将从应用商店下载", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "官方应用由社区和内部开发. 其可以提供核心功能并保证生产用途.", @@ -104,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "错误: 无法启用应用因为它会导致服务器不稳定", "Error: Could not disable broken app" : "错误: 无法禁用损坏的应用", "Error while disabling broken app" : "禁用损坏的应用时出错", + "No app updates available" : "没有可用的应用更新", "Updating...." : "正在更新....", "Error while updating app" : "更新应用时出错", "Updated" : "已更新", @@ -185,7 +186,6 @@ OC.L10N.register( "Developer documentation" : "开发者文档", "View in store" : "在商店中查看", "Limit to groups" : "限制于组", - "This app has an update available." : "此应用有可用的更新.", "by %s" : "由 %s", "%s-licensed" : "%s-许可协议", "Documentation:" : "文档:", @@ -195,6 +195,7 @@ OC.L10N.register( "Report a bug" : "报告问题", "Show description …" : "显示描述...", "Hide description …" : "隐藏描述...", + "This app has an update available." : "此应用有可用的更新.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最低版本. 可能会在将来出现问题.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最高版本. 可能会在将来出现问题.", "This app cannot be installed because the following dependencies are not fulfilled:" : "无法安装应用, 因为无法满足下列依赖: ", @@ -395,6 +396,7 @@ OC.L10N.register( "Unable to add user to group %s" : "无法将用户添加到分组 %s", "Unable to remove user from group %s" : "无法从分组 %s 中移除用户", "Sending..." : "正在发送...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 个应用正在等待升级"], "Uninstalling ...." : "正在卸载....", "Error while uninstalling app" : "卸载应用时发生了一个错误", "Uninstall" : "卸载", diff --git a/settings/l10n/zh_CN.json b/settings/l10n/zh_CN.json index db2b0f5146a..52e5478ddc3 100644 --- a/settings/l10n/zh_CN.json +++ b/settings/l10n/zh_CN.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "使用两步验证登录失败的尝试 (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "你的 <strong>密码</strong> 或 <strong>密码</strong> 已被更改", "Your apps" : "你的应用", + "Updates" : "更新", "Enabled apps" : "启用应用", "Disabled apps" : "禁用应用", "App bundles" : "应用软件包", @@ -30,9 +31,9 @@ "Unable to add group." : "无法添加分组.", "Unable to delete group." : "无法删除分组.", "Invalid SMTP password." : "无效的SMTP密码", + "Email setting test" : "电子邮件设置测试", "Well done, %s!" : "已完成, %s!", "If you received this email, the email configuration seems to be correct." : "如果你收到了这封邮件,电子邮件配置应该就是正确的。", - "Email setting test" : "电子邮件设置测试", "Email could not be sent. Check your mail server log" : "邮件无法发送. 检查你的邮件服务器日志", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "在发送电子邮件时出现问题. 请修正您的设置. (错误: %s)", "You need to set your user email before being able to send test emails." : "在发送测试邮件前您需要设置您的电子邮件地址.", @@ -57,15 +58,16 @@ "%1$s changed your password on %2$s." : "%1$s 在 %2$s.上已更改你的密码", "Your password on %s was changed." : "你的密码在 %s 已被更改.", "Your password on %s was reset by an administrator." : "你的密码在 %s 已被管理员重置", + "Password for %1$s changed on %2$s" : "%1$s的密码更改为%2$s", "Password changed for %s" : "密码更改为%s", "If you did not request this, please contact an administrator." : "如果您发出此项请求,请联系管理员。", - "Password for %1$s changed on %2$s" : "%1$s的密码更改为%2$s", "%1$s changed your email address on %2$s." : "%1$s把你的邮箱地址更改成%2$s", "Your email address on %s was changed." : "你在%s上的电子邮件地址已更改", "Your email address on %s was changed by an administrator." : "你在%s上的电子邮件地址已被管理员修改", + "Email address for %1$s changed on %2$s" : "%1$s的邮箱地址更改为%2$s", "Email address changed for %s" : "邮箱地址更改为%s", "The new email address is %s" : "新的电子邮件地址是%s", - "Email address for %1$s changed on %2$s" : "%1$s的邮箱地址更改为%2$s", + "Your %s account was created" : "你的帐户 %s 已创建", "Welcome aboard" : "欢迎登陆", "Welcome aboard %s" : "欢迎登陆 %s", "You now have an %s account, you can add, protect, and share your data." : "您已经创建账户%s,您现在可以增加、保护和共享数据。", @@ -73,7 +75,6 @@ "Set your password" : "设置你的密码", "Go to %s" : "到 %s", "Install Client" : "安装客户端", - "Your %s account was created" : "你的帐户 %s 已创建", "Password confirmation is required" : "需要密码确认", "Couldn't remove app." : "无法删除应用.", "Couldn't update app." : "无法更新应用.", @@ -87,7 +88,6 @@ "Official" : "官方", "All" : "全部", "Update to %s" : "更新为 %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 个应用正在等待升级"], "No apps found for your version" : "未找到适合当前版本的应用", "The app will be downloaded from the app store" : "该应用将从应用商店下载", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "官方应用由社区和内部开发. 其可以提供核心功能并保证生产用途.", @@ -102,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "错误: 无法启用应用因为它会导致服务器不稳定", "Error: Could not disable broken app" : "错误: 无法禁用损坏的应用", "Error while disabling broken app" : "禁用损坏的应用时出错", + "No app updates available" : "没有可用的应用更新", "Updating...." : "正在更新....", "Error while updating app" : "更新应用时出错", "Updated" : "已更新", @@ -183,7 +184,6 @@ "Developer documentation" : "开发者文档", "View in store" : "在商店中查看", "Limit to groups" : "限制于组", - "This app has an update available." : "此应用有可用的更新.", "by %s" : "由 %s", "%s-licensed" : "%s-许可协议", "Documentation:" : "文档:", @@ -193,6 +193,7 @@ "Report a bug" : "报告问题", "Show description …" : "显示描述...", "Hide description …" : "隐藏描述...", + "This app has an update available." : "此应用有可用的更新.", "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最低版本. 可能会在将来出现问题.", "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最高版本. 可能会在将来出现问题.", "This app cannot be installed because the following dependencies are not fulfilled:" : "无法安装应用, 因为无法满足下列依赖: ", @@ -393,6 +394,7 @@ "Unable to add user to group %s" : "无法将用户添加到分组 %s", "Unable to remove user from group %s" : "无法从分组 %s 中移除用户", "Sending..." : "正在发送...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 个应用正在等待升级"], "Uninstalling ...." : "正在卸载....", "Error while uninstalling app" : "卸载应用时发生了一个错误", "Uninstall" : "卸载", diff --git a/settings/l10n/zh_TW.js b/settings/l10n/zh_TW.js index abadc7b6f3b..16664e01184 100644 --- a/settings/l10n/zh_TW.js +++ b/settings/l10n/zh_TW.js @@ -32,9 +32,9 @@ OC.L10N.register( "Unable to add group." : "無法新增群組", "Unable to delete group." : "無法刪除群組", "Invalid SMTP password." : "無效的 SMTP 密碼", + "Email setting test" : "測試郵件設定", "Well done, %s!" : "太棒了, %s!", "If you received this email, the email configuration seems to be correct." : "如果你收到這封email,代表email設定是正確的。", - "Email setting test" : "測試郵件設定", "Email could not be sent. Check your mail server log" : "郵件無法寄出,請查閱mail伺服器記錄檔", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "寄出郵件時發生問題,請檢查您的設定(錯誤訊息:%s)", "You need to set your user email before being able to send test emails." : "在寄出測試郵件前您需要設定信箱位址", @@ -59,15 +59,16 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s在%2$s時更改了您的密碼", "Your password on %s was changed." : "你的密碼在 %s 已變更。", "Your password on %s was reset by an administrator." : "您的密碼在 %s 已被管理員重設。", + "Password for %1$s changed on %2$s" : "%1$s 的密碼已在 %2$s 變更。", "Password changed for %s" : "%s 的密碼已變更。", "If you did not request this, please contact an administrator." : "如果你未發送此請求 ,請聯絡系統管理員。", - "Password for %1$s changed on %2$s" : "%1$s 的密碼已在 %2$s 變更。", "%1$s changed your email address on %2$s." : "%1$s 更改你的 email 地址在 %2$s 時。", "Your email address on %s was changed." : "你的email地址在 %s 已變更。", "Your email address on %s was changed by an administrator." : "你的email地址在 %s 已被管理員變更。", + "Email address for %1$s changed on %2$s" : "%1$s的Email信箱在%2$s已經變更。", "Email address changed for %s" : "%s 的email地址已變更。", "The new email address is %s" : "新的email地址為 %s", - "Email address for %1$s changed on %2$s" : "%1$s的Email信箱在%2$s已經變更。", + "Your %s account was created" : "您的 %s 帳號已經建立", "Welcome aboard" : "歡迎加入", "Welcome aboard %s" : "%s,歡迎您加入", "You now have an %s account, you can add, protect, and share your data." : "你現在已經擁有了%s帳戶,你可以新增、分享以及捍衛你的資料。", @@ -75,7 +76,6 @@ OC.L10N.register( "Set your password" : "設定您的密碼", "Go to %s" : "前往 %s", "Install Client" : "安裝使用端", - "Your %s account was created" : "您的 %s 帳號已經建立", "Password confirmation is required" : "要求密碼確認", "Couldn't remove app." : "無法移除應用程式", "Couldn't update app." : "無法更新應用程式", @@ -89,7 +89,6 @@ OC.L10N.register( "Official" : "官方", "All" : "所有", "Update to %s" : "更新到 %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 個應用程式尚未更新"], "No apps found for your version" : "沒有找到適合您的版本的應用程式", "The app will be downloaded from the app store" : "將會從應用程式商店下載這個應用程式", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "官方應用程序是由社區內部和內部開發的。 它們提供核心功能,並可在正式成品使用。", @@ -174,7 +173,6 @@ OC.L10N.register( "A valid password must be provided" : "一定要提供一個有效的密碼", "A valid email must be provided" : "必須提供一個有效的電子郵件地址", "Developer documentation" : "開發者說明文件", - "This app has an update available." : "此應用程式有可用的更新", "%s-licensed" : "%s 授權", "Documentation:" : "說明文件:", "User documentation" : "用戶說明文件", @@ -183,6 +181,7 @@ OC.L10N.register( "Report a bug" : "回報問題", "Show description …" : "顯示描述", "Hide description …" : "隱藏描述", + "This app has an update available." : "此應用程式有可用的更新", "This app cannot be installed because the following dependencies are not fulfilled:" : "這個應用程式無法被安裝,因為欠缺下列相依套件:", "Enable only for specific groups" : "僅對特定的群組啟用", "Common Name" : "Common Name", @@ -305,6 +304,7 @@ OC.L10N.register( "Unable to add user to group %s" : "無法將使用者加入群組 %s", "Unable to remove user from group %s" : "無法將使用者移出群組 %s", "Sending..." : "傳送中…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 個應用程式尚未更新"], "Uninstalling ...." : "正在解除安裝…", "Error while uninstalling app" : "移除應用程式錯誤", "Uninstall" : "解除安裝", diff --git a/settings/l10n/zh_TW.json b/settings/l10n/zh_TW.json index 5e2c086f9f9..c6704caff95 100644 --- a/settings/l10n/zh_TW.json +++ b/settings/l10n/zh_TW.json @@ -30,9 +30,9 @@ "Unable to add group." : "無法新增群組", "Unable to delete group." : "無法刪除群組", "Invalid SMTP password." : "無效的 SMTP 密碼", + "Email setting test" : "測試郵件設定", "Well done, %s!" : "太棒了, %s!", "If you received this email, the email configuration seems to be correct." : "如果你收到這封email,代表email設定是正確的。", - "Email setting test" : "測試郵件設定", "Email could not be sent. Check your mail server log" : "郵件無法寄出,請查閱mail伺服器記錄檔", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "寄出郵件時發生問題,請檢查您的設定(錯誤訊息:%s)", "You need to set your user email before being able to send test emails." : "在寄出測試郵件前您需要設定信箱位址", @@ -57,15 +57,16 @@ "%1$s changed your password on %2$s." : "%1$s在%2$s時更改了您的密碼", "Your password on %s was changed." : "你的密碼在 %s 已變更。", "Your password on %s was reset by an administrator." : "您的密碼在 %s 已被管理員重設。", + "Password for %1$s changed on %2$s" : "%1$s 的密碼已在 %2$s 變更。", "Password changed for %s" : "%s 的密碼已變更。", "If you did not request this, please contact an administrator." : "如果你未發送此請求 ,請聯絡系統管理員。", - "Password for %1$s changed on %2$s" : "%1$s 的密碼已在 %2$s 變更。", "%1$s changed your email address on %2$s." : "%1$s 更改你的 email 地址在 %2$s 時。", "Your email address on %s was changed." : "你的email地址在 %s 已變更。", "Your email address on %s was changed by an administrator." : "你的email地址在 %s 已被管理員變更。", + "Email address for %1$s changed on %2$s" : "%1$s的Email信箱在%2$s已經變更。", "Email address changed for %s" : "%s 的email地址已變更。", "The new email address is %s" : "新的email地址為 %s", - "Email address for %1$s changed on %2$s" : "%1$s的Email信箱在%2$s已經變更。", + "Your %s account was created" : "您的 %s 帳號已經建立", "Welcome aboard" : "歡迎加入", "Welcome aboard %s" : "%s,歡迎您加入", "You now have an %s account, you can add, protect, and share your data." : "你現在已經擁有了%s帳戶,你可以新增、分享以及捍衛你的資料。", @@ -73,7 +74,6 @@ "Set your password" : "設定您的密碼", "Go to %s" : "前往 %s", "Install Client" : "安裝使用端", - "Your %s account was created" : "您的 %s 帳號已經建立", "Password confirmation is required" : "要求密碼確認", "Couldn't remove app." : "無法移除應用程式", "Couldn't update app." : "無法更新應用程式", @@ -87,7 +87,6 @@ "Official" : "官方", "All" : "所有", "Update to %s" : "更新到 %s", - "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 個應用程式尚未更新"], "No apps found for your version" : "沒有找到適合您的版本的應用程式", "The app will be downloaded from the app store" : "將會從應用程式商店下載這個應用程式", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "官方應用程序是由社區內部和內部開發的。 它們提供核心功能,並可在正式成品使用。", @@ -172,7 +171,6 @@ "A valid password must be provided" : "一定要提供一個有效的密碼", "A valid email must be provided" : "必須提供一個有效的電子郵件地址", "Developer documentation" : "開發者說明文件", - "This app has an update available." : "此應用程式有可用的更新", "%s-licensed" : "%s 授權", "Documentation:" : "說明文件:", "User documentation" : "用戶說明文件", @@ -181,6 +179,7 @@ "Report a bug" : "回報問題", "Show description …" : "顯示描述", "Hide description …" : "隱藏描述", + "This app has an update available." : "此應用程式有可用的更新", "This app cannot be installed because the following dependencies are not fulfilled:" : "這個應用程式無法被安裝,因為欠缺下列相依套件:", "Enable only for specific groups" : "僅對特定的群組啟用", "Common Name" : "Common Name", @@ -303,6 +302,7 @@ "Unable to add user to group %s" : "無法將使用者加入群組 %s", "Unable to remove user from group %s" : "無法將使用者移出群組 %s", "Sending..." : "傳送中…", + "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 個應用程式尚未更新"], "Uninstalling ...." : "正在解除安裝…", "Error while uninstalling app" : "移除應用程式錯誤", "Uninstall" : "解除安裝", diff --git a/settings/templates/apps.php b/settings/templates/apps.php index 91a73fcbe56..5d519496598 100644 --- a/settings/templates/apps.php +++ b/settings/templates/apps.php @@ -19,6 +19,11 @@ script( {{#each this}} <li id="app-category-{{ident}}" data-category-id="{{ident}}" tabindex="0"> <a href="#" class="icon-category-{{ident}}">{{displayName}}</a> + <div class="app-navigation-entry-utils"> + <ul> + <li class="app-navigation-entry-utils-counter">{{ counter }}</li> + </ul> + </div> </li> {{/each}} @@ -65,9 +70,6 @@ script( </div> <div class="actions"> - <div class="app-dependencies update hidden"> - <p><?php p($l->t('This app has an update available.')); ?></p> - </div> <div class="warning hidden"></div> <input class="update hidden" type="submit" value="<?php p($l->t('Update to %s', array('{{update}}'))); ?>" data-appid="{{id}}" /> {{#if canUnInstall}} @@ -206,7 +208,7 @@ script( </svg> <div id="apps-list"></div> <div id="apps-list-empty" class="hidden emptycontent emptycontent-search"> - <div class="icon-search"></div> + <div id="app-list-empty-icon" class="icon-search"></div> <h2><?php p($l->t('No apps found for your version')) ?></h2> </div> </div> diff --git a/settings/templates/settings/personal/personal.info.php b/settings/templates/settings/personal/personal.info.php index 084b34af96c..854b413171c 100644 --- a/settings/templates/settings/personal/personal.info.php +++ b/settings/templates/settings/personal/personal.info.php @@ -38,9 +38,22 @@ vendor_style('jcrop/css/jquery.Jcrop'); ?> <div id="quota" class="section"> - <div style="width:<?php p($_['usage_relative']);?>%" - <?php if($_['usage_relative'] > 80): ?> class="quota-warning" <?php endif; ?>> - <p id="quotatext"> + <progress value="<?php p($_['usage_relative']); ?>" max="100" + <?php if($_['usage_relative'] > 80): ?> class="warn" <?php endif; ?>></progress> + + <div style="width:<?php p($_['usage_relative']);?>%" class="quotatext-fg"> + <p class="quotatext"> + <?php if ($_['quota'] === \OCP\Files\FileInfo::SPACE_UNLIMITED): ?> + <?php print_unescaped($l->t('You are using <strong>%s</strong> of <strong>%s</strong>', + [$_['usage'], $_['total_space']]));?> + <?php else: ?> + <?php print_unescaped($l->t('You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)', + [$_['usage'], $_['total_space'], $_['usage_relative']]));?> + <?php endif ?> + </p> + </div> + <div class="quotatext-bg"> + <p class="quotatext"> <?php if ($_['quota'] === \OCP\Files\FileInfo::SPACE_UNLIMITED): ?> <?php print_unescaped($l->t('You are using <strong>%s</strong> of <strong>%s</strong>', [$_['usage'], $_['total_space']]));?> @@ -53,38 +66,40 @@ vendor_style('jcrop/css/jquery.Jcrop'); </div> <div id="personal-settings"> - <div id="personal-settings-avatar-container"> - <form id="avatarform" class="section" method="post" action="<?php p(\OC::$server->getURLGenerator()->linkToRoute('core.avatar.postAvatar')); ?>"> - <h2> - <label><?php p($l->t('Profile picture')); ?></label><span class="icon-federation-menu icon-password"> - <span class="icon-triangle-s"></span> - </span> - </h2> - <div id="displayavatar"> - <div class="avatardiv"></div> - <div class="warning hidden"></div> - <?php if ($_['avatarChangeSupported']): ?> - <label for="uploadavatar" class="inlineblock button icon-upload svg" id="uploadavatarbutton" title="<?php p($l->t('Upload new')); ?>"></label> - <div class="inlineblock button icon-folder svg" id="selectavatar" title="<?php p($l->t('Select from Files')); ?>"></div> - <div class="hidden button icon-delete svg" id="removeavatar" title="<?php p($l->t('Remove image')); ?>"></div> - <input type="file" name="files[]" id="uploadavatar" class="hiddenuploadfield"> - <p><em><?php p($l->t('png or jpg, max. 20 MB')); ?></em></p> - <?php else: ?> - <?php p($l->t('Picture provided by original account')); ?> - <?php endif; ?> - </div> + <div id="personal-settings-avatar-container" class="personal-settings-container"> + <div> + <form id="avatarform" class="section" method="post" action="<?php p(\OC::$server->getURLGenerator()->linkToRoute('core.avatar.postAvatar')); ?>"> + <h2> + <label><?php p($l->t('Profile picture')); ?></label><span class="icon-federation-menu icon-password"> + <span class="icon-triangle-s"></span> + </span> + </h2> + <div id="displayavatar"> + <div class="avatardiv"></div> + <div class="warning hidden"></div> + <?php if ($_['avatarChangeSupported']): ?> + <label for="uploadavatar" class="inlineblock button icon-upload svg" id="uploadavatarbutton" title="<?php p($l->t('Upload new')); ?>"></label> + <div class="inlineblock button icon-folder svg" id="selectavatar" title="<?php p($l->t('Select from Files')); ?>"></div> + <div class="hidden button icon-delete svg" id="removeavatar" title="<?php p($l->t('Remove image')); ?>"></div> + <input type="file" name="files[]" id="uploadavatar" class="hiddenuploadfield"> + <p><em><?php p($l->t('png or jpg, max. 20 MB')); ?></em></p> + <?php else: ?> + <?php p($l->t('Picture provided by original account')); ?> + <?php endif; ?> + </div> - <div id="cropper" class="hidden"> - <div class="inner-container"> - <div class="inlineblock button" id="abortcropperbutton"><?php p($l->t('Cancel')); ?></div> - <div class="inlineblock button primary" id="sendcropperbutton"><?php p($l->t('Choose as profile picture')); ?></div> + <div id="cropper" class="hidden"> + <div class="inner-container"> + <div class="inlineblock button" id="abortcropperbutton"><?php p($l->t('Cancel')); ?></div> + <div class="inlineblock button primary" id="sendcropperbutton"><?php p($l->t('Choose as profile picture')); ?></div> + </div> </div> - </div> - <span class="icon-checkmark hidden"></span> - <?php if($_['lookupServerUploadEnabled']) { ?> - <input type="hidden" id="avatarscope" value="<?php p($_['avatarScope']) ?>"> - <?php } ?> - </form> + <span class="icon-checkmark hidden"></span> + <?php if($_['lookupServerUploadEnabled']) { ?> + <input type="hidden" id="avatarscope" value="<?php p($_['avatarScope']) ?>"> + <?php } ?> + </form> + </div> </div> <div class="personal-settings-container"> diff --git a/settings/templates/users/part.userlist.php b/settings/templates/users/part.userlist.php index 5ceda71fc00..146e35d11ac 100644 --- a/settings/templates/users/part.userlist.php +++ b/settings/templates/users/part.userlist.php @@ -43,7 +43,6 @@ </td> <?php endif;?> <td class="quota"> - <div class="quota_progress_container"><div class="quota_progress"></div></div> <select class="quota-user" data-inputtitle="<?php p($l->t('Please enter storage quota (ex: "512 MB" or "12 GB")')) ?>"> <option value='default'> <?php p($l->t('Default'));?> @@ -60,12 +59,13 @@ <?php p($l->t('Other'));?> ... </option> </select> + <progress class="quota-user-progress" value="" max="100"></progress> </td> <td class="storageLocation"></td> <td class="userBackend"></td> <td class="lastLogin"></td> <td class="userActions"><span></span> - <div class="popovermenu bubble open menu"> + <div class="popovermenu bubble menu"> <ul class="userActionsMenu"> <li> <a href="#" class="menuitem action-togglestate permanent" data-action="togglestate"></a> diff --git a/tests/Core/Controller/LostControllerTest.php b/tests/Core/Controller/LostControllerTest.php index 0bdc11f8a2f..196b1da352b 100644 --- a/tests/Core/Controller/LostControllerTest.php +++ b/tests/Core/Controller/LostControllerTest.php @@ -324,20 +324,9 @@ class LostControllerTest extends \Test\TestCase { ->with(['test@example.com' => 'ExistingUser']); $message ->expects($this->at(1)) - ->method('setSubject') - ->with(' password reset'); - $message - ->expects($this->at(2)) - ->method('setPlainBody') - ->with('text body'); - $message - ->expects($this->at(3)) - ->method('setHtmlBody') - ->with('HTML body'); - $message - ->expects($this->at(4)) ->method('setFrom') ->with(['lostpassword-noreply@localhost' => null]); + $emailTemplate = $this->createMock(IEMailTemplate::class); $emailTemplate->expects($this->any()) ->method('renderHtml') @@ -345,6 +334,12 @@ class LostControllerTest extends \Test\TestCase { $emailTemplate->expects($this->any()) ->method('renderText') ->willReturn('text body'); + + $message + ->expects($this->at(2)) + ->method('useTemplate') + ->with($emailTemplate); + $this->mailer ->expects($this->at(0)) ->method('createEMailTemplate') @@ -407,20 +402,9 @@ class LostControllerTest extends \Test\TestCase { ->with(['test@example.com' => 'ExistingUser']); $message ->expects($this->at(1)) - ->method('setSubject') - ->with(' password reset'); - $message - ->expects($this->at(2)) - ->method('setPlainBody') - ->with('text body'); - $message - ->expects($this->at(3)) - ->method('setHtmlBody') - ->with('HTML body'); - $message - ->expects($this->at(4)) ->method('setFrom') ->with(['lostpassword-noreply@localhost' => null]); + $emailTemplate = $this->createMock(IEMailTemplate::class); $emailTemplate->expects($this->any()) ->method('renderHtml') @@ -428,6 +412,12 @@ class LostControllerTest extends \Test\TestCase { $emailTemplate->expects($this->any()) ->method('renderText') ->willReturn('text body'); + + $message + ->expects($this->at(2)) + ->method('useTemplate') + ->with($emailTemplate); + $this->mailer ->expects($this->at(0)) ->method('createEMailTemplate') @@ -484,20 +474,9 @@ class LostControllerTest extends \Test\TestCase { ->with(['test@example.com' => 'ExistingUser']); $message ->expects($this->at(1)) - ->method('setSubject') - ->with(' password reset'); - $message - ->expects($this->at(2)) - ->method('setPlainBody') - ->with('text body'); - $message - ->expects($this->at(3)) - ->method('setHtmlBody') - ->with('HTML body'); - $message - ->expects($this->at(4)) ->method('setFrom') ->with(['lostpassword-noreply@localhost' => null]); + $emailTemplate = $this->createMock(IEMailTemplate::class); $emailTemplate->expects($this->any()) ->method('renderHtml') @@ -505,6 +484,12 @@ class LostControllerTest extends \Test\TestCase { $emailTemplate->expects($this->any()) ->method('renderText') ->willReturn('text body'); + + $message + ->expects($this->at(2)) + ->method('useTemplate') + ->with($emailTemplate); + $this->mailer ->expects($this->at(0)) ->method('createEMailTemplate') diff --git a/tests/Settings/Controller/AppSettingsControllerTest.php b/tests/Settings/Controller/AppSettingsControllerTest.php index 9633c771596..e264d0dfbfe 100644 --- a/tests/Settings/Controller/AppSettingsControllerTest.php +++ b/tests/Settings/Controller/AppSettingsControllerTest.php @@ -102,6 +102,12 @@ class AppSettingsControllerTest extends TestCase { 'displayName' => 'Your apps', ], [ + 'id' => 4, + 'ident' => 'updates', + 'displayName' => 'Updates', + 'counter' => 0, + ], + [ 'id' => 0, 'ident' => 'enabled', 'displayName' => 'Enabled apps', diff --git a/tests/Settings/Controller/CheckSetupControllerTest.php b/tests/Settings/Controller/CheckSetupControllerTest.php index d0093cc8a9a..74eee3fea41 100644 --- a/tests/Settings/Controller/CheckSetupControllerTest.php +++ b/tests/Settings/Controller/CheckSetupControllerTest.php @@ -467,7 +467,7 @@ class CheckSetupControllerTest extends TestCase { $client->expects($this->at(0)) ->method('get') - ->with('https://www.owncloud.org/', []) + ->with('https://nextcloud.com/', []) ->will($this->throwException($exception)); $this->clientService->expects($this->once()) @@ -501,7 +501,7 @@ class CheckSetupControllerTest extends TestCase { $client->expects($this->at(0)) ->method('get') - ->with('https://www.owncloud.org/', []) + ->with('https://nextcloud.com/', []) ->will($this->throwException($exception)); $this->clientService->expects($this->once()) diff --git a/tests/Settings/Mailer/NewUserMailHelperTest.php b/tests/Settings/Mailer/NewUserMailHelperTest.php index 1af1bed808c..9fd90561127 100644 --- a/tests/Settings/Mailer/NewUserMailHelperTest.php +++ b/tests/Settings/Mailer/NewUserMailHelperTest.php @@ -620,26 +620,18 @@ EOF; ->expects($this->at(0)) ->method('setTo') ->with(['recipient@example.com' => 'John Doe']); - $this->defaults - ->expects($this->exactly(2)) - ->method('getName') - ->willReturn('TestCloud'); $message ->expects($this->at(1)) - ->method('setSubject') - ->with('Your TestCloud account was created'); - $message - ->expects($this->at(2)) - ->method('setHtmlBody') - ->with($emailTemplate->renderHtml()); - $message - ->expects($this->at(3)) - ->method('setPlainBody') - ->with($emailTemplate->renderText()); - $message - ->expects($this->at(4)) ->method('setFrom') ->with(['no-reply@nextcloud.com' => 'TestCloud']); + $message + ->expects($this->at(2)) + ->method('useTemplate') + ->with($emailTemplate); + $this->defaults + ->expects($this->exactly(1)) + ->method('getName') + ->willReturn('TestCloud'); $this->mailer ->expects($this->once()) ->method('createMessage') diff --git a/tests/data/app/expected-info.json b/tests/data/app/expected-info.json index 0666b902f2c..8527f18a2c0 100644 --- a/tests/data/app/expected-info.json +++ b/tests/data/app/expected-info.json @@ -81,5 +81,11 @@ "filters": [], "settings": [], "providers": [] + }, + "settings": { + "admin": [], + "admin-section": [], + "personal": [], + "personal-section": [] } } diff --git a/tests/lib/Collaboration/Collaborators/GroupPluginTest.php b/tests/lib/Collaboration/Collaborators/GroupPluginTest.php new file mode 100644 index 00000000000..9849bdb874a --- /dev/null +++ b/tests/lib/Collaboration/Collaborators/GroupPluginTest.php @@ -0,0 +1,491 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Collaboration\Collaborators; + + +use OC\Collaboration\Collaborators\GroupPlugin; +use OC\Collaboration\Collaborators\SearchResult; +use OCP\Collaboration\Collaborators\ISearchResult; +use OCP\IConfig; +use OCP\IGroup; +use OCP\IGroupManager; +use OCP\IUser; +use OCP\IUserSession; +use OCP\Share; +use Test\TestCase; + +class GroupPluginTest extends TestCase { + /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ + protected $config; + + /** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $groupManager; + + /** @var IUserSession|\PHPUnit_Framework_MockObject_MockObject */ + protected $session; + + /** @var ISearchResult */ + protected $searchResult; + + /** @var GroupPlugin */ + protected $plugin; + + /** @var int */ + protected $limit = 2; + + /** @var int */ + protected $offset = 0; + + /** @var IUser|\PHPUnit_Framework_MockObject_MockObject */ + protected $user; + + public function setUp() { + parent::setUp(); + + $this->config = $this->createMock(IConfig::class); + + $this->groupManager = $this->createMock(IGroupManager::class); + + $this->session = $this->createMock(IUserSession::class); + + $this->searchResult = new SearchResult(); + + $this->user = $this->getUserMock('admin', 'Administrator'); + } + + public function instantiatePlugin() { + // cannot be done within setUp, because dependent mocks needs to be set + // up with configuration etc. first + $this->plugin = new GroupPlugin( + $this->config, + $this->groupManager, + $this->session + ); + } + + public function getUserMock($uid, $displayName) { + $user = $this->createMock(IUser::class); + + $user->expects($this->any()) + ->method('getUID') + ->willReturn($uid); + + $user->expects($this->any()) + ->method('getDisplayName') + ->willReturn($displayName); + + return $user; + } + + /** + * @param string $gid + * @param null $displayName + * @return IGroup|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getGroupMock($gid, $displayName = null) { + $group = $this->createMock(IGroup::class); + + $group->expects($this->any()) + ->method('getGID') + ->willReturn($gid); + + if (is_null($displayName)) { + // note: this is how the Group class behaves + $displayName = $gid; + } + + $group->expects($this->any()) + ->method('getDisplayName') + ->willReturn($displayName); + + return $group; + } + + public function dataGetGroups() { + return [ + ['test', false, true, [], [], [], [], true, false], + ['test', false, false, [], [], [], [], true, false], + // group without display name + [ + 'test', false, true, + [$this->getGroupMock('test1')], + [], + [], + [['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], + true, + false, + ], + // group with display name, search by id + [ + 'test', false, true, + [$this->getGroupMock('test1', 'Test One')], + [], + [], + [['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], + true, + false, + ], + // group with display name, search by display name + [ + 'one', false, true, + [$this->getGroupMock('test1', 'Test One')], + [], + [], + [['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], + true, + false, + ], + // group with display name, search by display name, exact expected + [ + 'Test One', false, true, + [$this->getGroupMock('test1', 'Test One')], + [], + [['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], + [], + true, + false, + ], + [ + 'test', false, false, + [$this->getGroupMock('test1')], + [], + [], + [], + true, + false, + ], + [ + 'test', false, true, + [ + $this->getGroupMock('test'), + $this->getGroupMock('test1'), + ], + [], + [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], + [['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], + false, + false, + ], + [ + 'test', false, false, + [ + $this->getGroupMock('test'), + $this->getGroupMock('test1'), + ], + [], + [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], + [], + true, + false, + ], + [ + 'test', false, true, + [ + $this->getGroupMock('test0'), + $this->getGroupMock('test1'), + ], + [], + [], + [ + ['label' => 'test0', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test0']], + ['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']], + ], + false, + null, + ], + [ + 'test', false, false, + [ + $this->getGroupMock('test0'), + $this->getGroupMock('test1'), + ], + [], + [], + [], + true, + null, + ], + [ + 'test', false, true, + [ + $this->getGroupMock('test0'), + $this->getGroupMock('test1'), + ], + [], + [ + ['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']], + ], + [ + ['label' => 'test0', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test0']], + ['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']], + ], + false, + $this->getGroupMock('test'), + ], + [ + 'test', false, false, + [ + $this->getGroupMock('test0'), + $this->getGroupMock('test1'), + ], + [], + [ + ['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']], + ], + [], + true, + $this->getGroupMock('test'), + ], + ['test', true, true, [], [], [], [], true, false], + ['test', true, false, [], [], [], [], true, false], + [ + 'test', true, true, + [ + $this->getGroupMock('test1'), + $this->getGroupMock('test2'), + ], + [$this->getGroupMock('test1')], + [], + [['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], + false, + false, + ], + [ + 'test', true, false, + [ + $this->getGroupMock('test1'), + $this->getGroupMock('test2'), + ], + [$this->getGroupMock('test1')], + [], + [], + true, + false, + ], + [ + 'test', true, true, + [ + $this->getGroupMock('test'), + $this->getGroupMock('test1'), + ], + [$this->getGroupMock('test')], + [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], + [], + false, + false, + ], + [ + 'test', true, false, + [ + $this->getGroupMock('test'), + $this->getGroupMock('test1'), + ], + [$this->getGroupMock('test')], + [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], + [], + true, + false, + ], + [ + 'test', true, true, + [ + $this->getGroupMock('test'), + $this->getGroupMock('test1'), + ], + [$this->getGroupMock('test1')], + [], + [['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], + false, + false, + ], + [ + 'test', true, false, + [ + $this->getGroupMock('test'), + $this->getGroupMock('test1'), + ], + [$this->getGroupMock('test1')], + [], + [], + true, + false, + ], + [ + 'test', true, true, + [ + $this->getGroupMock('test'), + $this->getGroupMock('test1'), + ], + [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], + [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], + [['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']]], + false, + false, + ], + [ + 'test', true, false, + [ + $this->getGroupMock('test'), + $this->getGroupMock('test1'), + ], + [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], + [['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']]], + [], + true, + false, + ], + [ + 'test', true, true, + [ + $this->getGroupMock('test0'), + $this->getGroupMock('test1'), + ], + [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], + [], + [ + ['label' => 'test0', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test0']], + ['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']], + ], + false, + null, + ], + [ + 'test', true, false, + [ + $this->getGroupMock('test0'), + $this->getGroupMock('test1'), + ], + [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], + [], + [], + true, + null, + ], + [ + 'test', true, true, + [ + $this->getGroupMock('test0'), + $this->getGroupMock('test1'), + ], + [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], + [ + ['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']], + ], + [ + ['label' => 'test0', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test0']], + ['label' => 'test1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test1']], + ], + false, + $this->getGroupMock('test'), + ], + [ + 'test', true, false, + [ + $this->getGroupMock('test0'), + $this->getGroupMock('test1'), + ], + [$this->getGroupMock('test'), $this->getGroupMock('test0'), $this->getGroupMock('test1')], + [ + ['label' => 'test', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'test']], + ], + [], + true, + $this->getGroupMock('test'), + ], + ]; + } + + /** + * @dataProvider dataGetGroups + * + * @param string $searchTerm + * @param bool $shareWithGroupOnly + * @param bool $shareeEnumeration + * @param array $groupResponse + * @param array $userGroupsResponse + * @param array $exactExpected + * @param array $expected + * @param bool $reachedEnd + * @param bool|IGroup $singleGroup + */ + public function testSearch( + $searchTerm, + $shareWithGroupOnly, + $shareeEnumeration, + array $groupResponse, + array $userGroupsResponse, + array $exactExpected, + array $expected, + $reachedEnd, + $singleGroup + ) { + $this->config->expects($this->any()) + ->method('getAppValue') + ->willReturnCallback( + function($appName, $key, $default) + use ($shareWithGroupOnly, $shareeEnumeration) + { + if ($appName === 'core' && $key === 'shareapi_only_share_with_group_members') { + return $shareWithGroupOnly ? 'yes' : 'no'; + } else if ($appName === 'core' && $key === 'shareapi_allow_share_dialog_user_enumeration') { + return $shareeEnumeration ? 'yes' : 'no'; + } + return $default; + } + ); + + $this->instantiatePlugin(); + + $this->groupManager->expects($this->once()) + ->method('search') + ->with($searchTerm, $this->limit, $this->offset) + ->willReturn($groupResponse); + + if ($singleGroup !== false) { + $this->groupManager->expects($this->once()) + ->method('get') + ->with($searchTerm) + ->willReturn($singleGroup); + } + + if ($shareWithGroupOnly) { + $this->session->expects($this->any()) + ->method('getUser') + ->willReturn($this->user); + + $numGetUserGroupsCalls = empty($groupResponse) ? 0 : 1; + $this->groupManager->expects($this->exactly($numGetUserGroupsCalls)) + ->method('getUserGroups') + ->with($this->user) + ->willReturn($userGroupsResponse); + } + + $moreResults = $this->plugin->search($searchTerm, $this->limit, $this->offset, $this->searchResult); + $result = $this->searchResult->asArray(); + + $this->assertEquals($exactExpected, $result['exact']['groups']); + $this->assertEquals($expected, $result['groups']); + $this->assertSame($reachedEnd, $moreResults); + } +} diff --git a/tests/lib/Collaboration/Collaborators/LookupPluginTest.php b/tests/lib/Collaboration/Collaborators/LookupPluginTest.php new file mode 100644 index 00000000000..83d366cf467 --- /dev/null +++ b/tests/lib/Collaboration/Collaborators/LookupPluginTest.php @@ -0,0 +1,180 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Collaboration\Collaborators; + + +use OC\Collaboration\Collaborators\LookupPlugin; +use OCP\Collaboration\Collaborators\ISearchResult; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\Http\Client\IClient; +use OCP\Http\Client\IClientService; +use OCP\Http\Client\IResponse; +use OCP\IConfig; +use OCP\Share; +use Test\TestCase; + +class LookupPluginTest extends TestCase { + + /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ + protected $config; + /** @var IClientService|\PHPUnit_Framework_MockObject_MockObject */ + protected $clientService; + /** @var LookupPlugin */ + protected $plugin; + + public function setUp() { + parent::setUp(); + + $this->config = $this->createMock(IConfig::class); + $this->clientService = $this->createMock(IClientService::class); + + $this->plugin = new LookupPlugin($this->config, $this->clientService); + } + + /** + * @dataProvider searchDataProvider + * @param array $searchParams + */ + public function testSearch(array $searchParams) { + $type = new SearchResultType('lookup'); + + /** @var ISearchResult|\PHPUnit_Framework_MockObject_MockObject $searchResult */ + $searchResult = $this->createMock(ISearchResult::class); + $searchResult->expects($this->once()) + ->method('addResultSet') + ->with($type, $searchParams['expectedResult'], []); + + $this->config->expects($this->once()) + ->method('getAppValue') + ->with('files_sharing', 'lookupServerEnabled', 'no') + ->willReturn('yes'); + $this->config->expects($this->once()) + ->method('getSystemValue') + ->with('lookup_server', 'https://lookup.nextcloud.com') + ->willReturn($searchParams['server']); + + $response = $this->createMock(IResponse::class); + $response->expects($this->once()) + ->method('getBody') + ->willReturn(json_encode($searchParams['resultBody'])); + + $client = $this->createMock(IClient::class); + $client->expects($this->once()) + ->method('get') + ->willReturnCallback(function($url) use ($searchParams, $response) { + $this->assertSame(strpos($url, $searchParams['server'] . '/users?search='), 0); + $this->assertNotFalse(strpos($url, urlencode($searchParams['search']))); + return $response; + }); + + $this->clientService->expects($this->once()) + ->method('newClient') + ->willReturn($client); + + $moreResults = $this->plugin->search( + $searchParams['search'], + $searchParams['limit'], + $searchParams['offset'], + $searchResult + ); + + + + $this->assertFalse($moreResults); + } + + public function testSearchLookupServerDisabled() { + $this->config->expects($this->once()) + ->method('getAppValue') + ->with('files_sharing', 'lookupServerEnabled', 'no') + ->willReturn('no'); + + /** @var ISearchResult|\PHPUnit_Framework_MockObject_MockObject $searchResult */ + $searchResult = $this->createMock(ISearchResult::class); + $searchResult->expects($this->never()) + ->method('addResultSet'); + $searchResult->expects($this->never()) + ->method('markExactIdMatch'); + + $this->assertFalse($this->plugin->search('irr', 10, 0, $searchResult)); + } + + public function searchDataProvider() { + $fedIDs = [ + 'foo@enceladus.moon', + 'foobar@enceladus.moon', + 'foongus@enceladus.moon', + ]; + + return [ + // #0, standard search with results + [[ + 'search' => 'foo', + 'limit' => 10, + 'offset' => 0, + 'server' => 'https://lookup.example.io', + 'resultBody' => [ + [ 'federationId' => $fedIDs[0] ], + [ 'federationId' => $fedIDs[1] ], + [ 'federationId' => $fedIDs[2] ], + ], + 'expectedResult' => [ + [ + 'label' => $fedIDs[0], + 'value' => [ + 'shareType' => Share::SHARE_TYPE_REMOTE, + 'shareWith' => $fedIDs[0] + ], + 'extra' => ['federationId' => $fedIDs[0]], + ], + [ + 'label' => $fedIDs[1], + 'value' => [ + 'shareType' => Share::SHARE_TYPE_REMOTE, + 'shareWith' => $fedIDs[1] + ], + 'extra' => ['federationId' => $fedIDs[1]], + ], + [ + 'label' => $fedIDs[2], + 'value' => [ + 'shareType' => Share::SHARE_TYPE_REMOTE, + 'shareWith' => $fedIDs[2] + ], + 'extra' => ['federationId' => $fedIDs[2]], + ], + ] + ]], + // #1, search without results + [[ + 'search' => 'foo', + 'limit' => 10, + 'offset' => 0, + 'server' => 'https://lookup.example.io', + 'resultBody' => [], + 'expectedResult' => [], + ]], + ]; + } +} diff --git a/tests/lib/Collaboration/Collaborators/MailPluginTest.php b/tests/lib/Collaboration/Collaborators/MailPluginTest.php new file mode 100644 index 00000000000..9c9d9cff909 --- /dev/null +++ b/tests/lib/Collaboration/Collaborators/MailPluginTest.php @@ -0,0 +1,336 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Collaboration\Collaborators; + + +use OC\Collaboration\Collaborators\MailPlugin; +use OC\Collaboration\Collaborators\SearchResult; +use OC\Federation\CloudIdManager; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\Contacts\IManager; +use OCP\Federation\ICloudIdManager; +use OCP\IConfig; +use OCP\Share; +use Test\TestCase; + +class MailPluginTest extends TestCase { + /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ + protected $config; + + /** @var IManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $contactsManager; + + /** @var ICloudIdManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $cloudIdManager; + + /** @var MailPlugin */ + protected $plugin; + + /** @var SearchResult */ + protected $searchResult; + + public function setUp() { + parent::setUp(); + + $this->config = $this->createMock(IConfig::class); + $this->contactsManager = $this->createMock(IManager::class); + $this->cloudIdManager = new CloudIdManager(); + $this->searchResult = new SearchResult(); + } + + public function instantiatePlugin() { + $this->plugin = new MailPlugin($this->contactsManager, $this->cloudIdManager, $this->config); + } + + /** + * @dataProvider dataGetEmail + * + * @param string $searchTerm + * @param array $contacts + * @param bool $shareeEnumeration + * @param array $expected + * @param bool $reachedEnd + */ + public function testSearch($searchTerm, $contacts, $shareeEnumeration, $expected, $exactIdMatch, $reachedEnd) { + $this->config->expects($this->any()) + ->method('getAppValue') + ->willReturnCallback( + function($appName, $key, $default) + use ($shareeEnumeration) + { + if ($appName === 'core' && $key === 'shareapi_allow_share_dialog_user_enumeration') { + return $shareeEnumeration ? 'yes' : 'no'; + } + return $default; + } + ); + + $this->instantiatePlugin(); + + $this->contactsManager->expects($this->any()) + ->method('search') + ->with($searchTerm, ['EMAIL', 'FN']) + ->willReturn($contacts); + + $moreResults = $this->plugin->search($searchTerm, 0, 0, $this->searchResult); + $result = $this->searchResult->asArray(); + + $this->assertSame($exactIdMatch, $this->searchResult->hasExactIdMatch(new SearchResultType('emails'))); + $this->assertEquals($expected, $result); + $this->assertSame($reachedEnd, $moreResults); + } + + public function dataGetEmail() { + return [ + ['test', [], true, ['emails' => [], 'exact' => ['emails' => []]], false, true], + ['test', [], false, ['emails' => [], 'exact' => ['emails' => []]], false, true], + [ + 'test@remote.com', + [], + true, + ['emails' => [], 'exact' => ['emails' => [['label' => 'test@remote.com', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'test@remote.com']]]]], + false, + true, + ], + [ // no valid email address + 'test@remote', + [], + true, + ['emails' => [], 'exact' => ['emails' => []]], + false, + true, + ], + [ + 'test@remote.com', + [], + false, + ['emails' => [], 'exact' => ['emails' => [['label' => 'test@remote.com', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'test@remote.com']]]]], + false, + true, + ], + [ + 'test', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'EMAIL' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'EMAIL' => [ + 'username@localhost', + ], + ], + ], + true, + ['emails' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'username@localhost']]], 'exact' => ['emails' => []]], + false, + true, + ], + [ + 'test', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'EMAIL' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'EMAIL' => [ + 'username@localhost', + ], + ], + ], + false, + ['emails' => [], 'exact' => ['emails' => []]], + false, + true, + ], + [ + 'test@remote.com', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'EMAIL' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'EMAIL' => [ + 'username@localhost', + ], + ], + ], + true, + ['emails' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'username@localhost']]], 'exact' => ['emails' => [['label' => 'test@remote.com', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'test@remote.com']]]]], + false, + true, + ], + [ + 'test@remote.com', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'EMAIL' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'EMAIL' => [ + 'username@localhost', + ], + ], + ], + false, + ['emails' => [], 'exact' => ['emails' => [['label' => 'test@remote.com', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'test@remote.com']]]]], + false, + true, + ], + [ + 'username@localhost', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'EMAIL' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'EMAIL' => [ + 'username@localhost', + ], + ], + ], + true, + ['emails' => [], 'exact' => ['emails' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'username@localhost']]]]], + true, + true, + ], + [ + 'username@localhost', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'EMAIL' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'EMAIL' => [ + 'username@localhost', + ], + ], + ], + false, + ['emails' => [], 'exact' => ['emails' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'username@localhost']]]]], + true, + true, + ], + // contact with space + [ + 'user name@localhost', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'EMAIL' => [ + ], + ], + [ + 'FN' => 'User Name @ Localhost', + 'EMAIL' => [ + 'user name@localhost', + ], + ], + ], + false, + ['emails' => [], 'exact' => ['emails' => [['label' => 'User Name @ Localhost (user name@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_EMAIL, 'shareWith' => 'user name@localhost']]]]], + true, + true, + ], + // remote with space, no contact + [ + 'user space@remote.com', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'EMAIL' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'EMAIL' => [ + 'username@localhost', + ], + ], + ], + false, + ['emails' => [], 'exact' => ['emails' => []]], + false, + true, + ], + // Local user found by email + [ + 'test@example.com', + [ + [ + 'FN' => 'User', + 'EMAIL' => ['test@example.com'], + 'CLOUD' => ['test@localhost'], + 'isLocalSystemBook' => true, + ] + ], + false, + ['users' => [], 'exact' => ['users' => [['label' => 'User (test@example.com)','value' => ['shareType' => 0, 'shareWith' => 'test'],]]]], + true, + false, + ] + ]; + } +} diff --git a/tests/lib/Collaboration/Collaborators/RemotePluginTest.php b/tests/lib/Collaboration/Collaborators/RemotePluginTest.php new file mode 100644 index 00000000000..5c4b3af5e70 --- /dev/null +++ b/tests/lib/Collaboration/Collaborators/RemotePluginTest.php @@ -0,0 +1,388 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Collaboration\Collaborators; + + +use OC\Collaboration\Collaborators\RemotePlugin; +use OC\Collaboration\Collaborators\SearchResult; +use OC\Federation\CloudIdManager; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\Contacts\IManager; +use OCP\Federation\ICloudIdManager; +use OCP\IConfig; +use OCP\Share; +use Test\TestCase; + +class RemotePluginTest extends TestCase { + /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ + protected $config; + + /** @var IManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $contactsManager; + + /** @var ICloudIdManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $cloudIdManager; + + /** @var RemotePlugin */ + protected $plugin; + + /** @var SearchResult */ + protected $searchResult; + + public function setUp() { + parent::setUp(); + + $this->config = $this->createMock(IConfig::class); + $this->contactsManager = $this->createMock(IManager::class); + $this->cloudIdManager = new CloudIdManager(); + $this->searchResult = new SearchResult(); + } + + public function instantiatePlugin() { + $this->plugin = new RemotePlugin($this->contactsManager, $this->cloudIdManager, $this->config); + } + + /** + * @dataProvider dataGetRemote + * + * @param string $searchTerm + * @param array $contacts + * @param bool $shareeEnumeration + * @param array $expected + * @param bool $exactIdMatch + * @param bool $reachedEnd + */ + public function testSearch($searchTerm, array $contacts, $shareeEnumeration, array $expected, $exactIdMatch, $reachedEnd) { + $this->config->expects($this->any()) + ->method('getAppValue') + ->willReturnCallback( + function($appName, $key, $default) + use ($shareeEnumeration) + { + if ($appName === 'core' && $key === 'shareapi_allow_share_dialog_user_enumeration') { + return $shareeEnumeration ? 'yes' : 'no'; + } + return $default; + } + ); + + $this->instantiatePlugin(); + + $this->contactsManager->expects($this->any()) + ->method('search') + ->with($searchTerm, ['CLOUD', 'FN']) + ->willReturn($contacts); + + $moreResults = $this->plugin->search($searchTerm, 0, 0, $this->searchResult); + $result = $this->searchResult->asArray(); + + $this->assertSame($exactIdMatch, $this->searchResult->hasExactIdMatch(new SearchResultType('remotes'))); + $this->assertEquals($expected, $result); + $this->assertSame($reachedEnd, $moreResults); + } + + /** + * @dataProvider dataTestSplitUserRemote + * + * @param string $remote + * @param string $expectedUser + * @param string $expectedUrl + */ + public function testSplitUserRemote($remote, $expectedUser, $expectedUrl) { + $this->instantiatePlugin(); + + list($remoteUser, $remoteUrl) = $this->plugin->splitUserRemote($remote); + $this->assertSame($expectedUser, $remoteUser); + $this->assertSame($expectedUrl, $remoteUrl); + } + + /** + * @dataProvider dataTestSplitUserRemoteError + * + * @param string $id + * @expectedException \Exception + */ + public function testSplitUserRemoteError($id) { + $this->instantiatePlugin(); + $this->plugin->splitUserRemote($id); + } + + public function dataGetRemote() { + return [ + ['test', [], true, ['remotes' => [], 'exact' => ['remotes' => []]], false, true], + ['test', [], false, ['remotes' => [], 'exact' => ['remotes' => []]], false, true], + [ + 'test@remote', + [], + true, + ['remotes' => [], 'exact' => ['remotes' => [['label' => 'test@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'test@remote']]]]], + false, + true, + ], + [ + 'test@remote', + [], + false, + ['remotes' => [], 'exact' => ['remotes' => [['label' => 'test@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'test@remote']]]]], + false, + true, + ], + [ + 'test', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'CLOUD' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'CLOUD' => [ + 'username@localhost', + ], + ], + ], + true, + ['remotes' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'username@localhost', 'server' => 'localhost']]], 'exact' => ['remotes' => []]], + false, + true, + ], + [ + 'test', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'CLOUD' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'CLOUD' => [ + 'username@localhost', + ], + ], + ], + false, + ['remotes' => [], 'exact' => ['remotes' => []]], + false, + true, + ], + [ + 'test@remote', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'CLOUD' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'CLOUD' => [ + 'username@localhost', + ], + ], + ], + true, + ['remotes' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'username@localhost', 'server' => 'localhost']]], 'exact' => ['remotes' => [['label' => 'test@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'test@remote']]]]], + false, + true, + ], + [ + 'test@remote', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'CLOUD' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'CLOUD' => [ + 'username@localhost', + ], + ], + ], + false, + ['remotes' => [], 'exact' => ['remotes' => [['label' => 'test@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'test@remote']]]]], + false, + true, + ], + [ + 'username@localhost', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'CLOUD' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'CLOUD' => [ + 'username@localhost', + ], + ], + ], + true, + ['remotes' => [], 'exact' => ['remotes' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'username@localhost', 'server' => 'localhost']]]]], + true, + true, + ], + [ + 'username@localhost', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'CLOUD' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'CLOUD' => [ + 'username@localhost', + ], + ], + ], + false, + ['remotes' => [], 'exact' => ['remotes' => [['label' => 'User @ Localhost (username@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'username@localhost', 'server' => 'localhost']]]]], + true, + true, + ], + // contact with space + [ + 'user name@localhost', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'CLOUD' => [ + ], + ], + [ + 'FN' => 'User Name @ Localhost', + 'CLOUD' => [ + 'user name@localhost', + ], + ], + ], + false, + ['remotes' => [], 'exact' => ['remotes' => [['label' => 'User Name @ Localhost (user name@localhost)', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'user name@localhost', 'server' => 'localhost']]]]], + true, + true, + ], + // remote with space, no contact + [ + 'user space@remote', + [ + [ + 'FN' => 'User3 @ Localhost', + ], + [ + 'FN' => 'User2 @ Localhost', + 'CLOUD' => [ + ], + ], + [ + 'FN' => 'User @ Localhost', + 'CLOUD' => [ + 'username@localhost', + ], + ], + ], + false, + ['remotes' => [], 'exact' => ['remotes' => [['label' => 'user space@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'user space@remote']]]]], + false, + true, + ], + ]; + } + + public function dataTestSplitUserRemote() { + $userPrefix = ['user@name', 'username']; + $protocols = ['', 'http://', 'https://']; + $remotes = [ + 'localhost', + 'local.host', + 'dev.local.host', + 'dev.local.host/path', + 'dev.local.host/at@inpath', + '127.0.0.1', + '::1', + '::192.0.2.128', + '::192.0.2.128/at@inpath', + ]; + + $testCases = []; + foreach ($userPrefix as $user) { + foreach ($remotes as $remote) { + foreach ($protocols as $protocol) { + $baseUrl = $user . '@' . $protocol . $remote; + + $testCases[] = [$baseUrl, $user, $protocol . $remote]; + $testCases[] = [$baseUrl . '/', $user, $protocol . $remote]; + $testCases[] = [$baseUrl . '/index.php', $user, $protocol . $remote]; + $testCases[] = [$baseUrl . '/index.php/s/token', $user, $protocol . $remote]; + } + } + } + return $testCases; + } + + public function dataTestSplitUserRemoteError() { + return array( + // Invalid path + array('user@'), + + // Invalid user + array('@server'), + array('us/er@server'), + array('us:er@server'), + + // Invalid splitting + array('user'), + array(''), + array('us/erserver'), + array('us:erserver'), + ); + } +} diff --git a/tests/lib/Collaboration/Collaborators/SearchTest.php b/tests/lib/Collaboration/Collaborators/SearchTest.php new file mode 100644 index 00000000000..80e6c7f0beb --- /dev/null +++ b/tests/lib/Collaboration/Collaborators/SearchTest.php @@ -0,0 +1,219 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Collaboration\Collaborators; + + +use OC\Collaboration\Collaborators\Search; +use OC\Collaboration\Collaborators\SearchResult; +use OCP\Collaboration\Collaborators\ISearch; +use OCP\Collaboration\Collaborators\ISearchPlugin; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\IContainer; +use OCP\Share; +use Test\TestCase; + +class SearchTest extends TestCase { + /** @var IContainer|\PHPUnit_Framework_MockObject_MockObject */ + protected $container; + /** @var ISearch */ + protected $search; + + public function setUp() { + parent::setUp(); + + $this->container = $this->createMock(IContainer::class); + + $this->search = new Search($this->container); + } + + /** + * @dataProvider dataSearchSharees + * + * @param string $searchTerm + * @param array $shareTypes + * @param int $page + * @param int $perPage + * @param array $mockedUserResult + * @param array $mockedGroupsResult + * @param array $mockedRemotesResult + * @param array $expected + * @param bool $expectedMoreResults + */ + public function testSearch( + $searchTerm, + array $shareTypes, + $page, + $perPage, + array $mockedUserResult, + array $mockedGroupsResult, + array $mockedRemotesResult, + array $expected, + $expectedMoreResults + ) { + $searchResult = new SearchResult(); + + $userPlugin = $this->createMock(ISearchPlugin::class); + $userPlugin->expects($this->any()) + ->method('search') + ->willReturnCallback(function() use ($searchResult, $mockedUserResult, $expectedMoreResults) { + $type = new SearchResultType('users'); + $searchResult->addResultSet($type, $mockedUserResult); + return $expectedMoreResults; + }); + + $groupPlugin = $this->createMock(ISearchPlugin::class); + $groupPlugin->expects($this->any()) + ->method('search') + ->willReturnCallback(function() use ($searchResult, $mockedGroupsResult, $expectedMoreResults) { + $type = new SearchResultType('groups'); + $searchResult->addResultSet($type, $mockedGroupsResult); + return $expectedMoreResults; + }); + + $remotePlugin = $this->createMock(ISearchPlugin::class); + $remotePlugin->expects($this->any()) + ->method('search') + ->willReturnCallback(function() use ($searchResult, $mockedRemotesResult, $expectedMoreResults) { + if($mockedRemotesResult !== null) { + $type = new SearchResultType('remotes'); + $searchResult->addResultSet($type, $mockedRemotesResult['results'], $mockedRemotesResult['exact']); + if($mockedRemotesResult['exactIdMatch'] === true) { + $searchResult->markExactIdMatch($type); + } + } + return $expectedMoreResults; + }); + + $this->container->expects($this->any()) + ->method('resolve') + ->willReturnCallback(function($class) use ($searchResult, $userPlugin, $groupPlugin, $remotePlugin) { + if($class === SearchResult::class) { + return $searchResult; + } elseif ($class === $userPlugin) { + return $userPlugin; + } elseif ($class === $groupPlugin) { + return $groupPlugin; + } elseif ($class === $remotePlugin) { + return $remotePlugin; + } + return null; + }); + + $this->search->registerPlugin(['shareType' => 'SHARE_TYPE_USER', 'class' => $userPlugin]); + $this->search->registerPlugin(['shareType' => 'SHARE_TYPE_GROUP', 'class' => $groupPlugin]); + $this->search->registerPlugin(['shareType' => 'SHARE_TYPE_REMOTE', 'class' => $remotePlugin]); + + list($results, $moreResults) = $this->search->search($searchTerm, $shareTypes, false, $perPage, $perPage * ($page - 1)); + + $this->assertEquals($expected, $results); + $this->assertSame($expectedMoreResults, $moreResults); + } + + public function dataSearchSharees() { + return [ + [ + 'test', [Share::SHARE_TYPE_USER, Share::SHARE_TYPE_GROUP, Share::SHARE_TYPE_REMOTE], 1, 2, [], [], ['results' => [], 'exact' => [], 'exactIdMatch' => false], + [ + 'exact' => ['users' => [], 'groups' => [], 'remotes' => []], + 'users' => [], + 'groups' => [], + 'remotes' => [], + ], false + ], + [ + 'test', [Share::SHARE_TYPE_USER, Share::SHARE_TYPE_GROUP, Share::SHARE_TYPE_REMOTE], 1, 2, [], [], ['results' => [], 'exact' => [], 'exactIdMatch' => false], + [ + 'exact' => ['users' => [], 'groups' => [], 'remotes' => []], + 'users' => [], + 'groups' => [], + 'remotes' => [], + ], false + ], + [ + 'test', [Share::SHARE_TYPE_USER, Share::SHARE_TYPE_GROUP, Share::SHARE_TYPE_REMOTE], 1, 2, [ + ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ], [ + ['label' => 'testgroup1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'testgroup1']], + ], [ + 'results' => [['label' => 'testz@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'testz@remote']]], 'exact' => [], 'exactIdMatch' => false, + ], + [ + 'exact' => ['users' => [], 'groups' => [], 'remotes' => []], + 'users' => [ + ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ], + 'groups' => [ + ['label' => 'testgroup1', 'value' => ['shareType' => Share::SHARE_TYPE_GROUP, 'shareWith' => 'testgroup1']], + ], + 'remotes' => [ + ['label' => 'testz@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'testz@remote']], + ], + ], true, + ], + // No groups requested + [ + 'test', [Share::SHARE_TYPE_USER, Share::SHARE_TYPE_REMOTE], 1, 2, [ + ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ], [], [ + 'results' => [['label' => 'testz@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'testz@remote']]], 'exact' => [], 'exactIdMatch' => false + ], + [ + 'exact' => ['users' => [], 'remotes' => []], + 'users' => [ + ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ], + 'remotes' => [ + ['label' => 'testz@remote', 'value' => ['shareType' => Share::SHARE_TYPE_REMOTE, 'shareWith' => 'testz@remote']], + ], + ], false, + ], + // Share type restricted to user - Only one user + [ + 'test', [Share::SHARE_TYPE_USER], 1, 2, [ + ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ], [], [], + [ + 'exact' => ['users' => []], + 'users' => [ + ['label' => 'test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ], + ], false, + ], + // Share type restricted to user - Multipage result + [ + 'test', [Share::SHARE_TYPE_USER], 1, 2, [ + ['label' => 'test 1', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ['label' => 'test 2', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], + ], [], [], + [ + 'exact' => ['users' => []], + 'users' => [ + ['label' => 'test 1', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ['label' => 'test 2', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], + ], + ], true, + ], + ]; + } +} diff --git a/tests/lib/Collaboration/Collaborators/UserPluginTest.php b/tests/lib/Collaboration/Collaborators/UserPluginTest.php new file mode 100644 index 00000000000..7d6d9c645a0 --- /dev/null +++ b/tests/lib/Collaboration/Collaborators/UserPluginTest.php @@ -0,0 +1,445 @@ +<?php +/** + * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Collaboration\Collaborators; + +use OC\Collaboration\Collaborators\SearchResult; +use OC\Collaboration\Collaborators\UserPlugin; +use OCP\Collaboration\Collaborators\ISearchResult; +use OCP\IConfig; +use OCP\IGroupManager; +use OCP\IUser; +use OCP\IUserManager; +use OCP\IUserSession; +use OCP\Share; +use Test\TestCase; + +class UserPluginTest extends TestCase { + /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ + protected $config; + + /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $userManager; + + /** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $groupManager; + + /** @var IUserSession|\PHPUnit_Framework_MockObject_MockObject */ + protected $session; + + /** @var UserPlugin */ + protected $plugin; + + /** @var ISearchResult */ + protected $searchResult; + + /** @var int */ + protected $limit = 2; + + /** @var int */ + protected $offset = 0; + + /** @var IUser|\PHPUnit_Framework_MockObject_MockObject */ + protected $user; + + public function setUp() { + parent::setUp(); + + $this->config = $this->createMock(IConfig::class); + + $this->userManager = $this->createMock(IUserManager::class); + + $this->groupManager = $this->createMock(IGroupManager::class); + + $this->session = $this->createMock(IUserSession::class); + + $this->searchResult = new SearchResult(); + + $this->user = $this->getUserMock('admin', 'Administrator'); + } + + public function instantiatePlugin() { + // cannot be done within setUp, because dependent mocks needs to be set + // up with configuration etc. first + $this->plugin = new UserPlugin( + $this->config, + $this->userManager, + $this->groupManager, + $this->session + ); + } + + public function getUserMock($uid, $displayName) { + $user = $this->createMock(IUser::class); + + $user->expects($this->any()) + ->method('getUID') + ->willReturn($uid); + + $user->expects($this->any()) + ->method('getDisplayName') + ->willReturn($displayName); + + return $user; + } + + public function dataGetUsers() { + return [ + ['test', false, true, [], [], [], [], true, false], + ['test', false, false, [], [], [], [], true, false], + ['test', true, true, [], [], [], [], true, false], + ['test', true, false, [], [], [], [], true, false], + [ + 'test', false, true, [], [], + [ + ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], + ], [], true, $this->getUserMock('test', 'Test') + ], + [ + 'test', false, false, [], [], + [ + ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], + ], [], true, $this->getUserMock('test', 'Test') + ], + [ + 'test', true, true, [], [], + [], [], true, $this->getUserMock('test', 'Test') + ], + [ + 'test', true, false, [], [], + [], [], true, $this->getUserMock('test', 'Test') + ], + [ + 'test', true, true, ['test-group'], [['test-group', 'test', 2, 0, []]], + [ + ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], + ], [], true, $this->getUserMock('test', 'Test') + ], + [ + 'test', true, false, ['test-group'], [['test-group', 'test', 2, 0, []]], + [ + ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], + ], [], true, $this->getUserMock('test', 'Test') + ], + [ + 'test', + false, + true, + [], + [ + $this->getUserMock('test1', 'Test One'), + ], + [], + [ + ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ], + true, + false, + ], + [ + 'test', + false, + false, + [], + [ + $this->getUserMock('test1', 'Test One'), + ], + [], + [], + true, + false, + ], + [ + 'test', + false, + true, + [], + [ + $this->getUserMock('test1', 'Test One'), + $this->getUserMock('test2', 'Test Two'), + ], + [], + [ + ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], + ], + false, + false, + ], + [ + 'test', + false, + false, + [], + [ + $this->getUserMock('test1', 'Test One'), + $this->getUserMock('test2', 'Test Two'), + ], + [], + [], + true, + false, + ], + [ + 'test', + false, + true, + [], + [ + $this->getUserMock('test0', 'Test'), + $this->getUserMock('test1', 'Test One'), + $this->getUserMock('test2', 'Test Two'), + ], + [ + ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test0']], + ], + [ + ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], + ], + false, + false, + ], + [ + 'test', + false, + false, + [], + [ + $this->getUserMock('test0', 'Test'), + $this->getUserMock('test1', 'Test One'), + $this->getUserMock('test2', 'Test Two'), + ], + [ + ['label' => 'Test', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test0']], + ], + [], + true, + false, + ], + [ + 'test', + true, + true, + ['abc', 'xyz'], + [ + ['abc', 'test', 2, 0, ['test1' => 'Test One']], + ['xyz', 'test', 2, 0, []], + ], + [], + [ + ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ], + true, + false, + ], + [ + 'test', + true, + false, + ['abc', 'xyz'], + [ + ['abc', 'test', 2, 0, ['test1' => 'Test One']], + ['xyz', 'test', 2, 0, []], + ], + [], + [], + true, + false, + ], + [ + 'test', + true, + true, + ['abc', 'xyz'], + [ + ['abc', 'test', 2, 0, [ + 'test1' => 'Test One', + 'test2' => 'Test Two', + ]], + ['xyz', 'test', 2, 0, [ + 'test1' => 'Test One', + 'test2' => 'Test Two', + ]], + ], + [], + [ + ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test1']], + ['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], + ], + false, + false, + ], + [ + 'test', + true, + false, + ['abc', 'xyz'], + [ + ['abc', 'test', 2, 0, [ + 'test1' => 'Test One', + 'test2' => 'Test Two', + ]], + ['xyz', 'test', 2, 0, [ + 'test1' => 'Test One', + 'test2' => 'Test Two', + ]], + ], + [], + [], + true, + false, + ], + [ + 'test', + true, + true, + ['abc', 'xyz'], + [ + ['abc', 'test', 2, 0, [ + 'test' => 'Test One', + ]], + ['xyz', 'test', 2, 0, [ + 'test2' => 'Test Two', + ]], + ], + [ + ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], + ], + [ + ['label' => 'Test Two', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test2']], + ], + false, + false, + ], + [ + 'test', + true, + false, + ['abc', 'xyz'], + [ + ['abc', 'test', 2, 0, [ + 'test' => 'Test One', + ]], + ['xyz', 'test', 2, 0, [ + 'test2' => 'Test Two', + ]], + ], + [ + ['label' => 'Test One', 'value' => ['shareType' => Share::SHARE_TYPE_USER, 'shareWith' => 'test']], + ], + [], + true, + false, + ], + ]; + } + + /** + * @dataProvider dataGetUsers + * + * @param string $searchTerm + * @param bool $shareWithGroupOnly + * @param bool $shareeEnumeration + * @param array $groupResponse + * @param array $userResponse + * @param array $exactExpected + * @param array $expected + * @param bool $reachedEnd + * @param bool|IUser $singleUser + */ + public function testSearch( + $searchTerm, + $shareWithGroupOnly, + $shareeEnumeration, + array $groupResponse, + array $userResponse, + array $exactExpected, + array $expected, + $reachedEnd, + $singleUser + ) { + $this->config->expects($this->any()) + ->method('getAppValue') + ->willReturnCallback( + function($appName, $key, $default) + use ($shareWithGroupOnly, $shareeEnumeration) + { + if ($appName === 'core' && $key === 'shareapi_only_share_with_group_members') { + return $shareWithGroupOnly ? 'yes' : 'no'; + } else if ($appName === 'core' && $key === 'shareapi_allow_share_dialog_user_enumeration') { + return $shareeEnumeration ? 'yes' : 'no'; + } + return $default; + } + ); + + $this->instantiatePlugin(); + + $this->session->expects($this->any()) + ->method('getUser') + ->willReturn($this->user); + + if(!$shareWithGroupOnly) { + $this->userManager->expects($this->once()) + ->method('searchDisplayName') + ->with($searchTerm, $this->limit, $this->offset) + ->willReturn($userResponse); + } else { + if ($singleUser !== false) { + $this->groupManager->expects($this->exactly(2)) + ->method('getUserGroupIds') + ->withConsecutive( + $this->user, + $singleUser + ) + ->willReturn($groupResponse); + } else { + $this->groupManager->expects($this->once()) + ->method('getUserGroupIds') + ->with($this->user) + ->willReturn($groupResponse); + } + + $this->groupManager->expects($this->exactly(sizeof($groupResponse))) + ->method('displayNamesInGroup') + ->with($this->anything(), $searchTerm, $this->limit, $this->offset) + ->willReturnMap($userResponse); + } + + if ($singleUser !== false) { + $this->userManager->expects($this->once()) + ->method('get') + ->with($searchTerm) + ->willReturn($singleUser); + } + + + $moreResults = $this->plugin->search($searchTerm, $this->limit, $this->offset, $this->searchResult); + $result = $this->searchResult->asArray(); + + $this->assertEquals($exactExpected, $result['exact']['users']); + $this->assertEquals($expected, $result['users']); + $this->assertSame($reachedEnd, $moreResults); + } +} diff --git a/tests/lib/DB/OCPostgreSqlPlatformTest.php b/tests/lib/DB/OCPostgreSqlPlatformTest.php new file mode 100644 index 00000000000..56fab621cfc --- /dev/null +++ b/tests/lib/DB/OCPostgreSqlPlatformTest.php @@ -0,0 +1,74 @@ +<?php +/** + * @author Victor Dubiniuk <dubiniuk@owncloud.com> + * + * @copyright Copyright (c) 2017, ownCloud GmbH + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program 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, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace Test\DB; + +use Doctrine\DBAL\Schema\Comparator; +use Doctrine\DBAL\Schema\Schema; +use Doctrine\DBAL\Schema\TableDiff; +use Doctrine\DBAL\Types\Type; +use OC\DB\OCPostgreSqlPlatform; + + /** + * Class OCPostgreSqlPlatformTest + * + * @group DB + * + * @package Test\DB + */ + +class OCPostgreSqlPlatformTest extends \Test\TestCase { + + public function testAlterBigint(){ + $platform = new OCPostgreSqlPlatform(); + $sourceSchema = new Schema(); + $targetSchema = new Schema(); + + $this->createTableAndColumn($sourceSchema, Type::INTEGER); + $this->createTableAndColumn($targetSchema, Type::BIGINT); + + $comparator = new Comparator(); + $diff = $comparator->compare($sourceSchema, $targetSchema); + $sqlStatements = $diff->toSql($platform); + $this->assertContains( + 'ALTER TABLE poor_yorick ALTER id TYPE BIGINT', + $sqlStatements, + true + ); + + $this->assertNotContains( + 'ALTER TABLE poor_yorick ALTER id DROP DEFAULT', + $sqlStatements, + true + ); + } + + protected function createTableAndColumn($schema, $type){ + $table = $schema->createTable("poor_yorick"); + $table->addColumn('id', $type, [ + 'autoincrement' => true, + 'unsigned' => true, + 'notnull' => true, + 'length' => 11, + ]); + } + +} diff --git a/tests/lib/Files/ObjectStore/S3Test.php b/tests/lib/Files/ObjectStore/S3Test.php index b93e9beebdc..14167656fb5 100644 --- a/tests/lib/Files/ObjectStore/S3Test.php +++ b/tests/lib/Files/ObjectStore/S3Test.php @@ -23,19 +23,32 @@ namespace Test\Files\ObjectStore; use OC\Files\ObjectStore\S3; +class MultiPartUploadS3 extends S3 { + public function multiPartUpload($urn, $stream) { + parent::multiPartUpload($urn, $stream); + } +} + /** * @group PRIMARY-s3 */ class S3Test extends ObjectStoreTest { - /** - * @return \OCP\Files\ObjectStore\IObjectStore - */ protected function getInstance() { $config = \OC::$server->getConfig()->getSystemValue('objectstore'); if (!is_array($config) || $config['class'] !== 'OC\\Files\\ObjectStore\\S3') { $this->markTestSkipped('objectstore not configured for s3'); } - return new S3($config['arguments']); + return new MultiPartUploadS3($config['arguments']); + } + + public function testMultiPartUploader() { + $s3 = $this->getInstance(); + + $s3->multiPartUpload('multiparttest', fopen(__FILE__, 'r')); + + $result = $s3->readObject('multiparttest'); + + $this->assertEquals(file_get_contents(__FILE__), stream_get_contents($result)); } } diff --git a/tests/lib/Repair/RepairInvalidPathsTest.php b/tests/lib/Repair/RepairInvalidPathsTest.php index b0370f5ae2d..17c584fd149 100644 --- a/tests/lib/Repair/RepairInvalidPathsTest.php +++ b/tests/lib/Repair/RepairInvalidPathsTest.php @@ -186,4 +186,34 @@ class RepairInvalidPathsTest extends TestCase { $this->assertEquals($folderId, $this->cache2->get('foo2/bar/asd')['parent']); $this->assertEquals($folderId, $this->cache2->getId('foo2/bar')); } + + public function shouldRunDataProvider() { + return [ + ['11.0.0.0', true], + ['11.0.0.31', true], + ['11.0.5.2', false], + ['12.0.0.0', true], + ['12.0.0.1', true], + ['12.0.0.31', false], + ['13.0.0.0', true], + ['13.0.0.1', false] + ]; + } + + /** + * @dataProvider shouldRunDataProvider + * + * @param string $from + * @param boolean $expected + */ + public function testShouldRun($from, $expected) { + $config = $this->createMock(IConfig::class); + $config->expects($this->any()) + ->method('getSystemValue') + ->with('version', '0.0.0') + ->willReturn($from); + $repair = new RepairInvalidPaths(\OC::$server->getDatabaseConnection(), $config); + + $this->assertEquals($expected, $this->invokePrivate($repair, 'shouldRun')); + } } diff --git a/tests/lib/Settings/ManagerTest.php b/tests/lib/Settings/ManagerTest.php index 6a13b737c8e..be5aad2e414 100644 --- a/tests/lib/Settings/ManagerTest.php +++ b/tests/lib/Settings/ManagerTest.php @@ -147,7 +147,7 @@ class ManagerTest extends TestCase { ->method('add'); $this->manager->setupSettings([ - $type => $className, + $type => [$className], ]); } @@ -174,7 +174,7 @@ class ManagerTest extends TestCase { ->method('update'); $this->manager->setupSettings([ - $type => 'OCA\Files\Settings\Admin', + $type => ['OCA\Files\Settings\Admin'], ]); } diff --git a/version.php b/version.php index 7e0fba9f6aa..1ae5b87effe 100644 --- a/version.php +++ b/version.php @@ -26,7 +26,7 @@ // between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel // when updating major/minor version number. -$OC_Version = array(13, 0, 0, 4); +$OC_Version = array(13, 0, 0, 5); // The human readable string $OC_VersionString = '13.0.0 alpha'; |