Date: Thu, 4 May 2023 14:48:54 +0000
Subject: [PATCH 077/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 8 ++++++++
CHANGELOG.md | 8 ++++++++
2 files changed, 16 insertions(+)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index 41360a554589..6592fe584d3a 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -8,6 +8,7 @@ Summary
- Change - Update PHP dependencies: #40724
- Change - Fix name length check on federated shares: #40726
+ - Change - Fix hiding Last Login column on Users page: #40771
- Enhancement - Improve X-Robots-Tag header values check: #40715
Details
@@ -26,6 +27,13 @@ Details
https://github.com/owncloud/core/pull/40726
+
+ Change - Fix hiding Last Login column on Users page: #40771
+ The Last Login column on the Users page is now correctly hidden if the setting is initially
+ unchecked.
+
+ https://github.com/owncloud/core/pull/40771
+
Enhancement - Improve X-Robots-Tag header values check: #40715
Setup checks now allows other values other than "none" for X-Robots-Tag header. If "none" or
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bd37e02dd77c..be34ca45c9d3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ Summary
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
+* Change - Fix hiding Last Login column on Users page: [#40771](https://github.com/owncloud/core/pull/40771)
* Enhancement - Improve X-Robots-Tag header values check: [#40715](https://github.com/owncloud/core/pull/40715)
Details
@@ -34,6 +35,13 @@ Details
https://github.com/owncloud/core/pull/40726
+* Change - Fix hiding Last Login column on Users page: [#40771](https://github.com/owncloud/core/pull/40771)
+
+ The Last Login column on the Users page is now correctly hidden if the setting is initially
+ unchecked.
+
+ https://github.com/owncloud/core/pull/40771
+
* Enhancement - Improve X-Robots-Tag header values check: [#40715](https://github.com/owncloud/core/pull/40715)
Setup checks now allows other values other than "none" for X-Robots-Tag header. If "none" or
From 444319360e24810557b9d44911e6a1d2b565724d Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Fri, 5 May 2023 00:37:12 +0000
Subject: [PATCH 078/244] [tx] updated from transifex
---
core/l10n/tr.js | 1 +
core/l10n/tr.json | 1 +
2 files changed, 2 insertions(+)
diff --git a/core/l10n/tr.js b/core/l10n/tr.js
index 921c3be3f11e..02edb2366fcf 100644
--- a/core/l10n/tr.js
+++ b/core/l10n/tr.js
@@ -151,6 +151,7 @@ OC.L10N.register(
"You are running in DEBUG mode, this can cause unwanted side effects. Please remove the \"debug\" flag from \"config.php\"." : "DEBUG modunda çalışıyorsunuz, bu istenmeyen yan etkilere neden olabilir. Lütfen \"debug\" işaretini \"config.php\" dosyasından kaldırın.",
"Error occurred while checking server setup" : "Sunucu yapılandırması denetlenirken hata oluştu",
"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." : "data dizininiz ve dosyalarınız büyük ihtimalle İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu belge dizini dışına almanızı şiddetle tavsiye ederiz.",
+ "The \"{header}\" HTTP header is misconfigured. Expected values are \"none\" or \"noindex, nofollow\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP başlığı yanlış yapılandırılmış. Beklenen değerler \"none\" veya \"noindex, nofollow\" şeklindedir. Bu potansiyel bir güvenlik veya gizlilik riskidir ve bu ayarı değiştirmenizi öneririz.",
"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." : "\"{header}\" HTTP başlığı \"{expected}\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir güvenlik veya gizlilik riski olduğundan bu ayarı düzeltmenizi öneririz.",
"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 security tips." : "\"Strict-Transport-Security\" HTTP başlığı en az \"{seconds}\" saniye olarak ayarlanmış. İyileştirilmiş güvenlik için güvenlik ipuçlarımızda belirtilen HSTS etkinleştirmesini öneririz.",
"You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our security tips." : "Bu siteye HTTP aracılığıyla erişiyorsunuz. Sunucunuzu güvenlik ipuçlarımızda gösterildiği şekilde HTTPS kullanımını zorlamak üzere yapılandırmanızı şiddetle öneririz.",
diff --git a/core/l10n/tr.json b/core/l10n/tr.json
index 445a80f90afb..e4e3918e8b52 100644
--- a/core/l10n/tr.json
+++ b/core/l10n/tr.json
@@ -149,6 +149,7 @@
"You are running in DEBUG mode, this can cause unwanted side effects. Please remove the \"debug\" flag from \"config.php\"." : "DEBUG modunda çalışıyorsunuz, bu istenmeyen yan etkilere neden olabilir. Lütfen \"debug\" işaretini \"config.php\" dosyasından kaldırın.",
"Error occurred while checking server setup" : "Sunucu yapılandırması denetlenirken hata oluştu",
"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." : "data dizininiz ve dosyalarınız büyük ihtimalle İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu belge dizini dışına almanızı şiddetle tavsiye ederiz.",
+ "The \"{header}\" HTTP header is misconfigured. Expected values are \"none\" or \"noindex, nofollow\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP başlığı yanlış yapılandırılmış. Beklenen değerler \"none\" veya \"noindex, nofollow\" şeklindedir. Bu potansiyel bir güvenlik veya gizlilik riskidir ve bu ayarı değiştirmenizi öneririz.",
"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." : "\"{header}\" HTTP başlığı \"{expected}\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir güvenlik veya gizlilik riski olduğundan bu ayarı düzeltmenizi öneririz.",
"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 security tips." : "\"Strict-Transport-Security\" HTTP başlığı en az \"{seconds}\" saniye olarak ayarlanmış. İyileştirilmiş güvenlik için güvenlik ipuçlarımızda belirtilen HSTS etkinleştirmesini öneririz.",
"You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our security tips." : "Bu siteye HTTP aracılığıyla erişiyorsunuz. Sunucunuzu güvenlik ipuçlarımızda gösterildiği şekilde HTTPS kullanımını zorlamak üzere yapılandırmanızı şiddetle öneririz.",
From 04972973fac92656c09fe76c483a299c1acb6436 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Mon, 8 May 2023 00:19:35 +0000
Subject: [PATCH 079/244] [tx] updated from transifex
---
apps/files/l10n/he.js | 11 +++++++++++
apps/files/l10n/he.json | 11 +++++++++++
tests/data/apptheme/apps/files/l10n/he.js | 11 +++++++++++
tests/data/apptheme/apps/files/l10n/he.json | 11 +++++++++++
tests/data/themes/abc/apps/files/l10n/he.js | 11 +++++++++++
tests/data/themes/abc/apps/files/l10n/he.json | 11 +++++++++++
6 files changed, 66 insertions(+)
diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js
index 7fa7a9daf71f..280daad483ac 100644
--- a/apps/files/l10n/he.js
+++ b/apps/files/l10n/he.js
@@ -41,6 +41,10 @@ OC.L10N.register(
"Unable to determine date" : "לא ניתן לקבוע תאריך",
"Invalid path" : "נתיב לא חוקי",
"This operation is forbidden" : "פעולה זו אסורה",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "התיקייה „{dir}” אינה זמינה, נא ליצור קשר עם ההנהלה",
+ "Storage for \"{dir}\" is temporarily not available" : "האחסון עבור „{dir}” אינו זמין זמנית",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "התיקייה המשותפת „{dir}” אינה זמינה, יש להסיר את השיתוף או ליצור קשר עם הבעלים כדי לשתף מחדש.",
+ "Directory \"{dir}\" not found" : "התיקייה „{dir}” לא נמצאה",
"group" : "קבוצה",
"via" : "באמצעות",
"Could not move \"{file}\", target exists" : "לא ניתן להעביר \"{file}\", קובץ מטרה קיים",
@@ -105,18 +109,25 @@ OC.L10N.register(
"Limit notifications about creation and changes to your favorite files (Stream only)" : "הגבלת הודעות על יצירת או שינוי הקבצים המועדפים שלך (Stream only)",
"A file or folder has been deleted" : "קובץ או תיקייה נמחקו",
"A file or folder has been restored" : "קובץ או תיקייה שוחזר",
+ "A file or folder has been renamed" : "שם של קובץ או תיקייה נערכו",
+ "A file or folder has been moved" : "קובץ או תיקייה הועברו",
"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",
+ "%1$s was deleted due to automation rule" : "%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",
+ "You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
+ "%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
+ "You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
+ "You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json
index a86a58598d91..f6517720c353 100644
--- a/apps/files/l10n/he.json
+++ b/apps/files/l10n/he.json
@@ -39,6 +39,10 @@
"Unable to determine date" : "לא ניתן לקבוע תאריך",
"Invalid path" : "נתיב לא חוקי",
"This operation is forbidden" : "פעולה זו אסורה",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "התיקייה „{dir}” אינה זמינה, נא ליצור קשר עם ההנהלה",
+ "Storage for \"{dir}\" is temporarily not available" : "האחסון עבור „{dir}” אינו זמין זמנית",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "התיקייה המשותפת „{dir}” אינה זמינה, יש להסיר את השיתוף או ליצור קשר עם הבעלים כדי לשתף מחדש.",
+ "Directory \"{dir}\" not found" : "התיקייה „{dir}” לא נמצאה",
"group" : "קבוצה",
"via" : "באמצעות",
"Could not move \"{file}\", target exists" : "לא ניתן להעביר \"{file}\", קובץ מטרה קיים",
@@ -103,18 +107,25 @@
"Limit notifications about creation and changes to your favorite files (Stream only)" : "הגבלת הודעות על יצירת או שינוי הקבצים המועדפים שלך (Stream only)",
"A file or folder has been deleted" : "קובץ או תיקייה נמחקו",
"A file or folder has been restored" : "קובץ או תיקייה שוחזר",
+ "A file or folder has been renamed" : "שם של קובץ או תיקייה נערכו",
+ "A file or folder has been moved" : "קובץ או תיקייה הועברו",
"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",
+ "%1$s was deleted due to automation rule" : "%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",
+ "You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
+ "%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
+ "You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
+ "You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
diff --git a/tests/data/apptheme/apps/files/l10n/he.js b/tests/data/apptheme/apps/files/l10n/he.js
index 7fa7a9daf71f..280daad483ac 100644
--- a/tests/data/apptheme/apps/files/l10n/he.js
+++ b/tests/data/apptheme/apps/files/l10n/he.js
@@ -41,6 +41,10 @@ OC.L10N.register(
"Unable to determine date" : "לא ניתן לקבוע תאריך",
"Invalid path" : "נתיב לא חוקי",
"This operation is forbidden" : "פעולה זו אסורה",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "התיקייה „{dir}” אינה זמינה, נא ליצור קשר עם ההנהלה",
+ "Storage for \"{dir}\" is temporarily not available" : "האחסון עבור „{dir}” אינו זמין זמנית",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "התיקייה המשותפת „{dir}” אינה זמינה, יש להסיר את השיתוף או ליצור קשר עם הבעלים כדי לשתף מחדש.",
+ "Directory \"{dir}\" not found" : "התיקייה „{dir}” לא נמצאה",
"group" : "קבוצה",
"via" : "באמצעות",
"Could not move \"{file}\", target exists" : "לא ניתן להעביר \"{file}\", קובץ מטרה קיים",
@@ -105,18 +109,25 @@ OC.L10N.register(
"Limit notifications about creation and changes to your favorite files (Stream only)" : "הגבלת הודעות על יצירת או שינוי הקבצים המועדפים שלך (Stream only)",
"A file or folder has been deleted" : "קובץ או תיקייה נמחקו",
"A file or folder has been restored" : "קובץ או תיקייה שוחזר",
+ "A file or folder has been renamed" : "שם של קובץ או תיקייה נערכו",
+ "A file or folder has been moved" : "קובץ או תיקייה הועברו",
"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",
+ "%1$s was deleted due to automation rule" : "%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",
+ "You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
+ "%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
+ "You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
+ "You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
diff --git a/tests/data/apptheme/apps/files/l10n/he.json b/tests/data/apptheme/apps/files/l10n/he.json
index a86a58598d91..f6517720c353 100644
--- a/tests/data/apptheme/apps/files/l10n/he.json
+++ b/tests/data/apptheme/apps/files/l10n/he.json
@@ -39,6 +39,10 @@
"Unable to determine date" : "לא ניתן לקבוע תאריך",
"Invalid path" : "נתיב לא חוקי",
"This operation is forbidden" : "פעולה זו אסורה",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "התיקייה „{dir}” אינה זמינה, נא ליצור קשר עם ההנהלה",
+ "Storage for \"{dir}\" is temporarily not available" : "האחסון עבור „{dir}” אינו זמין זמנית",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "התיקייה המשותפת „{dir}” אינה זמינה, יש להסיר את השיתוף או ליצור קשר עם הבעלים כדי לשתף מחדש.",
+ "Directory \"{dir}\" not found" : "התיקייה „{dir}” לא נמצאה",
"group" : "קבוצה",
"via" : "באמצעות",
"Could not move \"{file}\", target exists" : "לא ניתן להעביר \"{file}\", קובץ מטרה קיים",
@@ -103,18 +107,25 @@
"Limit notifications about creation and changes to your favorite files (Stream only)" : "הגבלת הודעות על יצירת או שינוי הקבצים המועדפים שלך (Stream only)",
"A file or folder has been deleted" : "קובץ או תיקייה נמחקו",
"A file or folder has been restored" : "קובץ או תיקייה שוחזר",
+ "A file or folder has been renamed" : "שם של קובץ או תיקייה נערכו",
+ "A file or folder has been moved" : "קובץ או תיקייה הועברו",
"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",
+ "%1$s was deleted due to automation rule" : "%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",
+ "You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
+ "%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
+ "You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
+ "You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
diff --git a/tests/data/themes/abc/apps/files/l10n/he.js b/tests/data/themes/abc/apps/files/l10n/he.js
index 7fa7a9daf71f..280daad483ac 100644
--- a/tests/data/themes/abc/apps/files/l10n/he.js
+++ b/tests/data/themes/abc/apps/files/l10n/he.js
@@ -41,6 +41,10 @@ OC.L10N.register(
"Unable to determine date" : "לא ניתן לקבוע תאריך",
"Invalid path" : "נתיב לא חוקי",
"This operation is forbidden" : "פעולה זו אסורה",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "התיקייה „{dir}” אינה זמינה, נא ליצור קשר עם ההנהלה",
+ "Storage for \"{dir}\" is temporarily not available" : "האחסון עבור „{dir}” אינו זמין זמנית",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "התיקייה המשותפת „{dir}” אינה זמינה, יש להסיר את השיתוף או ליצור קשר עם הבעלים כדי לשתף מחדש.",
+ "Directory \"{dir}\" not found" : "התיקייה „{dir}” לא נמצאה",
"group" : "קבוצה",
"via" : "באמצעות",
"Could not move \"{file}\", target exists" : "לא ניתן להעביר \"{file}\", קובץ מטרה קיים",
@@ -105,18 +109,25 @@ OC.L10N.register(
"Limit notifications about creation and changes to your favorite files (Stream only)" : "הגבלת הודעות על יצירת או שינוי הקבצים המועדפים שלך (Stream only)",
"A file or folder has been deleted" : "קובץ או תיקייה נמחקו",
"A file or folder has been restored" : "קובץ או תיקייה שוחזר",
+ "A file or folder has been renamed" : "שם של קובץ או תיקייה נערכו",
+ "A file or folder has been moved" : "קובץ או תיקייה הועברו",
"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",
+ "%1$s was deleted due to automation rule" : "%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",
+ "You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
+ "%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
+ "You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
+ "You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
diff --git a/tests/data/themes/abc/apps/files/l10n/he.json b/tests/data/themes/abc/apps/files/l10n/he.json
index a86a58598d91..f6517720c353 100644
--- a/tests/data/themes/abc/apps/files/l10n/he.json
+++ b/tests/data/themes/abc/apps/files/l10n/he.json
@@ -39,6 +39,10 @@
"Unable to determine date" : "לא ניתן לקבוע תאריך",
"Invalid path" : "נתיב לא חוקי",
"This operation is forbidden" : "פעולה זו אסורה",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "התיקייה „{dir}” אינה זמינה, נא ליצור קשר עם ההנהלה",
+ "Storage for \"{dir}\" is temporarily not available" : "האחסון עבור „{dir}” אינו זמין זמנית",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "התיקייה המשותפת „{dir}” אינה זמינה, יש להסיר את השיתוף או ליצור קשר עם הבעלים כדי לשתף מחדש.",
+ "Directory \"{dir}\" not found" : "התיקייה „{dir}” לא נמצאה",
"group" : "קבוצה",
"via" : "באמצעות",
"Could not move \"{file}\", target exists" : "לא ניתן להעביר \"{file}\", קובץ מטרה קיים",
@@ -103,18 +107,25 @@
"Limit notifications about creation and changes to your favorite files (Stream only)" : "הגבלת הודעות על יצירת או שינוי הקבצים המועדפים שלך (Stream only)",
"A file or folder has been deleted" : "קובץ או תיקייה נמחקו",
"A file or folder has been restored" : "קובץ או תיקייה שוחזר",
+ "A file or folder has been renamed" : "שם של קובץ או תיקייה נערכו",
+ "A file or folder has been moved" : "קובץ או תיקייה הועברו",
"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",
+ "%1$s was deleted due to automation rule" : "%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",
+ "You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
+ "%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
+ "You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
+ "You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
From 7f5b34528c0f107473806028379f18ce1d6e19ec Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Fri, 5 May 2023 17:24:30 +0545
Subject: [PATCH 080/244] Cleanup code in TestHelpers
---
tests/TestHelpers/AppConfigHelper.php | 50 ++++-----
tests/TestHelpers/Asserts/WebDav.php | 7 +-
tests/TestHelpers/DeleteHelper.php | 8 +-
tests/TestHelpers/DownloadHelper.php | 10 +-
tests/TestHelpers/EmailHelper.php | 2 +-
tests/TestHelpers/HttpRequestHelper.php | 19 ++--
tests/TestHelpers/IpHelper.php | 21 ++--
tests/TestHelpers/LoggingHelper.php | 31 +++---
tests/TestHelpers/MoveCopyHelper.php | 6 +-
tests/TestHelpers/OcsApiHelper.php | 4 +-
tests/TestHelpers/SetupHelper.php | 102 ++++++++----------
tests/TestHelpers/SharingHelper.php | 15 +--
tests/TestHelpers/TagsHelper.php | 10 +-
tests/TestHelpers/TranslationHelper.php | 2 +-
tests/TestHelpers/Unit/DeleteHelperTest.php | 6 +-
tests/TestHelpers/Unit/WebDavHelperTest.php | 45 ++++----
tests/TestHelpers/UploadHelper.php | 24 +++--
tests/TestHelpers/UserHelper.php | 26 +++--
tests/TestHelpers/WebDavHelper.php | 47 ++++----
.../bootstrap/PublicWebDavContext.php | 4 +-
.../acceptance/features/bootstrap/Sharing.php | 3 +-
21 files changed, 228 insertions(+), 214 deletions(-)
diff --git a/tests/TestHelpers/AppConfigHelper.php b/tests/TestHelpers/AppConfigHelper.php
index 80e19351e9e5..cd69fa5874a9 100644
--- a/tests/TestHelpers/AppConfigHelper.php
+++ b/tests/TestHelpers/AppConfigHelper.php
@@ -22,14 +22,17 @@
namespace TestHelpers;
use Exception;
+use GuzzleHttp\Exception\GuzzleException;
+use PHPUnit\Framework\Assert;
use Psr\Http\Message\ResponseInterface;
+use SimpleXMLElement;
/**
* Helper to set various configurations through the testing app
*
* @author Artur Neumann
*/
-class AppConfigHelper extends \PHPUnit\Framework\Assert {
+class AppConfigHelper extends Assert {
/**
* @param string|null $baseUrl
* @param string|null $user
@@ -41,12 +44,12 @@ class AppConfigHelper extends \PHPUnit\Framework\Assert {
* @param string|null $testingParameter the parameter name as understood by
* "testing"
* @param boolean $testingState the on|off state the parameter must be set to for the test
- * @param string|null $savedCapabilitiesXml the original capabilities in XML format
+ * @param SimpleXMLElement $savedCapabilitiesXml the original capabilities in XML format
* @param string|null $xRequestId
* @param int|null $ocsApiVersion (1|2)
*
* @return array of the original state of the capability set
- * @throws Exception
+ * @throws GuzzleException
*/
public static function setCapability(
?string $baseUrl,
@@ -56,10 +59,10 @@ public static function setCapability(
?string $capabilitiesParameter,
?string $testingApp,
?string $testingParameter,
- ?bool $testingState,
- $savedCapabilitiesXml,
+ ?bool $testingState,
+ SimpleXMLElement $savedCapabilitiesXml,
?string $xRequestId = '',
- ?int $ocsApiVersion = 1
+ ?int $ocsApiVersion = 1
):array {
$originalState = self::wasCapabilitySet(
$capabilitiesApp,
@@ -153,8 +156,8 @@ public static function setCapabilities(
* @return string
*/
public static function getParameterValueFromXml(
- $xml,
- $capabilitiesApp,
+ ?SimpleXMLElement $xml,
+ ?string $capabilitiesApp,
?string $capabilitiesPath
):string {
$pathToElement = \explode('@@@', $capabilitiesPath);
@@ -178,7 +181,7 @@ public static function getParameterValueFromXml(
public static function wasCapabilitySet(
?string $capabilitiesApp,
?string $capabilitiesParameter,
- $savedCapabilitiesXml
+ ?SimpleXMLElement $savedCapabilitiesXml
):bool {
return (bool) self::getParameterValueFromXml(
$savedCapabilitiesXml,
@@ -209,6 +212,7 @@ public static function getOCSResponse(?ResponseInterface $response):\SimpleXMLEl
* @param string|null $xRequestId
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function getCapabilities(
?string $baseUrl,
@@ -258,7 +262,7 @@ public static function getCapabilitiesXml(?ResponseInterface $response):\SimpleX
* @param int|null $ocsApiVersion (1|2)
*
* @return void
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function modifyAppConfig(
?string $baseUrl,
@@ -276,7 +280,7 @@ public static function modifyAppConfig(
$user,
$password,
'post',
- "/apps/testing/api/v1/app/{$app}/{$parameter}",
+ "/apps/testing/api/v1/app/$app/$parameter",
$xRequestId,
$body,
$ocsApiVersion
@@ -310,7 +314,7 @@ public static function modifyAppConfig(
* @param int|null $ocsApiVersion (1|2)
*
* @return void
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function modifyAppConfigs(
?string $baseUrl,
@@ -323,7 +327,7 @@ public static function modifyAppConfigs(
if (\is_array($appParameterValues)) {
foreach ($appParameterValues as $key => $value) {
if (isset($value['value']) && \is_array($value['value'])) {
- $appParameterValues[$key]['value'] = \implode("", $appParameterValues[$key]['value']);
+ $appParameterValues[$key]['value'] = \implode("", $value['value']);
}
}
}
@@ -368,7 +372,7 @@ public static function modifyAppConfigs(
* @param int|null $ocsApiVersion (1|2)
*
* @return void
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function deleteAppConfig(
?string $baseUrl,
@@ -385,7 +389,7 @@ public static function deleteAppConfig(
$user,
$password,
'delete',
- "/apps/testing/api/v1/app/{$app}/{$parameter}",
+ "/apps/testing/api/v1/app/$app/$parameter",
$xRequestId,
$body,
$ocsApiVersion
@@ -419,7 +423,7 @@ public static function deleteAppConfig(
* @param int|null $ocsApiVersion (1|2)
*
* @return void
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function deleteAppConfigs(
?string $baseUrl,
@@ -469,7 +473,7 @@ public static function deleteAppConfigs(
* @param int|null $ocsApiVersion (1|2)
*
* @return array with 'configkey', 'value' and 'appid'
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getAppConfigs(
?string $baseUrl,
@@ -484,7 +488,7 @@ public static function getAppConfigs(
$user,
$password,
'get',
- "/apps/testing/api/v1/app/{$app}",
+ "/apps/testing/api/v1/app/$app",
$xRequestId,
null,
$ocsApiVersion
@@ -509,8 +513,7 @@ public static function getAppConfigs(
}
$responseXml = HttpRequestHelper::getResponseXml($response, __METHOD__)->data[0];
- $response = \json_decode(\json_encode($responseXml), true)['element'];
- return $response;
+ return \json_decode(\json_encode($responseXml), true)['element'];
}
/**
@@ -523,7 +526,7 @@ public static function getAppConfigs(
* @param int|null $ocsApiVersion (1|2)
*
* @return array with 'configkey', 'value' and 'appid'
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getAppConfig(
?string $baseUrl,
@@ -539,7 +542,7 @@ public static function getAppConfig(
$user,
$password,
'get',
- "/apps/testing/api/v1/app/{$app}/{$parameter}",
+ "/apps/testing/api/v1/app/$app/$parameter",
$xRequestId,
null,
$ocsApiVersion
@@ -564,7 +567,6 @@ public static function getAppConfig(
}
$responseXml = HttpRequestHelper::getResponseXml($response, __METHOD__)->data[0];
- $response = \json_decode(\json_encode($responseXml), true)['element'];
- return $response;
+ return \json_decode(\json_encode($responseXml), true)['element'];
}
}
diff --git a/tests/TestHelpers/Asserts/WebDav.php b/tests/TestHelpers/Asserts/WebDav.php
index 2ca6e14d8d9a..ff3ba5a0a3a8 100644
--- a/tests/TestHelpers/Asserts/WebDav.php
+++ b/tests/TestHelpers/Asserts/WebDav.php
@@ -22,6 +22,7 @@
namespace TestHelpers\Asserts;
use Exception;
+use PHPUnit\Framework\Assert;
use SimpleXMLElement;
use TestHelpers\DownloadHelper;
use TestHelpers\SetupHelper;
@@ -29,7 +30,7 @@
/**
* WebDAV related asserts
*/
-class WebDav extends \PHPUnit\Framework\Assert {
+class WebDav extends Assert {
/**
*
* @param string|null $element exception|message|reason
@@ -59,6 +60,8 @@ public static function assertDavResponseElementIs(
$result = $responseXml['value'][1]['value'];
} elseif ($element === "reason") {
$result = $responseXml['value'][3]['value'];
+ } else {
+ self::fail(__METHOD__ . " element must be one of exception, response or reason. But '$element' was passed in.");
}
self::assertEquals(
@@ -155,7 +158,7 @@ public static function assertContentOfRemoteAndLocalFileIsSame(
* otherwise check that the file contents are different
*
* @return void
- * @throws Exception
+ * @throws Exception|\GuzzleHttp\Exception\GuzzleException
*/
public static function assertContentOfDAVFileAndSkeletonFileOnSUT(
?string $baseUrl,
diff --git a/tests/TestHelpers/DeleteHelper.php b/tests/TestHelpers/DeleteHelper.php
index b55724805854..3d79d7930dd2 100644
--- a/tests/TestHelpers/DeleteHelper.php
+++ b/tests/TestHelpers/DeleteHelper.php
@@ -21,6 +21,7 @@
*/
namespace TestHelpers;
+use GuzzleHttp\Exception\GuzzleException;
use Psr\Http\Message\ResponseInterface;
/**
@@ -34,9 +35,9 @@ class DeleteHelper {
*
* @param string|null $baseUrl URL of owncloud
* e.g. http://localhost:8080
- * should include the subfolder
- * if owncloud runs in a subfolder
- * e.g. http://localhost:8080/owncloud-core
+ * should include the subfolder
+ * if owncloud runs in a subfolder
+ * e.g. http://localhost:8080/owncloud-core
* @param string|null $user
* @param string|null $password
* @param string|null $fileName
@@ -47,6 +48,7 @@ class DeleteHelper {
* @param Client|null $client
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function delete(
?string $baseUrl,
diff --git a/tests/TestHelpers/DownloadHelper.php b/tests/TestHelpers/DownloadHelper.php
index 4fbf4700b88c..2fe4685d336c 100644
--- a/tests/TestHelpers/DownloadHelper.php
+++ b/tests/TestHelpers/DownloadHelper.php
@@ -21,6 +21,7 @@
*/
namespace TestHelpers;
+use GuzzleHttp\Exception\GuzzleException;
use Psr\Http\Message\ResponseInterface;
/**
@@ -33,10 +34,10 @@ class DownloadHelper {
/**
*
* @param string|null $baseUrl URL of owncloud
- * e.g. http://localhost:8080
- * should include the subfolder
- * if owncloud runs in a subfolder
- * e.g. http://localhost:8080/owncloud-core
+ * e.g. http://localhost:8080
+ * should include the subfolder
+ * if owncloud runs in a subfolder
+ * e.g. http://localhost:8080/owncloud-core
* @param string|null $user
* @param string|null $password
* @param string|null $fileName
@@ -46,6 +47,7 @@ class DownloadHelper {
* @param string|null $sourceIpAddress
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function download(
?string $baseUrl,
diff --git a/tests/TestHelpers/EmailHelper.php b/tests/TestHelpers/EmailHelper.php
index ffd0c27b3f87..7bff21c27008 100644
--- a/tests/TestHelpers/EmailHelper.php
+++ b/tests/TestHelpers/EmailHelper.php
@@ -154,7 +154,7 @@ public static function getBodyOfAnEmailById(string $mailBox, string $mailboxId,
* @param int|null $waitTimeSec Time to wait for the email if the email has been delivered
*
* @return boolean
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function isEmailReceived(
string $emailAddress,
diff --git a/tests/TestHelpers/HttpRequestHelper.php b/tests/TestHelpers/HttpRequestHelper.php
index 84a0037a2771..536bb2ff576f 100644
--- a/tests/TestHelpers/HttpRequestHelper.php
+++ b/tests/TestHelpers/HttpRequestHelper.php
@@ -44,7 +44,7 @@ class HttpRequestHelper {
/**
* Some systems-under-test do async post-processing of operations like upload,
- * move etc. If a client does a request on the resource before the post-processing
+ * move, etc. If a client does a request on the resource before the post-processing
* is finished, then the server should return HTTP_TOO_EARLY "425". Clients are
* expected to retry the request "some time later" (tm).
*
@@ -101,9 +101,6 @@ public static function sendRequest(
$timeout
);
}
- /**
- * @var RequestInterface $request
- */
$request = self::createRequest(
$url,
$xRequestId,
@@ -136,7 +133,7 @@ public static function sendRequest(
// The exceptions that might happen here include:
// ConnectException - in that case there is no response. Don't catch the exception.
// RequestException - if there is something in the response then pass it back.
- // otherwise re-throw the exception.
+ // Otherwise re-throw the exception.
// GuzzleException - something else unexpected happened. Don't catch the exception.
try {
$response = $client->send($request);
@@ -248,8 +245,7 @@ public static function sendBatchRequest(
?array $requests,
?Client $client
):array {
- $results = Pool::batch($client, $requests);
- return $results;
+ return Pool::batch($client, $requests);
}
/**
@@ -287,12 +283,11 @@ public static function createClient(
$options['stream'] = $stream;
$options['verify'] = false;
$options['timeout'] = $timeout;
- $client = new Client($options);
- return $client;
+ return new Client($options);
}
/**
- * Create an http request based on given parameters.
+ * Create an HTTP request based on given parameters.
* This creates a RequestInterface object that can be used with a client to send a request.
* This enables us to create multiple requests in advance so that we can send them to the server at once in parallel.
*
@@ -320,7 +315,7 @@ public static function createRequest(
$headers['X-Request-ID'] = $xRequestId;
}
if (\is_array($body)) {
- // when creating the client, it is possible to set 'form_params' and
+ // When creating the client, it is possible to set 'form_params' and
// the Client constructor sorts out doing this http_build_query stuff.
// But 'new Request' does not have the flexibility to do that.
// So we need to do it here.
@@ -521,7 +516,7 @@ public static function delete(
* @throws Exception
*/
public static function getResponseXml(ResponseInterface $response, ?string $exceptionText = ''):SimpleXMLElement {
- // rewind just to make sure we can re-parse it in case it was parsed already...
+ // rewind just to make sure we can reparse it in case it was parsed already...
$response->getBody()->rewind();
$contents = $response->getBody()->getContents();
try {
diff --git a/tests/TestHelpers/IpHelper.php b/tests/TestHelpers/IpHelper.php
index 47fb0dc2169b..4ccd2d7a1204 100644
--- a/tests/TestHelpers/IpHelper.php
+++ b/tests/TestHelpers/IpHelper.php
@@ -25,14 +25,13 @@
use InvalidArgumentException;
/**
- * Helper to to get run-time IP addresses and make IP calculations
+ * Helper to get run-time IP addresses and make IP calculations
*
* @author Phillip Davis
*
*/
class IpHelper {
public const IPV6_LOOPBACK_ADDRESS = '::1';
- public const IPV6_LOOPBACK_ADDRESS_SUBNET = '::0';
public const IPV4_LOOPBACK_ADDRESS_TOP = '127.';
public const IPV6_LINK_LOCAL_ADDRESS_TOP = 'fe80';
// The docker bridged device does not work as a routable IP address
@@ -217,7 +216,7 @@ private static function loopbackIpv6Address():string {
/**
* get a loopback address for the given IP address family
*
- * @param string|null $ipAddressFamily IPv4 or IPv6 (not case sensitive)
+ * @param string|null $ipAddressFamily IPv4 or IPv6 (not case-sensitive)
*
* @return string IP loopback address
* @throws Exception
@@ -239,7 +238,7 @@ private static function loopbackIpAddress(?string $ipAddressFamily):string {
* calculate the base address of the subnet with the given CIDR
* that contains the loopback address of the given IP address family
*
- * @param string|null $ipAddressFamily IPv4 or IPv6 (not case sensitive)
+ * @param string|null $ipAddressFamily IPv4 or IPv6 (not case-sensitive)
*
* @return string IP of loopback subnet base address
* @throws Exception
@@ -302,7 +301,7 @@ private static function routableIpv6Address():string {
* get a non-loopback address on the local system for the given IP address family
* i.e. a "real" routable IP address on some network interface
*
- * @param string|null $ipAddressFamily IPv4 or IPv6 (not case sensitive)
+ * @param string|null $ipAddressFamily IPv4 or IPv6 (not case-sensitive)
*
* @return string IP address
* @throws Exception
@@ -350,7 +349,7 @@ private static function routableIpv6AddressSubnet(?int $cidr):string {
* calculate the base address of the subnet with the given CIDR
* that contains the first routable IP address of the given IP address family
*
- * @param string|null $ipAddressFamily IPv4 or IPv6 (not case sensitive)
+ * @param string|null $ipAddressFamily IPv4 or IPv6 (not case-sensitive)
* @param int|null $cidr the CIDR "mask" size for the subnet
*
* @return string IP of local subnet base address
@@ -375,7 +374,7 @@ private static function routableIpAddressSubnet(?string $ipAddressFamily, ?int $
*
* @param string|null $networkScope which type of address to return,
* "routable" or "loopback"
- * @param string|null $ipAddressFamily IPv4 or IPv6 (not case sensitive)
+ * @param string|null $ipAddressFamily IPv4 or IPv6 (not case-sensitive)
*
* @return string IP address
* @throws Exception
@@ -384,16 +383,13 @@ public static function ipAddress(?string $networkScope, ?string $ipAddressFamily
switch (\strtolower($networkScope)) {
case 'routable':
return self::routableIpAddress($ipAddressFamily);
- break;
case 'loopback':
return self::loopbackIpAddress($ipAddressFamily);
- break;
default:
throw new \InvalidArgumentException(
"ipAddress: Invalid networkScope passed. " .
"(Must be routable or loopback)"
);
- break;
}
}
@@ -403,7 +399,7 @@ public static function ipAddress(?string $networkScope, ?string $ipAddressFamily
*
* @param string|null $networkScope which type of address to return,
* "routable" or "loopback"
- * @param string|null $ipAddressFamily IPv4 or IPv6 (not case sensitive)
+ * @param string|null $ipAddressFamily IPv4 or IPv6 (not case-sensitive)
* @param int|null $cidr the CIDR "mask" size for the subnet
*
* @return string IP of base address
@@ -413,16 +409,13 @@ public static function ipAddressSubnet(?string $networkScope, ?string $ipAddress
switch (\strtolower($networkScope)) {
case 'routable':
return self::routableIpAddressSubnet($ipAddressFamily, $cidr);
- break;
case 'loopback':
return self::loopbackIpAddressSubnet($ipAddressFamily);
- break;
default:
throw new \InvalidArgumentException(
"ipAddressSubnet: Invalid networkScope passed. " .
"(Must be routable or loopback)"
);
- break;
}
}
}
diff --git a/tests/TestHelpers/LoggingHelper.php b/tests/TestHelpers/LoggingHelper.php
index 573648725378..8563661e6713 100644
--- a/tests/TestHelpers/LoggingHelper.php
+++ b/tests/TestHelpers/LoggingHelper.php
@@ -22,6 +22,7 @@
namespace TestHelpers;
use Exception;
+use GuzzleHttp\Exception\GuzzleException;
use InvalidArgumentException;
/**
@@ -48,7 +49,7 @@ class LoggingHelper {
* @param string|null $xRequestId
*
* @return string
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getLogFilePath(
?string $xRequestId = ''
@@ -86,7 +87,7 @@ public static function getLogFilePath(
* @param int|null $noOfLinesToRead
*
* @return array
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getLogFileContent(
?string $baseUrl,
@@ -112,7 +113,7 @@ public static function getLogFileContent(
$result = [];
foreach ($response->data->element as $line) {
- array_push($result, (string)$line);
+ $result[] = (string) $line;
}
return $result;
}
@@ -123,7 +124,7 @@ public static function getLogFileContent(
* @param string|null $xRequestId
*
* @return string
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getLogLevel(
?string $xRequestId = ''
@@ -150,7 +151,7 @@ public static function getLogLevel(
* @param string|null $xRequestId
*
* @return void
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function setLogLevel(
?string $logLevel,
@@ -177,7 +178,7 @@ public static function setLogLevel(
* @param string|null $xRequestId
*
* @return string
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getLogBackend(
?string $xRequestId = ''
@@ -209,7 +210,7 @@ public static function getLogBackend(
* @param string|null $xRequestId
*
* @return void
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function setLogBackend(
?string $backend,
@@ -236,7 +237,7 @@ public static function setLogBackend(
* @param string|null $xRequestId
*
* @return string
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getLogTimezone(
?string $xRequestId = ''
@@ -268,7 +269,7 @@ public static function getLogTimezone(
* @param string|null $xRequestId
*
* @return void
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function setLogTimezone(
?string $timezone,
@@ -294,7 +295,7 @@ public static function setLogTimezone(
* @param string|null $xRequestId
*
* @return void
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function clearLogFile(
?string $baseUrl,
@@ -323,7 +324,7 @@ public static function clearLogFile(
* @param string|null $xRequestId
*
* @return void
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function restoreLoggingStatus(
?string $logLevel,
@@ -341,13 +342,13 @@ public static function restoreLoggingStatus(
$commands = ["log:manage"];
if ($timezone) {
- \array_push($commands, "--timezone=$timezone");
+ $commands[] = "--timezone=$timezone";
}
if ($logLevel) {
- \array_push($commands, "--backend=$backend");
+ $commands[] = "--backend=$backend";
}
if ($backend) {
- \array_push($commands, "--level=$logLevel");
+ $commands[] = "--level=$logLevel";
}
if (\count($commands) > 1) {
@@ -370,7 +371,7 @@ public static function restoreLoggingStatus(
* @param string|null $xRequestId
*
* @return array|string[]
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getLogInfo(
?string $xRequestId = ''
diff --git a/tests/TestHelpers/MoveCopyHelper.php b/tests/TestHelpers/MoveCopyHelper.php
index 9e9ed4098b42..93906025c03c 100644
--- a/tests/TestHelpers/MoveCopyHelper.php
+++ b/tests/TestHelpers/MoveCopyHelper.php
@@ -21,6 +21,7 @@
*/
namespace TestHelpers;
+use GuzzleHttp\Exception\GuzzleException;
use Psr\Http\Message\ResponseInterface;
/**
@@ -33,7 +34,7 @@ class MoveCopyHelper {
/**
*
* @param string|null $baseUrl URL of owncloud
- * e.g. http://localhost:8080
+ * e.g. http://localhost:8080
* should include the subfolder
* if owncloud runs in a subfolder
* e.g. http://localhost:8080/owncloud-core
@@ -47,6 +48,7 @@ class MoveCopyHelper {
* @param string|null $sourceIpAddress
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function copy(
?string $baseUrl,
@@ -90,6 +92,7 @@ public static function copy(
* @param string|null $sourceIpAddress
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function move(
?string $baseUrl,
@@ -134,6 +137,7 @@ public static function move(
* @param string|null $sourceIpAddress
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
private static function copyOrMove(
?string $baseUrl,
diff --git a/tests/TestHelpers/OcsApiHelper.php b/tests/TestHelpers/OcsApiHelper.php
index 6e0623f42a2f..27ba2d1d1eb4 100644
--- a/tests/TestHelpers/OcsApiHelper.php
+++ b/tests/TestHelpers/OcsApiHelper.php
@@ -61,7 +61,7 @@ public static function sendRequest(
if (\substr($fullUrl, -1) !== '/') {
$fullUrl .= '/';
}
- $fullUrl .= "ocs/v{$ocsApiVersion}.php" . $path;
+ $fullUrl .= "ocs/v$ocsApiVersion.php" . $path;
$headers['OCS-APIREQUEST'] = true;
return HttpRequestHelper::sendRequest($fullUrl, $xRequestId, $method, $user, $password, $headers, $body);
}
@@ -91,7 +91,7 @@ public static function createOcsRequest(
if (\substr($fullUrl, -1) !== '/') {
$fullUrl .= '/';
}
- $fullUrl .= "ocs/v{$ocsApiVersion}.php" . $path;
+ $fullUrl .= "ocs/v$ocsApiVersion.php" . $path;
return HttpRequestHelper::createRequest(
$fullUrl,
$xRequestId,
diff --git a/tests/TestHelpers/SetupHelper.php b/tests/TestHelpers/SetupHelper.php
index cbe4b957bd6e..89a811b1c078 100644
--- a/tests/TestHelpers/SetupHelper.php
+++ b/tests/TestHelpers/SetupHelper.php
@@ -25,32 +25,21 @@
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Exception\ServerException;
use Exception;
+use PHPUnit\Framework\Assert;
use Psr\Http\Message\ResponseInterface;
use SimpleXMLElement;
/**
- * Helper to setup UI / Integration tests
+ * Helper to set up UI / Integration tests
*
* @author Artur Neumann
*
*/
-class SetupHelper extends \PHPUnit\Framework\Assert {
- /**
- * @var string
- */
- private static $ocPath = null;
- /**
- * @var string
- */
- private static $baseUrl = null;
- /**
- * @var string
- */
- private static $adminUsername = null;
- /**
- * @var string
- */
- private static $adminPassword = null;
+class SetupHelper extends Assert {
+ private static ?string $ocPath = null;
+ private static ?string $baseUrl = null;
+ private static ?string $adminUsername = null;
+ private static ?string $adminPassword = null;
/**
* creates a user
@@ -61,8 +50,8 @@ class SetupHelper extends \PHPUnit\Framework\Assert {
* @param string|null $displayName
* @param string|null $email
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
- * @throws Exception
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
+ * @throws Exception|GuzzleException
*/
public static function createUser(
?string $userName,
@@ -91,8 +80,8 @@ public static function createUser(
* @param string|null $userName
* @param string|null $xRequestId
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
- * @throws Exception
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
+ * @throws Exception|GuzzleException
*/
public static function deleteUser(
?string $userName,
@@ -113,7 +102,7 @@ public static function deleteUser(
* @param string|null $xRequestId
*
* @return string[]
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function changeUserSetting(
?string $userName,
@@ -134,8 +123,8 @@ public static function changeUserSetting(
* @param string|null $groupName
* @param string|null $xRequestId
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
- * @throws Exception
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
+ * @throws Exception|GuzzleException
*/
public static function createGroup(
?string $groupName,
@@ -154,8 +143,8 @@ public static function createGroup(
* @param string|null $userName
* @param string|null $xRequestId
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
- * @throws Exception
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
+ * @throws Exception|GuzzleException
*/
public static function addUserToGroup(
?string $groupName,
@@ -175,8 +164,8 @@ public static function addUserToGroup(
* @param string|null $userName
* @param string|null $xRequestId
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
- * @throws Exception
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
+ * @throws Exception|GuzzleException
*/
public static function removeUserFromGroup(
?string $groupName,
@@ -195,8 +184,8 @@ public static function removeUserFromGroup(
* @param string|null $groupName
* @param string|null $xRequestId
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
- * @throws Exception
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
+ * @throws Exception|GuzzleException
*/
public static function deleteGroup(
?string $groupName,
@@ -213,7 +202,7 @@ public static function deleteGroup(
* @param string|null $xRequestId
*
* @return string[]
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getGroups(
?string $xRequestId = ''
@@ -301,6 +290,7 @@ public static function getOcPath():?string {
*
* @return SimpleXMLElement
* @throws GuzzleException
+ * @throws Exception
*/
public static function getSysInfo(
?string $baseUrl,
@@ -503,6 +493,7 @@ public static function rmDirOnServer(
*
* @return void
* @throws GuzzleException
+ * @throws Exception
*/
public static function createFileOnServer(
?string $filePathFromServerRoot,
@@ -609,13 +600,13 @@ public static function readFileFromServer(
$adminUsername,
$adminPassword,
'GET',
- "/apps/testing/api/v1/file?file={$fileInCore}",
+ "/apps/testing/api/v1/file?file=$fileInCore",
$xRequestId
);
self::assertSame(
200,
$response->getStatusCode(),
- "Failed to read the file {$fileInCore}"
+ "Failed to read the file $fileInCore"
);
$localContent = HttpRequestHelper::getResponseXml($response, __METHOD__);
$localContent = (string)$localContent->data->element->contentUrlEncoded;
@@ -673,18 +664,17 @@ public static function readSkeletonFile(
$adminUsername,
$adminPassword,
'GET',
- "/apps/testing/api/v1/file?file={$fileInSkeletonFolder}&absolute=true",
+ "/apps/testing/api/v1/file?file=$fileInSkeletonFolder&absolute=true",
$xRequestId
);
self::assertSame(
200,
$response->getStatusCode(),
- "Failed to read the file {$fileInSkeletonFolder}"
+ "Failed to read the file $fileInSkeletonFolder"
);
$localContent = HttpRequestHelper::getResponseXml($response, __METHOD__);
$localContent = (string)$localContent->data->element->contentUrlEncoded;
- $localContent = \urldecode($localContent);
- return $localContent;
+ return \urldecode($localContent);
}
/**
@@ -693,8 +683,8 @@ public static function readSkeletonFile(
* @param string|null $appName
* @param string|null $xRequestId
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
- * @throws Exception
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
+ * @throws Exception|GuzzleException
*/
public static function enableApp(
?string $appName,
@@ -712,8 +702,8 @@ public static function enableApp(
* @param string|null $appName
* @param string|null $xRequestId
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
- * @throws Exception
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
+ * @throws Exception|GuzzleException
*/
public static function disableApp(
?string $appName,
@@ -732,7 +722,7 @@ public static function disableApp(
* @param string|null $xRequestId
*
* @return bool true if enabled, false if disabled or nonexistent
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function isAppEnabled(
?string $appName,
@@ -752,7 +742,7 @@ public static function isAppEnabled(
* @param string|null $xRequestId
*
* @return bool true if the app needed to be enabled, false otherwise
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function enableAppIfNotEnabled(
?string $appName,
@@ -812,7 +802,7 @@ public static function runBulkOcc(
if (isset($occ['envVariables'])) {
$body['env_variables'] = $occ['envVariables'];
}
- \array_push($bodies, $body);
+ $bodies[] = $body;
}
try {
$result = OcsApiHelper::sendRequest(
@@ -840,7 +830,7 @@ public static function runBulkOcc(
* invokes an OCC command
*
* @param array|null $args anything behind "occ".
- * For example: "files:transfer-ownership"
+ * For example, "files:transfer-ownership"
* @param string|null $xRequestId
* @param string|null $adminUsername
* @param string|null $adminPassword
@@ -848,7 +838,7 @@ public static function runBulkOcc(
* @param string|null $ocPath
* @param array|null $envVariables
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
* @throws GuzzleException
* @throws Exception
*/
@@ -984,10 +974,10 @@ public static function runOcc(
}
/**
- * @param string $baseUrl
- * @param string $user
- * @param string $password
- * @param string $xRequestId
+ * @param string|null $baseUrl
+ * @param string|null $user
+ * @param string|null $password
+ * @param string|null $xRequestId
*
* @return ResponseInterface|null
* @throws GuzzleException
@@ -1020,7 +1010,7 @@ public static function resetOpcache(
* @param string|null $mount (name of local storage mount)
* @param string|null $xRequestId
*
- * @return string[] associated array with "code", "stdOut", "stdErr", "storageId"
+ * @return string[] an associative array with "code", "stdOut", "stdErr", "storageId"
* @throws GuzzleException
*/
public static function createLocalStorageMount(
@@ -1055,7 +1045,7 @@ public static function createLocalStorageMount(
if (\array_key_exists(4, $storageIdWords)) {
$result['storageId'] = (int)$storageIdWords[4];
} else {
- // presumably something went wrong with the files_external:create command
+ // Presumably something went wrong with the files_external:create command
// so return "unknown" to the caller. The result array has the command exit
// code and stdErr output etc., so the caller can process what it likes
// of that information to work out what went wrong.
@@ -1076,7 +1066,7 @@ public static function createLocalStorageMount(
* @param string|null $baseUrl
* @param string|null $ocPath
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
* @throws GuzzleException
*/
public static function getSystemConfig(
@@ -1122,7 +1112,7 @@ public static function getSystemConfig(
* @param string|null $baseUrl
* @param string|null $ocPath
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
* @throws GuzzleException
*/
public static function setSystemConfig(
@@ -1231,7 +1221,7 @@ public static function findLines(?string $input, ?string $text):array {
* @param string|null $baseUrl
* @param string|null $ocPath
*
- * @return string[] associated array with "code", "stdOut", "stdErr"
+ * @return string[] an associative array with "code", "stdOut", "stdErr"
* @throws GuzzleException if parameters have not been provided yet or the testing app is not enabled
*/
public static function deleteSystemConfig(
diff --git a/tests/TestHelpers/SharingHelper.php b/tests/TestHelpers/SharingHelper.php
index a368ce28dbf2..bb0e30af8f85 100644
--- a/tests/TestHelpers/SharingHelper.php
+++ b/tests/TestHelpers/SharingHelper.php
@@ -22,6 +22,7 @@
namespace TestHelpers;
use Exception;
+use GuzzleHttp\Exception\GuzzleException;
use InvalidArgumentException;
use Psr\Http\Message\ResponseInterface;
use SimpleXMLElement;
@@ -52,7 +53,7 @@ class SharingHelper {
'accepted' => 0,
'pending' => 1,
'rejected' => 2,
- 'declined' => 2, // declined is a synonym for rejected
+ 'declined' => 2, // declined is a synonym for rejected.
];
/**
@@ -88,7 +89,7 @@ class SharingHelper {
* @param string $sharingApp
*
* @return ResponseInterface
- * @throws InvalidArgumentException
+ * @throws InvalidArgumentException|GuzzleException
*/
public static function createShare(
string $baseUrl,
@@ -136,7 +137,7 @@ public static function createShare(
if (\substr($fullUrl, -1) !== '/') {
$fullUrl .= '/';
}
- $fullUrl .= "ocs/v{$ocsApiVersion}.php/apps/{$sharingApp}/api/v{$sharingApiVersion}/shares";
+ $fullUrl .= "ocs/v$ocsApiVersion.php/apps/$sharingApp/api/v$sharingApiVersion/shares";
$fd['path'] = $path;
$fd['shareType'] = self::getShareType($shareType);
@@ -145,7 +146,7 @@ public static function createShare(
$fd['shareWith'] = $shareWith;
}
if ($publicUpload !== null) {
- $fd['publicUpload'] = (bool) $publicUpload;
+ $fd['publicUpload'] = $publicUpload;
}
if ($sharePassword !== null) {
$fd['password'] = $sharePassword;
@@ -169,8 +170,8 @@ public static function createShare(
}
/**
- * calculates the permission sum (int) from given permissions
- * permissions can be passed in as int, string or array of int or string
+ * Calculates the permission sum (int) from the given permissions.
+ * Permissions can be passed in as int, string or array of int or string
* 'read' => 1
* 'update' => 2
* 'create' => 4
@@ -197,7 +198,7 @@ public static function getPermissionSum($permissions):int {
if (\array_key_exists($permission, self::PERMISSION_TYPES)) {
$permissionSum += self::PERMISSION_TYPES[$permission];
} elseif (\in_array($permission, self::PERMISSION_TYPES, true)) {
- $permissionSum += (int) $permission;
+ $permissionSum += $permission;
} else {
throw new InvalidArgumentException(
"invalid permission type ($permission)"
diff --git a/tests/TestHelpers/TagsHelper.php b/tests/TestHelpers/TagsHelper.php
index 21f23facc31a..6ce59146e412 100644
--- a/tests/TestHelpers/TagsHelper.php
+++ b/tests/TestHelpers/TagsHelper.php
@@ -21,6 +21,8 @@
*/
namespace TestHelpers;
+use GuzzleHttp\Exception\GuzzleException;
+use PHPUnit\Framework\Assert;
use Psr\Http\Message\ResponseInterface;
use Exception;
use SimpleXMLElement;
@@ -31,7 +33,7 @@
* @author Artur Neumann
*
*/
-class TagsHelper extends \PHPUnit\Framework\Assert {
+class TagsHelper extends Assert {
/**
* tags a file
*
@@ -48,7 +50,7 @@ class TagsHelper extends \PHPUnit\Framework\Assert {
* @param string|null $adminPassword
*
* @return ResponseInterface
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function tag(
?string $baseUrl,
@@ -162,7 +164,7 @@ public static function requestTagsForUser(
'oc:can-assign'
];
if ($withGroups) {
- \array_push($properties, 'oc:groups');
+ $properties[] = 'oc:groups';
}
$response = WebDavHelper::propfind(
$baseUrl,
@@ -230,6 +232,7 @@ public static function requestTagByDisplayName(
* @param int|null $davPathVersionToUse (1|2)
*
* @return ResponseInterface
+ * @throws GuzzleException
* @link self::makeDavRequest()
*/
public static function createTag(
@@ -280,6 +283,7 @@ public static function createTag(
* @param int|null $davPathVersionToUse (1|2)
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function deleteTag(
?string $baseUrl,
diff --git a/tests/TestHelpers/TranslationHelper.php b/tests/TestHelpers/TranslationHelper.php
index 815b20d29187..e4c05b1be8de 100644
--- a/tests/TestHelpers/TranslationHelper.php
+++ b/tests/TestHelpers/TranslationHelper.php
@@ -24,7 +24,7 @@
/**
* Class TranslationHelper
*
- * Helper functions that are needed to run tests on different languages
+ * Helper functions that are needed to run tests in different languages
*
* @package TestHelpers
*/
diff --git a/tests/TestHelpers/Unit/DeleteHelperTest.php b/tests/TestHelpers/Unit/DeleteHelperTest.php
index 4749e247adcc..d958bd646664 100644
--- a/tests/TestHelpers/Unit/DeleteHelperTest.php
+++ b/tests/TestHelpers/Unit/DeleteHelperTest.php
@@ -56,7 +56,7 @@ public function setUp(): void {
* @return void
*/
public function testDeleteHelperWithOlderDavVersion():void {
- $response = DeleteHelper::delete(
+ DeleteHelper::delete(
'http://localhost',
'user',
'password',
@@ -86,7 +86,7 @@ public function testDeleteHelperWithOlderDavVersion():void {
* @return void
*/
public function testDeleteHelperWithNewerDavVersion():void {
- $response = DeleteHelper::delete(
+ DeleteHelper::delete(
'http://localhost',
'user',
'password',
@@ -117,7 +117,7 @@ public function testDeleteHelperWithNewerDavVersion():void {
*/
public function testDeleteHelperSendsWithGivenHeaders():void {
$headers = ["Cache-Control" => "no-cache"];
- $response = DeleteHelper::delete(
+ DeleteHelper::delete(
'http://localhost',
'user',
'password',
diff --git a/tests/TestHelpers/Unit/WebDavHelperTest.php b/tests/TestHelpers/Unit/WebDavHelperTest.php
index ff36267c0cb5..6fe5059999c3 100644
--- a/tests/TestHelpers/Unit/WebDavHelperTest.php
+++ b/tests/TestHelpers/Unit/WebDavHelperTest.php
@@ -32,11 +32,8 @@
* Test for WebDavHelper
*/
class WebDavHelperTest extends PHPUnit\Framework\TestCase {
- private $container = [];
- /**
- * @var Client
- */
- private $client;
+ private array $container = [];
+ private Client $client;
/**
* Setup mock response, client and listen for all requests
@@ -62,9 +59,10 @@ public function setUp(): void {
* for newer Dav path
*
* @return void
+ * @throws \GuzzleHttp\Exception\GuzzleException
*/
public function testUrlIsSanitizedByMakeDavRequestForNewerDav():void {
- $response = WebDavHelper::makeDavRequest(
+ WebDavHelper::makeDavRequest(
'http://own.cloud///core',
'user1',
'pass',
@@ -99,9 +97,10 @@ public function testUrlIsSanitizedByMakeDavRequestForNewerDav():void {
* for older Dav path
*
* @return void
+ * @throws \GuzzleHttp\Exception\GuzzleException
*/
public function testUrlIsSanitizedByMakeDavRequestForOlderDavPath():void {
- $response = WebDavHelper::makeDavRequest(
+ WebDavHelper::makeDavRequest(
'http://own.cloud///core',
'user1',
'pass',
@@ -136,9 +135,10 @@ public function testUrlIsSanitizedByMakeDavRequestForOlderDavPath():void {
* Guzzle doesn't do that, we replace manually there.
*
* @return void
+ * @throws \GuzzleHttp\Exception\GuzzleException
*/
public function testMakeDavRequestReplacesAsteriskAndHashesOnUrls():void {
- $response = WebDavHelper::makeDavRequest(
+ WebDavHelper::makeDavRequest(
'http://own.cloud///core',
'user1',
'pass',
@@ -178,9 +178,10 @@ public function testMakeDavRequestReplacesAsteriskAndHashesOnUrls():void {
* bearer password when authType is set to "bearer"
*
* @return void
+ * @throws \GuzzleHttp\Exception\GuzzleException
*/
public function testMakeDavRequestOnBearerAuthorization():void {
- $response = WebDavHelper::makeDavRequest(
+ WebDavHelper::makeDavRequest(
'http://own.cloud/core',
'user1',
'pass',
@@ -204,7 +205,7 @@ public function testMakeDavRequestOnBearerAuthorization():void {
$lastRequest = $this->container[0]['request'];
// no way to know that $user and $password is set to null, except confirming that
- // the Authorization is `Bearer`. If it would have gotten username and password,
+ // the Authorization is `Bearer`. If it had gotten username and password,
// it would have been `Basic`.
$this->assertEquals(['Bearer pass'], $lastRequest->getHeaders()["Authorization"]);
}
@@ -236,7 +237,7 @@ public function testSanitizationOnDefault(?string $unsanitizedUrl, ?string $expe
* @return void
*/
public function testSanitizationWhenTrailingSlashIsSetToFalse(?string $unsanitizedUrl, ?string $expectedUrl):void {
- $sanitizedUrl = WebDavHelper::sanitizeUrl($unsanitizedUrl, false);
+ $sanitizedUrl = WebDavHelper::sanitizeUrl($unsanitizedUrl);
$this->assertEquals($expectedUrl, $sanitizedUrl);
}
@@ -245,8 +246,8 @@ public function testSanitizationWhenTrailingSlashIsSetToFalse(?string $unsanitiz
*
* @dataProvider withTrailingSlashUrlsProvider
*
- * @param string $unsanitizedUrl
- * @param string $expectedUrl
+ * @param string|null $unsanitizedUrl
+ * @param string|null $expectedUrl
*
* @return void
*/
@@ -262,15 +263,15 @@ public function testSanitizationWhenTrailingSlashIsSetToTrue(?string $unsanitize
*/
public function testGetDavPathForOlderDavVersion():void {
$davPath = WebDavHelper::getDavPath('user1', 1);
- $this->assertEquals($davPath, 'remote.php/webdav/');
+ $this->assertEquals('remote.php/webdav/', $davPath);
// we don't need `user` to generate url for older dav path
$davPath = WebDavHelper::getDavPath(null, 1);
- $this->assertEquals($davPath, 'remote.php/webdav/');
+ $this->assertEquals('remote.php/webdav/', $davPath);
// version 1 should be default
$davPath = WebDavHelper::getDavPath(null);
- $this->assertEquals($davPath, 'remote.php/webdav/');
+ $this->assertEquals('remote.php/webdav/', $davPath);
}
/**
@@ -282,10 +283,10 @@ public function testGetDavPathForNewerDavPath():void {
// `type` should be `files` by default.
// check that both returns same thing.
$davPath = WebDavHelper::getDavPath('user1', 2);
- $this->assertEquals($davPath, 'remote.php/dav/files/user1/');
+ $this->assertEquals('remote.php/dav/files/user1/', $davPath);
- $davPath = WebDavHelper::getDavPath('user1', 2, 'files');
- $this->assertEquals($davPath, 'remote.php/dav/files/user1/');
+ $davPath = WebDavHelper::getDavPath('user1', 2);
+ $this->assertEquals('remote.php/dav/files/user1/', $davPath);
}
/**
@@ -296,10 +297,10 @@ public function testGetDavPathForNewerDavPath():void {
*/
public function testGetDavPathForNewerDavPathButNotForFiles():void {
$davPath = WebDavHelper::getDavPath('user1', 2, null);
- $this->assertEquals($davPath, 'remote.php/dav');
+ $this->assertEquals('remote.php/dav', $davPath);
$davPath = WebDavHelper::getDavPath('user1', 2, 'not_files');
- $this->assertEquals($davPath, 'remote.php/dav');
+ $this->assertEquals('remote.php/dav', $davPath);
}
/**
@@ -312,7 +313,7 @@ public function testGetDavPathForInvalidVersionsShouldThrowException():void {
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage("DAV path version 3 is unknown");
- $davPath = WebDavHelper::getDavPath(null, 3);
+ WebDavHelper::getDavPath(null, 3);
}
/**
diff --git a/tests/TestHelpers/UploadHelper.php b/tests/TestHelpers/UploadHelper.php
index 1ff63cfa55bb..7cb3d4534156 100644
--- a/tests/TestHelpers/UploadHelper.php
+++ b/tests/TestHelpers/UploadHelper.php
@@ -21,6 +21,8 @@
*/
namespace TestHelpers;
+use GuzzleHttp\Exception\GuzzleException;
+use PHPUnit\Framework\Assert;
use Psr\Http\Message\ResponseInterface;
/**
@@ -29,7 +31,7 @@
* @author Artur Neumann
*
*/
-class UploadHelper extends \PHPUnit\Framework\Assert {
+class UploadHelper extends Assert {
/**
*
* @param string|null $baseUrl URL of owncloud
@@ -46,9 +48,10 @@ class UploadHelper extends \PHPUnit\Framework\Assert {
* @param int|null $davPathVersionToUse (1|2)
* @param int|null $chunkingVersion (1|2|null)
* if set to null chunking will not be used
- * @param int|null $noOfChunks how many chunks do we want to upload
+ * @param int|null $noOfChunks how many chunks to upload
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function upload(
?string $baseUrl,
@@ -79,10 +82,12 @@ public static function upload(
} else {
//prepare chunking
$chunks = self::chunkFile($source, $noOfChunks);
- $chunkingId = 'chunking-' . (string)\rand(1000, 9999);
+ $chunkingId = 'chunking-' . \rand(1000, 9999);
$v2ChunksDestination = '/uploads/' . $user . '/' . $chunkingId;
}
+ $result = null;
+
//prepare chunking version specific stuff
if ($chunkingVersion === 1) {
$headers['OC-Chunked'] = '1';
@@ -102,16 +107,19 @@ public static function upload(
if ($result->getStatusCode() >= 400) {
return $result;
}
+ } else {
+ self::fail(__METHOD__ . " Chunking version must be 1, 2 or null but $chunkingVersion was passed in.");
}
//upload chunks
foreach ($chunks as $index => $chunk) {
if ($chunkingVersion === 1) {
$filename = $destination . "-" . $chunkingId . "-" .
- \count($chunks) . '-' . ( string ) $index;
+ \count($chunks) . '-' . $index;
$davRequestType = "files";
- } elseif ($chunkingVersion === 2) {
- $filename = $v2ChunksDestination . '/' . (string)($index);
+ } else {
+ // do chunking version 2
+ $filename = $v2ChunksDestination . '/' . $index;
$davRequestType = "uploads";
}
$result = WebDavHelper::makeDavRequest(
@@ -152,6 +160,7 @@ public static function upload(
return $result;
}
}
+ self::assertNotNull($result, __METHOD__ . " chunking version $chunkingVersion was requested but no upload was done.");
return $result;
}
@@ -164,11 +173,12 @@ public static function upload(
* @param string|null $source source file path
* @param string|null $destination destination path on the server
* @param string|null $xRequestId
- * @param bool $overwriteMode when false creates separate files to test uploading brand new files,
+ * @param bool $overwriteMode when false creates separate files to test uploading brand-new files,
* when true it just overwrites the same file over and over again with the same name
* @param string|null $exceptChunkingType empty string or "old" or "new"
*
* @return array of ResponseInterface
+ * @throws GuzzleException
*/
public static function uploadWithAllMechanisms(
?string $baseUrl,
diff --git a/tests/TestHelpers/UserHelper.php b/tests/TestHelpers/UserHelper.php
index dca43b9b113f..2df8d9f5ea97 100644
--- a/tests/TestHelpers/UserHelper.php
+++ b/tests/TestHelpers/UserHelper.php
@@ -23,6 +23,7 @@
use Exception;
use GuzzleHttp\Exception\ClientException;
+use GuzzleHttp\Exception\GuzzleException;
use Psr\Http\Message\ResponseInterface;
/**
@@ -44,6 +45,7 @@ class UserHelper {
* @param int|null $ocsApiVersion
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function editUser(
?string $baseUrl,
@@ -99,15 +101,12 @@ public static function editUserBatch(
$path = "/cloud/users/" . $data['user'];
$body = ["key" => $data['key'], 'value' => $data["value"]];
// Create the OCS API requests and push them to an array.
- \array_push(
- $requests,
- OcsApiHelper::createOcsRequest(
- $baseUrl,
- 'PUT',
- $path,
- $xRequestId,
- $body
- )
+ $requests[] = OcsApiHelper::createOcsRequest(
+ $baseUrl,
+ 'PUT',
+ $path,
+ $xRequestId,
+ $body
);
}
// Send the array of requests at once in parallel.
@@ -135,6 +134,7 @@ public static function editUserBatch(
* @param int|null $ocsApiVersion
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function getUser(
?string $baseUrl,
@@ -166,6 +166,7 @@ public static function getUser(
* @param int|null $ocsApiVersion
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function deleteUser(
?string $baseUrl,
@@ -196,6 +197,7 @@ public static function deleteUser(
* @param string|null $xRequestId
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function createGroup(
?string $baseUrl,
@@ -225,6 +227,7 @@ public static function createGroup(
* @param int|null $ocsApiVersion
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function deleteGroup(
?string $baseUrl,
@@ -258,6 +261,7 @@ public static function deleteGroup(
* @param int|null $ocsApiVersion (1|2)
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function addUserToGroup(
?string $baseUrl,
@@ -291,6 +295,7 @@ public static function addUserToGroup(
* @param int|null $ocsApiVersion (1|2)
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function removeUserFromGroup(
?string $baseUrl,
@@ -322,6 +327,7 @@ public static function removeUserFromGroup(
* @param string|null $search
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function getGroups(
?string $baseUrl,
@@ -349,7 +355,7 @@ public static function getGroups(
* @param string|null $search
*
* @return string[]
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getGroupsAsArray(
?string $baseUrl,
diff --git a/tests/TestHelpers/WebDavHelper.php b/tests/TestHelpers/WebDavHelper.php
index 6cd5fd1b03e5..577519240264 100644
--- a/tests/TestHelpers/WebDavHelper.php
+++ b/tests/TestHelpers/WebDavHelper.php
@@ -29,7 +29,6 @@
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\StreamInterface;
use DateTime;
-use TestHelpers\SpaceNotFoundException;
/**
* Helper to make WebDav Requests
@@ -45,7 +44,7 @@ class WebDavHelper {
/**
* @var array of users with their different spaces ids
*/
- public static $spacesIdRef = [];
+ public static array $spacesIdRef = [];
/**
* clear space id reference for user
@@ -74,7 +73,7 @@ public static function removeSpaceIdReferenceForUser(
* @param int|null $davPathVersionToUse
*
* @return string
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getFileIdForPath(
?string $baseUrl,
@@ -173,7 +172,7 @@ public static function getBodyForPropfind(?array $properties): string {
* @param string[] $properties
* string can contain namespace prefix,
* if no prefix is given 'd:' is used as prefix
- * if associated array is used then the key will be used as namespace
+ * if an associative array is used then the key will be used as namespace
* @param string|null $xRequestId
* @param string|null $folderDepth
* @param string|null $type
@@ -181,6 +180,7 @@ public static function getBodyForPropfind(?array $properties): string {
* @param string|null $doDavRequestAsUser
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function propfind(
?string $baseUrl,
@@ -236,6 +236,7 @@ public static function propfind(
* @param string|null $type
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function proppatch(
?string $baseUrl,
@@ -386,6 +387,7 @@ public static function proppatchWithMultipleProps(
* @param int|null $davPathVersionToUse
*
* @return ResponseInterface
+ * @throws GuzzleException
*/
public static function listFolder(
?string $baseUrl,
@@ -428,7 +430,7 @@ public static function generateUUIDv4():string {
$data = random_bytes(16);
\assert(\strlen($data) == 16);
- $data[6] = \chr(\ord($data[6]) & 0x0f | 0x40); // set version to 0100
+ $data[6] = \chr(\ord($data[6]) & 0x0f | 0x40); // set the version to 0100
$data[8] = \chr(\ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
@@ -543,7 +545,7 @@ public static function getPersonalSpaceIdForUser(string $baseUrl, string $user,
}
/**
- * First checks if a user exist to return its space ID
+ * First checks if a user exists to return its space ID
* In case of any exception, it returns a fake space ID
*
* @param string $baseUrl
@@ -552,7 +554,7 @@ public static function getPersonalSpaceIdForUser(string $baseUrl, string $user,
* @param string $xRequestId
*
* @return string
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getPersonalSpaceIdForUserOrFakeIfNotFound(string $baseUrl, string $user, string $password, string $xRequestId):string {
try {
@@ -594,8 +596,8 @@ public static function getPersonalSpaceIdForUserOrFakeIfNotFound(string $baseUrl
* than download it all up-front.
* @param int|null $timeout
* @param Client|null $client
- * @param array|null $urlParameter to concatenate with path
- * @param string|null $doDavRequestAsUser run the DAV as this user, if null its same as $user
+ * @param array|null $urlParameter to concatenate with the path
+ * @param string|null $doDavRequestAsUser run the DAV as this user, if null it is the same as $user
*
* @return ResponseInterface
* @throws GuzzleException
@@ -622,7 +624,7 @@ public static function makeDavRequest(
):ResponseInterface {
$baseUrl = self::sanitizeUrl($baseUrl, true);
- // We need to manipulate and use path as a string.
+ // We need to manipulate and use the path as a string.
// So ensure that it is a string to avoid any type-conversion errors.
if ($path === null) {
$path = "";
@@ -729,7 +731,7 @@ public static function getDavPath(
} else {
if ($davPathVersionToUse === self::DAV_VERSION_OLD) {
if ($type === "trash-bin") {
- // Since there is no trash bin endpoint for old dav version, new dav version's endpoint is used here.
+ // Since there is no trash bin endpoint for an old dav version, new dav version's endpoint is used here.
return $newTrashbinDavPath;
}
return "remote.php/webdav/";
@@ -751,7 +753,7 @@ public static function getDavPath(
}
/**
- * make sure there are no double slash in the URL
+ * make sure there are no double slashes in the URL
*
* @param string|null $url
* @param bool|null $trailingSlash forces a trailing slash
@@ -764,30 +766,29 @@ public static function sanitizeUrl(?string $url, ?bool $trailingSlash = false):s
} else {
$url = \rtrim($url, "/");
}
- $url = \preg_replace("/([^:]\/)\/+/", '$1', $url);
- return $url;
+ return \preg_replace("/([^:]\/)\/+/", '$1', $url);
}
/**
- * decides if the proposed dav version and chunking version are
+ * Decides if the proposed dav version and chunking version are
* a valid combination.
* If no chunkingVersion is specified, then any dav version is valid.
* If a chunkingVersion is specified, then it has to match the dav version.
- * Note: in future the dav and chunking versions might or might not
+ * Note: in the future, the dav and chunking versions might or might not
* move together and/or be supported together. So a more complex
* matrix could be needed here.
*
* @param string|int $davPathVersion
* @param string|int|null $chunkingVersion
*
- * @return boolean is this a valid combination
+ * @return boolean if this a valid combination
*/
public static function isValidDavChunkingCombination(
$davPathVersion,
$chunkingVersion
): bool {
if ($davPathVersion === self::DAV_VERSION_SPACES) {
- // allow only old chunking version when using the spaces dav
+ // allow only an old chunking version when using the spaces dav
return $chunkingVersion === 1;
}
return (
@@ -806,9 +807,9 @@ public static function isValidDavChunkingCombination(
* @param int|null $davVersionToUse
*
* @return string
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
- public static function getMtimeOfFileinPublicLinkShare(
+ public static function getMtimeOfFileInPublicLinkShare(
?string $baseUrl,
?string $fileName,
?string $token,
@@ -819,7 +820,7 @@ public static function getMtimeOfFileinPublicLinkShare(
$baseUrl,
null,
null,
- "/public-files/{$token}/{$fileName}",
+ "/public-files/$token/$fileName",
['d:getlastmodified'],
$xRequestId,
'1',
@@ -846,7 +847,7 @@ public static function getMtimeOfFileinPublicLinkShare(
* @param int|null $davPathVersionToUse
*
* @return string
- * @throws Exception
+ * @throws Exception|GuzzleException
*/
public static function getMtimeOfResource(
?string $user,
@@ -875,7 +876,7 @@ public static function getMtimeOfResource(
Assert::assertArrayHasKey(
0,
$xmlpart,
- __METHOD__ . " XML part does not have key 0. Expected a value at index 0 of 'xmlPart' but, found: " . (string) json_encode($xmlpart)
+ __METHOD__ . " XML part does not have key 0. Expected a value at index 0 of 'xmlPart' but, found: " . json_encode($xmlpart)
);
$mtime = new DateTime($xmlpart[0]->__toString());
return $mtime->format('U');
diff --git a/tests/acceptance/features/bootstrap/PublicWebDavContext.php b/tests/acceptance/features/bootstrap/PublicWebDavContext.php
index 402a8000713f..c78c1a68c8f5 100644
--- a/tests/acceptance/features/bootstrap/PublicWebDavContext.php
+++ b/tests/acceptance/features/bootstrap/PublicWebDavContext.php
@@ -1466,7 +1466,7 @@ public function theMtimeOfFileInTheLastSharedPublicLinkUsingTheWebdavApiShouldBe
Assert::assertEquals(
$mtime,
- WebDavHelper::getMtimeOfFileinPublicLinkShare(
+ WebDavHelper::getMtimeOfFileInPublicLinkShare(
$baseUrl,
$fileName,
$token,
@@ -1492,7 +1492,7 @@ public function theMtimeOfFileInTheLastSharedPublicLinkUsingTheWebdavApiShouldNo
$baseUrl = $this->featureContext->getBaseUrl();
Assert::assertNotEquals(
$mtime,
- WebDavHelper::getMtimeOfFileinPublicLinkShare(
+ WebDavHelper::getMtimeOfFileInPublicLinkShare(
$baseUrl,
$fileName,
$token,
diff --git a/tests/acceptance/features/bootstrap/Sharing.php b/tests/acceptance/features/bootstrap/Sharing.php
index 0c8e342b2b48..d049b003d62c 100644
--- a/tests/acceptance/features/bootstrap/Sharing.php
+++ b/tests/acceptance/features/bootstrap/Sharing.php
@@ -1836,8 +1836,7 @@ public function userHasSharedFileWithGroupUsingTheSharingApi(
true
);
- Assert::assertEquals(
- true,
+ Assert::assertTrue(
$this->isUserOrGroupInSharedData($group, "group", $permissions),
__METHOD__
. " Could not assert that user '$user' has shared '$filepath' with group '$group' with permissions '$permissions'"
From 36c9b6bca2d0023852ffa5e8194d1f41fc95c903 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Mon, 8 May 2023 14:41:05 +0545
Subject: [PATCH 081/244] skip new last-login UI scenarios on old oC10
---
.../features/webUISettingsMenu/settingsMenu.feature | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/acceptance/features/webUISettingsMenu/settingsMenu.feature b/tests/acceptance/features/webUISettingsMenu/settingsMenu.feature
index 0aa0f9d17627..651c1a1e6438 100644
--- a/tests/acceptance/features/webUISettingsMenu/settingsMenu.feature
+++ b/tests/acceptance/features/webUISettingsMenu/settingsMenu.feature
@@ -49,7 +49,7 @@ Feature: add users
| Alice | seconds ago |
| Brian | never |
-
+ @skipOnOcV10.10 @skipOnOcV10.11 @skipOnOcV10.12
Scenario: administrator should not be able to see last login of a user when the UI setting is disabled
When the administrator disables the setting "Show last log in" in the User Management page using the webUI
Then the administrator should not be able to see the last login of these users in the User Management page:
@@ -57,7 +57,7 @@ Feature: add users
| Alice |
| Brian |
-
+ @skipOnOcV10.10 @skipOnOcV10.11 @skipOnOcV10.12
Scenario: administrator should not be able to see last login of a user when the UI setting is disabled
When the administrator disables the setting "Show last log in" in the User Management page using the webUI
And the user browses to the files page
From f940bdfbcba63bbb3955172afab46f44d616f181 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Tue, 9 May 2023 00:18:00 +0000
Subject: [PATCH 082/244] [tx] updated from transifex
---
apps/files/l10n/ja.js | 122 +-----------------
apps/files/l10n/ja.json | 122 +-----------------
tests/data/apptheme/apps/files/l10n/ja.js | 122 +-----------------
tests/data/apptheme/apps/files/l10n/ja.json | 122 +-----------------
tests/data/themes/abc/apps/files/l10n/ja.js | 122 +-----------------
tests/data/themes/abc/apps/files/l10n/ja.json | 122 +-----------------
6 files changed, 6 insertions(+), 726 deletions(-)
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/apptheme/apps/files/l10n/ja.js b/tests/data/apptheme/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.js
+++ b/tests/data/apptheme/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/apptheme/apps/files/l10n/ja.json b/tests/data/apptheme/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.json
+++ b/tests/data/apptheme/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.js b/tests/data/themes/abc/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.js
+++ b/tests/data/themes/abc/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.json b/tests/data/themes/abc/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.json
+++ b/tests/data/themes/abc/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
From 878569fc50ca6f0e9368ef63e9ab75e4c5c6e0f8 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Tue, 9 May 2023 05:43:32 +0000
Subject: [PATCH 083/244] [tx] updated from transifex
---
apps/files/l10n/ja.js | 122 +++++++++++++++++-
apps/files/l10n/ja.json | 122 +++++++++++++++++-
tests/data/apptheme/apps/files/l10n/ja.js | 122 +++++++++++++++++-
tests/data/apptheme/apps/files/l10n/ja.json | 122 +++++++++++++++++-
tests/data/themes/abc/apps/files/l10n/ja.js | 122 +++++++++++++++++-
tests/data/themes/abc/apps/files/l10n/ja.json | 122 +++++++++++++++++-
6 files changed, 726 insertions(+), 6 deletions(-)
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/apptheme/apps/files/l10n/ja.js b/tests/data/apptheme/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.js
+++ b/tests/data/apptheme/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/apptheme/apps/files/l10n/ja.json b/tests/data/apptheme/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.json
+++ b/tests/data/apptheme/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.js b/tests/data/themes/abc/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.js
+++ b/tests/data/themes/abc/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.json b/tests/data/themes/abc/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.json
+++ b/tests/data/themes/abc/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
From bd26aabc9eeeddc8f9ebf808e4220454e5031019 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Tue, 9 May 2023 10:12:26 +0000
Subject: [PATCH 084/244] [tx] updated from transifex
---
apps/files/l10n/ja.js | 122 +-----------------
apps/files/l10n/ja.json | 122 +-----------------
tests/data/apptheme/apps/files/l10n/ja.js | 122 +-----------------
tests/data/apptheme/apps/files/l10n/ja.json | 122 +-----------------
tests/data/themes/abc/apps/files/l10n/ja.js | 122 +-----------------
tests/data/themes/abc/apps/files/l10n/ja.json | 122 +-----------------
6 files changed, 6 insertions(+), 726 deletions(-)
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/apptheme/apps/files/l10n/ja.js b/tests/data/apptheme/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.js
+++ b/tests/data/apptheme/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/apptheme/apps/files/l10n/ja.json b/tests/data/apptheme/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.json
+++ b/tests/data/apptheme/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.js b/tests/data/themes/abc/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.js
+++ b/tests/data/themes/abc/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.json b/tests/data/themes/abc/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.json
+++ b/tests/data/themes/abc/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
From da52b224fdf14f10a1974ebcfaf6fb0d9cae1948 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Tue, 9 May 2023 14:49:44 +0545
Subject: [PATCH 085/244] Cleanup webUI test code
---
.../WebUIAdminAppsSettingsContext.php | 9 +-
.../WebUIAdminEncryptionSettingsContext.php | 29 +---
.../WebUIAdminGeneralSettingsContext.php | 20 +--
.../WebUIAdminSharingSettingsContext.php | 16 +-
.../WebUIAdminStorageSettingsContext.php | 16 +-
.../bootstrap/WebUIFileActionsMenuContext.php | 6 +-
.../features/bootstrap/WebUIFilesContext.php | 149 +++++-------------
.../bootstrap/WebUIGeneralContext.php | 71 +++------
.../bootstrap/WebUIHelpAndTipsContext.php | 22 +--
.../features/bootstrap/WebUILoginContext.php | 33 ++--
.../bootstrap/WebUINewFileMenuContext.php | 21 +--
.../bootstrap/WebUINotificationsContext.php | 14 +-
...WebUIPersonalEncryptionSettingsContext.php | 43 +----
.../WebUIPersonalGeneralSettingsContext.php | 16 +-
.../WebUIPersonalSecuritySettingsContext.php | 14 +-
.../WebUIPersonalSharingSettingsContext.php | 2 +-
.../features/bootstrap/WebUISearchContext.php | 26 +--
.../bootstrap/WebUISharingContext.php | 116 ++++----------
.../features/bootstrap/WebUITagsContext.php | 38 +----
.../features/bootstrap/WebUIUserContext.php | 6 +-
.../features/bootstrap/WebUIUsersContext.php | 54 ++-----
.../bootstrap/WebUIWebDavLockingContext.php | 29 +---
.../features/webUIFiles/versions.feature | 8 +-
.../features/webUILogin/resetPassword.feature | 2 +-
.../manageGroups.feature | 2 +-
25 files changed, 170 insertions(+), 592 deletions(-)
diff --git a/tests/acceptance/features/bootstrap/WebUIAdminAppsSettingsContext.php b/tests/acceptance/features/bootstrap/WebUIAdminAppsSettingsContext.php
index 7b7fdd851977..73a25e526558 100644
--- a/tests/acceptance/features/bootstrap/WebUIAdminAppsSettingsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIAdminAppsSettingsContext.php
@@ -32,13 +32,8 @@
* WebUI AdminAppsSettings context.
*/
class WebUIAdminAppsSettingsContext extends RawMinkContext implements Context {
- private $adminAppsSettingsPage;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
+ private AdminAppsSettingsPage $adminAppsSettingsPage;
+ private WebUIGeneralContext $webUIGeneralContext;
/**
* WebUIAdminAdminSettingsContext constructor.
diff --git a/tests/acceptance/features/bootstrap/WebUIAdminEncryptionSettingsContext.php b/tests/acceptance/features/bootstrap/WebUIAdminEncryptionSettingsContext.php
index f3fb6751a480..44790d30b93a 100644
--- a/tests/acceptance/features/bootstrap/WebUIAdminEncryptionSettingsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIAdminEncryptionSettingsContext.php
@@ -23,7 +23,6 @@
use Behat\Behat\Context\Context;
use Behat\Behat\Hook\Scope\BeforeScenarioScope;
use Behat\MinkExtension\Context\RawMinkContext;
-use Page\OwncloudPage;
use Page\AdminEncryptionSettingsPage;
require_once 'bootstrap.php';
@@ -32,40 +31,17 @@
* Context for admin encryption settings specific webUI steps
*/
class WebUIAdminEncryptionSettingsContext extends RawMinkContext implements Context {
- /**
- * @var FeatureContext
- */
- private $featureContext;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
-
- /**
- *
- * @var OwncloudPage
- */
- private $owncloudPage;
-
- /**
- *
- * @var AdminEncryptionSettingsPage
- */
- private $adminEncryptionSettingsPage;
+ private WebUIGeneralContext $webUIGeneralContext;
+ private AdminEncryptionSettingsPage $adminEncryptionSettingsPage;
/**
* WebUIAdminEncryptionSettingsContext constructor.
*
- * @param OwncloudPage $owncloudPage
* @param AdminEncryptionSettingsPage $adminEncryptionSettingsPage
*/
public function __construct(
- OwncloudPage $owncloudPage,
AdminEncryptionSettingsPage $adminEncryptionSettingsPage
) {
- $this->owncloudPage = $owncloudPage;
$this->adminEncryptionSettingsPage = $adminEncryptionSettingsPage;
}
@@ -104,7 +80,6 @@ public function setUpScenario(BeforeScenarioScope $scope):void {
// Get the environment
$environment = $scope->getEnvironment();
// Get all the contexts you need in this context
- $this->featureContext = $environment->getContext('FeatureContext');
$this->webUIGeneralContext = $environment->getContext('WebUIGeneralContext');
}
}
diff --git a/tests/acceptance/features/bootstrap/WebUIAdminGeneralSettingsContext.php b/tests/acceptance/features/bootstrap/WebUIAdminGeneralSettingsContext.php
index 327ab92526c1..dbdc4ed2fac5 100644
--- a/tests/acceptance/features/bootstrap/WebUIAdminGeneralSettingsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIAdminGeneralSettingsContext.php
@@ -36,22 +36,12 @@
* WebUI AdminGeneralSettings context.
*/
class WebUIAdminGeneralSettingsContext extends RawMinkContext implements Context {
- private $adminGeneralSettingsPage;
+ private AdminGeneralSettingsPage $adminGeneralSettingsPage;
+ private WebUIGeneralContext $webUIGeneralContext;
+ private FeatureContext $featureContext;
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
-
- private $appParameterValues = null;
- private $logLevelValue = null;
+ private ?array $appParameterValues = null;
+ private ?string $logLevelValue = null;
/**
* WebUIAdminAdminSettingsContext constructor.
diff --git a/tests/acceptance/features/bootstrap/WebUIAdminSharingSettingsContext.php b/tests/acceptance/features/bootstrap/WebUIAdminSharingSettingsContext.php
index 45adb8f876d1..91cc0b7a29cb 100644
--- a/tests/acceptance/features/bootstrap/WebUIAdminSharingSettingsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIAdminSharingSettingsContext.php
@@ -35,19 +35,9 @@
* WebUI AdminSharingSettings context.
*/
class WebUIAdminSharingSettingsContext extends RawMinkContext implements Context {
- private $adminSharingSettingsPage;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
+ private AdminSharingSettingsPage $adminSharingSettingsPage;
+ private WebUIGeneralContext $webUIGeneralContext;
+ private FeatureContext $featureContext;
/**
* WebUIAdminSharingSettingsContext constructor.
diff --git a/tests/acceptance/features/bootstrap/WebUIAdminStorageSettingsContext.php b/tests/acceptance/features/bootstrap/WebUIAdminStorageSettingsContext.php
index e04ebae05378..68553e55aa73 100644
--- a/tests/acceptance/features/bootstrap/WebUIAdminStorageSettingsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIAdminStorageSettingsContext.php
@@ -34,19 +34,9 @@
* WebUI AdminStorageSettings context.
*/
class WebUIAdminStorageSettingsContext extends RawMinkContext implements Context {
- private $adminStorageSettingsPage;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
+ private AdminStorageSettingsPage $adminStorageSettingsPage;
+ private WebUIGeneralContext $webUIGeneralContext;
+ private FeatureContext $featureContext;
/**
* WebUIAdminStorageSettingsContext constructor.
diff --git a/tests/acceptance/features/bootstrap/WebUIFileActionsMenuContext.php b/tests/acceptance/features/bootstrap/WebUIFileActionsMenuContext.php
index 51144b2e566c..b43555189049 100644
--- a/tests/acceptance/features/bootstrap/WebUIFileActionsMenuContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIFileActionsMenuContext.php
@@ -31,11 +31,7 @@
* Context for file actions menu
*/
class WebUIFileActionsMenuContext extends RawMinkContext implements Context {
- /**
- *
- * @var FilesPage
- */
- private $filesPage;
+ private FilesPage $filesPage;
/**
* WebUIFileActionsMenuContext constructor.
diff --git a/tests/acceptance/features/bootstrap/WebUIFilesContext.php b/tests/acceptance/features/bootstrap/WebUIFilesContext.php
index bc54f961611d..2e7a69f13817 100644
--- a/tests/acceptance/features/bootstrap/WebUIFilesContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIFilesContext.php
@@ -39,7 +39,6 @@
use Page\TrashbinPage;
use Page\FilesPageElement\ConflictDialog;
use Page\FilesPageElement\FileActionsMenu;
-use Page\GeneralExceptionPage;
use PHPUnit\Framework\Assert;
use SensioLabs\Behat\PageObjectExtension\PageObject\Exception\ElementNotFoundException;
use TestHelpers\Asserts\WebDav as WebDavAssert;
@@ -52,123 +51,52 @@
* WebUI Files context.
*/
class WebUIFilesContext extends RawMinkContext implements Context {
- /**
- *
- * @var FilesPage
- */
- private $filesPage;
-
- /**
- *
- * @var TrashbinPage
- */
- private $trashbinPage;
-
- /**
- *
- * @var FavoritesPage
- */
- private $favoritesPage;
-
- /**
- *
- * @var SharedWithYouPage
- */
- private $sharedWithYouPage;
-
- /**
- *
- * @var SharedByLinkPage
- */
- private $sharedByLinkPage;
-
- /**
- * @var SharedWithOthersPage
- */
- private $sharedWithOthersPage;
-
- /**
- *
- * @var TagsPage
- */
- private $tagsPage;
-
- /**
- *
- * @var ConflictDialog
- */
- private $conflictDialog;
-
- /**
- *
- * @var FileActionsMenu
- */
- private $openedFileActionMenu;
-
- /**
- *
- * @var ExternalStoragePage
- */
- private $externalStoragePage;
+ private FilesPage $filesPage;
+ private TrashbinPage $trashbinPage;
+ private FavoritesPage $favoritesPage;
+ private SharedWithYouPage $sharedWithYouPage;
+ private SharedByLinkPage $sharedByLinkPage;
+ private SharedWithOthersPage $sharedWithOthersPage;
+ private TagsPage $tagsPage;
+ private ConflictDialog $conflictDialog;
+ private FileActionsMenu $openedFileActionMenu;
+ private ExternalStoragePage $externalStoragePage;
/**
* Table of all files and folders that should have been deleted, stored so
* that other steps can use the list to check if the deletion happened correctly
* table headings: must be: |name|
- *
- * @var TableNode
*/
- private $deletedElementsTable = null;
+ private ?TableNode $deletedElementsTable = null;
/**
* Table of all files and folders that should have been moved, stored so
* that other steps can use the list to check if the moving happened correctly
* table headings: must be: |name|
- *
- * @var TableNode
*/
- private $movedElementsTable = null;
+ private ?TableNode $movedElementsTable = null;
/**
* variable to remember in which folder we are currently working
- *
- * @var string
*/
- private $currentFolder = "";
+ private string $currentFolder = "";
/**
* variable to remember with which file we are currently working
- *
- * @var string
*/
- private $currentFile = "";
+ private string $currentFile = "";
/**
* variable to remember the path of a received share that has been moved
- *
- * @var string
*/
- private $pathOfMovedReceivedShare = "";
+ private string $pathOfMovedReceivedShare = "";
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
+ private FeatureContext $featureContext;
- private $uploadConflictDialogTitle = "file conflict";
+ private WebUIGeneralContext $webUIGeneralContext;
- /**
- *
- * @var GeneralExceptionPage
- */
- private $generalExceptionPage;
+ private string $uploadConflictDialogTitle = "file conflict";
+ private FileRow $selectedFileRow;
/**
* WebUIFilesContext constructor.
@@ -181,7 +109,6 @@ class WebUIFilesContext extends RawMinkContext implements Context {
* @param TagsPage $tagsPage
* @param SharedByLinkPage $sharedByLinkPage
* @param SharedWithOthersPage $sharedWithOthersPage
- * @param GeneralExceptionPage $generalExceptionPage
* @param ExternalStoragePage $externalStoragePage
*
* @return void
@@ -195,7 +122,6 @@ public function __construct(
TagsPage $tagsPage,
SharedByLinkPage $sharedByLinkPage,
SharedWithOthersPage $sharedWithOthersPage,
- GeneralExceptionPage $generalExceptionPage,
ExternalStoragePage $externalStoragePage
) {
$this->trashbinPage = $trashbinPage;
@@ -206,7 +132,6 @@ public function __construct(
$this->tagsPage = $tagsPage;
$this->sharedByLinkPage = $sharedByLinkPage;
$this->sharedWithOthersPage = $sharedWithOthersPage;
- $this->generalExceptionPage = $generalExceptionPage;
$this->externalStoragePage = $externalStoragePage;
}
@@ -816,7 +741,7 @@ public function deleteTheFileUsingTheWebUI(string $name, bool $expectToDeleteFil
}
/**
- * for a folder or individual file that is shared, the receiver of the share
+ * For a folder or individual file that is shared, the receiver of the share
* has an "Unshare" entry in the file actions menu. Clicking it works just
* like delete.
*
@@ -832,7 +757,7 @@ public function theUserDeletesFileUsingTheWebUI(string $name):void {
}
/**
- * for a folder or individual file that is shared as federated share, the receiver of the share
+ * For a folder or individual file that is shared as federated share, the receiver of the share
* has an "Unshare" entry in the file actions menu of the share in the
* sharedwithme page. Clicking it works just like delete.
*
@@ -1075,7 +1000,7 @@ public function theFollowingElementsShouldBeListedAsUploadedFilesOnTheWebUI(Tabl
$this->featureContext->verifyTableNodeColumns($table, ["uploaded-elements"]);
$expectedElements = [];
foreach ($table as $row) {
- \array_push($expectedElements, $row["uploaded-elements"]);
+ $expectedElements[] = $row["uploaded-elements"];
}
$pageObject = $this->getCurrentPageObject();
$currentUploadedElements = $pageObject->getCompletelyUploadedElements();
@@ -1467,7 +1392,7 @@ public function theUserOpensTheFileOrFolderUsingTheWebUI(
}
if (\count($breadCrumbs)) {
$this->currentFolder .= "/" . \implode('/', $breadCrumbs);
- };
+ }
}
}
@@ -1546,7 +1471,7 @@ public function fileFolderShouldBeListedOnTheWebUI(
* @param string $typeOfFilesPage
* @param string $folder
* @param string $path if set, name and path (shown on the webUI) of the file to match
- * @param FilesPageBasic $pageObject if not null use this pageObject and ignore $typeOfFilesPage
+ * @param FilesPageBasic|null $pageObject if not null use this pageObject and ignore $typeOfFilesPage
*
* @return void
* @throws Exception
@@ -1560,7 +1485,6 @@ public function checkIfFileFolderIsListedOnTheWebUI(
FilesPageBasic $pageObject = null
) {
$should = ($shouldOrNot !== "not");
- $exceptionMessage = null;
switch ($typeOfFilesPage) {
case "files page":
$this->theUserBrowsesToThePage($this->filesPage);
@@ -1742,8 +1666,8 @@ public function theFollowingFileFolderShouldBeListedInTheFollowingFolderOnTheWeb
* @param string $shouldOrNot
* @param string $typeOfFilesPage
* @param string $folder
- * @param TableNode $namePartsTable table of parts of the file name
- * table headings: must be: |name-parts |
+ * @param TableNode|null $namePartsTable table of parts of the file name
+ * table headings: must be: |name-parts |
*
* @return void
* @throws Exception
@@ -1866,7 +1790,7 @@ public function itShouldNotBePossibleToDeleteFileFolderUsingTheWebUI(string $nam
* @throws Exception
*/
public function itShouldBePossibleToDeleteFileFolderUsingTheWebUI(string $name):void {
- $this->deleteTheFileUsingTheWebUI($name, true);
+ $this->deleteTheFileUsingTheWebUI($name);
}
/**
@@ -2361,15 +2285,15 @@ public function userDownloadsFile(string $fileName):void {
$this->openedFileActionMenu = $this->selectedFileRow->openFileActionsMenu($session);
$url = $this->openedFileActionMenu->getDownloadUrlForFile();
$baseUrl = $this->featureContext->getBaseUrlWithoutPath();
- $this->response = HttpRequestHelper::get(
+ $response = HttpRequestHelper::get(
$baseUrl . $url,
$this->featureContext->getStepLineRef()
);
Assert::assertEquals(
200,
- $this->response->getStatusCode()
+ $response->getStatusCode()
);
- $this->featureContext->setResponse($this->response);
+ $this->featureContext->setResponse($response);
}
/**
@@ -2466,7 +2390,7 @@ public function folderShouldBeDownloaded(string $expectedFolder):void {
* @return void
* @throws Exception
*/
- public function theUserUnzipsTheFolder(string $file):void {
+ public function theUserUnzipsTheFile(string $file):void {
$zip = new ZipArchive;
$directory = getenv("DOWNLOADS_DIRECTORY");
if (!$directory) {
@@ -2477,7 +2401,6 @@ public function theUserUnzipsTheFolder(string $file):void {
if ($res === true) {
$zip->extractTo($directory);
$zip->close();
- $files = array_diff(scandir($directory), ['.', '..']); // get all file names and remove '.', '..'
} else {
throw new Exception("Couldn't open the file $zipFile");
}
@@ -2649,7 +2572,7 @@ public function theVersionsListShouldContainEntries(int $num):void {
}
/**
- * @Then the author(s) of the current and noncurrent version(s) of file/folder :resource should be:
+ * @Then the author(s) of the current and non-current version(s) of file/folder :resource should be:
*
* @param string $resource
* @param TableNode $versionTable
@@ -2657,7 +2580,7 @@ public function theVersionsListShouldContainEntries(int $num):void {
* @return void
* @throws Exception
*/
- public function theAuthorsOfCurrentAndNoncurrentVersionsOfFileShouldBe(string $resource, TableNode $versionTable):void {
+ public function theAuthorsOfCurrentAndNonCurrentVersionsOfFileShouldBe(string $resource, TableNode $versionTable):void {
$this->featureContext->verifyTableNodeColumns(
$versionTable,
['index', 'author']
@@ -2782,9 +2705,9 @@ public function deleteUnzippedAndDownloadedResources():void {
RecursiveIteratorIterator::CHILD_FIRST
);
- foreach ($files as $fileinfo) {
- $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink');
- $todo($fileinfo->getRealPath());
+ foreach ($files as $fileInfo) {
+ $todo = ($fileInfo->isDir() ? 'rmdir' : 'unlink');
+ $todo($fileInfo->getRealPath());
}
}
}
diff --git a/tests/acceptance/features/bootstrap/WebUIGeneralContext.php b/tests/acceptance/features/bootstrap/WebUIGeneralContext.php
index 814f9201a927..3278fb9b8f3f 100644
--- a/tests/acceptance/features/bootstrap/WebUIGeneralContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIGeneralContext.php
@@ -43,66 +43,33 @@
* WebUI General context.
*/
class WebUIGeneralContext extends RawMinkContext implements Context {
- private $owncloudPage;
+ private OwncloudPage $owncloudPage;
+ private GeneralErrorPage $generalErrorPage;
+ private GeneralExceptionPage $generalExceptionPage;
+ private LoginPage $loginPage;
- /**
- *
- * @var GeneralErrorPage
- */
- private $generalErrorPage;
-
- /**
- *
- * @var GeneralExceptionPage
- */
- private $generalExceptionPage;
-
- /**
- *
- * @var LoginPage
- */
- private $loginPage;
-
- private $oldCSRFSetting = null;
- private $oldPreviewSetting = [];
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext = null;
+ private ?string $oldCSRFSetting = null;
+ private array $oldPreviewSetting = [];
+ private ?FeatureContext $featureContext = null;
+ private ?WebUIFilesContext $webUIFilesContext = null;
+ private ?OwncloudPage $currentPageObject = null;
+ private ?string $currentServer = null;
/**
- *
- * @var WebUIFilesContext
+ * the original capabilities in XML format
*/
- private $webUIFilesContext = null;
+ private array $savedCapabilitiesXml;
/**
- *
- * @var OwncloudPage
+ * the changes made to capabilities for the test scenario
*/
- private $currentPageObject = null;
-
- private $currentServer = null;
+ private array $savedCapabilitiesChanges = [];
/**
- * @var array the original capabilities in XML format
- */
- private $savedCapabilitiesXml;
-
- /**
- * @var array the changes made to capabilities for the test scenario
- */
- private $savedCapabilitiesChanges = [];
-
- /**
- * table of capabilities to map the human readable terms from the settings page
+ * table of capabilities to map the human-readable terms from the settings page
* to terms in the capabilities XML and testing app
- *
- * @var array
*/
- private $capabilities = [
+ private array $capabilities = [
'sharing' => [
'Allow apps to use the Share API' => [
'capabilitiesApp' => 'files_sharing',
@@ -364,6 +331,7 @@ public function notificationsShouldBeDisplayedOnTheWebUIWithTheText(
foreach ($expectedNotifications as $expectedNotification) {
$expectedNotificationText = $expectedNotification[0];
$matchingSucceeded = false;
+ $latestActualNotificationText = "unknown";
foreach ($actualNotifications as $key => $actualNotificationText) {
$latestActualNotificationText = $actualNotificationText;
if ((($matching !== "matching") && ($expectedNotificationText === $actualNotificationText))
@@ -826,7 +794,7 @@ function ($server) {
}
/**
- * enable the previews on all tests tagged with '@enablePreviews'
+ * Enable the previews on all tests tagged with '@enablePreviews'
*
* Sometimes when testing locally, or if the `enable_previews` is turned off,
* the tests such as the one testing thumbnails may fail. This enables the preview
@@ -863,8 +831,7 @@ function ($server) {
public function getSessionId():string {
$url = $this->getSession()->getDriver()->getWebDriverSession()->getUrl();
$parts = \explode('/', $url);
- $sessionId = \array_pop($parts);
- return $sessionId;
+ return \array_pop($parts);
}
/**
diff --git a/tests/acceptance/features/bootstrap/WebUIHelpAndTipsContext.php b/tests/acceptance/features/bootstrap/WebUIHelpAndTipsContext.php
index f3cb2b2e5168..07becd8befa7 100644
--- a/tests/acceptance/features/bootstrap/WebUIHelpAndTipsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIHelpAndTipsContext.php
@@ -34,19 +34,9 @@
* WebUI HelpAndTips context.
*/
class WebUIHelpAndTipsContext extends RawMinkContext implements Context {
- private $helpAndTipsPage;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
+ private HelpAndTipsPage $helpAndTipsPage;
+ private WebUIGeneralContext $webUIGeneralContext;
+ private FeatureContext $featureContext;
/**
* WebUIHelpAndTips constructor.
@@ -60,7 +50,7 @@ public function __construct(
}
/**
- * return actual link from help and tips page
+ * return the actual link from the help and tips page
*
* @param string $to
*
@@ -73,7 +63,7 @@ protected function generateHelpLinks(string $to):string {
$this->featureContext->getStepLineRef()
);
$version = \explode(".", $version);
- $version = (string) $version[0] . "." . (string) $version[1];
+ $version = $version[0] . "." . $version[1];
return "https://doc.owncloud.com/server/$version/go.php?to=$to";
}
@@ -159,7 +149,7 @@ public function theAdministratorOpensTheLinkFor(string $linkTitle):void {
$link = $this->helpAndTipsPage->getLinkByTitle($linkTitle);
$link->click();
- // switch to next tab as the link opens in new tab
+ // switch to the next tab as the link opens in the new tab
$windowNames = $this->getSession()->getWindowNames();
if (\count($windowNames) > 1) {
$this->getSession()->switchToWindow($windowNames[1]);
diff --git a/tests/acceptance/features/bootstrap/WebUILoginContext.php b/tests/acceptance/features/bootstrap/WebUILoginContext.php
index 700230deba9d..6790659b0633 100644
--- a/tests/acceptance/features/bootstrap/WebUILoginContext.php
+++ b/tests/acceptance/features/bootstrap/WebUILoginContext.php
@@ -25,8 +25,10 @@
use Behat\Gherkin\Node\PyStringNode;
use Behat\Mink\Exception\ElementNotFoundException;
use Behat\MinkExtension\Context\RawMinkContext;
+use GuzzleHttp\Exception\GuzzleException;
use Page\LoginPage;
use PHPUnit\Framework\Assert;
+use SensioLabs\Behat\PageObjectExtension\PageObject\Page;
require_once 'bootstrap.php';
@@ -34,21 +36,10 @@
* WebUI Login context.
*/
class WebUILoginContext extends RawMinkContext implements Context {
- private $loginPage;
- private $filesPage;
- private $expectedPage;
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
+ private LoginPage $loginPage;
+ private Page $filesPage;
+ private FeatureContext $featureContext;
+ private WebUIGeneralContext $webUIGeneralContext;
/**
* WebUILoginContext constructor.
@@ -68,7 +59,7 @@ private function getExpectedLoginSuccessPageTitle():string {
}
/**
- * after a successful login we always end up on the Files Page
+ * after a successful login, we always end up on the Files Page
*
* @return void
*/
@@ -458,7 +449,7 @@ public function userLogInWithUsernameAndPasswordAfterRedirectFromPage(
string $password,
string $page
):void {
- $this->expectedPage = $this->webUIGeneralContext->loginAs(
+ $this->webUIGeneralContext->loginAs(
$username,
$password,
\str_replace(' ', '', \ucwords($page)) . 'Page'
@@ -688,7 +679,7 @@ public function theUserFollowsThePasswordResetLinkFromTheirEmail(string $user):v
}
/**
- * @When the user follows the password reset link from email address of the user :user but supplying invalid user name :username
+ * @When the user follows the password reset link from email address of the user :user but supplying invalid username :username
*
* @param string $user
* @param string $username
@@ -712,7 +703,7 @@ public function theUserFollowsThePasswordResetLinkFromTheirEmailUsingInvalidUser
// pop off the last part and replace it with the invalid username
$linkParts = \explode('/', $link);
\array_pop($linkParts);
- \array_push($linkParts, $username);
+ $linkParts[] = $username;
$adjustedLink = \implode('/', $linkParts);
$this->visitPath($adjustedLink);
}
@@ -743,7 +734,7 @@ public function theUserFollowsThePasswordResetLinkFromTheirEmailUsingInvalidToke
// reverse the token string, an easy way to make the token invalid
$invalidToken = \strrev($goodToken);
\array_push($linkParts, $invalidToken);
- \array_push($linkParts, $username);
+ $linkParts[] = $username;
$adjustedLink = \implode('/', $linkParts);
$this->visitPath($adjustedLink);
}
@@ -814,7 +805,7 @@ public function theUserShouldBeRedirectedToTheLoginPage():void {
*
* @return void
* @throws Exception
- * @throws \GuzzleHttp\Exception\GuzzleException
+ * @throws GuzzleException
*/
public function theUserFollowsThePasswordSetLinkReceivedByEmail(string $emailAddress, int $numEmails = 1):void {
$this->featureContext->pushEmailRecipientAsMailBox($emailAddress);
diff --git a/tests/acceptance/features/bootstrap/WebUINewFileMenuContext.php b/tests/acceptance/features/bootstrap/WebUINewFileMenuContext.php
index 000ef9dd3cc0..a7ea5a887eaf 100644
--- a/tests/acceptance/features/bootstrap/WebUINewFileMenuContext.php
+++ b/tests/acceptance/features/bootstrap/WebUINewFileMenuContext.php
@@ -23,7 +23,6 @@
use Behat\Behat\Context\Context;
use Behat\MinkExtension\Context\RawMinkContext;
-use Page\FilesPage;
use Page\FilesPageElement\NewFileMenu;
use PHPUnit\Framework\Assert;
@@ -33,31 +32,17 @@
* Context for new file menu
*/
class WebUINewFileMenuContext extends RawMinkContext implements Context {
- /**
- *
- * @var FilesPage
- */
- private $filesPage;
-
- /**
- *
- * @var NewFileMenu
- */
- private $newFileMenu;
+ private NewFileMenu $newFileMenu;
/**
* WebUINewFileMenuContext constructor.
*
- * @param FilesPage $filesPage
* @param NewFileMenu $newFileMenu
*
- * @return void
*/
public function __construct(
- FilesPage $filesPage,
NewFileMenu $newFileMenu
) {
- $this->filesPage = $filesPage;
$this->newFileMenu = $newFileMenu;
}
@@ -66,7 +51,7 @@ public function __construct(
*
* @return void
*/
- public function theUserOpensTheNewfilemenuUsingTheWebUI():void {
+ public function theUserOpensTheNewFileMenuUsingTheWebUI():void {
$this->newFileMenu->openNewFileMenu();
}
@@ -75,7 +60,7 @@ public function theUserOpensTheNewfilemenuUsingTheWebUI():void {
*
* @return void
*/
- public function theNewFilemenuShouldBeDisplayedOnTheWebUI():void {
+ public function theNewFileMenuShouldBeDisplayedOnTheWebUI():void {
Assert::assertNotNull(
$this->newFileMenu->getNewFileMenu(),
'New file menu is expected to be visible but is not'
diff --git a/tests/acceptance/features/bootstrap/WebUINotificationsContext.php b/tests/acceptance/features/bootstrap/WebUINotificationsContext.php
index 80c79c4e062a..c751c9f1fe56 100644
--- a/tests/acceptance/features/bootstrap/WebUINotificationsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUINotificationsContext.php
@@ -26,6 +26,7 @@
use Behat\Gherkin\Node\TableNode;
use Behat\Mink\Session;
use Behat\MinkExtension\Context\RawMinkContext;
+use Page\Notification;
use Page\NotificationsEnabledOwncloudPage;
use PHPUnit\Framework\Assert;
@@ -34,17 +35,8 @@
*
*/
class WebUINotificationsContext extends RawMinkContext implements Context {
- /**
- *
- * @var NotificationsEnabledOwncloudPage
- */
- private $owncloudPage;
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
+ private NotificationsEnabledOwncloudPage $owncloudPage;
+ private FeatureContext $featureContext;
/**
*
diff --git a/tests/acceptance/features/bootstrap/WebUIPersonalEncryptionSettingsContext.php b/tests/acceptance/features/bootstrap/WebUIPersonalEncryptionSettingsContext.php
index c63db7c2edcf..985eda73ee66 100644
--- a/tests/acceptance/features/bootstrap/WebUIPersonalEncryptionSettingsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIPersonalEncryptionSettingsContext.php
@@ -21,10 +21,8 @@
*/
use Behat\Behat\Context\Context;
-use Behat\Behat\Hook\Scope\BeforeScenarioScope;
use Behat\MinkExtension\Context\RawMinkContext;
use Page\PersonalEncryptionSettingsPage;
-use Page\OwncloudPage;
require_once 'bootstrap.php';
@@ -32,40 +30,16 @@
* Context for personal encryption settings specific webUI steps
*/
class WebUIPersonalEncryptionSettingsContext extends RawMinkContext implements Context {
- /**
- * @var FeatureContext
- */
- private $featureContext;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
-
- /**
- *
- * @var OwncloudPage
- */
- private $owncloudPage;
-
- /**
- *
- * @var PersonalEncryptionSettingsPage
- */
- private $personalEncryptionSettingsPage;
+ private PersonalEncryptionSettingsPage $personalEncryptionSettingsPage;
/**
* WebUIPersonalEncryptionSettingsContext constructor.
*
- * @param OwncloudPage $owncloudPage
* @param PersonalEncryptionSettingsPage $personalEncryptionSettingsPage
*/
public function __construct(
- OwncloudPage $owncloudPage,
PersonalEncryptionSettingsPage $personalEncryptionSettingsPage
) {
- $this->owncloudPage = $owncloudPage;
$this->personalEncryptionSettingsPage = $personalEncryptionSettingsPage;
}
@@ -89,19 +63,4 @@ public function theUserHasEnabledPasswordRecovery():void {
$this->personalEncryptionSettingsPage->enablePasswordRecovery();
$this->personalEncryptionSettingsPage->waitForAjaxCallsToStartAndFinish($this->getSession());
}
-
- /**
- * @BeforeScenario
- *
- * @param BeforeScenarioScope $scope
- *
- * @return void
- */
- public function setUpScenario(BeforeScenarioScope $scope):void {
- // Get the environment
- $environment = $scope->getEnvironment();
- // Get all the contexts you need in this context
- $this->featureContext = $environment->getContext('FeatureContext');
- $this->webUIGeneralContext = $environment->getContext('WebUIGeneralContext');
- }
}
diff --git a/tests/acceptance/features/bootstrap/WebUIPersonalGeneralSettingsContext.php b/tests/acceptance/features/bootstrap/WebUIPersonalGeneralSettingsContext.php
index b18152d896a2..09f3c669a654 100644
--- a/tests/acceptance/features/bootstrap/WebUIPersonalGeneralSettingsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIPersonalGeneralSettingsContext.php
@@ -33,19 +33,9 @@
* WebUI PersonalGeneralSettings context.
*/
class WebUIPersonalGeneralSettingsContext extends RawMinkContext implements Context {
- private $personalGeneralSettingsPage;
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
+ private PersonalGeneralSettingsPage $personalGeneralSettingsPage;
+ private FeatureContext $featureContext;
+ private WebUIGeneralContext $webUIGeneralContext;
/**
* WebUIPersonalGeneralSettingsContext constructor.
diff --git a/tests/acceptance/features/bootstrap/WebUIPersonalSecuritySettingsContext.php b/tests/acceptance/features/bootstrap/WebUIPersonalSecuritySettingsContext.php
index dd54c4530bae..6fb66e552d6d 100644
--- a/tests/acceptance/features/bootstrap/WebUIPersonalSecuritySettingsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIPersonalSecuritySettingsContext.php
@@ -33,14 +33,13 @@
* WebUI PersonalSecuritySettings context.
*/
class WebUIPersonalSecuritySettingsContext extends RawMinkContext implements Context {
- private $personalSecuritySettingsPage;
+ private PersonalSecuritySettingsPage $personalSecuritySettingsPage;
private $appName;
- private $strForAppName = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- private $webUILoginContext;
- private $featureContext;
- private $webUIGeneralContext;
- private $newAppPassword = null;
- private $loginPage;
+ private string $strForAppName = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+ private WebUILoginContext $webUILoginContext;
+ private WebUIGeneralContext $webUIGeneralContext;
+ private ?string $newAppPassword = null;
+ private LoginPage $loginPage;
/**
* WebUIPersonalSecuritySettingsContext constructor.
@@ -167,7 +166,6 @@ public function before(BeforeScenarioScope $scope):void {
// Get the environment
$environment = $scope->getEnvironment();
// Get all the contexts you need in this context
- $this->featureContext = $environment->getContext('FeatureContext');
$this->webUILoginContext = $environment->getContext('WebUILoginContext');
$this->webUIGeneralContext = $environment->getContext('WebUIGeneralContext');
}
diff --git a/tests/acceptance/features/bootstrap/WebUIPersonalSharingSettingsContext.php b/tests/acceptance/features/bootstrap/WebUIPersonalSharingSettingsContext.php
index 6fec88b4f9e0..96bf0b1b5b08 100644
--- a/tests/acceptance/features/bootstrap/WebUIPersonalSharingSettingsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIPersonalSharingSettingsContext.php
@@ -31,7 +31,7 @@
* steps for personal sharing settings
*/
class WebUIPersonalSharingSettingsContext extends RawMinkContext implements Context {
- private $personalSharingSettingsPage;
+ private PersonalSharingSettingsPage $personalSharingSettingsPage;
/**
*
diff --git a/tests/acceptance/features/bootstrap/WebUISearchContext.php b/tests/acceptance/features/bootstrap/WebUISearchContext.php
index 8f8a9d847cef..a757c45526d1 100644
--- a/tests/acceptance/features/bootstrap/WebUISearchContext.php
+++ b/tests/acceptance/features/bootstrap/WebUISearchContext.php
@@ -32,28 +32,10 @@
* WebUI Search context.
*/
class WebUISearchContext extends RawMinkContext implements Context {
- /**
- *
- * @var SearchResultInOtherFoldersPage
- */
- private $searchResultInOtherFoldersPage;
- /**
- *
- * @var FilesPage
- */
- private $filesPage;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
-
- /**
- *
- * @var WebUIFilesContext
- */
- private $webUIFilesContext;
+ private SearchResultInOtherFoldersPage $searchResultInOtherFoldersPage;
+ private FilesPage $filesPage;
+ private WebUIGeneralContext $webUIGeneralContext;
+ private WebUIFilesContext $webUIFilesContext;
/**
* WebUILoginContext constructor.
diff --git a/tests/acceptance/features/bootstrap/WebUISharingContext.php b/tests/acceptance/features/bootstrap/WebUISharingContext.php
index c87695ec482b..3271adeb94c3 100644
--- a/tests/acceptance/features/bootstrap/WebUISharingContext.php
+++ b/tests/acceptance/features/bootstrap/WebUISharingContext.php
@@ -26,15 +26,14 @@
use Behat\MinkExtension\Context\RawMinkContext;
use Psr\Http\Message\ResponseInterface;
use Page\FilesPage;
-use Page\FilesPageElement\SharingDialog;
use Page\FilesPageElement\SharingDialogElement\EditPublicLinkPopup;
use Page\FilesPageElement\SharingDialogElement\PublicLinkTab;
use Page\GeneralErrorPage;
use Page\PublicLinkFilesPage;
-use Page\SharedWithOthersPage;
use Page\SharedWithYouPage;
use PHPUnit\Framework\Assert;
use SensioLabs\Behat\PageObjectExtension\PageObject\Exception\ElementNotFoundException;
+use SensioLabs\Behat\PageObjectExtension\PageObject\Page;
use TestHelpers\EmailHelper;
use TestHelpers\HttpRequestHelper;
use TestHelpers\SetupHelper;
@@ -45,73 +44,19 @@
* WebUI SharingContext context.
*/
class WebUISharingContext extends RawMinkContext implements Context {
- /**
- *
- * @var FilesPage
- */
- private $filesPage;
-
- /**
- *
- * @var PublicLinkFilesPage
- */
- private $publicLinkFilesPage;
-
- /**
- *
- * @var SharedWithYouPage
- */
- private $sharedWithYouPage;
-
- /**
- * @var SharedWithOthersPage
- */
- private $sharedWithOthersPage;
-
- /**
- *
- * @var GeneralErrorPage
- */
- private $generalErrorPage;
-
- /**
- *
- * @var SharingDialog
- */
- private $sharingDialog;
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
-
- /**
- *
- * @var WebUIFilesContext
- */
- private $webUIFilesContext;
-
- private $oldMinCharactersForAutocomplete = null;
- private $oldFedSharingFallbackSetting = null;
-
- /**
- * @var PublicLinkTab
- */
- private $publicShareTab;
-
- /**
- *
- * @var EditPublicLinkPopup
- */
- private $publicSharingPopup;
- private $linkName;
+ private FilesPage $filesPage;
+ private PublicLinkFilesPage $publicLinkFilesPage;
+ private SharedWithYouPage $sharedWithYouPage;
+ private GeneralErrorPage $generalErrorPage;
+ private ?Page $sharingDialog = null;
+ private FeatureContext $featureContext;
+ private WebUIGeneralContext $webUIGeneralContext;
+ private WebUIFilesContext $webUIFilesContext;
+ private ?string $oldMinCharactersForAutocomplete = null;
+ private ?string $oldFedSharingFallbackSetting = null;
+ private PublicLinkTab $publicShareTab;
+ private EditPublicLinkPopup $publicSharingPopup;
+ private string $linkName;
/**
* WebUISharingContext constructor.
@@ -120,20 +65,17 @@ class WebUISharingContext extends RawMinkContext implements Context {
* @param PublicLinkFilesPage $publicLinkFilesPage
* @param SharedWithYouPage $sharedWithYouPage
* @param GeneralErrorPage $generalErrorPage
- * @param SharedWithOthersPage $sharedWithOthersPage
*/
public function __construct(
FilesPage $filesPage,
PublicLinkFilesPage $publicLinkFilesPage,
SharedWithYouPage $sharedWithYouPage,
- GeneralErrorPage $generalErrorPage,
- SharedWithOthersPage $sharedWithOthersPage
+ GeneralErrorPage $generalErrorPage
) {
$this->filesPage = $filesPage;
$this->publicLinkFilesPage = $publicLinkFilesPage;
$this->sharedWithYouPage = $sharedWithYouPage;
$this->generalErrorPage = $generalErrorPage;
- $this->sharedWithOthersPage = $sharedWithOthersPage;
}
/**
@@ -434,6 +376,7 @@ public function theUserSharesUsingWebUIWithoutClosingDialog(
// open each of the folders until the last resource should be displayed.
$resourceParts = \explode("/", $resource);
$numberOfResourceParts = \count($resourceParts);
+ $finalResource = '';
foreach ($resourceParts as $key => $resourcePart) {
// open each folder in the path, so that the last item should be listed
if ($key === ($numberOfResourceParts - 1)) {
@@ -511,9 +454,9 @@ public function theUserSharesUsingWebUIWithoutClosingDialog(
$sharePath = (string) $shareItem->path;
$slashSharePath = "/" . \trim($sharePath, "/");
// The user might have navigated down multiple folders /a/b/c and shared "d".
- // Normally the share path will be /a/b/c/d
+ // Normally, the share path will be /a/b/c/d
// But the user might have received "a" as a share, but also "b" as a separate share.
- // (maybe the two shares were to two different groups and the user is a member of both)
+ // (Maybe the two shares were to two different groups and the user is a member of both)
// Then the user will also have a path to "d" that is b/c/d only.
// And the share response actually provides that path.
// So match any share path like /b/c/d or /c/d if it appears at the end of the expected path,
@@ -629,7 +572,7 @@ public function shouldBeListedInTheSharedWithList(
$should = ($shouldOrNot !== "not");
// The capturing groups of the regex include the quotes at each
// end of the captured string, so trim them.
- $groupName = \trim($groupName, '""');
+ $groupName = \trim($groupName, '"');
$presence = $this->sharingDialog->isGroupPresentInShareWithList($groupName);
if ($should) {
PHPUnit\Framework\Assert::assertTrue(
@@ -666,7 +609,7 @@ public function theUserHasOpenedThePublicLinkShareTab():void {
* @return void
*/
public function theUserDeleteShareWithUser(string $userOrGroup, string $name):void {
- $name = \trim($name, '""');
+ $name = \trim($name, '"');
if ($userOrGroup === "user") {
$name = $this->featureContext->getDisplayNameForUser($name);
}
@@ -915,7 +858,7 @@ public function theUserCreatesAReadOnlyPublicLinkForFolderUsingTheQuickActionBut
* possible settings: name, permission,
* password, expiration, email, emailToSelf, personalMessage
* the permissions values has to be written exactly
- * the way its written in the UI
+ * the way it's written in the UI
* Setting emailToSelf will send a copy of email to the link creator
*
* @return void
@@ -927,6 +870,7 @@ public function theUserCreatesANewPublicLinkForFileFolderUsingTheWebUIWith(
):void {
$nameParts = \explode("/", $name);
$numberOfNameParts = \count($nameParts);
+ $finalName = '';
foreach ($nameParts as $key => $namePart) {
// open each folder in the path, so that the last item should be listed
if ($key === ($numberOfNameParts - 1)) {
@@ -977,8 +921,8 @@ public function theUserCreatesANewPublicLinkForFileFolderUsingTheWebUIWith(
* @param TableNode|null $settings table with the settings and no header
* possible settings: name, permission,
* password, expiration, email
- * the permissions values has to be written exactly
- * the way its written in the UI
+ * the permission values have to be written exactly
+ * the way they are written in the UI
*
* @return void
* @throws Exception
@@ -1097,7 +1041,7 @@ public function theUserSetsTheSharingPermissionsOfForOnTheWebUI(
);
// The capturing groups of the regex include the quotes at each
// end of the captured string, so trim them.
- $userName = $this->featureContext->substituteInLineCodes(\trim($userName, '""'));
+ $userName = $this->featureContext->substituteInLineCodes(\trim($userName, '"'));
$userAdditionalInfoFromAppConfig = \TestHelpers\AppConfigHelper::getAppConfig(
$this->featureContext->getBaseUrl(),
$this->featureContext->getAdminUsername(),
@@ -1113,7 +1057,7 @@ public function theUserSetsTheSharingPermissionsOfForOnTheWebUI(
$userName = $userName . " (" . $userNameActual . ")";
}
}
- $this->theUserOpensTheShareDialogForFileFolder(\trim($fileName, '""'));
+ $this->theUserOpensTheShareDialogForFileFolder(\trim($fileName, '"'));
$this->sharingDialog->setSharingPermissions(
$userOrGroup,
$userName,
@@ -1146,11 +1090,11 @@ public function theFollowingPermissionsAreSeenForInTheSharingDialogFor(
):void {
$this->featureContext->verifyTableNodeRows($permissionsTable, [], ['share', 'edit', 'create', 'change', 'delete']);
- $userName = $this->featureContext->substituteInLineCodes(\trim($userName, '""'));
+ $userName = $this->featureContext->substituteInLineCodes(\trim($userName, '"'));
if ($userOrGroup === "user") {
$userName = $this->featureContext->getDisplayNameForUser($userName);
}
- $this->theUserOpensTheShareDialogForFileFolder(\trim($fileName, '""'));
+ $this->theUserOpensTheShareDialogForFileFolder(\trim($fileName, '"'));
$this->sharingDialog->checkSharingPermissions(
$userOrGroup,
$userName,
@@ -1891,7 +1835,7 @@ public function fileFolderShouldBeMarkedAsSharedBy(
$sharingBtn = $row->findSharingButton();
$mobileResolution = getenv("MOBILE_RESOLUTION");
// checking if MOBILE_RESOLUTION is set and skip this step if true as
- // in mobile resolution sharer name is not displayed in file row
+ // in mobile resolution sharer name is not displayed in the file row
if (empty($mobileResolution)) {
Assert::assertSame(
$sharerName,
@@ -2160,7 +2104,7 @@ public function thePublicShouldSeeAnErrorMessageWhileAccessingLastCreatedPublicL
* @param TableNode|null $settings table with the settings and no header
* possible settings: name, permission,
* password, expiration, email, personalMessage
- * the permissions values have to be written
+ * the permission values have to be written
* exactly the way they are written in the UI
*
* @return string
diff --git a/tests/acceptance/features/bootstrap/WebUITagsContext.php b/tests/acceptance/features/bootstrap/WebUITagsContext.php
index 9213f11140ad..5cb6af8efbfb 100644
--- a/tests/acceptance/features/bootstrap/WebUITagsContext.php
+++ b/tests/acceptance/features/bootstrap/WebUITagsContext.php
@@ -25,7 +25,6 @@
use Behat\MinkExtension\Context\RawMinkContext;
use Behat\Gherkin\Node\TableNode;
use Page\FilesPage;
-use Page\TagsPage;
use PHPUnit\Framework\Assert;
require_once 'bootstrap.php';
@@ -34,44 +33,21 @@
* WebUI Tags context.
*/
class WebUITagsContext extends RawMinkContext implements Context {
- /**
- *
- * @var FilesPage
- */
- private $filesPage;
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
-
- /**
- *
- * @var TagsPage
- */
- private $tagsPage;
-
- /**
- *
- * @var TagsContext
- */
- private $tagsContext;
+ private FilesPage $filesPage;
+ private FeatureContext $featureContext;
+ private TagsContext $tagsContext;
/**
* WebUITagsContext constructor.
*
* @param FilesPage $filesPage
- * @param TagsPage $tagsPage
*
* @return void
*/
public function __construct(
- FilesPage $filesPage,
- TagsPage $tagsPage
+ FilesPage $filesPage
) {
$this->filesPage = $filesPage;
- $this->tagsPage = $tagsPage;
}
/**
@@ -86,14 +62,14 @@ public function assertTheExpectedTagsAreDisplayed(array $results, TableNode $Exp
$displayedTags = [];
foreach ($results as $tagResult) {
$tag = $tagResult->getText();
- \array_push($displayedTags, $tag);
- };
+ $displayedTags[] = $tag;
+ }
foreach ($ExpectedTags as $tag) {
$tagName = $tag['name'];
Assert::assertContains(
$tagName,
$displayedTags,
- "Tagname $tagName was not displayed in the tag list"
+ "Tag name $tagName was not displayed in the tag list"
);
}
}
diff --git a/tests/acceptance/features/bootstrap/WebUIUserContext.php b/tests/acceptance/features/bootstrap/WebUIUserContext.php
index f67b043aa808..451f464ae44f 100644
--- a/tests/acceptance/features/bootstrap/WebUIUserContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIUserContext.php
@@ -32,11 +32,7 @@
* Context for steps associated with the user logged in to the WebUI
*/
class WebUIUserContext extends RawMinkContext implements Context {
- /**
- *
- * @var OwncloudPage
- */
- private $owncloudPage;
+ private OwncloudPage $owncloudPage;
/**
* WebUIUserContext constructor.
diff --git a/tests/acceptance/features/bootstrap/WebUIUsersContext.php b/tests/acceptance/features/bootstrap/WebUIUsersContext.php
index e8f1b602fed5..5fa3745f9597 100644
--- a/tests/acceptance/features/bootstrap/WebUIUsersContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIUsersContext.php
@@ -26,6 +26,7 @@
use Behat\Gherkin\Node\TableNode;
use Behat\Mink\Exception\ElementNotFoundException;
use Behat\MinkExtension\Context\RawMinkContext;
+use Page\DisabledUserPage;
use Page\GeneralErrorPage;
use Page\LoginPage;
use Page\UsersPage;
@@ -40,39 +41,13 @@
* WebUI Users context.
*/
class WebUIUsersContext extends RawMinkContext implements Context {
- private $usersPage;
-
- /**
- *
- * @var LoginPage
- */
- private $loginPage;
-
- /**
- *
- * @var OwncloudPage
- */
- private $owncloudPage;
-
- /**
- *
- * @var GeneralErrorPage
- */
- private $generalErrorPage;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
-
- /**
- *
- * @var FeatureContext
- */
- private $featureContext;
-
- private $appParameterValues = null;
+ private UsersPage $usersPage;
+ private LoginPage $loginPage;
+ private OwncloudPage $owncloudPage;
+ private GeneralErrorPage $generalErrorPage;
+ private WebUIGeneralContext $webUIGeneralContext;
+ private FeatureContext $featureContext;
+ private ?array $appParameterValues = null;
/**
* WebUIUsersContext constructor.
@@ -365,7 +340,7 @@ public function theAdminDeletesTheseGroupsUsingTheWebUI(TableNode $table):void {
}
/**
- * @When the administrator deletes these groups and and cancels the deletion using the webUI:
+ * @When the administrator deletes these groups and cancels the deletion using the webUI:
* expects a table of groups with the heading "groupname"
*
* @param TableNode $table
@@ -373,7 +348,7 @@ public function theAdminDeletesTheseGroupsUsingTheWebUI(TableNode $table):void {
* @return void
* @throws Exception
*/
- public function theAdminDeletesDoesNotTheseGroupsUsingTheWebUI(TableNode $table):void {
+ public function theAdminDeletesTheseGroupsAndCancelsUsingTheWebUI(TableNode $table):void {
$this->featureContext->verifyTableNodeColumns($table, ['groupname']);
foreach ($table as $row) {
$this->theAdminDeletesDoesNotDeleteGroupUsingWebUI($row['groupname']);
@@ -545,7 +520,7 @@ public function theDeletedUserTriesToLogin(string $username, string $password):v
* @return void
*/
public function enableOrDisableSettings(string $action, string $setting):void {
- $value = ($action === 'enables' || $action === 'enabled') ? true : false;
+ $value = $action === 'enables' || $action === 'enabled';
$this->usersPage->setSetting($setting, $value);
}
@@ -645,7 +620,7 @@ public function theAdministratorShouldNotBeAbleToSeeQuotaOfTheseUsers(TableNode
/**
* @Then /^the administrator should be able to see the password of these users in the User Management page:$/
*
- * @param TableNode $table table of usernames column with a heading | username |
+ * @param TableNode $table table of usernames with a heading | username |
*
* @return void
* @throws Exception
@@ -668,7 +643,7 @@ public function theAdministratorShouldBeAbleToSeePasswordColumnOfTheseUsers(Tabl
/**
* @Then /^the administrator should not be able to see the password of these users in the User Management page:$/
*
- * @param TableNode $table table of usernames column with a heading | username |
+ * @param TableNode $table table of usernames with a heading | username |
*
* @return void
* @throws Exception
@@ -759,7 +734,6 @@ public function theAdministratorShouldBeAbleToSeeLastLoginOfTheseUsers(
* @param TableNode $table table of usernames and last logins with a heading | username | and | last logins |
*
* @return void
- * @throws ElementNotVisible
* @throws Exception
*/
public function theAdministratorShouldNotBeAbleToSeeLastLoginOfTheseUsers(
@@ -1001,7 +975,7 @@ public function theUserCountOfGroupShouldNotBeDisplayedOnTheWebUI(string $group)
* @return void
*/
public function theUserCountOfGroupShouldDisplayUsersOnTheWebUI(string $group, int $count):void {
- $expectedCount = (int) $count;
+ $expectedCount = $count;
$actualCount = $this->usersPage->getUserCountOfGroup($group);
Assert::assertEquals(
$expectedCount,
diff --git a/tests/acceptance/features/bootstrap/WebUIWebDavLockingContext.php b/tests/acceptance/features/bootstrap/WebUIWebDavLockingContext.php
index 6fb547037716..36121dc54f81 100644
--- a/tests/acceptance/features/bootstrap/WebUIWebDavLockingContext.php
+++ b/tests/acceptance/features/bootstrap/WebUIWebDavLockingContext.php
@@ -23,8 +23,6 @@
use Behat\Behat\Context\Context;
use Behat\Behat\Hook\Scope\BeforeScenarioScope;
use Behat\MinkExtension\Context\RawMinkContext;
-use Page\FilesPage;
-use Page\SharedWithYouPage;
use PHPUnit\Framework\Assert;
use SensioLabs\Behat\PageObjectExtension\PageObject\Exception\ElementNotFoundException;
@@ -34,38 +32,15 @@
* context containing webUI steps needed for the locking mechanism of webdav
*/
class WebUIWebDavLockingContext extends RawMinkContext implements Context {
- /**
- *
- * @var FilesPage
- */
- private $filesPage;
-
- /**
- *
- * @var SharedWithYouPage
- */
- private $sharedWithYouPage;
-
- /**
- *
- * @var WebUIGeneralContext
- */
- private $webUIGeneralContext;
+ private WebUIGeneralContext $webUIGeneralContext;
/**
* WebUIFilesContext constructor.
*
- * @param FilesPage $filesPage
- * @param SharedWithYouPage $sharedWithYouPage
- *
* @return void
*/
public function __construct(
- FilesPage $filesPage,
- SharedWithYouPage $sharedWithYouPage
) {
- $this->filesPage = $filesPage;
- $this->sharedWithYouPage = $sharedWithYouPage;
}
/**
@@ -195,7 +170,7 @@ private function closeDetailsDialog():void {
try {
$pageObject->closeDetailsDialog();
} catch (Exception $e) {
- //ignore if dialog cannot be closed
+ //ignore if dialog cannot be closed,
//most likely there is no dialog open
}
}
diff --git a/tests/acceptance/features/webUIFiles/versions.feature b/tests/acceptance/features/webUIFiles/versions.feature
index 136023828b84..04baf6559be4 100644
--- a/tests/acceptance/features/webUIFiles/versions.feature
+++ b/tests/acceptance/features/webUIFiles/versions.feature
@@ -101,7 +101,7 @@ Feature: Versions of a file
And user "Alice" has logged in using the webUI
And the user has browsed to the files page
When the user browses directly to display the "versions" details of file "randomfile.txt" in folder "/"
- Then the authors of the current and noncurrent versions of file "randomfile.txt" should be:
+ Then the authors of the current and non-current versions of file "randomfile.txt" should be:
| index | author |
| 1 | Alice |
| 2 | Alice |
@@ -120,7 +120,7 @@ Feature: Versions of a file
And user "Carol" has logged in using the webUI
And the user has browsed to the files page
When the user browses directly to display the "versions" details of file "randomfile.txt" in folder "/"
- Then the authors of the current and noncurrent versions of file "randomfile.txt" should be:
+ Then the authors of the current and non-current versions of file "randomfile.txt" should be:
| index | author |
| 1 | Brian |
| 2 | Brian |
@@ -141,14 +141,14 @@ Feature: Versions of a file
And user "Carol" has logged in using the webUI
And the user has browsed to the files page
When the user browses directly to display the "versions" details of file "randomfile.txt" in folder "/"
- Then the authors of the current and noncurrent versions of file "randomfile.txt" should be:
+ Then the authors of the current and non-current versions of file "randomfile.txt" should be:
| index | author |
| 1 | Carol |
| 2 | Alice |
| 3 | Brian |
| 4 | Alice |
When the user restores the file to last version using the webUI
- Then the authors of the current and noncurrent versions of file "randomfile.txt" should be:
+ Then the authors of the current and non-current versions of file "randomfile.txt" should be:
| index | author |
| 1 | Carol |
| 2 | Carol |
diff --git a/tests/acceptance/features/webUILogin/resetPassword.feature b/tests/acceptance/features/webUILogin/resetPassword.feature
index 229e54d52cdc..9dc55c0ea367 100644
--- a/tests/acceptance/features/webUILogin/resetPassword.feature
+++ b/tests/acceptance/features/webUILogin/resetPassword.feature
@@ -53,7 +53,7 @@ Feature: reset the password
@skipOnEncryption
Scenario: using the password reset token plus invalid username does not work
When the user requests the password reset link using the webUI
- And the user follows the password reset link from email address of the user "Alice" but supplying invalid user name "qwerty"
+ And the user follows the password reset link from email address of the user "Alice" but supplying invalid username "qwerty"
Then the user should be redirected to a webUI page with the title "%productname%"
And a lost password reset error message with this text should be displayed on the webUI:
"""
diff --git a/tests/acceptance/features/webUIManageUsersGroups/manageGroups.feature b/tests/acceptance/features/webUIManageUsersGroups/manageGroups.feature
index aeaf688e5dc3..506d22b57682 100644
--- a/tests/acceptance/features/webUIManageUsersGroups/manageGroups.feature
+++ b/tests/acceptance/features/webUIManageUsersGroups/manageGroups.feature
@@ -172,7 +172,7 @@ Feature: manage groups
| do-not-delete2 |
| a\slash |
And the administrator has browsed to the users page
- When the administrator deletes these groups and and cancels the deletion using the webUI:
+ When the administrator deletes these groups and cancels the deletion using the webUI:
| groupname |
| grp1 |
| space group |
From 4f772ce23c0ffcaa4ae635a36de5d9264461faaf Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Tue, 9 May 2023 12:35:49 +0000
Subject: [PATCH 086/244] [tx] updated from transifex
---
apps/files/l10n/ja.js | 122 +++++++++++++++++-
apps/files/l10n/ja.json | 122 +++++++++++++++++-
tests/data/apptheme/apps/files/l10n/ja.js | 122 +++++++++++++++++-
tests/data/apptheme/apps/files/l10n/ja.json | 122 +++++++++++++++++-
tests/data/themes/abc/apps/files/l10n/ja.js | 122 +++++++++++++++++-
tests/data/themes/abc/apps/files/l10n/ja.json | 122 +++++++++++++++++-
6 files changed, 726 insertions(+), 6 deletions(-)
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/apptheme/apps/files/l10n/ja.js b/tests/data/apptheme/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.js
+++ b/tests/data/apptheme/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/apptheme/apps/files/l10n/ja.json b/tests/data/apptheme/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.json
+++ b/tests/data/apptheme/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.js b/tests/data/themes/abc/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.js
+++ b/tests/data/themes/abc/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.json b/tests/data/themes/abc/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.json
+++ b/tests/data/themes/abc/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
From 46b29cb60cfdad51a558adc019bd4cafcaa0b336 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Wed, 10 May 2023 11:04:03 +0545
Subject: [PATCH 087/244] Update vendor-bin dependencies
---
vendor-bin/behat/composer.json | 4 ++--
vendor-bin/owncloud-codestyle/composer.json | 2 +-
vendor-bin/phpstan/composer.json | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/vendor-bin/behat/composer.json b/vendor-bin/behat/composer.json
index cc3d1a0c91e8..186aaa00ff99 100644
--- a/vendor-bin/behat/composer.json
+++ b/vendor-bin/behat/composer.json
@@ -1,6 +1,6 @@
{
"require": {
- "behat/behat": "^3.11",
+ "behat/behat": "^3.13",
"behat/gherkin": "^4.9",
"behat/mink": "1.7.1",
"behat/mink-extension": "^2.3",
@@ -11,7 +11,7 @@
"symfony/translation": "^4.4",
"sabre/xml": "^2.2",
"guzzlehttp/guzzle": "^7.5",
- "phpunit/phpunit": "^9.5",
+ "phpunit/phpunit": "^9.6",
"laminas/laminas-ldap": "^2.15",
"ankitpokhrel/tus-php": "^2.3",
"helmich/phpunit-json-assert": "^3.4"
diff --git a/vendor-bin/owncloud-codestyle/composer.json b/vendor-bin/owncloud-codestyle/composer.json
index 381cb6308ab6..9785958c6abb 100644
--- a/vendor-bin/owncloud-codestyle/composer.json
+++ b/vendor-bin/owncloud-codestyle/composer.json
@@ -1,5 +1,5 @@
{
"require": {
- "owncloud/coding-standard": "^4.0"
+ "owncloud/coding-standard": "^4.1"
}
}
diff --git a/vendor-bin/phpstan/composer.json b/vendor-bin/phpstan/composer.json
index 06273a8e46d9..90c99dfdb777 100644
--- a/vendor-bin/phpstan/composer.json
+++ b/vendor-bin/phpstan/composer.json
@@ -1,5 +1,5 @@
{
"require": {
- "phpstan/phpstan": "^1.9"
+ "phpstan/phpstan": "^1.10"
}
}
From 80fa9b72fb742c01f3c30a6485ae4b8b31e10c09 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?=
<1005065+DeepDiver1975@users.noreply.github.com>
Date: Wed, 10 May 2023 09:21:33 +0200
Subject: [PATCH 088/244] fix: data length validation on UsersController
(#40769)
---
changelog/unreleased/40769 | 5 ++
settings/Controller/UsersController.php | 56 +++++++++++++------
.../Controller/UsersControllerTest.php | 7 ++-
3 files changed, 50 insertions(+), 18 deletions(-)
create mode 100644 changelog/unreleased/40769
diff --git a/changelog/unreleased/40769 b/changelog/unreleased/40769
new file mode 100644
index 000000000000..928866937c8d
--- /dev/null
+++ b/changelog/unreleased/40769
@@ -0,0 +1,5 @@
+Change: validate email and string user input in UserController
+
+User input is validated now in UserController
+
+https://github.com/owncloud/core/pull/40769
diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php
index 39adddd332e8..aadc712e335e 100644
--- a/settings/Controller/UsersController.php
+++ b/settings/Controller/UsersController.php
@@ -426,13 +426,13 @@ private function generateTokenAndSendMail($userId, $email) {
* @return DataResponse
*/
public function create($username, $password, array $groups= [], $email='') {
- if ($email !== '' && !$this->mailer->validateMailAddress($email)) {
- return new DataResponse(
- [
- 'message' => (string)$this->l10n->t('Invalid mail address')
- ],
- Http::STATUS_UNPROCESSABLE_ENTITY
- );
+ $resp = $this->validateString($username, 255);
+ if ($resp) {
+ return $resp;
+ }
+ $resp = $this->validateEMail($email, true);
+ if ($resp) {
+ return $resp;
}
$currentUser = $this->userSession->getUser();
@@ -939,16 +939,9 @@ public function setMailAddress($id, $mailAddress) {
}
}
- if ($mailAddress !== '' && !$this->mailer->validateMailAddress($mailAddress)) {
- return new DataResponse(
- [
- 'status' => 'error',
- 'data' => [
- 'message' => (string)$this->l10n->t('Invalid mail address')
- ]
- ],
- Http::STATUS_UNPROCESSABLE_ENTITY
- );
+ $resp = $this->validateEMail($mailAddress);
+ if ($resp) {
+ return $resp;
}
if (!$user) {
@@ -1176,6 +1169,10 @@ public function sendEmail($userId, $mailAddress) {
* @return JSONResponse
*/
public function setEmailAddress($id, $mailAddress) {
+ $resp = $this->validateEMail($mailAddress);
+ if ($resp) {
+ return $resp;
+ }
$user = $this->userManager->get($id);
'@phan-var \OC\Group\Manager $this->groupManager';
if ($this->isAdmin ||
@@ -1312,4 +1309,29 @@ public function setEnabled($id, $enabled) {
Http::STATUS_OK
);
}
+
+ private function validateString(string $string, int $max) {
+ if (\strlen($string) > $max) {
+ return $this->buildUnprocessableEntityResponse((string)$this->l10n->t('Data too long'));
+ }
+ }
+
+ private function validateEMail(string $email, bool $allowEmpty = false): ?DataResponse {
+ if ($allowEmpty && $email === '') {
+ return null;
+ }
+ if ($email !== '' && !$this->mailer->validateMailAddress($email)) {
+ return $this->buildUnprocessableEntityResponse((string)$this->l10n->t('Invalid mail address'));
+ }
+ return null;
+ }
+
+ private function buildUnprocessableEntityResponse(string $message): DataResponse {
+ return new DataResponse(
+ [
+ 'message' => $message
+ ],
+ Http::STATUS_UNPROCESSABLE_ENTITY
+ );
+ }
}
diff --git a/tests/Settings/Controller/UsersControllerTest.php b/tests/Settings/Controller/UsersControllerTest.php
index 6f6fe197c882..dab39e4f45a4 100644
--- a/tests/Settings/Controller/UsersControllerTest.php
+++ b/tests/Settings/Controller/UsersControllerTest.php
@@ -42,6 +42,7 @@
use OC\Group\Manager;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Test\TestCase;
+use Test\Traits\UserTrait;
use function vsprintf;
use OCP\IAvatar;
use OC\Group\Group;
@@ -52,6 +53,8 @@
* @package Tests\Settings\Controller
*/
class UsersControllerTest extends TestCase {
+ use UserTrait;
+
/** @var IAppContainer */
private $container;
@@ -1995,7 +1998,7 @@ public function dataforemailaddress(): array {
* @throws Exception
*/
public function testSetSelfEmailAddress($userName, $userPassword, $loginUser, $setUser, $emailAddress): void {
- OC::$server->getUserManager()->createUser($userName, $userPassword);
+ $this->createUser($userName, $userPassword);
$appName = "settings";
$irequest = $this->createMock(IRequest::class);
@@ -2035,6 +2038,8 @@ public function testSetSelfEmailAddress($userName, $userPassword, $loginUser, $s
$eventDispatcher
);
+ $iMailer->method('validateMailAddress')->willReturn(true);
+
self::loginAsUser($loginUser);
$iUser = $this->createMock(IUser::class);
From 9a4d042856ed2c018aedb0c9ea95d8a1d17984c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?=
<1005065+DeepDiver1975@users.noreply.github.com>
Date: Wed, 10 May 2023 07:23:42 +0000
Subject: [PATCH 089/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 7 +++++++
CHANGELOG.md | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index 6592fe584d3a..76ef748ae771 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -8,6 +8,7 @@ Summary
- Change - Update PHP dependencies: #40724
- Change - Fix name length check on federated shares: #40726
+ - Change - Validate email and string user input in UserController: #40769
- Change - Fix hiding Last Login column on Users page: #40771
- Enhancement - Improve X-Robots-Tag header values check: #40715
@@ -27,6 +28,12 @@ Details
https://github.com/owncloud/core/pull/40726
+
+ Change - Validate email and string user input in UserController: #40769
+ User input is validated now in UserController
+
+ https://github.com/owncloud/core/pull/40769
+
Change - Fix hiding Last Login column on Users page: #40771
The Last Login column on the Users page is now correctly hidden if the setting is initially
diff --git a/CHANGELOG.md b/CHANGELOG.md
index be34ca45c9d3..fbc0f141d931 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ Summary
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
+* Change - Validate email and string user input in UserController: [#40769](https://github.com/owncloud/core/pull/40769)
* Change - Fix hiding Last Login column on Users page: [#40771](https://github.com/owncloud/core/pull/40771)
* Enhancement - Improve X-Robots-Tag header values check: [#40715](https://github.com/owncloud/core/pull/40715)
@@ -35,6 +36,12 @@ Details
https://github.com/owncloud/core/pull/40726
+* Change - Validate email and string user input in UserController: [#40769](https://github.com/owncloud/core/pull/40769)
+
+ User input is validated now in UserController
+
+ https://github.com/owncloud/core/pull/40769
+
* Change - Fix hiding Last Login column on Users page: [#40771](https://github.com/owncloud/core/pull/40771)
The Last Login column on the Users page is now correctly hidden if the setting is initially
From 903c1111962a0fa62089552a44b51f5eec360351 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Thu, 11 May 2023 00:40:21 +0000
Subject: [PATCH 090/244] [tx] updated from transifex
---
apps/files/l10n/he.js | 2 ++
apps/files/l10n/he.json | 2 ++
settings/l10n/af_ZA.js | 2 +-
settings/l10n/af_ZA.json | 2 +-
settings/l10n/ar.js | 2 +-
settings/l10n/ar.json | 2 +-
settings/l10n/ast.js | 2 +-
settings/l10n/ast.json | 2 +-
settings/l10n/az.js | 2 +-
settings/l10n/az.json | 2 +-
settings/l10n/bg_BG.js | 2 +-
settings/l10n/bg_BG.json | 2 +-
settings/l10n/bs.js | 2 +-
settings/l10n/bs.json | 2 +-
settings/l10n/ca.js | 2 +-
settings/l10n/ca.json | 2 +-
settings/l10n/cs_CZ.js | 2 +-
settings/l10n/cs_CZ.json | 2 +-
settings/l10n/da.js | 2 +-
settings/l10n/da.json | 2 +-
settings/l10n/de.js | 2 +-
settings/l10n/de.json | 2 +-
settings/l10n/de_CH.js | 2 +-
settings/l10n/de_CH.json | 2 +-
settings/l10n/de_DE.js | 2 +-
settings/l10n/de_DE.json | 2 +-
settings/l10n/el.js | 2 +-
settings/l10n/el.json | 2 +-
settings/l10n/en_GB.js | 2 +-
settings/l10n/en_GB.json | 2 +-
settings/l10n/es.js | 2 +-
settings/l10n/es.json | 2 +-
settings/l10n/es_AR.js | 2 +-
settings/l10n/es_AR.json | 2 +-
settings/l10n/es_MX.js | 2 +-
settings/l10n/es_MX.json | 2 +-
settings/l10n/et_EE.js | 2 +-
settings/l10n/et_EE.json | 2 +-
settings/l10n/eu.js | 2 +-
settings/l10n/eu.json | 2 +-
settings/l10n/fa.js | 2 +-
settings/l10n/fa.json | 2 +-
settings/l10n/fi_FI.js | 2 +-
settings/l10n/fi_FI.json | 2 +-
settings/l10n/fr.js | 2 +-
settings/l10n/fr.json | 2 +-
settings/l10n/gl.js | 2 +-
settings/l10n/gl.json | 2 +-
settings/l10n/he.js | 2 +-
settings/l10n/he.json | 2 +-
settings/l10n/hu_HU.js | 2 +-
settings/l10n/hu_HU.json | 2 +-
settings/l10n/hy.js | 2 +-
settings/l10n/hy.json | 2 +-
settings/l10n/id.js | 2 +-
settings/l10n/id.json | 2 +-
settings/l10n/is.js | 2 +-
settings/l10n/is.json | 2 +-
settings/l10n/it.js | 2 +-
settings/l10n/it.json | 2 +-
settings/l10n/ja.js | 2 +-
settings/l10n/ja.json | 2 +-
settings/l10n/kn.js | 2 +-
settings/l10n/kn.json | 2 +-
settings/l10n/ko.js | 2 +-
settings/l10n/ko.json | 2 +-
settings/l10n/lb.js | 2 +-
settings/l10n/lb.json | 2 +-
settings/l10n/lt_LT.js | 2 +-
settings/l10n/lt_LT.json | 2 +-
settings/l10n/lv.js | 2 +-
settings/l10n/lv.json | 2 +-
settings/l10n/mk.js | 2 +-
settings/l10n/mk.json | 2 +-
settings/l10n/nb_NO.js | 2 +-
settings/l10n/nb_NO.json | 2 +-
settings/l10n/nl.js | 2 +-
settings/l10n/nl.json | 2 +-
settings/l10n/oc.js | 2 +-
settings/l10n/oc.json | 2 +-
settings/l10n/pl.js | 2 +-
settings/l10n/pl.json | 2 +-
settings/l10n/pt_BR.js | 2 +-
settings/l10n/pt_BR.json | 2 +-
settings/l10n/pt_PT.js | 2 +-
settings/l10n/pt_PT.json | 2 +-
settings/l10n/ro.js | 2 +-
settings/l10n/ro.json | 2 +-
settings/l10n/ru.js | 2 +-
settings/l10n/ru.json | 2 +-
settings/l10n/sk_SK.js | 2 +-
settings/l10n/sk_SK.json | 2 +-
settings/l10n/sl.js | 2 +-
settings/l10n/sl.json | 2 +-
settings/l10n/sq.js | 2 +-
settings/l10n/sq.json | 2 +-
settings/l10n/sr.js | 2 +-
settings/l10n/sr.json | 2 +-
settings/l10n/sv.js | 2 +-
settings/l10n/sv.json | 2 +-
settings/l10n/th_TH.js | 2 +-
settings/l10n/th_TH.json | 2 +-
settings/l10n/tr.js | 2 +-
settings/l10n/tr.json | 2 +-
settings/l10n/uk.js | 2 +-
settings/l10n/uk.json | 2 +-
settings/l10n/zh_CN.js | 2 +-
settings/l10n/zh_CN.json | 2 +-
settings/l10n/zh_TW.js | 2 +-
settings/l10n/zh_TW.json | 2 +-
tests/data/apptheme/apps/files/l10n/he.js | 2 ++
tests/data/apptheme/apps/files/l10n/he.json | 2 ++
tests/data/themes/abc/apps/files/l10n/he.js | 2 ++
tests/data/themes/abc/apps/files/l10n/he.json | 2 ++
114 files changed, 120 insertions(+), 108 deletions(-)
diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js
index 280daad483ac..d67f5270639d 100644
--- a/apps/files/l10n/he.js
+++ b/apps/files/l10n/he.js
@@ -124,10 +124,12 @@ OC.L10N.register(
"You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
"%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
"You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
+ "%2$s moved %3$s to %1$s" : "%3$s הועבר אל %1$s על ידי %2$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
"You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
+ "%2$s moved this file to %1$s" : "הקובץ הזה הועבר אל %1$s על ידי %2$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json
index f6517720c353..8c8d331e7135 100644
--- a/apps/files/l10n/he.json
+++ b/apps/files/l10n/he.json
@@ -122,10 +122,12 @@
"You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
"%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
"You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
+ "%2$s moved %3$s to %1$s" : "%3$s הועבר אל %1$s על ידי %2$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
"You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
+ "%2$s moved this file to %1$s" : "הקובץ הזה הועבר אל %1$s על ידי %2$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
diff --git a/settings/l10n/af_ZA.js b/settings/l10n/af_ZA.js
index 912dd01fe353..b4c1427f91c8 100644
--- a/settings/l10n/af_ZA.js
+++ b/settings/l10n/af_ZA.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"test email settings" : "toets e-posinstellings",
"Email sent" : "E-pos gestuur",
"Your %s account was created" : "U %s-rekening is geskep",
- "Invalid mail address" : "Ongeldige posadres",
"A user with that name already exists." : "’n Gebruiker met daardie naam bestaan reeds.",
"Unable to create user." : "Kan nie gebruiker skep nie.",
"Unable to delete user." : "Kan nie gebruiker skrap nie.",
@@ -24,6 +23,7 @@ OC.L10N.register(
"Unable to change full name" : "Kan nie u volle naam verander nie",
"%s email address changed successfully" : "%s e-posadres is suksesvol verander",
"Unable to enable/disable user." : "Kan nie gebruiker de-/aktiveer nie.",
+ "Invalid mail address" : "Ongeldige posadres",
"Create" : "Skep",
"Change" : "Verander",
"Delete" : "Skrap",
diff --git a/settings/l10n/af_ZA.json b/settings/l10n/af_ZA.json
index d797eef0e2dd..fb107ac95fcc 100644
--- a/settings/l10n/af_ZA.json
+++ b/settings/l10n/af_ZA.json
@@ -9,7 +9,6 @@
"test email settings" : "toets e-posinstellings",
"Email sent" : "E-pos gestuur",
"Your %s account was created" : "U %s-rekening is geskep",
- "Invalid mail address" : "Ongeldige posadres",
"A user with that name already exists." : "’n Gebruiker met daardie naam bestaan reeds.",
"Unable to create user." : "Kan nie gebruiker skep nie.",
"Unable to delete user." : "Kan nie gebruiker skrap nie.",
@@ -22,6 +21,7 @@
"Unable to change full name" : "Kan nie u volle naam verander nie",
"%s email address changed successfully" : "%s e-posadres is suksesvol verander",
"Unable to enable/disable user." : "Kan nie gebruiker de-/aktiveer nie.",
+ "Invalid mail address" : "Ongeldige posadres",
"Create" : "Skep",
"Change" : "Verander",
"Delete" : "Skrap",
diff --git a/settings/l10n/ar.js b/settings/l10n/ar.js
index 8a9188c0328d..6c94d1423637 100644
--- a/settings/l10n/ar.js
+++ b/settings/l10n/ar.js
@@ -27,7 +27,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "لا يمكن تغيير عنوان البريد الإلكتروني لأن المستخدم غير موجود",
"Couldn't change the email address because the token is invalid" : "لا يمكن تغيير عنوان البريد الإلكتروني لأن الرمز المميز غير صالح",
"Your %s account was created" : "تم إنشاء حساب %s",
- "Invalid mail address" : "عنوان بريد إلكتروني غير صالح",
"A user with that name already exists." : "يوجد مستخدم بهذا الاسم بالفعل.",
"Unable to create user." : "تعذّر إنشاء مستخدم.",
"The token provided is invalid." : "الرمز المميز المقدم غير صالح.",
@@ -52,6 +51,7 @@ OC.L10N.register(
"%s email address changed successfully" : "تم تغيير عنوان البريد الإلكتروني لـ %s بنجاح",
"Couldn't send email address change notification mail. Please contact your administrator." : "لا يمكن إرسال رسالة إشعار تغيير عنوان البريد الإلكتروني. يُرجى الاتصال بمسؤولك.",
"Unable to enable/disable user." : "تعذّر تمكين/تعطيل المستخدم.",
+ "Invalid mail address" : "عنوان بريد إلكتروني غير صالح",
"Owner language" : "لغة المالك",
"Create" : "إنشاء",
"Change" : "تغيير",
diff --git a/settings/l10n/ar.json b/settings/l10n/ar.json
index fcd11a9a03ca..7dd37f75d890 100644
--- a/settings/l10n/ar.json
+++ b/settings/l10n/ar.json
@@ -25,7 +25,6 @@
"Couldn't change the email address because the user does not exist" : "لا يمكن تغيير عنوان البريد الإلكتروني لأن المستخدم غير موجود",
"Couldn't change the email address because the token is invalid" : "لا يمكن تغيير عنوان البريد الإلكتروني لأن الرمز المميز غير صالح",
"Your %s account was created" : "تم إنشاء حساب %s",
- "Invalid mail address" : "عنوان بريد إلكتروني غير صالح",
"A user with that name already exists." : "يوجد مستخدم بهذا الاسم بالفعل.",
"Unable to create user." : "تعذّر إنشاء مستخدم.",
"The token provided is invalid." : "الرمز المميز المقدم غير صالح.",
@@ -50,6 +49,7 @@
"%s email address changed successfully" : "تم تغيير عنوان البريد الإلكتروني لـ %s بنجاح",
"Couldn't send email address change notification mail. Please contact your administrator." : "لا يمكن إرسال رسالة إشعار تغيير عنوان البريد الإلكتروني. يُرجى الاتصال بمسؤولك.",
"Unable to enable/disable user." : "تعذّر تمكين/تعطيل المستخدم.",
+ "Invalid mail address" : "عنوان بريد إلكتروني غير صالح",
"Owner language" : "لغة المالك",
"Create" : "إنشاء",
"Change" : "تغيير",
diff --git a/settings/l10n/ast.js b/settings/l10n/ast.js
index 01187c9a3738..94f997079083 100644
--- a/settings/l10n/ast.js
+++ b/settings/l10n/ast.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"Email sent" : "Corréu-e unviáu",
"You need to set your user email before being able to send test emails." : "Tienes de configurar la direición de corréu-e enantes de poder unviar mensaxes de prueba.",
"Your %s account was created" : "Creóse la so cuenta %s",
- "Invalid mail address" : "Direición d'email inválida",
"A user with that name already exists." : "Un usuariu con esi nome yá esiste.",
"Unable to create user." : "Imposible crear l'usuariu.",
"Unable to delete user." : "Nun pudo desaniciase l'usuariu",
@@ -27,6 +26,7 @@ OC.L10N.register(
"Unable to change mail address" : "Nun pue camudase la direición d'email",
"Your full name has been changed." : "Camudóse'l nome completu.",
"Unable to change full name" : "Nun pue camudase'l nome completu",
+ "Invalid mail address" : "Direición d'email inválida",
"Create" : "Crear",
"Delete" : "Desaniciar",
"Share" : "Compartir",
diff --git a/settings/l10n/ast.json b/settings/l10n/ast.json
index d26266c683f2..d51572098bc2 100644
--- a/settings/l10n/ast.json
+++ b/settings/l10n/ast.json
@@ -16,7 +16,6 @@
"Email sent" : "Corréu-e unviáu",
"You need to set your user email before being able to send test emails." : "Tienes de configurar la direición de corréu-e enantes de poder unviar mensaxes de prueba.",
"Your %s account was created" : "Creóse la so cuenta %s",
- "Invalid mail address" : "Direición d'email inválida",
"A user with that name already exists." : "Un usuariu con esi nome yá esiste.",
"Unable to create user." : "Imposible crear l'usuariu.",
"Unable to delete user." : "Nun pudo desaniciase l'usuariu",
@@ -25,6 +24,7 @@
"Unable to change mail address" : "Nun pue camudase la direición d'email",
"Your full name has been changed." : "Camudóse'l nome completu.",
"Unable to change full name" : "Nun pue camudase'l nome completu",
+ "Invalid mail address" : "Direición d'email inválida",
"Create" : "Crear",
"Delete" : "Desaniciar",
"Share" : "Compartir",
diff --git a/settings/l10n/az.js b/settings/l10n/az.js
index 03043a507afb..d410ad9aa27a 100644
--- a/settings/l10n/az.js
+++ b/settings/l10n/az.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Email sent" : "Məktub göndərildi",
"You need to set your user email before being able to send test emails." : "Test məktubu göndərməzdən öncə, siz öz istifadəçi poçtunuzu təyin etməlisiniz.",
"Your %s account was created" : "Sizin %s hesab yaradıldı",
- "Invalid mail address" : "Yalnış mail ünvanı",
"A user with that name already exists." : "Bu adla istifadəçi artıq mövcuddur.",
"Unable to create user." : "İstifadəçi yaratmaq mümkün deyil.",
"Unable to delete user." : "İstifadəçini silmək mümkün deyil.",
@@ -25,6 +24,7 @@ OC.L10N.register(
"Unable to change mail address" : "Mail ünvanını dəyişmək olmur",
"Your full name has been changed." : "Sizin tam adınız dəyişdirildi.",
"Unable to change full name" : "Tam adı dəyişmək olmur",
+ "Invalid mail address" : "Yalnış mail ünvanı",
"Create" : "Yarat",
"Delete" : "Sil",
"Share" : "Paylaş",
diff --git a/settings/l10n/az.json b/settings/l10n/az.json
index 89497d81bd78..f8de0244f6ba 100644
--- a/settings/l10n/az.json
+++ b/settings/l10n/az.json
@@ -14,7 +14,6 @@
"Email sent" : "Məktub göndərildi",
"You need to set your user email before being able to send test emails." : "Test məktubu göndərməzdən öncə, siz öz istifadəçi poçtunuzu təyin etməlisiniz.",
"Your %s account was created" : "Sizin %s hesab yaradıldı",
- "Invalid mail address" : "Yalnış mail ünvanı",
"A user with that name already exists." : "Bu adla istifadəçi artıq mövcuddur.",
"Unable to create user." : "İstifadəçi yaratmaq mümkün deyil.",
"Unable to delete user." : "İstifadəçini silmək mümkün deyil.",
@@ -23,6 +22,7 @@
"Unable to change mail address" : "Mail ünvanını dəyişmək olmur",
"Your full name has been changed." : "Sizin tam adınız dəyişdirildi.",
"Unable to change full name" : "Tam adı dəyişmək olmur",
+ "Invalid mail address" : "Yalnış mail ünvanı",
"Create" : "Yarat",
"Delete" : "Sil",
"Share" : "Paylaş",
diff --git a/settings/l10n/bg_BG.js b/settings/l10n/bg_BG.js
index 547cbc0d3cd3..1edcd21299f4 100644
--- a/settings/l10n/bg_BG.js
+++ b/settings/l10n/bg_BG.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Промяната на имейл адреса е невъзможна защото потребителят не съществува",
"Couldn't change the email address because the token is invalid" : "Промяната на имейл адреса е невъзможна защото токенът не е валиден",
"Your %s account was created" : "Вашият %s профил е създаден",
- "Invalid mail address" : "Невалиден имейл адрес",
"A user with that name already exists." : "Потребител с това име вече съществува.",
"Unable to create user." : "Неуспешно създаване на потребител.",
"The token provided is invalid." : "Предоставеният токен е невалиден.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s имейл адресът е променен успешно",
"Couldn't send email address change notification mail. Please contact your administrator." : "Неуспешно изпращане на имейл с известие за промяна на имейл адреса. Моля, свържете се с вашия администратор.",
"Unable to enable/disable user." : "Потребителят не може да се активира/деактивира.",
+ "Invalid mail address" : "Невалиден имейл адрес",
"Owner language" : "Език на собственика",
"Create" : "Създаване",
"Change" : "Промяна",
diff --git a/settings/l10n/bg_BG.json b/settings/l10n/bg_BG.json
index 85173ad5ab53..f39af8c9bfd5 100644
--- a/settings/l10n/bg_BG.json
+++ b/settings/l10n/bg_BG.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "Промяната на имейл адреса е невъзможна защото потребителят не съществува",
"Couldn't change the email address because the token is invalid" : "Промяната на имейл адреса е невъзможна защото токенът не е валиден",
"Your %s account was created" : "Вашият %s профил е създаден",
- "Invalid mail address" : "Невалиден имейл адрес",
"A user with that name already exists." : "Потребител с това име вече съществува.",
"Unable to create user." : "Неуспешно създаване на потребител.",
"The token provided is invalid." : "Предоставеният токен е невалиден.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "%s имейл адресът е променен успешно",
"Couldn't send email address change notification mail. Please contact your administrator." : "Неуспешно изпращане на имейл с известие за промяна на имейл адреса. Моля, свържете се с вашия администратор.",
"Unable to enable/disable user." : "Потребителят не може да се активира/деактивира.",
+ "Invalid mail address" : "Невалиден имейл адрес",
"Owner language" : "Език на собственика",
"Create" : "Създаване",
"Change" : "Промяна",
diff --git a/settings/l10n/bs.js b/settings/l10n/bs.js
index 998aad3aa7e5..fd3cb098625a 100644
--- a/settings/l10n/bs.js
+++ b/settings/l10n/bs.js
@@ -14,7 +14,6 @@ OC.L10N.register(
"Email sent" : "E-pošta je poslana",
"You need to set your user email before being able to send test emails." : "Prije nego li ste u mogućnosti slati testnu email trebate postaviti svoj korisnički email.",
"Your %s account was created" : "Vaš %s račun je kreiran",
- "Invalid mail address" : "Nevažeća adresa e-pošte",
"Unable to create user." : "Nemoguće kreirati korisnika",
"Unable to delete user." : "Nemoguće izbrisati korisnika",
"Forbidden" : "Zabranjeno",
@@ -22,6 +21,7 @@ OC.L10N.register(
"Unable to change mail address" : "Nemoguće je izmjeniti adresu e-pošte",
"Your full name has been changed." : "Vaše puno ime je promijenjeno.",
"Unable to change full name" : "Puno ime nije moguće promijeniti",
+ "Invalid mail address" : "Nevažeća adresa e-pošte",
"Create" : "Kreiraj",
"Delete" : "Izbriši",
"Share" : "Dijeli",
diff --git a/settings/l10n/bs.json b/settings/l10n/bs.json
index caf9d138139b..f84b20e7d99b 100644
--- a/settings/l10n/bs.json
+++ b/settings/l10n/bs.json
@@ -12,7 +12,6 @@
"Email sent" : "E-pošta je poslana",
"You need to set your user email before being able to send test emails." : "Prije nego li ste u mogućnosti slati testnu email trebate postaviti svoj korisnički email.",
"Your %s account was created" : "Vaš %s račun je kreiran",
- "Invalid mail address" : "Nevažeća adresa e-pošte",
"Unable to create user." : "Nemoguće kreirati korisnika",
"Unable to delete user." : "Nemoguće izbrisati korisnika",
"Forbidden" : "Zabranjeno",
@@ -20,6 +19,7 @@
"Unable to change mail address" : "Nemoguće je izmjeniti adresu e-pošte",
"Your full name has been changed." : "Vaše puno ime je promijenjeno.",
"Unable to change full name" : "Puno ime nije moguće promijeniti",
+ "Invalid mail address" : "Nevažeća adresa e-pošte",
"Create" : "Kreiraj",
"Delete" : "Izbriši",
"Share" : "Dijeli",
diff --git a/settings/l10n/ca.js b/settings/l10n/ca.js
index 5ea253ea3473..87027607a674 100644
--- a/settings/l10n/ca.js
+++ b/settings/l10n/ca.js
@@ -21,7 +21,6 @@ OC.L10N.register(
"Email sent" : "El correu electrónic s'ha enviat",
"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.",
"Your %s account was created" : "S'ha creat el seu compte %s",
- "Invalid mail address" : "Adreça de correu invàlida",
"A user with that name already exists." : "Ja existeix un usuari amb est nom.",
"Unable to create user." : "No es pot crear el usuari.",
"Failed to set password. Please contact your administrator." : "No s'ha pogut establir una contrasenya. Per favor, contacta amb l'administrador.",
@@ -32,6 +31,7 @@ OC.L10N.register(
"Unable to change display name" : "No s'ha pogut canviar el nom a mostrar",
"Your full name has been changed." : "El vostre nom complet ha canviat.",
"Unable to change full name" : "No s'ha pogut canviar el nom complet",
+ "Invalid mail address" : "Adreça de correu invàlida",
"Create" : "Crea",
"Delete" : "Esborra",
"Share" : "Compartir",
diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json
index c115513d26c4..1aaa274fdafe 100644
--- a/settings/l10n/ca.json
+++ b/settings/l10n/ca.json
@@ -19,7 +19,6 @@
"Email sent" : "El correu electrónic s'ha enviat",
"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.",
"Your %s account was created" : "S'ha creat el seu compte %s",
- "Invalid mail address" : "Adreça de correu invàlida",
"A user with that name already exists." : "Ja existeix un usuari amb est nom.",
"Unable to create user." : "No es pot crear el usuari.",
"Failed to set password. Please contact your administrator." : "No s'ha pogut establir una contrasenya. Per favor, contacta amb l'administrador.",
@@ -30,6 +29,7 @@
"Unable to change display name" : "No s'ha pogut canviar el nom a mostrar",
"Your full name has been changed." : "El vostre nom complet ha canviat.",
"Unable to change full name" : "No s'ha pogut canviar el nom complet",
+ "Invalid mail address" : "Adreça de correu invàlida",
"Create" : "Crea",
"Delete" : "Esborra",
"Share" : "Compartir",
diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js
index cadeb914622a..f9ebb0d914fb 100644
--- a/settings/l10n/cs_CZ.js
+++ b/settings/l10n/cs_CZ.js
@@ -25,7 +25,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Email nemohl být změněn. Uživatel neexistuje",
"Couldn't change the email address because the token is invalid" : "Email nemohl být změněn. Token je chybný",
"Your %s account was created" : "Účet %s byl vytvořen",
- "Invalid mail address" : "Neplatná emailová adresa",
"A user with that name already exists." : "Uživatel tohoto jména již existuje.",
"Unable to create user." : "Nelze vytvořit uživatele.",
"The token provided is invalid." : "Vložený token je neplatný.",
@@ -50,6 +49,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s emailová adresa úspěšně změněna",
"Couldn't send email address change notification mail. Please contact your administrator." : "Nelze odeslat e-mailovou adresu pro oznamování změn poštu. Obraťte se na správce.",
"Unable to enable/disable user." : "Nelze povolit/zakázat uživatele.",
+ "Invalid mail address" : "Neplatná emailová adresa",
"Owner language" : "Jazyk vlastníka",
"Create" : "Vytvořit",
"Change" : "Změnit",
diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json
index 46bbbcf8e867..590ab708d694 100644
--- a/settings/l10n/cs_CZ.json
+++ b/settings/l10n/cs_CZ.json
@@ -23,7 +23,6 @@
"Couldn't change the email address because the user does not exist" : "Email nemohl být změněn. Uživatel neexistuje",
"Couldn't change the email address because the token is invalid" : "Email nemohl být změněn. Token je chybný",
"Your %s account was created" : "Účet %s byl vytvořen",
- "Invalid mail address" : "Neplatná emailová adresa",
"A user with that name already exists." : "Uživatel tohoto jména již existuje.",
"Unable to create user." : "Nelze vytvořit uživatele.",
"The token provided is invalid." : "Vložený token je neplatný.",
@@ -48,6 +47,7 @@
"%s email address changed successfully" : "%s emailová adresa úspěšně změněna",
"Couldn't send email address change notification mail. Please contact your administrator." : "Nelze odeslat e-mailovou adresu pro oznamování změn poštu. Obraťte se na správce.",
"Unable to enable/disable user." : "Nelze povolit/zakázat uživatele.",
+ "Invalid mail address" : "Neplatná emailová adresa",
"Owner language" : "Jazyk vlastníka",
"Create" : "Vytvořit",
"Change" : "Změnit",
diff --git a/settings/l10n/da.js b/settings/l10n/da.js
index 683f9664056b..5ef3e0408c80 100644
--- a/settings/l10n/da.js
+++ b/settings/l10n/da.js
@@ -23,7 +23,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Kunne ikke ændre emailadressen fordi brugeren ikke eksisterer",
"Couldn't change the email address because the token is invalid" : "Kunne ikke ændre emailadresse da symboludtrykket er ugyldigt",
"Your %s account was created" : "Din %s-konto blev oprettet",
- "Invalid mail address" : "Ugyldig mailadresse",
"A user with that name already exists." : "Dette brugernavn eksistere allerede.",
"Unable to create user." : "Kan ikke oprette brugeren.",
"Unable to delete user." : "Kan ikke slette brugeren.",
@@ -40,6 +39,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s emailadresse succesfuldt ændret",
"Couldn't send email address change notification mail. Please contact your administrator." : "Kunne ikke sende emailændringsbekræftelsesmail. Kontakt venligst din administrator.",
"Unable to enable/disable user." : "Kan ikke aktivere/deaktiverer bruger.",
+ "Invalid mail address" : "Ugyldig mailadresse",
"Create" : "Ny",
"Delete" : "Slet",
"Share" : "Del",
diff --git a/settings/l10n/da.json b/settings/l10n/da.json
index 08aca13e9bbb..532e9d3898cd 100644
--- a/settings/l10n/da.json
+++ b/settings/l10n/da.json
@@ -21,7 +21,6 @@
"Couldn't change the email address because the user does not exist" : "Kunne ikke ændre emailadressen fordi brugeren ikke eksisterer",
"Couldn't change the email address because the token is invalid" : "Kunne ikke ændre emailadresse da symboludtrykket er ugyldigt",
"Your %s account was created" : "Din %s-konto blev oprettet",
- "Invalid mail address" : "Ugyldig mailadresse",
"A user with that name already exists." : "Dette brugernavn eksistere allerede.",
"Unable to create user." : "Kan ikke oprette brugeren.",
"Unable to delete user." : "Kan ikke slette brugeren.",
@@ -38,6 +37,7 @@
"%s email address changed successfully" : "%s emailadresse succesfuldt ændret",
"Couldn't send email address change notification mail. Please contact your administrator." : "Kunne ikke sende emailændringsbekræftelsesmail. Kontakt venligst din administrator.",
"Unable to enable/disable user." : "Kan ikke aktivere/deaktiverer bruger.",
+ "Invalid mail address" : "Ugyldig mailadresse",
"Create" : "Ny",
"Delete" : "Slet",
"Share" : "Del",
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index 6f90f0d84f38..1726c1cb29fa 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Die E-Mail Adresse konnte nicht geändert werden, da der Benutzer nicht existiert",
"Couldn't change the email address because the token is invalid" : "Die E-Mail Adresse konnte nicht geändert werden, da der Token ungültig ist",
"Your %s account was created" : "Dein %s-Konto wurde erstellt",
- "Invalid mail address" : "Ungültige E-Mail-Adresse",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"The token provided is invalid." : "Der Token ist ungültig",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s E-Mail Adresse wurde erfolgreich geändert",
"Couldn't send email address change notification mail. Please contact your administrator." : "Die Benachrichtigung zur Änderung der E-Mail Adresse konnte nicht versendet werden. Bitte kontaktiere Deinen Administrator.",
"Unable to enable/disable user." : "Benutzer konnte nicht de-/aktiviert werden.",
+ "Invalid mail address" : "Ungültige E-Mail-Adresse",
"Owner language" : "Sprache des Anwenders",
"Create" : "Anlegen",
"Change" : "Ändern",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index a860873c237f..b209770e7edd 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "Die E-Mail Adresse konnte nicht geändert werden, da der Benutzer nicht existiert",
"Couldn't change the email address because the token is invalid" : "Die E-Mail Adresse konnte nicht geändert werden, da der Token ungültig ist",
"Your %s account was created" : "Dein %s-Konto wurde erstellt",
- "Invalid mail address" : "Ungültige E-Mail-Adresse",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"The token provided is invalid." : "Der Token ist ungültig",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "%s E-Mail Adresse wurde erfolgreich geändert",
"Couldn't send email address change notification mail. Please contact your administrator." : "Die Benachrichtigung zur Änderung der E-Mail Adresse konnte nicht versendet werden. Bitte kontaktiere Deinen Administrator.",
"Unable to enable/disable user." : "Benutzer konnte nicht de-/aktiviert werden.",
+ "Invalid mail address" : "Ungültige E-Mail-Adresse",
"Owner language" : "Sprache des Anwenders",
"Create" : "Anlegen",
"Change" : "Ändern",
diff --git a/settings/l10n/de_CH.js b/settings/l10n/de_CH.js
index e48537f8f269..00d3df37ff5c 100644
--- a/settings/l10n/de_CH.js
+++ b/settings/l10n/de_CH.js
@@ -26,7 +26,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Die E-Mail Adresse konnte nicht geändert werden, da der Benutzer nicht existiert",
"Couldn't change the email address because the token is invalid" : "Die E-Mail Adresse konnte nicht geändert werden, da der Token ungültig ist",
"Your %s account was created" : "Dein %s-Konto wurde erstellt",
- "Invalid mail address" : "Ungültige E-Mail-Adresse",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"The token provided is invalid." : "Der Token ist ungültig",
@@ -51,6 +50,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s E-Mail Adresse wurde erfolgreich geändert",
"Couldn't send email address change notification mail. Please contact your administrator." : "Die Benachrichtigung zur Änderung der E-Mail Adresse konnte nicht versendet werden. Bitte kontaktiere Deinen Administrator.",
"Unable to enable/disable user." : "Benutzer konnte nicht de-/aktiviert werden.",
+ "Invalid mail address" : "Ungültige E-Mail-Adresse",
"Owner language" : "Sprache des Anwenders",
"Create" : "Anlegen",
"Change" : "Ändern",
diff --git a/settings/l10n/de_CH.json b/settings/l10n/de_CH.json
index 5b7883cdc2c6..b722228f205d 100644
--- a/settings/l10n/de_CH.json
+++ b/settings/l10n/de_CH.json
@@ -24,7 +24,6 @@
"Couldn't change the email address because the user does not exist" : "Die E-Mail Adresse konnte nicht geändert werden, da der Benutzer nicht existiert",
"Couldn't change the email address because the token is invalid" : "Die E-Mail Adresse konnte nicht geändert werden, da der Token ungültig ist",
"Your %s account was created" : "Dein %s-Konto wurde erstellt",
- "Invalid mail address" : "Ungültige E-Mail-Adresse",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"The token provided is invalid." : "Der Token ist ungültig",
@@ -49,6 +48,7 @@
"%s email address changed successfully" : "%s E-Mail Adresse wurde erfolgreich geändert",
"Couldn't send email address change notification mail. Please contact your administrator." : "Die Benachrichtigung zur Änderung der E-Mail Adresse konnte nicht versendet werden. Bitte kontaktiere Deinen Administrator.",
"Unable to enable/disable user." : "Benutzer konnte nicht de-/aktiviert werden.",
+ "Invalid mail address" : "Ungültige E-Mail-Adresse",
"Owner language" : "Sprache des Anwenders",
"Create" : "Anlegen",
"Change" : "Ändern",
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
index ed2c7c1be763..67d08e414eee 100644
--- a/settings/l10n/de_DE.js
+++ b/settings/l10n/de_DE.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Die E-Mail Adresse konnte nicht geändert werden, da der Benutzer nicht existiert",
"Couldn't change the email address because the token is invalid" : "Die E-Mail Adresse konnte nicht geändert werden, da der Token ungültig ist",
"Your %s account was created" : "Ihr %s-Konto wurde erstellt",
- "Invalid mail address" : "Ungültige E-Mail-Adresse",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"The token provided is invalid." : "Der Token ist ungültig",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s E-Mail Adresse wurde erfolgreich geändert",
"Couldn't send email address change notification mail. Please contact your administrator." : "Die Benachrichtigung zur Änderung der E-Mail Adresse konnte nicht versendet werden. Bitte kontaktieren Sie Ihren Administrator.",
"Unable to enable/disable user." : "Benutzer konnte nicht de-/aktiviert werden.",
+ "Invalid mail address" : "Ungültige E-Mail-Adresse",
"Owner language" : "Sprache des Eigentümers",
"Create" : "Erstellen",
"Change" : "Ändern",
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
index 5b09b7354ec5..a275aadc22aa 100644
--- a/settings/l10n/de_DE.json
+++ b/settings/l10n/de_DE.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "Die E-Mail Adresse konnte nicht geändert werden, da der Benutzer nicht existiert",
"Couldn't change the email address because the token is invalid" : "Die E-Mail Adresse konnte nicht geändert werden, da der Token ungültig ist",
"Your %s account was created" : "Ihr %s-Konto wurde erstellt",
- "Invalid mail address" : "Ungültige E-Mail-Adresse",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"The token provided is invalid." : "Der Token ist ungültig",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "%s E-Mail Adresse wurde erfolgreich geändert",
"Couldn't send email address change notification mail. Please contact your administrator." : "Die Benachrichtigung zur Änderung der E-Mail Adresse konnte nicht versendet werden. Bitte kontaktieren Sie Ihren Administrator.",
"Unable to enable/disable user." : "Benutzer konnte nicht de-/aktiviert werden.",
+ "Invalid mail address" : "Ungültige E-Mail-Adresse",
"Owner language" : "Sprache des Eigentümers",
"Create" : "Erstellen",
"Change" : "Ändern",
diff --git a/settings/l10n/el.js b/settings/l10n/el.js
index 280ba3c3035e..755bb427c272 100644
--- a/settings/l10n/el.js
+++ b/settings/l10n/el.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Αδυναμία αλλαγής διεύθυνσης ηλεκτρονικού ταχυδρομείου διότι δεν υπάρχει ο χρήστης",
"Couldn't change the email address because the token is invalid" : "Αδυναμία αλλαγής διεύθυνσης ηλεκτρονικού ταχυδρομείου λόγω μη έγκυρου διακριτικού",
"Your %s account was created" : "Ο λογαριασμός %s δημιουργήθηκε",
- "Invalid mail address" : "Μη έγκυρη διεύθυνση ταχυδρομείου",
"A user with that name already exists." : "Υπάρχει ήδη χρήστης με το ίδιο όνομα.",
"Unable to create user." : "Αδυναμία δημιουργίας χρήστη.",
"The token provided is invalid." : "Δόθηκε μη έγκυρο διακριτικό.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "ο %s άλλαξε την διεύθυνση ηλεκτρονικής αλληλογραφίας επιτυχώς",
"Couldn't send email address change notification mail. Please contact your administrator." : "Αδυναμία αποστολής μηνύματος ειδοποίησης αλλαγής διεύθυνσης ηλεκτρονικής αλληλογραφίας. Παρακαλούμε επικοινωνήστε με τον διαχειριστή.",
"Unable to enable/disable user." : "Αδυναμία ενεργοποίησης/απενεργοποίησης χρήστη.",
+ "Invalid mail address" : "Μη έγκυρη διεύθυνση ταχυδρομείου",
"Owner language" : "Γλώσσα ιδιοκτήτη",
"Create" : "Δημιουργία",
"Change" : "Αλλαγή",
diff --git a/settings/l10n/el.json b/settings/l10n/el.json
index 53b484dacbbb..2da1d16a5158 100644
--- a/settings/l10n/el.json
+++ b/settings/l10n/el.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "Αδυναμία αλλαγής διεύθυνσης ηλεκτρονικού ταχυδρομείου διότι δεν υπάρχει ο χρήστης",
"Couldn't change the email address because the token is invalid" : "Αδυναμία αλλαγής διεύθυνσης ηλεκτρονικού ταχυδρομείου λόγω μη έγκυρου διακριτικού",
"Your %s account was created" : "Ο λογαριασμός %s δημιουργήθηκε",
- "Invalid mail address" : "Μη έγκυρη διεύθυνση ταχυδρομείου",
"A user with that name already exists." : "Υπάρχει ήδη χρήστης με το ίδιο όνομα.",
"Unable to create user." : "Αδυναμία δημιουργίας χρήστη.",
"The token provided is invalid." : "Δόθηκε μη έγκυρο διακριτικό.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "ο %s άλλαξε την διεύθυνση ηλεκτρονικής αλληλογραφίας επιτυχώς",
"Couldn't send email address change notification mail. Please contact your administrator." : "Αδυναμία αποστολής μηνύματος ειδοποίησης αλλαγής διεύθυνσης ηλεκτρονικής αλληλογραφίας. Παρακαλούμε επικοινωνήστε με τον διαχειριστή.",
"Unable to enable/disable user." : "Αδυναμία ενεργοποίησης/απενεργοποίησης χρήστη.",
+ "Invalid mail address" : "Μη έγκυρη διεύθυνση ταχυδρομείου",
"Owner language" : "Γλώσσα ιδιοκτήτη",
"Create" : "Δημιουργία",
"Change" : "Αλλαγή",
diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js
index 205b793ce48d..9ba3f9409973 100644
--- a/settings/l10n/en_GB.js
+++ b/settings/l10n/en_GB.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Couldn't change the email address because the user does not exist",
"Couldn't change the email address because the token is invalid" : "Couldn't change the email address because the token is invalid",
"Your %s account was created" : "Your %s account was created",
- "Invalid mail address" : "Invalid mail address",
"A user with that name already exists." : "A user with that name already exists.",
"Unable to create user." : "Unable to create user.",
"The token provided is invalid." : "The token provided is invalid.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s email address changed successfully",
"Couldn't send email address change notification mail. Please contact your administrator." : "Couldn't send email address change notification mail. Please contact your administrator.",
"Unable to enable/disable user." : "Unable to enable/disable user.",
+ "Invalid mail address" : "Invalid mail address",
"Owner language" : "Owner language",
"Create" : "Create",
"Change" : "Change",
diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json
index 9a6f8ad1f9d0..a5205355be38 100644
--- a/settings/l10n/en_GB.json
+++ b/settings/l10n/en_GB.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "Couldn't change the email address because the user does not exist",
"Couldn't change the email address because the token is invalid" : "Couldn't change the email address because the token is invalid",
"Your %s account was created" : "Your %s account was created",
- "Invalid mail address" : "Invalid mail address",
"A user with that name already exists." : "A user with that name already exists.",
"Unable to create user." : "Unable to create user.",
"The token provided is invalid." : "The token provided is invalid.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "%s email address changed successfully",
"Couldn't send email address change notification mail. Please contact your administrator." : "Couldn't send email address change notification mail. Please contact your administrator.",
"Unable to enable/disable user." : "Unable to enable/disable user.",
+ "Invalid mail address" : "Invalid mail address",
"Owner language" : "Owner language",
"Create" : "Create",
"Change" : "Change",
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
index c0409da21a25..566382bf1060 100644
--- a/settings/l10n/es.js
+++ b/settings/l10n/es.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "No puedo cambiar la dirección de e-mail por que el usuario no existe.",
"Couldn't change the email address because the token is invalid" : "No puedo cambiar la dirección de e-mail por que el token no es válido.",
"Your %s account was created" : "Se ha creado su cuenta de %s",
- "Invalid mail address" : "Dirección de correo no válida",
"A user with that name already exists." : "Ya existe un usuario con ese nombre.",
"Unable to create user." : "No se pudo crear el usuario.",
"The token provided is invalid." : "El token suministrado no es correcto.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "e-mail %s cambiado satisfactoriamente",
"Couldn't send email address change notification mail. Please contact your administrator." : "No puedo mandar el e-mail de confirmación de cambio de dirección, por favor contacte con el administrador.",
"Unable to enable/disable user." : "No es posible habilitar / deshabilitar el usuario",
+ "Invalid mail address" : "Dirección de correo no válida",
"Owner language" : "Idioma del propietario",
"Create" : "Crear",
"Change" : "Cambiar",
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
index db602f912054..819deb827acc 100644
--- a/settings/l10n/es.json
+++ b/settings/l10n/es.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "No puedo cambiar la dirección de e-mail por que el usuario no existe.",
"Couldn't change the email address because the token is invalid" : "No puedo cambiar la dirección de e-mail por que el token no es válido.",
"Your %s account was created" : "Se ha creado su cuenta de %s",
- "Invalid mail address" : "Dirección de correo no válida",
"A user with that name already exists." : "Ya existe un usuario con ese nombre.",
"Unable to create user." : "No se pudo crear el usuario.",
"The token provided is invalid." : "El token suministrado no es correcto.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "e-mail %s cambiado satisfactoriamente",
"Couldn't send email address change notification mail. Please contact your administrator." : "No puedo mandar el e-mail de confirmación de cambio de dirección, por favor contacte con el administrador.",
"Unable to enable/disable user." : "No es posible habilitar / deshabilitar el usuario",
+ "Invalid mail address" : "Dirección de correo no válida",
"Owner language" : "Idioma del propietario",
"Create" : "Crear",
"Change" : "Cambiar",
diff --git a/settings/l10n/es_AR.js b/settings/l10n/es_AR.js
index 1f5c6ce0f76d..d30c061220f6 100644
--- a/settings/l10n/es_AR.js
+++ b/settings/l10n/es_AR.js
@@ -26,7 +26,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "No fue posible modificar la dirección de correo debido a que el usuario no existe",
"Couldn't change the email address because the token is invalid" : "No fue posible modificar la dirección de correo debido a que el token es inválido",
"Your %s account was created" : "Tu cuenta %s fue creada",
- "Invalid mail address" : "Dirección de correo inválida",
"A user with that name already exists." : "Ya existe un usuario con ese nombre.",
"Unable to create user." : "No se puede crear el usuario.",
"The token provided is invalid." : "El token ingresado es inválido.",
@@ -51,6 +50,7 @@ OC.L10N.register(
"%s email address changed successfully" : "La dirección de correo %s ha sido modificada satisfactoriamente",
"Couldn't send email address change notification mail. Please contact your administrator." : "No se pudo enviar el mensaje de modificación de dirección de correo. Por favor contacte al administrador.",
"Unable to enable/disable user." : "No se puede activar/desactivar al usuario.",
+ "Invalid mail address" : "Dirección de correo inválida",
"Owner language" : "Lenguaje del dueño",
"Create" : "Crear",
"Change" : "Cambiar",
diff --git a/settings/l10n/es_AR.json b/settings/l10n/es_AR.json
index cc5729f0868a..bcc098598510 100644
--- a/settings/l10n/es_AR.json
+++ b/settings/l10n/es_AR.json
@@ -24,7 +24,6 @@
"Couldn't change the email address because the user does not exist" : "No fue posible modificar la dirección de correo debido a que el usuario no existe",
"Couldn't change the email address because the token is invalid" : "No fue posible modificar la dirección de correo debido a que el token es inválido",
"Your %s account was created" : "Tu cuenta %s fue creada",
- "Invalid mail address" : "Dirección de correo inválida",
"A user with that name already exists." : "Ya existe un usuario con ese nombre.",
"Unable to create user." : "No se puede crear el usuario.",
"The token provided is invalid." : "El token ingresado es inválido.",
@@ -49,6 +48,7 @@
"%s email address changed successfully" : "La dirección de correo %s ha sido modificada satisfactoriamente",
"Couldn't send email address change notification mail. Please contact your administrator." : "No se pudo enviar el mensaje de modificación de dirección de correo. Por favor contacte al administrador.",
"Unable to enable/disable user." : "No se puede activar/desactivar al usuario.",
+ "Invalid mail address" : "Dirección de correo inválida",
"Owner language" : "Lenguaje del dueño",
"Create" : "Crear",
"Change" : "Cambiar",
diff --git a/settings/l10n/es_MX.js b/settings/l10n/es_MX.js
index 6772486cb0a4..1f407955763d 100644
--- a/settings/l10n/es_MX.js
+++ b/settings/l10n/es_MX.js
@@ -14,7 +14,6 @@ OC.L10N.register(
"test email settings" : "probar configuración de correo",
"Email sent" : "Correo electrónico enviado",
"You need to set your user email before being able to send test emails." : "Necesitas establecer tu correo de usuario antes de poder enviar correos de prueba.",
- "Invalid mail address" : "Dirección de correo electrónico inválido.",
"A user with that name already exists." : "Ya existe un usuario con ese nombre.",
"Unable to create user." : "No se pudo crear usuario.",
"Unable to delete user." : "No se pudo eliminar usuario.",
@@ -23,6 +22,7 @@ OC.L10N.register(
"Unable to change mail address" : "No se pudo cambiar la dirección de correo electrónico",
"Your full name has been changed." : "Se ha cambiado su nombre completo.",
"Unable to change full name" : "No se puede cambiar el nombre completo",
+ "Invalid mail address" : "Dirección de correo electrónico inválido.",
"Create" : "Crear",
"Delete" : "Eliminar",
"Share" : "Compartir",
diff --git a/settings/l10n/es_MX.json b/settings/l10n/es_MX.json
index e696376d1999..d1d02304c189 100644
--- a/settings/l10n/es_MX.json
+++ b/settings/l10n/es_MX.json
@@ -12,7 +12,6 @@
"test email settings" : "probar configuración de correo",
"Email sent" : "Correo electrónico enviado",
"You need to set your user email before being able to send test emails." : "Necesitas establecer tu correo de usuario antes de poder enviar correos de prueba.",
- "Invalid mail address" : "Dirección de correo electrónico inválido.",
"A user with that name already exists." : "Ya existe un usuario con ese nombre.",
"Unable to create user." : "No se pudo crear usuario.",
"Unable to delete user." : "No se pudo eliminar usuario.",
@@ -21,6 +20,7 @@
"Unable to change mail address" : "No se pudo cambiar la dirección de correo electrónico",
"Your full name has been changed." : "Se ha cambiado su nombre completo.",
"Unable to change full name" : "No se puede cambiar el nombre completo",
+ "Invalid mail address" : "Dirección de correo electrónico inválido.",
"Create" : "Crear",
"Delete" : "Eliminar",
"Share" : "Compartir",
diff --git a/settings/l10n/et_EE.js b/settings/l10n/et_EE.js
index 97bd1976f1e1..1b6db627ad75 100644
--- a/settings/l10n/et_EE.js
+++ b/settings/l10n/et_EE.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"Email sent" : "E-kiri on saadetud",
"You need to set your user email before being able to send test emails." : "Pead seadistama oma e-postienne kui on võimalik saata test-kirju.",
"Your %s account was created" : "Sinu %s konto on loodud",
- "Invalid mail address" : "Vigane e-posti aadress",
"A user with that name already exists." : "Selle nimega kasutaja on juba olemas.",
"Unable to create user." : "Kasutaja loomine ebaõnnestus.",
"The token provided is invalid." : "Kontrollkood on vigane.",
@@ -28,6 +27,7 @@ OC.L10N.register(
"Unable to change display name" : "Ei saa muuta näidatavat nime",
"Your full name has been changed." : "Sinu täispikk nimi on muudetud.",
"Unable to change full name" : "Täispika nime muutmine ebaõnnestus",
+ "Invalid mail address" : "Vigane e-posti aadress",
"Owner language" : "Omaniku keel",
"Create" : "Lisa",
"Change" : "Muuda",
diff --git a/settings/l10n/et_EE.json b/settings/l10n/et_EE.json
index 103fc839d380..586d1d525291 100644
--- a/settings/l10n/et_EE.json
+++ b/settings/l10n/et_EE.json
@@ -15,7 +15,6 @@
"Email sent" : "E-kiri on saadetud",
"You need to set your user email before being able to send test emails." : "Pead seadistama oma e-postienne kui on võimalik saata test-kirju.",
"Your %s account was created" : "Sinu %s konto on loodud",
- "Invalid mail address" : "Vigane e-posti aadress",
"A user with that name already exists." : "Selle nimega kasutaja on juba olemas.",
"Unable to create user." : "Kasutaja loomine ebaõnnestus.",
"The token provided is invalid." : "Kontrollkood on vigane.",
@@ -26,6 +25,7 @@
"Unable to change display name" : "Ei saa muuta näidatavat nime",
"Your full name has been changed." : "Sinu täispikk nimi on muudetud.",
"Unable to change full name" : "Täispika nime muutmine ebaõnnestus",
+ "Invalid mail address" : "Vigane e-posti aadress",
"Owner language" : "Omaniku keel",
"Create" : "Lisa",
"Change" : "Muuda",
diff --git a/settings/l10n/eu.js b/settings/l10n/eu.js
index 2465ae1aef7c..5ebdd1879b2c 100644
--- a/settings/l10n/eu.js
+++ b/settings/l10n/eu.js
@@ -20,7 +20,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Ezin izan da helbide elektronikoa aldatu erabiltzailea ez delako existitzen",
"Couldn't change the email address because the token is invalid" : "Ezin izan da helbide elektronikoa aldatu token-a baliogabea delako",
"Your %s account was created" : "Zure %s kontua sortu da",
- "Invalid mail address" : "Posta helbide baliogabea",
"A user with that name already exists." : "Izen bereko erabiltzailea dagoeneko existitzen da",
"Unable to create user." : "Ezin izan da erabiltzailea sortu.",
"The token provided is invalid." : "Emandako tokena baliogabea da.",
@@ -45,6 +44,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s helbide elektronikoa behar bezala aldatu da",
"Couldn't send email address change notification mail. Please contact your administrator." : "Ezin izan da helbide elektronikoa berrezartzeko mezu elektronikoa bidali. Mesedez harremanetan jarri zure kudeatzailearekin.",
"Unable to enable/disable user." : "Ezin izan da erabiltzailea gaitu/ezgaitu",
+ "Invalid mail address" : "Posta helbide baliogabea",
"Create" : "Sortu",
"Change" : "Aldatu",
"Delete" : "Ezabatu",
diff --git a/settings/l10n/eu.json b/settings/l10n/eu.json
index 78889142a1b0..9e1d5b8fbe89 100644
--- a/settings/l10n/eu.json
+++ b/settings/l10n/eu.json
@@ -18,7 +18,6 @@
"Couldn't change the email address because the user does not exist" : "Ezin izan da helbide elektronikoa aldatu erabiltzailea ez delako existitzen",
"Couldn't change the email address because the token is invalid" : "Ezin izan da helbide elektronikoa aldatu token-a baliogabea delako",
"Your %s account was created" : "Zure %s kontua sortu da",
- "Invalid mail address" : "Posta helbide baliogabea",
"A user with that name already exists." : "Izen bereko erabiltzailea dagoeneko existitzen da",
"Unable to create user." : "Ezin izan da erabiltzailea sortu.",
"The token provided is invalid." : "Emandako tokena baliogabea da.",
@@ -43,6 +42,7 @@
"%s email address changed successfully" : "%s helbide elektronikoa behar bezala aldatu da",
"Couldn't send email address change notification mail. Please contact your administrator." : "Ezin izan da helbide elektronikoa berrezartzeko mezu elektronikoa bidali. Mesedez harremanetan jarri zure kudeatzailearekin.",
"Unable to enable/disable user." : "Ezin izan da erabiltzailea gaitu/ezgaitu",
+ "Invalid mail address" : "Posta helbide baliogabea",
"Create" : "Sortu",
"Change" : "Aldatu",
"Delete" : "Ezabatu",
diff --git a/settings/l10n/fa.js b/settings/l10n/fa.js
index a5f0e29ec1c7..6b56d4e754f0 100644
--- a/settings/l10n/fa.js
+++ b/settings/l10n/fa.js
@@ -23,7 +23,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "آدرس ایمیل تغییر نمی کند زیرا کاربر موجود نیست",
"Couldn't change the email address because the token is invalid" : "آدرس ایمیل تغییر نمی کند زیرا نشانه معتبر نیست",
"Your %s account was created" : "حساب کاربری شما %s ایجاد شد",
- "Invalid mail address" : "آدرس ایمیل نامعتبر است",
"A user with that name already exists." : "کاربری با همین نام در حال حاضر وجود دارد.",
"Unable to create user." : "ایجاد کاربر امکانپذیر نیست.",
"Unable to delete user." : "حذف کاربر امکان پذیر نیست.",
@@ -40,6 +39,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s آدرس ایمیل با موفقیت تغییر کرد",
"Couldn't send email address change notification mail. Please contact your administrator." : "ایمیل اعلان تغییر آدرس ایمیل ارسال نمی شود. لطفا با مدیر خود تماس بگیرید.",
"Unable to enable/disable user." : "فعال سازی/غیر فعال سازی کاربر ممکن نیست.",
+ "Invalid mail address" : "آدرس ایمیل نامعتبر است",
"Create" : "ایجاد کردن",
"Change" : "تغییر",
"Delete" : "حذف",
diff --git a/settings/l10n/fa.json b/settings/l10n/fa.json
index fb8cb9316d78..abf4ee6ad9c3 100644
--- a/settings/l10n/fa.json
+++ b/settings/l10n/fa.json
@@ -21,7 +21,6 @@
"Couldn't change the email address because the user does not exist" : "آدرس ایمیل تغییر نمی کند زیرا کاربر موجود نیست",
"Couldn't change the email address because the token is invalid" : "آدرس ایمیل تغییر نمی کند زیرا نشانه معتبر نیست",
"Your %s account was created" : "حساب کاربری شما %s ایجاد شد",
- "Invalid mail address" : "آدرس ایمیل نامعتبر است",
"A user with that name already exists." : "کاربری با همین نام در حال حاضر وجود دارد.",
"Unable to create user." : "ایجاد کاربر امکانپذیر نیست.",
"Unable to delete user." : "حذف کاربر امکان پذیر نیست.",
@@ -38,6 +37,7 @@
"%s email address changed successfully" : "%s آدرس ایمیل با موفقیت تغییر کرد",
"Couldn't send email address change notification mail. Please contact your administrator." : "ایمیل اعلان تغییر آدرس ایمیل ارسال نمی شود. لطفا با مدیر خود تماس بگیرید.",
"Unable to enable/disable user." : "فعال سازی/غیر فعال سازی کاربر ممکن نیست.",
+ "Invalid mail address" : "آدرس ایمیل نامعتبر است",
"Create" : "ایجاد کردن",
"Change" : "تغییر",
"Delete" : "حذف",
diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js
index 5dbe2963974a..49514b0ea8b7 100644
--- a/settings/l10n/fi_FI.js
+++ b/settings/l10n/fi_FI.js
@@ -19,7 +19,6 @@ OC.L10N.register(
"Email sent" : "Sähköposti lähetetty",
"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.",
"Your %s account was created" : "%s-tilisi luotiin",
- "Invalid mail address" : "Virheellinen sähköpostiosoite",
"A user with that name already exists." : "Käyttäjä samalla nimellä on jo olemassa.",
"Unable to create user." : "Käyttäjän luominen ei onnistunut.",
"Unable to delete user." : "Käyttäjän poistaminen ei onnistunut.",
@@ -35,6 +34,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s sähköpostiosoite vaihdettu onnistuneesti",
"Couldn't send email address change notification mail. Please contact your administrator." : "Ei voitu lähettää sähköpostiosoitteen vaihtamisen ilmoitusta. Ole hyvä ja ota yhteyttä järjestelmänvalvojaan.",
"Unable to enable/disable user." : "Ei voitu ottaa käyttöön tai poistaa käytöstä käyttäjää",
+ "Invalid mail address" : "Virheellinen sähköpostiosoite",
"Create" : "Luo",
"Change" : "Muuta",
"Delete" : "Poista",
diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json
index adfdb4116243..0e46ef7fc995 100644
--- a/settings/l10n/fi_FI.json
+++ b/settings/l10n/fi_FI.json
@@ -17,7 +17,6 @@
"Email sent" : "Sähköposti lähetetty",
"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.",
"Your %s account was created" : "%s-tilisi luotiin",
- "Invalid mail address" : "Virheellinen sähköpostiosoite",
"A user with that name already exists." : "Käyttäjä samalla nimellä on jo olemassa.",
"Unable to create user." : "Käyttäjän luominen ei onnistunut.",
"Unable to delete user." : "Käyttäjän poistaminen ei onnistunut.",
@@ -33,6 +32,7 @@
"%s email address changed successfully" : "%s sähköpostiosoite vaihdettu onnistuneesti",
"Couldn't send email address change notification mail. Please contact your administrator." : "Ei voitu lähettää sähköpostiosoitteen vaihtamisen ilmoitusta. Ole hyvä ja ota yhteyttä järjestelmänvalvojaan.",
"Unable to enable/disable user." : "Ei voitu ottaa käyttöön tai poistaa käytöstä käyttäjää",
+ "Invalid mail address" : "Virheellinen sähköpostiosoite",
"Create" : "Luo",
"Change" : "Muuta",
"Delete" : "Poista",
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index 2e0c8e573307..36140556340e 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -27,7 +27,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Le courriel n'a pas pu être mise à jour car l'utilisateur n'existe pas",
"Couldn't change the email address because the token is invalid" : "Le courriel n'a pas pu être mise à jour car le jeton est invalide",
"Your %s account was created" : "Votre compte %s a été créé",
- "Invalid mail address" : "Adresse e-mail non valide",
"A user with that name already exists." : "Un utilisateur avec ce nom existe déjà.",
"Unable to create user." : "Impossible de créer l'utilisateur.",
"The token provided is invalid." : "Le jeton fourni n'est pas valide.",
@@ -52,6 +51,7 @@ OC.L10N.register(
"%s email address changed successfully" : "l'adresse de courriel %s a été modifiée avec succès",
"Couldn't send email address change notification mail. Please contact your administrator." : "Impossible d'envoyer un courriel de notification de changement d'adresse. Veuillez contacter votre administrateur.",
"Unable to enable/disable user." : "Impossible d'activer/désactiver l'utilisateur.",
+ "Invalid mail address" : "Adresse e-mail non valide",
"Owner language" : "Langue du propriétaire",
"Create" : "Créer",
"Change" : "Modification",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index a4fc02ecb4fa..62c33eae80eb 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -25,7 +25,6 @@
"Couldn't change the email address because the user does not exist" : "Le courriel n'a pas pu être mise à jour car l'utilisateur n'existe pas",
"Couldn't change the email address because the token is invalid" : "Le courriel n'a pas pu être mise à jour car le jeton est invalide",
"Your %s account was created" : "Votre compte %s a été créé",
- "Invalid mail address" : "Adresse e-mail non valide",
"A user with that name already exists." : "Un utilisateur avec ce nom existe déjà.",
"Unable to create user." : "Impossible de créer l'utilisateur.",
"The token provided is invalid." : "Le jeton fourni n'est pas valide.",
@@ -50,6 +49,7 @@
"%s email address changed successfully" : "l'adresse de courriel %s a été modifiée avec succès",
"Couldn't send email address change notification mail. Please contact your administrator." : "Impossible d'envoyer un courriel de notification de changement d'adresse. Veuillez contacter votre administrateur.",
"Unable to enable/disable user." : "Impossible d'activer/désactiver l'utilisateur.",
+ "Invalid mail address" : "Adresse e-mail non valide",
"Owner language" : "Langue du propriétaire",
"Create" : "Créer",
"Change" : "Modification",
diff --git a/settings/l10n/gl.js b/settings/l10n/gl.js
index 3f7d5a82e7e9..0d201cd43470 100644
--- a/settings/l10n/gl.js
+++ b/settings/l10n/gl.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Non é posíbel cambiar o enderezo do correo xa que o usuario non existe",
"Couldn't change the email address because the token is invalid" : "Non é posíbel cambiar o enderezo do correo xa que o testemuño non é válido",
"Your %s account was created" : "Foi creada a conta %s",
- "Invalid mail address" : "Enderezo de correo incorrecto",
"A user with that name already exists." : "Xa existe un usuario con ese nome.",
"Unable to create user." : "Non é posíbel crear o usuario.",
"The token provided is invalid." : "O testemuño fornecido non é válido.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "O enderezo de correo %s foi cambiado satisfactoriamente",
"Couldn't send email address change notification mail. Please contact your administrator." : "Non é posíbel enviar o correo de notificación do cambio de enderezo. Póñase en contacto co administrador.",
"Unable to enable/disable user." : "Non é posíbel activar/desactivar o usuario.",
+ "Invalid mail address" : "Enderezo de correo incorrecto",
"Owner language" : "Idioma do propietario",
"Create" : "Crear",
"Change" : "Cambiar",
diff --git a/settings/l10n/gl.json b/settings/l10n/gl.json
index 864e092d10fe..21d4439c7e80 100644
--- a/settings/l10n/gl.json
+++ b/settings/l10n/gl.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "Non é posíbel cambiar o enderezo do correo xa que o usuario non existe",
"Couldn't change the email address because the token is invalid" : "Non é posíbel cambiar o enderezo do correo xa que o testemuño non é válido",
"Your %s account was created" : "Foi creada a conta %s",
- "Invalid mail address" : "Enderezo de correo incorrecto",
"A user with that name already exists." : "Xa existe un usuario con ese nome.",
"Unable to create user." : "Non é posíbel crear o usuario.",
"The token provided is invalid." : "O testemuño fornecido non é válido.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "O enderezo de correo %s foi cambiado satisfactoriamente",
"Couldn't send email address change notification mail. Please contact your administrator." : "Non é posíbel enviar o correo de notificación do cambio de enderezo. Póñase en contacto co administrador.",
"Unable to enable/disable user." : "Non é posíbel activar/desactivar o usuario.",
+ "Invalid mail address" : "Enderezo de correo incorrecto",
"Owner language" : "Idioma do propietario",
"Create" : "Crear",
"Change" : "Cambiar",
diff --git a/settings/l10n/he.js b/settings/l10n/he.js
index 976685170667..a1698fc7c261 100644
--- a/settings/l10n/he.js
+++ b/settings/l10n/he.js
@@ -27,7 +27,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "לא ניתן היה לשנות את כתובת הדואר האלקטרוני כיוון שהמשתמש אינו קיים",
"Couldn't change the email address because the token is invalid" : "לא ניתן היה לשנות את כתובת הדואר האלקטרוני כיוון שחתימת הייצוג אינה חוקית",
"Your %s account was created" : "חשבון %s שלך נוצר",
- "Invalid mail address" : "כתובת דואר אלקטרוני לא חוקית",
"A user with that name already exists." : "משתמש בשם זה כבר קיים.",
"Unable to create user." : "לא ניתן ליצור משתמש.",
"The token provided is invalid." : "חתימת הייצוג שסופקה אינה חוקית.",
@@ -52,6 +51,7 @@ OC.L10N.register(
"%s email address changed successfully" : "כתובת הדואר האלקטרוני %s הוחלפה בהצלחה",
"Couldn't send email address change notification mail. Please contact your administrator." : "לא ניתן היה לשלוח הודעת אימות לכתובת הדואר האלקטרוני החדשה. יש ליצור קשר עם מנהל המערכת שלך.",
"Unable to enable/disable user." : "לא ניתן היה לנטרל / לבטל ניטרול משתמש.",
+ "Invalid mail address" : "כתובת דואר אלקטרוני לא חוקית",
"Owner language" : "שפת בעל התוכן",
"Create" : "יצירה",
"Change" : "שינוי",
diff --git a/settings/l10n/he.json b/settings/l10n/he.json
index f273b6df96e0..1b73589d1680 100644
--- a/settings/l10n/he.json
+++ b/settings/l10n/he.json
@@ -25,7 +25,6 @@
"Couldn't change the email address because the user does not exist" : "לא ניתן היה לשנות את כתובת הדואר האלקטרוני כיוון שהמשתמש אינו קיים",
"Couldn't change the email address because the token is invalid" : "לא ניתן היה לשנות את כתובת הדואר האלקטרוני כיוון שחתימת הייצוג אינה חוקית",
"Your %s account was created" : "חשבון %s שלך נוצר",
- "Invalid mail address" : "כתובת דואר אלקטרוני לא חוקית",
"A user with that name already exists." : "משתמש בשם זה כבר קיים.",
"Unable to create user." : "לא ניתן ליצור משתמש.",
"The token provided is invalid." : "חתימת הייצוג שסופקה אינה חוקית.",
@@ -50,6 +49,7 @@
"%s email address changed successfully" : "כתובת הדואר האלקטרוני %s הוחלפה בהצלחה",
"Couldn't send email address change notification mail. Please contact your administrator." : "לא ניתן היה לשלוח הודעת אימות לכתובת הדואר האלקטרוני החדשה. יש ליצור קשר עם מנהל המערכת שלך.",
"Unable to enable/disable user." : "לא ניתן היה לנטרל / לבטל ניטרול משתמש.",
+ "Invalid mail address" : "כתובת דואר אלקטרוני לא חוקית",
"Owner language" : "שפת בעל התוכן",
"Create" : "יצירה",
"Change" : "שינוי",
diff --git a/settings/l10n/hu_HU.js b/settings/l10n/hu_HU.js
index 4ee93d3d0fbb..de1ae4d91d45 100644
--- a/settings/l10n/hu_HU.js
+++ b/settings/l10n/hu_HU.js
@@ -25,7 +25,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Az email címet men lehet megváltoztatni mert a felhasználó nem létezik",
"Couldn't change the email address because the token is invalid" : "Nem sikerült megváltoztatni az e-mail címet, mert a token érvénytelen",
"Your %s account was created" : "%s fiók létrehozva",
- "Invalid mail address" : "Érvénytelen e-mail cím",
"A user with that name already exists." : "Ilyen névvel már létezik felhasználó!",
"Unable to create user." : "Nem lehet létrehozni a felhasználót.",
"Unable to delete user." : "Nem lehet törölni a felhasználót.",
@@ -43,6 +42,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s az email cím megváltoztatása sikeres",
"Couldn't send email address change notification mail. Please contact your administrator." : "Nem sikerült elküldeni az e-mail cím módosítási értesítést. Kérjük, lépjen kapcsolatba a rendszergazdájával.",
"Unable to enable/disable user." : "A felhasználó engedélyezése / tiltása nem lehetséges.",
+ "Invalid mail address" : "Érvénytelen e-mail cím",
"Create" : "Létrehozás",
"Change" : "Változás",
"Delete" : "Törlés",
diff --git a/settings/l10n/hu_HU.json b/settings/l10n/hu_HU.json
index 0258eb39d45a..e7778281a60e 100644
--- a/settings/l10n/hu_HU.json
+++ b/settings/l10n/hu_HU.json
@@ -23,7 +23,6 @@
"Couldn't change the email address because the user does not exist" : "Az email címet men lehet megváltoztatni mert a felhasználó nem létezik",
"Couldn't change the email address because the token is invalid" : "Nem sikerült megváltoztatni az e-mail címet, mert a token érvénytelen",
"Your %s account was created" : "%s fiók létrehozva",
- "Invalid mail address" : "Érvénytelen e-mail cím",
"A user with that name already exists." : "Ilyen névvel már létezik felhasználó!",
"Unable to create user." : "Nem lehet létrehozni a felhasználót.",
"Unable to delete user." : "Nem lehet törölni a felhasználót.",
@@ -41,6 +40,7 @@
"%s email address changed successfully" : "%s az email cím megváltoztatása sikeres",
"Couldn't send email address change notification mail. Please contact your administrator." : "Nem sikerült elküldeni az e-mail cím módosítási értesítést. Kérjük, lépjen kapcsolatba a rendszergazdájával.",
"Unable to enable/disable user." : "A felhasználó engedélyezése / tiltása nem lehetséges.",
+ "Invalid mail address" : "Érvénytelen e-mail cím",
"Create" : "Létrehozás",
"Change" : "Változás",
"Delete" : "Törlés",
diff --git a/settings/l10n/hy.js b/settings/l10n/hy.js
index ca9bf9740d08..7d1066ec228b 100644
--- a/settings/l10n/hy.js
+++ b/settings/l10n/hy.js
@@ -5,12 +5,12 @@ OC.L10N.register(
"Unable to delete group." : "Չկարողացա ջնջել խումբը",
"Saved" : "Պահված",
"Email sent" : "Էլ. նամակը ուղարկվեց",
- "Invalid mail address" : "Անվավեր էլ. հասցե",
"Unable to delete user." : "Չկարողացա ջնջել օգտատիրոջը",
"Forbidden" : "Արգելված",
"Invalid user" : "Անվավեր օգտատեր",
"Unable to change mail address" : "Չկարողացա փոխել էլ. հասցեն",
"Unable to change full name" : "Չկարողացա փոխել լրիվ անունը",
+ "Invalid mail address" : "Անվավեր էլ. հասցե",
"Create" : "Ստեղծել",
"Delete" : "Ջնջել",
"Share" : "Կիսվել",
diff --git a/settings/l10n/hy.json b/settings/l10n/hy.json
index 6e398d16f907..630be385776a 100644
--- a/settings/l10n/hy.json
+++ b/settings/l10n/hy.json
@@ -3,12 +3,12 @@
"Unable to delete group." : "Չկարողացա ջնջել խումբը",
"Saved" : "Պահված",
"Email sent" : "Էլ. նամակը ուղարկվեց",
- "Invalid mail address" : "Անվավեր էլ. հասցե",
"Unable to delete user." : "Չկարողացա ջնջել օգտատիրոջը",
"Forbidden" : "Արգելված",
"Invalid user" : "Անվավեր օգտատեր",
"Unable to change mail address" : "Չկարողացա փոխել էլ. հասցեն",
"Unable to change full name" : "Չկարողացա փոխել լրիվ անունը",
+ "Invalid mail address" : "Անվավեր էլ. հասցե",
"Create" : "Ստեղծել",
"Delete" : "Ջնջել",
"Share" : "Կիսվել",
diff --git a/settings/l10n/id.js b/settings/l10n/id.js
index 87b43f4f371c..819ea66b02c9 100644
--- a/settings/l10n/id.js
+++ b/settings/l10n/id.js
@@ -26,7 +26,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Alamat surel tidak dapat diganti karena penggunanya tidak ada",
"Couldn't change the email address because the token is invalid" : "Alamat surel tidak dapat diganti karena token tidak sah",
"Your %s account was created" : "Akun %s Anda telah dibuat",
- "Invalid mail address" : "Alamat email salah",
"A user with that name already exists." : "Pengguna dengan nama tersebut sudah ada.",
"Unable to create user." : "Tidak dapat membuat pengguna.",
"The token provided is invalid." : "Token tidak sah.",
@@ -48,6 +47,7 @@ OC.L10N.register(
"Unable to change full name" : "Tidak dapat mengubah nama lengkap",
"%s email address confirm" : "%s alamat surel konfirmasi",
"%s email address changed successfully" : "%s alamat surel berhasil diganti",
+ "Invalid mail address" : "Alamat email salah",
"Create" : "Buat",
"Delete" : "Hapus",
"Share" : "Bagikan",
diff --git a/settings/l10n/id.json b/settings/l10n/id.json
index 9388987967fe..2bfe7ba445d3 100644
--- a/settings/l10n/id.json
+++ b/settings/l10n/id.json
@@ -24,7 +24,6 @@
"Couldn't change the email address because the user does not exist" : "Alamat surel tidak dapat diganti karena penggunanya tidak ada",
"Couldn't change the email address because the token is invalid" : "Alamat surel tidak dapat diganti karena token tidak sah",
"Your %s account was created" : "Akun %s Anda telah dibuat",
- "Invalid mail address" : "Alamat email salah",
"A user with that name already exists." : "Pengguna dengan nama tersebut sudah ada.",
"Unable to create user." : "Tidak dapat membuat pengguna.",
"The token provided is invalid." : "Token tidak sah.",
@@ -46,6 +45,7 @@
"Unable to change full name" : "Tidak dapat mengubah nama lengkap",
"%s email address confirm" : "%s alamat surel konfirmasi",
"%s email address changed successfully" : "%s alamat surel berhasil diganti",
+ "Invalid mail address" : "Alamat email salah",
"Create" : "Buat",
"Delete" : "Hapus",
"Share" : "Bagikan",
diff --git a/settings/l10n/is.js b/settings/l10n/is.js
index b3e8a10ac805..abf78df9d73d 100644
--- a/settings/l10n/is.js
+++ b/settings/l10n/is.js
@@ -26,7 +26,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Gat ekki breytt tölvupóstfanginu vegna þess að notandinn er ekki til",
"Couldn't change the email address because the token is invalid" : "Gat ekki breytt tölvupóstfanginu vegna þess að teiknið er ógilt",
"Your %s account was created" : "%s notandaaðgangurinn þinn var búinn til",
- "Invalid mail address" : "Ógilt tölvupóstfang",
"A user with that name already exists." : "Nú þegar til notandi með þetta nafn.",
"Unable to create user." : "Gat ekki búið til notanda.",
"The token provided is invalid." : "Teiknið sem þú gafst upp er ógilt.",
@@ -45,6 +44,7 @@ OC.L10N.register(
"%s email address changed successfully" : "Tókst að breyta tölvupóstfangi %s",
"Couldn't send email address change notification mail. Please contact your administrator." : "Gat ekki sent póst um breytingu á tölvupóstfangi. Hafðu samband við kerfisstjóra.",
"Unable to enable/disable user." : "Get ekki virkjað/afvirkjað notanda.",
+ "Invalid mail address" : "Ógilt tölvupóstfang",
"Owner language" : "Tungumál eiganda",
"Create" : "Búa til",
"Change" : "Skipta um",
diff --git a/settings/l10n/is.json b/settings/l10n/is.json
index 5a1cd5064d79..3e3f963b824d 100644
--- a/settings/l10n/is.json
+++ b/settings/l10n/is.json
@@ -24,7 +24,6 @@
"Couldn't change the email address because the user does not exist" : "Gat ekki breytt tölvupóstfanginu vegna þess að notandinn er ekki til",
"Couldn't change the email address because the token is invalid" : "Gat ekki breytt tölvupóstfanginu vegna þess að teiknið er ógilt",
"Your %s account was created" : "%s notandaaðgangurinn þinn var búinn til",
- "Invalid mail address" : "Ógilt tölvupóstfang",
"A user with that name already exists." : "Nú þegar til notandi með þetta nafn.",
"Unable to create user." : "Gat ekki búið til notanda.",
"The token provided is invalid." : "Teiknið sem þú gafst upp er ógilt.",
@@ -43,6 +42,7 @@
"%s email address changed successfully" : "Tókst að breyta tölvupóstfangi %s",
"Couldn't send email address change notification mail. Please contact your administrator." : "Gat ekki sent póst um breytingu á tölvupóstfangi. Hafðu samband við kerfisstjóra.",
"Unable to enable/disable user." : "Get ekki virkjað/afvirkjað notanda.",
+ "Invalid mail address" : "Ógilt tölvupóstfang",
"Owner language" : "Tungumál eiganda",
"Create" : "Búa til",
"Change" : "Skipta um",
diff --git a/settings/l10n/it.js b/settings/l10n/it.js
index 3bf63a9a99bc..f26592e255b8 100644
--- a/settings/l10n/it.js
+++ b/settings/l10n/it.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Impossibile cambiare indirizzo mail in quanto l'utente non esiste",
"Couldn't change the email address because the token is invalid" : "Impossibile cambiare indirizzo email in quanto il token è invalido",
"Your %s account was created" : "Il tuo account %s è stato creato",
- "Invalid mail address" : "Indirizzo email non valido",
"A user with that name already exists." : "Un utente con quel nome esiste già.",
"Unable to create user." : "Impossibile creare l'utente.",
"The token provided is invalid." : "Il token fornito non è valido.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%sindirizzo di email cambiato con successo",
"Couldn't send email address change notification mail. Please contact your administrator." : "Impossibile inviare email di conferma per cambio indirizzo. Contatta l'amministratore.",
"Unable to enable/disable user." : "Impossibile abilitare/disabilitare l'utente.",
+ "Invalid mail address" : "Indirizzo email non valido",
"Owner language" : "Lingua del proprietario",
"Create" : "Crea",
"Change" : "Cambia",
diff --git a/settings/l10n/it.json b/settings/l10n/it.json
index d43023919a0f..e21400b4c3fd 100644
--- a/settings/l10n/it.json
+++ b/settings/l10n/it.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "Impossibile cambiare indirizzo mail in quanto l'utente non esiste",
"Couldn't change the email address because the token is invalid" : "Impossibile cambiare indirizzo email in quanto il token è invalido",
"Your %s account was created" : "Il tuo account %s è stato creato",
- "Invalid mail address" : "Indirizzo email non valido",
"A user with that name already exists." : "Un utente con quel nome esiste già.",
"Unable to create user." : "Impossibile creare l'utente.",
"The token provided is invalid." : "Il token fornito non è valido.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "%sindirizzo di email cambiato con successo",
"Couldn't send email address change notification mail. Please contact your administrator." : "Impossibile inviare email di conferma per cambio indirizzo. Contatta l'amministratore.",
"Unable to enable/disable user." : "Impossibile abilitare/disabilitare l'utente.",
+ "Invalid mail address" : "Indirizzo email non valido",
"Owner language" : "Lingua del proprietario",
"Create" : "Crea",
"Change" : "Cambia",
diff --git a/settings/l10n/ja.js b/settings/l10n/ja.js
index 508e78022a44..169de8246382 100644
--- a/settings/l10n/ja.js
+++ b/settings/l10n/ja.js
@@ -27,7 +27,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "ユーザが存在しない為、emailアドレスを変更出来ませんでした。",
"Couldn't change the email address because the token is invalid" : "無効なトークンを利用している為、emailアドレスが変更出来ませんでした。",
"Your %s account was created" : "アカウント %s を作成しました",
- "Invalid mail address" : "無効なメールアドレスです",
"A user with that name already exists." : "そのユーザー名はすでに存在します。",
"Unable to create user." : "ユーザーを追加できません。",
"Failed to set password. Please contact the administrator." : "パスワードの設定に失敗しました。管理者に問い合わせてください。",
@@ -48,6 +47,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%sメールアドレスを変更しました",
"Couldn't send email address change notification mail. Please contact your administrator." : "メールアドレスの変更を通知するメールを送ることができませんでした。\n管理者に問い合わせてください。",
"Unable to enable/disable user." : "ユーザの有効化/無効化に失敗しました。",
+ "Invalid mail address" : "無効なメールアドレスです",
"Owner language" : "所有者の言語",
"Create" : "作成",
"Change" : "更新",
diff --git a/settings/l10n/ja.json b/settings/l10n/ja.json
index 2868719ca5c7..cf104a7d960f 100644
--- a/settings/l10n/ja.json
+++ b/settings/l10n/ja.json
@@ -25,7 +25,6 @@
"Couldn't change the email address because the user does not exist" : "ユーザが存在しない為、emailアドレスを変更出来ませんでした。",
"Couldn't change the email address because the token is invalid" : "無効なトークンを利用している為、emailアドレスが変更出来ませんでした。",
"Your %s account was created" : "アカウント %s を作成しました",
- "Invalid mail address" : "無効なメールアドレスです",
"A user with that name already exists." : "そのユーザー名はすでに存在します。",
"Unable to create user." : "ユーザーを追加できません。",
"Failed to set password. Please contact the administrator." : "パスワードの設定に失敗しました。管理者に問い合わせてください。",
@@ -46,6 +45,7 @@
"%s email address changed successfully" : "%sメールアドレスを変更しました",
"Couldn't send email address change notification mail. Please contact your administrator." : "メールアドレスの変更を通知するメールを送ることができませんでした。\n管理者に問い合わせてください。",
"Unable to enable/disable user." : "ユーザの有効化/無効化に失敗しました。",
+ "Invalid mail address" : "無効なメールアドレスです",
"Owner language" : "所有者の言語",
"Create" : "作成",
"Change" : "更新",
diff --git a/settings/l10n/kn.js b/settings/l10n/kn.js
index 648f0e17f41c..81bc34a538df 100644
--- a/settings/l10n/kn.js
+++ b/settings/l10n/kn.js
@@ -13,7 +13,6 @@ OC.L10N.register(
"Email sent" : "ಇ-ಅಂಚೆ ಕಳುಹಿಸಲಾಗಿದೆ",
"You need to set your user email before being able to send test emails." : "ನೀವು ಪರೀಕ್ಷಾ ಇ-ಅಂಚೆಯನ್ನು ಕಳುಹಿಸುವ ಮುನ್ನ ನಿಮ್ಮ ಬಳಕೆದಾರ ಇ-ಅಂಚೆಯನ್ನು ಹೊಂದಿಸಬೇಕಾಗುತ್ತದೆ.",
"Your %s account was created" : "ನಿಮ್ಮ%s ಖಾತೆಯನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ",
- "Invalid mail address" : "ಅಮಾನ್ಯ ಇ-ಅಂಚೆ ವಿಳಾಸ",
"Unable to create user." : "ಬಳಕೆದಾರನ ಖಾತೆ ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ.",
"Unable to delete user." : "ಬಳಕೆದಾರನ ಹೆಸರುನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.",
"Forbidden" : "ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ",
@@ -21,6 +20,7 @@ OC.L10N.register(
"Unable to change mail address" : "ಇ-ಅಂಚೆ ವಿಳಾಸ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
"Your full name has been changed." : "ನಿಮ್ಮ ಪೂರ್ಣ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ.",
"Unable to change full name" : "ಪೂರ್ಣ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
+ "Invalid mail address" : "ಅಮಾನ್ಯ ಇ-ಅಂಚೆ ವಿಳಾಸ",
"Create" : "ಸೃಷ್ಟಿಸಿ",
"Delete" : "ಅಳಿಸಿ",
"Share" : "ಹಂಚಿಕೊಳ್ಳಿ",
diff --git a/settings/l10n/kn.json b/settings/l10n/kn.json
index 1aea4659998b..2e73fb339c5f 100644
--- a/settings/l10n/kn.json
+++ b/settings/l10n/kn.json
@@ -11,7 +11,6 @@
"Email sent" : "ಇ-ಅಂಚೆ ಕಳುಹಿಸಲಾಗಿದೆ",
"You need to set your user email before being able to send test emails." : "ನೀವು ಪರೀಕ್ಷಾ ಇ-ಅಂಚೆಯನ್ನು ಕಳುಹಿಸುವ ಮುನ್ನ ನಿಮ್ಮ ಬಳಕೆದಾರ ಇ-ಅಂಚೆಯನ್ನು ಹೊಂದಿಸಬೇಕಾಗುತ್ತದೆ.",
"Your %s account was created" : "ನಿಮ್ಮ%s ಖಾತೆಯನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ",
- "Invalid mail address" : "ಅಮಾನ್ಯ ಇ-ಅಂಚೆ ವಿಳಾಸ",
"Unable to create user." : "ಬಳಕೆದಾರನ ಖಾತೆ ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ.",
"Unable to delete user." : "ಬಳಕೆದಾರನ ಹೆಸರುನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.",
"Forbidden" : "ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ",
@@ -19,6 +18,7 @@
"Unable to change mail address" : "ಇ-ಅಂಚೆ ವಿಳಾಸ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
"Your full name has been changed." : "ನಿಮ್ಮ ಪೂರ್ಣ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ.",
"Unable to change full name" : "ಪೂರ್ಣ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
+ "Invalid mail address" : "ಅಮಾನ್ಯ ಇ-ಅಂಚೆ ವಿಳಾಸ",
"Create" : "ಸೃಷ್ಟಿಸಿ",
"Delete" : "ಅಳಿಸಿ",
"Share" : "ಹಂಚಿಕೊಳ್ಳಿ",
diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js
index 27b4cb1cf3cf..ac6e680cbe76 100644
--- a/settings/l10n/ko.js
+++ b/settings/l10n/ko.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "사용자가 존재하지 않기 때문에 이메일 주소를 변경할 수 없음",
"Couldn't change the email address because the token is invalid" : "토큰이 잘못되었기 때문에 이메일 주소를 변경할 수 없음",
"Your %s account was created" : "%s 계정을 등록했습니다",
- "Invalid mail address" : "잘못된 이메일 주소",
"A user with that name already exists." : "같은 이름의 사용자가 이미 존재합니다.",
"Unable to create user." : "사용자를 만들 수 없습니다.",
"The token provided is invalid." : "제공된 토큰이 유효하지 않습니다.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s 이메일 주소가 성공적으로 변경됨",
"Couldn't send email address change notification mail. Please contact your administrator." : "아메일 주소 변경 알림 메일을 보낼 수 없습니다. 관리자에게 문의하십시오.",
"Unable to enable/disable user." : "사용자를 활성화/비활성화할 수 없습니다.",
+ "Invalid mail address" : "잘못된 이메일 주소",
"Owner language" : "주사용 언어",
"Create" : "만들기",
"Change" : "변경",
diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json
index c3f4757c98d2..2f159c40f7d1 100644
--- a/settings/l10n/ko.json
+++ b/settings/l10n/ko.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "사용자가 존재하지 않기 때문에 이메일 주소를 변경할 수 없음",
"Couldn't change the email address because the token is invalid" : "토큰이 잘못되었기 때문에 이메일 주소를 변경할 수 없음",
"Your %s account was created" : "%s 계정을 등록했습니다",
- "Invalid mail address" : "잘못된 이메일 주소",
"A user with that name already exists." : "같은 이름의 사용자가 이미 존재합니다.",
"Unable to create user." : "사용자를 만들 수 없습니다.",
"The token provided is invalid." : "제공된 토큰이 유효하지 않습니다.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "%s 이메일 주소가 성공적으로 변경됨",
"Couldn't send email address change notification mail. Please contact your administrator." : "아메일 주소 변경 알림 메일을 보낼 수 없습니다. 관리자에게 문의하십시오.",
"Unable to enable/disable user." : "사용자를 활성화/비활성화할 수 없습니다.",
+ "Invalid mail address" : "잘못된 이메일 주소",
"Owner language" : "주사용 언어",
"Create" : "만들기",
"Change" : "변경",
diff --git a/settings/l10n/lb.js b/settings/l10n/lb.js
index 745c174fd64f..b1e5928936a7 100644
--- a/settings/l10n/lb.js
+++ b/settings/l10n/lb.js
@@ -15,7 +15,6 @@ OC.L10N.register(
"Email sent" : "Email geschéckt",
"You need to set your user email before being able to send test emails." : "Du muss deng Email-Adress konfiguréieren éiers de Test-Maile schécke kanns.",
"Your %s account was created" : "Däin %s Kont gouf erschaf",
- "Invalid mail address" : "Ongëlteg Email Adress",
"A user with that name already exists." : "E Benotzer mat dësem Numm existéiert schonn.",
"Unable to create user." : "Onméiglech de Benotzer ze erschafen.",
"Unable to delete user." : "Onmeiglech fir de User zu läschen.",
@@ -25,6 +24,7 @@ OC.L10N.register(
"Unable to change display name" : "Unmeiglech den Nickname ze änneren.",
"Your full name has been changed." : "Äre ganzen Numm ass geännert ginn.",
"Unable to change full name" : "Onméiglech de ganzen Numm ze änneren.",
+ "Invalid mail address" : "Ongëlteg Email Adress",
"Create" : "Erstellen",
"Delete" : "Läschen",
"Share" : "Deelen",
diff --git a/settings/l10n/lb.json b/settings/l10n/lb.json
index 1fe8ee6d8a32..10461f3792cc 100644
--- a/settings/l10n/lb.json
+++ b/settings/l10n/lb.json
@@ -13,7 +13,6 @@
"Email sent" : "Email geschéckt",
"You need to set your user email before being able to send test emails." : "Du muss deng Email-Adress konfiguréieren éiers de Test-Maile schécke kanns.",
"Your %s account was created" : "Däin %s Kont gouf erschaf",
- "Invalid mail address" : "Ongëlteg Email Adress",
"A user with that name already exists." : "E Benotzer mat dësem Numm existéiert schonn.",
"Unable to create user." : "Onméiglech de Benotzer ze erschafen.",
"Unable to delete user." : "Onmeiglech fir de User zu läschen.",
@@ -23,6 +22,7 @@
"Unable to change display name" : "Unmeiglech den Nickname ze änneren.",
"Your full name has been changed." : "Äre ganzen Numm ass geännert ginn.",
"Unable to change full name" : "Onméiglech de ganzen Numm ze änneren.",
+ "Invalid mail address" : "Ongëlteg Email Adress",
"Create" : "Erstellen",
"Delete" : "Läschen",
"Share" : "Deelen",
diff --git a/settings/l10n/lt_LT.js b/settings/l10n/lt_LT.js
index 31caa96f87f7..60cfbf1787a8 100644
--- a/settings/l10n/lt_LT.js
+++ b/settings/l10n/lt_LT.js
@@ -24,7 +24,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Negalima pakeisti El. pašto adreso, kadangi naudotojas neegzistuoja",
"Couldn't change the email address because the token is invalid" : "Nepavyko pakeisti el. pašto adreso nes tokenas negalioja",
"Your %s account was created" : "Tavo paskyra %s sukurta",
- "Invalid mail address" : "Neteisingas pašto adresas",
"A user with that name already exists." : "Naudotojas tokiu vardu jau egzistuoja.",
"Unable to create user." : "Nepavyko sukurti naudotojo.",
"Unable to delete user." : "Nepavyko ištrinti naudotojo.",
@@ -37,6 +36,7 @@ OC.L10N.register(
"Your full name has been changed." : "Pilnas vardas pakeistas.",
"Unable to change full name" : "Nepavyko pakeisti pilno vardo",
"%s email address confirm" : "%sel. pašto adresas patvirtinimui",
+ "Invalid mail address" : "Neteisingas pašto adresas",
"Create" : "Sukurti",
"Change" : "Keisti",
"Delete" : "Ištrinti",
diff --git a/settings/l10n/lt_LT.json b/settings/l10n/lt_LT.json
index a80e1c7ddd18..e4d1c633bc2f 100644
--- a/settings/l10n/lt_LT.json
+++ b/settings/l10n/lt_LT.json
@@ -22,7 +22,6 @@
"Couldn't change the email address because the user does not exist" : "Negalima pakeisti El. pašto adreso, kadangi naudotojas neegzistuoja",
"Couldn't change the email address because the token is invalid" : "Nepavyko pakeisti el. pašto adreso nes tokenas negalioja",
"Your %s account was created" : "Tavo paskyra %s sukurta",
- "Invalid mail address" : "Neteisingas pašto adresas",
"A user with that name already exists." : "Naudotojas tokiu vardu jau egzistuoja.",
"Unable to create user." : "Nepavyko sukurti naudotojo.",
"Unable to delete user." : "Nepavyko ištrinti naudotojo.",
@@ -35,6 +34,7 @@
"Your full name has been changed." : "Pilnas vardas pakeistas.",
"Unable to change full name" : "Nepavyko pakeisti pilno vardo",
"%s email address confirm" : "%sel. pašto adresas patvirtinimui",
+ "Invalid mail address" : "Neteisingas pašto adresas",
"Create" : "Sukurti",
"Change" : "Keisti",
"Delete" : "Ištrinti",
diff --git a/settings/l10n/lv.js b/settings/l10n/lv.js
index 8ced5cc9f376..4bd74d23ec1a 100644
--- a/settings/l10n/lv.js
+++ b/settings/l10n/lv.js
@@ -20,7 +20,6 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Nepieciešams norādīt sava lietotāja e-pasta adresi, lai nosūtīta testa e-pastus.",
"Couldn't change the email address because the user does not exist" : "Neizdevās nomainīt e-pasta adresi, jo lietotājs neeksistē",
"Your %s account was created" : "Konts %s ir izveidots",
- "Invalid mail address" : "Nepareiza e-pasta adrese",
"A user with that name already exists." : "Jau pastāv lietotājs ar šo vārdu.",
"Unable to create user." : "Nevar izveidot lietotāju.",
"Can't send email to the user. Contact your administrator." : "Neizdevās nosūtīt e-pastu lietotājam. Lūdzu, sazinieties ar administratoru.",
@@ -38,6 +37,7 @@ OC.L10N.register(
"Unable to change full name" : "Nav iespējams nomainīt jūsu pilno vārdu",
"%s email address changed successfully" : "%s e-pasta adrese ir veiksmīgi nomainīta",
"Unable to enable/disable user." : "Nevar iespējot/atspējot lietotāju.",
+ "Invalid mail address" : "Nepareiza e-pasta adrese",
"Create" : "Izveidot",
"Change" : "Izmainīt",
"Delete" : "Dzēst",
diff --git a/settings/l10n/lv.json b/settings/l10n/lv.json
index c8cb40930e5b..28664cc6cc3c 100644
--- a/settings/l10n/lv.json
+++ b/settings/l10n/lv.json
@@ -18,7 +18,6 @@
"You need to set your user email before being able to send test emails." : "Nepieciešams norādīt sava lietotāja e-pasta adresi, lai nosūtīta testa e-pastus.",
"Couldn't change the email address because the user does not exist" : "Neizdevās nomainīt e-pasta adresi, jo lietotājs neeksistē",
"Your %s account was created" : "Konts %s ir izveidots",
- "Invalid mail address" : "Nepareiza e-pasta adrese",
"A user with that name already exists." : "Jau pastāv lietotājs ar šo vārdu.",
"Unable to create user." : "Nevar izveidot lietotāju.",
"Can't send email to the user. Contact your administrator." : "Neizdevās nosūtīt e-pastu lietotājam. Lūdzu, sazinieties ar administratoru.",
@@ -36,6 +35,7 @@
"Unable to change full name" : "Nav iespējams nomainīt jūsu pilno vārdu",
"%s email address changed successfully" : "%s e-pasta adrese ir veiksmīgi nomainīta",
"Unable to enable/disable user." : "Nevar iespējot/atspējot lietotāju.",
+ "Invalid mail address" : "Nepareiza e-pasta adrese",
"Create" : "Izveidot",
"Change" : "Izmainīt",
"Delete" : "Dzēst",
diff --git a/settings/l10n/mk.js b/settings/l10n/mk.js
index 2dff8b58a97a..5cefddb59f6a 100644
--- a/settings/l10n/mk.js
+++ b/settings/l10n/mk.js
@@ -24,7 +24,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Неможе да се промени Email адресата бидејќи корисникот не постои",
"Couldn't change the email address because the token is invalid" : "Неможе да се промени Email адресата бидејќи токенот е неважечки",
"Your %s account was created" : "Вашата %s сметка е креирана",
- "Invalid mail address" : "Невалидна Email адреса",
"A user with that name already exists." : "Корисник со ова име веќе постои.",
"Unable to create user." : "Неможе да додадам корисник.",
"The token provided is invalid." : "Токенот е неважечки.",
@@ -49,6 +48,7 @@ OC.L10N.register(
"%s email address changed successfully" : "Email адресата%s е успешно променета",
"Couldn't send email address change notification mail. Please contact your administrator." : "Неможе да се испрати известување за промена на Email адреса. Контактирајте го администраторот.",
"Unable to enable/disable user." : "Не може да се овозможи/оневозможи корисникот.",
+ "Invalid mail address" : "Невалидна Email адреса",
"Owner language" : "Јазикот на сопственикот",
"Create" : "Создај",
"Change" : "Промени",
diff --git a/settings/l10n/mk.json b/settings/l10n/mk.json
index b99ebe0fb61c..25cdf592e669 100644
--- a/settings/l10n/mk.json
+++ b/settings/l10n/mk.json
@@ -22,7 +22,6 @@
"Couldn't change the email address because the user does not exist" : "Неможе да се промени Email адресата бидејќи корисникот не постои",
"Couldn't change the email address because the token is invalid" : "Неможе да се промени Email адресата бидејќи токенот е неважечки",
"Your %s account was created" : "Вашата %s сметка е креирана",
- "Invalid mail address" : "Невалидна Email адреса",
"A user with that name already exists." : "Корисник со ова име веќе постои.",
"Unable to create user." : "Неможе да додадам корисник.",
"The token provided is invalid." : "Токенот е неважечки.",
@@ -47,6 +46,7 @@
"%s email address changed successfully" : "Email адресата%s е успешно променета",
"Couldn't send email address change notification mail. Please contact your administrator." : "Неможе да се испрати известување за промена на Email адреса. Контактирајте го администраторот.",
"Unable to enable/disable user." : "Не може да се овозможи/оневозможи корисникот.",
+ "Invalid mail address" : "Невалидна Email адреса",
"Owner language" : "Јазикот на сопственикот",
"Create" : "Создај",
"Change" : "Промени",
diff --git a/settings/l10n/nb_NO.js b/settings/l10n/nb_NO.js
index 12e329369129..efb77461da92 100644
--- a/settings/l10n/nb_NO.js
+++ b/settings/l10n/nb_NO.js
@@ -26,7 +26,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Kunne ikke endre epost-adressen fordi brukeren ikke finnes",
"Couldn't change the email address because the token is invalid" : "Kunne ikke endre epost-adressen fordi symbolet er ugyldig",
"Your %s account was created" : "%s-kontoen din ble opprettet",
- "Invalid mail address" : "Ugyldig e-postadresse",
"A user with that name already exists." : "Det finnes allerede en bruker med det navnet.",
"Unable to create user." : "Kan ikke opprette bruker.",
"The token provided is invalid." : "Token er ugyldig",
@@ -51,6 +50,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s epost-adresse endret",
"Couldn't send email address change notification mail. Please contact your administrator." : "Klarte ikke å sende varsel-epost om endring av epost-adresse. Kontakt administratoren.",
"Unable to enable/disable user." : "Kan ikke aktivere/deaktivere bruker.",
+ "Invalid mail address" : "Ugyldig e-postadresse",
"Owner language" : "Eierspråk",
"Create" : "Opprett",
"Change" : "Endre",
diff --git a/settings/l10n/nb_NO.json b/settings/l10n/nb_NO.json
index 6f0decf72f51..dcf263e2639a 100644
--- a/settings/l10n/nb_NO.json
+++ b/settings/l10n/nb_NO.json
@@ -24,7 +24,6 @@
"Couldn't change the email address because the user does not exist" : "Kunne ikke endre epost-adressen fordi brukeren ikke finnes",
"Couldn't change the email address because the token is invalid" : "Kunne ikke endre epost-adressen fordi symbolet er ugyldig",
"Your %s account was created" : "%s-kontoen din ble opprettet",
- "Invalid mail address" : "Ugyldig e-postadresse",
"A user with that name already exists." : "Det finnes allerede en bruker med det navnet.",
"Unable to create user." : "Kan ikke opprette bruker.",
"The token provided is invalid." : "Token er ugyldig",
@@ -49,6 +48,7 @@
"%s email address changed successfully" : "%s epost-adresse endret",
"Couldn't send email address change notification mail. Please contact your administrator." : "Klarte ikke å sende varsel-epost om endring av epost-adresse. Kontakt administratoren.",
"Unable to enable/disable user." : "Kan ikke aktivere/deaktivere bruker.",
+ "Invalid mail address" : "Ugyldig e-postadresse",
"Owner language" : "Eierspråk",
"Create" : "Opprett",
"Change" : "Endre",
diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js
index c804df5d8585..9b244d1a09c8 100644
--- a/settings/l10n/nl.js
+++ b/settings/l10n/nl.js
@@ -23,7 +23,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Kon het e-mailadres niet wijzigen omdat de gebruiker niet bestaat",
"Couldn't change the email address because the token is invalid" : "Kon het e-mailadres niet wijzigen omdat het token ongeldig is",
"Your %s account was created" : "Uw %s account is aangemaakt",
- "Invalid mail address" : "Ongeldig e-mailadres",
"A user with that name already exists." : "Er bestaat al een gebruiker met die naam.",
"Unable to create user." : "Kan gebruiker niet aanmaken.",
"The token provided is invalid." : "Het doorgegeven token is ongeldig.",
@@ -48,6 +47,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s e-mailadres succesvol gewijzigd.",
"Couldn't send email address change notification mail. Please contact your administrator." : "Kon meldingssbericht voor wijziging e-mailadres niet versturen. Neem contact op met uw beheerder.",
"Unable to enable/disable user." : "Kan gebruiker niet activeren/deactiveren.",
+ "Invalid mail address" : "Ongeldig e-mailadres",
"Create" : "Aanmaken",
"Change" : "Wijzigen",
"Delete" : "Verwijder",
diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json
index 76202354abbe..c61ec5d62579 100644
--- a/settings/l10n/nl.json
+++ b/settings/l10n/nl.json
@@ -21,7 +21,6 @@
"Couldn't change the email address because the user does not exist" : "Kon het e-mailadres niet wijzigen omdat de gebruiker niet bestaat",
"Couldn't change the email address because the token is invalid" : "Kon het e-mailadres niet wijzigen omdat het token ongeldig is",
"Your %s account was created" : "Uw %s account is aangemaakt",
- "Invalid mail address" : "Ongeldig e-mailadres",
"A user with that name already exists." : "Er bestaat al een gebruiker met die naam.",
"Unable to create user." : "Kan gebruiker niet aanmaken.",
"The token provided is invalid." : "Het doorgegeven token is ongeldig.",
@@ -46,6 +45,7 @@
"%s email address changed successfully" : "%s e-mailadres succesvol gewijzigd.",
"Couldn't send email address change notification mail. Please contact your administrator." : "Kon meldingssbericht voor wijziging e-mailadres niet versturen. Neem contact op met uw beheerder.",
"Unable to enable/disable user." : "Kan gebruiker niet activeren/deactiveren.",
+ "Invalid mail address" : "Ongeldig e-mailadres",
"Create" : "Aanmaken",
"Change" : "Wijzigen",
"Delete" : "Verwijder",
diff --git a/settings/l10n/oc.js b/settings/l10n/oc.js
index 31d306c8c340..406e4e6d6a37 100644
--- a/settings/l10n/oc.js
+++ b/settings/l10n/oc.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"Email sent" : "Email mandat",
"You need to set your user email before being able to send test emails." : "Vos cal especificar vòstra adreça email dins los paramètres personals abans de poder mandar d'emails de tèst.",
"Your %s account was created" : "Vòstre compte %s es estat creat.",
- "Invalid mail address" : "Adreça email invalida",
"A user with that name already exists." : "Un utilizaire amb aqueste nom existís ja.",
"Unable to create user." : "Impossible de crear l'utilizaire.",
"Unable to delete user." : "Impossible de suprimir l'utilizaire.",
@@ -27,6 +26,7 @@ OC.L10N.register(
"Unable to change mail address" : "Impossible de modificar l'adreça de corrièl",
"Your full name has been changed." : "Vòstre nom complet es estat modificat.",
"Unable to change full name" : "Impossible de cambiar lo nom complet",
+ "Invalid mail address" : "Adreça email invalida",
"Create" : "Crear",
"Delete" : "Suprimir",
"Share" : "Partejar",
diff --git a/settings/l10n/oc.json b/settings/l10n/oc.json
index f3427e2e7bc9..ae7252dbe5af 100644
--- a/settings/l10n/oc.json
+++ b/settings/l10n/oc.json
@@ -16,7 +16,6 @@
"Email sent" : "Email mandat",
"You need to set your user email before being able to send test emails." : "Vos cal especificar vòstra adreça email dins los paramètres personals abans de poder mandar d'emails de tèst.",
"Your %s account was created" : "Vòstre compte %s es estat creat.",
- "Invalid mail address" : "Adreça email invalida",
"A user with that name already exists." : "Un utilizaire amb aqueste nom existís ja.",
"Unable to create user." : "Impossible de crear l'utilizaire.",
"Unable to delete user." : "Impossible de suprimir l'utilizaire.",
@@ -25,6 +24,7 @@
"Unable to change mail address" : "Impossible de modificar l'adreça de corrièl",
"Your full name has been changed." : "Vòstre nom complet es estat modificat.",
"Unable to change full name" : "Impossible de cambiar lo nom complet",
+ "Invalid mail address" : "Adreça email invalida",
"Create" : "Crear",
"Delete" : "Suprimir",
"Share" : "Partejar",
diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js
index 7d556cd3b84e..f456d85c6fa7 100644
--- a/settings/l10n/pl.js
+++ b/settings/l10n/pl.js
@@ -26,7 +26,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Nie można zmienić adresu email ponieważ użytkownik nie istnieje.",
"Couldn't change the email address because the token is invalid" : "Nie można zmienić adresu email ponieważ podano nieprawidłowy token.",
"Your %s account was created" : "Utworzono konto %s",
- "Invalid mail address" : "Nieprawidłowy adres email",
"A user with that name already exists." : "Użytkownik z taką nazwą już istnieje.",
"Unable to create user." : "Nie można utworzyć użytkownika.",
"The token provided is invalid." : "Podany token jest nieprawidłowy.",
@@ -51,6 +50,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s adres email zmieniony pomyślnie.",
"Couldn't send email address change notification mail. Please contact your administrator." : "Nie można wysłać wiadomości potwierdzającej zmianę maila. Proszę skontaktować się z administratorem.",
"Unable to enable/disable user." : "Nie można odblokować/zablokować użytkownika.",
+ "Invalid mail address" : "Nieprawidłowy adres email",
"Owner language" : "Język posiadacza",
"Create" : "Utwórz",
"Change" : "Zmień",
diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json
index 468aaa7c327d..908d08b32320 100644
--- a/settings/l10n/pl.json
+++ b/settings/l10n/pl.json
@@ -24,7 +24,6 @@
"Couldn't change the email address because the user does not exist" : "Nie można zmienić adresu email ponieważ użytkownik nie istnieje.",
"Couldn't change the email address because the token is invalid" : "Nie można zmienić adresu email ponieważ podano nieprawidłowy token.",
"Your %s account was created" : "Utworzono konto %s",
- "Invalid mail address" : "Nieprawidłowy adres email",
"A user with that name already exists." : "Użytkownik z taką nazwą już istnieje.",
"Unable to create user." : "Nie można utworzyć użytkownika.",
"The token provided is invalid." : "Podany token jest nieprawidłowy.",
@@ -49,6 +48,7 @@
"%s email address changed successfully" : "%s adres email zmieniony pomyślnie.",
"Couldn't send email address change notification mail. Please contact your administrator." : "Nie można wysłać wiadomości potwierdzającej zmianę maila. Proszę skontaktować się z administratorem.",
"Unable to enable/disable user." : "Nie można odblokować/zablokować użytkownika.",
+ "Invalid mail address" : "Nieprawidłowy adres email",
"Owner language" : "Język posiadacza",
"Create" : "Utwórz",
"Change" : "Zmień",
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index 7d215f39d934..48997ec7db60 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Não foi possível alterar o endereço de e-mail porque o usuário não existe",
"Couldn't change the email address because the token is invalid" : "Não foi possível alterar o endereço de e-mail porque o token é inválido",
"Your %s account was created" : "Sua conta %s foi criada",
- "Invalid mail address" : "Endereço de e-mail inválido",
"A user with that name already exists." : "Um usuário com esse nome já existe.",
"Unable to create user." : "Não é possível criar usuário.",
"The token provided is invalid." : "O token fornecido é inválido.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "O endereço de e-mail %s foi alterado com êxito",
"Couldn't send email address change notification mail. Please contact your administrator." : "Não foi possível enviar email de notificação de alteração de endereço. Entre em contato com o administrador.",
"Unable to enable/disable user." : "Não foi possível habilitar/desabilitar usuário",
+ "Invalid mail address" : "Endereço de e-mail inválido",
"Owner language" : "Idioma do proprietário",
"Create" : "Criar",
"Change" : "Substituir ",
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index 3f0251edd3dc..1672b4a096de 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "Não foi possível alterar o endereço de e-mail porque o usuário não existe",
"Couldn't change the email address because the token is invalid" : "Não foi possível alterar o endereço de e-mail porque o token é inválido",
"Your %s account was created" : "Sua conta %s foi criada",
- "Invalid mail address" : "Endereço de e-mail inválido",
"A user with that name already exists." : "Um usuário com esse nome já existe.",
"Unable to create user." : "Não é possível criar usuário.",
"The token provided is invalid." : "O token fornecido é inválido.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "O endereço de e-mail %s foi alterado com êxito",
"Couldn't send email address change notification mail. Please contact your administrator." : "Não foi possível enviar email de notificação de alteração de endereço. Entre em contato com o administrador.",
"Unable to enable/disable user." : "Não foi possível habilitar/desabilitar usuário",
+ "Invalid mail address" : "Endereço de e-mail inválido",
"Owner language" : "Idioma do proprietário",
"Create" : "Criar",
"Change" : "Substituir ",
diff --git a/settings/l10n/pt_PT.js b/settings/l10n/pt_PT.js
index 8c454ee4f37c..f3a67b6f7cf4 100644
--- a/settings/l10n/pt_PT.js
+++ b/settings/l10n/pt_PT.js
@@ -23,7 +23,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Não foi possível alterar o endereço de correio eletrónico porque o utilizador não existe",
"Couldn't change the email address because the token is invalid" : "Não foi possível alterar o endereço de correio eletrónico porque a senha é inválida",
"Your %s account was created" : "A sua conta %s foi criada",
- "Invalid mail address" : "Endereço de e-mail inválido",
"A user with that name already exists." : "Já existe um utilizador com esse nome.",
"Unable to create user." : "Não é possível criar o utilizador.",
"Unable to delete user." : "Não é possível eliminar o utilizador.",
@@ -41,6 +40,7 @@ OC.L10N.register(
"%s email address changed successfully" : "O endereço de e-mail de %s foi alterado com sucesso",
"Couldn't send email address change notification mail. Please contact your administrator." : "Não foi possível enviar a mensagem de notificação da alteração do endereço de e-mail. Por favor, contacte o seu administrador.",
"Unable to enable/disable user." : "Não é possível ativar/desativar o utilizador.",
+ "Invalid mail address" : "Endereço de e-mail inválido",
"Create" : "Criar",
"Change" : "Alterar",
"Delete" : "Eliminar",
diff --git a/settings/l10n/pt_PT.json b/settings/l10n/pt_PT.json
index fbd7998b6646..ab3988eee5d9 100644
--- a/settings/l10n/pt_PT.json
+++ b/settings/l10n/pt_PT.json
@@ -21,7 +21,6 @@
"Couldn't change the email address because the user does not exist" : "Não foi possível alterar o endereço de correio eletrónico porque o utilizador não existe",
"Couldn't change the email address because the token is invalid" : "Não foi possível alterar o endereço de correio eletrónico porque a senha é inválida",
"Your %s account was created" : "A sua conta %s foi criada",
- "Invalid mail address" : "Endereço de e-mail inválido",
"A user with that name already exists." : "Já existe um utilizador com esse nome.",
"Unable to create user." : "Não é possível criar o utilizador.",
"Unable to delete user." : "Não é possível eliminar o utilizador.",
@@ -39,6 +38,7 @@
"%s email address changed successfully" : "O endereço de e-mail de %s foi alterado com sucesso",
"Couldn't send email address change notification mail. Please contact your administrator." : "Não foi possível enviar a mensagem de notificação da alteração do endereço de e-mail. Por favor, contacte o seu administrador.",
"Unable to enable/disable user." : "Não é possível ativar/desativar o utilizador.",
+ "Invalid mail address" : "Endereço de e-mail inválido",
"Create" : "Criar",
"Change" : "Alterar",
"Delete" : "Eliminar",
diff --git a/settings/l10n/ro.js b/settings/l10n/ro.js
index ace146483f4d..0c17b01e640b 100644
--- a/settings/l10n/ro.js
+++ b/settings/l10n/ro.js
@@ -20,7 +20,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Nu am putut modifica adresa de e-mail deoarece utilizatorul nu există",
"Couldn't change the email address because the token is invalid" : "Nu am putut modifica adresa de e-mail, deoarece tokenul nu este valid",
"Your %s account was created" : "Contul tău %s a fost creat",
- "Invalid mail address" : "Adresa mail invalidă",
"A user with that name already exists." : "Există deja un utilizator cu acest nume.",
"Unable to create user." : "Imposibil de creat utilizatorul.",
"Unable to delete user." : "Imposibil de șters utilizatorul.",
@@ -37,6 +36,7 @@ OC.L10N.register(
"%s email address changed successfully" : "adresa e-mail %s a fost schimbată cu succes",
"Couldn't send email address change notification mail. Please contact your administrator." : "Nu am putut trimite e-mail de notificare a schimbării adresei de e-mail. Contactează administratorul tău.",
"Unable to enable/disable user." : "Imposibil de activat/dezactivat utilizator.",
+ "Invalid mail address" : "Adresa mail invalidă",
"Create" : "Crează",
"Delete" : "Șterge",
"Share" : "Partajează",
diff --git a/settings/l10n/ro.json b/settings/l10n/ro.json
index d9220d081392..af4b177cf976 100644
--- a/settings/l10n/ro.json
+++ b/settings/l10n/ro.json
@@ -18,7 +18,6 @@
"Couldn't change the email address because the user does not exist" : "Nu am putut modifica adresa de e-mail deoarece utilizatorul nu există",
"Couldn't change the email address because the token is invalid" : "Nu am putut modifica adresa de e-mail, deoarece tokenul nu este valid",
"Your %s account was created" : "Contul tău %s a fost creat",
- "Invalid mail address" : "Adresa mail invalidă",
"A user with that name already exists." : "Există deja un utilizator cu acest nume.",
"Unable to create user." : "Imposibil de creat utilizatorul.",
"Unable to delete user." : "Imposibil de șters utilizatorul.",
@@ -35,6 +34,7 @@
"%s email address changed successfully" : "adresa e-mail %s a fost schimbată cu succes",
"Couldn't send email address change notification mail. Please contact your administrator." : "Nu am putut trimite e-mail de notificare a schimbării adresei de e-mail. Contactează administratorul tău.",
"Unable to enable/disable user." : "Imposibil de activat/dezactivat utilizator.",
+ "Invalid mail address" : "Adresa mail invalidă",
"Create" : "Crează",
"Delete" : "Șterge",
"Share" : "Partajează",
diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js
index ff4005540941..4e70f6b75c6e 100644
--- a/settings/l10n/ru.js
+++ b/settings/l10n/ru.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Не удалось изменить адрес почты, так как пользователь не существует",
"Couldn't change the email address because the token is invalid" : "Не удалось изменить адрес почты, так как токен неправильный",
"Your %s account was created" : "Учетная запись %s создана",
- "Invalid mail address" : "Некорректный адрес электронной почты",
"A user with that name already exists." : "Пользователь с таким именем уже существует.",
"Unable to create user." : "Невозможно создать пользователя.",
"The token provided is invalid." : "Предоставленный токен неверен.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "Адрес почты для %s изменён успешно",
"Couldn't send email address change notification mail. Please contact your administrator." : "Не удалось отправить сообщение с уведомлением об изменении адреса почты. Пожалуйста, свяжитесь со своим администратором.",
"Unable to enable/disable user." : "Невозможно включить/выключить пользователя.",
+ "Invalid mail address" : "Некорректный адрес электронной почты",
"Owner language" : "Язык владельца",
"Create" : "Создать",
"Change" : "Изменения",
diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json
index 6cd3e7b09e72..5656361d73dd 100644
--- a/settings/l10n/ru.json
+++ b/settings/l10n/ru.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "Не удалось изменить адрес почты, так как пользователь не существует",
"Couldn't change the email address because the token is invalid" : "Не удалось изменить адрес почты, так как токен неправильный",
"Your %s account was created" : "Учетная запись %s создана",
- "Invalid mail address" : "Некорректный адрес электронной почты",
"A user with that name already exists." : "Пользователь с таким именем уже существует.",
"Unable to create user." : "Невозможно создать пользователя.",
"The token provided is invalid." : "Предоставленный токен неверен.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "Адрес почты для %s изменён успешно",
"Couldn't send email address change notification mail. Please contact your administrator." : "Не удалось отправить сообщение с уведомлением об изменении адреса почты. Пожалуйста, свяжитесь со своим администратором.",
"Unable to enable/disable user." : "Невозможно включить/выключить пользователя.",
+ "Invalid mail address" : "Некорректный адрес электронной почты",
"Owner language" : "Язык владельца",
"Create" : "Создать",
"Change" : "Изменения",
diff --git a/settings/l10n/sk_SK.js b/settings/l10n/sk_SK.js
index 229a5abc0af2..518976cf27ea 100644
--- a/settings/l10n/sk_SK.js
+++ b/settings/l10n/sk_SK.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"Email sent" : "Email odoslaný",
"You need to set your user email before being able to send test emails." : "Musíte nastaviť svoj používateľský email, než budete môcť odoslať testovací email.",
"Your %s account was created" : "Váš účet %s bol vytvorený",
- "Invalid mail address" : "Neplatná emailová adresa",
"A user with that name already exists." : "Používateľ s týmto menom už existuje.",
"Unable to create user." : "Nie je možné vytvoriť používateľa.",
"Unable to delete user." : "Nie je možné zmazať používateľa.",
@@ -27,6 +26,7 @@ OC.L10N.register(
"Unable to change display name" : "Nemožno zmeniť zobrazované meno",
"Your full name has been changed." : "Vaše meno a priezvisko bolo zmenené.",
"Unable to change full name" : "Nemožno zmeniť meno a priezvisko",
+ "Invalid mail address" : "Neplatná emailová adresa",
"Create" : "Vytvoriť",
"Delete" : "Zmazať",
"Share" : "Zdieľať",
diff --git a/settings/l10n/sk_SK.json b/settings/l10n/sk_SK.json
index bd4085ee1874..af134e45669d 100644
--- a/settings/l10n/sk_SK.json
+++ b/settings/l10n/sk_SK.json
@@ -15,7 +15,6 @@
"Email sent" : "Email odoslaný",
"You need to set your user email before being able to send test emails." : "Musíte nastaviť svoj používateľský email, než budete môcť odoslať testovací email.",
"Your %s account was created" : "Váš účet %s bol vytvorený",
- "Invalid mail address" : "Neplatná emailová adresa",
"A user with that name already exists." : "Používateľ s týmto menom už existuje.",
"Unable to create user." : "Nie je možné vytvoriť používateľa.",
"Unable to delete user." : "Nie je možné zmazať používateľa.",
@@ -25,6 +24,7 @@
"Unable to change display name" : "Nemožno zmeniť zobrazované meno",
"Your full name has been changed." : "Vaše meno a priezvisko bolo zmenené.",
"Unable to change full name" : "Nemožno zmeniť meno a priezvisko",
+ "Invalid mail address" : "Neplatná emailová adresa",
"Create" : "Vytvoriť",
"Delete" : "Zmazať",
"Share" : "Zdieľať",
diff --git a/settings/l10n/sl.js b/settings/l10n/sl.js
index c90723954203..e9ce61544593 100644
--- a/settings/l10n/sl.js
+++ b/settings/l10n/sl.js
@@ -22,7 +22,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Elektronskega naslova ni mogoče spremeniti, ker uporabnik s tem naslovom ne obstaja",
"Couldn't change the email address because the token is invalid" : "Ni mogoče spremeniti naslova elektronske pošte, ker je žeton neveljaven.",
"Your %s account was created" : "Račun %s je uspešno ustvarjen.",
- "Invalid mail address" : "Neveljaven elektronski naslov",
"A user with that name already exists." : "Uporabnik s tem imenom že obstaja.",
"Unable to create user." : "Ni mogoče ustvariti uporabnika.",
"Unable to delete user." : "Ni mogoče izbrisati uporabnika",
@@ -34,6 +33,7 @@ OC.L10N.register(
"Your full name has been changed." : "Vaše polno ime je spremenjeno.",
"Unable to change full name" : "Ni mogoče spremeniti polnega imena",
"Unable to enable/disable user." : "Ni mogoče omogočiti/onemogočiti dostopa uporabnika.",
+ "Invalid mail address" : "Neveljaven elektronski naslov",
"Create" : "Ustvari",
"Delete" : "Izbriši",
"Share" : "Souporaba",
diff --git a/settings/l10n/sl.json b/settings/l10n/sl.json
index c5e03ce6c19c..08cfd2c011a9 100644
--- a/settings/l10n/sl.json
+++ b/settings/l10n/sl.json
@@ -20,7 +20,6 @@
"Couldn't change the email address because the user does not exist" : "Elektronskega naslova ni mogoče spremeniti, ker uporabnik s tem naslovom ne obstaja",
"Couldn't change the email address because the token is invalid" : "Ni mogoče spremeniti naslova elektronske pošte, ker je žeton neveljaven.",
"Your %s account was created" : "Račun %s je uspešno ustvarjen.",
- "Invalid mail address" : "Neveljaven elektronski naslov",
"A user with that name already exists." : "Uporabnik s tem imenom že obstaja.",
"Unable to create user." : "Ni mogoče ustvariti uporabnika.",
"Unable to delete user." : "Ni mogoče izbrisati uporabnika",
@@ -32,6 +31,7 @@
"Your full name has been changed." : "Vaše polno ime je spremenjeno.",
"Unable to change full name" : "Ni mogoče spremeniti polnega imena",
"Unable to enable/disable user." : "Ni mogoče omogočiti/onemogočiti dostopa uporabnika.",
+ "Invalid mail address" : "Neveljaven elektronski naslov",
"Create" : "Ustvari",
"Delete" : "Izbriši",
"Share" : "Souporaba",
diff --git a/settings/l10n/sq.js b/settings/l10n/sq.js
index 6f4c8bc1f953..7408d1714914 100644
--- a/settings/l10n/sq.js
+++ b/settings/l10n/sq.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "S’u ndryshua dot adresa email, ngaqë përdoruesi s’ekziston",
"Couldn't change the email address because the token is invalid" : "S’u ndryshua dot adresa email, ngaqë token-i është i pavlefshëm",
"Your %s account was created" : "Llogaria juaj %s u krijua",
- "Invalid mail address" : "Adresë email e pavlefshme",
"A user with that name already exists." : "Ka tashmë një përdorues me këtë emër.",
"Unable to create user." : "S’arrihet të krijohet përdoruesi.",
"The token provided is invalid." : "Token-i i dhënë është i pavlefshëm.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "Adresa email %s u ndryshua me sukses",
"Couldn't send email address change notification mail. Please contact your administrator." : "S’u dërgua dot email njoftimi ndryshimi adrese email. Ju lutemi, lidhuni me përgjegjësin tuaj.",
"Unable to enable/disable user." : "S’arrihet të aktivizohet/çaktivizohet përdoruesi.",
+ "Invalid mail address" : "Adresë email e pavlefshme",
"Owner language" : "Gjuha e të zotit",
"Create" : "Krijoje",
"Change" : "Ndryshoje",
diff --git a/settings/l10n/sq.json b/settings/l10n/sq.json
index e1d9f06b21d2..3c34113cbe5c 100644
--- a/settings/l10n/sq.json
+++ b/settings/l10n/sq.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "S’u ndryshua dot adresa email, ngaqë përdoruesi s’ekziston",
"Couldn't change the email address because the token is invalid" : "S’u ndryshua dot adresa email, ngaqë token-i është i pavlefshëm",
"Your %s account was created" : "Llogaria juaj %s u krijua",
- "Invalid mail address" : "Adresë email e pavlefshme",
"A user with that name already exists." : "Ka tashmë një përdorues me këtë emër.",
"Unable to create user." : "S’arrihet të krijohet përdoruesi.",
"The token provided is invalid." : "Token-i i dhënë është i pavlefshëm.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "Adresa email %s u ndryshua me sukses",
"Couldn't send email address change notification mail. Please contact your administrator." : "S’u dërgua dot email njoftimi ndryshimi adrese email. Ju lutemi, lidhuni me përgjegjësin tuaj.",
"Unable to enable/disable user." : "S’arrihet të aktivizohet/çaktivizohet përdoruesi.",
+ "Invalid mail address" : "Adresë email e pavlefshme",
"Owner language" : "Gjuha e të zotit",
"Create" : "Krijoje",
"Change" : "Ndryshoje",
diff --git a/settings/l10n/sr.js b/settings/l10n/sr.js
index cccbe91d456f..bb63ac17d072 100644
--- a/settings/l10n/sr.js
+++ b/settings/l10n/sr.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"Email sent" : "Порука је послата",
"You need to set your user email before being able to send test emails." : "Морате поставити адресу е-поште пре слања тестне поруке.",
"Your %s account was created" : "Ваш %s налог је направљен",
- "Invalid mail address" : "Неисправна е-адреса",
"A user with that name already exists." : "Корисник са тим именом већ постоји.",
"Unable to create user." : "Не могу да направим корисника.",
"Unable to delete user." : "Не могу да обришем корисника.",
@@ -27,6 +26,7 @@ OC.L10N.register(
"Unable to change display name" : "Не могу да променим име за приказ",
"Your full name has been changed." : "Ваше пуно име је промењено.",
"Unable to change full name" : "Не могу да променим пуно име",
+ "Invalid mail address" : "Неисправна е-адреса",
"Create" : "Направи",
"Delete" : "Обриши",
"Share" : "Дељење",
diff --git a/settings/l10n/sr.json b/settings/l10n/sr.json
index dad27e14cb57..19be4a4fcc96 100644
--- a/settings/l10n/sr.json
+++ b/settings/l10n/sr.json
@@ -15,7 +15,6 @@
"Email sent" : "Порука је послата",
"You need to set your user email before being able to send test emails." : "Морате поставити адресу е-поште пре слања тестне поруке.",
"Your %s account was created" : "Ваш %s налог је направљен",
- "Invalid mail address" : "Неисправна е-адреса",
"A user with that name already exists." : "Корисник са тим именом већ постоји.",
"Unable to create user." : "Не могу да направим корисника.",
"Unable to delete user." : "Не могу да обришем корисника.",
@@ -25,6 +24,7 @@
"Unable to change display name" : "Не могу да променим име за приказ",
"Your full name has been changed." : "Ваше пуно име је промењено.",
"Unable to change full name" : "Не могу да променим пуно име",
+ "Invalid mail address" : "Неисправна е-адреса",
"Create" : "Направи",
"Delete" : "Обриши",
"Share" : "Дељење",
diff --git a/settings/l10n/sv.js b/settings/l10n/sv.js
index c19ae4b5ec09..9adca8921917 100644
--- a/settings/l10n/sv.js
+++ b/settings/l10n/sv.js
@@ -19,7 +19,6 @@ OC.L10N.register(
"Email sent" : "E-post skickad",
"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.",
"Your %s account was created" : "Ditt %s konto skapades",
- "Invalid mail address" : "Ogiltig e-postadress",
"A user with that name already exists." : "En användare med det namnet existerar redan.",
"Unable to create user." : "Kan inte skapa användare.",
"Unable to delete user." : "Kan inte radera användare.",
@@ -32,6 +31,7 @@ OC.L10N.register(
"%s email address confirm" : "%s e-postadress att bekräfta",
"%s email address changed successfully" : "%s e-postadress ändrades",
"Unable to enable/disable user." : "Kunde inte aktivera/avaktivera användaren.",
+ "Invalid mail address" : "Ogiltig e-postadress",
"Create" : "Skapa",
"Delete" : "Radera",
"Share" : "Dela",
diff --git a/settings/l10n/sv.json b/settings/l10n/sv.json
index 0edf1a9eac76..ebfa7d9f3b99 100644
--- a/settings/l10n/sv.json
+++ b/settings/l10n/sv.json
@@ -17,7 +17,6 @@
"Email sent" : "E-post skickad",
"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.",
"Your %s account was created" : "Ditt %s konto skapades",
- "Invalid mail address" : "Ogiltig e-postadress",
"A user with that name already exists." : "En användare med det namnet existerar redan.",
"Unable to create user." : "Kan inte skapa användare.",
"Unable to delete user." : "Kan inte radera användare.",
@@ -30,6 +29,7 @@
"%s email address confirm" : "%s e-postadress att bekräfta",
"%s email address changed successfully" : "%s e-postadress ändrades",
"Unable to enable/disable user." : "Kunde inte aktivera/avaktivera användaren.",
+ "Invalid mail address" : "Ogiltig e-postadress",
"Create" : "Skapa",
"Delete" : "Radera",
"Share" : "Dela",
diff --git a/settings/l10n/th_TH.js b/settings/l10n/th_TH.js
index db6e19d88225..e7648bbceae5 100644
--- a/settings/l10n/th_TH.js
+++ b/settings/l10n/th_TH.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "ไม่สามารถเปลี่ยนที่อยู่อีเมลได้เนื่องจากไม่มีผู้ใช้นี้อยู่",
"Couldn't change the email address because the token is invalid" : "ไม่สามารถเปลี่ยนที่อยู่อีเมลเนื่องจากโทเค็นไม่ถูกต้อง",
"Your %s account was created" : "บัญชี %s ของคุณถูกสร้างขึ้น",
- "Invalid mail address" : "ที่อยู่อีเมลไม่ถูกต้อง",
"A user with that name already exists." : "มีชื้อผู้ใช้นี้อยู่แล้ว",
"Unable to create user." : "ไม่สามารถสร้างผู้ใช้",
"The token provided is invalid." : "ระบุโทเค็นไม่ถูกต้อง",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "เปลี่ยนที่อยู่อีเมล %s เรียบร้อยแล้ว",
"Couldn't send email address change notification mail. Please contact your administrator." : "ไม่สามารถส่งอีเมลแจ้งเตือนการเปลี่ยนแปลงที่อยู่อีเมล โปรดติดต่อผู้ดูแลระบบของคุณ",
"Unable to enable/disable user." : "ไม่สามารถ เปิด/ปิด การใช้งานผู้ใช้",
+ "Invalid mail address" : "ที่อยู่อีเมลไม่ถูกต้อง",
"Owner language" : "เจ้าของภาษา",
"Create" : "สร้าง",
"Change" : "เปลี่ยนแปลง",
diff --git a/settings/l10n/th_TH.json b/settings/l10n/th_TH.json
index 9c070bf7de62..83059d5f2551 100644
--- a/settings/l10n/th_TH.json
+++ b/settings/l10n/th_TH.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "ไม่สามารถเปลี่ยนที่อยู่อีเมลได้เนื่องจากไม่มีผู้ใช้นี้อยู่",
"Couldn't change the email address because the token is invalid" : "ไม่สามารถเปลี่ยนที่อยู่อีเมลเนื่องจากโทเค็นไม่ถูกต้อง",
"Your %s account was created" : "บัญชี %s ของคุณถูกสร้างขึ้น",
- "Invalid mail address" : "ที่อยู่อีเมลไม่ถูกต้อง",
"A user with that name already exists." : "มีชื้อผู้ใช้นี้อยู่แล้ว",
"Unable to create user." : "ไม่สามารถสร้างผู้ใช้",
"The token provided is invalid." : "ระบุโทเค็นไม่ถูกต้อง",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "เปลี่ยนที่อยู่อีเมล %s เรียบร้อยแล้ว",
"Couldn't send email address change notification mail. Please contact your administrator." : "ไม่สามารถส่งอีเมลแจ้งเตือนการเปลี่ยนแปลงที่อยู่อีเมล โปรดติดต่อผู้ดูแลระบบของคุณ",
"Unable to enable/disable user." : "ไม่สามารถ เปิด/ปิด การใช้งานผู้ใช้",
+ "Invalid mail address" : "ที่อยู่อีเมลไม่ถูกต้อง",
"Owner language" : "เจ้าของภาษา",
"Create" : "สร้าง",
"Change" : "เปลี่ยนแปลง",
diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js
index e2ea3704e50a..07816888dcfe 100644
--- a/settings/l10n/tr.js
+++ b/settings/l10n/tr.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "Kullanıcı olmadığı için e-posta adresi değiştirilemedi",
"Couldn't change the email address because the token is invalid" : "Belirteç geçersiz olduğundan e-posta adresi değiştirilemedi",
"Your %s account was created" : "%s hesabınız oluşturuldu",
- "Invalid mail address" : "Geçersiz posta adresi",
"A user with that name already exists." : "Bu isimde bir kullanıcı adı zaten mevcut.",
"Unable to create user." : "Kullanıcı oluşturma başarısız.",
"The token provided is invalid." : "Sağlanan belirteç geçersiz.",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s e-posta adresi başarıyla değiştirildi",
"Couldn't send email address change notification mail. Please contact your administrator." : "E-posta adresi değişikliği bildirim e-postası gönderilemedi. Lütfen yöneticinize başvurun.",
"Unable to enable/disable user." : "Kullanıcıyı etkinleştirme/devre dışı bırakma başarısız.",
+ "Invalid mail address" : "Geçersiz posta adresi",
"Owner language" : "Sahip dili",
"Create" : "Oluştur",
"Change" : "Değiştir",
diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json
index d41201dab5ed..bf4cf0438b36 100644
--- a/settings/l10n/tr.json
+++ b/settings/l10n/tr.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "Kullanıcı olmadığı için e-posta adresi değiştirilemedi",
"Couldn't change the email address because the token is invalid" : "Belirteç geçersiz olduğundan e-posta adresi değiştirilemedi",
"Your %s account was created" : "%s hesabınız oluşturuldu",
- "Invalid mail address" : "Geçersiz posta adresi",
"A user with that name already exists." : "Bu isimde bir kullanıcı adı zaten mevcut.",
"Unable to create user." : "Kullanıcı oluşturma başarısız.",
"The token provided is invalid." : "Sağlanan belirteç geçersiz.",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "%s e-posta adresi başarıyla değiştirildi",
"Couldn't send email address change notification mail. Please contact your administrator." : "E-posta adresi değişikliği bildirim e-postası gönderilemedi. Lütfen yöneticinize başvurun.",
"Unable to enable/disable user." : "Kullanıcıyı etkinleştirme/devre dışı bırakma başarısız.",
+ "Invalid mail address" : "Geçersiz posta adresi",
"Owner language" : "Sahip dili",
"Create" : "Oluştur",
"Change" : "Değiştir",
diff --git a/settings/l10n/uk.js b/settings/l10n/uk.js
index bdb355152547..d3dadd470646 100644
--- a/settings/l10n/uk.js
+++ b/settings/l10n/uk.js
@@ -22,7 +22,6 @@ OC.L10N.register(
"Email sent" : "Лист надіслано",
"You need to set your user email before being able to send test emails." : "Перед надсиланням тестових листів ви повинні вказати свою email адресу.",
"Your %s account was created" : "Ваш %s аккаунт створений",
- "Invalid mail address" : "Неправильна email адреса",
"A user with that name already exists." : "Користувач з таким іменем вже існує.",
"Unable to create user." : "Неможливо створити користувача.",
"Unable to delete user." : "Неможливо видалити користувача.",
@@ -32,6 +31,7 @@ OC.L10N.register(
"Unable to change display name" : "Не вдалося змінити ім'я",
"Your full name has been changed." : "Ваше повне ім'я було змінено",
"Unable to change full name" : "Неможливо змінити повне ім'я",
+ "Invalid mail address" : "Неправильна email адреса",
"Owner language" : "Мова власника",
"Create" : "Створити",
"Change" : "Змінити",
diff --git a/settings/l10n/uk.json b/settings/l10n/uk.json
index eaad63ae4483..aec0955e3080 100644
--- a/settings/l10n/uk.json
+++ b/settings/l10n/uk.json
@@ -20,7 +20,6 @@
"Email sent" : "Лист надіслано",
"You need to set your user email before being able to send test emails." : "Перед надсиланням тестових листів ви повинні вказати свою email адресу.",
"Your %s account was created" : "Ваш %s аккаунт створений",
- "Invalid mail address" : "Неправильна email адреса",
"A user with that name already exists." : "Користувач з таким іменем вже існує.",
"Unable to create user." : "Неможливо створити користувача.",
"Unable to delete user." : "Неможливо видалити користувача.",
@@ -30,6 +29,7 @@
"Unable to change display name" : "Не вдалося змінити ім'я",
"Your full name has been changed." : "Ваше повне ім'я було змінено",
"Unable to change full name" : "Неможливо змінити повне ім'я",
+ "Invalid mail address" : "Неправильна email адреса",
"Owner language" : "Мова власника",
"Create" : "Створити",
"Change" : "Змінити",
diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js
index 8f78d62a968f..438f676c8fc4 100644
--- a/settings/l10n/zh_CN.js
+++ b/settings/l10n/zh_CN.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "由于用户不存在,无法更改电子邮件地址",
"Couldn't change the email address because the token is invalid" : "无法更改电子邮件地址,因为该令牌无效",
"Your %s account was created" : "你的帐户 %s 已创建",
- "Invalid mail address" : "无效的电子邮件地址",
"A user with that name already exists." : "使用该名称的用户已存在。",
"Unable to create user." : "无法创建用户。",
"The token provided is invalid." : "无效的令牌",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s 电子邮件地址更改成功。",
"Couldn't send email address change notification mail. Please contact your administrator." : "无法发送电子邮件地址更改通知邮件。请与管理员联系。",
"Unable to enable/disable user." : "无法启用/禁用用户。",
+ "Invalid mail address" : "无效的电子邮件地址",
"Owner language" : "拥有者语言",
"Create" : "创建",
"Change" : "更改",
diff --git a/settings/l10n/zh_CN.json b/settings/l10n/zh_CN.json
index 274a3715d59b..f0c5501d4b2b 100644
--- a/settings/l10n/zh_CN.json
+++ b/settings/l10n/zh_CN.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "由于用户不存在,无法更改电子邮件地址",
"Couldn't change the email address because the token is invalid" : "无法更改电子邮件地址,因为该令牌无效",
"Your %s account was created" : "你的帐户 %s 已创建",
- "Invalid mail address" : "无效的电子邮件地址",
"A user with that name already exists." : "使用该名称的用户已存在。",
"Unable to create user." : "无法创建用户。",
"The token provided is invalid." : "无效的令牌",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "%s 电子邮件地址更改成功。",
"Couldn't send email address change notification mail. Please contact your administrator." : "无法发送电子邮件地址更改通知邮件。请与管理员联系。",
"Unable to enable/disable user." : "无法启用/禁用用户。",
+ "Invalid mail address" : "无效的电子邮件地址",
"Owner language" : "拥有者语言",
"Create" : "创建",
"Change" : "更改",
diff --git a/settings/l10n/zh_TW.js b/settings/l10n/zh_TW.js
index f3dabc75debb..90743d34042f 100644
--- a/settings/l10n/zh_TW.js
+++ b/settings/l10n/zh_TW.js
@@ -28,7 +28,6 @@ OC.L10N.register(
"Couldn't change the email address because the user does not exist" : "無法變更電子郵件位址因為使用者不存在",
"Couldn't change the email address because the token is invalid" : "無法變更電子郵件位址因為認證標記失效",
"Your %s account was created" : "您的 %s 帳號已經建立",
- "Invalid mail address" : "無效的 email 地址",
"A user with that name already exists." : "同名的使用者已經存在",
"Unable to create user." : "無法建立使用者",
"The token provided is invalid." : "提供的令牌無效的。",
@@ -53,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s電子郵件位址已經被成功變更",
"Couldn't send email address change notification mail. Please contact your administrator." : "無法發送電子電子郵件位址更改通知郵件。 請與您的管理員聯繫。",
"Unable to enable/disable user." : "無法啟用/停用使用者。",
+ "Invalid mail address" : "無效的 email 地址",
"Owner language" : "所有者語言",
"Create" : "建立",
"Change" : "更改",
diff --git a/settings/l10n/zh_TW.json b/settings/l10n/zh_TW.json
index db960c18e255..e3f79c356a0a 100644
--- a/settings/l10n/zh_TW.json
+++ b/settings/l10n/zh_TW.json
@@ -26,7 +26,6 @@
"Couldn't change the email address because the user does not exist" : "無法變更電子郵件位址因為使用者不存在",
"Couldn't change the email address because the token is invalid" : "無法變更電子郵件位址因為認證標記失效",
"Your %s account was created" : "您的 %s 帳號已經建立",
- "Invalid mail address" : "無效的 email 地址",
"A user with that name already exists." : "同名的使用者已經存在",
"Unable to create user." : "無法建立使用者",
"The token provided is invalid." : "提供的令牌無效的。",
@@ -51,6 +50,7 @@
"%s email address changed successfully" : "%s電子郵件位址已經被成功變更",
"Couldn't send email address change notification mail. Please contact your administrator." : "無法發送電子電子郵件位址更改通知郵件。 請與您的管理員聯繫。",
"Unable to enable/disable user." : "無法啟用/停用使用者。",
+ "Invalid mail address" : "無效的 email 地址",
"Owner language" : "所有者語言",
"Create" : "建立",
"Change" : "更改",
diff --git a/tests/data/apptheme/apps/files/l10n/he.js b/tests/data/apptheme/apps/files/l10n/he.js
index 280daad483ac..d67f5270639d 100644
--- a/tests/data/apptheme/apps/files/l10n/he.js
+++ b/tests/data/apptheme/apps/files/l10n/he.js
@@ -124,10 +124,12 @@ OC.L10N.register(
"You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
"%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
"You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
+ "%2$s moved %3$s to %1$s" : "%3$s הועבר אל %1$s על ידי %2$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
"You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
+ "%2$s moved this file to %1$s" : "הקובץ הזה הועבר אל %1$s על ידי %2$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
diff --git a/tests/data/apptheme/apps/files/l10n/he.json b/tests/data/apptheme/apps/files/l10n/he.json
index f6517720c353..8c8d331e7135 100644
--- a/tests/data/apptheme/apps/files/l10n/he.json
+++ b/tests/data/apptheme/apps/files/l10n/he.json
@@ -122,10 +122,12 @@
"You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
"%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
"You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
+ "%2$s moved %3$s to %1$s" : "%3$s הועבר אל %1$s על ידי %2$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
"You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
+ "%2$s moved this file to %1$s" : "הקובץ הזה הועבר אל %1$s על ידי %2$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
diff --git a/tests/data/themes/abc/apps/files/l10n/he.js b/tests/data/themes/abc/apps/files/l10n/he.js
index 280daad483ac..d67f5270639d 100644
--- a/tests/data/themes/abc/apps/files/l10n/he.js
+++ b/tests/data/themes/abc/apps/files/l10n/he.js
@@ -124,10 +124,12 @@ OC.L10N.register(
"You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
"%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
"You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
+ "%2$s moved %3$s to %1$s" : "%3$s הועבר אל %1$s על ידי %2$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
"You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
+ "%2$s moved this file to %1$s" : "הקובץ הזה הועבר אל %1$s על ידי %2$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
diff --git a/tests/data/themes/abc/apps/files/l10n/he.json b/tests/data/themes/abc/apps/files/l10n/he.json
index f6517720c353..8c8d331e7135 100644
--- a/tests/data/themes/abc/apps/files/l10n/he.json
+++ b/tests/data/themes/abc/apps/files/l10n/he.json
@@ -122,10 +122,12 @@
"You renamed %2$s to %1$s" : "שיניתם את השם %2$s לשם %1$s",
"%2$s renamed %3$s to %1$s" : "השם של %3$s השתנה לשם %1$s על ידי %2$s",
"You moved %2$s to %1$s" : "העברת את %2$s אל %1$s",
+ "%2$s moved %3$s to %1$s" : "%3$s הועבר אל %1$s על ידי %2$s",
"Changed by %2$s" : "שונו על ידי %2$s",
"Deleted by %2$s" : "נמחקו על ידי %2$s",
"Restored by %2$s" : "שוחזרו על ידי %2$s",
"You moved this file to %1$s" : "העברת את הקובץ הזה אל %1$s",
+ "%2$s moved this file to %1$s" : "הקובץ הזה הועבר אל %1$s על ידי %2$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "אין לך הרשאות לגשת לקובץ/תיקייה - יש ליצור קשר עם הבעלים לשיתופם איתך.",
"Upload (max. %s)" : "העלאה (מקסימום %s)",
"Settings" : "הגדרות",
From ee8cf365587c124ce3193f28b5fde30b94c61e33 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Thu, 11 May 2023 14:39:02 +0545
Subject: [PATCH 091/244] Update to phpunit 9.6.8
---
composer.lock | 60 ++++++++++++++++++++++++++-------------------------
1 file changed, 31 insertions(+), 29 deletions(-)
diff --git a/composer.lock b/composer.lock
index 84218ed209a0..196ea7823ff8 100644
--- a/composer.lock
+++ b/composer.lock
@@ -5297,16 +5297,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.6.7",
+ "version": "9.6.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2"
+ "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
- "reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/17d621b3aff84d0c8b62539e269e87d8d5baa76e",
+ "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e",
"shasum": ""
},
"require": {
@@ -5380,7 +5380,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.7"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.8"
},
"funding": [
{
@@ -5396,7 +5396,7 @@
"type": "tidelift"
}
],
- "time": "2023-04-14T08:58:40+00:00"
+ "time": "2023-05-11T05:14:45+00:00"
},
{
"name": "roave/security-advisories",
@@ -5404,12 +5404,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
- "reference": "130bdcce759e12b6c0685a5ab0181f3bf6bbd46e"
+ "reference": "bc1d6711a0a8bb1f2db39755266a44bd74614c72"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/130bdcce759e12b6c0685a5ab0181f3bf6bbd46e",
- "reference": "130bdcce759e12b6c0685a5ab0181f3bf6bbd46e",
+ "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/bc1d6711a0a8bb1f2db39755266a44bd74614c72",
+ "reference": "bc1d6711a0a8bb1f2db39755266a44bd74614c72",
"shasum": ""
},
"conflict": {
@@ -5437,7 +5437,7 @@
"automad/automad": "<1.8",
"awesome-support/awesome-support": "<=6.0.7",
"aws/aws-sdk-php": ">=3,<3.2.1",
- "azuracast/azuracast": "<0.18",
+ "azuracast/azuracast": "<0.18.3",
"backdrop/backdrop": "<1.24.2",
"badaso/core": "<2.7",
"bagisto/bagisto": "<0.1.5",
@@ -5477,15 +5477,15 @@
"codeigniter4/shield": "<1-beta.4|= 1.0.0-beta",
"codiad/codiad": "<=2.8.4",
"composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5",
- "concrete5/concrete5": "<=9.1.3|>= 9.0.0RC1, < 9.1.3",
+ "concrete5/concrete5": "<9.2|>= 9.0.0RC1, < 9.1.3",
"concrete5/core": "<8.5.8|>=9,<9.1",
"contao-components/mediaelement": ">=2.14.2,<2.21.1",
- "contao/contao": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|>=4.13,<4.13.3",
+ "contao/contao": ">=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4",
"contao/core": ">=2,<3.5.39",
- "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|>=4.13,<4.13.3|= 4.10.0",
+ "contao/core-bundle": "<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4|= 4.10.0",
"contao/listing-bundle": ">=4,<4.4.8",
"contao/managed-edition": "<=1.5",
- "craftcms/cms": "<3.7.64|>= 4.0.0-RC1, < 4.3.7|>= 4.0.0-RC1, < 4.2.1",
+ "craftcms/cms": "<=3.8.3|>=4,<=4.4.3|>= 4.0.0-RC1, < 4.3.7|>= 4.0.0-RC1, < 4.2.1",
"croogo/croogo": "<3.0.7",
"cuyz/valinor": "<0.12",
"czproject/git-php": "<4.0.3",
@@ -5507,7 +5507,7 @@
"doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4",
"dolibarr/dolibarr": "<16|>=16.0.1,<16.0.3|= 12.0.5|>= 3.3.beta1, < 13.0.2",
"dompdf/dompdf": "<2.0.2|= 2.0.2",
- "drupal/core": ">=7,<7.91|>=8,<9.3.19|>=9.4,<9.4.3",
+ "drupal/core": ">=7,<7.96|>=8,<9.4.14|>=9.5,<9.5.8|>=10,<10.0.8",
"drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4",
"dweeves/magmi": "<=0.7.24",
"ecodev/newsletter": "<=4",
@@ -5594,6 +5594,7 @@
"ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3",
"ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3",
"ibexa/post-install": "<=1.0.4",
+ "ibexa/user": ">=4,<4.4.3",
"icecoder/icecoder": "<=8.1",
"idno/known": "<=1.3.1",
"illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10",
@@ -5672,7 +5673,7 @@
"modx/revolution": "<= 2.8.3-pl|<2.8",
"mojo42/jirafeau": "<4.4",
"monolog/monolog": ">=1.8,<1.12",
- "moodle/moodle": "<4.0.7|>=4.1-beta,<4.1.2|= 3.11",
+ "moodle/moodle": "<4.2-rc.2|= 3.11",
"mustache/mustache": ">=2,<2.14.1",
"namshi/jose": "<2.2",
"neoan3-apps/template": "<1.1.1",
@@ -5684,7 +5685,7 @@
"netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15",
"nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6",
"nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13",
- "nilsteampassnet/teampass": "<3.0.3",
+ "nilsteampassnet/teampass": "<3.0.7",
"notrinos/notrinos-erp": "<=0.7",
"noumo/easyii": "<=0.9",
"nukeviet/nukeviet": "<4.5.2",
@@ -5736,7 +5737,7 @@
"phpxmlrpc/phpxmlrpc": "<4.9.2",
"pimcore/data-hub": "<1.2.4",
"pimcore/perspective-editor": "<1.5.1",
- "pimcore/pimcore": "<10.5.20",
+ "pimcore/pimcore": "<10.5.21",
"pixelfed/pixelfed": "<=0.11.4",
"pocketmine/bedrock-protocol": "<8.0.2",
"pocketmine/pocketmine-mp": "<4.12.5|>= 4.0.0-BETA5, < 4.4.2",
@@ -5745,7 +5746,7 @@
"prestashop/blockwishlist": ">=2,<2.1.1",
"prestashop/contactform": ">=1.0.1,<4.3",
"prestashop/gamification": "<2.3.2",
- "prestashop/prestashop": "<8.0.1",
+ "prestashop/prestashop": "<8.0.4",
"prestashop/productcomments": "<5.0.2",
"prestashop/ps_emailsubscription": "<2.6.1",
"prestashop/ps_facetedsearch": "<3.4.1",
@@ -5782,12 +5783,12 @@
"shopware/storefront": "<=6.4.8.1",
"shopxo/shopxo": "<2.2.6",
"showdoc/showdoc": "<2.10.4",
- "silverstripe/admin": ">=1,<1.11.3",
+ "silverstripe/admin": "<1.12.7",
"silverstripe/assets": ">=1,<1.11.1",
"silverstripe/cms": "<4.11.3",
"silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1",
"silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3",
- "silverstripe/framework": "<4.11.14",
+ "silverstripe/framework": "<4.12.5",
"silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|>=4.1.1,<4.1.2|>=4.2.2,<4.2.3|= 4.0.0-alpha1",
"silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1",
"silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1",
@@ -5867,13 +5868,14 @@
"t3/dce": ">=2.2,<2.6.2",
"t3g/svg-sanitizer": "<1.0.3",
"tastyigniter/tastyigniter": "<3.3",
+ "tcg/voyager": "<=1.4",
"tecnickcom/tcpdf": "<6.2.22",
"terminal42/contao-tablelookupwizard": "<3.3.5",
"thelia/backoffice-default-template": ">=2.1,<2.1.2",
"thelia/thelia": ">=2.1-beta.1,<2.1.3",
"theonedemon/phpwhois": "<=4.2.5",
"thinkcmf/thinkcmf": "<=5.1.7",
- "thorsten/phpmyfaq": "<3.1.12",
+ "thorsten/phpmyfaq": "<3.1.13",
"tinymce/tinymce": "<5.10.7|>=6,<6.3.1",
"tinymighty/wiki-seo": "<1.2.2",
"titon/framework": ">=0,<9.9.99",
@@ -6001,7 +6003,7 @@
"type": "tidelift"
}
],
- "time": "2023-04-24T23:04:30+00:00"
+ "time": "2023-05-10T22:04:31+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -6303,16 +6305,16 @@
},
{
"name": "sebastian/diff",
- "version": "4.0.4",
+ "version": "4.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
+ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
+ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
"shasum": ""
},
"require": {
@@ -6357,7 +6359,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
},
"funding": [
{
@@ -6365,7 +6367,7 @@
"type": "github"
}
],
- "time": "2020-10-26T13:10:38+00:00"
+ "time": "2023-05-07T05:35:17+00:00"
},
{
"name": "sebastian/environment",
From 84441bf5e5d77254933efafcec6e7edaeb130497 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Fri, 12 May 2023 04:51:34 +0000
Subject: [PATCH 092/244] [tx] updated from transifex
---
settings/l10n/ar.js | 18 ++++++++++++++++++
settings/l10n/ar.json | 18 ++++++++++++++++++
settings/l10n/sq.js | 2 ++
settings/l10n/sq.json | 2 ++
4 files changed, 40 insertions(+)
diff --git a/settings/l10n/ar.js b/settings/l10n/ar.js
index 6c94d1423637..ddea966f04a6 100644
--- a/settings/l10n/ar.js
+++ b/settings/l10n/ar.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Unable to delete group." : "تعذّر حذف مجموعة.",
"Saved" : "تم الحفظ",
"log-level out of allowed range" : "مستوى السجل خارج النطاق المسموح به",
+ "Updated log level" : "مستوى السجل المحدث",
"Invalid email address" : "عنوان بريد إلكتروني غير صالح",
"test email settings" : "إعدادات رسائل البريد الإلكتروني الاختبار",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "حدثت مشكلة أثناء إرسال البريد الإلكتروني. يُرجى مراجعة إعداداتك. (خطأ: %s)",
@@ -51,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "تم تغيير عنوان البريد الإلكتروني لـ %s بنجاح",
"Couldn't send email address change notification mail. Please contact your administrator." : "لا يمكن إرسال رسالة إشعار تغيير عنوان البريد الإلكتروني. يُرجى الاتصال بمسؤولك.",
"Unable to enable/disable user." : "تعذّر تمكين/تعطيل المستخدم.",
+ "Data too long" : "البيانات طويلة جدا",
"Invalid mail address" : "عنوان بريد إلكتروني غير صالح",
"Owner language" : "لغة المالك",
"Create" : "إنشاء",
@@ -122,11 +124,14 @@ OC.L10N.register(
"undo" : "تراجع",
"You are about to delete a group. This action can't be undone and is permanent. Are you sure that you want to permanently delete {groupName}?" : "أنت على وشك حذف مجموعة. هذا الإجراء نهائي ولا يمكن التراجع عنه. هل أنت متأكد من رغبتك في حذف {groupName} نهائيًا؟",
"Delete group" : "حذف مجموعة",
+ "Resend invitation email" : "إعادة إرسال البريد الإلكتروني للدعوة",
"never" : "أبدًا",
"unknown" : "غير معروف",
"deleted {userName}" : "{userName} محذوف",
"You are about to delete a user. This action can't be undone and is permanent. All user data, files and shares will be deleted. Are you sure that you want to permanently delete {userName}?" : "أنت على وشك حذف مستخدم. هذا الإجراء نهائي ولا يمكن التراجع عنه. وسيتم حذف جميع بيانات المستخدم وملفاته ومشاركاته. هل أنت متأكد من رغبتك في حذف {userName} نهائيًا؟",
"Delete user" : "حذف المستخدم",
+ "The invitation email for this user has been resent" : "تمت إعادة إرسال البريد الإلكتروني للدعوة لهذا المستخدم",
+ "The invitation email for this user could not be resent" : "تعذر إعادة إرسال البريد الإلكتروني للدعوة لهذا المستخدم",
"Group already exists" : "المجموعة موجودة مسبقاً",
"add group" : "إضافة مجموعة",
"Invalid quota value \"{val}\"" : "قيمة الحصة النسبية غير صالحة \"{val}\"",
@@ -209,6 +214,7 @@ OC.L10N.register(
"Allow users to share file via social media" : "السماح للمستخدمين بمشاركة الملف عبر وسائل التواصل الاجتماعي",
"Set default expiration date for user shares" : "تعيين تاريخ انتهاء الصلاحية الافتراضي لمشاركات المستخدم",
"Set default expiration date for group shares" : "تعيين تاريخ انتهاء الصلاحية الافتراضي لمشاركات المجموعة",
+ "Set default expiration date for federated shares" : "تعيين تاريخ انتهاء الصلاحية الافتراضي للأسهم الموحدة",
"Automatically accept new incoming local user shares" : "قبول مشاركات المستخدمين المحليين الجديدة الواردة تلقائيًا",
"Allow resharing" : "السماح بإعادة المشاركة",
"Allow sharing with groups" : "السماح بالمشاركة مع المجموعات",
@@ -232,6 +238,7 @@ OC.L10N.register(
"Enterprise license key" : "مفتاح ترخيص Enterprise",
"Enter a new license:" : "أدخل ترخيصًا جديدًا:",
"Save" : "حفظ",
+ "Remove current license key" : "إزالة مفتاح الترخيص الحالي",
"Everything (fatal issues, errors, warnings, info, debug)" : "كل شيء (مشكلات فادحة، وأخطاء، وتحذيرات، ومعلومات، وتصحيح الأخطاء)",
"Info, warnings, errors and fatal issues" : "المعلومات، والتحذيرات، والأخطاء، والمشكلات الفادحة",
"Warnings, errors and fatal issues" : "التحذيرات، والأخطاء، والمشكلات الفادحة",
@@ -262,17 +269,22 @@ OC.L10N.register(
"SMTP Username" : "اسم مستخدم SMTP",
"SMTP Password" : "كلمة مرور SMTP",
"Store credentials" : "تخزين بيانات الاعتماد",
+ "Test receiver email" : "اختبار البريد الإلكتروني للمستلم",
"Test email settings" : "إعدادات رسائل البريد الإلكتروني الاختبار",
"Send email" : "إرسال رسالة بريد إلكتروني",
"Manual File Locking" : "قفل الملفات بشكل يدوي",
"Default timeout for the locks if not specified (in seconds)" : "المهلة الافتراضية للأقفال في حال لم يقع تحديدها (بالثواني)",
"Maximum timeout for the locks (in seconds)" : "المهلة القصوى للأقفال (بالثواني)",
+ "Enable manual file locking in the web interface" : "تمكين تأمين الملفات يدويا في واجهة الويب",
+ "Allow users in the following groups to unlock files they have access to:" : "السماح للمستخدمين في المجموعات التالية بإلغاء تأمين الملفات التي يمكنهم الوصول إليها:",
+ "Users in these groups can unlock files even if they are not the owner of the lock." : "يمكن للمستخدمين في هذه المجموعات إلغاء تأمين الملفات حتى لو لم يكونوا مالك القفل.",
"Security & setup warnings" : "تحذيرات الأمان والضبط",
"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 installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "يُرجى فحص مستندات التثبيت ↗ للاطلاع على ملاحظات تكوين 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 setup to strip inline doc blocks. This will make several core apps inaccessible." : "تم إعداد PHP على ما يبدو لإزالة كتل المستند المضمنة. وسيجعل ذلك العديد من التطبيقات الأساسية غير قابلة للوصول.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "من المحتمل أن يحدث ذلك بسبب وجود ذاكرة تخزين مؤقت/مسرّع مثل Zend OPcache أو eAccelerator.",
+ "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "لا تعمل قاعدة البيانات الخاصة بك مع مستوى عزل المعاملات \"قراءة ملتزمة\". يمكن أن يتسبب هذا في حدوث مشكلات عند تنفيذ إجراءات متعددة بالتوازي.",
"%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.",
"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 documentation ↗ for more information." : "تم تعطيل تأمين ملف المعاملات، وقد يؤدي ذلك إلى حدوث مشكلات حالات التعارض. يُرجى تمكين \"filelocking.enabled\" في config.php لتجنب هذه المشكلات. انظر المستندات ↗ لمزيد من المعلومات.",
@@ -299,6 +311,7 @@ OC.L10N.register(
"Desktop client" : "عميل سطح المكتب",
"Android app" : "تطبيق Android",
"iOS app" : "تطبيق iOS",
+ "If you want to support the project\n\t\t\tjoin development\n\t\t\tor\n\t\t\tspread the word!" : "إذا كنت ترغب في دعم المشروع\nانضم إلى التطوير\nأو\nانشر الكلمة!",
"Show First Run Wizard again" : "عرض تشغيل المعالج مرة أخرى أولًا",
"White-listed Domains" : "المجالات المدرجة في القائمة البيضاء",
"No Domains." : "لا توجد مجالات.",
@@ -330,6 +343,8 @@ OC.L10N.register(
"New password" : "كلمة مرور جديدة",
"Change password" : "تغيير كلمة المرور",
"Help translate" : "ترجمة التعليمات",
+ "Our imprint conditions:" : "شروط بصمتنا:",
+ "Our Privacy Policy conditions:" : "شروط سياسة الخصوصية الخاصة بنا:",
"You are using %s" : "أنت تستخدم %s",
"You are using %s of %s (%s %%)" : "أنت تستخدم %s من %s (%s %%)",
"Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "طوّره {communityopen}مجتمع ownCloud {linkclose}، {githubopen}كود المصدر{linkclose} مرخص بموجب {licenseopen}رخصة جنو أفيرو العمومية{linkclose}.",
@@ -347,6 +362,7 @@ OC.L10N.register(
"Use the credentials below to configure your app or device." : "استخدم بيانات الاعتماد أدناه لتكوين التطبيق أو الجهاز.",
"Password / Token" : "كلمة المرور/الرمز المميز",
"Done" : "تم",
+ "To access your files through WebDAV, please use the following URL:" : "للوصول إلى ملفاتك من خلال WebDAV ، يرجى استخدام عنوان URL التالي:",
"Version" : "إصدار",
"The activation link has expired. Click the button below to request a new one and complete the registration." : "انتهت صلاحية رابط التفعيل. انقر فوق الزر أدناه لطلب رابط جديد وأكمل التسجيل.",
"Resend activation link" : "إعادة إرسال رابط التفعيل",
@@ -360,6 +376,7 @@ OC.L10N.register(
"Settings" : "الإعدادات",
"Show enabled/disabled option" : "عرض الخيار المُمكَّن/المُعطَّل",
"Show storage location" : "عرض مكان التخزين",
+ "Show creation time" : "إظهار وقت الإنشاء",
"Show last log in" : "عرض آخر عملية تسجيل الدخول",
"Show user backend" : "عرض الواجهة الخلفية للمستخدم",
"Set password for new users" : "تعيين كلمة مرور لمستخدمين جدد",
@@ -383,6 +400,7 @@ OC.L10N.register(
"Storage Location" : "مكان التخزين",
"User Backend" : "الواجهة الخلفية للمستخدم",
"Last Login" : "آخر تسجيل دخول",
+ "Creation Time" : "وقت الإنشاء",
"change full name" : "تغيير الاسم الكامل",
"set new password" : "تعيين كلمة مرور جديدة",
"change email address" : "تغيير عنوان البريد الإلكتروني",
diff --git a/settings/l10n/ar.json b/settings/l10n/ar.json
index 7dd37f75d890..11e2217f3dce 100644
--- a/settings/l10n/ar.json
+++ b/settings/l10n/ar.json
@@ -17,6 +17,7 @@
"Unable to delete group." : "تعذّر حذف مجموعة.",
"Saved" : "تم الحفظ",
"log-level out of allowed range" : "مستوى السجل خارج النطاق المسموح به",
+ "Updated log level" : "مستوى السجل المحدث",
"Invalid email address" : "عنوان بريد إلكتروني غير صالح",
"test email settings" : "إعدادات رسائل البريد الإلكتروني الاختبار",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "حدثت مشكلة أثناء إرسال البريد الإلكتروني. يُرجى مراجعة إعداداتك. (خطأ: %s)",
@@ -49,6 +50,7 @@
"%s email address changed successfully" : "تم تغيير عنوان البريد الإلكتروني لـ %s بنجاح",
"Couldn't send email address change notification mail. Please contact your administrator." : "لا يمكن إرسال رسالة إشعار تغيير عنوان البريد الإلكتروني. يُرجى الاتصال بمسؤولك.",
"Unable to enable/disable user." : "تعذّر تمكين/تعطيل المستخدم.",
+ "Data too long" : "البيانات طويلة جدا",
"Invalid mail address" : "عنوان بريد إلكتروني غير صالح",
"Owner language" : "لغة المالك",
"Create" : "إنشاء",
@@ -120,11 +122,14 @@
"undo" : "تراجع",
"You are about to delete a group. This action can't be undone and is permanent. Are you sure that you want to permanently delete {groupName}?" : "أنت على وشك حذف مجموعة. هذا الإجراء نهائي ولا يمكن التراجع عنه. هل أنت متأكد من رغبتك في حذف {groupName} نهائيًا؟",
"Delete group" : "حذف مجموعة",
+ "Resend invitation email" : "إعادة إرسال البريد الإلكتروني للدعوة",
"never" : "أبدًا",
"unknown" : "غير معروف",
"deleted {userName}" : "{userName} محذوف",
"You are about to delete a user. This action can't be undone and is permanent. All user data, files and shares will be deleted. Are you sure that you want to permanently delete {userName}?" : "أنت على وشك حذف مستخدم. هذا الإجراء نهائي ولا يمكن التراجع عنه. وسيتم حذف جميع بيانات المستخدم وملفاته ومشاركاته. هل أنت متأكد من رغبتك في حذف {userName} نهائيًا؟",
"Delete user" : "حذف المستخدم",
+ "The invitation email for this user has been resent" : "تمت إعادة إرسال البريد الإلكتروني للدعوة لهذا المستخدم",
+ "The invitation email for this user could not be resent" : "تعذر إعادة إرسال البريد الإلكتروني للدعوة لهذا المستخدم",
"Group already exists" : "المجموعة موجودة مسبقاً",
"add group" : "إضافة مجموعة",
"Invalid quota value \"{val}\"" : "قيمة الحصة النسبية غير صالحة \"{val}\"",
@@ -207,6 +212,7 @@
"Allow users to share file via social media" : "السماح للمستخدمين بمشاركة الملف عبر وسائل التواصل الاجتماعي",
"Set default expiration date for user shares" : "تعيين تاريخ انتهاء الصلاحية الافتراضي لمشاركات المستخدم",
"Set default expiration date for group shares" : "تعيين تاريخ انتهاء الصلاحية الافتراضي لمشاركات المجموعة",
+ "Set default expiration date for federated shares" : "تعيين تاريخ انتهاء الصلاحية الافتراضي للأسهم الموحدة",
"Automatically accept new incoming local user shares" : "قبول مشاركات المستخدمين المحليين الجديدة الواردة تلقائيًا",
"Allow resharing" : "السماح بإعادة المشاركة",
"Allow sharing with groups" : "السماح بالمشاركة مع المجموعات",
@@ -230,6 +236,7 @@
"Enterprise license key" : "مفتاح ترخيص Enterprise",
"Enter a new license:" : "أدخل ترخيصًا جديدًا:",
"Save" : "حفظ",
+ "Remove current license key" : "إزالة مفتاح الترخيص الحالي",
"Everything (fatal issues, errors, warnings, info, debug)" : "كل شيء (مشكلات فادحة، وأخطاء، وتحذيرات، ومعلومات، وتصحيح الأخطاء)",
"Info, warnings, errors and fatal issues" : "المعلومات، والتحذيرات، والأخطاء، والمشكلات الفادحة",
"Warnings, errors and fatal issues" : "التحذيرات، والأخطاء، والمشكلات الفادحة",
@@ -260,17 +267,22 @@
"SMTP Username" : "اسم مستخدم SMTP",
"SMTP Password" : "كلمة مرور SMTP",
"Store credentials" : "تخزين بيانات الاعتماد",
+ "Test receiver email" : "اختبار البريد الإلكتروني للمستلم",
"Test email settings" : "إعدادات رسائل البريد الإلكتروني الاختبار",
"Send email" : "إرسال رسالة بريد إلكتروني",
"Manual File Locking" : "قفل الملفات بشكل يدوي",
"Default timeout for the locks if not specified (in seconds)" : "المهلة الافتراضية للأقفال في حال لم يقع تحديدها (بالثواني)",
"Maximum timeout for the locks (in seconds)" : "المهلة القصوى للأقفال (بالثواني)",
+ "Enable manual file locking in the web interface" : "تمكين تأمين الملفات يدويا في واجهة الويب",
+ "Allow users in the following groups to unlock files they have access to:" : "السماح للمستخدمين في المجموعات التالية بإلغاء تأمين الملفات التي يمكنهم الوصول إليها:",
+ "Users in these groups can unlock files even if they are not the owner of the lock." : "يمكن للمستخدمين في هذه المجموعات إلغاء تأمين الملفات حتى لو لم يكونوا مالك القفل.",
"Security & setup warnings" : "تحذيرات الأمان والضبط",
"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 installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "يُرجى فحص مستندات التثبيت ↗ للاطلاع على ملاحظات تكوين 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 setup to strip inline doc blocks. This will make several core apps inaccessible." : "تم إعداد PHP على ما يبدو لإزالة كتل المستند المضمنة. وسيجعل ذلك العديد من التطبيقات الأساسية غير قابلة للوصول.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "من المحتمل أن يحدث ذلك بسبب وجود ذاكرة تخزين مؤقت/مسرّع مثل Zend OPcache أو eAccelerator.",
+ "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "لا تعمل قاعدة البيانات الخاصة بك مع مستوى عزل المعاملات \"قراءة ملتزمة\". يمكن أن يتسبب هذا في حدوث مشكلات عند تنفيذ إجراءات متعددة بالتوازي.",
"%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.",
"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 documentation ↗ for more information." : "تم تعطيل تأمين ملف المعاملات، وقد يؤدي ذلك إلى حدوث مشكلات حالات التعارض. يُرجى تمكين \"filelocking.enabled\" في config.php لتجنب هذه المشكلات. انظر المستندات ↗ لمزيد من المعلومات.",
@@ -297,6 +309,7 @@
"Desktop client" : "عميل سطح المكتب",
"Android app" : "تطبيق Android",
"iOS app" : "تطبيق iOS",
+ "If you want to support the project\n\t\t\tjoin development\n\t\t\tor\n\t\t\tspread the word!" : "إذا كنت ترغب في دعم المشروع\nانضم إلى التطوير\nأو\nانشر الكلمة!",
"Show First Run Wizard again" : "عرض تشغيل المعالج مرة أخرى أولًا",
"White-listed Domains" : "المجالات المدرجة في القائمة البيضاء",
"No Domains." : "لا توجد مجالات.",
@@ -328,6 +341,8 @@
"New password" : "كلمة مرور جديدة",
"Change password" : "تغيير كلمة المرور",
"Help translate" : "ترجمة التعليمات",
+ "Our imprint conditions:" : "شروط بصمتنا:",
+ "Our Privacy Policy conditions:" : "شروط سياسة الخصوصية الخاصة بنا:",
"You are using %s" : "أنت تستخدم %s",
"You are using %s of %s (%s %%)" : "أنت تستخدم %s من %s (%s %%)",
"Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "طوّره {communityopen}مجتمع ownCloud {linkclose}، {githubopen}كود المصدر{linkclose} مرخص بموجب {licenseopen}رخصة جنو أفيرو العمومية{linkclose}.",
@@ -345,6 +360,7 @@
"Use the credentials below to configure your app or device." : "استخدم بيانات الاعتماد أدناه لتكوين التطبيق أو الجهاز.",
"Password / Token" : "كلمة المرور/الرمز المميز",
"Done" : "تم",
+ "To access your files through WebDAV, please use the following URL:" : "للوصول إلى ملفاتك من خلال WebDAV ، يرجى استخدام عنوان URL التالي:",
"Version" : "إصدار",
"The activation link has expired. Click the button below to request a new one and complete the registration." : "انتهت صلاحية رابط التفعيل. انقر فوق الزر أدناه لطلب رابط جديد وأكمل التسجيل.",
"Resend activation link" : "إعادة إرسال رابط التفعيل",
@@ -358,6 +374,7 @@
"Settings" : "الإعدادات",
"Show enabled/disabled option" : "عرض الخيار المُمكَّن/المُعطَّل",
"Show storage location" : "عرض مكان التخزين",
+ "Show creation time" : "إظهار وقت الإنشاء",
"Show last log in" : "عرض آخر عملية تسجيل الدخول",
"Show user backend" : "عرض الواجهة الخلفية للمستخدم",
"Set password for new users" : "تعيين كلمة مرور لمستخدمين جدد",
@@ -381,6 +398,7 @@
"Storage Location" : "مكان التخزين",
"User Backend" : "الواجهة الخلفية للمستخدم",
"Last Login" : "آخر تسجيل دخول",
+ "Creation Time" : "وقت الإنشاء",
"change full name" : "تغيير الاسم الكامل",
"set new password" : "تعيين كلمة مرور جديدة",
"change email address" : "تغيير عنوان البريد الإلكتروني",
diff --git a/settings/l10n/sq.js b/settings/l10n/sq.js
index 7408d1714914..08a575759ada 100644
--- a/settings/l10n/sq.js
+++ b/settings/l10n/sq.js
@@ -52,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "Adresa email %s u ndryshua me sukses",
"Couldn't send email address change notification mail. Please contact your administrator." : "S’u dërgua dot email njoftimi ndryshimi adrese email. Ju lutemi, lidhuni me përgjegjësin tuaj.",
"Unable to enable/disable user." : "S’arrihet të aktivizohet/çaktivizohet përdoruesi.",
+ "Data too long" : "Të dhëna shumë të gjata",
"Invalid mail address" : "Adresë email e pavlefshme",
"Owner language" : "Gjuha e të zotit",
"Create" : "Krijoje",
@@ -268,6 +269,7 @@ OC.L10N.register(
"SMTP Username" : "Emër përdoruesi SMTP",
"SMTP Password" : "Fjalëkalim SMTP",
"Store credentials" : "Depozitoji kredencialet",
+ "Test receiver email" : "Provoni email marrësi",
"Test email settings" : "Testoni rregullimet e email-it",
"Send email" : "Dërgo email",
"Manual File Locking" : "Kyçje Dorazi Kartelash",
diff --git a/settings/l10n/sq.json b/settings/l10n/sq.json
index 3c34113cbe5c..b78deea595ee 100644
--- a/settings/l10n/sq.json
+++ b/settings/l10n/sq.json
@@ -50,6 +50,7 @@
"%s email address changed successfully" : "Adresa email %s u ndryshua me sukses",
"Couldn't send email address change notification mail. Please contact your administrator." : "S’u dërgua dot email njoftimi ndryshimi adrese email. Ju lutemi, lidhuni me përgjegjësin tuaj.",
"Unable to enable/disable user." : "S’arrihet të aktivizohet/çaktivizohet përdoruesi.",
+ "Data too long" : "Të dhëna shumë të gjata",
"Invalid mail address" : "Adresë email e pavlefshme",
"Owner language" : "Gjuha e të zotit",
"Create" : "Krijoje",
@@ -266,6 +267,7 @@
"SMTP Username" : "Emër përdoruesi SMTP",
"SMTP Password" : "Fjalëkalim SMTP",
"Store credentials" : "Depozitoji kredencialet",
+ "Test receiver email" : "Provoni email marrësi",
"Test email settings" : "Testoni rregullimet e email-it",
"Send email" : "Dërgo email",
"Manual File Locking" : "Kyçje Dorazi Kartelash",
From 5e77a8fc5e3ffc6248ffc4080bd0724e2274ff93 Mon Sep 17 00:00:00 2001
From: Pasquale Tripodi
Date: Fri, 12 May 2023 12:30:13 +0200
Subject: [PATCH 093/244] Align to new Google authorization URI (#40783)
* align to new authorization URI
* add changelog
* add links in changelog
---
apps/files_external/ajax/oauth2.php | 2 +-
changelog/unreleased/40783 | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
create mode 100644 changelog/unreleased/40783
diff --git a/apps/files_external/ajax/oauth2.php b/apps/files_external/ajax/oauth2.php
index 4044bbdb1b56..22ffa1669d76 100644
--- a/apps/files_external/ajax/oauth2.php
+++ b/apps/files_external/ajax/oauth2.php
@@ -38,7 +38,7 @@
$client->setClientSecret((string)$_POST['client_secret']);
$client->setRedirectUri((string)$_POST['redirect']);
$client->setScopes(['https://www.googleapis.com/auth/drive']);
- $client->setApprovalPrompt('force');
+ $client->setPrompt('consent');
$client->setAccessType('offline');
if (isset($_POST['step'])) {
$step = $_POST['step'];
diff --git a/changelog/unreleased/40783 b/changelog/unreleased/40783
new file mode 100644
index 000000000000..843545803579
--- /dev/null
+++ b/changelog/unreleased/40783
@@ -0,0 +1,6 @@
+Bugfix: Align to new accounts.google.com authorization URI
+
+Core 10.12.1 brought an update of the google/apiclient from version 2.12.6 to 2.13.1. However, in version 2.13.0 the accounts.google.com authorization URI has been updated. This change breaks old code that uses the "setApprovalPrompt('force')" instead of the newer "setPrompt('consent')" method, as this endpoint does not support the legacy approval prompt parameter. This has been now fixed.
+
+https://github.com/owncloud/core/pull/40783
+https://github.com/owncloud/core/issues/40777
From 6eff63b7763a27918d9eeaa08fc1676908faa86e Mon Sep 17 00:00:00 2001
From: Pasquale Tripodi
Date: Fri, 12 May 2023 10:32:45 +0000
Subject: [PATCH 094/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 13 +++++++++++++
CHANGELOG.md | 12 ++++++++++++
2 files changed, 25 insertions(+)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index 76ef748ae771..f212c9e48f69 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -6,6 +6,7 @@ Changelog for ownCloud Core [unreleased] (U
Summary
+ - Bugfix - Align to new accounts.google.com authorization URI: #40783
- Change - Update PHP dependencies: #40724
- Change - Fix name length check on federated shares: #40726
- Change - Validate email and string user input in UserController: #40769
@@ -14,6 +15,18 @@ Summary
Details
+ -
+
Bugfix - Align to new accounts.google.com authorization URI: #40783
+ Core 10.12.1 brought an update of the google/apiclient from version 2.12.6 to 2.13.1.
+ However, in version 2.13.0 the accounts.google.com authorization URI has been updated. This
+ change breaks old code that uses the "setApprovalPrompt('force')" instead of the newer
+ "setPrompt('consent')" method, as this endpoint does not support the legacy approval prompt
+ parameter. This has been now fixed.
+
+ https://github.com/owncloud/core/issues/40777
+
+ https://github.com/owncloud/core/pull/40783
+
-
Change - Update PHP dependencies: #40724
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.5.1) -
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fbc0f141d931..883deaae96ea 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@ ownCloud admins and users.
Summary
-------
+* Bugfix - Align to new accounts.google.com authorization URI: [#40783](https://github.com/owncloud/core/pull/40783)
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
* Change - Validate email and string user input in UserController: [#40769](https://github.com/owncloud/core/pull/40769)
@@ -17,6 +18,17 @@ Summary
Details
-------
+* Bugfix - Align to new accounts.google.com authorization URI: [#40783](https://github.com/owncloud/core/pull/40783)
+
+ Core 10.12.1 brought an update of the google/apiclient from version 2.12.6 to 2.13.1.
+ However, in version 2.13.0 the accounts.google.com authorization URI has been updated. This
+ change breaks old code that uses the "setApprovalPrompt('force')" instead of the newer
+ "setPrompt('consent')" method, as this endpoint does not support the legacy approval prompt
+ parameter. This has been now fixed.
+
+ https://github.com/owncloud/core/issues/40777
+ https://github.com/owncloud/core/pull/40783
+
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.5.1) -
From 2d351e05c7aca44cafcb9a126fac352ae5d1ab13 Mon Sep 17 00:00:00 2001
From: esgarov
Date: Wed, 10 May 2023 14:25:28 +0200
Subject: [PATCH 095/244] .org with .com replaced
---
CHANGELOG.html | 2 +-
CHANGELOG.md | 2 +-
changelog/CHANGELOG-html.tmpl | 2 +-
changelog/CHANGELOG.tmpl | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index f212c9e48f69..22fba89043a9 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -7444,7 +7444,7 @@ User management
External storage
Dav App
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 883deaae96ea..b54255b092ad 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7770,7 +7770,7 @@ Details
#### External storage
- "Local" storage type can now be disabled by sysadmin in config.php [#26653](https://github.com/owncloud/core/issues/26653)
-- External storage backends must use [core external storage API](https://doc.owncloud.org/server/10.0/developer_manual/app/extstorage.html) to work without "files_external" [#18160](https://github.com/owncloud/core/issues/18160)
+- External storage backends must use [core external storage API](https://doc.owncloud.com/server/10.0/developer_manual/app/extstorage.html) to work without "files_external" [#18160](https://github.com/owncloud/core/issues/18160)
- FTP external storage moved to a separate app [files_external_ftp](https://github.com/owncloud/files_external_ftp)
#### Dav App
diff --git a/changelog/CHANGELOG-html.tmpl b/changelog/CHANGELOG-html.tmpl
index 8e08b965b488..5580567b1c57 100644
--- a/changelog/CHANGELOG-html.tmpl
+++ b/changelog/CHANGELOG-html.tmpl
@@ -1224,7 +1224,7 @@
External storage
Dav App
diff --git a/changelog/CHANGELOG.tmpl b/changelog/CHANGELOG.tmpl
index ca3697d07a9e..40fe6af16b3b 100644
--- a/changelog/CHANGELOG.tmpl
+++ b/changelog/CHANGELOG.tmpl
@@ -1181,7 +1181,7 @@ Details
#### External storage
- "Local" storage type can now be disabled by sysadmin in config.php [#26653](https://github.com/owncloud/core/issues/26653)
-- External storage backends must use [core external storage API](https://doc.owncloud.org/server/10.0/developer_manual/app/extstorage.html) to work without "files_external" [#18160](https://github.com/owncloud/core/issues/18160)
+- External storage backends must use [core external storage API](https://doc.owncloud.com/server/10.0/developer_manual/app/extstorage.html) to work without "files_external" [#18160](https://github.com/owncloud/core/issues/18160)
- FTP external storage moved to a separate app [files_external_ftp](https://github.com/owncloud/files_external_ftp)
#### Dav App
From 5d9130fec564aa1ed8d1046acbe18d55f22554c7 Mon Sep 17 00:00:00 2001
From: Juergen Weigert
Date: Fri, 12 May 2023 15:21:40 +0200
Subject: [PATCH 096/244] merge Elcin's and Martin's suggestions.
---
CHANGELOG.html | 2 +-
CHANGELOG.md | 2 +-
changelog/CHANGELOG-html.tmpl | 2 +-
changelog/CHANGELOG.tmpl | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index 22fba89043a9..5841996c5555 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -7444,7 +7444,7 @@ User management
External storage
Dav App
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b54255b092ad..87514a3cf77c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7770,7 +7770,7 @@ Details
#### External storage
- "Local" storage type can now be disabled by sysadmin in config.php [#26653](https://github.com/owncloud/core/issues/26653)
-- External storage backends must use [core external storage API](https://doc.owncloud.com/server/10.0/developer_manual/app/extstorage.html) to work without "files_external" [#18160](https://github.com/owncloud/core/issues/18160)
+- External storage backends must use [core external storage API](https://doc.owncloud.com/server/next/developer_manual/app/advanced/extstorage.html) to work without "files_external" [#18160](https://github.com/owncloud/core/issues/18160)
- FTP external storage moved to a separate app [files_external_ftp](https://github.com/owncloud/files_external_ftp)
#### Dav App
diff --git a/changelog/CHANGELOG-html.tmpl b/changelog/CHANGELOG-html.tmpl
index 5580567b1c57..5e040e31b71e 100644
--- a/changelog/CHANGELOG-html.tmpl
+++ b/changelog/CHANGELOG-html.tmpl
@@ -1224,7 +1224,7 @@
External storage
Dav App
diff --git a/changelog/CHANGELOG.tmpl b/changelog/CHANGELOG.tmpl
index 40fe6af16b3b..9214b55e217f 100644
--- a/changelog/CHANGELOG.tmpl
+++ b/changelog/CHANGELOG.tmpl
@@ -1181,7 +1181,7 @@ Details
#### External storage
- "Local" storage type can now be disabled by sysadmin in config.php [#26653](https://github.com/owncloud/core/issues/26653)
-- External storage backends must use [core external storage API](https://doc.owncloud.com/server/10.0/developer_manual/app/extstorage.html) to work without "files_external" [#18160](https://github.com/owncloud/core/issues/18160)
+- External storage backends must use [core external storage API](https://doc.owncloud.com/server/next/developer_manual/app/advanced/extstorage.html) to work without "files_external" [#18160](https://github.com/owncloud/core/issues/18160)
- FTP external storage moved to a separate app [files_external_ftp](https://github.com/owncloud/files_external_ftp)
#### Dav App
From 2018fb40accef26e1e79d196ef8d292f4c02aa62 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Sat, 13 May 2023 00:48:18 +0000
Subject: [PATCH 097/244] [tx] updated from transifex
---
settings/l10n/en_GB.js | 1 +
settings/l10n/en_GB.json | 1 +
2 files changed, 2 insertions(+)
diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js
index 9ba3f9409973..d2401e801e97 100644
--- a/settings/l10n/en_GB.js
+++ b/settings/l10n/en_GB.js
@@ -52,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s email address changed successfully",
"Couldn't send email address change notification mail. Please contact your administrator." : "Couldn't send email address change notification mail. Please contact your administrator.",
"Unable to enable/disable user." : "Unable to enable/disable user.",
+ "Data too long" : "Data too long",
"Invalid mail address" : "Invalid mail address",
"Owner language" : "Owner language",
"Create" : "Create",
diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json
index a5205355be38..aa98eabfd81a 100644
--- a/settings/l10n/en_GB.json
+++ b/settings/l10n/en_GB.json
@@ -50,6 +50,7 @@
"%s email address changed successfully" : "%s email address changed successfully",
"Couldn't send email address change notification mail. Please contact your administrator." : "Couldn't send email address change notification mail. Please contact your administrator.",
"Unable to enable/disable user." : "Unable to enable/disable user.",
+ "Data too long" : "Data too long",
"Invalid mail address" : "Invalid mail address",
"Owner language" : "Owner language",
"Create" : "Create",
From 704629b4587dd0b65a51d298efe4468f8054c681 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Mon, 22 Aug 2022 12:56:25 +0545
Subject: [PATCH 098/244] Enhance share copy-overwrite test scenarios to
demonstrate current behavior
---
.../apiWebdavProperties1/copyFile.feature | 43 +++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/tests/acceptance/features/apiWebdavProperties1/copyFile.feature b/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
index 8ecc91202e92..3231a82f5ae0 100644
--- a/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
+++ b/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
@@ -215,10 +215,32 @@ Feature: copy file
And user "Alice" has accepted share "/BRIAN-Folder" offered by user "Brian"
When user "Alice" copies file "/textfile1.txt" to "/Shares/BRIAN-Folder" using the WebDAV API
Then the HTTP status code should be "204"
+ # Alice now sees the content of "her" file in /Shares/BRIAN-Folder
+ # The share that she received from Brian has "automatically" gone into the "declined" state
And the content of file "/Shares/BRIAN-Folder" for user "Alice" should be "ownCloud test text file 1"
And as "Alice" folder "/Shares/BRIAN-Folder/sample-folder" should not exist
And as "Alice" file "/textfile1.txt" should exist
And user "Alice" should not have any received shares
+ And the sharing API should report to user "Alice" that these shares are in the declined state
+ | path |
+ | /Shares/BRIAN-Folder/ |
+ # Brian still has his original BRIAN-Folder and can see that it is shared with Alice
+ And as "Brian" folder "BRIAN-Folder" should exist
+ And as "Brian" folder "BRIAN-Folder/sample-folder" should exist
+ When user "Brian" gets all shares shared by him using the sharing API
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And folder "/Shares/BRIAN-Folder" should be included in the response
+ # Alice can accept the share from Brian again
+ When user "Alice" accepts share "/BRIAN-Folder" offered by user "Brian" using the sharing API
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ # now Alice has "her" text file as "/Shares/BRIAN-Folder"
+ # and has the shared folder from Brian as "/Shares/BRIAN-Folder (2)"
+ And as "Alice" file "/Shares/BRIAN-Folder" should exist
+ And the content of file "/Shares/BRIAN-Folder" for user "Alice" should be "ownCloud test text file 1"
+ And as "Alice" folder "/Shares/BRIAN-Folder (2)" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder (2)/sample-folder" should exist
Examples:
| dav_version |
| old |
@@ -234,9 +256,30 @@ Feature: copy file
And user "Alice" has created folder "FOLDER/sample-folder"
When user "Alice" copies folder "/FOLDER" to "/Shares/sharedfile1.txt" using the WebDAV API
Then the HTTP status code should be "204"
+ # Alice now sees the content of "her" folder as folder "/Shares/sharedfile1.txt"
+ # The share that she received from Brian has "automatically" gone into the "declined" state
And as "Alice" folder "/FOLDER/sample-folder" should exist
And as "Alice" folder "/Shares/sharedfile1.txt/sample-folder" should exist
And user "Alice" should not have any received shares
+ And the sharing API should report to user "Alice" that these shares are in the declined state
+ | path |
+ | /Shares/sharedfile1.txt |
+ # Brian still has his original sharedfile1.txt and can see that it is shared with Alice
+ And as "Brian" file "sharedfile1.txt" should exist
+ And the content of file "sharedfile1.txt" for user "Brian" should be "file to share"
+ When user "Brian" gets all shares shared by him using the sharing API
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And file "/Shares/sharedfile1.txt" should be included in the response
+ When user "Alice" accepts share "/sharedfile1.txt" offered by user "Brian" using the sharing API
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ # now Alice has "her" folder as "/Shares/sharedfile1.txt"
+ # and has the shared file from Brian as "/Shares/sharedfile1 (2).txt"
+ And as "Alice" folder "/Shares/sharedfile1.txt" should exist
+ And as "Alice" folder "/Shares/sharedfile1.txt/sample-folder" should exist
+ And as "Alice" file "/Shares/sharedfile1 (2).txt" should exist
+ And the content of file "/Shares/sharedfile1 (2).txt" for user "Alice" should be "file to share"
Examples:
| dav_version |
| old |
From 7f8e49ad8e665f30f1c1c0944bdf5be5ad00f1c4 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Mon, 22 Aug 2022 15:02:15 +0545
Subject: [PATCH 099/244] Demonstrate copy file over shared file and folder
over shared folder
---
.../apiWebdavProperties1/copyFile.feature | 85 +++++++++++++++++++
1 file changed, 85 insertions(+)
diff --git a/tests/acceptance/features/apiWebdavProperties1/copyFile.feature b/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
index 3231a82f5ae0..7a482368ebd9 100644
--- a/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
+++ b/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
@@ -286,6 +286,91 @@ Feature: copy file
| new |
+ Scenario Outline: copy a file over the top of an existing file received as a user share
+ Given using DAV path
+ And user "Brian" has been created with default attributes and without skeleton files
+ And user "Brian" has uploaded file with content "file to share" to "/sharedfile1.txt"
+ And user "Brian" has shared file "/sharedfile1.txt" with user "Alice"
+ And user "Alice" has accepted share "/sharedfile1.txt" offered by user "Brian"
+ When user "Alice" copies file "/textfile1.txt" to "/Shares/sharedfile1.txt" using the WebDAV API
+ Then the HTTP status code should be "204"
+ # Alice now sees the content of "her" file in /Shares/sharedfile1.txt
+ # The share that she received from Brian has "automatically" gone into the "declined" state
+ And as "Alice" file "/Shares/sharedfile1.txt" should exist
+ And the content of file "/Shares/sharedfile1.txt" for user "Alice" should be "ownCloud test text file 1"
+ And as "Alice" file "/textfile1.txt" should exist
+ And user "Alice" should not have any received shares
+ And the sharing API should report to user "Alice" that these shares are in the declined state
+ | path |
+ | /Shares/sharedfile1.txt |
+ # Brian still has his original "/sharedfile1.txt" and can see that it is shared with Alice
+ And as "Brian" file "/sharedfile1.txt" should exist
+ And the content of file "/sharedfile1.txt" for user "Brian" should be "file to share"
+ # Alice can accept the share from Brian again
+ When user "Alice" accepts share "/sharedfile1.txt" offered by user "Brian" using the sharing API
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ # now Alice has "her" text file as "/Shares/sharedfile1.txt"
+ # and has the shared folder from Brian as "/Shares/sharedfile1 (2).txt"
+ And as "Alice" file "/Shares/sharedfile1.txt" should exist
+ And the content of file "/Shares/sharedfile1.txt" for user "Alice" should be "ownCloud test text file 1"
+ And as "Alice" file "/Shares/sharedfile1 (2).txt" should exist
+ And the content of file "/Shares/sharedfile1 (2).txt" for user "Alice" should be "file to share"
+ Examples:
+ | dav_version |
+ | old |
+ | new |
+
+
+ Scenario Outline: copy a folder over the top of an existing folder received as a user share
+ Given using DAV path
+ And user "Brian" has been created with default attributes and without skeleton files
+ And user "Brian" has created folder "/BRIAN-Folder"
+ And user "Brian" has created folder "BRIAN-Folder/sample-folder"
+ And user "Brian" has shared folder "BRIAN-Folder" with user "Alice"
+ And user "Alice" has accepted share "/BRIAN-Folder" offered by user "Brian"
+ And user "Alice" has created folder "FOLDER/ALICE-folder"
+ When user "Alice" copies folder "/FOLDER" to "/Shares/BRIAN-Folder" using the WebDAV API
+ Then the HTTP status code should be "204"
+ # Alice now sees the content of "her" folder as folder "/Shares/BRIAN-Folder"
+ # The share that she received from Brian has "automatically" gone into the "declined" state
+ And as "Alice" folder "/FOLDER/ALICE-folder" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder/ALICE-folder" should exist
+ And user "Alice" should not have any received shares
+ And the sharing API should report to user "Alice" that these shares are in the declined state
+ | path |
+ | /Shares/BRIAN-Folder |
+ # Brian still has his original BRIAN-Folder and can see that it is shared with Alice
+ And as "Brian" folder "BRIAN-Folder" should exist
+ And as "Brian" folder "BRIAN-Folder/sample-folder" should exist
+ When user "Brian" gets all shares shared by him using the sharing API
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And file "/Shares/BRIAN-Folder" should be included in the response
+ When user "Alice" accepts share "/BRIAN-Folder" offered by user "Brian" using the sharing API
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ # now Alice has "her" folder as "/Shares/BRIAN-Folder"
+ # and has the shared file from Brian as "/Shares/BRIAN-Folder (2)"
+ And as "Alice" folder "/Shares/BRIAN-Folder" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder/ALICE-folder" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder (2)" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder (2)/sample-folder" should exist
+ # Alice can add content to both folders
+ # Brian sees what Alice puts into "/Shares/BRIAN-Folder (2)"
+ And user "Alice" has created folder "/Shares/BRIAN-Folder/new-folder1"
+ And user "Alice" has created folder "/Shares/BRIAN-Folder (2)/new-folder2"
+ And user "Alice" has uploaded file with content "new content 1" to "/Shares/BRIAN-Folder/new-folder1/file1.txt"
+ And user "Alice" has uploaded file with content "new content 2" to "/Shares/BRIAN-Folder (2)/new-folder2/file2.txt"
+ And the content of file "/Shares/BRIAN-Folder/new-folder1/file1.txt" for user "Alice" should be "new content 1"
+ And the content of file "/Shares/BRIAN-Folder (2)/new-folder2/file2.txt" for user "Alice" should be "new content 2"
+ And the content of file "/BRIAN-Folder/new-folder2/file2.txt" for user "Brian" should be "new content 2"
+ Examples:
+ | dav_version |
+ | old |
+ | new |
+
+
Scenario Outline: copy a folder into another folder at different level which is received as a user share
Given using DAV path
And user "Brian" has been created with default attributes and without skeleton files
From 98bf6be2657918c85a5f00bfe8556add1a045495 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Mon, 15 May 2023 16:08:11 +0545
Subject: [PATCH 100/244] Adjust tests for issue 40787 and 40788
---
.../apiWebdavProperties1/copyFile.feature | 59 +++--------------
.../copyFileOc10Issue40787.feature | 51 +++++++++++++++
.../copyFileOc10Issue40788.feature | 64 +++++++++++++++++++
3 files changed, 123 insertions(+), 51 deletions(-)
create mode 100644 tests/acceptance/features/apiWebdavProperties1/copyFileOc10Issue40787.feature
create mode 100644 tests/acceptance/features/apiWebdavProperties1/copyFileOc10Issue40788.feature
diff --git a/tests/acceptance/features/apiWebdavProperties1/copyFile.feature b/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
index 7a482368ebd9..a76f09222111 100644
--- a/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
+++ b/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
@@ -285,7 +285,7 @@ Feature: copy file
| old |
| new |
-
+ @skipOnOcV10 @issue-40787 @files_sharing-app-required
Scenario Outline: copy a file over the top of an existing file received as a user share
Given using DAV path
And user "Brian" has been created with default attributes and without skeleton files
@@ -294,34 +294,17 @@ Feature: copy file
And user "Alice" has accepted share "/sharedfile1.txt" offered by user "Brian"
When user "Alice" copies file "/textfile1.txt" to "/Shares/sharedfile1.txt" using the WebDAV API
Then the HTTP status code should be "204"
- # Alice now sees the content of "her" file in /Shares/sharedfile1.txt
- # The share that she received from Brian has "automatically" gone into the "declined" state
And as "Alice" file "/Shares/sharedfile1.txt" should exist
And the content of file "/Shares/sharedfile1.txt" for user "Alice" should be "ownCloud test text file 1"
And as "Alice" file "/textfile1.txt" should exist
- And user "Alice" should not have any received shares
- And the sharing API should report to user "Alice" that these shares are in the declined state
- | path |
- | /Shares/sharedfile1.txt |
- # Brian still has his original "/sharedfile1.txt" and can see that it is shared with Alice
And as "Brian" file "/sharedfile1.txt" should exist
- And the content of file "/sharedfile1.txt" for user "Brian" should be "file to share"
- # Alice can accept the share from Brian again
- When user "Alice" accepts share "/sharedfile1.txt" offered by user "Brian" using the sharing API
- Then the OCS status code should be "100"
- And the HTTP status code should be "200"
- # now Alice has "her" text file as "/Shares/sharedfile1.txt"
- # and has the shared folder from Brian as "/Shares/sharedfile1 (2).txt"
- And as "Alice" file "/Shares/sharedfile1.txt" should exist
- And the content of file "/Shares/sharedfile1.txt" for user "Alice" should be "ownCloud test text file 1"
- And as "Alice" file "/Shares/sharedfile1 (2).txt" should exist
- And the content of file "/Shares/sharedfile1 (2).txt" for user "Alice" should be "file to share"
+ And the content of file "/sharedfile1.txt" for user "Brian" should be "ownCloud test text file 1"
Examples:
| dav_version |
| old |
| new |
-
+ @skipOnOcV10 @issue-40788 @files_sharing-app-required
Scenario Outline: copy a folder over the top of an existing folder received as a user share
Given using DAV path
And user "Brian" has been created with default attributes and without skeleton files
@@ -331,40 +314,14 @@ Feature: copy file
And user "Alice" has accepted share "/BRIAN-Folder" offered by user "Brian"
And user "Alice" has created folder "FOLDER/ALICE-folder"
When user "Alice" copies folder "/FOLDER" to "/Shares/BRIAN-Folder" using the WebDAV API
- Then the HTTP status code should be "204"
- # Alice now sees the content of "her" folder as folder "/Shares/BRIAN-Folder"
- # The share that she received from Brian has "automatically" gone into the "declined" state
+ Then the HTTP status code should be "409"
And as "Alice" folder "/FOLDER/ALICE-folder" should exist
- And as "Alice" folder "/Shares/BRIAN-Folder/ALICE-folder" should exist
- And user "Alice" should not have any received shares
- And the sharing API should report to user "Alice" that these shares are in the declined state
- | path |
- | /Shares/BRIAN-Folder |
- # Brian still has his original BRIAN-Folder and can see that it is shared with Alice
+ And as "Alice" folder "/Shares/BRIAN-Folder" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder/sample-folder" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder/ALICE-folder" should not exist
And as "Brian" folder "BRIAN-Folder" should exist
And as "Brian" folder "BRIAN-Folder/sample-folder" should exist
- When user "Brian" gets all shares shared by him using the sharing API
- Then the OCS status code should be "100"
- And the HTTP status code should be "200"
- And file "/Shares/BRIAN-Folder" should be included in the response
- When user "Alice" accepts share "/BRIAN-Folder" offered by user "Brian" using the sharing API
- Then the OCS status code should be "100"
- And the HTTP status code should be "200"
- # now Alice has "her" folder as "/Shares/BRIAN-Folder"
- # and has the shared file from Brian as "/Shares/BRIAN-Folder (2)"
- And as "Alice" folder "/Shares/BRIAN-Folder" should exist
- And as "Alice" folder "/Shares/BRIAN-Folder/ALICE-folder" should exist
- And as "Alice" folder "/Shares/BRIAN-Folder (2)" should exist
- And as "Alice" folder "/Shares/BRIAN-Folder (2)/sample-folder" should exist
- # Alice can add content to both folders
- # Brian sees what Alice puts into "/Shares/BRIAN-Folder (2)"
- And user "Alice" has created folder "/Shares/BRIAN-Folder/new-folder1"
- And user "Alice" has created folder "/Shares/BRIAN-Folder (2)/new-folder2"
- And user "Alice" has uploaded file with content "new content 1" to "/Shares/BRIAN-Folder/new-folder1/file1.txt"
- And user "Alice" has uploaded file with content "new content 2" to "/Shares/BRIAN-Folder (2)/new-folder2/file2.txt"
- And the content of file "/Shares/BRIAN-Folder/new-folder1/file1.txt" for user "Alice" should be "new content 1"
- And the content of file "/Shares/BRIAN-Folder (2)/new-folder2/file2.txt" for user "Alice" should be "new content 2"
- And the content of file "/BRIAN-Folder/new-folder2/file2.txt" for user "Brian" should be "new content 2"
+ And as "Brian" folder "/Shares/BRIAN-Folder/ALICE-folder" should not exist
Examples:
| dav_version |
| old |
diff --git a/tests/acceptance/features/apiWebdavProperties1/copyFileOc10Issue40787.feature b/tests/acceptance/features/apiWebdavProperties1/copyFileOc10Issue40787.feature
new file mode 100644
index 000000000000..b9c6d4513280
--- /dev/null
+++ b/tests/acceptance/features/apiWebdavProperties1/copyFileOc10Issue40787.feature
@@ -0,0 +1,51 @@
+@api
+Feature: copy file
+ As a user
+ I want to be able to copy files
+ So that I can manage my files
+
+ # When fixing this issue, delete this bug-demo feature file.
+ # And unskip the corresponding scenario in copyFile.feature and make it pass.
+ Background:
+ Given using OCS API version "1"
+ And the administrator has set the default folder for received shares to "Shares"
+ And auto-accept shares has been disabled
+ And user "Alice" has been created with default attributes and without skeleton files
+ And user "Alice" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt"
+ And user "Alice" has uploaded file with content "ownCloud test text file 1" to "/textfile1.txt"
+
+ @issue-40787 @files_sharing-app-required
+ Scenario Outline: copy a file over the top of an existing file received as a user share
+ Given using DAV path
+ And user "Brian" has been created with default attributes and without skeleton files
+ And user "Brian" has uploaded file with content "file to share" to "/sharedfile1.txt"
+ And user "Brian" has shared file "/sharedfile1.txt" with user "Alice"
+ And user "Alice" has accepted share "/sharedfile1.txt" offered by user "Brian"
+ When user "Alice" copies file "/textfile1.txt" to "/Shares/sharedfile1.txt" using the WebDAV API
+ Then the HTTP status code should be "204"
+ # Alice now sees the content of "her" file in /Shares/sharedfile1.txt
+ # The share that she received from Brian has "automatically" gone into the "declined" state
+ And as "Alice" file "/Shares/sharedfile1.txt" should exist
+ And the content of file "/Shares/sharedfile1.txt" for user "Alice" should be "ownCloud test text file 1"
+ And as "Alice" file "/textfile1.txt" should exist
+ And user "Alice" should not have any received shares
+ And the sharing API should report to user "Alice" that these shares are in the declined state
+ | path |
+ | /Shares/sharedfile1.txt |
+ # Brian still has his original "/sharedfile1.txt" and can see that it is shared with Alice
+ And as "Brian" file "/sharedfile1.txt" should exist
+ And the content of file "/sharedfile1.txt" for user "Brian" should be "file to share"
+ # Alice can accept the share from Brian again
+ When user "Alice" accepts share "/sharedfile1.txt" offered by user "Brian" using the sharing API
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ # now Alice has "her" text file as "/Shares/sharedfile1.txt"
+ # and has the shared folder from Brian as "/Shares/sharedfile1 (2).txt"
+ And as "Alice" file "/Shares/sharedfile1.txt" should exist
+ And the content of file "/Shares/sharedfile1.txt" for user "Alice" should be "ownCloud test text file 1"
+ And as "Alice" file "/Shares/sharedfile1 (2).txt" should exist
+ And the content of file "/Shares/sharedfile1 (2).txt" for user "Alice" should be "file to share"
+ Examples:
+ | dav_version |
+ | old |
+ | new |
diff --git a/tests/acceptance/features/apiWebdavProperties1/copyFileOc10Issue40788.feature b/tests/acceptance/features/apiWebdavProperties1/copyFileOc10Issue40788.feature
new file mode 100644
index 000000000000..f63bed3d3622
--- /dev/null
+++ b/tests/acceptance/features/apiWebdavProperties1/copyFileOc10Issue40788.feature
@@ -0,0 +1,64 @@
+@api
+Feature: copy file
+ As a user
+ I want to be able to copy files
+ So that I can manage my files
+
+ # When fixing this issue, delete this bug-demo feature file.
+ # And unskip the corresponding scenario in copyFile.feature and make it pass.
+ Background:
+ Given using OCS API version "1"
+ And the administrator has set the default folder for received shares to "Shares"
+ And auto-accept shares has been disabled
+ And user "Alice" has been created with default attributes and without skeleton files
+ And user "Alice" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt"
+ And user "Alice" has uploaded file with content "ownCloud test text file 1" to "/textfile1.txt"
+ And user "Alice" has created folder "/FOLDER"
+
+ Scenario Outline: copy a folder over the top of an existing folder received as a user share
+ Given using DAV path
+ And user "Brian" has been created with default attributes and without skeleton files
+ And user "Brian" has created folder "/BRIAN-Folder"
+ And user "Brian" has created folder "BRIAN-Folder/sample-folder"
+ And user "Brian" has shared folder "BRIAN-Folder" with user "Alice"
+ And user "Alice" has accepted share "/BRIAN-Folder" offered by user "Brian"
+ And user "Alice" has created folder "FOLDER/ALICE-folder"
+ When user "Alice" copies folder "/FOLDER" to "/Shares/BRIAN-Folder" using the WebDAV API
+ Then the HTTP status code should be "204"
+ # Alice now sees the content of "her" folder as folder "/Shares/BRIAN-Folder"
+ # The share that she received from Brian has "automatically" gone into the "declined" state
+ And as "Alice" folder "/FOLDER/ALICE-folder" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder/ALICE-folder" should exist
+ And user "Alice" should not have any received shares
+ And the sharing API should report to user "Alice" that these shares are in the declined state
+ | path |
+ | /Shares/BRIAN-Folder |
+ # Brian still has his original BRIAN-Folder and can see that it is shared with Alice
+ And as "Brian" folder "BRIAN-Folder" should exist
+ And as "Brian" folder "BRIAN-Folder/sample-folder" should exist
+ When user "Brian" gets all shares shared by him using the sharing API
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ And file "/Shares/BRIAN-Folder" should be included in the response
+ When user "Alice" accepts share "/BRIAN-Folder" offered by user "Brian" using the sharing API
+ Then the OCS status code should be "100"
+ And the HTTP status code should be "200"
+ # now Alice has "her" folder as "/Shares/BRIAN-Folder"
+ # and has the shared file from Brian as "/Shares/BRIAN-Folder (2)"
+ And as "Alice" folder "/Shares/BRIAN-Folder" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder/ALICE-folder" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder (2)" should exist
+ And as "Alice" folder "/Shares/BRIAN-Folder (2)/sample-folder" should exist
+ # Alice can add content to both folders
+ # Brian sees what Alice puts into "/Shares/BRIAN-Folder (2)"
+ And user "Alice" has created folder "/Shares/BRIAN-Folder/new-folder1"
+ And user "Alice" has created folder "/Shares/BRIAN-Folder (2)/new-folder2"
+ And user "Alice" has uploaded file with content "new content 1" to "/Shares/BRIAN-Folder/new-folder1/file1.txt"
+ And user "Alice" has uploaded file with content "new content 2" to "/Shares/BRIAN-Folder (2)/new-folder2/file2.txt"
+ And the content of file "/Shares/BRIAN-Folder/new-folder1/file1.txt" for user "Alice" should be "new content 1"
+ And the content of file "/Shares/BRIAN-Folder (2)/new-folder2/file2.txt" for user "Alice" should be "new content 2"
+ And the content of file "/BRIAN-Folder/new-folder2/file2.txt" for user "Brian" should be "new content 2"
+ Examples:
+ | dav_version |
+ | old |
+ | new |
From 27046d502fdafdb1e12c03a2d3af9826ec3e1a70 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Mon, 15 May 2023 16:54:24 +0545
Subject: [PATCH 101/244] Add scenario to demonstrate copying a folder onto
another folder
---
.../apiWebdavProperties1/copyFile.feature | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/tests/acceptance/features/apiWebdavProperties1/copyFile.feature b/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
index a76f09222111..51903ba7c6a9 100644
--- a/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
+++ b/tests/acceptance/features/apiWebdavProperties1/copyFile.feature
@@ -870,3 +870,19 @@ Feature: copy file
| dav_version |
| old |
| new |
+
+
+ Scenario Outline: Copying a folder with a file onto another folder
+ Given using DAV path
+ And user "Alice" has created folder "/FOLDER1"
+ And user "Alice" has created folder "/FOLDER2"
+ And user "Alice" has uploaded file with content "Folder 1 text" to "/FOLDER1/textfile1.txt"
+ And user "Alice" has uploaded file with content "Folder 2 text" to "/FOLDER2/textfile2.txt"
+ When user "Alice" copies folder "/FOLDER1" to "/FOLDER2" using the WebDAV API
+ Then the HTTP status code should be "204"
+ And as "Alice" file "/FOLDER2/textfile1.txt" should exist
+ And as "Alice" file "/FOLDER2/textfile2.txt" should not exist
+ Examples:
+ | dav_version |
+ | old |
+ | new |
From 58bb786444d6b02611df2223536806652925a099 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Tue, 16 May 2023 00:14:26 +0000
Subject: [PATCH 102/244] [tx] updated from transifex
---
settings/l10n/tr.js | 1 +
settings/l10n/tr.json | 1 +
2 files changed, 2 insertions(+)
diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js
index 07816888dcfe..8efd9f317b2c 100644
--- a/settings/l10n/tr.js
+++ b/settings/l10n/tr.js
@@ -52,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "%s e-posta adresi başarıyla değiştirildi",
"Couldn't send email address change notification mail. Please contact your administrator." : "E-posta adresi değişikliği bildirim e-postası gönderilemedi. Lütfen yöneticinize başvurun.",
"Unable to enable/disable user." : "Kullanıcıyı etkinleştirme/devre dışı bırakma başarısız.",
+ "Data too long" : "Veri çok uzun",
"Invalid mail address" : "Geçersiz posta adresi",
"Owner language" : "Sahip dili",
"Create" : "Oluştur",
diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json
index bf4cf0438b36..3342396a2a7f 100644
--- a/settings/l10n/tr.json
+++ b/settings/l10n/tr.json
@@ -50,6 +50,7 @@
"%s email address changed successfully" : "%s e-posta adresi başarıyla değiştirildi",
"Couldn't send email address change notification mail. Please contact your administrator." : "E-posta adresi değişikliği bildirim e-postası gönderilemedi. Lütfen yöneticinize başvurun.",
"Unable to enable/disable user." : "Kullanıcıyı etkinleştirme/devre dışı bırakma başarısız.",
+ "Data too long" : "Veri çok uzun",
"Invalid mail address" : "Geçersiz posta adresi",
"Owner language" : "Sahip dili",
"Create" : "Oluştur",
From f4d34e0cdabe69890005320a2cc6a5c875989ae2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 May 2023 22:57:00 +0000
Subject: [PATCH 103/244] Bump guzzlehttp/guzzle from 7.5.1 to 7.6.1
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.5.1 to 7.6.1.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/7.6/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.5.1...7.6.1)
---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
composer.lock | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/composer.lock b/composer.lock
index 196ea7823ff8..b6c3e98fc2f7 100644
--- a/composer.lock
+++ b/composer.lock
@@ -767,16 +767,16 @@
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.5.1",
+ "version": "7.6.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9"
+ "reference": "8444a2bacf1960bc6a2b62ed86b8e72e11eebe51"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b964ca597e86b752cd994f27293e9fa6b6a95ed9",
- "reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/8444a2bacf1960bc6a2b62ed86b8e72e11eebe51",
+ "reference": "8444a2bacf1960bc6a2b62ed86b8e72e11eebe51",
"shasum": ""
},
"require": {
@@ -807,9 +807,6 @@
"bamarni-bin": {
"bin-links": true,
"forward-command": false
- },
- "branch-alias": {
- "dev-master": "7.5-dev"
}
},
"autoload": {
@@ -875,7 +872,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.5.1"
+ "source": "https://github.com/guzzle/guzzle/tree/7.6.1"
},
"funding": [
{
@@ -891,7 +888,7 @@
"type": "tidelift"
}
],
- "time": "2023-04-17T16:30:08+00:00"
+ "time": "2023-05-15T20:43:01+00:00"
},
{
"name": "guzzlehttp/promises",
From 1dd3beea2fe42a1a45d29d1cf28cec23ea3f80ad Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Tue, 16 May 2023 08:58:21 +0545
Subject: [PATCH 104/244] Changelog for guzzlehttp/guzzle 7.6.1
---
changelog/unreleased/PHPdependencies20230404onward | 3 ++-
composer.lock | 13 +++++++------
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/changelog/unreleased/PHPdependencies20230404onward b/changelog/unreleased/PHPdependencies20230404onward
index 424f4d61dddd..1ea08ddc0709 100644
--- a/changelog/unreleased/PHPdependencies20230404onward
+++ b/changelog/unreleased/PHPdependencies20230404onward
@@ -1,7 +1,7 @@
Change: Update PHP dependencies
The following have been updated:
-- guzzlehttp/guzzle (7.5.0 to 7.5.1)
+- guzzlehttp/guzzle (7.5.0 to 7.6.1)
- pear/pear-core-minimal (1.10.11 to 1.10.13)
- punic/punic (3.8.0 to 3.8.1)
@@ -12,3 +12,4 @@ https://github.com/owncloud/core/pull/40724
https://github.com/owncloud/core/pull/40731
https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
+https://github.com/owncloud/core/pull/40789
diff --git a/composer.lock b/composer.lock
index b6c3e98fc2f7..d771ab5d26d1 100644
--- a/composer.lock
+++ b/composer.lock
@@ -5401,12 +5401,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
- "reference": "bc1d6711a0a8bb1f2db39755266a44bd74614c72"
+ "reference": "d1af11449398214f9664514ce705c5154ead9c38"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/bc1d6711a0a8bb1f2db39755266a44bd74614c72",
- "reference": "bc1d6711a0a8bb1f2db39755266a44bd74614c72",
+ "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/d1af11449398214f9664514ce705c5154ead9c38",
+ "reference": "d1af11449398214f9664514ce705c5154ead9c38",
"shasum": ""
},
"conflict": {
@@ -5634,7 +5634,7 @@
"laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75",
"laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10",
"latte/latte": "<2.10.8",
- "lavalite/cms": "<=5.8",
+ "lavalite/cms": "<=9",
"lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5",
"league/commonmark": "<0.18.3",
"league/flysystem": "<1.1.4|>=2,<2.1.1",
@@ -5732,6 +5732,7 @@
"phpwhois/phpwhois": "<=4.2.5",
"phpxmlrpc/extras": "<0.6.1",
"phpxmlrpc/phpxmlrpc": "<4.9.2",
+ "pimcore/customer-management-framework-bundle": "<3.3.9",
"pimcore/data-hub": "<1.2.4",
"pimcore/perspective-editor": "<1.5.1",
"pimcore/pimcore": "<10.5.21",
@@ -5918,7 +5919,7 @@
"wp-graphql/wp-graphql": "<0.3.5",
"wpanel/wpanel4-cms": "<=4.3.1",
"wpcloud/wp-stateless": "<3.2",
- "wwbn/avideo": "<12.4",
+ "wwbn/avideo": "<=12.4",
"xataface/xataface": "<3",
"xpressengine/xpressengine": "<3.0.15",
"yeswiki/yeswiki": "<4.1",
@@ -6000,7 +6001,7 @@
"type": "tidelift"
}
],
- "time": "2023-05-10T22:04:31+00:00"
+ "time": "2023-05-12T21:03:58+00:00"
},
{
"name": "sebastian/cli-parser",
From 9de3e11563aa1897f821d0e7f65f2395a5e088bd Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Tue, 16 May 2023 06:37:14 +0000
Subject: [PATCH 105/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 4 ++--
CHANGELOG.md | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index 5841996c5555..c94ad372c434 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -29,11 +29,11 @@ Details
-
Change - Update PHP dependencies: #40724
- The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.5.1) -
+
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
pear/pear-core-minimal (1.10.11 to 1.10.13) - punic/punic (3.8.0 to 3.8.1)The following have been updated in apps/files_external/3rdparty: - google/apiclient
(2.13.1 to 2.13.2)
- https://github.com/owncloud/core/pull/40724
https://github.com/owncloud/core/pull/40731
https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
+ https://github.com/owncloud/core/pull/40724
https://github.com/owncloud/core/pull/40731
https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
https://github.com/owncloud/core/pull/40789
-
Change - Fix name length check on federated shares: #40726
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 87514a3cf77c..b6f31f3c5882 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -31,7 +31,7 @@ Details
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
- The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.5.1) -
+ The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
pear/pear-core-minimal (1.10.11 to 1.10.13) - punic/punic (3.8.0 to 3.8.1)
The following have been updated in apps/files_external/3rdparty: - google/apiclient
@@ -41,6 +41,7 @@ Details
https://github.com/owncloud/core/pull/40731
https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
+ https://github.com/owncloud/core/pull/40789
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
From e956b88892997930bb334a639f283a79255e526d Mon Sep 17 00:00:00 2001
From: Pasquale Tripodi
Date: Tue, 16 May 2023 16:56:39 +0200
Subject: [PATCH 106/244] add loginInOwnCloud to Log::
---
lib/private/Log.php | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/private/Log.php b/lib/private/Log.php
index a1fba6eb0c04..199da9bb546c 100644
--- a/lib/private/Log.php
+++ b/lib/private/Log.php
@@ -81,6 +81,7 @@ class Log implements ILogger {
'validateUserPass',
'loginWithPassword',
'createSessionToken',
+ 'loginInOwnCloud',
// TokenProvider
'getToken',
From 981e3786bbb0eb4e5f6b9e487135c8f45359ff3c Mon Sep 17 00:00:00 2001
From: Pasquale Tripodi
Date: Tue, 16 May 2023 17:06:30 +0200
Subject: [PATCH 107/244] add changelog
---
changelog/unreleased/40792 | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 changelog/unreleased/40792
diff --git a/changelog/unreleased/40792 b/changelog/unreleased/40792
new file mode 100644
index 000000000000..6c597fa18ea2
--- /dev/null
+++ b/changelog/unreleased/40792
@@ -0,0 +1,3 @@
+Bugfix: Filter sensitive data in log for Session::loginInOwnCloud
+
+https://github.com/owncloud/core/pull/40792
From 91fee5a8affe632bf78fb5907084da63f30b01ee Mon Sep 17 00:00:00 2001
From: Pasquale Tripodi
Date: Tue, 16 May 2023 17:14:04 +0200
Subject: [PATCH 108/244] fix style
---
lib/private/Log.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/private/Log.php b/lib/private/Log.php
index 199da9bb546c..6820bbf0435d 100644
--- a/lib/private/Log.php
+++ b/lib/private/Log.php
@@ -81,7 +81,7 @@ class Log implements ILogger {
'validateUserPass',
'loginWithPassword',
'createSessionToken',
- 'loginInOwnCloud',
+ 'loginInOwnCloud',
// TokenProvider
'getToken',
From 198b338fc17dd27a56c0e54b52d5a72367867cd4 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Wed, 17 May 2023 05:06:33 +0000
Subject: [PATCH 109/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 5 +++++
CHANGELOG.md | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index c94ad372c434..d7d459d5524b 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -7,6 +7,7 @@ Changelog for ownCloud Core [unreleased] (U
Summary
+ -
+
Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: #40792
+ https://github.com/owncloud/core/pull/40792
+
-
Change - Update PHP dependencies: #40724
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b6f31f3c5882..d0b84d5fa2b9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ Summary
-------
* Bugfix - Align to new accounts.google.com authorization URI: [#40783](https://github.com/owncloud/core/pull/40783)
+* Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: [#40792](https://github.com/owncloud/core/pull/40792)
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
* Change - Validate email and string user input in UserController: [#40769](https://github.com/owncloud/core/pull/40769)
@@ -29,6 +30,10 @@ Details
https://github.com/owncloud/core/issues/40777
https://github.com/owncloud/core/pull/40783
+* Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: [#40792](https://github.com/owncloud/core/pull/40792)
+
+ https://github.com/owncloud/core/pull/40792
+
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
From ce591456a0e73a5efb94966eae61d59e06b980ae Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Wed, 17 May 2023 14:07:07 +0545
Subject: [PATCH 110/244] Always return an int for Symfony Command execute
method
---
apps/dav/lib/Command/CleanupChunks.php | 2 +-
apps/dav/lib/Command/CreateAddressBook.php | 2 +-
apps/dav/lib/Command/CreateCalendar.php | 3 +--
apps/dav/lib/Command/SyncBirthdayCalendar.php | 2 +-
apps/dav/lib/Command/SyncSystemAddressBook.php | 2 +-
.../lib/Command/PollIncomingShares.php | 5 +++--
.../lib/Command/SyncFederationAddressBooks.php | 2 +-
apps/files/lib/Command/CheckCache.php | 2 +-
apps/files/lib/Command/DeleteOrphanedFiles.php | 2 +-
apps/files/lib/Command/Scan.php | 2 +-
apps/files/lib/Command/TransferOwnership.php | 2 +-
.../Command/TroubleshootTransferOwnership.php | 2 +-
apps/files/lib/Command/VerifyChecksums.php | 2 +-
apps/files_external/lib/Command/Applicable.php | 2 +-
apps/files_external/lib/Command/Backends.php | 2 +-
apps/files_external/lib/Command/Config.php | 2 +-
apps/files_external/lib/Command/Create.php | 2 +-
apps/files_external/lib/Command/Delete.php | 2 +-
apps/files_external/lib/Command/Export.php | 2 +-
apps/files_external/lib/Command/Import.php | 2 +-
apps/files_external/lib/Command/ListCommand.php | 2 +-
apps/files_external/lib/Command/Verify.php | 2 +-
.../lib/Command/CleanupRemoteStorages.php | 2 +-
apps/files_trashbin/lib/Command/CleanUp.php | 2 +-
apps/files_trashbin/lib/Command/ExpireTrash.php | 2 +-
apps/files_versions/lib/Command/CleanUp.php | 2 +-
.../lib/Command/ExpireVersions.php | 2 +-
core/Command/App/CheckCode.php | 2 +-
core/Command/App/Disable.php | 2 +-
core/Command/App/Enable.php | 2 +-
core/Command/App/GetPath.php | 4 ++--
core/Command/App/ListApps.php | 2 +-
core/Command/Background/Base.php | 17 +++++++++--------
core/Command/Background/Queue/Delete.php | 2 +-
core/Command/Background/Queue/Execute.php | 2 +-
core/Command/Background/Queue/Status.php | 5 +++--
core/Command/Check.php | 2 +-
core/Command/Config/App/DeleteConfig.php | 2 +-
core/Command/Config/App/GetConfig.php | 4 ++--
core/Command/Config/App/SetConfig.php | 2 +-
core/Command/Config/Import.php | 2 +-
core/Command/Config/ListConfigs.php | 2 +-
core/Command/Config/System/DeleteConfig.php | 2 +-
core/Command/Config/System/GetConfig.php | 4 ++--
core/Command/Config/System/SetConfig.php | 2 +-
core/Command/Db/ConvertMysqlToMB4.php | 2 +-
core/Command/Db/ConvertType.php | 7 ++++---
core/Command/Db/Migrations/ExecuteCommand.php | 2 +-
core/Command/Db/Migrations/GenerateCommand.php | 2 +-
core/Command/Db/Migrations/MigrateCommand.php | 2 +-
core/Command/Db/Migrations/StatusCommand.php | 2 +-
core/Command/Db/RestoreDefaultRowFormat.php | 2 +-
.../Command/Encryption/ChangeKeyStorageRoot.php | 2 +-
core/Command/Encryption/DecryptAll.php | 2 +-
core/Command/Encryption/Disable.php | 2 +-
core/Command/Encryption/Enable.php | 2 +-
core/Command/Encryption/EncryptAll.php | 2 +-
core/Command/Encryption/ListModules.php | 2 +-
core/Command/Encryption/SetDefaultModule.php | 2 +-
core/Command/Encryption/ShowKeyStorageRoot.php | 2 +-
core/Command/Encryption/Status.php | 2 +-
core/Command/Group/Add.php | 2 +-
core/Command/Group/AddMember.php | 2 +-
core/Command/Group/Delete.php | 2 +-
core/Command/Group/ListGroupMembers.php | 2 +-
core/Command/Group/ListGroups.php | 2 +-
core/Command/Group/RemoveMember.php | 2 +-
core/Command/Integrity/CheckApp.php | 2 +-
core/Command/Integrity/CheckCore.php | 2 +-
core/Command/Integrity/SignApp.php | 8 ++++----
core/Command/Integrity/SignCore.php | 8 ++++----
core/Command/L10n/CreateJs.php | 2 +-
core/Command/Log/Manage.php | 2 +-
core/Command/Log/OwnCloud.php | 2 +-
core/Command/Maintenance/DataFingerprint.php | 2 +-
core/Command/Maintenance/Install.php | 2 +-
core/Command/Maintenance/Mimetype/UpdateDB.php | 2 +-
core/Command/Maintenance/Mimetype/UpdateJS.php | 2 +-
core/Command/Maintenance/Mode.php | 2 +-
core/Command/Maintenance/Repair.php | 2 +-
core/Command/Maintenance/SingleUser.php | 2 +-
core/Command/Maintenance/UpdateHtaccess.php | 2 +-
core/Command/Previews/Cleanup.php | 2 +-
core/Command/Security/CreateSignKey.php | 2 +-
core/Command/Security/ImportCertificate.php | 2 +-
core/Command/Security/ListCertificates.php | 2 +-
core/Command/Security/ListRoutes.php | 2 +-
core/Command/Security/RemoveCertificate.php | 2 +-
core/Command/Status.php | 2 +-
core/Command/System/Cron.php | 2 +-
core/Command/TwoFactorAuth/Disable.php | 2 +-
core/Command/TwoFactorAuth/Enable.php | 2 +-
core/Command/Upgrade.php | 4 +++-
core/Command/User/Add.php | 2 +-
core/Command/User/Delete.php | 2 +-
core/Command/User/Disable.php | 2 +-
core/Command/User/Enable.php | 2 +-
core/Command/User/HomeListDirs.php | 2 +-
core/Command/User/HomeListUsers.php | 2 +-
core/Command/User/Inactive.php | 2 +-
core/Command/User/LastSeen.php | 2 +-
core/Command/User/ListUserGroups.php | 2 +-
core/Command/User/ListUsers.php | 2 +-
core/Command/User/Modify.php | 2 +-
core/Command/User/MoveHome.php | 2 +-
core/Command/User/Report.php | 2 +-
core/Command/User/ResetPassword.php | 2 +-
core/Command/User/Setting.php | 2 +-
108 files changed, 134 insertions(+), 129 deletions(-)
diff --git a/apps/dav/lib/Command/CleanupChunks.php b/apps/dav/lib/Command/CleanupChunks.php
index 4120b2ff413e..1ae72b87b6a3 100644
--- a/apps/dav/lib/Command/CleanupChunks.php
+++ b/apps/dav/lib/Command/CleanupChunks.php
@@ -65,7 +65,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$checkUploadExistsLocal = $input->getOption('local') === true;
$d = $input->getArgument('minimum-age-in-days');
$d = \max(2, \min($d, 100));
diff --git a/apps/dav/lib/Command/CreateAddressBook.php b/apps/dav/lib/Command/CreateAddressBook.php
index 1cac5ccc3dbf..a9bd3a83f72f 100644
--- a/apps/dav/lib/Command/CreateAddressBook.php
+++ b/apps/dav/lib/Command/CreateAddressBook.php
@@ -64,7 +64,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $input->getArgument('user');
if (!$this->userManager->userExists($user)) {
throw new \InvalidArgumentException("User <$user> in unknown.");
diff --git a/apps/dav/lib/Command/CreateCalendar.php b/apps/dav/lib/Command/CreateCalendar.php
index db10bfd853c6..0becd3a3a3bf 100644
--- a/apps/dav/lib/Command/CreateCalendar.php
+++ b/apps/dav/lib/Command/CreateCalendar.php
@@ -70,7 +70,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $input->getArgument('user');
if (!$this->userManager->userExists($user)) {
throw new \InvalidArgumentException("User <$user> in unknown.");
@@ -82,7 +82,6 @@ protected function execute(InputInterface $input, OutputInterface $output) {
$groupPrincipalBackend = new GroupPrincipalBackend(
$this->groupManager
);
- $config = \OC::$server->getConfig();
$random = \OC::$server->getSecureRandom();
$name = $input->getArgument('name');
diff --git a/apps/dav/lib/Command/SyncBirthdayCalendar.php b/apps/dav/lib/Command/SyncBirthdayCalendar.php
index 8e863d5e18cf..aac0c0f1013e 100644
--- a/apps/dav/lib/Command/SyncBirthdayCalendar.php
+++ b/apps/dav/lib/Command/SyncBirthdayCalendar.php
@@ -64,7 +64,7 @@ protected function configure() {
*
* @return int 0 if everything went fine, or an exit code
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $input->getArgument('user');
if ($user !== null) {
if (!$this->userManager->userExists($user)) {
diff --git a/apps/dav/lib/Command/SyncSystemAddressBook.php b/apps/dav/lib/Command/SyncSystemAddressBook.php
index 6e51ae431041..8ebf40efbc61 100644
--- a/apps/dav/lib/Command/SyncSystemAddressBook.php
+++ b/apps/dav/lib/Command/SyncSystemAddressBook.php
@@ -50,7 +50,7 @@ protected function configure() {
*
* @return int 0 if everything went fine, or an exit code
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$output->writeln('Syncing users ...');
$progress = new ProgressBar($output);
$progress->start();
diff --git a/apps/federatedfilesharing/lib/Command/PollIncomingShares.php b/apps/federatedfilesharing/lib/Command/PollIncomingShares.php
index 07b45efb4f23..482375399559 100644
--- a/apps/federatedfilesharing/lib/Command/PollIncomingShares.php
+++ b/apps/federatedfilesharing/lib/Command/PollIncomingShares.php
@@ -79,9 +79,9 @@ protected function configure() {
* @param InputInterface $input
* @param OutputInterface $output
*
- * @return int|null|void
+ * @return int
*/
- public function execute(InputInterface $input, OutputInterface $output) {
+ public function execute(InputInterface $input, OutputInterface $output): int {
$output->writeln("WARNING: incoming-shares:poll has been deprecated and replaced by periodic external shares cronjob. Please check Federated Cloud Sharing settings and documentation.");
if ($this->externalMountProvider === null) {
$output->writeln("Polling is not possible when files_sharing app is disabled. Please enable it with 'occ app:enable files_sharing'");
@@ -134,6 +134,7 @@ public function execute(InputInterface $input, OutputInterface $output) {
}
}
$cursor->closeCursor();
+ return 0;
}
/**
diff --git a/apps/federation/lib/Command/SyncFederationAddressBooks.php b/apps/federation/lib/Command/SyncFederationAddressBooks.php
index 36c7db931954..138f2d2ee682 100644
--- a/apps/federation/lib/Command/SyncFederationAddressBooks.php
+++ b/apps/federation/lib/Command/SyncFederationAddressBooks.php
@@ -51,7 +51,7 @@ protected function configure() {
* @param OutputInterface $output
* @return int
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$progress = new ProgressBar($output);
$progress->start();
$this->syncService->syncThemAll(function ($url, $ex) use ($progress, $output) {
diff --git a/apps/files/lib/Command/CheckCache.php b/apps/files/lib/Command/CheckCache.php
index dd6ccb40ebfb..e744407419cc 100644
--- a/apps/files/lib/Command/CheckCache.php
+++ b/apps/files/lib/Command/CheckCache.php
@@ -64,7 +64,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$uid = $input->getArgument('uid');
$userFolder = $this->rootFolder->getUserFolder($uid); // might throw a NoUserException
diff --git a/apps/files/lib/Command/DeleteOrphanedFiles.php b/apps/files/lib/Command/DeleteOrphanedFiles.php
index 0faadd27a502..39e784486606 100644
--- a/apps/files/lib/Command/DeleteOrphanedFiles.php
+++ b/apps/files/lib/Command/DeleteOrphanedFiles.php
@@ -49,7 +49,7 @@ protected function configure() {
->setDescription('Deletes orphaned file cache entries.');
}
- public function execute(InputInterface $input, OutputInterface $output) {
+ public function execute(InputInterface $input, OutputInterface $output): int {
$deletedEntries = 0;
$query = $this->connection->getQueryBuilder();
diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php
index a46f030a4630..1af567a9762c 100644
--- a/apps/files/lib/Command/Scan.php
+++ b/apps/files/lib/Command/Scan.php
@@ -279,7 +279,7 @@ protected function getAllUsersFromGroup($group) {
}
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$inputPath = $input->getOption('path');
$groups = $input->getOption('groups') ? \explode(',', $input->getOption('groups')) : [];
$groups = \array_unique(\array_merge($groups, $input->getOption('group')));
diff --git a/apps/files/lib/Command/TransferOwnership.php b/apps/files/lib/Command/TransferOwnership.php
index c1d3d89e1e67..a9ff6c54a9ad 100644
--- a/apps/files/lib/Command/TransferOwnership.php
+++ b/apps/files/lib/Command/TransferOwnership.php
@@ -139,7 +139,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$sourceUserObject = $this->userManager->get($input->getArgument('source-user'));
$destinationUserObject = $this->userManager->get($input->getArgument('destination-user'));
if ($sourceUserObject === null) {
diff --git a/apps/files/lib/Command/TroubleshootTransferOwnership.php b/apps/files/lib/Command/TroubleshootTransferOwnership.php
index 72bc227578bd..94fb011f945e 100644
--- a/apps/files/lib/Command/TroubleshootTransferOwnership.php
+++ b/apps/files/lib/Command/TroubleshootTransferOwnership.php
@@ -80,7 +80,7 @@ protected function configure() {
);
}
- public function execute(InputInterface $input, OutputInterface $output) {
+ public function execute(InputInterface $input, OutputInterface $output): int {
$type = $input->getArgument('type');
$fix = $input->getOption('fix');
$scopeUid = $input->getOption('uid');
diff --git a/apps/files/lib/Command/VerifyChecksums.php b/apps/files/lib/Command/VerifyChecksums.php
index 476b43926006..c2d9a7d9c161 100644
--- a/apps/files/lib/Command/VerifyChecksums.php
+++ b/apps/files/lib/Command/VerifyChecksums.php
@@ -88,7 +88,7 @@ protected function configure() {
* @throws \OCP\Files\InvalidPathException
* @throws \OCP\Files\StorageNotAvailableException
*/
- public function execute(InputInterface $input, OutputInterface $output) {
+ public function execute(InputInterface $input, OutputInterface $output): int {
$pathOption = $input->getOption('path');
$userName = $input->getOption('user');
diff --git a/apps/files_external/lib/Command/Applicable.php b/apps/files_external/lib/Command/Applicable.php
index 86542701ed37..70e923666f13 100644
--- a/apps/files_external/lib/Command/Applicable.php
+++ b/apps/files_external/lib/Command/Applicable.php
@@ -97,7 +97,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$mountId = $input->getArgument('mount_id');
try {
$mount = $this->globalService->getStorage($mountId);
diff --git a/apps/files_external/lib/Command/Backends.php b/apps/files_external/lib/Command/Backends.php
index f53d021108b0..c2fc1dd413f6 100644
--- a/apps/files_external/lib/Command/Backends.php
+++ b/apps/files_external/lib/Command/Backends.php
@@ -59,7 +59,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$authBackends = $this->backendService->getAuthMechanisms();
$storageBackends = $this->backendService->getBackends();
diff --git a/apps/files_external/lib/Command/Config.php b/apps/files_external/lib/Command/Config.php
index b27b9506c9ba..a253439d303a 100644
--- a/apps/files_external/lib/Command/Config.php
+++ b/apps/files_external/lib/Command/Config.php
@@ -61,7 +61,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$mountId = $input->getArgument('mount_id');
$key = $input->getArgument('key');
try {
diff --git a/apps/files_external/lib/Command/Create.php b/apps/files_external/lib/Command/Create.php
index e13c4a08efd4..ea93edd4ec11 100644
--- a/apps/files_external/lib/Command/Create.php
+++ b/apps/files_external/lib/Command/Create.php
@@ -117,7 +117,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $input->getOption('user');
$mountPoint = $input->getArgument('mount_point');
$storageIdentifier = $input->getArgument('storage_backend');
diff --git a/apps/files_external/lib/Command/Delete.php b/apps/files_external/lib/Command/Delete.php
index 9d6f0f01264a..1ae61d3ac4a8 100644
--- a/apps/files_external/lib/Command/Delete.php
+++ b/apps/files_external/lib/Command/Delete.php
@@ -81,7 +81,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$mountId = $input->getArgument('mount_id');
try {
$mount = $this->globalService->getStorage($mountId);
diff --git a/apps/files_external/lib/Command/Export.php b/apps/files_external/lib/Command/Export.php
index 88e17a77a510..a9b75b1efc9c 100644
--- a/apps/files_external/lib/Command/Export.php
+++ b/apps/files_external/lib/Command/Export.php
@@ -44,7 +44,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$listCommand = new ListCommand($this->globalService, $this->userService, $this->userSession, $this->userManager);
$listInput = new ArrayInput([], $listCommand->getDefinition());
$listInput->setArgument('user_id', $input->getArgument('user_id'));
diff --git a/apps/files_external/lib/Command/Import.php b/apps/files_external/lib/Command/Import.php
index 5dcb85410943..de7f8968f937 100644
--- a/apps/files_external/lib/Command/Import.php
+++ b/apps/files_external/lib/Command/Import.php
@@ -99,7 +99,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $input->getOption('user');
$path = $input->getArgument('path');
if ($path === '-') {
diff --git a/apps/files_external/lib/Command/ListCommand.php b/apps/files_external/lib/Command/ListCommand.php
index 73897a394223..d3ead5ebcc6e 100644
--- a/apps/files_external/lib/Command/ListCommand.php
+++ b/apps/files_external/lib/Command/ListCommand.php
@@ -111,7 +111,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if ($input->getOption('all')) {
/** @var $mounts IStorageConfig[] */
$mounts = $this->globalService->getStorageForAllUsers();
diff --git a/apps/files_external/lib/Command/Verify.php b/apps/files_external/lib/Command/Verify.php
index e720a2b64ecc..1013016a1348 100644
--- a/apps/files_external/lib/Command/Verify.php
+++ b/apps/files_external/lib/Command/Verify.php
@@ -63,7 +63,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$mountId = $input->getArgument('mount_id');
$configInput = $input->getOption('config');
diff --git a/apps/files_sharing/lib/Command/CleanupRemoteStorages.php b/apps/files_sharing/lib/Command/CleanupRemoteStorages.php
index 6f0780216162..7e652fecedc7 100644
--- a/apps/files_sharing/lib/Command/CleanupRemoteStorages.php
+++ b/apps/files_sharing/lib/Command/CleanupRemoteStorages.php
@@ -56,7 +56,7 @@ protected function configure() {
);
}
- public function execute(InputInterface $input, OutputInterface $output) {
+ public function execute(InputInterface $input, OutputInterface $output): int {
$remoteStorages = $this->getRemoteStorages();
$output->writeln(\count($remoteStorages) . " remote storage(s) need(s) to be checked");
diff --git a/apps/files_trashbin/lib/Command/CleanUp.php b/apps/files_trashbin/lib/Command/CleanUp.php
index 54bb48079e85..c7ba7fe2fb04 100644
--- a/apps/files_trashbin/lib/Command/CleanUp.php
+++ b/apps/files_trashbin/lib/Command/CleanUp.php
@@ -64,7 +64,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$users = $input->getArgument('user_id');
if (!empty($users)) {
foreach ($users as $user) {
diff --git a/apps/files_trashbin/lib/Command/ExpireTrash.php b/apps/files_trashbin/lib/Command/ExpireTrash.php
index 7a58fd98a1ea..9e30990b350a 100644
--- a/apps/files_trashbin/lib/Command/ExpireTrash.php
+++ b/apps/files_trashbin/lib/Command/ExpireTrash.php
@@ -67,7 +67,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$retentionEnabled = $this->trashExpiryManager->retentionEnabled();
if (!$retentionEnabled) {
$output->writeln("Auto expiration is configured - expiration will be handled automatically.");
diff --git a/apps/files_versions/lib/Command/CleanUp.php b/apps/files_versions/lib/Command/CleanUp.php
index 6e3464b1d94c..8ccf10433751 100644
--- a/apps/files_versions/lib/Command/CleanUp.php
+++ b/apps/files_versions/lib/Command/CleanUp.php
@@ -57,7 +57,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$users = $input->getArgument('user_id');
if (!empty($users)) {
foreach ($users as $user) {
diff --git a/apps/files_versions/lib/Command/ExpireVersions.php b/apps/files_versions/lib/Command/ExpireVersions.php
index a8ab34eddcae..21228d50e710 100644
--- a/apps/files_versions/lib/Command/ExpireVersions.php
+++ b/apps/files_versions/lib/Command/ExpireVersions.php
@@ -68,7 +68,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$maxAge = $this->expiration->getMaxAgeAsTimestamp();
if (!$maxAge) {
$output->writeln("Auto expiration is configured - expiration will be handled automatically.");
diff --git a/core/Command/App/CheckCode.php b/core/Command/App/CheckCode.php
index a2c28452db5a..50eb4f6feffc 100644
--- a/core/Command/App/CheckCode.php
+++ b/core/Command/App/CheckCode.php
@@ -78,7 +78,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$appId = $input->getArgument('app-id');
$checkList = new EmptyCheck();
diff --git a/core/Command/App/Disable.php b/core/Command/App/Disable.php
index dc885f8b1fc5..fbb942ac5b6a 100644
--- a/core/Command/App/Disable.php
+++ b/core/Command/App/Disable.php
@@ -53,7 +53,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$appId = $input->getArgument('app-id');
if ($this->manager->isInstalled($appId)) {
try {
diff --git a/core/Command/App/Enable.php b/core/Command/App/Enable.php
index 144babf4daee..e908c8d008ea 100644
--- a/core/Command/App/Enable.php
+++ b/core/Command/App/Enable.php
@@ -61,7 +61,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$appId = $input->getArgument('app-id');
if (!\OC_App::getAppPath($appId)) {
diff --git a/core/Command/App/GetPath.php b/core/Command/App/GetPath.php
index 9eea208018bc..e92d00318a20 100644
--- a/core/Command/App/GetPath.php
+++ b/core/Command/App/GetPath.php
@@ -46,9 +46,9 @@ protected function configure() {
*
* @param InputInterface $input An InputInterface instance
* @param OutputInterface $output An OutputInterface instance
- * @return null|int null or 0 if everything went fine, or an error code
+ * @return int 0 if everything went fine, or an error code
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$appName = $input->getArgument('app');
$path = \OC_App::getAppPath($appName);
if ($path !== false) {
diff --git a/core/Command/App/ListApps.php b/core/Command/App/ListApps.php
index eb6663e07280..34a414c2f1fe 100644
--- a/core/Command/App/ListApps.php
+++ b/core/Command/App/ListApps.php
@@ -81,7 +81,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$appNameSubString = $input->getArgument('search-pattern');
$minimalView = $input->getOption('minimal');
diff --git a/core/Command/Background/Base.php b/core/Command/Background/Base.php
index 825ba2ebdff4..2e67be36c259 100644
--- a/core/Command/Background/Base.php
+++ b/core/Command/Background/Base.php
@@ -60,14 +60,15 @@ protected function configure() {
}
/**
- * Executing this command will set the background job mode for owncloud.
- * The mode to set is specified by the concrete sub class by implementing the
- * getMode() function.
- *
- * @param InputInterface $input
- * @param OutputInterface $output
- */
- protected function execute(InputInterface $input, OutputInterface $output) {
+ * Executing this command will set the background job mode for owncloud.
+ * The mode to set is specified by the concrete subclass by implementing the
+ * getMode() function.
+ *
+ * @param InputInterface $input
+ * @param OutputInterface $output
+ * @return int
+ */
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$mode = $this->getMode();
$this->config->setAppValue('core', 'backgroundjobs_mode', $mode);
$output->writeln("Set mode for background jobs to '$mode'");
diff --git a/core/Command/Background/Queue/Delete.php b/core/Command/Background/Queue/Delete.php
index b4800f4a0532..988c9b36b5c1 100644
--- a/core/Command/Background/Queue/Delete.php
+++ b/core/Command/Background/Queue/Delete.php
@@ -48,7 +48,7 @@ protected function configure() {
* @param OutputInterface $output
* @return int
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$id = $input->getArgument('Job ID');
$job = $this->jobList->getById($id);
diff --git a/core/Command/Background/Queue/Execute.php b/core/Command/Background/Queue/Execute.php
index 62b8fb9a10f2..72e0c3ec8c94 100644
--- a/core/Command/Background/Queue/Execute.php
+++ b/core/Command/Background/Queue/Execute.php
@@ -64,7 +64,7 @@ protected function configure() {
* @param InputInterface $input
* @param OutputInterface $output
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if (!$input->getOption('accept-warning')) {
$helper = new QuestionHelper();
$q = <<setHeaders(['Job ID', 'Job', 'Job Arguments', 'Last Run', 'Last Checked', 'Reserved At', 'Execution Duration (s)']);
$this->jobList->listJobs(function (IJob $job) use ($t) {
@@ -70,5 +70,6 @@ protected function execute(InputInterface $input, OutputInterface $output) {
]);
});
$t->render();
+ return 0;
}
}
diff --git a/core/Command/Check.php b/core/Command/Check.php
index 73f6e2541d44..3f77ff7135be 100644
--- a/core/Command/Check.php
+++ b/core/Command/Check.php
@@ -46,7 +46,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$errors = \OC_Util::checkServer($this->config);
if (!empty($errors)) {
$errors = \array_map(function ($item) {
diff --git a/core/Command/Config/App/DeleteConfig.php b/core/Command/Config/App/DeleteConfig.php
index 0547e7eb71cc..6d7690edb480 100644
--- a/core/Command/Config/App/DeleteConfig.php
+++ b/core/Command/Config/App/DeleteConfig.php
@@ -65,7 +65,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$appName = $input->getArgument('app');
$configName = $input->getArgument('name');
diff --git a/core/Command/Config/App/GetConfig.php b/core/Command/Config/App/GetConfig.php
index 390af2078274..50f168f5d651 100644
--- a/core/Command/Config/App/GetConfig.php
+++ b/core/Command/Config/App/GetConfig.php
@@ -70,9 +70,9 @@ protected function configure() {
*
* @param InputInterface $input An InputInterface instance
* @param OutputInterface $output An OutputInterface instance
- * @return null|int null or 0 if everything went fine, or an error code
+ * @return int 0 if everything went fine, or an error code
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$appName = $input->getArgument('app');
$configName = $input->getArgument('name');
$defaultValue = $input->getOption('default-value');
diff --git a/core/Command/Config/App/SetConfig.php b/core/Command/Config/App/SetConfig.php
index c17361f15d86..4ab1f171ef14 100644
--- a/core/Command/Config/App/SetConfig.php
+++ b/core/Command/Config/App/SetConfig.php
@@ -71,7 +71,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$appName = $input->getArgument('app');
$configName = $input->getArgument('name');
diff --git a/core/Command/Config/Import.php b/core/Command/Config/Import.php
index 4bc5a185b645..2add77156e99 100644
--- a/core/Command/Config/Import.php
+++ b/core/Command/Config/Import.php
@@ -53,7 +53,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$importFile = $input->getArgument('file');
if ($importFile !== null) {
$content = $this->getArrayFromFile($importFile);
diff --git a/core/Command/Config/ListConfigs.php b/core/Command/Config/ListConfigs.php
index 68275ab5b606..c1632ce2f865 100644
--- a/core/Command/Config/ListConfigs.php
+++ b/core/Command/Config/ListConfigs.php
@@ -69,7 +69,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$app = $input->getArgument('app');
$noSensitiveValues = !$input->getOption('private');
diff --git a/core/Command/Config/System/DeleteConfig.php b/core/Command/Config/System/DeleteConfig.php
index ff0a41d0367a..baee001a7213 100644
--- a/core/Command/Config/System/DeleteConfig.php
+++ b/core/Command/Config/System/DeleteConfig.php
@@ -60,7 +60,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$configNames = $input->getArgument('name');
$configName = $configNames[0];
diff --git a/core/Command/Config/System/GetConfig.php b/core/Command/Config/System/GetConfig.php
index 27d0ccd1d204..62b05354668d 100644
--- a/core/Command/Config/System/GetConfig.php
+++ b/core/Command/Config/System/GetConfig.php
@@ -65,9 +65,9 @@ protected function configure() {
*
* @param InputInterface $input An InputInterface instance
* @param OutputInterface $output An OutputInterface instance
- * @return null|int null or 0 if everything went fine, or an error code
+ * @return int 0 if everything went fine, or an error code
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$configNames = $input->getArgument('name');
$configName = \array_shift($configNames);
$defaultValue = $input->getOption('default-value');
diff --git a/core/Command/Config/System/SetConfig.php b/core/Command/Config/System/SetConfig.php
index 92d6210c6ac7..9f44fd36cd2a 100644
--- a/core/Command/Config/System/SetConfig.php
+++ b/core/Command/Config/System/SetConfig.php
@@ -74,7 +74,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$configNames = $input->getArgument('name');
$configName = $configNames[0];
$configValue = $this->castValue($input->getOption('value'), $input->getOption('type'));
diff --git a/core/Command/Db/ConvertMysqlToMB4.php b/core/Command/Db/ConvertMysqlToMB4.php
index e8d7a863dbd8..37772f24589b 100644
--- a/core/Command/Db/ConvertMysqlToMB4.php
+++ b/core/Command/Db/ConvertMysqlToMB4.php
@@ -59,7 +59,7 @@ protected function configure() {
->setDescription('Convert charset of MySQL/MariaDB to use utf8mb4.');
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if (!$this->connection->getDatabasePlatform() instanceof MySqlPlatform) {
$output->writeln("This command is only valid for MySQL/MariaDB databases.");
return 1;
diff --git a/core/Command/Db/ConvertType.php b/core/Command/Db/ConvertType.php
index 01741fae147a..b51971858291 100644
--- a/core/Command/Db/ConvertType.php
+++ b/core/Command/Db/ConvertType.php
@@ -211,10 +211,10 @@ protected function readPassword(InputInterface $input, OutputInterface $output)
/**
* @param InputInterface $input
* @param OutputInterface $output
- * @return int|null|void
+ * @return int
* @throws \Exception
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$output->writeln('This feature is currently experimental.');
$this->targetType = $this->connectionFactory->normalizeType($input->getArgument('type'));
$this->targetHostname = $input->getArgument('hostname');
@@ -252,11 +252,12 @@ protected function execute(InputInterface $input, OutputInterface $output) {
'@phan-var \Symfony\Component\Console\Helper\QuestionHelper $dialog';
$continue = $dialog->ask($input, $output, new Question('Continue with the conversion (y/n)? [n] ', false));
if ($continue !== 'y') {
- return;
+ return 0;
}
}
$intersectingTables = \array_intersect($toTables, $fromTables);
$this->convertDB($fromDB, $toDB, $intersectingTables, $input, $output);
+ return 0;
}
/**
diff --git a/core/Command/Db/Migrations/ExecuteCommand.php b/core/Command/Db/Migrations/ExecuteCommand.php
index 22b9d4870ff8..dc7e62fe1515 100644
--- a/core/Command/Db/Migrations/ExecuteCommand.php
+++ b/core/Command/Db/Migrations/ExecuteCommand.php
@@ -54,7 +54,7 @@ protected function configure() {
parent::configure();
}
- public function execute(InputInterface $input, OutputInterface $output) {
+ public function execute(InputInterface $input, OutputInterface $output): int {
$appName = $input->getArgument('app');
$ms = new MigrationService($appName, $this->connection, new ConsoleOutput($output));
$version = $input->getArgument('version');
diff --git a/core/Command/Db/Migrations/GenerateCommand.php b/core/Command/Db/Migrations/GenerateCommand.php
index 26a5dd94d120..543043cf570b 100644
--- a/core/Command/Db/Migrations/GenerateCommand.php
+++ b/core/Command/Db/Migrations/GenerateCommand.php
@@ -109,7 +109,7 @@ protected function configure() {
parent::configure();
}
- public function execute(InputInterface $input, OutputInterface $output) {
+ public function execute(InputInterface $input, OutputInterface $output): int {
$appName = $input->getArgument('app');
$ms = new MigrationService($appName, $this->connection, new ConsoleOutput($output));
diff --git a/core/Command/Db/Migrations/MigrateCommand.php b/core/Command/Db/Migrations/MigrateCommand.php
index d2e1910e6f0e..4940805f81d9 100644
--- a/core/Command/Db/Migrations/MigrateCommand.php
+++ b/core/Command/Db/Migrations/MigrateCommand.php
@@ -51,7 +51,7 @@ protected function configure() {
parent::configure();
}
- public function execute(InputInterface $input, OutputInterface $output) {
+ public function execute(InputInterface $input, OutputInterface $output): int {
$appName = $input->getArgument('app');
$ms = new MigrationService($appName, $this->connection, new ConsoleOutput($output));
$version = $input->getArgument('version');
diff --git a/core/Command/Db/Migrations/StatusCommand.php b/core/Command/Db/Migrations/StatusCommand.php
index 431dd6ba507d..e98767ce3014 100644
--- a/core/Command/Db/Migrations/StatusCommand.php
+++ b/core/Command/Db/Migrations/StatusCommand.php
@@ -48,7 +48,7 @@ protected function configure() {
->addArgument('app', InputArgument::REQUIRED, 'Name of the app this migration command shall work on');
}
- public function execute(InputInterface $input, OutputInterface $output) {
+ public function execute(InputInterface $input, OutputInterface $output): int {
$appName = $input->getArgument('app');
$ms = new MigrationService($appName, $this->connection, new ConsoleOutput($output));
diff --git a/core/Command/Db/RestoreDefaultRowFormat.php b/core/Command/Db/RestoreDefaultRowFormat.php
index 2b7536fd2e52..84e9cad2b88d 100644
--- a/core/Command/Db/RestoreDefaultRowFormat.php
+++ b/core/Command/Db/RestoreDefaultRowFormat.php
@@ -51,7 +51,7 @@ protected function configure() {
->setDescription('Restore default row format of MySQL/MariaDB tables.');
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if (!$this->connection->getDatabasePlatform() instanceof MySqlPlatform) {
$output->writeln("This command is only valid for MySQL/MariaDB databases.");
return 1;
diff --git a/core/Command/Encryption/ChangeKeyStorageRoot.php b/core/Command/Encryption/ChangeKeyStorageRoot.php
index 9fcbd1012911..0b53200a79bf 100644
--- a/core/Command/Encryption/ChangeKeyStorageRoot.php
+++ b/core/Command/Encryption/ChangeKeyStorageRoot.php
@@ -79,7 +79,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$oldRoot = $this->util->getKeyStorageRoot();
$newRoot = $input->getArgument('newRoot');
diff --git a/core/Command/Encryption/DecryptAll.php b/core/Command/Encryption/DecryptAll.php
index 0d0c504a42c8..98e864b9de99 100644
--- a/core/Command/Encryption/DecryptAll.php
+++ b/core/Command/Encryption/DecryptAll.php
@@ -132,7 +132,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$confirmed = $input->getOption('continue');
if (($confirmed !== 'yes') && ($confirmed !== 'no')) {
$output->writeln('Continue can accept either yes or no');
diff --git a/core/Command/Encryption/Disable.php b/core/Command/Encryption/Disable.php
index f091a74c2420..5eb494ed1607 100644
--- a/core/Command/Encryption/Disable.php
+++ b/core/Command/Encryption/Disable.php
@@ -50,7 +50,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$qb = $this->db->getQueryBuilder();
$qb->select($qb->expr()->literal('1'))
->from('filecache', 'fc')
diff --git a/core/Command/Encryption/Enable.php b/core/Command/Encryption/Enable.php
index e36ce0e776c5..cf43f88eaffc 100644
--- a/core/Command/Encryption/Enable.php
+++ b/core/Command/Encryption/Enable.php
@@ -52,7 +52,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if ($this->encryptionManager->isEnabled()) {
$output->writeln('Encryption is already enabled');
} else {
diff --git a/core/Command/Encryption/EncryptAll.php b/core/Command/Encryption/EncryptAll.php
index e9c6e483798d..7813d00ee73e 100644
--- a/core/Command/Encryption/EncryptAll.php
+++ b/core/Command/Encryption/EncryptAll.php
@@ -107,7 +107,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if ($this->encryptionManager->isEnabled() === false) {
throw new \Exception('Server side encryption is not enabled');
}
diff --git a/core/Command/Encryption/ListModules.php b/core/Command/Encryption/ListModules.php
index 99fd4585f9c9..7aa2bafc9376 100644
--- a/core/Command/Encryption/ListModules.php
+++ b/core/Command/Encryption/ListModules.php
@@ -48,7 +48,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$encryptionModules = $this->encryptionManager->getEncryptionModules();
$defaultEncryptionModuleId = $this->encryptionManager->getDefaultEncryptionModuleId();
diff --git a/core/Command/Encryption/SetDefaultModule.php b/core/Command/Encryption/SetDefaultModule.php
index 7665d170a8cf..65117c7463bb 100644
--- a/core/Command/Encryption/SetDefaultModule.php
+++ b/core/Command/Encryption/SetDefaultModule.php
@@ -53,7 +53,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$moduleId = $input->getArgument('module');
if ($moduleId === $this->encryptionManager->getDefaultEncryptionModuleId()) {
diff --git a/core/Command/Encryption/ShowKeyStorageRoot.php b/core/Command/Encryption/ShowKeyStorageRoot.php
index 10ea9fc4821d..e8699c5b081f 100644
--- a/core/Command/Encryption/ShowKeyStorageRoot.php
+++ b/core/Command/Encryption/ShowKeyStorageRoot.php
@@ -45,7 +45,7 @@ protected function configure() {
->setDescription('Show current key storage root.');
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$currentRoot = $this->util->getKeyStorageRoot();
$rootDescription = $currentRoot !== '' ? $currentRoot : 'default storage location (data/)';
diff --git a/core/Command/Encryption/Status.php b/core/Command/Encryption/Status.php
index 7bf1847969ea..a927b0ee2064 100644
--- a/core/Command/Encryption/Status.php
+++ b/core/Command/Encryption/Status.php
@@ -47,7 +47,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$this->writeArrayInOutputFormat($input, $output, [
'enabled' => $this->encryptionManager->isEnabled(),
'defaultModule' => $this->encryptionManager->getDefaultEncryptionModuleId(),
diff --git a/core/Command/Group/Add.php b/core/Command/Group/Add.php
index 78e454e07a9e..c0eaa53e3898 100644
--- a/core/Command/Group/Add.php
+++ b/core/Command/Group/Add.php
@@ -50,7 +50,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$groupName = $input->getArgument('group');
$group = $this->groupManager->get($groupName);
if (!$group) {
diff --git a/core/Command/Group/AddMember.php b/core/Command/Group/AddMember.php
index d582ee166967..1db11aa188cd 100644
--- a/core/Command/Group/AddMember.php
+++ b/core/Command/Group/AddMember.php
@@ -62,7 +62,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$groupName = $input->getArgument('group');
$group = $this->groupManager->get($groupName);
$errorFound = false;
diff --git a/core/Command/Group/Delete.php b/core/Command/Group/Delete.php
index f89b699e19f7..220c53231502 100644
--- a/core/Command/Group/Delete.php
+++ b/core/Command/Group/Delete.php
@@ -50,7 +50,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$groupName = $input->getArgument('group');
$group = $this->groupManager->get($groupName);
if ($group === null) {
diff --git a/core/Command/Group/ListGroupMembers.php b/core/Command/Group/ListGroupMembers.php
index f73990bf55d8..e85240c6a8a9 100644
--- a/core/Command/Group/ListGroupMembers.php
+++ b/core/Command/Group/ListGroupMembers.php
@@ -53,7 +53,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$groupName = $input->getArgument('group');
$group = $this->groupManager->get($groupName);
if (!$group) {
diff --git a/core/Command/Group/ListGroups.php b/core/Command/Group/ListGroups.php
index 46c34613c22c..09c43962c094 100644
--- a/core/Command/Group/ListGroups.php
+++ b/core/Command/Group/ListGroups.php
@@ -54,7 +54,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$groupNameSubString = $input->getArgument('search-pattern');
$groups = $this->groupManager->search($groupNameSubString, null, null, 'management', true);
$groups = \array_map(function ($group) {
diff --git a/core/Command/Group/RemoveMember.php b/core/Command/Group/RemoveMember.php
index 0296d95c38a4..894c32d0a6fe 100644
--- a/core/Command/Group/RemoveMember.php
+++ b/core/Command/Group/RemoveMember.php
@@ -62,7 +62,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$groupName = $input->getArgument('group');
$group = $this->groupManager->get($groupName);
$errorFound = false;
diff --git a/core/Command/Integrity/CheckApp.php b/core/Command/Integrity/CheckApp.php
index 3553fc2263d2..e72cf6b35f41 100644
--- a/core/Command/Integrity/CheckApp.php
+++ b/core/Command/Integrity/CheckApp.php
@@ -59,7 +59,7 @@ protected function configure() {
/**
* {@inheritdoc }
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$appid = $input->getArgument('appid');
$path = \strval($input->getOption('path'));
$result = $this->checker->verifyAppSignature($appid, $path);
diff --git a/core/Command/Integrity/CheckCore.php b/core/Command/Integrity/CheckCore.php
index 3b83dfc967df..31d0df9888ca 100644
--- a/core/Command/Integrity/CheckCore.php
+++ b/core/Command/Integrity/CheckCore.php
@@ -56,7 +56,7 @@ protected function configure() {
/**
* {@inheritdoc }
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$this->checker->runInstanceVerification();
$result = $this->checker->getResults();
$this->writeArrayInOutputFormat($input, $output, $result);
diff --git a/core/Command/Integrity/SignApp.php b/core/Command/Integrity/SignApp.php
index 90d1e4fd6c20..2244a5f22d00 100644
--- a/core/Command/Integrity/SignApp.php
+++ b/core/Command/Integrity/SignApp.php
@@ -73,7 +73,7 @@ protected function configure() {
/**
* {@inheritdoc }
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$path = $input->getOption('path');
$privateKeyPath = $input->getOption('privateKey');
$keyBundlePath = $input->getOption('certificate');
@@ -82,7 +82,7 @@ protected function execute(InputInterface $input, OutputInterface $output) {
$output->writeln('This command requires the --path, --privateKey and --certificate.');
$output->writeln('Example: ./occ integrity:sign-app --path="/Users/lukasreschke/Programming/myapp/" --privateKey="/Users/lukasreschke/private/myapp.key" --certificate="/Users/lukasreschke/public/mycert.crt"');
$output->writeln('For more information please consult the documentation: '. $documentationUrl);
- return null;
+ return 1;
}
$privateKey = $this->fileAccessHelper->file_get_contents($privateKeyPath);
@@ -90,12 +90,12 @@ protected function execute(InputInterface $input, OutputInterface $output) {
if ($privateKey === false) {
$output->writeln(\sprintf('Private key "%s" does not exists.', $privateKeyPath));
- return null;
+ return 1;
}
if ($keyBundle === false) {
$output->writeln(\sprintf('Certificate "%s" does not exists.', $keyBundlePath));
- return null;
+ return 1;
}
/** @var RSA $rsa */
diff --git a/core/Command/Integrity/SignCore.php b/core/Command/Integrity/SignCore.php
index 2b78a3492db4..6cdafc843ed8 100644
--- a/core/Command/Integrity/SignCore.php
+++ b/core/Command/Integrity/SignCore.php
@@ -67,13 +67,13 @@ protected function configure() {
/**
* {@inheritdoc }
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$privateKeyPath = $input->getOption('privateKey');
$keyBundlePath = $input->getOption('certificate');
$path = $input->getOption('path');
if ($privateKeyPath === null || $keyBundlePath === null || $path === null) {
$output->writeln('--privateKey, --certificate and --path are required.');
- return null;
+ return 1;
}
$privateKey = $this->fileAccessHelper->file_get_contents($privateKeyPath);
@@ -81,12 +81,12 @@ protected function execute(InputInterface $input, OutputInterface $output) {
if ($privateKey === false) {
$output->writeln(\sprintf('Private key "%s" does not exists.', $privateKeyPath));
- return null;
+ return 1;
}
if ($keyBundle === false) {
$output->writeln(\sprintf('Certificate "%s" does not exists.', $keyBundlePath));
- return null;
+ return 1;
}
/** @var RSA $rsa */
diff --git a/core/Command/L10n/CreateJs.php b/core/Command/L10n/CreateJs.php
index 3e79278be694..db17d6201a14 100644
--- a/core/Command/L10n/CreateJs.php
+++ b/core/Command/L10n/CreateJs.php
@@ -47,7 +47,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$app = $input->getArgument('app');
$lang = $input->getArgument('lang');
diff --git a/core/Command/Log/Manage.php b/core/Command/Log/Manage.php
index 7e153b6938b5..916cf3c0eb6e 100644
--- a/core/Command/Log/Manage.php
+++ b/core/Command/Log/Manage.php
@@ -68,7 +68,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
// collate config setting to the end, to avoid partial configuration
$toBeSet = [];
diff --git a/core/Command/Log/OwnCloud.php b/core/Command/Log/OwnCloud.php
index 4c2850404205..d737dba80cf5 100644
--- a/core/Command/Log/OwnCloud.php
+++ b/core/Command/Log/OwnCloud.php
@@ -62,7 +62,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$toBeSet = [];
if ($input->getOption('enable')) {
diff --git a/core/Command/Maintenance/DataFingerprint.php b/core/Command/Maintenance/DataFingerprint.php
index 19003a11f3a3..665e90401b71 100644
--- a/core/Command/Maintenance/DataFingerprint.php
+++ b/core/Command/Maintenance/DataFingerprint.php
@@ -54,7 +54,7 @@ protected function configure() {
->setDescription('Update the systems data-fingerprint after a backup is restored.');
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$io = new SymfonyStyle($input, $output);
$warning = <<addOption('data-dir', null, InputOption::VALUE_REQUIRED, 'Path to the data directory.', \OC::$SERVERROOT."/data");
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
// validate the environment
$server = \OC::$server;
$setupHelper = new Setup(
diff --git a/core/Command/Maintenance/Mimetype/UpdateDB.php b/core/Command/Maintenance/Mimetype/UpdateDB.php
index 82f0ac38c4fb..224fa796fbad 100644
--- a/core/Command/Maintenance/Mimetype/UpdateDB.php
+++ b/core/Command/Maintenance/Mimetype/UpdateDB.php
@@ -60,7 +60,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
'@phan-var \OC\Files\MimetypeDetector $this->mimetypeDetector';
$mappings = $this->mimetypeDetector->getAllMappings();
diff --git a/core/Command/Maintenance/Mimetype/UpdateJS.php b/core/Command/Maintenance/Mimetype/UpdateJS.php
index 89467a2a7e5f..6a9872022200 100644
--- a/core/Command/Maintenance/Mimetype/UpdateJS.php
+++ b/core/Command/Maintenance/Mimetype/UpdateJS.php
@@ -142,7 +142,7 @@ private function getLegacyThemes() {
* @param OutputInterface $output
* @return int
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$fileName = \OC::$SERVERROOT.'/core/js/mimetypelist.js';
$success = \file_put_contents(
diff --git a/core/Command/Maintenance/Mode.php b/core/Command/Maintenance/Mode.php
index 4b9e2c2f4026..59d56e192f2e 100644
--- a/core/Command/Maintenance/Mode.php
+++ b/core/Command/Maintenance/Mode.php
@@ -56,7 +56,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if ($input->getOption('on')) {
$this->config->setSystemValue('maintenance', true);
$output->writeln('Maintenance mode enabled');
diff --git a/core/Command/Maintenance/Repair.php b/core/Command/Maintenance/Repair.php
index 96c756367e69..e30370a0ee5a 100644
--- a/core/Command/Maintenance/Repair.php
+++ b/core/Command/Maintenance/Repair.php
@@ -95,7 +95,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$appSteps = $this->getAppsRepairSteps($output);
// Handle listing repair steps
$steps = \array_merge(
diff --git a/core/Command/Maintenance/SingleUser.php b/core/Command/Maintenance/SingleUser.php
index d49464633d38..f02f570ea532 100644
--- a/core/Command/Maintenance/SingleUser.php
+++ b/core/Command/Maintenance/SingleUser.php
@@ -59,7 +59,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if ($input->getOption('on')) {
$this->config->setSystemValue('singleuser', true);
$output->writeln('Single user mode enabled');
diff --git a/core/Command/Maintenance/UpdateHtaccess.php b/core/Command/Maintenance/UpdateHtaccess.php
index 24b54bd00437..04c6b4828752 100644
--- a/core/Command/Maintenance/UpdateHtaccess.php
+++ b/core/Command/Maintenance/UpdateHtaccess.php
@@ -31,7 +31,7 @@ protected function configure() {
->setDescription('Updates the .htaccess file.');
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
\OC\Setup::updateHtaccess();
$output->writeln('.htaccess has been updated');
return 0;
diff --git a/core/Command/Previews/Cleanup.php b/core/Command/Previews/Cleanup.php
index 17cfc5178287..bbe9a4be9d61 100644
--- a/core/Command/Previews/Cleanup.php
+++ b/core/Command/Previews/Cleanup.php
@@ -49,7 +49,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$all = $input->hasOption('all');
$chunk_size = $input->getArgument('chunk_size');
$chunk_size_valid = false;
diff --git a/core/Command/Security/CreateSignKey.php b/core/Command/Security/CreateSignKey.php
index ee06a28bd828..d626b61aa098 100644
--- a/core/Command/Security/CreateSignKey.php
+++ b/core/Command/Security/CreateSignKey.php
@@ -62,7 +62,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$uid = $input->getArgument('user');
$user = $this->userManager->get($uid);
if ($user === null) {
diff --git a/core/Command/Security/ImportCertificate.php b/core/Command/Security/ImportCertificate.php
index e12e18d2c74a..987353e16a48 100644
--- a/core/Command/Security/ImportCertificate.php
+++ b/core/Command/Security/ImportCertificate.php
@@ -47,7 +47,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$path = $input->getArgument('path');
if (!\file_exists($path)) {
diff --git a/core/Command/Security/ListCertificates.php b/core/Command/Security/ListCertificates.php
index a795a460df5a..f2bee52ba4fd 100644
--- a/core/Command/Security/ListCertificates.php
+++ b/core/Command/Security/ListCertificates.php
@@ -48,7 +48,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$outputType = $input->getOption('output');
if ($outputType === self::OUTPUT_FORMAT_JSON || $outputType === self::OUTPUT_FORMAT_JSON_PRETTY) {
$certificates = \array_map(function (ICertificate $certificate) {
diff --git a/core/Command/Security/ListRoutes.php b/core/Command/Security/ListRoutes.php
index a39aa2e0dc06..f82ec91253d7 100644
--- a/core/Command/Security/ListRoutes.php
+++ b/core/Command/Security/ListRoutes.php
@@ -50,7 +50,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$outputType = $input->getOption('output');
\OC_App::loadApps();
diff --git a/core/Command/Security/RemoveCertificate.php b/core/Command/Security/RemoveCertificate.php
index 03543d00d620..6a9bae9bc038 100644
--- a/core/Command/Security/RemoveCertificate.php
+++ b/core/Command/Security/RemoveCertificate.php
@@ -48,7 +48,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$name = $input->getArgument('name');
if ($this->certificateManager->removeCertificate($name)) {
diff --git a/core/Command/Status.php b/core/Command/Status.php
index bcbb3032e62e..8d4a243da37a 100644
--- a/core/Command/Status.php
+++ b/core/Command/Status.php
@@ -37,7 +37,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$values = [
'installed' => (bool) \OC::$server->getConfig()->getSystemValue('installed', false),
'first_install_version' => \OC::$server->getConfig()->getAppValue('core', 'first_install_version', 'unknown'),
diff --git a/core/Command/System/Cron.php b/core/Command/System/Cron.php
index c5fc80d64b50..81f1bb19c83c 100644
--- a/core/Command/System/Cron.php
+++ b/core/Command/System/Cron.php
@@ -74,7 +74,7 @@ protected function configure() {
* @param OutputInterface $output
* @return int
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if (\OCP\Util::needUpgrade()) {
$output->writeln('Update required, skipping cron');
return 1;
diff --git a/core/Command/TwoFactorAuth/Disable.php b/core/Command/TwoFactorAuth/Disable.php
index b8f5f8882896..e1ca2b29363b 100644
--- a/core/Command/TwoFactorAuth/Disable.php
+++ b/core/Command/TwoFactorAuth/Disable.php
@@ -49,7 +49,7 @@ protected function configure() {
$this->addArgument('uid', InputArgument::REQUIRED);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$uid = $input->getArgument('uid');
$user = $this->userManager->get($uid);
if ($user === null) {
diff --git a/core/Command/TwoFactorAuth/Enable.php b/core/Command/TwoFactorAuth/Enable.php
index 2959caf32e4f..6fec24df3a66 100644
--- a/core/Command/TwoFactorAuth/Enable.php
+++ b/core/Command/TwoFactorAuth/Enable.php
@@ -49,7 +49,7 @@ protected function configure() {
$this->addArgument('uid', InputArgument::REQUIRED);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$uid = $input->getArgument('uid');
$user = $this->userManager->get($uid);
if ($user === null) {
diff --git a/core/Command/Upgrade.php b/core/Command/Upgrade.php
index f73467f99c9a..19d529975f2f 100644
--- a/core/Command/Upgrade.php
+++ b/core/Command/Upgrade.php
@@ -92,8 +92,10 @@ protected function configure() {
*
* @param InputInterface $input input interface
* @param OutputInterface $output output interface
+ *
+ * @return int
*/
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if ($output->getVerbosity() === OutputInterface::VERBOSITY_NORMAL
&& !$input->hasParameterOption('--verbose=0', true)) {
// set to more verbose on upgrade if no explicit verbosity was set
diff --git a/core/Command/User/Add.php b/core/Command/User/Add.php
index c7b58240b65b..78174164d041 100644
--- a/core/Command/User/Add.php
+++ b/core/Command/User/Add.php
@@ -92,7 +92,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$uid = $input->getArgument('uid');
if ($this->userManager->userExists($uid)) {
$output->writeln('The user "' . $uid . '" already exists.');
diff --git a/core/Command/User/Delete.php b/core/Command/User/Delete.php
index 8692338d765d..47e4cf20f44c 100644
--- a/core/Command/User/Delete.php
+++ b/core/Command/User/Delete.php
@@ -61,7 +61,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$uid = $input->getArgument('uid');
$user = $this->userManager->get($uid);
if ($user === null) {
diff --git a/core/Command/User/Disable.php b/core/Command/User/Disable.php
index 8c3a9518308a..79737f92ffdc 100644
--- a/core/Command/User/Disable.php
+++ b/core/Command/User/Disable.php
@@ -50,7 +50,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $this->userManager->get($input->getArgument('uid'));
if ($user === null) {
$output->writeln('User does not exist');
diff --git a/core/Command/User/Enable.php b/core/Command/User/Enable.php
index 8783fbea8769..8751e926b3ee 100644
--- a/core/Command/User/Enable.php
+++ b/core/Command/User/Enable.php
@@ -50,7 +50,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $this->userManager->get($input->getArgument('uid'));
if ($user === null) {
$output->writeln('User does not exist');
diff --git a/core/Command/User/HomeListDirs.php b/core/Command/User/HomeListDirs.php
index 1cfd06a117ee..837205f63ccf 100644
--- a/core/Command/User/HomeListDirs.php
+++ b/core/Command/User/HomeListDirs.php
@@ -47,7 +47,7 @@ protected function configure() {
->setDescription('List all available root directories for user homes that are currently in use');
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if (Filesystem::isPrimaryObjectStorageEnabled() === true) {
$output->writeln('We detected that the instance is running on a S3 primary object storage, home directories might not be accurate');
}
diff --git a/core/Command/User/HomeListUsers.php b/core/Command/User/HomeListUsers.php
index 75faac38794d..af3b89957b68 100644
--- a/core/Command/User/HomeListUsers.php
+++ b/core/Command/User/HomeListUsers.php
@@ -68,7 +68,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if (Filesystem::isPrimaryObjectStorageEnabled() === true) {
$output->writeln('We detected that the instance is running on a S3 primary object storage, users might not be accurate');
}
diff --git a/core/Command/User/Inactive.php b/core/Command/User/Inactive.php
index 7b9f4620ee7b..45320fbf19ee 100644
--- a/core/Command/User/Inactive.php
+++ b/core/Command/User/Inactive.php
@@ -53,7 +53,7 @@ protected function configure() {
parent::configure();
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$days = $input->getArgument('days');
if ((!\is_int($days) && !\ctype_digit($days)) || $days < 1) {
throw new InvalidArgumentException('Days must be integer and above zero');
diff --git a/core/Command/User/LastSeen.php b/core/Command/User/LastSeen.php
index b6e27880f956..d7bff04fba76 100644
--- a/core/Command/User/LastSeen.php
+++ b/core/Command/User/LastSeen.php
@@ -53,7 +53,7 @@ protected function configure() {
);
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $this->userManager->get($input->getArgument('uid'));
if ($user === null) {
$output->writeln('User does not exist');
diff --git a/core/Command/User/ListUserGroups.php b/core/Command/User/ListUserGroups.php
index dc04745efe54..87408d723235 100644
--- a/core/Command/User/ListUserGroups.php
+++ b/core/Command/User/ListUserGroups.php
@@ -59,7 +59,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$uid = $input->getArgument('uid');
if (!$this->userManager->userExists($uid)) {
$output->writeln("User $uid does not exist.");
diff --git a/core/Command/User/ListUsers.php b/core/Command/User/ListUsers.php
index 7e922a35527c..cfc2247568f2 100644
--- a/core/Command/User/ListUsers.php
+++ b/core/Command/User/ListUsers.php
@@ -93,7 +93,7 @@ private function add(&$row, $key, $val, $useKey) {
}
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$userNameSubString = $input->getArgument('search-pattern');
$attributes = \array_map('mb_strtolower', $input->getOption('attributes'));
$showAllAttributes = $input->getOption('show-all-attributes');
diff --git a/core/Command/User/Modify.php b/core/Command/User/Modify.php
index 5e9eb35e1dbb..f856fb1fcd8d 100644
--- a/core/Command/User/Modify.php
+++ b/core/Command/User/Modify.php
@@ -93,7 +93,7 @@ protected function validateInput(InputInterface $input) {
}
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$uid = $input->getArgument('uid');
$key = $input->getArgument('key');
$value = $input->getArgument('value');
diff --git a/core/Command/User/MoveHome.php b/core/Command/User/MoveHome.php
index 52b8deba422c..40d6a2b49d88 100644
--- a/core/Command/User/MoveHome.php
+++ b/core/Command/User/MoveHome.php
@@ -53,7 +53,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $this->getUser($input);
$userId = $user->getUID();
$oldHome = $user->getHome();
diff --git a/core/Command/User/Report.php b/core/Command/User/Report.php
index a6523cb8109f..dab8f80517b1 100644
--- a/core/Command/User/Report.php
+++ b/core/Command/User/Report.php
@@ -57,7 +57,7 @@ protected function configure() {
->setDescription('shows how many users have access');
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
if (Filesystem::isPrimaryObjectStorageEnabled() === true) {
$output->writeln('We detected that the instance is running on a S3 primary object storage, user directories count might not be accurate');
}
diff --git a/core/Command/User/ResetPassword.php b/core/Command/User/ResetPassword.php
index 45e036e600f0..2feaff69d0b1 100644
--- a/core/Command/User/ResetPassword.php
+++ b/core/Command/User/ResetPassword.php
@@ -98,7 +98,7 @@ protected function configure() {
;
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
$username = $input->getArgument('user');
$emailLink = $input->getOption('send-email');
$displayLink = $input->getOption('output-link');
diff --git a/core/Command/User/Setting.php b/core/Command/User/Setting.php
index f68065fc054d..ae636a059a88 100644
--- a/core/Command/User/Setting.php
+++ b/core/Command/User/Setting.php
@@ -153,7 +153,7 @@ protected function checkInput(InputInterface $input) {
}
}
- protected function execute(InputInterface $input, OutputInterface $output) {
+ protected function execute(InputInterface $input, OutputInterface $output): int {
try {
$this->checkInput($input);
} catch (\InvalidArgumentException $e) {
From 61f78aa1eb307c68a98af16a17cba9be692deeb7 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Wed, 17 May 2023 15:06:35 +0545
Subject: [PATCH 111/244] Changelog for Symfony Command execute method changes
---
changelog/unreleased/40793 | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 changelog/unreleased/40793
diff --git a/changelog/unreleased/40793 b/changelog/unreleased/40793
new file mode 100644
index 000000000000..24fbde85db32
--- /dev/null
+++ b/changelog/unreleased/40793
@@ -0,0 +1,7 @@
+Bugfix: Always return an int for the Symfony Command execute method
+
+Some occ commands could return an invalid exit status when executed.
+This has been corrected. occ commands will now always return an integer
+exit status. Zero (0) is success, any other value indicates a problem.
+
+https://github.com/owncloud/core/pull/40793
From ee5648d8e62ca2d452800d0654fbe7abcb636ae0 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Wed, 17 May 2023 10:41:50 +0000
Subject: [PATCH 112/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 9 +++++++++
CHANGELOG.md | 9 +++++++++
2 files changed, 18 insertions(+)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index d7d459d5524b..e0886d6f21b0 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -8,6 +8,7 @@ Summary
- Bugfix - Align to new accounts.google.com authorization URI: #40783
- Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: #40792
+ - Bugfix - Always return an int for the Symfony Command execute method: #40793
- Change - Update PHP dependencies: #40724
- Change - Fix name length check on federated shares: #40726
- Change - Validate email and string user input in UserController: #40769
@@ -32,6 +33,14 @@ Details
Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: #40792
https://github.com/owncloud/core/pull/40792
+ -
+
Bugfix - Always return an int for the Symfony Command execute method: #40793
+ Some occ commands could return an invalid exit status when executed. This has been corrected.
+ occ commands will now always return an integer exit status. Zero (0) is success, any other value
+ indicates a problem.
+
+ https://github.com/owncloud/core/pull/40793
+
-
Change - Update PHP dependencies: #40724
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d0b84d5fa2b9..c810d9680787 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ Summary
* Bugfix - Align to new accounts.google.com authorization URI: [#40783](https://github.com/owncloud/core/pull/40783)
* Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: [#40792](https://github.com/owncloud/core/pull/40792)
+* Bugfix - Always return an int for the Symfony Command execute method: [#40793](https://github.com/owncloud/core/pull/40793)
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
* Change - Validate email and string user input in UserController: [#40769](https://github.com/owncloud/core/pull/40769)
@@ -34,6 +35,14 @@ Details
https://github.com/owncloud/core/pull/40792
+* Bugfix - Always return an int for the Symfony Command execute method: [#40793](https://github.com/owncloud/core/pull/40793)
+
+ Some occ commands could return an invalid exit status when executed. This has been corrected.
+ occ commands will now always return an integer exit status. Zero (0) is success, any other value
+ indicates a problem.
+
+ https://github.com/owncloud/core/pull/40793
+
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
From 38b522073e68368ebe1fa0f9e86688f268e15a43 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Wed, 17 May 2023 17:06:59 +0545
Subject: [PATCH 113/244] Fix 'does not exists' text
---
apps/dav/lib/CardDAV/CardDavBackend.php | 4 ++--
apps/files_trashbin/lib/Helper.php | 2 +-
core/Command/Integrity/SignApp.php | 4 ++--
core/Command/Integrity/SignCore.php | 4 ++--
core/Command/User/Setting.php | 2 +-
lib/private/DB/Adapter.php | 2 +-
lib/private/DB/AdapterSqlite.php | 2 +-
lib/private/DB/Connection.php | 2 +-
lib/private/Files/Cache/Cache.php | 2 +-
lib/private/Files/Storage/Local.php | 2 +-
lib/private/Files/Storage/Wrapper/Checksum.php | 2 +-
lib/private/Lock/DBLockingProvider.php | 2 +-
lib/private/Setup/PostgreSQL.php | 2 +-
lib/public/DB.php | 2 +-
lib/public/Files/Cache/ICache.php | 2 +-
lib/public/IDBConnection.php | 2 +-
tests/Core/Command/User/SettingTest.php | 2 +-
tests/lib/Command/Integrity/SignAppTest.php | 4 ++--
tests/lib/Command/Integrity/SignCoreTest.php | 4 ++--
19 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php
index 119e93eaf12f..58422bece507 100644
--- a/apps/dav/lib/CardDAV/CardDavBackend.php
+++ b/apps/dav/lib/CardDAV/CardDavBackend.php
@@ -925,7 +925,7 @@ public function getCardUri($id) {
$result->closeCursor();
if (!isset($uri['uri'])) {
- throw new \InvalidArgumentException('Card does not exists: ' . $id);
+ throw new \InvalidArgumentException('Card does not exist: ' . $id);
}
return $uri['uri'];
@@ -1062,7 +1062,7 @@ protected function getCardId($addressBookId, $uri) {
$result->closeCursor();
if (!isset($cardIds['id'])) {
- throw new \InvalidArgumentException('Card does not exists: ' . $uri);
+ throw new \InvalidArgumentException('Card does not exist: ' . $uri);
}
return (int)$cardIds['id'];
diff --git a/apps/files_trashbin/lib/Helper.php b/apps/files_trashbin/lib/Helper.php
index 0ba1672c80a3..a0045efaf4c8 100644
--- a/apps/files_trashbin/lib/Helper.php
+++ b/apps/files_trashbin/lib/Helper.php
@@ -48,7 +48,7 @@ public static function getTrashFiles($dir, $user, $sortAttribute = '', $sortDesc
$view = new \OC\Files\View('/' . $user . '/files_trashbin/files');
if (\ltrim($dir, '/') !== '' && !$view->is_dir($dir)) {
- throw new \Exception('Directory does not exists');
+ throw new \Exception('Directory does not exist');
}
$mount = $view->getMount($dir);
diff --git a/core/Command/Integrity/SignApp.php b/core/Command/Integrity/SignApp.php
index 2244a5f22d00..93461d82b1d0 100644
--- a/core/Command/Integrity/SignApp.php
+++ b/core/Command/Integrity/SignApp.php
@@ -89,12 +89,12 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$keyBundle = $this->fileAccessHelper->file_get_contents($keyBundlePath);
if ($privateKey === false) {
- $output->writeln(\sprintf('Private key "%s" does not exists.', $privateKeyPath));
+ $output->writeln(\sprintf('Private key "%s" does not exist.', $privateKeyPath));
return 1;
}
if ($keyBundle === false) {
- $output->writeln(\sprintf('Certificate "%s" does not exists.', $keyBundlePath));
+ $output->writeln(\sprintf('Certificate "%s" does not exist.', $keyBundlePath));
return 1;
}
diff --git a/core/Command/Integrity/SignCore.php b/core/Command/Integrity/SignCore.php
index 6cdafc843ed8..3e86de78ee09 100644
--- a/core/Command/Integrity/SignCore.php
+++ b/core/Command/Integrity/SignCore.php
@@ -80,12 +80,12 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$keyBundle = $this->fileAccessHelper->file_get_contents($keyBundlePath);
if ($privateKey === false) {
- $output->writeln(\sprintf('Private key "%s" does not exists.', $privateKeyPath));
+ $output->writeln(\sprintf('Private key "%s" does not exist.', $privateKeyPath));
return 1;
}
if ($keyBundle === false) {
- $output->writeln(\sprintf('Certificate "%s" does not exists.', $keyBundlePath));
+ $output->writeln(\sprintf('Certificate "%s" does not exist.', $keyBundlePath));
return 1;
}
diff --git a/core/Command/User/Setting.php b/core/Command/User/Setting.php
index ae636a059a88..bed7290743c7 100644
--- a/core/Command/User/Setting.php
+++ b/core/Command/User/Setting.php
@@ -122,7 +122,7 @@ protected function configure() {
protected function checkInput(InputInterface $input) {
$uid = $input->getArgument('uid');
if (!$input->getOption('ignore-missing-user') && !$this->userManager->userExists($uid)) {
- throw new \InvalidArgumentException('The user "' . $uid . '" does not exists.');
+ throw new \InvalidArgumentException('The user "' . $uid . '" does not exist.');
}
if ($input->getArgument('key') === '' && $input->hasParameterOption('--default-value')) {
diff --git a/lib/private/DB/Adapter.php b/lib/private/DB/Adapter.php
index 734b5acd0ce1..7e55f45fad3b 100644
--- a/lib/private/DB/Adapter.php
+++ b/lib/private/DB/Adapter.php
@@ -81,7 +81,7 @@ public function unlockTable() {
}
/**
- * Insert a row if the matching row does not exists.
+ * Insert a row if the matching row does not exist.
*
* @param string $table The table name (will replace *PREFIX* with the actual prefix)
* @param array $input data that should be inserted into the table (column name => value)
diff --git a/lib/private/DB/AdapterSqlite.php b/lib/private/DB/AdapterSqlite.php
index 898f482a4b8f..dfb616aef8d5 100644
--- a/lib/private/DB/AdapterSqlite.php
+++ b/lib/private/DB/AdapterSqlite.php
@@ -48,7 +48,7 @@ public function fixupStatement($statement) {
}
/**
- * Insert a row if the matching row does not exists.
+ * Insert a row if the matching row does not exist.
*
* @param string $table The table name (will replace *PREFIX* with the actual prefix)
* @param array $input data that should be inserted into the table (column name => value)
diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php
index 46d3ac2a18ad..bbb97a7a30b4 100644
--- a/lib/private/DB/Connection.php
+++ b/lib/private/DB/Connection.php
@@ -262,7 +262,7 @@ public function realLastInsertId($seqName = null) {
}
/**
- * Insert a row if the matching row does not exists.
+ * Insert a row if the matching row does not exist.
*
* @param string $table The table name (will replace *PREFIX* with the actual prefix)
* @param array $input data that should be inserted into the table (column name => value)
diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php
index 32c7998f482c..9c0b6e418c2a 100644
--- a/lib/private/Files/Cache/Cache.php
+++ b/lib/private/Files/Cache/Cache.php
@@ -948,7 +948,7 @@ public function getIncomplete() {
* get the path of a file on this storage by it's file id
*
* @param int $id the file id of the file or folder to search
- * @return string|null the path of the file (relative to the storage) or null if a file with the given id does not exists within this cache
+ * @return string|null the path of the file (relative to the storage) or null if a file with the given id does not exist within this cache
*/
public function getPathById($id) {
if (!isset(self::$path_cache[(int)$id])) {
diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php
index 4265413e6766..454e4062ac41 100644
--- a/lib/private/Files/Storage/Local.php
+++ b/lib/private/Files/Storage/Local.php
@@ -256,7 +256,7 @@ public function rename($path1, $path2) {
}
if (!$this->file_exists($path1)) {
- \OCP\Util::writeLog('core', 'unable to rename, file does not exists : ' . $path1, \OCP\Util::ERROR);
+ \OCP\Util::writeLog('core', 'unable to rename, file does not exist : ' . $path1, \OCP\Util::ERROR);
return false;
}
diff --git a/lib/private/Files/Storage/Wrapper/Checksum.php b/lib/private/Files/Storage/Wrapper/Checksum.php
index a187acaae7a8..c0eb48c12c08 100644
--- a/lib/private/Files/Storage/Wrapper/Checksum.php
+++ b/lib/private/Files/Storage/Wrapper/Checksum.php
@@ -167,7 +167,7 @@ private static function getChecksumsInDbFormat($path) {
/**
* check if the file metadata should not be fetched
* NOTE: files with a '.part' extension are ignored as well!
- * prevents unfinished put requests to fetch metadata which does not exists
+ * prevents unfinished put requests to fetch metadata which does not exist
*
* @param string $file
* @return boolean
diff --git a/lib/private/Lock/DBLockingProvider.php b/lib/private/Lock/DBLockingProvider.php
index deb0cc66a43b..470b4f7cf248 100644
--- a/lib/private/Lock/DBLockingProvider.php
+++ b/lib/private/Lock/DBLockingProvider.php
@@ -107,7 +107,7 @@ public function __construct(IDBConnection $connection, ILogger $logger, ITimeFac
}
/**
- * Insert a file locking row if it does not exists.
+ * Insert a file locking row if it does not exist.
*
* @param string $path
* @param int $lock
diff --git a/lib/private/Setup/PostgreSQL.php b/lib/private/Setup/PostgreSQL.php
index 690eee470b30..b7a1b6f44935 100644
--- a/lib/private/Setup/PostgreSQL.php
+++ b/lib/private/Setup/PostgreSQL.php
@@ -130,7 +130,7 @@ private function createDatabase($connection) {
\OCP\Util::writeLog('setup.pg', $entry, \OCP\Util::WARN);
}
if (! \pg_fetch_row($result)) {
- //The database does not exists... let's create it
+ //The database does not exist... let's create it
$query = "CREATE DATABASE \"$e_name\" OWNER \"$e_user\"";
$result = \pg_query($connection, $query);
if (!$result) {
diff --git a/lib/public/DB.php b/lib/public/DB.php
index 658ccfa36795..fec2b9dfa801 100644
--- a/lib/public/DB.php
+++ b/lib/public/DB.php
@@ -60,7 +60,7 @@ public static function prepare($query, $limit=null, $offset=null) {
}
/**
- * Insert a row if the matching row does not exists.
+ * Insert a row if the matching row does not exist.
*
* @param string $table The table name (will replace *PREFIX* with the actual prefix)
* @param array $input data that should be inserted into the table (column name => value)
diff --git a/lib/public/Files/Cache/ICache.php b/lib/public/Files/Cache/ICache.php
index 6de59fddf124..f2141639725b 100644
--- a/lib/public/Files/Cache/ICache.php
+++ b/lib/public/Files/Cache/ICache.php
@@ -248,7 +248,7 @@ public function getIncomplete();
* get the path of a file on this storage by it's file id
*
* @param int $id the file id of the file or folder to search
- * @return string|null the path of the file (relative to the storage) or null if a file with the given id does not exists within this cache
+ * @return string|null the path of the file (relative to the storage) or null if a file with the given id does not exist within this cache
* @since 9.0.0
*/
public function getPathById($id);
diff --git a/lib/public/IDBConnection.php b/lib/public/IDBConnection.php
index 662156cccd85..0b444cb6df8a 100644
--- a/lib/public/IDBConnection.php
+++ b/lib/public/IDBConnection.php
@@ -120,7 +120,7 @@ public function executeStatement($query, array $params = [], array $types = []);
public function lastInsertId($table = null);
/**
- * Insert a row if the matching row does not exists.
+ * Insert a row if the matching row does not exist.
*
* @param string $table The table name (will replace *PREFIX* with the actual prefix)
* @param array $input data that should be inserted into the table (column name => value)
diff --git a/tests/Core/Command/User/SettingTest.php b/tests/Core/Command/User/SettingTest.php
index ad4c872a6580..e24ccdd1b32e 100644
--- a/tests/Core/Command/User/SettingTest.php
+++ b/tests/Core/Command/User/SettingTest.php
@@ -86,7 +86,7 @@ public function dataCheckInput() {
[['ignore-missing-user', false]],
[],
null,
- 'The user "username" does not exists.',
+ 'The user "username" does not exist.',
],
[
diff --git a/tests/lib/Command/Integrity/SignAppTest.php b/tests/lib/Command/Integrity/SignAppTest.php
index bf7924e43b88..74de88b6a0d9 100644
--- a/tests/lib/Command/Integrity/SignAppTest.php
+++ b/tests/lib/Command/Integrity/SignAppTest.php
@@ -164,7 +164,7 @@ public function testExecuteWithNotExistingPrivateKey() {
$outputInterface
->expects($this->once())
->method('writeln')
- ->with('Private key "privateKey" does not exists.');
+ ->with('Private key "privateKey" does not exist.');
$this->invokePrivate($this->signApp, 'execute', [$inputInterface, $outputInterface]);
}
@@ -201,7 +201,7 @@ public function testExecuteWithNotExistingCertificate() {
$outputInterface
->expects($this->once())
->method('writeln')
- ->with('Certificate "certificate" does not exists.');
+ ->with('Certificate "certificate" does not exist.');
$this->invokePrivate($this->signApp, 'execute', [$inputInterface, $outputInterface]);
}
diff --git a/tests/lib/Command/Integrity/SignCoreTest.php b/tests/lib/Command/Integrity/SignCoreTest.php
index e960de824ff4..94a4ab8ff803 100644
--- a/tests/lib/Command/Integrity/SignCoreTest.php
+++ b/tests/lib/Command/Integrity/SignCoreTest.php
@@ -123,7 +123,7 @@ public function testExecuteWithNotExistingPrivateKey() {
$outputInterface
->expects($this->once())
->method('writeln')
- ->with('Private key "privateKey" does not exists.');
+ ->with('Private key "privateKey" does not exist.');
$this->invokePrivate($this->signCore, 'execute', [$inputInterface, $outputInterface]);
}
@@ -160,7 +160,7 @@ public function testExecuteWithNotExistingCertificate() {
$outputInterface
->expects($this->once())
->method('writeln')
- ->with('Certificate "certificate" does not exists.');
+ ->with('Certificate "certificate" does not exist.');
$this->invokePrivate($this->signCore, 'execute', [$inputInterface, $outputInterface]);
}
From 109a55ac51721f9d3a91bd8450f52e624c01761b Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Wed, 17 May 2023 16:45:26 +0545
Subject: [PATCH 114/244] Exit with success when signing-key has been set
---
core/Command/Security/CreateSignKey.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/core/Command/Security/CreateSignKey.php b/core/Command/Security/CreateSignKey.php
index d626b61aa098..dbe0a43aed02 100644
--- a/core/Command/Security/CreateSignKey.php
+++ b/core/Command/Security/CreateSignKey.php
@@ -58,7 +58,7 @@ protected function configure() {
->addArgument(
'user',
InputArgument::REQUIRED,
- 'The is of the user'
+ 'The id of the user'
);
}
@@ -82,6 +82,6 @@ protected function execute(InputInterface $input, OutputInterface $output): int
}
$newSigningKey = $this->secureRandom->generate(64);
$this->config->setUserValue($uid, 'core', 'signing-key', $newSigningKey, $signingKey);
- return 1;
+ return 0;
}
}
From 369608811e1e735275e916a9800542055ba74ff8 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Wed, 17 May 2023 16:51:39 +0545
Subject: [PATCH 115/244] Changelog for security:sign-key:create exit status
fix
---
changelog/unreleased/40794 | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 changelog/unreleased/40794
diff --git a/changelog/unreleased/40794 b/changelog/unreleased/40794
new file mode 100644
index 000000000000..1f5dd2c25e4a
--- /dev/null
+++ b/changelog/unreleased/40794
@@ -0,0 +1,9 @@
+Bugfix: Exit with success when signing-key has been set
+
+The "occ security:sign-key:create" command exited with status 1 even when the
+signing key was successfully created. This has been corrected. The command
+now exits with status zero (0) when the command succeeded.
+
+For all occ commands, zero (0) is success, any other value indicates a problem.
+
+https://github.com/owncloud/core/pull/40794
From 6a04fec4d0b943c1f0df6875cbff864498e9eff4 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Thu, 18 May 2023 04:04:04 +0000
Subject: [PATCH 116/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 9 +++++++++
CHANGELOG.md | 11 +++++++++++
2 files changed, 20 insertions(+)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index e0886d6f21b0..d441dafd3f2b 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -9,6 +9,7 @@ Summary
- Bugfix - Align to new accounts.google.com authorization URI: #40783
- Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: #40792
- Bugfix - Always return an int for the Symfony Command execute method: #40793
+ - Bugfix - Exit with success when signing-key has been set: #40794
- Change - Update PHP dependencies: #40724
- Change - Fix name length check on federated shares: #40726
- Change - Validate email and string user input in UserController: #40769
@@ -41,6 +42,14 @@ Details
https://github.com/owncloud/core/pull/40793
+ -
+
Bugfix - Exit with success when signing-key has been set: #40794
+ The "occ security:sign-key:create" command exited with status 1 even when the signing key was
+ successfully created. This has been corrected. The command now exits with status zero (0) when
+ the command succeeded.For all occ commands, zero (0) is success, any other value indicates a problem.
+
+ https://github.com/owncloud/core/pull/40794
+
-
Change - Update PHP dependencies: #40724
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c810d9680787..dff0c58e87a3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ Summary
* Bugfix - Align to new accounts.google.com authorization URI: [#40783](https://github.com/owncloud/core/pull/40783)
* Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: [#40792](https://github.com/owncloud/core/pull/40792)
* Bugfix - Always return an int for the Symfony Command execute method: [#40793](https://github.com/owncloud/core/pull/40793)
+* Bugfix - Exit with success when signing-key has been set: [#40794](https://github.com/owncloud/core/pull/40794)
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
* Change - Validate email and string user input in UserController: [#40769](https://github.com/owncloud/core/pull/40769)
@@ -43,6 +44,16 @@ Details
https://github.com/owncloud/core/pull/40793
+* Bugfix - Exit with success when signing-key has been set: [#40794](https://github.com/owncloud/core/pull/40794)
+
+ The "occ security:sign-key:create" command exited with status 1 even when the signing key was
+ successfully created. This has been corrected. The command now exits with status zero (0) when
+ the command succeeded.
+
+ For all occ commands, zero (0) is success, any other value indicates a problem.
+
+ https://github.com/owncloud/core/pull/40794
+
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
From d9117371dcc5a9e1d1c63c05a50c46d8b30f8aaa Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Fri, 19 May 2023 00:17:33 +0000
Subject: [PATCH 117/244] [tx] updated from transifex
---
apps/federatedfilesharing/l10n/en_GB.js | 4 ++++
apps/federatedfilesharing/l10n/en_GB.json | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/apps/federatedfilesharing/l10n/en_GB.js b/apps/federatedfilesharing/l10n/en_GB.js
index 3dca2ec1e3fc..824a7ca08962 100644
--- a/apps/federatedfilesharing/l10n/en_GB.js
+++ b/apps/federatedfilesharing/l10n/en_GB.js
@@ -2,7 +2,9 @@ OC.L10N.register(
"federatedfilesharing",
{
"Federated sharing" : "Federated sharing",
+ "Add to" : "Add to",
"Loading..." : "Loading...",
+ "Change server..." : "Change server...",
"Invalid Federated Cloud ID" : "Invalid Federated Cloud ID",
"Sharing %s failed, because this item is already shared with %s" : "Sharing %s failed, because this item is already shared with %s",
"Not allowed to create a federated share with the same user" : "Not allowed to create a federated share with the same user",
@@ -19,8 +21,10 @@ OC.L10N.register(
"Share with me through my #ownCloud Federated Cloud ID" : "Share with me through my #ownCloud Federated Cloud ID",
"Federated Cloud Sharing" : "Federated Cloud Sharing",
"Open documentation" : "Open documentation",
+ "Periodically synchronize outdated federated shares for active users" : "Periodically synchronise outdated federated shares for active users",
"Allow users on this server to send shares to other servers" : "Allow users on this server to send shares to other servers",
"Allow users on this server to receive shares from other servers" : "Allow users on this server to receive shares from other servers",
+ "Automatically accept federated shares from trusted servers" : "Automatically accept federated shares from trusted servers",
"Federated Cloud" : "Federated Cloud",
"Your Federated Cloud ID:" : "Your Federated Cloud ID:",
"Share it:" : "Share it:",
diff --git a/apps/federatedfilesharing/l10n/en_GB.json b/apps/federatedfilesharing/l10n/en_GB.json
index a9357dcdb692..0961adbcc963 100644
--- a/apps/federatedfilesharing/l10n/en_GB.json
+++ b/apps/federatedfilesharing/l10n/en_GB.json
@@ -1,6 +1,8 @@
{ "translations": {
"Federated sharing" : "Federated sharing",
+ "Add to" : "Add to",
"Loading..." : "Loading...",
+ "Change server..." : "Change server...",
"Invalid Federated Cloud ID" : "Invalid Federated Cloud ID",
"Sharing %s failed, because this item is already shared with %s" : "Sharing %s failed, because this item is already shared with %s",
"Not allowed to create a federated share with the same user" : "Not allowed to create a federated share with the same user",
@@ -17,8 +19,10 @@
"Share with me through my #ownCloud Federated Cloud ID" : "Share with me through my #ownCloud Federated Cloud ID",
"Federated Cloud Sharing" : "Federated Cloud Sharing",
"Open documentation" : "Open documentation",
+ "Periodically synchronize outdated federated shares for active users" : "Periodically synchronise outdated federated shares for active users",
"Allow users on this server to send shares to other servers" : "Allow users on this server to send shares to other servers",
"Allow users on this server to receive shares from other servers" : "Allow users on this server to receive shares from other servers",
+ "Automatically accept federated shares from trusted servers" : "Automatically accept federated shares from trusted servers",
"Federated Cloud" : "Federated Cloud",
"Your Federated Cloud ID:" : "Your Federated Cloud ID:",
"Share it:" : "Share it:",
From db93548d31b5f1bcf588ea74d7b35f4345d345bd Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Thu, 18 May 2023 16:51:40 +0545
Subject: [PATCH 118/244] Adjust Symfony OutputFormatterInterface in unit tests
---
tests/Core/Command/Encryption/ChangeKeyStorageRootTest.php | 5 ++++-
tests/lib/Encryption/DecryptAllTest.php | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/tests/Core/Command/Encryption/ChangeKeyStorageRootTest.php b/tests/Core/Command/Encryption/ChangeKeyStorageRootTest.php
index 061e2a932710..5adf8a4ccbe1 100644
--- a/tests/Core/Command/Encryption/ChangeKeyStorageRootTest.php
+++ b/tests/Core/Command/Encryption/ChangeKeyStorageRootTest.php
@@ -26,6 +26,7 @@
use OC\Files\View;
use OCP\IConfig;
use OCP\IUserManager;
+use Symfony\Component\Console\Formatter\OutputFormatterInterface;
use Symfony\Component\Console\Helper\QuestionHelper;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
@@ -71,7 +72,9 @@ public function setUp(): void {
$this->outputInterface = $this->createMock('Symfony\Component\Console\Output\OutputInterface');
$this->userInterface = $this->createMock('\OCP\UserInterface');
- $outputFormatterInterface = $this->createMock('Symfony\Component\Console\Formatter\OutputFormatterInterface');
+ $outputFormatterInterface = $this->createMock(OutputFormatterInterface::class);
+ $outputFormatterInterface->expects($this->any())->method('isDecorated')
+ ->willReturn(false);
$this->outputInterface->expects($this->any())->method('getFormatter')
->willReturn($outputFormatterInterface);
diff --git a/tests/lib/Encryption/DecryptAllTest.php b/tests/lib/Encryption/DecryptAllTest.php
index da42efc78e7f..8978a19ca568 100644
--- a/tests/lib/Encryption/DecryptAllTest.php
+++ b/tests/lib/Encryption/DecryptAllTest.php
@@ -102,8 +102,11 @@ public function setUp(): void {
$this->userInterface = $this->getMockBuilder(UserInterface::class)
->disableOriginalConstructor()->getMock();
+ $outputFormatterInterface = $this->createMock(OutputFormatterInterface::class);
+ $outputFormatterInterface->expects($this->any())->method('isDecorated')
+ ->willReturn(false);
$this->outputInterface->expects($this->any())->method('getFormatter')
- ->willReturn($this->createMock(OutputFormatterInterface::class));
+ ->willReturn($outputFormatterInterface);
$this->instance = new DecryptAll($this->encryptionManager, $this->userManager, $this->view, $this->logger);
From dd5f6f0473a2bbfd09182f703c840d7a5b818655 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Fri, 19 May 2023 11:56:05 +0545
Subject: [PATCH 119/244] Adjust PHP unit tests for Symfony 5
---
.../tests/NotificationsTest.php | 4 ++--
apps/federation/tests/TrustedServersTest.php | 6 ++++++
.../tests/Controller/ViewControllerTest.php | 6 ++++++
apps/files_sharing/tests/HooksTest.php | 18 +++++++++---------
apps/files_trashbin/tests/TrashbinTest.php | 2 +-
tests/Core/Controller/RolesControllerTest.php | 1 +
tests/lib/Repair/AppsTest.php | 6 ++++++
7 files changed, 31 insertions(+), 12 deletions(-)
diff --git a/apps/federatedfilesharing/tests/NotificationsTest.php b/apps/federatedfilesharing/tests/NotificationsTest.php
index 416b35f1093c..5ff29603c02a 100644
--- a/apps/federatedfilesharing/tests/NotificationsTest.php
+++ b/apps/federatedfilesharing/tests/NotificationsTest.php
@@ -341,14 +341,14 @@ public function dataTryHttpPostToShareEndpointInException() {
public function testDeclineEvent() {
$dispatcher = \OC::$server->getEventDispatcher();
$event = $dispatcher->dispatch(
- DeclineShare::class,
new DeclineShare(
[
'remote_id' => '4354353',
'remote' => 'http://localhost',
'share_token' => 'ohno'
]
- )
+ ),
+ DeclineShare::class
);
$this->assertInstanceOf(DeclineShare::class, $event);
}
diff --git a/apps/federation/tests/TrustedServersTest.php b/apps/federation/tests/TrustedServersTest.php
index 4b7dd1fc3019..735b380124c1 100644
--- a/apps/federation/tests/TrustedServersTest.php
+++ b/apps/federation/tests/TrustedServersTest.php
@@ -74,6 +74,12 @@ public function setUp(): void {
->disableOriginalConstructor()->getMock();
$this->dispatcher = $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcherInterface')
->disableOriginalConstructor()->getMock();
+ $this->dispatcher->expects($this->any())->method('dispatch')
+ ->will(
+ $this->returnCallback(function ($object) {
+ return $object;
+ })
+ );
$this->httpClientService = $this->createMock('OCP\Http\Client\IClientService');
$this->httpClient = $this->createMock('OCP\Http\Client\IClient');
$this->response = $this->createMock('OCP\Http\Client\IResponse');
diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php
index 48b2c84c1c9c..49ef6152c969 100644
--- a/apps/files/tests/Controller/ViewControllerTest.php
+++ b/apps/files/tests/Controller/ViewControllerTest.php
@@ -75,6 +75,12 @@ public function setUp(): void {
$this->l10n = $this->createMock('\OCP\IL10N');
$this->config = $this->createMock('\OCP\IConfig');
$this->eventDispatcher = $this->createMock('\Symfony\Component\EventDispatcher\EventDispatcherInterface');
+ $this->eventDispatcher->expects($this->any())->method('dispatch')
+ ->will(
+ $this->returnCallback(function ($object) {
+ return $object;
+ })
+ );
$this->userSession = $this->createMock('\OCP\IUserSession');
$this->appManager = $this->createMock('\OCP\App\IAppManager');
$this->user = $this->createMock('\OCP\IUser');
diff --git a/apps/files_sharing/tests/HooksTest.php b/apps/files_sharing/tests/HooksTest.php
index 22b91a6ab4ed..b7e930015aa6 100644
--- a/apps/files_sharing/tests/HooksTest.php
+++ b/apps/files_sharing/tests/HooksTest.php
@@ -147,7 +147,7 @@ public function testPrivateLink() {
'resolvedWebLink' => null,
'resolvedDavLink' => null,
]);
- $this->eventDispatcher->dispatch('files.resolvePrivateLink', $event);
+ $this->eventDispatcher->dispatch($event, 'files.resolvePrivateLink');
$this->assertEquals('/owncloud/index.php/apps/files/?view=sharingin&scrollto=123', $event->getArgument('resolvedWebLink'));
$this->assertNull($event->getArgument('resolvedDavLink'));
@@ -168,7 +168,7 @@ public function testPrivateLinkNoMatch() {
'resolvedWebLink' => null,
'resolvedDavLink' => null,
]);
- $this->eventDispatcher->dispatch('files.resolvePrivateLink', $event);
+ $this->eventDispatcher->dispatch($event, 'files.resolvePrivateLink');
$this->assertNull($event->getArgument('resolvedWebLink'));
$this->assertNull($event->getArgument('resolvedDavLink'));
@@ -182,7 +182,7 @@ public function testDeleteGroup() {
$this->sharingAllowlist->expects($this->once())->method('setPublicShareSharersGroupsAllowlist')->with([]);
$event = new GenericEvent($group);
- $this->eventDispatcher->dispatch('group.postDelete', $event);
+ $this->eventDispatcher->dispatch($event, 'group.postDelete');
}
public function testPublishShareNotification() {
@@ -196,7 +196,7 @@ public function testPublishShareNotification() {
'share' => ['id' => '123'],
'shareObject' => $share,
]);
- $this->eventDispatcher->dispatch('share.afterCreate', $event);
+ $this->eventDispatcher->dispatch($event, 'share.afterCreate');
}
public function testDiscardShareNotification() {
@@ -210,7 +210,7 @@ public function testDiscardShareNotification() {
'share' => ['id' => '123'],
'shareObject' => $share,
]);
- $this->eventDispatcher->dispatch('share.afterDelete', $event);
+ $this->eventDispatcher->dispatch($event, 'share.afterDelete');
}
public function providesDataForCanGet() {
@@ -271,7 +271,7 @@ public function testCheckDirectCanBeDownloaded($path, $userFolder, $run) {
// Simulate direct download of file
$event = new GenericEvent(null, [ 'path' => $path ]);
- $this->eventDispatcher->dispatch('file.beforeGetDirect', $event);
+ $this->eventDispatcher->dispatch($event, 'file.beforeGetDirect');
$this->assertEquals($run, !$event->hasArgument('errorMessage'));
}
@@ -349,7 +349,7 @@ public function testCheckZipCanBeDownloaded($dir, $files, $userFolder, $run) {
// Simulate zip download of folder folder
$event = new GenericEvent(null, ['dir' => $dir, 'files' => $files, 'run' => true]);
- $this->eventDispatcher->dispatch('file.beforeCreateZip', $event);
+ $this->eventDispatcher->dispatch($event, 'file.beforeCreateZip');
$this->assertEquals($run, $event->getArgument('run'));
$this->assertEquals($run, !$event->hasArgument('errorMessage'));
@@ -360,7 +360,7 @@ public function testCheckFileUserNotFound() {
// Simulate zip download of folder folder
$event = new GenericEvent(null, ['dir' => '/test', 'files' => ['test.txt'], 'run' => true]);
- $this->eventDispatcher->dispatch('file.beforeCreateZip', $event);
+ $this->eventDispatcher->dispatch($event, 'file.beforeCreateZip');
// It should run as this would restrict e.g. share links otherwise
$this->assertTrue($event->getArgument('run'));
@@ -394,7 +394,7 @@ public function testPublishShareSelfUnshareEvent() {
'shareRecipient' => 'recipient_user',
'shareOwner' => 'owner_user',
]);
- $this->eventDispatcher->dispatch('fromself.unshare', $event);
+ $this->eventDispatcher->dispatch($event, 'fromself.unshare');
}
public function testExtendJsConfig() {
diff --git a/apps/files_trashbin/tests/TrashbinTest.php b/apps/files_trashbin/tests/TrashbinTest.php
index 0cbd4f74441c..8a9f550c8180 100644
--- a/apps/files_trashbin/tests/TrashbinTest.php
+++ b/apps/files_trashbin/tests/TrashbinTest.php
@@ -565,7 +565,7 @@ public function testPrivateLink() {
'resolvedWebLink' => null,
'resolvedDavLink' => null,
]);
- \OC::$server->getEventDispatcher()->dispatch('files.resolvePrivateLink', $event);
+ \OC::$server->getEventDispatcher()->dispatch($event, 'files.resolvePrivateLink');
$this->assertEquals('/owncloud/index.php/apps/files/?view=trashbin&dir=/test.d1462861890/sub&scrollto=somefile.txt', $event->getArgument('resolvedWebLink'));
$this->assertNull($event->getArgument('resolvedDavLink'));
diff --git a/tests/Core/Controller/RolesControllerTest.php b/tests/Core/Controller/RolesControllerTest.php
index afea0309e6ce..962cb68ebf1f 100644
--- a/tests/Core/Controller/RolesControllerTest.php
+++ b/tests/Core/Controller/RolesControllerTest.php
@@ -47,6 +47,7 @@ public function testGetAvatarNoAvatar() {
'id' => 'test.tester',
'displayName' => 'A tester which tests ....'
]);
+ return $event;
});
$result = $controller->getRoles();
diff --git a/tests/lib/Repair/AppsTest.php b/tests/lib/Repair/AppsTest.php
index 2c4287beecc4..f7b48e4c9c6a 100644
--- a/tests/lib/Repair/AppsTest.php
+++ b/tests/lib/Repair/AppsTest.php
@@ -49,6 +49,12 @@ protected function setUp(): void {
$this->appManager = $this->createMock(IAppManager::class);
$this->defaults = $this->createMock(\OC_Defaults::class);
$this->eventDispatcher = $this->createMock(EventDispatcherInterface::class);
+ $this->eventDispatcher->expects($this->any())->method('dispatch')
+ ->will(
+ $this->returnCallback(function ($object) {
+ return $object;
+ })
+ );
$this->config = $this->createMock(IConfig::class);
$this->repair = new Apps(
$this->appManager,
From c2d57421e1005506aacabc3b8b7c454c73916411 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Fri, 19 May 2023 12:53:30 +0545
Subject: [PATCH 120/244] Bump version to 10.13.0 prealpha
---
version.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/version.php b/version.php
index a70a567bda66..8789d7316679 100644
--- a/version.php
+++ b/version.php
@@ -25,10 +25,10 @@
// We only can count up. The 4. digit is only for the internal patchlevel to trigger DB upgrades
// between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel
// when updating major/minor version number.
-$OC_Version = [10, 12, 1, 3];
+$OC_Version = [10, 13, 0, 0];
// The human-readable string
-$OC_VersionString = '10.12.1';
+$OC_VersionString = '10.13.0 prealpha';
$OC_VersionCanBeUpgradedFrom = [[8, 2, 11],[9, 0, 9],[9, 1]];
From 1f58cf76ef0feb169bef4c51b7cd1deca0070a94 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Fri, 19 May 2023 15:03:33 +0545
Subject: [PATCH 121/244] Do not try to revert LDAP settings of a deleted
config
---
tests/acceptance/features/bootstrap/Provisioning.php | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tests/acceptance/features/bootstrap/Provisioning.php b/tests/acceptance/features/bootstrap/Provisioning.php
index a5ba166ba831..9a0501bacd5b 100644
--- a/tests/acceptance/features/bootstrap/Provisioning.php
+++ b/tests/acceptance/features/bootstrap/Provisioning.php
@@ -865,6 +865,12 @@ public function resetOldLdapConfig():void {
['ldap:delete-config', $configId],
$this->getStepLineRef()
);
+ // The LDAP config has been deleted, so any settings that were
+ // changed in that config do not need to be reverted.
+ // Remove the memory of those settings.
+ if (isset($this->oldLdapConfig[$configId])) {
+ unset($this->oldLdapConfig[$configId]);
+ }
}
foreach ($this->oldLdapConfig as $configId => $settings) {
foreach ($settings as $configKey => $configValue) {
From a79e414b52ac4fc36406825e8ab9d2f7d7b3185c Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Sat, 20 May 2023 00:16:15 +0000
Subject: [PATCH 122/244] [tx] updated from transifex
---
apps/files/l10n/en_GB.js | 19 +++++++++++++
apps/files/l10n/en_GB.json | 19 +++++++++++++
apps/files_sharing/l10n/en_GB.js | 27 ++++++++++++++++++-
apps/files_sharing/l10n/en_GB.json | 27 ++++++++++++++++++-
tests/data/apptheme/apps/files/l10n/en_GB.js | 19 +++++++++++++
.../data/apptheme/apps/files/l10n/en_GB.json | 19 +++++++++++++
.../data/themes/abc/apps/files/l10n/en_GB.js | 19 +++++++++++++
.../themes/abc/apps/files/l10n/en_GB.json | 19 +++++++++++++
8 files changed, 166 insertions(+), 2 deletions(-)
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index b59f761f81ea..2728de27e078 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -32,6 +32,7 @@ OC.L10N.register(
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
+ "How do you want to open this file?" : "How do you want to open this file?",
"Could not load info for file \"{file}\"" : "Could not load info for file \"{file}\"",
"Files" : "Files",
"Details" : "Details",
@@ -40,7 +41,12 @@ OC.L10N.register(
"Unable to determine date" : "Unable to determine date",
"Invalid path" : "Invalid path",
"This operation is forbidden" : "This operation is forbidden",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "Directory \"{dir}\" is unavailable, please contact the administrator",
+ "Storage for \"{dir}\" is temporarily not available" : "Storage for \"{dir}\" is temporarily not available",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare.",
+ "Directory \"{dir}\" not found" : "Directory \"{dir}\" not found",
"group" : "group",
+ "Federated share" : "Federated share",
"via" : "via",
"Could not move \"{file}\", target exists" : "Could not move \"{file}\", target exists",
"Could not move \"{file}\" because either the file or the target are locked." : "Could not move \"{file}\" because either the file or the target are locked.",
@@ -68,7 +74,10 @@ OC.L10N.register(
"New" : "New",
"Unknown user" : "Unknown user",
"Lock status" : "Lock status",
+ "Lock file" : "Lock file",
+ "Failed to lock." : "Failed to lock.",
"This resource is locked. Click to see more details." : "This resource is locked. Click to see more details.",
+ "Encountered problem accessing the folder {name}" : "Encountered problem accessing the folder {name}",
"\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.",
"File name cannot be empty." : "File name cannot be empty.",
"File name cannot contain \"/\"." : "File name cannot contain \"/\".",
@@ -79,6 +88,7 @@ OC.L10N.register(
"Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["matches '{filter}'","match '{filter}'"],
"{owner} has locked this resource via {path}" : "{owner} has locked this resource via {path}",
+ "Unlock" : "Unlock",
"Could not unlock, please contact the lock owner {owner}" : "Could not unlock, please contact the lock owner {owner}",
"Unlock failed with status {status}" : "Unlock failed with status {status}",
"Locks" : "Locks",
@@ -100,18 +110,27 @@ OC.L10N.register(
"Limit notifications about creation and changes to your favorite files (Stream only)" : "Limit notifications about creation and changes to your favourite files (Stream only)",
"A file or folder has been deleted" : "A file or folder has been deleted",
"A file or folder has been restored" : "A file or folder has been restored",
+ "A file or folder has been renamed" : "A file or folder has been renamed",
+ "A file or folder has been moved" : "A file or folder has been moved",
"You created %1$s" : "You created %1$s",
"%2$s created %1$s" : "%2$s created %1$s",
"%1$s was created in a public folder" : "%1$s was created in a public folder",
"You changed %1$s" : "You changed %1$s",
"%2$s changed %1$s" : "%2$s changed %1$s",
"You deleted %1$s" : "You deleted %1$s",
+ "%1$s was deleted due to automation rule" : "%1$s was deleted due to automation rule",
"%2$s deleted %1$s" : "%2$s deleted %1$s",
"You restored %1$s" : "You restored %1$s",
"%2$s restored %1$s" : "%2$s restored %1$s",
+ "You renamed %2$s to %1$s" : "You renamed %2$s to %1$s",
+ "%2$s renamed %3$s to %1$s" : "%2$s renamed %3$s to %1$s",
+ "You moved %2$s to %1$s" : "You moved %2$s to %1$s",
+ "%2$s moved %3$s to %1$s" : "%2$s moved %3$s to %1$s",
"Changed by %2$s" : "Changed by %2$s",
"Deleted by %2$s" : "Deleted by %2$s",
"Restored by %2$s" : "Restored by %2$s",
+ "You moved this file to %1$s" : "You moved this file to %1$s",
+ "%2$s moved this file to %1$s" : "%2$s moved this file to %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "You don't have permissions to access this file/folder - Please contact the owner to share it with you.",
"Upload (max. %s)" : "Upload (max. %s)",
"Settings" : "Settings",
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index ddb33a3c76f7..eafd36e0f6dd 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -30,6 +30,7 @@
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
+ "How do you want to open this file?" : "How do you want to open this file?",
"Could not load info for file \"{file}\"" : "Could not load info for file \"{file}\"",
"Files" : "Files",
"Details" : "Details",
@@ -38,7 +39,12 @@
"Unable to determine date" : "Unable to determine date",
"Invalid path" : "Invalid path",
"This operation is forbidden" : "This operation is forbidden",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "Directory \"{dir}\" is unavailable, please contact the administrator",
+ "Storage for \"{dir}\" is temporarily not available" : "Storage for \"{dir}\" is temporarily not available",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare.",
+ "Directory \"{dir}\" not found" : "Directory \"{dir}\" not found",
"group" : "group",
+ "Federated share" : "Federated share",
"via" : "via",
"Could not move \"{file}\", target exists" : "Could not move \"{file}\", target exists",
"Could not move \"{file}\" because either the file or the target are locked." : "Could not move \"{file}\" because either the file or the target are locked.",
@@ -66,7 +72,10 @@
"New" : "New",
"Unknown user" : "Unknown user",
"Lock status" : "Lock status",
+ "Lock file" : "Lock file",
+ "Failed to lock." : "Failed to lock.",
"This resource is locked. Click to see more details." : "This resource is locked. Click to see more details.",
+ "Encountered problem accessing the folder {name}" : "Encountered problem accessing the folder {name}",
"\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.",
"File name cannot be empty." : "File name cannot be empty.",
"File name cannot contain \"/\"." : "File name cannot contain \"/\".",
@@ -77,6 +86,7 @@
"Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["matches '{filter}'","match '{filter}'"],
"{owner} has locked this resource via {path}" : "{owner} has locked this resource via {path}",
+ "Unlock" : "Unlock",
"Could not unlock, please contact the lock owner {owner}" : "Could not unlock, please contact the lock owner {owner}",
"Unlock failed with status {status}" : "Unlock failed with status {status}",
"Locks" : "Locks",
@@ -98,18 +108,27 @@
"Limit notifications about creation and changes to your favorite files (Stream only)" : "Limit notifications about creation and changes to your favourite files (Stream only)",
"A file or folder has been deleted" : "A file or folder has been deleted",
"A file or folder has been restored" : "A file or folder has been restored",
+ "A file or folder has been renamed" : "A file or folder has been renamed",
+ "A file or folder has been moved" : "A file or folder has been moved",
"You created %1$s" : "You created %1$s",
"%2$s created %1$s" : "%2$s created %1$s",
"%1$s was created in a public folder" : "%1$s was created in a public folder",
"You changed %1$s" : "You changed %1$s",
"%2$s changed %1$s" : "%2$s changed %1$s",
"You deleted %1$s" : "You deleted %1$s",
+ "%1$s was deleted due to automation rule" : "%1$s was deleted due to automation rule",
"%2$s deleted %1$s" : "%2$s deleted %1$s",
"You restored %1$s" : "You restored %1$s",
"%2$s restored %1$s" : "%2$s restored %1$s",
+ "You renamed %2$s to %1$s" : "You renamed %2$s to %1$s",
+ "%2$s renamed %3$s to %1$s" : "%2$s renamed %3$s to %1$s",
+ "You moved %2$s to %1$s" : "You moved %2$s to %1$s",
+ "%2$s moved %3$s to %1$s" : "%2$s moved %3$s to %1$s",
"Changed by %2$s" : "Changed by %2$s",
"Deleted by %2$s" : "Deleted by %2$s",
"Restored by %2$s" : "Restored by %2$s",
+ "You moved this file to %1$s" : "You moved this file to %1$s",
+ "%2$s moved this file to %1$s" : "%2$s moved this file to %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "You don't have permissions to access this file/folder - Please contact the owner to share it with you.",
"Upload (max. %s)" : "Upload (max. %s)",
"Settings" : "Settings",
diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js
index a34cf7a1fa00..625e86f9924b 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -4,7 +4,9 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Server to server sharing is not enabled on this server",
"The mountpoint name contains invalid characters." : "The mountpoint name contains invalid characters.",
"Not allowed to create a federated share with the same user server" : "Not allowed to create a federated share with the same user server",
+ "Could not authenticate to federated share, password might be wrong" : "Could not authenticate to federated share, password might be wrong",
"Storage not valid" : "Storage not valid",
+ "Couldn't add federated share" : "Couldn't add federated share",
"Shared with you" : "Shared with you",
"Shared with others" : "Shared with others",
"Shared by link" : "Shared by link",
@@ -21,13 +23,25 @@ OC.L10N.register(
"An error occurred while updating share state: {message}" : "An error occurred while updating share state: {message}",
"Accept Share" : "Accept Share",
"Decline Share" : "Decline Share",
+ "Do you want to add the federated share {name} from {owner}@{remote}?" : "Do you want to add the federated share {name} from {owner}@{remote}?",
+ "Federated share" : "Federated share",
+ "Federated share password" : "Federated share password",
"Cancel" : "Cancel",
+ "Add federated share" : "Add federated share",
+ "The video cannot be played because your browser does not support the file type. Please try another browser." : "The video cannot be played because your browser does not support the file type. Please try another browser.",
"You can upload into this folder" : "You can upload into this folder",
+ "Add to another cloud" : "Add to another cloud",
+ "Enter the server address to add the content to" : "Enter the server address to add the content to",
"Add" : "Add",
"No ownCloud installation (7 or higher) found at {remote}" : "No ownCloud installation (7 or higher) found at {remote}",
"Invalid ownCloud url" : "Invalid ownCloud URL",
"Share" : "Share",
"Create public link" : "Create public link",
+ "Create and copy public link" : "Create and copy public link",
+ "Public quick link" : "Public quick link",
+ "Public link has been copied to the clipboard." : "Public link has been copied to the clipboard.",
+ "A new public link with download & view permissions has been created and copied to the clipboard." : "A new public link with download & view permissions has been created and copied to the clipboard.",
+ "The public link could not be created. Please contact the administrator for help." : "The public link could not be created. Please contact the administrator for help.",
"No expiration date set" : "No expiration date set",
"Declined" : "Declined",
"Pending" : "Pending",
@@ -36,6 +50,10 @@ OC.L10N.register(
"A file or folder has been shared" : "A file or folder has been shared",
"A file or folder was shared from another server" : "A file or folder was shared from another server",
"A public shared file or folder was downloaded" : "A public shared file or folder was downloaded",
+ "You received a new federated share %2$s from %1$s" : "You received a new federated share %2$s from %1$s",
+ "You received a new federated share from %s" : "You received a new federated share from %s",
+ "%1$s accepted federated share %2$s" : "%1$s accepted federated share %2$s",
+ "%1$s declined federated share %2$s" : "%1$s declined federated share %2$s",
"%1$s unshared %2$s from you" : "%1$s unshared %2$s from you",
"Public shared folder %1$s was downloaded" : "Public shared folder %1$s was downloaded",
"Public shared file %1$s was downloaded" : "Public shared file %1$s was downloaded",
@@ -55,6 +73,7 @@ OC.L10N.register(
"Your public link for %1$s expired" : "Your public link for %1$s expired",
"The public link of %2$s for %1$s expired" : "The public link of %2$s for %1$s expired",
"%2$s shared %1$s with you" : "%2$s shared %1$s with you",
+ "The share for %1$s expired" : "The share for %1$s expired",
"%2$s removed the share for %1$s" : "%2$s removed the share for %1$s",
"Downloaded via public link" : "Downloaded via public link",
"Shared with %2$s" : "Shared with %2$s",
@@ -73,12 +92,15 @@ OC.L10N.register(
"Public link expired" : "Public link expired",
"Public link of %2$s expired" : "Public link of %2$s expired",
"Shared by %2$s" : "Shared by %2$s",
+ "Received federated share from %1$s" : "Received federated share from %1$s",
+ "Received federated share from %s" : "Received federated share from %s",
"Shares" : "Shares",
"File sharing" : "File sharing",
"Public link" : "Public link",
"Couldn't send mail to following recipient(s): %s " : "Couldn't send mail to following recipient(s): %s ",
"Share API is disabled" : "Share API is disabled",
"Wrong share ID, share doesn't exist" : "Wrong share ID, share doesn't exist",
+ "Share points to a node not available" : "Share points to a node not available",
"Could not delete share" : "Could not delete share",
"Please specify a file or folder path" : "Please specify a file or folder path",
"Wrong path, file/folder doesn't exist" : "Wrong path, file/folder doesn't exist",
@@ -88,9 +110,11 @@ OC.L10N.register(
"Please specify a valid group" : "Please specify a valid group",
"The group is blacklisted for sharing" : "The group is blacklisted for sharing",
"Public link sharing is disabled by the administrator" : "Public link sharing is disabled by the administrator",
+ "Public link creation is only possible for certain groups" : "Public link creation is only possible for certain groups",
"Public upload disabled by the administrator" : "Public upload disabled by the administrator",
"Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
"Sharing %s failed because the back end does not allow shares from type %s" : "Sharing %s failed because the back end does not allow shares from type %s",
+ "shareWith parameter must be a string" : "shareWith parameter must be a string",
"Unknown share type" : "Unknown share type",
"Could not lock path" : "Could not lock path",
"Not a directory" : "Not a directory",
@@ -127,6 +151,7 @@ OC.L10N.register(
"Nothing to configure." : "Nothing to configure.",
"Group Sharing Blacklist" : "Group Sharing Blacklist",
"Exclude groups from receiving shares" : "Exclude groups from receiving shares",
- "These groups will not be available to share with. Members of the group are not restricted in initiating shares and can receive shares with other groups they are a member of as usual." : "These groups will not be available to share with. Members of the group are not restricted in initiating shares and can receive shares with other groups they are a member of as usual."
+ "These groups will not be available to share with. Members of the group are not restricted in initiating shares and can receive shares with other groups they are a member of as usual." : "These groups will not be available to share with. Members of the group are not restricted in initiating shares and can receive shares with other groups they are a member of as usual.",
+ "Only certain groups are allowed to create public links" : "Only certain groups are allowed to create public links"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json
index acbd3b1abbe8..01c06777bcd4 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -2,7 +2,9 @@
"Server to server sharing is not enabled on this server" : "Server to server sharing is not enabled on this server",
"The mountpoint name contains invalid characters." : "The mountpoint name contains invalid characters.",
"Not allowed to create a federated share with the same user server" : "Not allowed to create a federated share with the same user server",
+ "Could not authenticate to federated share, password might be wrong" : "Could not authenticate to federated share, password might be wrong",
"Storage not valid" : "Storage not valid",
+ "Couldn't add federated share" : "Couldn't add federated share",
"Shared with you" : "Shared with you",
"Shared with others" : "Shared with others",
"Shared by link" : "Shared by link",
@@ -19,13 +21,25 @@
"An error occurred while updating share state: {message}" : "An error occurred while updating share state: {message}",
"Accept Share" : "Accept Share",
"Decline Share" : "Decline Share",
+ "Do you want to add the federated share {name} from {owner}@{remote}?" : "Do you want to add the federated share {name} from {owner}@{remote}?",
+ "Federated share" : "Federated share",
+ "Federated share password" : "Federated share password",
"Cancel" : "Cancel",
+ "Add federated share" : "Add federated share",
+ "The video cannot be played because your browser does not support the file type. Please try another browser." : "The video cannot be played because your browser does not support the file type. Please try another browser.",
"You can upload into this folder" : "You can upload into this folder",
+ "Add to another cloud" : "Add to another cloud",
+ "Enter the server address to add the content to" : "Enter the server address to add the content to",
"Add" : "Add",
"No ownCloud installation (7 or higher) found at {remote}" : "No ownCloud installation (7 or higher) found at {remote}",
"Invalid ownCloud url" : "Invalid ownCloud URL",
"Share" : "Share",
"Create public link" : "Create public link",
+ "Create and copy public link" : "Create and copy public link",
+ "Public quick link" : "Public quick link",
+ "Public link has been copied to the clipboard." : "Public link has been copied to the clipboard.",
+ "A new public link with download & view permissions has been created and copied to the clipboard." : "A new public link with download & view permissions has been created and copied to the clipboard.",
+ "The public link could not be created. Please contact the administrator for help." : "The public link could not be created. Please contact the administrator for help.",
"No expiration date set" : "No expiration date set",
"Declined" : "Declined",
"Pending" : "Pending",
@@ -34,6 +48,10 @@
"A file or folder has been shared" : "A file or folder has been shared",
"A file or folder was shared from another server" : "A file or folder was shared from another server",
"A public shared file or folder was downloaded" : "A public shared file or folder was downloaded",
+ "You received a new federated share %2$s from %1$s" : "You received a new federated share %2$s from %1$s",
+ "You received a new federated share from %s" : "You received a new federated share from %s",
+ "%1$s accepted federated share %2$s" : "%1$s accepted federated share %2$s",
+ "%1$s declined federated share %2$s" : "%1$s declined federated share %2$s",
"%1$s unshared %2$s from you" : "%1$s unshared %2$s from you",
"Public shared folder %1$s was downloaded" : "Public shared folder %1$s was downloaded",
"Public shared file %1$s was downloaded" : "Public shared file %1$s was downloaded",
@@ -53,6 +71,7 @@
"Your public link for %1$s expired" : "Your public link for %1$s expired",
"The public link of %2$s for %1$s expired" : "The public link of %2$s for %1$s expired",
"%2$s shared %1$s with you" : "%2$s shared %1$s with you",
+ "The share for %1$s expired" : "The share for %1$s expired",
"%2$s removed the share for %1$s" : "%2$s removed the share for %1$s",
"Downloaded via public link" : "Downloaded via public link",
"Shared with %2$s" : "Shared with %2$s",
@@ -71,12 +90,15 @@
"Public link expired" : "Public link expired",
"Public link of %2$s expired" : "Public link of %2$s expired",
"Shared by %2$s" : "Shared by %2$s",
+ "Received federated share from %1$s" : "Received federated share from %1$s",
+ "Received federated share from %s" : "Received federated share from %s",
"Shares" : "Shares",
"File sharing" : "File sharing",
"Public link" : "Public link",
"Couldn't send mail to following recipient(s): %s " : "Couldn't send mail to following recipient(s): %s ",
"Share API is disabled" : "Share API is disabled",
"Wrong share ID, share doesn't exist" : "Wrong share ID, share doesn't exist",
+ "Share points to a node not available" : "Share points to a node not available",
"Could not delete share" : "Could not delete share",
"Please specify a file or folder path" : "Please specify a file or folder path",
"Wrong path, file/folder doesn't exist" : "Wrong path, file/folder doesn't exist",
@@ -86,9 +108,11 @@
"Please specify a valid group" : "Please specify a valid group",
"The group is blacklisted for sharing" : "The group is blacklisted for sharing",
"Public link sharing is disabled by the administrator" : "Public link sharing is disabled by the administrator",
+ "Public link creation is only possible for certain groups" : "Public link creation is only possible for certain groups",
"Public upload disabled by the administrator" : "Public upload disabled by the administrator",
"Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
"Sharing %s failed because the back end does not allow shares from type %s" : "Sharing %s failed because the back end does not allow shares from type %s",
+ "shareWith parameter must be a string" : "shareWith parameter must be a string",
"Unknown share type" : "Unknown share type",
"Could not lock path" : "Could not lock path",
"Not a directory" : "Not a directory",
@@ -125,6 +149,7 @@
"Nothing to configure." : "Nothing to configure.",
"Group Sharing Blacklist" : "Group Sharing Blacklist",
"Exclude groups from receiving shares" : "Exclude groups from receiving shares",
- "These groups will not be available to share with. Members of the group are not restricted in initiating shares and can receive shares with other groups they are a member of as usual." : "These groups will not be available to share with. Members of the group are not restricted in initiating shares and can receive shares with other groups they are a member of as usual."
+ "These groups will not be available to share with. Members of the group are not restricted in initiating shares and can receive shares with other groups they are a member of as usual." : "These groups will not be available to share with. Members of the group are not restricted in initiating shares and can receive shares with other groups they are a member of as usual.",
+ "Only certain groups are allowed to create public links" : "Only certain groups are allowed to create public links"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/tests/data/apptheme/apps/files/l10n/en_GB.js b/tests/data/apptheme/apps/files/l10n/en_GB.js
index b59f761f81ea..2728de27e078 100644
--- a/tests/data/apptheme/apps/files/l10n/en_GB.js
+++ b/tests/data/apptheme/apps/files/l10n/en_GB.js
@@ -32,6 +32,7 @@ OC.L10N.register(
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
+ "How do you want to open this file?" : "How do you want to open this file?",
"Could not load info for file \"{file}\"" : "Could not load info for file \"{file}\"",
"Files" : "Files",
"Details" : "Details",
@@ -40,7 +41,12 @@ OC.L10N.register(
"Unable to determine date" : "Unable to determine date",
"Invalid path" : "Invalid path",
"This operation is forbidden" : "This operation is forbidden",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "Directory \"{dir}\" is unavailable, please contact the administrator",
+ "Storage for \"{dir}\" is temporarily not available" : "Storage for \"{dir}\" is temporarily not available",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare.",
+ "Directory \"{dir}\" not found" : "Directory \"{dir}\" not found",
"group" : "group",
+ "Federated share" : "Federated share",
"via" : "via",
"Could not move \"{file}\", target exists" : "Could not move \"{file}\", target exists",
"Could not move \"{file}\" because either the file or the target are locked." : "Could not move \"{file}\" because either the file or the target are locked.",
@@ -68,7 +74,10 @@ OC.L10N.register(
"New" : "New",
"Unknown user" : "Unknown user",
"Lock status" : "Lock status",
+ "Lock file" : "Lock file",
+ "Failed to lock." : "Failed to lock.",
"This resource is locked. Click to see more details." : "This resource is locked. Click to see more details.",
+ "Encountered problem accessing the folder {name}" : "Encountered problem accessing the folder {name}",
"\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.",
"File name cannot be empty." : "File name cannot be empty.",
"File name cannot contain \"/\"." : "File name cannot contain \"/\".",
@@ -79,6 +88,7 @@ OC.L10N.register(
"Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["matches '{filter}'","match '{filter}'"],
"{owner} has locked this resource via {path}" : "{owner} has locked this resource via {path}",
+ "Unlock" : "Unlock",
"Could not unlock, please contact the lock owner {owner}" : "Could not unlock, please contact the lock owner {owner}",
"Unlock failed with status {status}" : "Unlock failed with status {status}",
"Locks" : "Locks",
@@ -100,18 +110,27 @@ OC.L10N.register(
"Limit notifications about creation and changes to your favorite files (Stream only)" : "Limit notifications about creation and changes to your favourite files (Stream only)",
"A file or folder has been deleted" : "A file or folder has been deleted",
"A file or folder has been restored" : "A file or folder has been restored",
+ "A file or folder has been renamed" : "A file or folder has been renamed",
+ "A file or folder has been moved" : "A file or folder has been moved",
"You created %1$s" : "You created %1$s",
"%2$s created %1$s" : "%2$s created %1$s",
"%1$s was created in a public folder" : "%1$s was created in a public folder",
"You changed %1$s" : "You changed %1$s",
"%2$s changed %1$s" : "%2$s changed %1$s",
"You deleted %1$s" : "You deleted %1$s",
+ "%1$s was deleted due to automation rule" : "%1$s was deleted due to automation rule",
"%2$s deleted %1$s" : "%2$s deleted %1$s",
"You restored %1$s" : "You restored %1$s",
"%2$s restored %1$s" : "%2$s restored %1$s",
+ "You renamed %2$s to %1$s" : "You renamed %2$s to %1$s",
+ "%2$s renamed %3$s to %1$s" : "%2$s renamed %3$s to %1$s",
+ "You moved %2$s to %1$s" : "You moved %2$s to %1$s",
+ "%2$s moved %3$s to %1$s" : "%2$s moved %3$s to %1$s",
"Changed by %2$s" : "Changed by %2$s",
"Deleted by %2$s" : "Deleted by %2$s",
"Restored by %2$s" : "Restored by %2$s",
+ "You moved this file to %1$s" : "You moved this file to %1$s",
+ "%2$s moved this file to %1$s" : "%2$s moved this file to %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "You don't have permissions to access this file/folder - Please contact the owner to share it with you.",
"Upload (max. %s)" : "Upload (max. %s)",
"Settings" : "Settings",
diff --git a/tests/data/apptheme/apps/files/l10n/en_GB.json b/tests/data/apptheme/apps/files/l10n/en_GB.json
index ddb33a3c76f7..eafd36e0f6dd 100644
--- a/tests/data/apptheme/apps/files/l10n/en_GB.json
+++ b/tests/data/apptheme/apps/files/l10n/en_GB.json
@@ -30,6 +30,7 @@
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
+ "How do you want to open this file?" : "How do you want to open this file?",
"Could not load info for file \"{file}\"" : "Could not load info for file \"{file}\"",
"Files" : "Files",
"Details" : "Details",
@@ -38,7 +39,12 @@
"Unable to determine date" : "Unable to determine date",
"Invalid path" : "Invalid path",
"This operation is forbidden" : "This operation is forbidden",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "Directory \"{dir}\" is unavailable, please contact the administrator",
+ "Storage for \"{dir}\" is temporarily not available" : "Storage for \"{dir}\" is temporarily not available",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare.",
+ "Directory \"{dir}\" not found" : "Directory \"{dir}\" not found",
"group" : "group",
+ "Federated share" : "Federated share",
"via" : "via",
"Could not move \"{file}\", target exists" : "Could not move \"{file}\", target exists",
"Could not move \"{file}\" because either the file or the target are locked." : "Could not move \"{file}\" because either the file or the target are locked.",
@@ -66,7 +72,10 @@
"New" : "New",
"Unknown user" : "Unknown user",
"Lock status" : "Lock status",
+ "Lock file" : "Lock file",
+ "Failed to lock." : "Failed to lock.",
"This resource is locked. Click to see more details." : "This resource is locked. Click to see more details.",
+ "Encountered problem accessing the folder {name}" : "Encountered problem accessing the folder {name}",
"\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.",
"File name cannot be empty." : "File name cannot be empty.",
"File name cannot contain \"/\"." : "File name cannot contain \"/\".",
@@ -77,6 +86,7 @@
"Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["matches '{filter}'","match '{filter}'"],
"{owner} has locked this resource via {path}" : "{owner} has locked this resource via {path}",
+ "Unlock" : "Unlock",
"Could not unlock, please contact the lock owner {owner}" : "Could not unlock, please contact the lock owner {owner}",
"Unlock failed with status {status}" : "Unlock failed with status {status}",
"Locks" : "Locks",
@@ -98,18 +108,27 @@
"Limit notifications about creation and changes to your favorite files (Stream only)" : "Limit notifications about creation and changes to your favourite files (Stream only)",
"A file or folder has been deleted" : "A file or folder has been deleted",
"A file or folder has been restored" : "A file or folder has been restored",
+ "A file or folder has been renamed" : "A file or folder has been renamed",
+ "A file or folder has been moved" : "A file or folder has been moved",
"You created %1$s" : "You created %1$s",
"%2$s created %1$s" : "%2$s created %1$s",
"%1$s was created in a public folder" : "%1$s was created in a public folder",
"You changed %1$s" : "You changed %1$s",
"%2$s changed %1$s" : "%2$s changed %1$s",
"You deleted %1$s" : "You deleted %1$s",
+ "%1$s was deleted due to automation rule" : "%1$s was deleted due to automation rule",
"%2$s deleted %1$s" : "%2$s deleted %1$s",
"You restored %1$s" : "You restored %1$s",
"%2$s restored %1$s" : "%2$s restored %1$s",
+ "You renamed %2$s to %1$s" : "You renamed %2$s to %1$s",
+ "%2$s renamed %3$s to %1$s" : "%2$s renamed %3$s to %1$s",
+ "You moved %2$s to %1$s" : "You moved %2$s to %1$s",
+ "%2$s moved %3$s to %1$s" : "%2$s moved %3$s to %1$s",
"Changed by %2$s" : "Changed by %2$s",
"Deleted by %2$s" : "Deleted by %2$s",
"Restored by %2$s" : "Restored by %2$s",
+ "You moved this file to %1$s" : "You moved this file to %1$s",
+ "%2$s moved this file to %1$s" : "%2$s moved this file to %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "You don't have permissions to access this file/folder - Please contact the owner to share it with you.",
"Upload (max. %s)" : "Upload (max. %s)",
"Settings" : "Settings",
diff --git a/tests/data/themes/abc/apps/files/l10n/en_GB.js b/tests/data/themes/abc/apps/files/l10n/en_GB.js
index b59f761f81ea..2728de27e078 100644
--- a/tests/data/themes/abc/apps/files/l10n/en_GB.js
+++ b/tests/data/themes/abc/apps/files/l10n/en_GB.js
@@ -32,6 +32,7 @@ OC.L10N.register(
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
+ "How do you want to open this file?" : "How do you want to open this file?",
"Could not load info for file \"{file}\"" : "Could not load info for file \"{file}\"",
"Files" : "Files",
"Details" : "Details",
@@ -40,7 +41,12 @@ OC.L10N.register(
"Unable to determine date" : "Unable to determine date",
"Invalid path" : "Invalid path",
"This operation is forbidden" : "This operation is forbidden",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "Directory \"{dir}\" is unavailable, please contact the administrator",
+ "Storage for \"{dir}\" is temporarily not available" : "Storage for \"{dir}\" is temporarily not available",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare.",
+ "Directory \"{dir}\" not found" : "Directory \"{dir}\" not found",
"group" : "group",
+ "Federated share" : "Federated share",
"via" : "via",
"Could not move \"{file}\", target exists" : "Could not move \"{file}\", target exists",
"Could not move \"{file}\" because either the file or the target are locked." : "Could not move \"{file}\" because either the file or the target are locked.",
@@ -68,7 +74,10 @@ OC.L10N.register(
"New" : "New",
"Unknown user" : "Unknown user",
"Lock status" : "Lock status",
+ "Lock file" : "Lock file",
+ "Failed to lock." : "Failed to lock.",
"This resource is locked. Click to see more details." : "This resource is locked. Click to see more details.",
+ "Encountered problem accessing the folder {name}" : "Encountered problem accessing the folder {name}",
"\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.",
"File name cannot be empty." : "File name cannot be empty.",
"File name cannot contain \"/\"." : "File name cannot contain \"/\".",
@@ -79,6 +88,7 @@ OC.L10N.register(
"Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["matches '{filter}'","match '{filter}'"],
"{owner} has locked this resource via {path}" : "{owner} has locked this resource via {path}",
+ "Unlock" : "Unlock",
"Could not unlock, please contact the lock owner {owner}" : "Could not unlock, please contact the lock owner {owner}",
"Unlock failed with status {status}" : "Unlock failed with status {status}",
"Locks" : "Locks",
@@ -100,18 +110,27 @@ OC.L10N.register(
"Limit notifications about creation and changes to your favorite files (Stream only)" : "Limit notifications about creation and changes to your favourite files (Stream only)",
"A file or folder has been deleted" : "A file or folder has been deleted",
"A file or folder has been restored" : "A file or folder has been restored",
+ "A file or folder has been renamed" : "A file or folder has been renamed",
+ "A file or folder has been moved" : "A file or folder has been moved",
"You created %1$s" : "You created %1$s",
"%2$s created %1$s" : "%2$s created %1$s",
"%1$s was created in a public folder" : "%1$s was created in a public folder",
"You changed %1$s" : "You changed %1$s",
"%2$s changed %1$s" : "%2$s changed %1$s",
"You deleted %1$s" : "You deleted %1$s",
+ "%1$s was deleted due to automation rule" : "%1$s was deleted due to automation rule",
"%2$s deleted %1$s" : "%2$s deleted %1$s",
"You restored %1$s" : "You restored %1$s",
"%2$s restored %1$s" : "%2$s restored %1$s",
+ "You renamed %2$s to %1$s" : "You renamed %2$s to %1$s",
+ "%2$s renamed %3$s to %1$s" : "%2$s renamed %3$s to %1$s",
+ "You moved %2$s to %1$s" : "You moved %2$s to %1$s",
+ "%2$s moved %3$s to %1$s" : "%2$s moved %3$s to %1$s",
"Changed by %2$s" : "Changed by %2$s",
"Deleted by %2$s" : "Deleted by %2$s",
"Restored by %2$s" : "Restored by %2$s",
+ "You moved this file to %1$s" : "You moved this file to %1$s",
+ "%2$s moved this file to %1$s" : "%2$s moved this file to %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "You don't have permissions to access this file/folder - Please contact the owner to share it with you.",
"Upload (max. %s)" : "Upload (max. %s)",
"Settings" : "Settings",
diff --git a/tests/data/themes/abc/apps/files/l10n/en_GB.json b/tests/data/themes/abc/apps/files/l10n/en_GB.json
index ddb33a3c76f7..eafd36e0f6dd 100644
--- a/tests/data/themes/abc/apps/files/l10n/en_GB.json
+++ b/tests/data/themes/abc/apps/files/l10n/en_GB.json
@@ -30,6 +30,7 @@
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
+ "How do you want to open this file?" : "How do you want to open this file?",
"Could not load info for file \"{file}\"" : "Could not load info for file \"{file}\"",
"Files" : "Files",
"Details" : "Details",
@@ -38,7 +39,12 @@
"Unable to determine date" : "Unable to determine date",
"Invalid path" : "Invalid path",
"This operation is forbidden" : "This operation is forbidden",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "Directory \"{dir}\" is unavailable, please contact the administrator",
+ "Storage for \"{dir}\" is temporarily not available" : "Storage for \"{dir}\" is temporarily not available",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare.",
+ "Directory \"{dir}\" not found" : "Directory \"{dir}\" not found",
"group" : "group",
+ "Federated share" : "Federated share",
"via" : "via",
"Could not move \"{file}\", target exists" : "Could not move \"{file}\", target exists",
"Could not move \"{file}\" because either the file or the target are locked." : "Could not move \"{file}\" because either the file or the target are locked.",
@@ -66,7 +72,10 @@
"New" : "New",
"Unknown user" : "Unknown user",
"Lock status" : "Lock status",
+ "Lock file" : "Lock file",
+ "Failed to lock." : "Failed to lock.",
"This resource is locked. Click to see more details." : "This resource is locked. Click to see more details.",
+ "Encountered problem accessing the folder {name}" : "Encountered problem accessing the folder {name}",
"\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.",
"File name cannot be empty." : "File name cannot be empty.",
"File name cannot contain \"/\"." : "File name cannot contain \"/\".",
@@ -77,6 +86,7 @@
"Your storage is almost full ({usedSpacePercent}%)" : "Your storage is almost full ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["matches '{filter}'","match '{filter}'"],
"{owner} has locked this resource via {path}" : "{owner} has locked this resource via {path}",
+ "Unlock" : "Unlock",
"Could not unlock, please contact the lock owner {owner}" : "Could not unlock, please contact the lock owner {owner}",
"Unlock failed with status {status}" : "Unlock failed with status {status}",
"Locks" : "Locks",
@@ -98,18 +108,27 @@
"Limit notifications about creation and changes to your favorite files (Stream only)" : "Limit notifications about creation and changes to your favourite files (Stream only)",
"A file or folder has been deleted" : "A file or folder has been deleted",
"A file or folder has been restored" : "A file or folder has been restored",
+ "A file or folder has been renamed" : "A file or folder has been renamed",
+ "A file or folder has been moved" : "A file or folder has been moved",
"You created %1$s" : "You created %1$s",
"%2$s created %1$s" : "%2$s created %1$s",
"%1$s was created in a public folder" : "%1$s was created in a public folder",
"You changed %1$s" : "You changed %1$s",
"%2$s changed %1$s" : "%2$s changed %1$s",
"You deleted %1$s" : "You deleted %1$s",
+ "%1$s was deleted due to automation rule" : "%1$s was deleted due to automation rule",
"%2$s deleted %1$s" : "%2$s deleted %1$s",
"You restored %1$s" : "You restored %1$s",
"%2$s restored %1$s" : "%2$s restored %1$s",
+ "You renamed %2$s to %1$s" : "You renamed %2$s to %1$s",
+ "%2$s renamed %3$s to %1$s" : "%2$s renamed %3$s to %1$s",
+ "You moved %2$s to %1$s" : "You moved %2$s to %1$s",
+ "%2$s moved %3$s to %1$s" : "%2$s moved %3$s to %1$s",
"Changed by %2$s" : "Changed by %2$s",
"Deleted by %2$s" : "Deleted by %2$s",
"Restored by %2$s" : "Restored by %2$s",
+ "You moved this file to %1$s" : "You moved this file to %1$s",
+ "%2$s moved this file to %1$s" : "%2$s moved this file to %1$s",
"You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "You don't have permissions to access this file/folder - Please contact the owner to share it with you.",
"Upload (max. %s)" : "Upload (max. %s)",
"Settings" : "Settings",
From be1b8b897c52c99cc93c0f04b79613987207ecea Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Sun, 21 May 2023 00:51:45 +0000
Subject: [PATCH 123/244] [tx] updated from transifex
---
apps/files/l10n/ja.js | 122 +-----------------
apps/files/l10n/ja.json | 122 +-----------------
core/l10n/ka_GE.js | 3 +
core/l10n/ka_GE.json | 3 +
tests/data/apptheme/apps/files/l10n/ja.js | 122 +-----------------
tests/data/apptheme/apps/files/l10n/ja.json | 122 +-----------------
tests/data/themes/abc/apps/files/l10n/ja.js | 122 +-----------------
tests/data/themes/abc/apps/files/l10n/ja.json | 122 +-----------------
8 files changed, 12 insertions(+), 726 deletions(-)
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/core/l10n/ka_GE.js b/core/l10n/ka_GE.js
index 7d62f0114045..f19c5f02a024 100644
--- a/core/l10n/ka_GE.js
+++ b/core/l10n/ka_GE.js
@@ -1,6 +1,9 @@
OC.L10N.register(
"core",
{
+ "Turned on maintenance mode" : "შენახვის რეჟიმი ჩართულია",
+ "Turned off maintenance mode" : "შენახვის რეჟიმი გამორთულია ",
+ "Updated database" : " მონაცემთა ბაზა განახლებულია",
"Sunday" : "კვირა",
"Monday" : "ორშაბათი",
"Tuesday" : "სამშაბათი",
diff --git a/core/l10n/ka_GE.json b/core/l10n/ka_GE.json
index c54bf4b30467..72536acac88c 100644
--- a/core/l10n/ka_GE.json
+++ b/core/l10n/ka_GE.json
@@ -1,4 +1,7 @@
{ "translations": {
+ "Turned on maintenance mode" : "შენახვის რეჟიმი ჩართულია",
+ "Turned off maintenance mode" : "შენახვის რეჟიმი გამორთულია ",
+ "Updated database" : " მონაცემთა ბაზა განახლებულია",
"Sunday" : "კვირა",
"Monday" : "ორშაბათი",
"Tuesday" : "სამშაბათი",
diff --git a/tests/data/apptheme/apps/files/l10n/ja.js b/tests/data/apptheme/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.js
+++ b/tests/data/apptheme/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/apptheme/apps/files/l10n/ja.json b/tests/data/apptheme/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.json
+++ b/tests/data/apptheme/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.js b/tests/data/themes/abc/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.js
+++ b/tests/data/themes/abc/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.json b/tests/data/themes/abc/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.json
+++ b/tests/data/themes/abc/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
From 69b1935344b082054013c22dce3f3c7b065602b1 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Tue, 29 Nov 2022 13:26:31 +0545
Subject: [PATCH 124/244] Update Symfony from major version 4 to 5
---
changelog/unreleased/40518 | 14 ++
composer.json | 10 +-
composer.lock | 498 ++++++++++++++++++++++++++++++-------
3 files changed, 427 insertions(+), 95 deletions(-)
create mode 100644 changelog/unreleased/40518
diff --git a/changelog/unreleased/40518 b/changelog/unreleased/40518
new file mode 100644
index 000000000000..39e95c5bab65
--- /dev/null
+++ b/changelog/unreleased/40518
@@ -0,0 +1,14 @@
+Change: upgrade to Symfony 5
+
+The Symfony PHP framework has been updated from major version 4 to 5.
+
+The following Symfony component versions are provided:
+- symfony/console (v5.4.23)
+- symfony/event-dispatcher (v5.4.22)
+- symfony/process (v5.4.23)
+- symfony/routing (v5.4.22)
+- symfony/string (v5.4.22)
+- symfony/translation (v5.4.22)
+
+https://github.com/owncloud/core/issues/39630
+https://github.com/owncloud/core/pull/40518
diff --git a/composer.json b/composer.json
index f69c8dc4b726..e1e8e8a4989e 100644
--- a/composer.json
+++ b/composer.json
@@ -40,10 +40,10 @@
"bantu/ini-get-wrapper": "v1.0.1",
"punic/punic": "^3.7",
"pear/archive_tar": "1.4.14",
- "symfony/console": "^4.4",
- "symfony/event-dispatcher": "^4.4",
- "symfony/routing": "^4.4",
- "symfony/process": "^4.4",
+ "symfony/console": "^5.4",
+ "symfony/event-dispatcher": "^5.4",
+ "symfony/routing": "^5.4",
+ "symfony/process": "^5.4",
"pimple/pimple": "^3.5",
"nikic/php-parser": "^4.15",
"icewind/streams": "0.7.7",
@@ -57,7 +57,7 @@
"sabre/dav": "^4.4",
"sabre/http": "^5.1",
"deepdiver/zipstreamer": "^2.0",
- "symfony/translation": "^4.4",
+ "symfony/translation": "^5.4",
"laminas/laminas-inputfilter": "^2.21",
"laminas/laminas-servicemanager": "^3.16",
"laminas/laminas-validator": "^2.25",
diff --git a/composer.lock b/composer.lock
index d771ab5d26d1..f39dddc3798a 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "ac1176a1aa200571a82be83107e29ddb",
+ "content-hash": "9f9813fab2b0539a24a80f5e21ff0a49",
"packages": [
{
"name": "bantu/ini-get-wrapper",
@@ -2466,6 +2466,56 @@
},
"time": "2021-11-05T16:50:12+00:00"
},
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
+ "time": "2019-01-08T18:20:26+00:00"
+ },
{
"name": "psr/http-client",
"version": "1.0.2",
@@ -3330,43 +3380,46 @@
},
{
"name": "symfony/console",
- "version": "v4.4.49",
+ "version": "v5.4.23",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "33fa45ffc81fdcc1ca368d4946da859c8cdb58d9"
+ "reference": "90f21e27d0d88ce38720556dd164d4a1e4c3934c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/33fa45ffc81fdcc1ca368d4946da859c8cdb58d9",
- "reference": "33fa45ffc81fdcc1ca368d4946da859c8cdb58d9",
+ "url": "https://api.github.com/repos/symfony/console/zipball/90f21e27d0d88ce38720556dd164d4a1e4c3934c",
+ "reference": "90f21e27d0d88ce38720556dd164d4a1e4c3934c",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php73": "^1.8",
+ "symfony/polyfill-php73": "^1.9",
"symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2"
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/string": "^5.1|^6.0"
},
"conflict": {
"psr/log": ">=3",
- "symfony/dependency-injection": "<3.4",
- "symfony/event-dispatcher": "<4.3|>=5",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/dotenv": "<5.1",
+ "symfony/event-dispatcher": "<4.4",
"symfony/lock": "<4.4",
- "symfony/process": "<3.3"
+ "symfony/process": "<4.4"
},
"provide": {
"psr/log-implementation": "1.0|2.0"
},
"require-dev": {
"psr/log": "^1|^2",
- "symfony/config": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/event-dispatcher": "^4.3",
- "symfony/lock": "^4.4|^5.0",
- "symfony/process": "^3.4|^4.0|^5.0",
- "symfony/var-dumper": "^4.3|^5.0"
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+ "symfony/lock": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
},
"suggest": {
"psr/log": "For using the console logger",
@@ -3399,8 +3452,14 @@
],
"description": "Eases the creation of beautiful and testable command line interfaces",
"homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
"support": {
- "source": "https://github.com/symfony/console/tree/v4.4.49"
+ "source": "https://github.com/symfony/console/tree/v5.4.23"
},
"funding": [
{
@@ -3416,7 +3475,7 @@
"type": "tidelift"
}
],
- "time": "2022-11-05T17:10:16+00:00"
+ "time": "2023-04-24T18:47:29+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -3487,39 +3546,40 @@
},
{
"name": "symfony/event-dispatcher",
- "version": "v4.4.44",
+ "version": "v5.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a"
+ "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a",
- "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1df20e45d56da29a4b1d8259dd6e950acbf1b13f",
+ "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/event-dispatcher-contracts": "^1.1",
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher-contracts": "^2|^3",
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "symfony/dependency-injection": "<3.4"
+ "symfony/dependency-injection": "<4.4"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "1.1"
+ "symfony/event-dispatcher-implementation": "2.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/error-handler": "~3.4|~4.4",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/http-foundation": "^3.4|^4.0|^5.0",
- "symfony/service-contracts": "^1.1|^2",
- "symfony/stopwatch": "^3.4|^4.0|^5.0"
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0"
},
"suggest": {
"symfony/dependency-injection": "",
@@ -3551,7 +3611,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.22"
},
"funding": [
{
@@ -3567,33 +3627,33 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2023-03-17T11:31:58+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v1.1.13",
+ "version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e"
+ "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e",
- "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1",
+ "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1",
"shasum": ""
},
"require": {
- "php": ">=7.1.3"
+ "php": ">=7.2.5",
+ "psr/event-dispatcher": "^1"
},
"suggest": {
- "psr/event-dispatcher": "",
"symfony/event-dispatcher-implementation": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.1-dev"
+ "dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3630,7 +3690,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2"
},
"funding": [
{
@@ -3646,7 +3706,89 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:41:36+00:00"
+ "time": "2022-01-02T09:53:40+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.27.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.27-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-iconv",
@@ -3731,6 +3873,87 @@
],
"time": "2022-11-03T14:55:06+00:00"
},
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.27.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
+ "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.27-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-03T14:55:06+00:00"
+ },
{
"name": "symfony/polyfill-intl-idn",
"version": "v1.27.0",
@@ -4225,20 +4448,20 @@
},
{
"name": "symfony/process",
- "version": "v4.4.44",
+ "version": "v5.4.23",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2"
+ "reference": "4b842fc4b61609e0a155a114082bd94e31e98287"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/5cee9cdc4f7805e2699d9fd66991a0e6df8252a2",
- "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2",
+ "url": "https://api.github.com/repos/symfony/process/zipball/4b842fc4b61609e0a155a114082bd94e31e98287",
+ "reference": "4b842fc4b61609e0a155a114082bd94e31e98287",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=7.2.5",
"symfony/polyfill-php80": "^1.16"
},
"type": "library",
@@ -4267,7 +4490,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v4.4.44"
+ "source": "https://github.com/symfony/process/tree/v5.4.23"
},
"funding": [
{
@@ -4283,42 +4506,43 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T13:16:42+00:00"
+ "time": "2023-04-18T13:50:24+00:00"
},
{
"name": "symfony/routing",
- "version": "v4.4.44",
+ "version": "v5.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae"
+ "reference": "c2ac11eb34947999b7c38fb4c835a57306907e6d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae",
- "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/c2ac11eb34947999b7c38fb4c835a57306907e6d",
+ "reference": "c2ac11eb34947999b7c38fb4c835a57306907e6d",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "symfony/config": "<4.2",
- "symfony/dependency-injection": "<3.4",
- "symfony/yaml": "<3.4"
+ "doctrine/annotations": "<1.12",
+ "symfony/config": "<5.3",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/yaml": "<4.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4",
+ "doctrine/annotations": "^1.12|^2",
"psr/log": "^1|^2|^3",
- "symfony/config": "^4.2|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/http-foundation": "^3.4|^4.0|^5.0",
- "symfony/yaml": "^3.4|^4.0|^5.0"
+ "symfony/config": "^5.3|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/yaml": "^4.4|^5.0|^6.0"
},
"suggest": {
- "doctrine/annotations": "For using the annotation loader",
"symfony/config": "For using the all-in-one router or any loader",
"symfony/expression-language": "For using expression matching",
"symfony/http-foundation": "For using a Symfony Request object",
@@ -4356,7 +4580,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v4.4.44"
+ "source": "https://github.com/symfony/routing/tree/v5.4.22"
},
"funding": [
{
@@ -4372,7 +4596,7 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2023-03-14T14:59:20+00:00"
},
{
"name": "symfony/service-contracts",
@@ -4457,45 +4681,136 @@
],
"time": "2022-05-30T19:17:29+00:00"
},
+ {
+ "name": "symfony/string",
+ "version": "v5.4.22",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",
+ "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
+ },
+ "conflict": {
+ "symfony/translation-contracts": ">=3.0"
+ },
+ "require-dev": {
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v5.4.22"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-03-14T06:11:53+00:00"
+ },
{
"name": "symfony/translation",
- "version": "v4.4.47",
+ "version": "v5.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94"
+ "reference": "9a401392f01bc385aa42760eff481d213a0cc2ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/45036b1d53accc48fe9bab71ccd86d57eba0dd94",
- "reference": "45036b1d53accc48fe9bab71ccd86d57eba0dd94",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/9a401392f01bc385aa42760eff481d213a0cc2ba",
+ "reference": "9a401392f01bc385aa42760eff481d213a0cc2ba",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/polyfill-php80": "^1.16",
- "symfony/translation-contracts": "^1.1.6|^2"
+ "symfony/translation-contracts": "^2.3"
},
"conflict": {
- "symfony/config": "<3.4",
- "symfony/dependency-injection": "<3.4",
- "symfony/http-kernel": "<4.4",
- "symfony/yaml": "<3.4"
+ "symfony/config": "<4.4",
+ "symfony/console": "<5.3",
+ "symfony/dependency-injection": "<5.0",
+ "symfony/http-kernel": "<5.0",
+ "symfony/twig-bundle": "<5.0",
+ "symfony/yaml": "<4.4"
},
"provide": {
- "symfony/translation-implementation": "1.0|2.0"
+ "symfony/translation-implementation": "2.3"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^3.4|^4.0|^5.0",
- "symfony/console": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/finder": "~2.8|~3.0|~4.0|^5.0",
- "symfony/http-kernel": "^4.4",
- "symfony/intl": "^3.4|^4.0|^5.0",
- "symfony/service-contracts": "^1.1.2|^2",
- "symfony/yaml": "^3.4|^4.0|^5.0"
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/http-client-contracts": "^1.1|^2.0|^3.0",
+ "symfony/http-kernel": "^5.0|^6.0",
+ "symfony/intl": "^4.4|^5.0|^6.0",
+ "symfony/polyfill-intl-icu": "^1.21",
+ "symfony/service-contracts": "^1.1.2|^2|^3",
+ "symfony/yaml": "^4.4|^5.0|^6.0"
},
"suggest": {
"psr/log-implementation": "To use logging capability in translator",
@@ -4504,6 +4819,9 @@
},
"type": "library",
"autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
"psr-4": {
"Symfony\\Component\\Translation\\": ""
},
@@ -4528,7 +4846,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v4.4.47"
+ "source": "https://github.com/symfony/translation/tree/v5.4.22"
},
"funding": [
{
@@ -4544,7 +4862,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-03T15:15:11+00:00"
+ "time": "2023-03-27T16:07:23+00:00"
},
{
"name": "symfony/translation-contracts",
From 3ca1dda00b17e4539adf16edc08543a5f389f309 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Sun, 21 May 2023 09:14:57 +0000
Subject: [PATCH 125/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 11 +++++++++++
CHANGELOG.md | 12 ++++++++++++
2 files changed, 23 insertions(+)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index d441dafd3f2b..c95bd2504f1d 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -10,6 +10,7 @@ Summary
- Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: #40792
- Bugfix - Always return an int for the Symfony Command execute method: #40793
- Bugfix - Exit with success when signing-key has been set: #40794
+ - Change - Upgrade to Symfony 5: #39630
- Change - Update PHP dependencies: #40724
- Change - Fix name length check on federated shares: #40726
- Change - Validate email and string user input in UserController: #40769
@@ -50,6 +51,16 @@ Details
https://github.com/owncloud/core/pull/40794
+ -
+
Change - Upgrade to Symfony 5: #39630
+ The Symfony PHP framework has been updated from major version 4 to 5.The following Symfony component versions are provided: - symfony/console (v5.4.23) -
+ symfony/event-dispatcher (v5.4.22) - symfony/process (v5.4.23) - symfony/routing
+ (v5.4.22) - symfony/string (v5.4.22) - symfony/translation (v5.4.22)
+
+ https://github.com/owncloud/core/issues/39630
+
+ https://github.com/owncloud/core/pull/40518
+
-
Change - Update PHP dependencies: #40724
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
diff --git a/CHANGELOG.md b/CHANGELOG.md
index dff0c58e87a3..7889386bee5d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ Summary
* Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: [#40792](https://github.com/owncloud/core/pull/40792)
* Bugfix - Always return an int for the Symfony Command execute method: [#40793](https://github.com/owncloud/core/pull/40793)
* Bugfix - Exit with success when signing-key has been set: [#40794](https://github.com/owncloud/core/pull/40794)
+* Change - Upgrade to Symfony 5: [#39630](https://github.com/owncloud/core/issues/39630)
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
* Change - Validate email and string user input in UserController: [#40769](https://github.com/owncloud/core/pull/40769)
@@ -54,6 +55,17 @@ Details
https://github.com/owncloud/core/pull/40794
+* Change - Upgrade to Symfony 5: [#39630](https://github.com/owncloud/core/issues/39630)
+
+ The Symfony PHP framework has been updated from major version 4 to 5.
+
+ The following Symfony component versions are provided: - symfony/console (v5.4.23) -
+ symfony/event-dispatcher (v5.4.22) - symfony/process (v5.4.23) - symfony/routing
+ (v5.4.22) - symfony/string (v5.4.22) - symfony/translation (v5.4.22)
+
+ https://github.com/owncloud/core/issues/39630
+ https://github.com/owncloud/core/pull/40518
+
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
From 1e417b95c2c49129898b7b3f351e809207d16d91 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Mon, 22 May 2023 00:39:23 +0000
Subject: [PATCH 126/244] [tx] updated from transifex
---
apps/files/l10n/ja.js | 122 +++++++++++++++++-
apps/files/l10n/ja.json | 122 +++++++++++++++++-
tests/data/apptheme/apps/files/l10n/ja.js | 122 +++++++++++++++++-
tests/data/apptheme/apps/files/l10n/ja.json | 122 +++++++++++++++++-
tests/data/themes/abc/apps/files/l10n/ja.js | 122 +++++++++++++++++-
tests/data/themes/abc/apps/files/l10n/ja.json | 122 +++++++++++++++++-
6 files changed, 726 insertions(+), 6 deletions(-)
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/apptheme/apps/files/l10n/ja.js b/tests/data/apptheme/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.js
+++ b/tests/data/apptheme/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/apptheme/apps/files/l10n/ja.json b/tests/data/apptheme/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.json
+++ b/tests/data/apptheme/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.js b/tests/data/themes/abc/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.js
+++ b/tests/data/themes/abc/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.json b/tests/data/themes/abc/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.json
+++ b/tests/data/themes/abc/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
From 01897616ea442a41075d1cef2b0fe9955af60333 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 May 2023 22:57:44 +0000
Subject: [PATCH 127/244] Bump nikic/php-parser from 4.15.4 to 4.15.5
Bumps [nikic/php-parser](https://github.com/nikic/PHP-Parser) from 4.15.4 to 4.15.5.
- [Release notes](https://github.com/nikic/PHP-Parser/releases)
- [Changelog](https://github.com/nikic/PHP-Parser/blob/4.x/CHANGELOG.md)
- [Commits](https://github.com/nikic/PHP-Parser/compare/v4.15.4...v4.15.5)
---
updated-dependencies:
- dependency-name: nikic/php-parser
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
composer.lock | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/composer.lock b/composer.lock
index f39dddc3798a..4b492096efc5 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1735,16 +1735,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.15.4",
+ "version": "v4.15.5",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290"
+ "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
- "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/11e2663a5bc9db5d714eedb4277ee300403b4a9e",
+ "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e",
"shasum": ""
},
"require": {
@@ -1785,9 +1785,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.5"
},
- "time": "2023-03-05T19:49:14+00:00"
+ "time": "2023-05-19T20:20:00+00:00"
},
{
"name": "opis/closure",
From aa61a88cf4bde11a78386b6f5de526bcdb4aa3e2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 May 2023 22:57:23 +0000
Subject: [PATCH 128/244] Bump guzzlehttp/guzzle from 7.6.1 to 7.7.0
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.6.1 to 7.7.0.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/7.7/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.6.1...7.7.0)
---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
composer.lock | 42 +++++++++++++++++++++---------------------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/composer.lock b/composer.lock
index 4b492096efc5..4f89842bb659 100644
--- a/composer.lock
+++ b/composer.lock
@@ -767,21 +767,21 @@
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.6.1",
+ "version": "7.7.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "8444a2bacf1960bc6a2b62ed86b8e72e11eebe51"
+ "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/8444a2bacf1960bc6a2b62ed86b8e72e11eebe51",
- "reference": "8444a2bacf1960bc6a2b62ed86b8e72e11eebe51",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5",
+ "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^1.5",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0",
"guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
@@ -793,7 +793,8 @@
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.1",
"ext-curl": "*",
- "php-http/client-integration-tests": "^3.0",
+ "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "php-http/message-factory": "^1.1",
"phpunit/phpunit": "^8.5.29 || ^9.5.23",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
@@ -872,7 +873,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.6.1"
+ "source": "https://github.com/guzzle/guzzle/tree/7.7.0"
},
"funding": [
{
@@ -888,38 +889,37 @@
"type": "tidelift"
}
],
- "time": "2023-05-15T20:43:01+00:00"
+ "time": "2023-05-21T14:04:53+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "1.5.2",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "b94b2807d85443f9719887892882d0329d1e2598"
+ "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598",
- "reference": "b94b2807d85443f9719887892882d0329d1e2598",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/3a494dc7dc1d7d12e511890177ae2d0e6c107da6",
+ "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6",
"shasum": ""
},
"require": {
- "php": ">=5.5"
+ "php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.4 || ^5.1"
+ "bamarni/composer-bin-plugin": "^1.8.1",
+ "phpunit/phpunit": "^8.5.29 || ^9.5.23"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "1.5-dev"
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
}
},
"autoload": {
- "files": [
- "src/functions_include.php"
- ],
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
}
@@ -956,7 +956,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.5.2"
+ "source": "https://github.com/guzzle/promises/tree/2.0.0"
},
"funding": [
{
@@ -972,7 +972,7 @@
"type": "tidelift"
}
],
- "time": "2022-08-28T14:55:35+00:00"
+ "time": "2023-05-21T13:50:22+00:00"
},
{
"name": "guzzlehttp/psr7",
From c673e23080f54e0781b3938654d70db7513cb9bc Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Tue, 23 May 2023 05:56:18 +0545
Subject: [PATCH 129/244] changelog for guzzle 7.7.0
---
changelog/unreleased/PHPdependencies20230404onward | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/changelog/unreleased/PHPdependencies20230404onward b/changelog/unreleased/PHPdependencies20230404onward
index 1ea08ddc0709..7523ef3a6c8c 100644
--- a/changelog/unreleased/PHPdependencies20230404onward
+++ b/changelog/unreleased/PHPdependencies20230404onward
@@ -1,7 +1,7 @@
Change: Update PHP dependencies
The following have been updated:
-- guzzlehttp/guzzle (7.5.0 to 7.6.1)
+- guzzlehttp/guzzle (7.5.0 to 7.7.0)
- pear/pear-core-minimal (1.10.11 to 1.10.13)
- punic/punic (3.8.0 to 3.8.1)
@@ -13,3 +13,4 @@ https://github.com/owncloud/core/pull/40731
https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
https://github.com/owncloud/core/pull/40789
+https://github.com/owncloud/core/pull/40806
From 279de769357697f2b91807a01a6ed3731ecd7b98 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Tue, 23 May 2023 02:40:58 +0000
Subject: [PATCH 130/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 4 ++--
CHANGELOG.md | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index c95bd2504f1d..805225a8f8d0 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -63,11 +63,11 @@ Details
-
Change - Update PHP dependencies: #40724
- The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
+
The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.7.0) -
pear/pear-core-minimal (1.10.11 to 1.10.13) - punic/punic (3.8.0 to 3.8.1)The following have been updated in apps/files_external/3rdparty: - google/apiclient
(2.13.1 to 2.13.2)
- https://github.com/owncloud/core/pull/40724
https://github.com/owncloud/core/pull/40731
https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
https://github.com/owncloud/core/pull/40789
+ https://github.com/owncloud/core/pull/40724
https://github.com/owncloud/core/pull/40731
https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
https://github.com/owncloud/core/pull/40789
https://github.com/owncloud/core/pull/40806
-
Change - Fix name length check on federated shares: #40726
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7889386bee5d..debabf86f226 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -68,7 +68,7 @@ Details
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
- The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.6.1) -
+ The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.7.0) -
pear/pear-core-minimal (1.10.11 to 1.10.13) - punic/punic (3.8.0 to 3.8.1)
The following have been updated in apps/files_external/3rdparty: - google/apiclient
@@ -79,6 +79,7 @@ Details
https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
https://github.com/owncloud/core/pull/40789
+ https://github.com/owncloud/core/pull/40806
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
From 479777d71d2264876dc77754062dee9e45a71060 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Tue, 23 May 2023 03:39:42 +0000
Subject: [PATCH 131/244] [tx] updated from transifex
---
apps/files_sharing/l10n/ka_GE.js | 1 +
apps/files_sharing/l10n/ka_GE.json | 1 +
core/l10n/ka_GE.js | 3 +++
core/l10n/ka_GE.json | 3 +++
lib/l10n/ka_GE.js | 2 ++
lib/l10n/ka_GE.json | 2 ++
settings/l10n/ka_GE.js | 4 ++++
settings/l10n/ka_GE.json | 4 ++++
8 files changed, 20 insertions(+)
diff --git a/apps/files_sharing/l10n/ka_GE.js b/apps/files_sharing/l10n/ka_GE.js
index ca1d733c64cb..4a6e38dc2f4c 100644
--- a/apps/files_sharing/l10n/ka_GE.js
+++ b/apps/files_sharing/l10n/ka_GE.js
@@ -8,6 +8,7 @@ OC.L10N.register(
"Pending" : "მოცდის რეჟიმში",
"Shared by" : "აზიარებს",
"Sharing" : "გაზიარება",
+ "This share is password-protected" : "ეს გაზიარება დაცულია პაროლით",
"Password" : "პაროლი",
"Name" : "სახელი",
"Expiration date" : "ვადის გასვლის დრო",
diff --git a/apps/files_sharing/l10n/ka_GE.json b/apps/files_sharing/l10n/ka_GE.json
index a2215e41e2f6..0ef004a947c5 100644
--- a/apps/files_sharing/l10n/ka_GE.json
+++ b/apps/files_sharing/l10n/ka_GE.json
@@ -6,6 +6,7 @@
"Pending" : "მოცდის რეჟიმში",
"Shared by" : "აზიარებს",
"Sharing" : "გაზიარება",
+ "This share is password-protected" : "ეს გაზიარება დაცულია პაროლით",
"Password" : "პაროლი",
"Name" : "სახელი",
"Expiration date" : "ვადის გასვლის დრო",
diff --git a/core/l10n/ka_GE.js b/core/l10n/ka_GE.js
index f19c5f02a024..153137d28b53 100644
--- a/core/l10n/ka_GE.js
+++ b/core/l10n/ka_GE.js
@@ -1,6 +1,8 @@
OC.L10N.register(
"core",
{
+ "Unknown filetype" : "უცნობი ფაილის ტიპი",
+ "Invalid image" : "არასწორი სურათი",
"Turned on maintenance mode" : "შენახვის რეჟიმი ჩართულია",
"Turned off maintenance mode" : "შენახვის რეჟიმი გამორთულია ",
"Updated database" : " მონაცემთა ბაზა განახლებულია",
@@ -98,6 +100,7 @@ OC.L10N.register(
"Finish setup" : "კონფიგურაციის დასრულება",
"Log out" : "გამოსვლა",
"Search" : "ძებნა",
+ "Please contact your administrator." : "გთხოვთ, დაუკავშირდეთ თქვენს ადმინისტრატორს.",
"Login" : "ლოგინი",
"Alternative Logins" : "ალტერნატიული Login–ი",
"Use the following link to reset your password: {link}" : "გამოიყენე შემდეგი ლინკი პაროლის შესაცვლელად: {link}",
diff --git a/core/l10n/ka_GE.json b/core/l10n/ka_GE.json
index 72536acac88c..67368c187080 100644
--- a/core/l10n/ka_GE.json
+++ b/core/l10n/ka_GE.json
@@ -1,4 +1,6 @@
{ "translations": {
+ "Unknown filetype" : "უცნობი ფაილის ტიპი",
+ "Invalid image" : "არასწორი სურათი",
"Turned on maintenance mode" : "შენახვის რეჟიმი ჩართულია",
"Turned off maintenance mode" : "შენახვის რეჟიმი გამორთულია ",
"Updated database" : " მონაცემთა ბაზა განახლებულია",
@@ -96,6 +98,7 @@
"Finish setup" : "კონფიგურაციის დასრულება",
"Log out" : "გამოსვლა",
"Search" : "ძებნა",
+ "Please contact your administrator." : "გთხოვთ, დაუკავშირდეთ თქვენს ადმინისტრატორს.",
"Login" : "ლოგინი",
"Alternative Logins" : "ალტერნატიული Login–ი",
"Use the following link to reset your password: {link}" : "გამოიყენე შემდეგი ლინკი პაროლის შესაცვლელად: {link}",
diff --git a/lib/l10n/ka_GE.js b/lib/l10n/ka_GE.js
index 5d4d6b016026..d1a7a1b98868 100644
--- a/lib/l10n/ka_GE.js
+++ b/lib/l10n/ka_GE.js
@@ -1,6 +1,8 @@
OC.L10N.register(
"lib",
{
+ "Unknown filetype" : "უცნობი ფაილის ტიპი",
+ "Invalid image" : "არასწორი სურათი",
"today" : "დღეს",
"yesterday" : "გუშინ",
"last month" : "გასულ თვეში",
diff --git a/lib/l10n/ka_GE.json b/lib/l10n/ka_GE.json
index 407ae168145f..2e47362f20b3 100644
--- a/lib/l10n/ka_GE.json
+++ b/lib/l10n/ka_GE.json
@@ -1,4 +1,6 @@
{ "translations": {
+ "Unknown filetype" : "უცნობი ფაილის ტიპი",
+ "Invalid image" : "არასწორი სურათი",
"today" : "დღეს",
"yesterday" : "გუშინ",
"last month" : "გასულ თვეში",
diff --git a/settings/l10n/ka_GE.js b/settings/l10n/ka_GE.js
index 6384df9dddf4..222bbdd07dec 100644
--- a/settings/l10n/ka_GE.js
+++ b/settings/l10n/ka_GE.js
@@ -17,6 +17,7 @@ OC.L10N.register(
"Updating...." : "მიმდინარეობს განახლება....",
"Error while updating app" : "შეცდომა აპლიკაციის განახლების დროს",
"Updated" : "განახლებულია",
+ "Select a profile picture" : "აირჩიეთ პროფილის სურათი",
"Groups" : "ჯგუფები",
"undo" : "დაბრუნება",
"Delete group" : "ჯგუფის წაშლა",
@@ -45,6 +46,9 @@ OC.L10N.register(
"Get the apps to sync your files" : "აპლიკაცია ფაილების სინქრონიზაციისთვის",
"Show First Run Wizard again" : "მაჩვენე თავიდან გაშვებული ვიზარდი",
"Add" : "დამატება",
+ "Profile picture" : "პროფილის სურათი",
+ "Upload new" : "ატვირთე ახალი",
+ "Remove image" : "სურათის მოშორება",
"Cancel" : "უარყოფა",
"Email" : "იმეილი",
"Your email address" : "თქვენი იმეილ მისამართი",
diff --git a/settings/l10n/ka_GE.json b/settings/l10n/ka_GE.json
index 9aa838795f90..d92cc8d0d81c 100644
--- a/settings/l10n/ka_GE.json
+++ b/settings/l10n/ka_GE.json
@@ -15,6 +15,7 @@
"Updating...." : "მიმდინარეობს განახლება....",
"Error while updating app" : "შეცდომა აპლიკაციის განახლების დროს",
"Updated" : "განახლებულია",
+ "Select a profile picture" : "აირჩიეთ პროფილის სურათი",
"Groups" : "ჯგუფები",
"undo" : "დაბრუნება",
"Delete group" : "ჯგუფის წაშლა",
@@ -43,6 +44,9 @@
"Get the apps to sync your files" : "აპლიკაცია ფაილების სინქრონიზაციისთვის",
"Show First Run Wizard again" : "მაჩვენე თავიდან გაშვებული ვიზარდი",
"Add" : "დამატება",
+ "Profile picture" : "პროფილის სურათი",
+ "Upload new" : "ატვირთე ახალი",
+ "Remove image" : "სურათის მოშორება",
"Cancel" : "უარყოფა",
"Email" : "იმეილი",
"Your email address" : "თქვენი იმეილ მისამართი",
From 0cbd5e02d39a412d8ec0c57242dd23d119df349c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?=
<1005065+DeepDiver1975@users.noreply.github.com>
Date: Tue, 23 May 2023 13:13:12 +0200
Subject: [PATCH 132/244] fix: verify tag name length upon creation (#40804)
---
apps/dav/lib/SystemTag/SystemTagPlugin.php | 5 +-
.../unit/SystemTag/SystemTagPluginTest.php | 54 ++++++++++++++++++-
changelog/unreleased/40726 | 2 +-
changelog/unreleased/40804 | 5 ++
4 files changed, 63 insertions(+), 3 deletions(-)
create mode 100644 changelog/unreleased/40804
diff --git a/apps/dav/lib/SystemTag/SystemTagPlugin.php b/apps/dav/lib/SystemTag/SystemTagPlugin.php
index 82c852d111ee..d47cb09205af 100644
--- a/apps/dav/lib/SystemTag/SystemTagPlugin.php
+++ b/apps/dav/lib/SystemTag/SystemTagPlugin.php
@@ -161,7 +161,7 @@ public function httpPost(RequestInterface $request, ResponseInterface $response)
* @throws Conflict if a tag with the same properties already exists
* @throws UnsupportedMediaType if the content type is not supported
*/
- private function createTag($data, $contentType = 'application/json') {
+ private function createTag($data, $contentType = 'application/json'): ISystemTag {
if (\explode(';', $contentType)[0] === 'application/json') {
$data = \json_decode($data, true);
} else {
@@ -171,6 +171,9 @@ private function createTag($data, $contentType = 'application/json') {
if (!isset($data['name'])) {
throw new BadRequest('Missing "name" attribute');
}
+ if (\strlen($data['name']) > 64) {
+ throw new BadRequest('Tag name too long');
+ }
$tagName = $data['name'];
$userVisible = true;
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php
index e39b24127d9c..b1acf989c3ef 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php
@@ -31,6 +31,10 @@
use OCP\IUserSession;
use OCP\SystemTag\ISystemTag;
use OCP\SystemTag\TagAlreadyExistsException;
+use Sabre\DAV\Exception\BadRequest;
+use Sabre\HTTP\RequestInterface;
+use Sabre\HTTP\ResponseInterface;
+use OCA\DAV\SystemTag\SystemTagsByIdCollection;
class SystemTagPluginTest extends \Test\TestCase {
public const ID_PROPERTYNAME = \OCA\DAV\SystemTag\SystemTagPlugin::ID_PROPERTYNAME;
@@ -383,7 +387,7 @@ public function createTagInsufficientPermissionsProvider() {
* @dataProvider createTagInsufficientPermissionsProvider
*/
public function testCreateNotAssignableTagAsRegularUser($userVisible, $userAssignable, $userEditable, $groups) {
- $this->expectException(\Sabre\DAV\Exception\BadRequest::class);
+ $this->expectException(BadRequest::class);
$this->expectExceptionMessage('Not sufficient permissions');
$this->user->expects($this->once())
@@ -442,6 +446,54 @@ public function testCreateNotAssignableTagAsRegularUser($userVisible, $userAssig
$this->plugin->httpPost($request, $response);
}
+ public function testPostTooLongTagName(): void {
+ $this->expectException(BadRequest::class);
+ $this->expectExceptionMessage('Tag name too long');
+
+ $requestData = [
+ 'name' => 'ThisTagNameIsByFarTooLong.ThisTagNameIsByFarTooLong.ThisTagNameIsByFarTooLong',
+ 'userVisible' => true,
+ 'userAssignable' => true,
+ 'userEditable' => true
+ ];
+ $requestData = \json_encode($requestData);
+
+ $node = $this->getMockBuilder(SystemTagsByIdCollection::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->tagManager->expects($this->never())
+ ->method('createTag');
+ $this->tagManager->expects($this->never())
+ ->method('setTagGroups');
+
+ $this->tree
+ ->method('getNodeForPath')
+ ->with('/systemtags')
+ ->willReturn($node);
+
+ $request = $this->getMockBuilder(RequestInterface::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $response = $this->getMockBuilder(ResponseInterface::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $request->expects($this->once())
+ ->method('getPath')
+ ->willReturn('/systemtags');
+
+ $request->expects($this->once())
+ ->method('getBodyAsString')
+ ->willReturn($requestData);
+
+ $request->expects($this->once())
+ ->method('getHeader')
+ ->with('Content-Type')
+ ->willReturn('application/json');
+
+ $this->plugin->httpPost($request, $response);
+ }
+
public function testCreateTagInByIdCollectionAsRegularUser() {
$systemTag = new SystemTag(1, 'Test', true, false);
diff --git a/changelog/unreleased/40726 b/changelog/unreleased/40726
index 4bb31f1fd268..af9c328cd467 100644
--- a/changelog/unreleased/40726
+++ b/changelog/unreleased/40726
@@ -1,5 +1,5 @@
Change: fix name length check on federated shares
-A federated share with a too long name results in inaccessible data.
+A federated share with a too long name results in potentially inaccessible data.
https://github.com/owncloud/core/pull/40726
diff --git a/changelog/unreleased/40804 b/changelog/unreleased/40804
new file mode 100644
index 000000000000..55cdd1da7eb3
--- /dev/null
+++ b/changelog/unreleased/40804
@@ -0,0 +1,5 @@
+Change: fix name length check on system tag creation
+
+A system tag with a too long name results in potentially inaccessible data.
+
+https://github.com/owncloud/core/pull/40804
\ No newline at end of file
From 1f10ddbfef2ae84905c92a1cd21888fc905b2e0e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?=
<1005065+DeepDiver1975@users.noreply.github.com>
Date: Tue, 23 May 2023 11:15:57 +0000
Subject: [PATCH 133/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 9 ++++++++-
CHANGELOG.md | 9 ++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index 805225a8f8d0..fbd560bfbec6 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -15,6 +15,7 @@ Summary
- Change - Fix name length check on federated shares: #40726
- Change - Validate email and string user input in UserController: #40769
- Change - Fix hiding Last Login column on Users page: #40771
+ - Change - Fix name length check on system tag creation: #40804
- Enhancement - Improve X-Robots-Tag header values check: #40715
Details
@@ -71,7 +72,7 @@ Details
Change - Fix name length check on federated shares: #40726
- A federated share with a too long name results in inaccessible data.
+
A federated share with a too long name results in potentially inaccessible data.
https://github.com/owncloud/core/pull/40726
@@ -88,6 +89,12 @@ Details
https://github.com/owncloud/core/pull/40771
+
+ Change - Fix name length check on system tag creation: #40804
+ A system tag with a too long name results in potentially inaccessible data.
+
+ https://github.com/owncloud/core/pull/40804
+
Enhancement - Improve X-Robots-Tag header values check: #40715
Setup checks now allows other values other than "none" for X-Robots-Tag header. If "none" or
diff --git a/CHANGELOG.md b/CHANGELOG.md
index debabf86f226..952310f68a59 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,6 +17,7 @@ Summary
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
* Change - Validate email and string user input in UserController: [#40769](https://github.com/owncloud/core/pull/40769)
* Change - Fix hiding Last Login column on Users page: [#40771](https://github.com/owncloud/core/pull/40771)
+* Change - Fix name length check on system tag creation: [#40804](https://github.com/owncloud/core/pull/40804)
* Enhancement - Improve X-Robots-Tag header values check: [#40715](https://github.com/owncloud/core/pull/40715)
Details
@@ -83,7 +84,7 @@ Details
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
- A federated share with a too long name results in inaccessible data.
+ A federated share with a too long name results in potentially inaccessible data.
https://github.com/owncloud/core/pull/40726
@@ -100,6 +101,12 @@ Details
https://github.com/owncloud/core/pull/40771
+* Change - Fix name length check on system tag creation: [#40804](https://github.com/owncloud/core/pull/40804)
+
+ A system tag with a too long name results in potentially inaccessible data.
+
+ https://github.com/owncloud/core/pull/40804
+
* Enhancement - Improve X-Robots-Tag header values check: [#40715](https://github.com/owncloud/core/pull/40715)
Setup checks now allows other values other than "none" for X-Robots-Tag header. If "none" or
From d6eabdb39b93b62a4e9f2f60a1d7e7868ccb1ea9 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Wed, 24 May 2023 00:47:24 +0000
Subject: [PATCH 134/244] [tx] updated from transifex
---
settings/l10n/pt_BR.js | 1 +
settings/l10n/pt_BR.json | 1 +
2 files changed, 2 insertions(+)
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index 48997ec7db60..313d4f29e81c 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -52,6 +52,7 @@ OC.L10N.register(
"%s email address changed successfully" : "O endereço de e-mail %s foi alterado com êxito",
"Couldn't send email address change notification mail. Please contact your administrator." : "Não foi possível enviar email de notificação de alteração de endereço. Entre em contato com o administrador.",
"Unable to enable/disable user." : "Não foi possível habilitar/desabilitar usuário",
+ "Data too long" : "Dados muito longos",
"Invalid mail address" : "Endereço de e-mail inválido",
"Owner language" : "Idioma do proprietário",
"Create" : "Criar",
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index 1672b4a096de..ea315761263f 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -50,6 +50,7 @@
"%s email address changed successfully" : "O endereço de e-mail %s foi alterado com êxito",
"Couldn't send email address change notification mail. Please contact your administrator." : "Não foi possível enviar email de notificação de alteração de endereço. Entre em contato com o administrador.",
"Unable to enable/disable user." : "Não foi possível habilitar/desabilitar usuário",
+ "Data too long" : "Dados muito longos",
"Invalid mail address" : "Endereço de e-mail inválido",
"Owner language" : "Idioma do proprietário",
"Create" : "Criar",
From bc275f55b91fadb1f398bb9602f8e26ca442a9cd Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Thu, 25 May 2023 00:48:57 +0000
Subject: [PATCH 135/244] [tx] updated from transifex
---
apps/files/l10n/zh-Hans.js | 6 ++++++
apps/files/l10n/zh-Hans.json | 4 ++++
tests/data/apptheme/apps/files/l10n/zh-Hans.js | 6 ++++++
tests/data/apptheme/apps/files/l10n/zh-Hans.json | 4 ++++
tests/data/themes/abc/apps/files/l10n/zh-Hans.js | 6 ++++++
tests/data/themes/abc/apps/files/l10n/zh-Hans.json | 4 ++++
6 files changed, 30 insertions(+)
create mode 100644 apps/files/l10n/zh-Hans.js
create mode 100644 apps/files/l10n/zh-Hans.json
create mode 100644 tests/data/apptheme/apps/files/l10n/zh-Hans.js
create mode 100644 tests/data/apptheme/apps/files/l10n/zh-Hans.json
create mode 100644 tests/data/themes/abc/apps/files/l10n/zh-Hans.js
create mode 100644 tests/data/themes/abc/apps/files/l10n/zh-Hans.json
diff --git a/apps/files/l10n/zh-Hans.js b/apps/files/l10n/zh-Hans.js
new file mode 100644
index 000000000000..14da401f67fb
--- /dev/null
+++ b/apps/files/l10n/zh-Hans.js
@@ -0,0 +1,6 @@
+OC.L10N.register(
+ "files",
+ {
+ "Close" : "关闭"
+},
+"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/zh-Hans.json b/apps/files/l10n/zh-Hans.json
new file mode 100644
index 000000000000..2b2dddd2ce0b
--- /dev/null
+++ b/apps/files/l10n/zh-Hans.json
@@ -0,0 +1,4 @@
+{ "translations": {
+ "Close" : "关闭"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/tests/data/apptheme/apps/files/l10n/zh-Hans.js b/tests/data/apptheme/apps/files/l10n/zh-Hans.js
new file mode 100644
index 000000000000..14da401f67fb
--- /dev/null
+++ b/tests/data/apptheme/apps/files/l10n/zh-Hans.js
@@ -0,0 +1,6 @@
+OC.L10N.register(
+ "files",
+ {
+ "Close" : "关闭"
+},
+"nplurals=1; plural=0;");
diff --git a/tests/data/apptheme/apps/files/l10n/zh-Hans.json b/tests/data/apptheme/apps/files/l10n/zh-Hans.json
new file mode 100644
index 000000000000..2b2dddd2ce0b
--- /dev/null
+++ b/tests/data/apptheme/apps/files/l10n/zh-Hans.json
@@ -0,0 +1,4 @@
+{ "translations": {
+ "Close" : "关闭"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/tests/data/themes/abc/apps/files/l10n/zh-Hans.js b/tests/data/themes/abc/apps/files/l10n/zh-Hans.js
new file mode 100644
index 000000000000..14da401f67fb
--- /dev/null
+++ b/tests/data/themes/abc/apps/files/l10n/zh-Hans.js
@@ -0,0 +1,6 @@
+OC.L10N.register(
+ "files",
+ {
+ "Close" : "关闭"
+},
+"nplurals=1; plural=0;");
diff --git a/tests/data/themes/abc/apps/files/l10n/zh-Hans.json b/tests/data/themes/abc/apps/files/l10n/zh-Hans.json
new file mode 100644
index 000000000000..2b2dddd2ce0b
--- /dev/null
+++ b/tests/data/themes/abc/apps/files/l10n/zh-Hans.json
@@ -0,0 +1,4 @@
+{ "translations": {
+ "Close" : "关闭"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
From 9eadeb005638b455948f663415f45c56bc66ff48 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Thu, 25 May 2023 14:45:51 +0000
Subject: [PATCH 136/244] [tx] updated from transifex
---
apps/files/l10n/ja.js | 122 +-----------------
apps/files/l10n/ja.json | 122 +-----------------
tests/data/apptheme/apps/files/l10n/ja.js | 122 +-----------------
tests/data/apptheme/apps/files/l10n/ja.json | 122 +-----------------
tests/data/themes/abc/apps/files/l10n/ja.js | 122 +-----------------
tests/data/themes/abc/apps/files/l10n/ja.json | 122 +-----------------
6 files changed, 6 insertions(+), 726 deletions(-)
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/apptheme/apps/files/l10n/ja.js b/tests/data/apptheme/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.js
+++ b/tests/data/apptheme/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/apptheme/apps/files/l10n/ja.json b/tests/data/apptheme/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.json
+++ b/tests/data/apptheme/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.js b/tests/data/themes/abc/apps/files/l10n/ja.js
index 0b76a6208074..cd60ad027ec1 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.js
+++ b/tests/data/themes/abc/apps/files/l10n/ja.js
@@ -1,126 +1,6 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.json b/tests/data/themes/abc/apps/files/l10n/ja.json
index d7fcee4e4c36..417b141ab495 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.json
+++ b/tests/data/themes/abc/apps/files/l10n/ja.json
@@ -1,124 +1,4 @@
{ "translations": {
- "Storage is temporarily not available" : "ストレージが一時的に利用できません",
- "Storage invalid" : "ストレージが無効です",
- "Unknown error" : "不明なエラー",
- "All files" : "すべてのファイル",
- "File could not be found" : "ファイルは見つかりませんでした。",
- "Close" : "閉じる",
- "Favorites" : "お気に入り",
- "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
- "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
- "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
- "Upload cancelled." : "アップロードはキャンセルされました。",
- "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
- "Processing files..." : "処理中…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
- "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
- "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
- "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
- "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
- "Not enough free space" : "空き容量が不足しています",
- "Uploading..." : "アップロード中...",
- "..." : "…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
- "Actions" : "アクション",
- "Download" : "ダウンロード",
- "Rename" : "名前の変更",
- "Delete" : "削除",
- "Disconnect storage" : "ストレージを切断する",
- "Unshare" : "共有解除",
- "How do you want to open this file?" : "このファイルをどのように開きますか?",
- "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
- "Files" : "ファイル",
- "Details" : "詳細",
- "Select" : "選択",
- "Pending" : "中断",
- "Unable to determine date" : "更新日不明",
- "Invalid path" : "無効なパス",
- "This operation is forbidden" : "この操作は禁止されています",
- "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
- "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
- "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
- "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
- "group" : "グループ",
- "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
- "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
- "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
- "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
- "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
- "Name" : "名前",
- "Size" : "サイズ",
- "Modified" : "更新日時",
- "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
- "_%n file_::_%n files_" : ["%n 個のファイル"],
- "{dirs} and {files}" : "{dirs} と {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
- "New" : "新規作成",
- "Unknown user" : "不明なユーザー",
- "Lock status" : "ロック状態",
- "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
- "File name cannot be empty." : "ファイル名を空にすることはできません。",
- "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
- "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}' にマッチ"],
- "Path" : "Path",
- "_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
- "Favorite" : "お気に入り",
- "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
- "Folder" : "フォルダー",
- "New folder" : "新しいフォルダー",
- "Cancel" : "キャンセル",
- "Create" : "作成",
- "{newname} already exists" : "{newname} はすでに存在します",
- "Upload" : "アップロード",
- "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
- "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
- "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
- "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
- "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
- "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 により復元",
- "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
- "Settings" : "設定",
- "Show hidden files" : "隠しファイルを表示",
- "WebDAV" : "WebDAV",
- "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
- "No files in here" : "ファイルがありません",
- "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
- "No entries found in this folder" : "このフォルダーにはエントリーがありません",
- "Select all" : "すべて選択",
- "Upload too large" : "アップロードには大きすぎます。",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
- "No favorites" : "お気に入りなし",
- "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
- "Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "Files" : "ファイル"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
From 1cf1d1e3e38a482a58bc69957cc6472c85456cd4 Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Fri, 26 May 2023 00:15:59 +0000
Subject: [PATCH 137/244] [tx] updated from transifex
---
apps/files/l10n/ja.js | 122 +++++++++++++++++-
apps/files/l10n/ja.json | 122 +++++++++++++++++-
tests/data/apptheme/apps/files/l10n/ja.js | 122 +++++++++++++++++-
tests/data/apptheme/apps/files/l10n/ja.json | 122 +++++++++++++++++-
tests/data/themes/abc/apps/files/l10n/ja.js | 122 +++++++++++++++++-
tests/data/themes/abc/apps/files/l10n/ja.json | 122 +++++++++++++++++-
6 files changed, 726 insertions(+), 6 deletions(-)
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/apptheme/apps/files/l10n/ja.js b/tests/data/apptheme/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.js
+++ b/tests/data/apptheme/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/apptheme/apps/files/l10n/ja.json b/tests/data/apptheme/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/tests/data/apptheme/apps/files/l10n/ja.json
+++ b/tests/data/apptheme/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.js b/tests/data/themes/abc/apps/files/l10n/ja.js
index cd60ad027ec1..0b76a6208074 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.js
+++ b/tests/data/themes/abc/apps/files/l10n/ja.js
@@ -1,6 +1,126 @@
OC.L10N.register(
"files",
{
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},
"nplurals=1; plural=0;");
diff --git a/tests/data/themes/abc/apps/files/l10n/ja.json b/tests/data/themes/abc/apps/files/l10n/ja.json
index 417b141ab495..d7fcee4e4c36 100644
--- a/tests/data/themes/abc/apps/files/l10n/ja.json
+++ b/tests/data/themes/abc/apps/files/l10n/ja.json
@@ -1,4 +1,124 @@
{ "translations": {
- "Files" : "ファイル"
+ "Storage is temporarily not available" : "ストレージが一時的に利用できません",
+ "Storage invalid" : "ストレージが無効です",
+ "Unknown error" : "不明なエラー",
+ "All files" : "すべてのファイル",
+ "File could not be found" : "ファイルは見つかりませんでした。",
+ "Close" : "閉じる",
+ "Favorites" : "お気に入り",
+ "Upload timeout for file \"{file}\"" : "ファイル \"{file}\" アップロード時にタイムアウトしました",
+ "Unknown error \"{error}\" uploading file \"{file}\"" : "ファイル\"{file}\"をアップロード中に不明なエラーが発生しました\"{error}\"",
+ "Could not create folder \"{dir}\"" : "フォルダー \"{dir}\" を作成できませんでした",
+ "Upload cancelled." : "アップロードはキャンセルされました。",
+ "The file {file} already exists" : "そのファイル {file} は既に存在しています。ファイル",
+ "Processing files..." : "処理中…",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ディレクトリもしくは0バイトのため {filename} をアップロードできません",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。",
+ "You don’t have permission to upload or create files here" : "ここにファイルをアップロードもしくは作成する権限がありません",
+ "Target folder \"{dir}\" does not exist any more" : "ターゲットフォルダー \"{dir}\" はもう存在しません",
+ "Target folder does not exist any more" : "ターゲットフォルダー はもう存在しません",
+ "The file {file} is currently locked, please try again later" : "ファイル {file} はロックされています。しばらくたってからやり直してください。",
+ "Not enough free space" : "空き容量が不足しています",
+ "Uploading..." : "アップロード中...",
+ "..." : "…",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
+ "Actions" : "アクション",
+ "Download" : "ダウンロード",
+ "Rename" : "名前の変更",
+ "Delete" : "削除",
+ "Disconnect storage" : "ストレージを切断する",
+ "Unshare" : "共有解除",
+ "How do you want to open this file?" : "このファイルをどのように開きますか?",
+ "Could not load info for file \"{file}\"" : "ファイル \"{file}\" の情報を読み込めませんでした",
+ "Files" : "ファイル",
+ "Details" : "詳細",
+ "Select" : "選択",
+ "Pending" : "中断",
+ "Unable to determine date" : "更新日不明",
+ "Invalid path" : "無効なパス",
+ "This operation is forbidden" : "この操作は禁止されています",
+ "Directory \"{dir}\" is unavailable, please contact the administrator" : "ディレクトリ \"{dir}\" が利用できません。管理者にお問い合わせください。",
+ "Storage for \"{dir}\" is temporarily not available" : "\"{dir}\" のストレージは一時的に利用できません。",
+ "Shared directory \"{dir}\" is not available, remove the share or contact it's owner to reshare." : "共有ディレクトリ\"{dir}\" が利用できません、共有を削除するか、所有者に連絡して再共有してください。",
+ "Directory \"{dir}\" not found" : "ディレクトリ \"{dir}\" が見つかりません",
+ "group" : "グループ",
+ "Could not move \"{file}\", target exists" : "ターゲットが存在するため,ファイル \"{file}\"を移動できませんでした",
+ "Could not move \"{file}\" because either the file or the target are locked." : "ファイルかターゲットがロックされているため、\"{file}\" が移動できませんでした ",
+ "Could not move \"{file}\": {message}" : "\"{file}\"を移動できませんでした: {message}",
+ "Could not move \"{file}\"" : "\"{file}\" を移動できませんでした",
+ "{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 entries in this folder match {filter}" : "このフォルダー内で {filter}にマッチするものはありません",
+ "Name" : "名前",
+ "Size" : "サイズ",
+ "Modified" : "更新日時",
+ "_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n file_::_%n files_" : ["%n 個のファイル"],
+ "{dirs} and {files}" : "{dirs} と {files}",
+ "_including %n hidden_::_including %n hidden_" : ["%n の隠しファイルを含む"],
+ "_Uploading %n file_::_Uploading %n files_" : ["%n 個のファイルをアップロード中"],
+ "New" : "新規作成",
+ "Unknown user" : "不明なユーザー",
+ "Lock status" : "ロック状態",
+ "\"{name}\" is an invalid file name." : "\"{name}\" は無効なファイル名です。",
+ "File name cannot be empty." : "ファイル名を空にすることはできません。",
+ "File name cannot contain \"/\"." : "ファイル名に\"/\"を含めることはできません。",
+ "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}' にマッチ"],
+ "Path" : "Path",
+ "_%n byte_::_%n bytes_" : ["%n バイト"],
+ "Favorited" : "お気に入り済",
+ "Favorite" : "お気に入り",
+ "Private link: Only people who have access to the file/folder can use it. Use it as a permanent link for yourself or to point others to files within shares" : "プライベートリンク: ファイルやフォルダーにアクセスできる権限のあるユーザーのみ利用できます。自分用のパーマネントリンクや、共有している他のユーザーにピンポイントに指定することができます。",
+ "Folder" : "フォルダー",
+ "New folder" : "新しいフォルダー",
+ "Cancel" : "キャンセル",
+ "Create" : "作成",
+ "{newname} already exists" : "{newname} はすでに存在します",
+ "Upload" : "アップロード",
+ "An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "A new file or folder has been created" : "新しいファイルまたはフォルダーを作成したとき",
+ "A file or folder has been changed" : "ファイルまたはフォルダーを変更したとき",
+ "Limit notifications about creation and changes to your favorite files (Stream only)" : "お気に入りファイルの作成と変更の通知を制限する(ストリームのみ)",
+ "A file or folder has been deleted" : "ファイルまたはフォルダーを削除したとき",
+ "A file or folder has been restored" : "ファイルまたはフォルダーを復元したとき",
+ "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 により復元",
+ "You don't have permissions to access this file/folder - Please contact the owner to share it with you." : "このファイル/フォルダーにアクセスする権限がありません。所有者にそれを共有してもらうよう連絡してください。",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Settings" : "設定",
+ "Show hidden files" : "隠しファイルを表示",
+ "WebDAV" : "WebDAV",
+ "Use this address to access your Files via WebDAV" : "WebDAV 経由でファイルにアクセス するにはこのアドレスを利用してください",
+ "No files in here" : "ファイルがありません",
+ "Upload some content or sync with your devices!" : "何かコンテンツをアップロードするか、デバイスからファイルを同期してください。",
+ "No entries found in this folder" : "このフォルダーにはエントリーがありません",
+ "Select all" : "すべて選択",
+ "Upload too large" : "アップロードには大きすぎます。",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。",
+ "No favorites" : "お気に入りなし",
+ "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。",
+ "Text file" : "テキストファイル",
+ "New text file.txt" : "新規のテキストファイル作成"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
From 14c1c6c6a4f26c3d000915ec716a60235e9cb035 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Fri, 26 May 2023 12:52:35 +0545
Subject: [PATCH 138/244] Use symfony/translation 5.4 in acceptance tests
---
vendor-bin/behat/composer.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/vendor-bin/behat/composer.json b/vendor-bin/behat/composer.json
index 186aaa00ff99..9ca3d73187b3 100644
--- a/vendor-bin/behat/composer.json
+++ b/vendor-bin/behat/composer.json
@@ -8,9 +8,9 @@
"ciaranmcnulty/behat-stepthroughextension" : "dev-master",
"rdx/behat-variables": "^1.2",
"sensiolabs/behat-page-object-extension": "^2.3",
- "symfony/translation": "^4.4",
+ "symfony/translation": "^5.4",
"sabre/xml": "^2.2",
- "guzzlehttp/guzzle": "^7.5",
+ "guzzlehttp/guzzle": "^7.7",
"phpunit/phpunit": "^9.6",
"laminas/laminas-ldap": "^2.15",
"ankitpokhrel/tus-php": "^2.3",
From 3e4550fe67eb3681be529a27e5a115037490c655 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20Mr=C3=B3wczy=C5=84ski?=
Date: Fri, 26 May 2023 13:59:32 +0200
Subject: [PATCH 139/244] make sure to use json for federation post and get
(#40815)
* make sure to use json for federation post and get
* add changelog
* minor fixes
---
.../federation/lib/BackgroundJob/GetSharedSecret.php | 12 ++++++------
.../lib/BackgroundJob/RequestSharedSecret.php | 3 ++-
.../tests/BackgroundJob/GetSharedSecretTest.php | 5 +++--
.../tests/BackgroundJob/RequestSharedSecretTest.php | 5 +++--
changelog/unreleased/40815 | 9 +++++++++
5 files changed, 23 insertions(+), 11 deletions(-)
create mode 100644 changelog/unreleased/40815
diff --git a/apps/federation/lib/BackgroundJob/GetSharedSecret.php b/apps/federation/lib/BackgroundJob/GetSharedSecret.php
index 9005dadf88a1..e8b8a9b40dea 100644
--- a/apps/federation/lib/BackgroundJob/GetSharedSecret.php
+++ b/apps/federation/lib/BackgroundJob/GetSharedSecret.php
@@ -64,7 +64,7 @@ class GetSharedSecret extends Job {
/** @var bool */
protected $retainJob = false;
- private $endPoint = '/ocs/v2.php/apps/federation/api/v1/shared-secret?format=json';
+ private $endPoint = '/ocs/v2.php/apps/federation/api/v1/shared-secret';
/**
* RequestSharedSecret constructor.
@@ -143,11 +143,11 @@ protected function run($argument) {
$result = $this->httpClient->get(
$target . $this->endPoint,
[
- 'query' =>
- [
- 'url' => $source,
- 'token' => $token
- ],
+ 'query' => [
+ 'url' => $source,
+ 'token' => $token,
+ 'format' => 'json'
+ ],
'timeout' => 3,
'connect_timeout' => 3,
]
diff --git a/apps/federation/lib/BackgroundJob/RequestSharedSecret.php b/apps/federation/lib/BackgroundJob/RequestSharedSecret.php
index 221225ecab3d..9682d6085de7 100644
--- a/apps/federation/lib/BackgroundJob/RequestSharedSecret.php
+++ b/apps/federation/lib/BackgroundJob/RequestSharedSecret.php
@@ -58,7 +58,7 @@ class RequestSharedSecret extends Job {
/** @var TrustedServers */
private $trustedServers;
- private $endPoint = '/ocs/v2.php/apps/federation/api/v1/request-shared-secret?format=json';
+ private $endPoint = '/ocs/v2.php/apps/federation/api/v1/request-shared-secret';
/** @var ILogger */
private $logger;
@@ -143,6 +143,7 @@ protected function run($argument) {
'form_params' => [
'url' => $source,
'token' => $token,
+ 'format' => 'json'
],
'timeout' => 3,
'connect_timeout' => 3,
diff --git a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php
index 3d857316500d..57be9dd19ba8 100644
--- a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php
+++ b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php
@@ -151,12 +151,13 @@ public function testRun($statusCode) {
->willReturn($source);
$this->httpClient->expects($this->once())->method('get')
->with(
- $target . '/ocs/v2.php/apps/federation/api/v1/shared-secret?format=json',
+ $target . '/ocs/v2.php/apps/federation/api/v1/shared-secret',
[
'query' =>
[
'url' => $source,
- 'token' => $token
+ 'token' => $token,
+ 'format' => 'json'
],
'timeout' => 3,
'connect_timeout' => 3,
diff --git a/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php b/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php
index e4d577bc1387..351842a2a677 100644
--- a/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php
+++ b/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php
@@ -137,12 +137,13 @@ public function testRun($statusCode) {
->willReturn($source);
$this->httpClient->expects($this->once())->method('post')
->with(
- $target . '/ocs/v2.php/apps/federation/api/v1/request-shared-secret?format=json',
+ $target . '/ocs/v2.php/apps/federation/api/v1/request-shared-secret',
[
'form_params' =>
[
'url' => $source,
- 'token' => $token
+ 'token' => $token,
+ 'format' => 'json'
],
'timeout' => 3,
'connect_timeout' => 3,
diff --git a/changelog/unreleased/40815 b/changelog/unreleased/40815
new file mode 100644
index 000000000000..87755db82891
--- /dev/null
+++ b/changelog/unreleased/40815
@@ -0,0 +1,9 @@
+Bugfix: Always use json for federation post and get to exchange tokens
+
+After update of guzzle, it was no longer possible to request format of response to be json when adding in query parameter. One of OCSAuthAPIController fed instances was receiving requests without a hint that JSON needs to be used, and returned XML. On the other hand, OCSAuthAPIController expects only JSON for exchange, and thus failed to parse the message.
+Now the exchange is correctly done.
+
+WARNING: the patch/fix needs to be applied on all federated severs that are not yet "paired" and have the issue with guzzle library. Otherwise pairing will not work.
+
+https://github.com/owncloud/core/pull/40815
+https://github.com/owncloud/enterprise/issues/5676
From 80bee8eb388418a6fa28e2a8557d51132af75c19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20Mr=C3=B3wczy=C5=84ski?=
Date: Fri, 26 May 2023 12:02:51 +0000
Subject: [PATCH 140/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 14 ++++++++++++++
CHANGELOG.md | 15 +++++++++++++++
2 files changed, 29 insertions(+)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index fbd560bfbec6..140d2d855be1 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -10,6 +10,7 @@ Summary
Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: #40792
Bugfix - Always return an int for the Symfony Command execute method: #40793
Bugfix - Exit with success when signing-key has been set: #40794
+ Bugfix - Always use json for federation post and get to exchange tokens: #40815
Change - Upgrade to Symfony 5: #39630
Change - Update PHP dependencies: #40724
Change - Fix name length check on federated shares: #40726
@@ -52,6 +53,19 @@ Details
https://github.com/owncloud/core/pull/40794
+
+ Bugfix - Always use json for federation post and get to exchange tokens: #40815
+ After update of guzzle, it was no longer possible to request format of response to be json when
+ adding in query parameter. One of OCSAuthAPIController fed instances was receiving requests
+ without a hint that JSON needs to be used, and returned XML. On the other hand,
+ OCSAuthAPIController expects only JSON for exchange, and thus failed to parse the message.
+ Now the exchange is correctly done.WARNING: the patch/fix needs to be applied on all federated severs that are not yet "paired" and
+ have the issue with guzzle library. Otherwise pairing will not work.
+
+ https://github.com/owncloud/enterprise/issues/5676
+
+ https://github.com/owncloud/core/pull/40815
+
Change - Upgrade to Symfony 5: #39630
The Symfony PHP framework has been updated from major version 4 to 5.The following Symfony component versions are provided: - symfony/console (v5.4.23) -
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 952310f68a59..478ca918eece 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ Summary
* Bugfix - Filter sensitive data in log for Session::loginInOwnCloud: [#40792](https://github.com/owncloud/core/pull/40792)
* Bugfix - Always return an int for the Symfony Command execute method: [#40793](https://github.com/owncloud/core/pull/40793)
* Bugfix - Exit with success when signing-key has been set: [#40794](https://github.com/owncloud/core/pull/40794)
+* Bugfix - Always use json for federation post and get to exchange tokens: [#40815](https://github.com/owncloud/core/pull/40815)
* Change - Upgrade to Symfony 5: [#39630](https://github.com/owncloud/core/issues/39630)
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
@@ -56,6 +57,20 @@ Details
https://github.com/owncloud/core/pull/40794
+* Bugfix - Always use json for federation post and get to exchange tokens: [#40815](https://github.com/owncloud/core/pull/40815)
+
+ After update of guzzle, it was no longer possible to request format of response to be json when
+ adding in query parameter. One of OCSAuthAPIController fed instances was receiving requests
+ without a hint that JSON needs to be used, and returned XML. On the other hand,
+ OCSAuthAPIController expects only JSON for exchange, and thus failed to parse the message.
+ Now the exchange is correctly done.
+
+ WARNING: the patch/fix needs to be applied on all federated severs that are not yet "paired" and
+ have the issue with guzzle library. Otherwise pairing will not work.
+
+ https://github.com/owncloud/enterprise/issues/5676
+ https://github.com/owncloud/core/pull/40815
+
* Change - Upgrade to Symfony 5: [#39630](https://github.com/owncloud/core/issues/39630)
The Symfony PHP framework has been updated from major version 4 to 5.
From f7737c39a9ca13828e313e930aab666a46b728bd Mon Sep 17 00:00:00 2001
From: ownClouders
Date: Sun, 28 May 2023 00:16:41 +0000
Subject: [PATCH 141/244] [tx] updated from transifex
---
apps/files_sharing/l10n/ka_GE.js | 3 ++-
apps/files_sharing/l10n/ka_GE.json | 3 ++-
core/l10n/ka_GE.js | 6 ++++++
core/l10n/ka_GE.json | 6 ++++++
settings/l10n/ka_GE.js | 1 +
settings/l10n/ka_GE.json | 1 +
6 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/apps/files_sharing/l10n/ka_GE.js b/apps/files_sharing/l10n/ka_GE.js
index 4a6e38dc2f4c..bb93bfb14144 100644
--- a/apps/files_sharing/l10n/ka_GE.js
+++ b/apps/files_sharing/l10n/ka_GE.js
@@ -12,6 +12,7 @@ OC.L10N.register(
"Password" : "პაროლი",
"Name" : "სახელი",
"Expiration date" : "ვადის გასვლის დრო",
- "Download" : "ჩამოტვირთვა"
+ "Download" : "ჩამოტვირთვა",
+ "Direct link" : "პირდაპირი ბმული"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/files_sharing/l10n/ka_GE.json b/apps/files_sharing/l10n/ka_GE.json
index 0ef004a947c5..f9f775e99e8a 100644
--- a/apps/files_sharing/l10n/ka_GE.json
+++ b/apps/files_sharing/l10n/ka_GE.json
@@ -10,6 +10,7 @@
"Password" : "პაროლი",
"Name" : "სახელი",
"Expiration date" : "ვადის გასვლის დრო",
- "Download" : "ჩამოტვირთვა"
+ "Download" : "ჩამოტვირთვა",
+ "Direct link" : "პირდაპირი ბმული"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
}
\ No newline at end of file
diff --git a/core/l10n/ka_GE.js b/core/l10n/ka_GE.js
index 153137d28b53..92f6e1c3fb50 100644
--- a/core/l10n/ka_GE.js
+++ b/core/l10n/ka_GE.js
@@ -78,7 +78,11 @@ OC.L10N.register(
"Rename" : "გადარქმევა",
"Delete" : "წაშლა",
"The object type is not specified." : "ობიექტის ტიპი არ არის მითითებული.",
+ "Enter new" : "შეიყვანეთ ახალი",
"Add" : "დამატება",
+ "Edit tags" : "თეგების რედაქტირება",
+ "Error loading dialog template: {error}" : "შეცდომა დიალოგის შაბლონის ჩატვირთვისას: {შეცდომა}",
+ "No tags selected for deletion." : " წასაშლელად თეგები არ არის არჩეული.",
"The update was unsuccessful. Please report this issue to the ownCloud community." : "განახლება ვერ განხორციელდა. გთხოვთ შეგვატყობინოთ ამ პრობლემის შესახებ აქ: ownCloud community.",
"The update was successful. Redirecting you to ownCloud now." : "განახლება ვერ განხორციელდა. გადამისამართება თქვენს ownCloud–ზე.",
"Personal" : "პირადი",
@@ -87,6 +91,7 @@ OC.L10N.register(
"Admin" : "ადმინისტრატორი",
"Help" : "დახმარება",
"Access forbidden" : "წვდომა აკრძალულია",
+ "Cheers!" : "გამარჯვებები!",
"Imprint" : "ბეჭედი",
"Create an admin account" : "შექმენი ადმინ ექაუნტი",
"Username" : "მომხმარებლის სახელი",
@@ -100,6 +105,7 @@ OC.L10N.register(
"Finish setup" : "კონფიგურაციის დასრულება",
"Log out" : "გამოსვლა",
"Search" : "ძებნა",
+ "Server side authentication failed!" : "სერვერის მხრიდან ავტორიზაცია ვერ მოხერხდა!",
"Please contact your administrator." : "გთხოვთ, დაუკავშირდეთ თქვენს ადმინისტრატორს.",
"Login" : "ლოგინი",
"Alternative Logins" : "ალტერნატიული Login–ი",
diff --git a/core/l10n/ka_GE.json b/core/l10n/ka_GE.json
index 67368c187080..06d205298676 100644
--- a/core/l10n/ka_GE.json
+++ b/core/l10n/ka_GE.json
@@ -76,7 +76,11 @@
"Rename" : "გადარქმევა",
"Delete" : "წაშლა",
"The object type is not specified." : "ობიექტის ტიპი არ არის მითითებული.",
+ "Enter new" : "შეიყვანეთ ახალი",
"Add" : "დამატება",
+ "Edit tags" : "თეგების რედაქტირება",
+ "Error loading dialog template: {error}" : "შეცდომა დიალოგის შაბლონის ჩატვირთვისას: {შეცდომა}",
+ "No tags selected for deletion." : " წასაშლელად თეგები არ არის არჩეული.",
"The update was unsuccessful. Please report this issue to the ownCloud community." : "განახლება ვერ განხორციელდა. გთხოვთ შეგვატყობინოთ ამ პრობლემის შესახებ აქ: ownCloud community.",
"The update was successful. Redirecting you to ownCloud now." : "განახლება ვერ განხორციელდა. გადამისამართება თქვენს ownCloud–ზე.",
"Personal" : "პირადი",
@@ -85,6 +89,7 @@
"Admin" : "ადმინისტრატორი",
"Help" : "დახმარება",
"Access forbidden" : "წვდომა აკრძალულია",
+ "Cheers!" : "გამარჯვებები!",
"Imprint" : "ბეჭედი",
"Create an admin account" : "შექმენი ადმინ ექაუნტი",
"Username" : "მომხმარებლის სახელი",
@@ -98,6 +103,7 @@
"Finish setup" : "კონფიგურაციის დასრულება",
"Log out" : "გამოსვლა",
"Search" : "ძებნა",
+ "Server side authentication failed!" : "სერვერის მხრიდან ავტორიზაცია ვერ მოხერხდა!",
"Please contact your administrator." : "გთხოვთ, დაუკავშირდეთ თქვენს ადმინისტრატორს.",
"Login" : "ლოგინი",
"Alternative Logins" : "ალტერნატიული Login–ი",
diff --git a/settings/l10n/ka_GE.js b/settings/l10n/ka_GE.js
index 222bbdd07dec..600c9c9876a3 100644
--- a/settings/l10n/ka_GE.js
+++ b/settings/l10n/ka_GE.js
@@ -28,6 +28,7 @@ OC.L10N.register(
"disabled" : "გათიშულია",
"A valid username must be provided" : "უნდა მიუთითოთ არსებული მომხმარებლის სახელი",
"A valid password must be provided" : "უნდა მიუთითოთ არსებული პაროლი",
+ "Cheers!" : "გამარჯვებები!",
"Language" : "ენა",
"Cron" : "Cron–ი",
"Execute one task with each page loaded" : "გაუშვი თითო მოქმედება ყველა ჩატვირთულ გვერდზე",
diff --git a/settings/l10n/ka_GE.json b/settings/l10n/ka_GE.json
index d92cc8d0d81c..6cd342601c1e 100644
--- a/settings/l10n/ka_GE.json
+++ b/settings/l10n/ka_GE.json
@@ -26,6 +26,7 @@
"disabled" : "გათიშულია",
"A valid username must be provided" : "უნდა მიუთითოთ არსებული მომხმარებლის სახელი",
"A valid password must be provided" : "უნდა მიუთითოთ არსებული პაროლი",
+ "Cheers!" : "გამარჯვებები!",
"Language" : "ენა",
"Cron" : "Cron–ი",
"Execute one task with each page loaded" : "გაუშვი თითო მოქმედება ყველა ჩატვირთულ გვერდზე",
From 1c1ef034630e950ee1903b5d7ef3f19074ea714b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 29 May 2023 22:57:18 +0000
Subject: [PATCH 142/244] Bump symfony/process from 5.4.23 to 5.4.24
Bumps [symfony/process](https://github.com/symfony/process) from 5.4.23 to 5.4.24.
- [Release notes](https://github.com/symfony/process/releases)
- [Changelog](https://github.com/symfony/process/blob/6.3/CHANGELOG.md)
- [Commits](https://github.com/symfony/process/compare/v5.4.23...v5.4.24)
---
updated-dependencies:
- dependency-name: symfony/process
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
composer.lock | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/composer.lock b/composer.lock
index 4f89842bb659..7fbc6522f8d9 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4448,16 +4448,16 @@
},
{
"name": "symfony/process",
- "version": "v5.4.23",
+ "version": "v5.4.24",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "4b842fc4b61609e0a155a114082bd94e31e98287"
+ "reference": "e3c46cc5689c8782944274bb30702106ecbe3b64"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/4b842fc4b61609e0a155a114082bd94e31e98287",
- "reference": "4b842fc4b61609e0a155a114082bd94e31e98287",
+ "url": "https://api.github.com/repos/symfony/process/zipball/e3c46cc5689c8782944274bb30702106ecbe3b64",
+ "reference": "e3c46cc5689c8782944274bb30702106ecbe3b64",
"shasum": ""
},
"require": {
@@ -4490,7 +4490,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.23"
+ "source": "https://github.com/symfony/process/tree/v5.4.24"
},
"funding": [
{
@@ -4506,7 +4506,7 @@
"type": "tidelift"
}
],
- "time": "2023-04-18T13:50:24+00:00"
+ "time": "2023-05-17T11:26:05+00:00"
},
{
"name": "symfony/routing",
From bf47ef3ebc057e1c67d98470cd5cacf08afa5fa2 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Tue, 30 May 2023 08:39:55 +0545
Subject: [PATCH 143/244] PHP dependencies and changelog
---
changelog/unreleased/40518 | 7 ++-
.../unreleased/PHPdependencies20230404onward | 2 +
composer.lock | 60 +++++++++----------
3 files changed, 36 insertions(+), 33 deletions(-)
diff --git a/changelog/unreleased/40518 b/changelog/unreleased/40518
index 39e95c5bab65..375635b27a44 100644
--- a/changelog/unreleased/40518
+++ b/changelog/unreleased/40518
@@ -3,12 +3,13 @@ Change: upgrade to Symfony 5
The Symfony PHP framework has been updated from major version 4 to 5.
The following Symfony component versions are provided:
-- symfony/console (v5.4.23)
+- symfony/console (v5.4.24)
- symfony/event-dispatcher (v5.4.22)
-- symfony/process (v5.4.23)
+- symfony/process (v5.4.24)
- symfony/routing (v5.4.22)
- symfony/string (v5.4.22)
-- symfony/translation (v5.4.22)
+- symfony/translation (v5.4.24)
https://github.com/owncloud/core/issues/39630
https://github.com/owncloud/core/pull/40518
+https://github.com/owncloud/core/pull/40819
diff --git a/changelog/unreleased/PHPdependencies20230404onward b/changelog/unreleased/PHPdependencies20230404onward
index 7523ef3a6c8c..41032ec4eb16 100644
--- a/changelog/unreleased/PHPdependencies20230404onward
+++ b/changelog/unreleased/PHPdependencies20230404onward
@@ -1,6 +1,7 @@
Change: Update PHP dependencies
The following have been updated:
+- doctrine/deprecations (1.0.0 to 1.10)
- guzzlehttp/guzzle (7.5.0 to 7.7.0)
- pear/pear-core-minimal (1.10.11 to 1.10.13)
- punic/punic (3.8.0 to 3.8.1)
@@ -14,3 +15,4 @@ https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
https://github.com/owncloud/core/pull/40789
https://github.com/owncloud/core/pull/40806
+https://github.com/owncloud/core/pull/40819
diff --git a/composer.lock b/composer.lock
index 7fbc6522f8d9..f703449c9d16 100644
--- a/composer.lock
+++ b/composer.lock
@@ -487,16 +487,16 @@
},
{
"name": "doctrine/deprecations",
- "version": "v1.0.0",
+ "version": "v1.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de"
+ "reference": "8cffffb2218e01f3b370bf763e00e81697725259"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
- "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/8cffffb2218e01f3b370bf763e00e81697725259",
+ "reference": "8cffffb2218e01f3b370bf763e00e81697725259",
"shasum": ""
},
"require": {
@@ -524,9 +524,9 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/v1.0.0"
+ "source": "https://github.com/doctrine/deprecations/tree/v1.1.0"
},
- "time": "2022-05-02T15:47:09+00:00"
+ "time": "2023-05-29T18:55:17+00:00"
},
{
"name": "doctrine/event-manager",
@@ -3380,16 +3380,16 @@
},
{
"name": "symfony/console",
- "version": "v5.4.23",
+ "version": "v5.4.24",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "90f21e27d0d88ce38720556dd164d4a1e4c3934c"
+ "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/90f21e27d0d88ce38720556dd164d4a1e4c3934c",
- "reference": "90f21e27d0d88ce38720556dd164d4a1e4c3934c",
+ "url": "https://api.github.com/repos/symfony/console/zipball/560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8",
+ "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8",
"shasum": ""
},
"require": {
@@ -3459,7 +3459,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.23"
+ "source": "https://github.com/symfony/console/tree/v5.4.24"
},
"funding": [
{
@@ -3475,7 +3475,7 @@
"type": "tidelift"
}
],
- "time": "2023-04-24T18:47:29+00:00"
+ "time": "2023-05-26T05:13:16+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -4769,16 +4769,16 @@
},
{
"name": "symfony/translation",
- "version": "v5.4.22",
+ "version": "v5.4.24",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "9a401392f01bc385aa42760eff481d213a0cc2ba"
+ "reference": "de237e59c5833422342be67402d487fbf50334ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/9a401392f01bc385aa42760eff481d213a0cc2ba",
- "reference": "9a401392f01bc385aa42760eff481d213a0cc2ba",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/de237e59c5833422342be67402d487fbf50334ff",
+ "reference": "de237e59c5833422342be67402d487fbf50334ff",
"shasum": ""
},
"require": {
@@ -4846,7 +4846,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v5.4.22"
+ "source": "https://github.com/symfony/translation/tree/v5.4.24"
},
"funding": [
{
@@ -4862,7 +4862,7 @@
"type": "tidelift"
}
],
- "time": "2023-03-27T16:07:23+00:00"
+ "time": "2023-05-19T12:34:17+00:00"
},
{
"name": "symfony/translation-contracts",
@@ -5719,12 +5719,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
- "reference": "d1af11449398214f9664514ce705c5154ead9c38"
+ "reference": "2d73bad6cb1c8cda0ab4e4208f4ee2d70e472879"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/d1af11449398214f9664514ce705c5154ead9c38",
- "reference": "d1af11449398214f9664514ce705c5154ead9c38",
+ "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/2d73bad6cb1c8cda0ab4e4208f4ee2d70e472879",
+ "reference": "2d73bad6cb1c8cda0ab4e4208f4ee2d70e472879",
"shasum": ""
},
"conflict": {
@@ -5788,7 +5788,7 @@
"cockpit-hq/cockpit": "<2.4.1",
"codeception/codeception": "<3.1.3|>=4,<4.1.22",
"codeigniter/framework": "<=3.0.6",
- "codeigniter4/framework": "<4.2.11",
+ "codeigniter4/framework": "<4.3.5",
"codeigniter4/shield": "<1-beta.4|= 1.0.0-beta",
"codiad/codiad": "<=2.8.4",
"composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5",
@@ -5800,7 +5800,7 @@
"contao/core-bundle": "<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4|= 4.10.0",
"contao/listing-bundle": ">=4,<4.4.8",
"contao/managed-edition": "<=1.5",
- "craftcms/cms": "<=3.8.3|>=4,<=4.4.3|>= 4.0.0-RC1, < 4.3.7|>= 4.0.0-RC1, < 4.2.1",
+ "craftcms/cms": ">= 4.0.0-RC1, <= 4.4.5|>= 4.0.0-RC1, <= 4.4.6|<=3.8.5|>=4,<4.4.6|>= 4.0.0-RC1, < 4.4.6|>= 4.0.0-RC1, < 4.3.7|>= 4.0.0-RC1, < 4.2.1",
"croogo/croogo": "<3.0.7",
"cuyz/valinor": "<0.12",
"czproject/git-php": "<4.0.3",
@@ -5872,14 +5872,14 @@
"fooman/tcpdf": "<6.2.22",
"forkcms/forkcms": "<5.11.1",
"fossar/tcpdf-parser": "<6.2.22",
- "francoisjacquet/rosariosis": "<10.9.3",
+ "francoisjacquet/rosariosis": "<11",
"frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2",
"friendsofsymfony/oauth2-php": "<1.3",
"friendsofsymfony/rest-bundle": ">=1.2,<1.2.2",
"friendsofsymfony/user-bundle": ">=1.2,<1.3.5",
"friendsoftypo3/mediace": ">=7.6.2,<7.6.5",
"froala/wysiwyg-editor": "<3.2.7",
- "froxlor/froxlor": "<2.0.14",
+ "froxlor/froxlor": "<2.0.16",
"fuel/core": "<1.8.1",
"funadmin/funadmin": "<=3.2",
"gaoming13/wechat-php-sdk": "<=1.10.2",
@@ -6050,7 +6050,7 @@
"phpwhois/phpwhois": "<=4.2.5",
"phpxmlrpc/extras": "<0.6.1",
"phpxmlrpc/phpxmlrpc": "<4.9.2",
- "pimcore/customer-management-framework-bundle": "<3.3.9",
+ "pimcore/customer-management-framework-bundle": "<3.3.10",
"pimcore/data-hub": "<1.2.4",
"pimcore/perspective-editor": "<1.5.1",
"pimcore/pimcore": "<10.5.21",
@@ -6078,7 +6078,7 @@
"pyrocms/pyrocms": "<=3.9.1",
"rainlab/debugbar-plugin": "<3.1",
"rankmath/seo-by-rank-math": "<=1.0.95",
- "react/http": ">=0.7,<1.7",
+ "react/http": ">=0.7,<1.9",
"really-simple-plugins/complianz-gdpr": "<6.4.2",
"remdex/livehelperchat": "<3.99",
"rmccue/requests": ">=1.6,<1.8",
@@ -6122,7 +6122,7 @@
"simplesamlphp/simplesamlphp-module-openidprovider": "<0.9",
"simplito/elliptic-php": "<1.0.6",
"sitegeist/fluid-components": "<3.5",
- "slim/psr7": "<1.6.1",
+ "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1",
"slim/slim": "<2.6",
"smarty/smarty": "<3.1.48|>=4,<4.3.1",
"snipe/snipe-it": "<=6.0.14|>= 6.0.0-RC-1, <= 6.0.0-RC-5",
@@ -6191,7 +6191,7 @@
"thelia/thelia": ">=2.1-beta.1,<2.1.3",
"theonedemon/phpwhois": "<=4.2.5",
"thinkcmf/thinkcmf": "<=5.1.7",
- "thorsten/phpmyfaq": "<3.1.13",
+ "thorsten/phpmyfaq": "<3.2-beta",
"tinymce/tinymce": "<5.10.7|>=6,<6.3.1",
"tinymighty/wiki-seo": "<1.2.2",
"titon/framework": ">=0,<9.9.99",
@@ -6319,7 +6319,7 @@
"type": "tidelift"
}
],
- "time": "2023-05-12T21:03:58+00:00"
+ "time": "2023-05-26T14:04:17+00:00"
},
{
"name": "sebastian/cli-parser",
From 856ff2202426a46bbadd8f660d07188da740a725 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Tue, 30 May 2023 03:41:17 +0000
Subject: [PATCH 144/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 15 ++++++++-------
CHANGELOG.md | 13 ++++++++-----
2 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index 140d2d855be1..f4b87319e5f3 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -68,21 +68,22 @@ Details
Change - Upgrade to Symfony 5: #39630
- The Symfony PHP framework has been updated from major version 4 to 5.The following Symfony component versions are provided: - symfony/console (v5.4.23) -
- symfony/event-dispatcher (v5.4.22) - symfony/process (v5.4.23) - symfony/routing
- (v5.4.22) - symfony/string (v5.4.22) - symfony/translation (v5.4.22)
+
The Symfony PHP framework has been updated from major version 4 to 5.The following Symfony component versions are provided: - symfony/console (v5.4.24) -
+ symfony/event-dispatcher (v5.4.22) - symfony/process (v5.4.24) - symfony/routing
+ (v5.4.22) - symfony/string (v5.4.22) - symfony/translation (v5.4.24)
https://github.com/owncloud/core/issues/39630
- https://github.com/owncloud/core/pull/40518
+ https://github.com/owncloud/core/pull/40518
https://github.com/owncloud/core/pull/40819
Change - Update PHP dependencies: #40724
- The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.7.0) -
- pear/pear-core-minimal (1.10.11 to 1.10.13) - punic/punic (3.8.0 to 3.8.1)The following have been updated in apps/files_external/3rdparty: - google/apiclient
+
The following have been updated: - doctrine/deprecations (1.0.0 to 1.10) -
+ guzzlehttp/guzzle (7.5.0 to 7.7.0) - pear/pear-core-minimal (1.10.11 to 1.10.13) -
+ punic/punic (3.8.0 to 3.8.1)The following have been updated in apps/files_external/3rdparty: - google/apiclient
(2.13.1 to 2.13.2)
- https://github.com/owncloud/core/pull/40724
https://github.com/owncloud/core/pull/40731
https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
https://github.com/owncloud/core/pull/40789
https://github.com/owncloud/core/pull/40806
+ https://github.com/owncloud/core/pull/40724
https://github.com/owncloud/core/pull/40731
https://github.com/owncloud/core/pull/40742
https://github.com/owncloud/core/pull/40753
https://github.com/owncloud/core/pull/40789
https://github.com/owncloud/core/pull/40806
https://github.com/owncloud/core/pull/40819
Change - Fix name length check on federated shares: #40726
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 478ca918eece..f38692f043a2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -75,17 +75,19 @@ Details
The Symfony PHP framework has been updated from major version 4 to 5.
- The following Symfony component versions are provided: - symfony/console (v5.4.23) -
- symfony/event-dispatcher (v5.4.22) - symfony/process (v5.4.23) - symfony/routing
- (v5.4.22) - symfony/string (v5.4.22) - symfony/translation (v5.4.22)
+ The following Symfony component versions are provided: - symfony/console (v5.4.24) -
+ symfony/event-dispatcher (v5.4.22) - symfony/process (v5.4.24) - symfony/routing
+ (v5.4.22) - symfony/string (v5.4.22) - symfony/translation (v5.4.24)
https://github.com/owncloud/core/issues/39630
https://github.com/owncloud/core/pull/40518
+ https://github.com/owncloud/core/pull/40819
* Change - Update PHP dependencies: [#40724](https://github.com/owncloud/core/pull/40724)
- The following have been updated: - guzzlehttp/guzzle (7.5.0 to 7.7.0) -
- pear/pear-core-minimal (1.10.11 to 1.10.13) - punic/punic (3.8.0 to 3.8.1)
+ The following have been updated: - doctrine/deprecations (1.0.0 to 1.10) -
+ guzzlehttp/guzzle (7.5.0 to 7.7.0) - pear/pear-core-minimal (1.10.11 to 1.10.13) -
+ punic/punic (3.8.0 to 3.8.1)
The following have been updated in apps/files_external/3rdparty: - google/apiclient
(2.13.1 to 2.13.2)
@@ -96,6 +98,7 @@ Details
https://github.com/owncloud/core/pull/40753
https://github.com/owncloud/core/pull/40789
https://github.com/owncloud/core/pull/40806
+ https://github.com/owncloud/core/pull/40819
* Change - Fix name length check on federated shares: [#40726](https://github.com/owncloud/core/pull/40726)
From 8091a44bd82764e7e15631bbf836fcfc056557e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Pablo=20Villaf=C3=A1=C3=B1ez?=
Date: Tue, 9 May 2023 13:57:40 +0200
Subject: [PATCH 145/244] Add command to remove obsolete storages from the
filecache
---
apps/files/appinfo/info.xml | 1 +
apps/files/lib/Command/RemoveStorageCache.php | 163 ++++++++++++++++++
2 files changed, 164 insertions(+)
create mode 100644 apps/files/lib/Command/RemoveStorageCache.php
diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml
index ddda2e0ff843..36959983683e 100644
--- a/apps/files/appinfo/info.xml
+++ b/apps/files/appinfo/info.xml
@@ -29,6 +29,7 @@
OCA\Files\Command\CheckCache
OCA\Files\Command\Scan
OCA\Files\Command\DeleteOrphanedFiles
+ OCA\Files\Command\RemoveStorageCache
OCA\Files\Command\TransferOwnership
OCA\Files\Command\TroubleshootTransferOwnership
OCA\Files\Command\VerifyChecksums
diff --git a/apps/files/lib/Command/RemoveStorageCache.php b/apps/files/lib/Command/RemoveStorageCache.php
new file mode 100644
index 000000000000..1ec607162556
--- /dev/null
+++ b/apps/files/lib/Command/RemoveStorageCache.php
@@ -0,0 +1,163 @@
+
+ *
+ */
+
+namespace OCA\Files\Command;
+
+use OCP\IDBConnection;
+use OCP\DB\QueryBuilder\IQueryBuilder;
+use Symfony\Component\Console\Helper\ProgressBar;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Remove the target storage from the oc_storages tables, and remove the
+ * related files from the oc_filecache table.
+ */
+class RemoveStorageCache extends Command {
+ private const DEFAULT_CHUNK_SIZE = 1000;
+
+ /** @var IDBConnection */
+ private $connection;
+
+ public function __construct(IDBConnection $connection) {
+ parent::__construct();
+ $this->connection = $connection;
+ }
+
+ protected function configure() {
+ $this
+ ->setName('files:remove-storage')
+ ->setDescription('Remove a storage from the storages table and the related files from the filecache table')
+ ->addArgument(
+ 'storage-id',
+ InputArgument::REQUIRED,
+ 'The numeric id of the storage'
+ )->addOption(
+ 'chunk-size',
+ null,
+ InputOption::VALUE_REQUIRED,
+ 'The number of rows that will be deleted at the same time',
+ self::DEFAULT_CHUNK_SIZE
+ );
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+ $storage_id = \intval($input->getArgument('storage-id'));
+ if ($storage_id <= 0) {
+ $output->writeln('The storage id provided isn\'t valid');
+ return 1;
+ }
+
+ $chunk_size = \intval($input->getOption('chunk-size'));
+ if ($chunk_size <= 0) {
+ $chunk_size = self::DEFAULT_CHUNK_SIZE;
+ }
+
+ $this->removeStorage($storage_id);
+ $nfiles = $this->countCachedFiles($storage_id);
+
+ if ($nfiles <= 0) {
+ $output->writeln('No files found for the target storage');
+ return 0;
+ }
+
+ $bar = new ProgressBar($output);
+ $bar->start($nfiles);
+ while (($maxId = $this->getMaxFileidInRange($storage_id, $chunk_size)) > 0) {
+ $ndeleted = $this->removeCachedFiles($storage_id, $maxId);
+ $bar->advance($ndeleted);
+ }
+ $bar->finish();
+ return 0;
+ }
+
+ /**
+ * Remove the storage_id from the oc_storages table.
+ * @return int the number of rows deleted from the table
+ */
+ private function removeStorage(int $storage_id) {
+ $qb = $this->connection->getQueryBuilder();
+ $result = $qb->delete('storages')
+ ->where($qb->expr()->eq('numeric_id', $qb->createNamedParameter($storage_id, IQueryBuilder::PARAM_INT)))
+ ->execute();
+ return (int)$result;
+ }
+
+ /**
+ * Count the number of rows for the storage_id
+ * @return int the number of rows for the target storage
+ */
+ private function countCachedFiles(int $storage_id) {
+ $qb = $this->connection->getQueryBuilder();
+ $result = $qb->select($qb->createFunction('count(*) as `count`'))
+ ->from('filecache')
+ ->where($qb->expr()->eq('storage', $qb->createNamedParameter($storage_id, IQueryBuilder::PARAM_INT)))
+ ->execute();
+
+ $row = $result->fetch();
+ $result->closeCursor();
+
+ return (int)$row['count'];
+ }
+
+ /**
+ * Get the maximum fileid found in the first results of the storage_id
+ * If there is no file in the storage, 0 will be returned.
+ * The rows can be deleted by filtering by the storage_id and with
+ * the fileid lower or equal to the returned fileid
+ * @return int the maximum fileid found
+ */
+ private function getMaxFileidInRange(int $storage_id, $maxResults) {
+ $qb = $this->connection->getQueryBuilder();
+ $result = $qb->select('fileid')
+ ->from('filecache')
+ ->where($qb->expr()->eq('storage', $qb->createNamedParameter($storage_id, IQueryBuilder::PARAM_INT)))
+ ->orderBy('fileid', 'ASC')
+ ->setMaxResults($maxResults)
+ ->execute();
+
+ $maxId = 0;
+ while (($row = $result->fetch()) !== false) {
+ if ($maxId < (int)$row['fileid']) {
+ $maxId = (int)$row['fileid'];
+ }
+ }
+
+ $result->closeCursor();
+ return $maxId;
+ }
+
+ /**
+ * Remove the files in the oc_filecache table with the target storage_id and
+ * with fileid lower or equal to the $max
+ * @return int the number of removed rows
+ */
+ private function removeCachedFiles(int $storage_id, int $max) {
+ $qb = $this->connection->getQueryBuilder();
+ $result = $qb->delete('filecache')
+ ->where($qb->expr()->eq('storage', $qb->createNamedParameter($storage_id, IQueryBuilder::PARAM_INT)))
+ ->andWhere($qb->expr()->lte('fileid', $qb->createNamedParameter($max)))
+ ->execute();
+
+ return (int)$result;
+ }
+}
From 14b8d1270fae3dab315d9c8be8fd392aaf22570a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Pablo=20Villaf=C3=A1=C3=B1ez?=
Date: Wed, 10 May 2023 10:13:26 +0200
Subject: [PATCH 146/244] Provide option to show possible candidates
---
apps/files/lib/Command/RemoveStorageCache.php | 34 +++++++++++++++++--
1 file changed, 32 insertions(+), 2 deletions(-)
diff --git a/apps/files/lib/Command/RemoveStorageCache.php b/apps/files/lib/Command/RemoveStorageCache.php
index 1ec607162556..f4e5ed9a7052 100644
--- a/apps/files/lib/Command/RemoveStorageCache.php
+++ b/apps/files/lib/Command/RemoveStorageCache.php
@@ -21,6 +21,7 @@
use OCP\IDBConnection;
use OCP\DB\QueryBuilder\IQueryBuilder;
+use Symfony\Component\Console\Helper\Table;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
@@ -49,7 +50,7 @@ protected function configure() {
->setDescription('Remove a storage from the storages table and the related files from the filecache table')
->addArgument(
'storage-id',
- InputArgument::REQUIRED,
+ InputArgument::OPTIONAL,
'The numeric id of the storage'
)->addOption(
'chunk-size',
@@ -57,13 +58,23 @@ protected function configure() {
InputOption::VALUE_REQUIRED,
'The number of rows that will be deleted at the same time',
self::DEFAULT_CHUNK_SIZE
+ )->addOption(
+ 'show-candidates',
+ null,
+ InputOption::VALUE_NONE,
+ 'Show possible candidates for obsolete storages. It might be slow'
);
}
protected function execute(InputInterface $input, OutputInterface $output) {
+ if ($input->getOption('show-candidates')) {
+ $this->showCandidates($output);
+ return 0;
+ }
+
$storage_id = \intval($input->getArgument('storage-id'));
if ($storage_id <= 0) {
- $output->writeln('The storage id provided isn\'t valid');
+ $output->writeln('A valid storage id is required');
return 1;
}
@@ -160,4 +171,23 @@ private function removeCachedFiles(int $storage_id, int $max) {
return (int)$result;
}
+
+ private function showCandidates(OutputInterface $output) {
+ $qb = $this->connection->getQueryBuilder();
+ $result = $qb->select(['s.numeric_id', 's.id', $qb->createFunction('count(f.storage) as `count`')])
+ ->from('storages', 's')
+ ->leftJoin('s', 'mounts', 'm', $qb->expr()->eq('s.numeric_id', 'm.storage_id'))
+ ->leftJoin('s', 'filecache', 'f', $qb->expr()->eq('s.numeric_id', 'f.storage'))
+ ->groupBy('s.numeric_id', 'm.mount_point', 'f.storage')
+ ->having($qb->expr()->isNull('m.mount_point'))
+ ->execute();
+
+ $table = new Table($output);
+ $table->setHeaders(['numeric_id', 'id', 'file_count']);
+ while (($row = $result->fetch()) !== false) {
+ $table->addRow([$row['numeric_id'], $row['id'], $row['count']]);
+ }
+ $table->render();
+ $result->closeCursor();
+ }
}
From c00ab1ce7e10072097abd4d665693747120c2560 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Pablo=20Villaf=C3=A1=C3=B1ez?=
Date: Wed, 10 May 2023 10:23:00 +0200
Subject: [PATCH 147/244] Refine DB query
---
apps/files/lib/Command/RemoveStorageCache.php | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/apps/files/lib/Command/RemoveStorageCache.php b/apps/files/lib/Command/RemoveStorageCache.php
index f4e5ed9a7052..d424f7a32a0c 100644
--- a/apps/files/lib/Command/RemoveStorageCache.php
+++ b/apps/files/lib/Command/RemoveStorageCache.php
@@ -174,18 +174,18 @@ private function removeCachedFiles(int $storage_id, int $max) {
private function showCandidates(OutputInterface $output) {
$qb = $this->connection->getQueryBuilder();
- $result = $qb->select(['s.numeric_id', 's.id', $qb->createFunction('count(f.storage) as `count`')])
+ $result = $qb->select(['f.storage', 's.id', $qb->createFunction('count(f.storage) as `count`')])
->from('storages', 's')
->leftJoin('s', 'mounts', 'm', $qb->expr()->eq('s.numeric_id', 'm.storage_id'))
- ->leftJoin('s', 'filecache', 'f', $qb->expr()->eq('s.numeric_id', 'f.storage'))
- ->groupBy('s.numeric_id', 'm.mount_point', 'f.storage')
+ ->rightJoin('s', 'filecache', 'f', $qb->expr()->eq('s.numeric_id', 'f.storage'))
+ ->groupBy('f.storage', 'm.mount_point')
->having($qb->expr()->isNull('m.mount_point'))
->execute();
$table = new Table($output);
- $table->setHeaders(['numeric_id', 'id', 'file_count']);
+ $table->setHeaders(['storage', 'id', 'file_count']);
while (($row = $result->fetch()) !== false) {
- $table->addRow([$row['numeric_id'], $row['id'], $row['count']]);
+ $table->addRow([$row['storage'], $row['id'] ?? 'NULL', $row['count']]);
}
$table->render();
$result->closeCursor();
From 345c246580c5d96792e4ddc013994482e9bb2b78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Pablo=20Villaf=C3=A1=C3=B1ez?=
Date: Wed, 10 May 2023 17:12:07 +0200
Subject: [PATCH 148/244] Adjust text
---
apps/files/lib/Command/RemoveStorageCache.php | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/apps/files/lib/Command/RemoveStorageCache.php b/apps/files/lib/Command/RemoveStorageCache.php
index d424f7a32a0c..ed8a4cb57739 100644
--- a/apps/files/lib/Command/RemoveStorageCache.php
+++ b/apps/files/lib/Command/RemoveStorageCache.php
@@ -47,22 +47,22 @@ public function __construct(IDBConnection $connection) {
protected function configure() {
$this
->setName('files:remove-storage')
- ->setDescription('Remove a storage from the storages table and the related files from the filecache table')
+ ->setDescription('Remove a storage from the storages table and related files from the filecache table.')
->addArgument(
'storage-id',
InputArgument::OPTIONAL,
- 'The numeric id of the storage'
+ 'The numeric ID of the storage'
)->addOption(
'chunk-size',
null,
InputOption::VALUE_REQUIRED,
- 'The number of rows that will be deleted at the same time',
+ 'The number of rows that will be deleted at the same time.',
self::DEFAULT_CHUNK_SIZE
)->addOption(
'show-candidates',
null,
InputOption::VALUE_NONE,
- 'Show possible candidates for obsolete storages. It might be slow'
+ 'Show possible candidates for obsolete storages. This query can take a while.'
);
}
@@ -74,7 +74,7 @@ protected function execute(InputInterface $input, OutputInterface $output) {
$storage_id = \intval($input->getArgument('storage-id'));
if ($storage_id <= 0) {
- $output->writeln('A valid storage id is required');
+ $output->writeln('A valid storage ID is required');
return 1;
}
From 6165b3abad1795bb4ad49eef7ed5f95192d9fc78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Pablo=20Villaf=C3=A1=C3=B1ez?=
Date: Mon, 15 May 2023 10:58:46 +0200
Subject: [PATCH 149/244] Fix issue with postgresql
---
apps/files/lib/Command/RemoveStorageCache.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/files/lib/Command/RemoveStorageCache.php b/apps/files/lib/Command/RemoveStorageCache.php
index ed8a4cb57739..c209f53493d4 100644
--- a/apps/files/lib/Command/RemoveStorageCache.php
+++ b/apps/files/lib/Command/RemoveStorageCache.php
@@ -178,7 +178,7 @@ private function showCandidates(OutputInterface $output) {
->from('storages', 's')
->leftJoin('s', 'mounts', 'm', $qb->expr()->eq('s.numeric_id', 'm.storage_id'))
->rightJoin('s', 'filecache', 'f', $qb->expr()->eq('s.numeric_id', 'f.storage'))
- ->groupBy('f.storage', 'm.mount_point')
+ ->groupBy('f.storage', 's.id', 'm.mount_point')
->having($qb->expr()->isNull('m.mount_point'))
->execute();
From a1b47b5c8f84c53a4acf18eed1b1f1c28b49ee70 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Pablo=20Villaf=C3=A1=C3=B1ez?=
Date: Tue, 16 May 2023 14:02:02 +0200
Subject: [PATCH 150/244] Fix problems with oracle and rename showed columns
---
apps/files/lib/Command/RemoveStorageCache.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/apps/files/lib/Command/RemoveStorageCache.php b/apps/files/lib/Command/RemoveStorageCache.php
index c209f53493d4..b617fe76fe9d 100644
--- a/apps/files/lib/Command/RemoveStorageCache.php
+++ b/apps/files/lib/Command/RemoveStorageCache.php
@@ -174,7 +174,7 @@ private function removeCachedFiles(int $storage_id, int $max) {
private function showCandidates(OutputInterface $output) {
$qb = $this->connection->getQueryBuilder();
- $result = $qb->select(['f.storage', 's.id', $qb->createFunction('count(f.storage) as `count`')])
+ $result = $qb->select(['f.storage', 's.id', $qb->createFunction('count(f.`storage`) as `count`')])
->from('storages', 's')
->leftJoin('s', 'mounts', 'm', $qb->expr()->eq('s.numeric_id', 'm.storage_id'))
->rightJoin('s', 'filecache', 'f', $qb->expr()->eq('s.numeric_id', 'f.storage'))
@@ -183,7 +183,7 @@ private function showCandidates(OutputInterface $output) {
->execute();
$table = new Table($output);
- $table->setHeaders(['storage', 'id', 'file_count']);
+ $table->setHeaders(['storage-id', 'name', 'file_count']);
while (($row = $result->fetch()) !== false) {
$table->addRow([$row['storage'], $row['id'] ?? 'NULL', $row['count']]);
}
From d7558de55ed61fd2f2a5c676ea5b6c56b98f233e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Pablo=20Villaf=C3=A1=C3=B1ez?=
Date: Tue, 16 May 2023 17:06:36 +0200
Subject: [PATCH 151/244] Add changelog entry
---
changelog/unreleased/40779 | 10 ++++++++++
1 file changed, 10 insertions(+)
create mode 100644 changelog/unreleased/40779
diff --git a/changelog/unreleased/40779 b/changelog/unreleased/40779
new file mode 100644
index 000000000000..6e6a44701513
--- /dev/null
+++ b/changelog/unreleased/40779
@@ -0,0 +1,10 @@
+Enhancement: Added occ command to remove obsolete storages
+
+Metadata coming from storages are stored in the DB. When a storage has been
+removed from ownCloud, that metadata remains in the DB.
+
+The new occ command allows you to remove that metadata stored, reducing
+the amount of space used by the DB as well as slightly improving the
+performance since there will be less entries.
+
+https://github.com/owncloud/core/pull/40779
From 88d17e4afffad449f25074208737633af9d7fe23 Mon Sep 17 00:00:00 2001
From: Phil Davis
Date: Wed, 31 May 2023 13:17:19 +0000
Subject: [PATCH 152/244] Automated changelog update [skip ci]
---
CHANGELOG.html | 9 +++++++++
CHANGELOG.md | 11 +++++++++++
2 files changed, 20 insertions(+)
diff --git a/CHANGELOG.html b/CHANGELOG.html
index f4b87319e5f3..45a3469c6dbd 100644
--- a/CHANGELOG.html
+++ b/CHANGELOG.html
@@ -18,6 +18,7 @@ Summary
Change - Fix hiding Last Login column on Users page: #40771
Change - Fix name length check on system tag creation: #40804
Enhancement - Improve X-Robots-Tag header values check: #40715
+ Enhancement - Added occ command to remove obsolete storages: #40779