diff options
Diffstat (limited to 'apps')
127 files changed, 804 insertions, 266 deletions
diff --git a/apps/accessibility/l10n/ru.js b/apps/accessibility/l10n/ru.js index 7e71fd0221a..65fec98803f 100644 --- a/apps/accessibility/l10n/ru.js +++ b/apps/accessibility/l10n/ru.js @@ -12,8 +12,8 @@ OC.L10N.register( "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic — бесплатный шрифт, который смягчает некоторые распространённые ошибки чтения, вызываемые дислексией.", "Accessibility" : "Доступность", "Accessibility options for nextcloud" : "Настройки доступности для Nextcloud", - "Provides multiple accessibilities options to ease your use of Nextcloud" : "Предоставляет несколько вариантов доступности, чтобы облегчить использование Nextcloud", - "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Nextcloud разрабатывается с возможностью его использования всеми. При разработке учитываются веб-стандарты и выполняются проверки возможности использования без мыши, а также при помощи специальных программ, например, выполняющих чтение с экрана. Nextcloud стремиться к выполнению рекомендаций Руководства доступности веб-контента версии 2.1 на уровне АА, а при использованием режима высокой контрастности — даже на уровне ААА.", - "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "При обнаружении ошибок, не стесняйтесь сообщать о них {issuetracker} на наш форум{linkend}. Если Вы заинтересованы в продвижении проекта присоединяйтесь к {designteam}команде дизайнеров{linkend}." + "Provides multiple accessibilities options to ease your use of Nextcloud" : "Предлагает дополнительные настройки для упрощения использования Nextcloud", + "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Доступная среда очень важна для нас. При разработке мы следуем веб-стандартам, контролируя возможность пользования всем сервисом без помощи мыши и с использованием вспомогательных программ, например, выполняющих чтение с экрана. Мы стремимся к выполнению рекомендаций {guidelines}Руководства доступности Веб-Контента{linkend} 2.1 на уровне АА, а при использовании режима высокой контрастности — даже на уровне ААА.", + "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "При обнаружении ошибок, не стесняйтесь сообщать о них {issuetracker}на наш форум{linkend}. Если Вы заинтересованы в продвижении проекта присоединяйтесь к {designteam}команде дизайнеров{linkend}!" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/accessibility/l10n/ru.json b/apps/accessibility/l10n/ru.json index c305e77c5b6..51d4de3ebe1 100644 --- a/apps/accessibility/l10n/ru.json +++ b/apps/accessibility/l10n/ru.json @@ -10,8 +10,8 @@ "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic — бесплатный шрифт, который смягчает некоторые распространённые ошибки чтения, вызываемые дислексией.", "Accessibility" : "Доступность", "Accessibility options for nextcloud" : "Настройки доступности для Nextcloud", - "Provides multiple accessibilities options to ease your use of Nextcloud" : "Предоставляет несколько вариантов доступности, чтобы облегчить использование Nextcloud", - "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Nextcloud разрабатывается с возможностью его использования всеми. При разработке учитываются веб-стандарты и выполняются проверки возможности использования без мыши, а также при помощи специальных программ, например, выполняющих чтение с экрана. Nextcloud стремиться к выполнению рекомендаций Руководства доступности веб-контента версии 2.1 на уровне АА, а при использованием режима высокой контрастности — даже на уровне ААА.", - "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "При обнаружении ошибок, не стесняйтесь сообщать о них {issuetracker} на наш форум{linkend}. Если Вы заинтересованы в продвижении проекта присоединяйтесь к {designteam}команде дизайнеров{linkend}." + "Provides multiple accessibilities options to ease your use of Nextcloud" : "Предлагает дополнительные настройки для упрощения использования Nextcloud", + "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Доступная среда очень важна для нас. При разработке мы следуем веб-стандартам, контролируя возможность пользования всем сервисом без помощи мыши и с использованием вспомогательных программ, например, выполняющих чтение с экрана. Мы стремимся к выполнению рекомендаций {guidelines}Руководства доступности Веб-Контента{linkend} 2.1 на уровне АА, а при использовании режима высокой контрастности — даже на уровне ААА.", + "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "При обнаружении ошибок, не стесняйтесь сообщать о них {issuetracker}на наш форум{linkend}. Если Вы заинтересованы в продвижении проекта присоединяйтесь к {designteam}команде дизайнеров{linkend}!" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/accessibility/l10n/vi.js b/apps/accessibility/l10n/vi.js index 07bfe5c3a66..8ab40b7f9b2 100644 --- a/apps/accessibility/l10n/vi.js +++ b/apps/accessibility/l10n/vi.js @@ -13,7 +13,7 @@ OC.L10N.register( "Accessibility" : "Khả năng tiếp cận", "Accessibility options for nextcloud" : "Tùy chọn truy cập cho nextcloud", "Provides multiple accessibilities options to ease your use of Nextcloud" : "Cung cấp nhiều tùy chọn truy cập để dễ dàng sử dụng Nextcloud", - "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và hỗ trợ những phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với Nguyên Tắc Truy Cập Cho Nội Dung Mạng 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA", + "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Sự truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và hỗ trợ những phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với {guidelines}Nguyên Tắc Truy Cập Cho Nội Dung Mạng{linkend} 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA", "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Nếu bạn tìm được bất cứ vấn đề gì, đừng ngần ngại để báo cáo chúng trên hệ thống theo dõi vấn đề của chúng tôi." }, "nplurals=1; plural=0;"); diff --git a/apps/accessibility/l10n/vi.json b/apps/accessibility/l10n/vi.json index 257abfd0ffa..22be124bbaf 100644 --- a/apps/accessibility/l10n/vi.json +++ b/apps/accessibility/l10n/vi.json @@ -11,7 +11,7 @@ "Accessibility" : "Khả năng tiếp cận", "Accessibility options for nextcloud" : "Tùy chọn truy cập cho nextcloud", "Provides multiple accessibilities options to ease your use of Nextcloud" : "Cung cấp nhiều tùy chọn truy cập để dễ dàng sử dụng Nextcloud", - "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và hỗ trợ những phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với Nguyên Tắc Truy Cập Cho Nội Dung Mạng 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA", + "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Sự truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và hỗ trợ những phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với {guidelines}Nguyên Tắc Truy Cập Cho Nội Dung Mạng{linkend} 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA", "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Nếu bạn tìm được bất cứ vấn đề gì, đừng ngần ngại để báo cáo chúng trên hệ thống theo dõi vấn đề của chúng tôi." },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/accessibility/l10n/zh_CN.js b/apps/accessibility/l10n/zh_CN.js index 69b77279202..e0397935e14 100644 --- a/apps/accessibility/l10n/zh_CN.js +++ b/apps/accessibility/l10n/zh_CN.js @@ -3,7 +3,7 @@ OC.L10N.register( { "Dark theme" : "深色主题", "Enable dark theme" : "启用深色主题", - "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "一款通过降低整体亮度来使您的眼睛放松的深色主题。该主题目前还在开发中,如发现问题请您及时向我们反馈。", + "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "一款通过降低整体亮度来使您的眼睛放松的深色主题。该主题目前还在开发中,请您及时向我们反馈您可能发现的任何问题。", "High contrast mode" : "高对比度模式", "Enable high contrast mode" : "启用高对比度模式", "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "使用高对比度模式。图像质量会下降,但清晰度会提升。", diff --git a/apps/accessibility/l10n/zh_CN.json b/apps/accessibility/l10n/zh_CN.json index 6b6f3539615..f06f85dc3a8 100644 --- a/apps/accessibility/l10n/zh_CN.json +++ b/apps/accessibility/l10n/zh_CN.json @@ -1,7 +1,7 @@ { "translations": { "Dark theme" : "深色主题", "Enable dark theme" : "启用深色主题", - "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "一款通过降低整体亮度来使您的眼睛放松的深色主题。该主题目前还在开发中,如发现问题请您及时向我们反馈。", + "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "一款通过降低整体亮度来使您的眼睛放松的深色主题。该主题目前还在开发中,请您及时向我们反馈您可能发现的任何问题。", "High contrast mode" : "高对比度模式", "Enable high contrast mode" : "启用高对比度模式", "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "使用高对比度模式。图像质量会下降,但清晰度会提升。", diff --git a/apps/comments/l10n/ru.js b/apps/comments/l10n/ru.js index 0cefe5ad015..cfa4bce1e9c 100644 --- a/apps/comments/l10n/ru.js +++ b/apps/comments/l10n/ru.js @@ -10,6 +10,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s прокомментировано на %2$s", "{author} commented on {file}" : "{author} прокомментировал {file}", "<strong>Comments</strong> for files" : "<strong>Комментарии</strong> к файлам", + "You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Вы были упомянуты на \"{file}\", в комментарии пользователя, который с тех пор был удалён", + "{user} mentioned you in a comment on \"{file}\"" : "{user} упомянул вас в комментарии к \"{file}\".", "Files app plugin to add comments to files" : "Модуль приложения «Файлы», позволяющий комментировать файлы", "Edit comment" : "Редактировать комментарий", "Delete comment" : "Удалить комментарий", diff --git a/apps/comments/l10n/ru.json b/apps/comments/l10n/ru.json index f9aae036d97..1f3edfd067b 100644 --- a/apps/comments/l10n/ru.json +++ b/apps/comments/l10n/ru.json @@ -8,6 +8,8 @@ "%1$s commented on %2$s" : "%1$s прокомментировано на %2$s", "{author} commented on {file}" : "{author} прокомментировал {file}", "<strong>Comments</strong> for files" : "<strong>Комментарии</strong> к файлам", + "You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Вы были упомянуты на \"{file}\", в комментарии пользователя, который с тех пор был удалён", + "{user} mentioned you in a comment on \"{file}\"" : "{user} упомянул вас в комментарии к \"{file}\".", "Files app plugin to add comments to files" : "Модуль приложения «Файлы», позволяющий комментировать файлы", "Edit comment" : "Редактировать комментарий", "Delete comment" : "Удалить комментарий", diff --git a/apps/comments/l10n/vi.js b/apps/comments/l10n/vi.js index 4b03d1a6057..72a5c90832a 100644 --- a/apps/comments/l10n/vi.js +++ b/apps/comments/l10n/vi.js @@ -10,6 +10,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s đã bình luận về%2$s", "{author} commented on {file}" : "{author} đã bình luận về tệp tin {file}", "<strong>Comments</strong> for files" : "<strong>bình luận</strong> đối với các tệp tin", + "You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Bạn đã được nhắc tới trên \"{file}\", trong một bình luận bởi một người dùng đã bị xoá", + "{user} mentioned you in a comment on \"{file}\"" : "{user} đã nhắc tới bạn trong một bình luận trên \"{file}\"", "Files app plugin to add comments to files" : "Plugin ứng dụng Tệp để thêm bình luận vào tệp", "Edit comment" : "Sửa bình luận", "Delete comment" : "Xóa bình luận", @@ -26,7 +28,7 @@ OC.L10N.register( "Comment deleted" : "Đã xóa bình luận", "An error occurred while trying to delete the comment" : "Đã xảy ra lỗi khi cố gắng xóa bình luận", "An error occurred while trying to create the comment" : "Đã xảy ra lỗi khi cố gắng tạo bình luận", - "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Bạn đã được nhắc đến ở “{file}”, trong một bình luận bởi một người dùng mà họ đã bị xóa từ đó trở đi", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Bạn đã được nhắc đến ở “{file}”, trong một bình luận bởi một người dùng mà họ đã bị xóa ", "{user} mentioned you in a comment on “{file}”" : "{user} đề cập tới bạn trong một bình luận về “{file}”", "New comment …" : "Tạo bình luận mới", "Post" : "Đăng", @@ -35,7 +37,7 @@ OC.L10N.register( "More comments …" : "Xem thêm các bình luận...", "Save" : "Lưu", "Allowed characters {count} of {max}" : "Số ký tự được còn lại là {count} trong tổng số {max}", - "Error occurred while retrieving comment with ID {id}" : "Xảy ra lỗi khi trích xuất bình của ID{id}", + "Error occurred while retrieving comment with ID {id}" : "Xảy ra lỗi khi trích xuất bình luận của ID{id}", "Error occurred while updating comment with id {id}" : "Có lỗi xảy ra khi cập nhật bình luận có id {id}", "Error occurred while posting comment" : "Có lỗi xảy ra khi đăng bình luận" }, diff --git a/apps/comments/l10n/vi.json b/apps/comments/l10n/vi.json index b8cb015da56..2bb30d286df 100644 --- a/apps/comments/l10n/vi.json +++ b/apps/comments/l10n/vi.json @@ -8,6 +8,8 @@ "%1$s commented on %2$s" : "%1$s đã bình luận về%2$s", "{author} commented on {file}" : "{author} đã bình luận về tệp tin {file}", "<strong>Comments</strong> for files" : "<strong>bình luận</strong> đối với các tệp tin", + "You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Bạn đã được nhắc tới trên \"{file}\", trong một bình luận bởi một người dùng đã bị xoá", + "{user} mentioned you in a comment on \"{file}\"" : "{user} đã nhắc tới bạn trong một bình luận trên \"{file}\"", "Files app plugin to add comments to files" : "Plugin ứng dụng Tệp để thêm bình luận vào tệp", "Edit comment" : "Sửa bình luận", "Delete comment" : "Xóa bình luận", @@ -24,7 +26,7 @@ "Comment deleted" : "Đã xóa bình luận", "An error occurred while trying to delete the comment" : "Đã xảy ra lỗi khi cố gắng xóa bình luận", "An error occurred while trying to create the comment" : "Đã xảy ra lỗi khi cố gắng tạo bình luận", - "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Bạn đã được nhắc đến ở “{file}”, trong một bình luận bởi một người dùng mà họ đã bị xóa từ đó trở đi", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Bạn đã được nhắc đến ở “{file}”, trong một bình luận bởi một người dùng mà họ đã bị xóa ", "{user} mentioned you in a comment on “{file}”" : "{user} đề cập tới bạn trong một bình luận về “{file}”", "New comment …" : "Tạo bình luận mới", "Post" : "Đăng", @@ -33,7 +35,7 @@ "More comments …" : "Xem thêm các bình luận...", "Save" : "Lưu", "Allowed characters {count} of {max}" : "Số ký tự được còn lại là {count} trong tổng số {max}", - "Error occurred while retrieving comment with ID {id}" : "Xảy ra lỗi khi trích xuất bình của ID{id}", + "Error occurred while retrieving comment with ID {id}" : "Xảy ra lỗi khi trích xuất bình luận của ID{id}", "Error occurred while updating comment with id {id}" : "Có lỗi xảy ra khi cập nhật bình luận có id {id}", "Error occurred while posting comment" : "Có lỗi xảy ra khi đăng bình luận" },"pluralForm" :"nplurals=1; plural=0;" diff --git a/apps/dashboard/l10n/el.js b/apps/dashboard/l10n/el.js index 5e0d5bf060c..ff91b3d5fe8 100644 --- a/apps/dashboard/l10n/el.js +++ b/apps/dashboard/l10n/el.js @@ -22,7 +22,7 @@ OC.L10N.register( "Good evening" : "Καλό βράδυ", "Good evening, {name}" : "Καλό βράδυ, {name}", "Hello" : "Γειά", - "Hello, {name}" : "Γειά, {όνομα}", + "Hello, {name}" : "Γειά, {name}", "Pick from Files" : "Επιλέξτε από αρχεία", "Default images" : "Προεπιλεγμένες εικόνες", "Plain background" : "Απλό παρασκήνιο", diff --git a/apps/dashboard/l10n/el.json b/apps/dashboard/l10n/el.json index 10d2c7c47b8..d5671d5c77e 100644 --- a/apps/dashboard/l10n/el.json +++ b/apps/dashboard/l10n/el.json @@ -20,7 +20,7 @@ "Good evening" : "Καλό βράδυ", "Good evening, {name}" : "Καλό βράδυ, {name}", "Hello" : "Γειά", - "Hello, {name}" : "Γειά, {όνομα}", + "Hello, {name}" : "Γειά, {name}", "Pick from Files" : "Επιλέξτε από αρχεία", "Default images" : "Προεπιλεγμένες εικόνες", "Plain background" : "Απλό παρασκήνιο", diff --git a/apps/dav/lib/DAV/CustomPropertiesBackend.php b/apps/dav/lib/DAV/CustomPropertiesBackend.php index 1bd207e0967..5f512995ce8 100644 --- a/apps/dav/lib/DAV/CustomPropertiesBackend.php +++ b/apps/dav/lib/DAV/CustomPropertiesBackend.php @@ -303,6 +303,11 @@ class CustomPropertiesBackend implements BackendInterface { ); } } else { + if ($propertyValue instanceOf \Sabre\DAV\Xml\Property\Complex) { + $propertyValue = $propertyValue->getXml(); + } elseif (!is_string($propertyValue)) { + $propertyValue = (string)$propertyValue; + } if (!array_key_exists($propertyName, $existing)) { $this->connection->executeUpdate($insertStatement, [ diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js index 153c1143cc0..7cb11341078 100644 --- a/apps/files/l10n/zh_CN.js +++ b/apps/files/l10n/zh_CN.js @@ -24,8 +24,8 @@ OC.L10N.register( "Uploading …" : "正在上传...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})", "Uploading that item is not supported" : "不支持上传此项目", - "Target folder does not exist any more" : "目标文件夹不存在", - "Operation is blocked by access control" : "操作被访问控制阻止", + "Target folder does not exist any more" : "目标文件夹已不存在", + "Operation is blocked by access control" : "访问控制阻止此操作", "Error when assembling chunks, status code {status}" : "组装块时发生错误,状态码 {status}", "Actions" : "操作", "Rename" : "重命名", @@ -151,9 +151,9 @@ OC.L10N.register( "Accept" : "接受", "Reject" : "拒绝", "Incoming ownership transfer from {user}" : "来自{user}的所有权转移", - "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "您要接受{path}吗?\n\n注意:接受之后的转移过程可能长达1小时。", + "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "您要接受{path}吗?\n\n注意:接受后转移过程可能长达1小时。", "Ownership transfer failed" : "所有权转移失败", - "Your ownership transfer of {path} to {user} failed." : "您的{path}向{user}的所有权转移失败。", + "Your ownership transfer of {path} to {user} failed." : "您{path}的所有权向{user}转移失败。", "The ownership transfer of {path} from {user} failed." : "来自{user}的{path}的所有权转移失败。", "Ownership transfer done" : "所有权转移完成", "Your ownership transfer of {path} to {user} has completed." : "您的{path}向{user}的所有权转移已完成。", @@ -162,19 +162,19 @@ OC.L10N.register( "File Management" : "文件管理", "Transfer ownership of a file or folder" : "转移文件或文件夹的所有权", "Choose file or folder to transfer" : "选择要转移的文件或文件夹", - "Change" : "变更", + "Change" : "修改", "New owner" : "新的拥有者", "Search users" : "搜索用户", "Choose a file or folder to transfer" : "选择要转移的文件或文件夹", "Transfer" : "转移", - "Transfer {path} to {userid}" : "转移 {path} 给 {userid}", + "Transfer {path} to {userid}" : "将 {path} 转移给 {userid}", "Invalid path selected" : "选择的路径无效", "Ownership transfer request sent" : "所有权转移请求已发送", "Cannot transfer ownership of a file or folder you don't own" : "无法转让您未拥有的文件或文件夹的所有权", "Tags" : "标签", - "Unable to change the favourite state of the file" : "无法更改文件的收藏状态", + "Unable to change the favourite state of the file" : "无法修改文件的收藏状态", "Error while loading the file data" : "加载文件数据时出错", - "Pick a template for {name}" : "为 {name} 挑选一个模板", + "Pick a template for {name}" : "给 {name} 挑选一个模板", "Cancel" : "取消", "Create" : "创建", "Create a new file with the selected template" : "用所选模板创建一个新文件", @@ -184,9 +184,9 @@ OC.L10N.register( "Set up templates folder" : "设置模板文件夹", "Templates" : "模板", "Unable to initialize the templates directory" : "无法初始化模板目录", - "%s used" : "已使用了 %s", - "%s%% of %s used" : "%s 已使用了 %s 中的 %%", - "%1$s of %2$s used" : "已使用了 %2$s 中的 %1$s", + "%s used" : "已使用 %s", + "%s%% of %s used" : "%s 已使用 %s 中的 %%", + "%1$s of %2$s used" : "已使用 %2$s 中的 %1$s", "Settings" : "设置", "Show hidden files" : "显示隐藏文件", "Crop image previews" : "裁剪图片预览", @@ -212,7 +212,7 @@ OC.L10N.register( "Text file" : "文本文件", "New text file.txt" : "新建文本文档.txt", "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner} 的存储空间已满,文件将无法更新或同步!", - "Group folder \"{mountPoint}\" is full, files can not be updated or synced anymore!" : "组文件夹 \"{mountPoint}\" 已满,无法再更新或同步文件!", + "Group folder \"{mountPoint}\" is full, files can not be updated or synced anymore!" : " \"{mountPoint}\"组文件夹已满,文件无法继续更新或同步!", "External storage \"{mountPoint}\" is full, files can not be updated or synced anymore!" : "外部存储 \"{mountPoint}\" 已满,无法再更新或同步文件!", "Your storage is full, files can not be updated or synced anymore!" : "您的存储空间已满,文件将无法更新或同步!", "_matches '{filter}'_::_match '{filter}'_" : ["匹配 '{filter}'"] diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json index 3039303b871..f695a865b82 100644 --- a/apps/files/l10n/zh_CN.json +++ b/apps/files/l10n/zh_CN.json @@ -22,8 +22,8 @@ "Uploading …" : "正在上传...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})", "Uploading that item is not supported" : "不支持上传此项目", - "Target folder does not exist any more" : "目标文件夹不存在", - "Operation is blocked by access control" : "操作被访问控制阻止", + "Target folder does not exist any more" : "目标文件夹已不存在", + "Operation is blocked by access control" : "访问控制阻止此操作", "Error when assembling chunks, status code {status}" : "组装块时发生错误,状态码 {status}", "Actions" : "操作", "Rename" : "重命名", @@ -149,9 +149,9 @@ "Accept" : "接受", "Reject" : "拒绝", "Incoming ownership transfer from {user}" : "来自{user}的所有权转移", - "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "您要接受{path}吗?\n\n注意:接受之后的转移过程可能长达1小时。", + "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "您要接受{path}吗?\n\n注意:接受后转移过程可能长达1小时。", "Ownership transfer failed" : "所有权转移失败", - "Your ownership transfer of {path} to {user} failed." : "您的{path}向{user}的所有权转移失败。", + "Your ownership transfer of {path} to {user} failed." : "您{path}的所有权向{user}转移失败。", "The ownership transfer of {path} from {user} failed." : "来自{user}的{path}的所有权转移失败。", "Ownership transfer done" : "所有权转移完成", "Your ownership transfer of {path} to {user} has completed." : "您的{path}向{user}的所有权转移已完成。", @@ -160,19 +160,19 @@ "File Management" : "文件管理", "Transfer ownership of a file or folder" : "转移文件或文件夹的所有权", "Choose file or folder to transfer" : "选择要转移的文件或文件夹", - "Change" : "变更", + "Change" : "修改", "New owner" : "新的拥有者", "Search users" : "搜索用户", "Choose a file or folder to transfer" : "选择要转移的文件或文件夹", "Transfer" : "转移", - "Transfer {path} to {userid}" : "转移 {path} 给 {userid}", + "Transfer {path} to {userid}" : "将 {path} 转移给 {userid}", "Invalid path selected" : "选择的路径无效", "Ownership transfer request sent" : "所有权转移请求已发送", "Cannot transfer ownership of a file or folder you don't own" : "无法转让您未拥有的文件或文件夹的所有权", "Tags" : "标签", - "Unable to change the favourite state of the file" : "无法更改文件的收藏状态", + "Unable to change the favourite state of the file" : "无法修改文件的收藏状态", "Error while loading the file data" : "加载文件数据时出错", - "Pick a template for {name}" : "为 {name} 挑选一个模板", + "Pick a template for {name}" : "给 {name} 挑选一个模板", "Cancel" : "取消", "Create" : "创建", "Create a new file with the selected template" : "用所选模板创建一个新文件", @@ -182,9 +182,9 @@ "Set up templates folder" : "设置模板文件夹", "Templates" : "模板", "Unable to initialize the templates directory" : "无法初始化模板目录", - "%s used" : "已使用了 %s", - "%s%% of %s used" : "%s 已使用了 %s 中的 %%", - "%1$s of %2$s used" : "已使用了 %2$s 中的 %1$s", + "%s used" : "已使用 %s", + "%s%% of %s used" : "%s 已使用 %s 中的 %%", + "%1$s of %2$s used" : "已使用 %2$s 中的 %1$s", "Settings" : "设置", "Show hidden files" : "显示隐藏文件", "Crop image previews" : "裁剪图片预览", @@ -210,7 +210,7 @@ "Text file" : "文本文件", "New text file.txt" : "新建文本文档.txt", "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner} 的存储空间已满,文件将无法更新或同步!", - "Group folder \"{mountPoint}\" is full, files can not be updated or synced anymore!" : "组文件夹 \"{mountPoint}\" 已满,无法再更新或同步文件!", + "Group folder \"{mountPoint}\" is full, files can not be updated or synced anymore!" : " \"{mountPoint}\"组文件夹已满,文件无法继续更新或同步!", "External storage \"{mountPoint}\" is full, files can not be updated or synced anymore!" : "外部存储 \"{mountPoint}\" 已满,无法再更新或同步文件!", "Your storage is full, files can not be updated or synced anymore!" : "您的存储空间已满,文件将无法更新或同步!", "_matches '{filter}'_::_match '{filter}'_" : ["匹配 '{filter}'"] diff --git a/apps/files_external/3rdparty/.gitignore b/apps/files_external/3rdparty/.gitignore index 651eb60572d..e787d39fca6 100644 --- a/apps/files_external/3rdparty/.gitignore +++ b/apps/files_external/3rdparty/.gitignore @@ -5,6 +5,8 @@ icewind/smb/install_libsmbclient.sh icewind/smb/Makefile icewind/smb/.travis.yml icewind/smb/.scrutinizer.yml +icewind/smb/example-apache-kerberos.php +icewind/smb/codecov.yml icewind/streams/tests .github .php_cs* diff --git a/apps/files_external/3rdparty/composer.json b/apps/files_external/3rdparty/composer.json index d8854aa976a..e343521add3 100644 --- a/apps/files_external/3rdparty/composer.json +++ b/apps/files_external/3rdparty/composer.json @@ -9,6 +9,6 @@ }, "require": { "icewind/streams": "0.7.4", - "icewind/smb": "3.4.1" + "icewind/smb": "3.5.2" } } diff --git a/apps/files_external/3rdparty/composer.lock b/apps/files_external/3rdparty/composer.lock index 05de684a017..918dd7da08d 100644 --- a/apps/files_external/3rdparty/composer.lock +++ b/apps/files_external/3rdparty/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "0ffc772b2aaaaffe52decb8d13361976", + "content-hash": "524c99fd87297e01d004eb5a4e53b04c", "packages": [ { "name": "icewind/smb", - "version": "v3.4.1", + "version": "v3.5.2", "source": { "type": "git", "url": "https://github.com/icewind1991/SMB.git", - "reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3" + "reference": "0a425bd21acf7ae112b135dca34640e1b1a825c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/icewind1991/SMB/zipball/9dba42ab2a3990de29e18cc62b0a8270aceb74e3", - "reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3", + "url": "https://api.github.com/repos/icewind1991/SMB/zipball/0a425bd21acf7ae112b135dca34640e1b1a825c3", + "reference": "0a425bd21acf7ae112b135dca34640e1b1a825c3", "shasum": "" }, "require": { @@ -49,9 +49,9 @@ "description": "php wrapper for smbclient and libsmbclient-php", "support": { "issues": "https://github.com/icewind1991/SMB/issues", - "source": "https://github.com/icewind1991/SMB/tree/v3.4.1" + "source": "https://github.com/icewind1991/SMB/tree/v3.5.2" }, - "time": "2021-04-19T13:53:08+00:00" + "time": "2022-01-20T14:51:51+00:00" }, { "name": "icewind/streams", @@ -107,5 +107,5 @@ "prefer-lowest": false, "platform": [], "platform-dev": [], - "plugin-api-version": "2.1.0" + "plugin-api-version": "2.2.0" } diff --git a/apps/files_external/3rdparty/composer/ClassLoader.php b/apps/files_external/3rdparty/composer/ClassLoader.php index 6d0c3f2d001..afef3fa2ad8 100644 --- a/apps/files_external/3rdparty/composer/ClassLoader.php +++ b/apps/files_external/3rdparty/composer/ClassLoader.php @@ -42,30 +42,75 @@ namespace Composer\Autoload; */ class ClassLoader { + /** @var ?string */ private $vendorDir; // PSR-4 + /** + * @var array[] + * @psalm-var array<string, array<string, int>> + */ private $prefixLengthsPsr4 = array(); + /** + * @var array[] + * @psalm-var array<string, array<int, string>> + */ private $prefixDirsPsr4 = array(); + /** + * @var array[] + * @psalm-var array<string, string> + */ private $fallbackDirsPsr4 = array(); // PSR-0 + /** + * @var array[] + * @psalm-var array<string, array<string, string[]>> + */ private $prefixesPsr0 = array(); + /** + * @var array[] + * @psalm-var array<string, string> + */ private $fallbackDirsPsr0 = array(); + /** @var bool */ private $useIncludePath = false; + + /** + * @var string[] + * @psalm-var array<string, string> + */ private $classMap = array(); + + /** @var bool */ private $classMapAuthoritative = false; + + /** + * @var bool[] + * @psalm-var array<string, bool> + */ private $missingClasses = array(); + + /** @var ?string */ private $apcuPrefix; + /** + * @var self[] + */ private static $registeredLoaders = array(); + /** + * @param ?string $vendorDir + */ public function __construct($vendorDir = null) { $this->vendorDir = $vendorDir; } + /** + * @return string[] + */ public function getPrefixes() { if (!empty($this->prefixesPsr0)) { @@ -75,28 +120,47 @@ class ClassLoader return array(); } + /** + * @return array[] + * @psalm-return array<string, array<int, string>> + */ public function getPrefixesPsr4() { return $this->prefixDirsPsr4; } + /** + * @return array[] + * @psalm-return array<string, string> + */ public function getFallbackDirs() { return $this->fallbackDirsPsr0; } + /** + * @return array[] + * @psalm-return array<string, string> + */ public function getFallbackDirsPsr4() { return $this->fallbackDirsPsr4; } + /** + * @return string[] Array of classname => path + * @psalm-return array<string, string> + */ public function getClassMap() { return $this->classMap; } /** - * @param array $classMap Class to filename map + * @param string[] $classMap Class to filename map + * @psalm-param array<string, string> $classMap + * + * @return void */ public function addClassMap(array $classMap) { @@ -111,9 +175,11 @@ class ClassLoader * Registers a set of PSR-0 directories for a given prefix, either * appending or prepending to the ones previously set for this prefix. * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void */ public function add($prefix, $paths, $prepend = false) { @@ -156,11 +222,13 @@ class ClassLoader * Registers a set of PSR-4 directories for a given namespace, either * appending or prepending to the ones previously set for this namespace. * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories * * @throws \InvalidArgumentException + * + * @return void */ public function addPsr4($prefix, $paths, $prepend = false) { @@ -204,8 +272,10 @@ class ClassLoader * Registers a set of PSR-0 directories for a given prefix, * replacing any others previously set for this prefix. * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 base directories + * + * @return void */ public function set($prefix, $paths) { @@ -220,10 +290,12 @@ class ClassLoader * Registers a set of PSR-4 directories for a given namespace, * replacing any others previously set for this namespace. * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories * * @throws \InvalidArgumentException + * + * @return void */ public function setPsr4($prefix, $paths) { @@ -243,6 +315,8 @@ class ClassLoader * Turns on searching the include path for class files. * * @param bool $useIncludePath + * + * @return void */ public function setUseIncludePath($useIncludePath) { @@ -265,6 +339,8 @@ class ClassLoader * that have not been registered with the class map. * * @param bool $classMapAuthoritative + * + * @return void */ public function setClassMapAuthoritative($classMapAuthoritative) { @@ -285,6 +361,8 @@ class ClassLoader * APCu prefix to use to cache found/not-found classes, if the extension is enabled. * * @param string|null $apcuPrefix + * + * @return void */ public function setApcuPrefix($apcuPrefix) { @@ -305,6 +383,8 @@ class ClassLoader * Registers this instance as an autoloader. * * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void */ public function register($prepend = false) { @@ -324,6 +404,8 @@ class ClassLoader /** * Unregisters this instance as an autoloader. + * + * @return void */ public function unregister() { @@ -403,6 +485,11 @@ class ClassLoader return self::$registeredLoaders; } + /** + * @param string $class + * @param string $ext + * @return string|false + */ private function findFileWithExtension($class, $ext) { // PSR-4 lookup @@ -474,6 +561,10 @@ class ClassLoader * Scope isolated include. * * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + * @private */ function includeFile($file) { diff --git a/apps/files_external/3rdparty/composer/InstalledVersions.php b/apps/files_external/3rdparty/composer/InstalledVersions.php index b3a4e1611e6..d50e0c9fcc4 100644 --- a/apps/files_external/3rdparty/composer/InstalledVersions.php +++ b/apps/files_external/3rdparty/composer/InstalledVersions.php @@ -20,12 +20,25 @@ use Composer\Semver\VersionParser; * * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * - * To require it's presence, you can require `composer-runtime-api ^2.0` + * To require its presence, you can require `composer-runtime-api ^2.0` */ class InstalledVersions { + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null + */ private static $installed; + + /** + * @var bool|null + */ private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}> + */ private static $installedByVendor = array(); /** @@ -228,7 +241,7 @@ class InstalledVersions /** * @return array - * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string} + * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string} */ public static function getRootPackage() { @@ -242,7 +255,7 @@ class InstalledVersions * * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. * @return array[] - * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} + * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} */ public static function getRawData() { @@ -265,7 +278,7 @@ class InstalledVersions * Returns the raw data of all installed.php which are currently loaded for custom implementations * * @return array[] - * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}> + * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}> */ public static function getAllRawData() { @@ -288,7 +301,7 @@ class InstalledVersions * @param array[] $data A vendor/composer/installed.php data set * @return void * - * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data + * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data */ public static function reload($data) { @@ -298,7 +311,7 @@ class InstalledVersions /** * @return array[] - * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}> + * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}> */ private static function getInstalled() { diff --git a/apps/files_external/3rdparty/composer/autoload_classmap.php b/apps/files_external/3rdparty/composer/autoload_classmap.php index d0f82994f29..17b94af0e99 100644 --- a/apps/files_external/3rdparty/composer/autoload_classmap.php +++ b/apps/files_external/3rdparty/composer/autoload_classmap.php @@ -48,6 +48,7 @@ return array( 'Icewind\\SMB\\IShare' => $vendorDir . '/icewind/smb/src/IShare.php', 'Icewind\\SMB\\ISystem' => $vendorDir . '/icewind/smb/src/ISystem.php', 'Icewind\\SMB\\ITimeZoneProvider' => $vendorDir . '/icewind/smb/src/ITimeZoneProvider.php', + 'Icewind\\SMB\\KerberosApacheAuth' => $vendorDir . '/icewind/smb/src/KerberosApacheAuth.php', 'Icewind\\SMB\\KerberosAuth' => $vendorDir . '/icewind/smb/src/KerberosAuth.php', 'Icewind\\SMB\\Native\\NativeFileInfo' => $vendorDir . '/icewind/smb/src/Native/NativeFileInfo.php', 'Icewind\\SMB\\Native\\NativeReadStream' => $vendorDir . '/icewind/smb/src/Native/NativeReadStream.php', diff --git a/apps/files_external/3rdparty/composer/autoload_static.php b/apps/files_external/3rdparty/composer/autoload_static.php index 899982f2a67..1d309dcd6f1 100644 --- a/apps/files_external/3rdparty/composer/autoload_static.php +++ b/apps/files_external/3rdparty/composer/autoload_static.php @@ -68,6 +68,7 @@ class ComposerStaticInit98fe9b281934250b3a93f69a5ce843b3 'Icewind\\SMB\\IShare' => __DIR__ . '/..' . '/icewind/smb/src/IShare.php', 'Icewind\\SMB\\ISystem' => __DIR__ . '/..' . '/icewind/smb/src/ISystem.php', 'Icewind\\SMB\\ITimeZoneProvider' => __DIR__ . '/..' . '/icewind/smb/src/ITimeZoneProvider.php', + 'Icewind\\SMB\\KerberosApacheAuth' => __DIR__ . '/..' . '/icewind/smb/src/KerberosApacheAuth.php', 'Icewind\\SMB\\KerberosAuth' => __DIR__ . '/..' . '/icewind/smb/src/KerberosAuth.php', 'Icewind\\SMB\\Native\\NativeFileInfo' => __DIR__ . '/..' . '/icewind/smb/src/Native/NativeFileInfo.php', 'Icewind\\SMB\\Native\\NativeReadStream' => __DIR__ . '/..' . '/icewind/smb/src/Native/NativeReadStream.php', diff --git a/apps/files_external/3rdparty/composer/installed.json b/apps/files_external/3rdparty/composer/installed.json index 7405962c70c..2c9b1c087df 100644 --- a/apps/files_external/3rdparty/composer/installed.json +++ b/apps/files_external/3rdparty/composer/installed.json @@ -2,17 +2,17 @@ "packages": [ { "name": "icewind/smb", - "version": "v3.4.1", - "version_normalized": "3.4.1.0", + "version": "v3.5.2", + "version_normalized": "3.5.2.0", "source": { "type": "git", "url": "https://github.com/icewind1991/SMB.git", - "reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3" + "reference": "0a425bd21acf7ae112b135dca34640e1b1a825c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/icewind1991/SMB/zipball/9dba42ab2a3990de29e18cc62b0a8270aceb74e3", - "reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3", + "url": "https://api.github.com/repos/icewind1991/SMB/zipball/0a425bd21acf7ae112b135dca34640e1b1a825c3", + "reference": "0a425bd21acf7ae112b135dca34640e1b1a825c3", "shasum": "" }, "require": { @@ -25,7 +25,7 @@ "phpunit/phpunit": "^8.5|^9.3.8", "psalm/phar": "^4.3" }, - "time": "2021-04-19T13:53:08+00:00", + "time": "2022-01-20T14:51:51+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -46,7 +46,7 @@ "description": "php wrapper for smbclient and libsmbclient-php", "support": { "issues": "https://github.com/icewind1991/SMB/issues", - "source": "https://github.com/icewind1991/SMB/tree/v3.4.1" + "source": "https://github.com/icewind1991/SMB/tree/v3.5.2" }, "install-path": "../icewind/smb" }, diff --git a/apps/files_external/3rdparty/composer/installed.php b/apps/files_external/3rdparty/composer/installed.php index 7dfd1c420f7..255420e1003 100644 --- a/apps/files_external/3rdparty/composer/installed.php +++ b/apps/files_external/3rdparty/composer/installed.php @@ -5,7 +5,7 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../', 'aliases' => array(), - 'reference' => '70483a16a3a232758979bb6fa363629b5a16b6a4', + 'reference' => '0bed61f949bc7a8c69cd154919e78b704e28c99e', 'name' => 'files_external/3rdparty', 'dev' => true, ), @@ -16,16 +16,16 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../', 'aliases' => array(), - 'reference' => '70483a16a3a232758979bb6fa363629b5a16b6a4', + 'reference' => '0bed61f949bc7a8c69cd154919e78b704e28c99e', 'dev_requirement' => false, ), 'icewind/smb' => array( - 'pretty_version' => 'v3.4.1', - 'version' => '3.4.1.0', + 'pretty_version' => 'v3.5.2', + 'version' => '3.5.2.0', 'type' => 'library', 'install_path' => __DIR__ . '/../icewind/smb', 'aliases' => array(), - 'reference' => '9dba42ab2a3990de29e18cc62b0a8270aceb74e3', + 'reference' => '0a425bd21acf7ae112b135dca34640e1b1a825c3', 'dev_requirement' => false, ), 'icewind/streams' => array( diff --git a/apps/files_external/3rdparty/icewind/smb/README.md b/apps/files_external/3rdparty/icewind/smb/README.md index 272c4ebedcd..fec1faefbad 100644 --- a/apps/files_external/3rdparty/icewind/smb/README.md +++ b/apps/files_external/3rdparty/icewind/smb/README.md @@ -44,13 +44,42 @@ $server = $serverFactory->createServer('localhost', $auth); ### Using kerberos authentication ### +There are two ways of using kerberos to authenticate against the smb server: + +- Using a ticket from the php server +- Re-using a ticket send by the client + +### Using a server ticket + +Using a server ticket allows the web server to authenticate against the smb server using an existing machine account. + +The ticket needs to be available in the environment of the php process. + ```php $serverFactory = new ServerFactory(); $auth = new KerberosAuth(); $server = $serverFactory->createServer('localhost', $auth); ``` -Note that this requires a valid kerberos ticket to already be available for php +### Re-using a client ticket + +By re-using a client ticket you can create a single sign-on setup where the user authenticates against +the web service using kerberos. And the web server can forward that ticket to the smb server, allowing it +to act on the behalf of the user without requiring the user to enter his passord. + +The setup for such a system is fairly involved and requires roughly the following this + +- The web server is authenticated against kerberos with a machine account +- Delegation is enabled for the web server's machine account +- Apache is setup to perform kerberos authentication and save the ticket in it's environment +- Php has the krb5 extension installed +- The client authenticates using a ticket with forwarding enabled + +```php +$serverFactory = new ServerFactory(); +$auth = new KerberosApacheAuth(); +$server = $serverFactory->createServer('localhost', $auth); +``` ### Upload a file ### diff --git a/apps/files_external/3rdparty/icewind/smb/src/IShare.php b/apps/files_external/3rdparty/icewind/smb/src/IShare.php index 6ac6e0d2d15..40213b93a99 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/IShare.php +++ b/apps/files_external/3rdparty/icewind/smb/src/IShare.php @@ -45,7 +45,7 @@ interface IShare { public function put(string $source, string $target): bool; /** - * Open a readable stream top a remote file + * Open a readable stream to a remote file * * @param string $source * @return resource a read only stream with the contents of the remote file diff --git a/apps/files_external/3rdparty/icewind/smb/src/KerberosApacheAuth.php b/apps/files_external/3rdparty/icewind/smb/src/KerberosApacheAuth.php new file mode 100644 index 00000000000..c49918be114 --- /dev/null +++ b/apps/files_external/3rdparty/icewind/smb/src/KerberosApacheAuth.php @@ -0,0 +1,136 @@ +<?php +/** + * @copyright Copyright (c) 2018 Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Icewind\SMB; + +use Icewind\SMB\Exception\DependencyException; +use Icewind\SMB\Exception\Exception; + +/** + * Use existing kerberos ticket to authenticate and reuse the apache ticket cache (mod_auth_kerb) + */ +class KerberosApacheAuth extends KerberosAuth implements IAuth { + /** @var string */ + private $ticketPath = ""; + + /** @var bool */ + private $init = false; + + /** @var string|false */ + private $ticketName; + + public function __construct() { + $this->ticketName = getenv("KRB5CCNAME"); + } + + + /** + * Copy the ticket to a temporary location and use that ticket for authentication + * + * @return void + */ + public function copyTicket(): void { + if (!$this->checkTicket()) { + return; + } + $krb5 = new \KRB5CCache(); + $krb5->open($this->ticketName); + $tmpFilename = tempnam("/tmp", "krb5cc_php_"); + $tmpCacheFile = "FILE:" . $tmpFilename; + $krb5->save($tmpCacheFile); + $this->ticketPath = $tmpFilename; + $this->ticketName = $tmpCacheFile; + } + + /** + * Pass the ticket to smbclient by memory instead of path + * + * @return void + */ + public function passTicketFromMemory(): void { + if (!$this->checkTicket()) { + return; + } + $krb5 = new \KRB5CCache(); + $krb5->open($this->ticketName); + $this->ticketName = (string)$krb5->getName(); + } + + /** + * Check if a valid kerberos ticket is present + * + * @return bool + * @psalm-assert-if-true string $this->ticketName + */ + public function checkTicket(): bool { + //read apache kerberos ticket cache + if (!$this->ticketName) { + return false; + } + + $krb5 = new \KRB5CCache(); + $krb5->open($this->ticketName); + /** @psalm-suppress MixedArgument */ + return count($krb5->getEntries()) > 0; + } + + private function init(): void { + if ($this->init) { + return; + } + $this->init = true; + // inspired by https://git.typo3.org/TYPO3CMS/Extensions/fal_cifs.git + + if (!extension_loaded("krb5")) { + // https://pecl.php.net/package/krb5 + throw new DependencyException('Ensure php-krb5 is installed.'); + } + + //read apache kerberos ticket cache + if (!$this->checkTicket()) { + throw new Exception('No kerberos ticket cache environment variable (KRB5CCNAME) found.'); + } + + // note that even if the ticketname is the value we got from `getenv("KRB5CCNAME")` we still need to set the env variable ourselves + // this is because `getenv` also reads the variables passed from the SAPI (apache-php) and we need to set the variable in the OS's env + putenv("KRB5CCNAME=" . $this->ticketName); + } + + public function getExtraCommandLineArguments(): string { + $this->init(); + return parent::getExtraCommandLineArguments(); + } + + public function setExtraSmbClientOptions($smbClientState): void { + $this->init(); + try { + parent::setExtraSmbClientOptions($smbClientState); + } catch (Exception $e) { + // suppress + } + } + + public function __destruct() { + if (!empty($this->ticketPath) && file_exists($this->ticketPath) && is_file($this->ticketPath)) { + unlink($this->ticketPath); + } + } +} diff --git a/apps/files_external/3rdparty/icewind/smb/src/Native/NativeFileInfo.php b/apps/files_external/3rdparty/icewind/smb/src/Native/NativeFileInfo.php index 539bb728426..85fb0274ac1 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/Native/NativeFileInfo.php +++ b/apps/files_external/3rdparty/icewind/smb/src/Native/NativeFileInfo.php @@ -99,7 +99,7 @@ class NativeFileInfo implements IFileInfo { public function isDirectory(): bool { $mode = $this->getMode(); if ($mode > 0x1000) { - return (bool)($mode & 0x4000); // 0x4000: unix directory flag + return ($mode & 0x4000 && !($mode & 0x8000)); // 0x4000: unix directory flag shares bits with 0xC000: socket } else { return (bool)($mode & IFileInfo::MODE_DIRECTORY); } diff --git a/apps/files_external/3rdparty/icewind/smb/src/Native/NativeShare.php b/apps/files_external/3rdparty/icewind/smb/src/Native/NativeShare.php index 03ec501b830..8c4eab2a60f 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/Native/NativeShare.php +++ b/apps/files_external/3rdparty/icewind/smb/src/Native/NativeShare.php @@ -267,14 +267,14 @@ class NativeShare extends AbstractShare { * Open a writeable stream to a remote file * Note: This method will truncate the file to 0bytes first * - * @param string $source + * @param string $target * @return resource a writeable stream * * @throws NotFoundException * @throws InvalidTypeException */ - public function write(string $source) { - $url = $this->buildUrl($source); + public function write(string $target) { + $url = $this->buildUrl($target); $handle = $this->getState()->create($url); return NativeWriteStream::wrap($this->getState(), $handle, 'w', $url); } @@ -282,14 +282,14 @@ class NativeShare extends AbstractShare { /** * Open a writeable stream and set the cursor to the end of the stream * - * @param string $source + * @param string $target * @return resource a writeable stream * * @throws NotFoundException * @throws InvalidTypeException */ - public function append(string $source) { - $url = $this->buildUrl($source); + public function append(string $target) { + $url = $this->buildUrl($target); $handle = $this->getState()->open($url, "a+"); return NativeWriteStream::wrap($this->getState(), $handle, "a", $url); } diff --git a/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php b/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php index e1a13ce3e72..088e6f733d1 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php +++ b/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php @@ -38,6 +38,14 @@ class NativeState { /** @var bool */ protected $connected = false; + /** + * sync the garbage collection cycle + * __deconstruct() of KerberosAuth should not called too soon + * + * @var IAuth|null $auth + */ + protected $auth = null; + // see error.h const EXCEPTION_MAP = [ 1 => ForbiddenException::class, @@ -107,6 +115,11 @@ class NativeState { } $auth->setExtraSmbClientOptions($this->state); + + // sync the garbage collection cycle + // __deconstruct() of KerberosAuth should not caled too soon + $this->auth = $auth; + /** @var bool $result */ $result = @smbclient_state_init($this->state, $auth->getWorkgroup(), $auth->getUsername(), $auth->getPassword()); diff --git a/apps/files_external/3rdparty/icewind/smb/src/System.php b/apps/files_external/3rdparty/icewind/smb/src/System.php index 919907477ab..d3475e7a5cb 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/System.php +++ b/apps/files_external/3rdparty/icewind/smb/src/System.php @@ -62,7 +62,7 @@ class System implements ISystem { $result = null; $output = []; exec("which $binary 2>&1", $output, $result); - $this->paths[$binary] = $result === 0 ? trim(implode('', $output)) : null; + $this->paths[$binary] = $result === 0 && isset($output[0]) ? (string)$output[0] : null; } return $this->paths[$binary]; } diff --git a/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Connection.php b/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Connection.php index 31b72b05d97..cc73ac1ad14 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Connection.php +++ b/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Connection.php @@ -47,7 +47,7 @@ class Connection extends RawConnection { public function clearTillPrompt(): void { $this->write(''); do { - $promptLine = $this->readLine(); + $promptLine = $this->readTillPrompt(); if ($promptLine === false) { break; } @@ -56,13 +56,12 @@ class Connection extends RawConnection { if ($this->write('') === false) { throw new ConnectionRefusedException(); } - $this->readLine(); + $this->readTillPrompt(); } /** * get all unprocessed output from smbclient until the next prompt * - * @param (callable(string):bool)|null $callback (optional) callback to call for every line read * @return string[] * @throws AuthenticationException * @throws ConnectException @@ -71,42 +70,22 @@ class Connection extends RawConnection { * @throws NoLoginServerException * @throws AccessDeniedException */ - public function read(callable $callback = null): array { + public function read(): array { if (!$this->isValid()) { throw new ConnectionException('Connection not valid'); } - $promptLine = $this->readLine(); //first line is prompt - if ($promptLine === false) { - $this->unknownError($promptLine); - } - $this->parser->checkConnectionError($promptLine); - - $output = []; - if (!$this->isPrompt($promptLine)) { - $line = $promptLine; - } else { - $line = $this->readLine(); - } - if ($line === false) { - $this->unknownError($promptLine); - } - while ($line !== false && !$this->isPrompt($line)) { //next prompt functions as delimiter - if (is_callable($callback)) { - $result = $callback($line); - if ($result === false) { // allow the callback to close the connection for infinite running commands - $this->close(true); - break; - } - } else { - $output[] = $line; - } - $line = $this->readLine(); + $output = $this->readTillPrompt(); + if ($output === false) { + $this->unknownError(false); } + $output = explode("\n", $output); + // last line contains the prompt + array_pop($output); return $output; } private function isPrompt(string $line): bool { - return mb_substr($line, 0, self::DELIMITER_LENGTH) === self::DELIMITER; + return substr($line, 0, self::DELIMITER_LENGTH) === self::DELIMITER; } /** @@ -132,6 +111,6 @@ class Connection extends RawConnection { // ignore any errors while trying to send the close command, the process might already be dead @$this->write('close' . PHP_EOL); } - parent::close($terminate); + $this->close_process($terminate); } } diff --git a/apps/files_external/3rdparty/icewind/smb/src/Wrapped/NotifyHandler.php b/apps/files_external/3rdparty/icewind/smb/src/Wrapped/NotifyHandler.php index 18451f4daa6..ecb5bb1e3c1 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/Wrapped/NotifyHandler.php +++ b/apps/files_external/3rdparty/icewind/smb/src/Wrapped/NotifyHandler.php @@ -65,16 +65,20 @@ class NotifyHandler implements INotifyHandler { */ public function listen(callable $callback): void { if ($this->listening) { - $this->connection->read(function (string $line) use ($callback): bool { + while (true) { + $line = $this->connection->readLine(); + if ($line === false) { + break; + } $this->checkForError($line); $change = $this->parseChangeLine($line); if ($change) { $result = $callback($change); - return $result === false ? false : true; - } else { - return true; + if ($result === false) { + break; + } } - }); + }; } } diff --git a/apps/files_external/3rdparty/icewind/smb/src/Wrapped/RawConnection.php b/apps/files_external/3rdparty/icewind/smb/src/Wrapped/RawConnection.php index 26a17cc584b..4aec674c3da 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/Wrapped/RawConnection.php +++ b/apps/files_external/3rdparty/icewind/smb/src/Wrapped/RawConnection.php @@ -71,7 +71,8 @@ class RawConnection { setlocale(LC_ALL, Server::LOCALE); $env = array_merge($this->env, [ - 'CLI_FORCE_INTERACTIVE' => 'y', // Needed or the prompt isn't displayed!! + 'CLI_FORCE_INTERACTIVE' => 'y', // Make sure the prompt is displayed + 'CLI_NO_READLINE' => 1, // Not all distros build smbclient with readline, disable it to get consistent behaviour 'LC_ALL' => Server::LOCALE, 'LANG' => Server::LOCALE, 'COLUMNS' => 8192 // prevent smbclient from line-wrapping it's output @@ -91,7 +92,7 @@ class RawConnection { public function isValid(): bool { if (is_resource($this->process)) { $status = proc_get_status($this->process); - return (bool)$status['running']; + return $status['running']; } else { return false; } @@ -110,12 +111,29 @@ class RawConnection { } /** + * read output till the next prompt + * + * @return string|false + */ + public function readTillPrompt() { + $output = ""; + do { + $chunk = $this->readLine('\> '); + if ($chunk === false) { + return false; + } + $output .= $chunk; + } while (strlen($chunk) == 4096 && strpos($chunk, "smb:") === false); + return $output; + } + + /** * read a line of output * * @return string|false */ - public function readLine() { - return stream_get_line($this->getOutputStream(), 4086, "\n"); + public function readLine(string $end = "\n") { + return stream_get_line($this->getOutputStream(), 4096, $end); } /** @@ -202,6 +220,14 @@ class RawConnection { * @psalm-assert null $this->process */ public function close(bool $terminate = true): void { + $this->close_process($terminate); + } + + /** + * @param bool $terminate + * @psalm-assert null $this->process + */ + protected function close_process(bool $terminate = true): void { if (!is_resource($this->process)) { return; } diff --git a/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Share.php b/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Share.php index 68446d380e0..eb68d3800b3 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Share.php +++ b/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Share.php @@ -345,11 +345,17 @@ class Share extends AbstractShare { // since returned stream is closed by the caller we need to create a new instance // since we can't re-use the same file descriptor over multiple calls $connection = $this->getConnection(); + stream_set_blocking($connection->getOutputStream(), false); $connection->write('get ' . $source . ' ' . $this->system->getFD(5)); $connection->write('exit'); $fh = $connection->getFileOutputStream(); - stream_context_set_option($fh, 'file', 'connection', $connection); + $fh = CallbackWrapper::wrap($fh, function() use ($connection) { + $connection->write(''); + }); + if (!is_resource($fh)) { + throw new Exception("Failed to wrap file output"); + } return $fh; } @@ -374,7 +380,9 @@ class Share extends AbstractShare { // use a close callback to ensure the upload is finished before continuing // this also serves as a way to keep the connection in scope - $stream = CallbackWrapper::wrap($fh, null, null, function () use ($connection) { + $stream = CallbackWrapper::wrap($fh, function() use ($connection) { + $connection->write(''); + }, null, function () use ($connection) { $connection->close(false); // dont terminate, give the upload some time }); if (is_resource($stream)) { @@ -446,7 +454,7 @@ class Share extends AbstractShare { * @return string[] */ protected function execute(string $command): array { - $this->connect()->write($command . PHP_EOL); + $this->connect()->write($command); return $this->connect()->read(); } diff --git a/apps/files_external/lib/AppInfo/Application.php b/apps/files_external/lib/AppInfo/Application.php index 7f6d8863350..6f8018746b3 100644 --- a/apps/files_external/lib/AppInfo/Application.php +++ b/apps/files_external/lib/AppInfo/Application.php @@ -31,8 +31,6 @@ namespace OCA\Files_External\AppInfo; use OCA\Files_External\Config\ConfigAdapter; use OCA\Files_External\Config\UserPlaceholderHandler; -use OCA\Files_External\Listener\GroupDeletedListener; -use OCA\Files_External\Listener\UserDeletedListener; use OCA\Files_External\Lib\Auth\AmazonS3\AccessKey; use OCA\Files_External\Lib\Auth\Builtin; use OCA\Files_External\Lib\Auth\NullMechanism; @@ -49,6 +47,7 @@ use OCA\Files_External\Lib\Auth\Password\UserGlobalAuth; use OCA\Files_External\Lib\Auth\Password\UserProvided; use OCA\Files_External\Lib\Auth\PublicKey\RSA; use OCA\Files_External\Lib\Auth\PublicKey\RSAPrivateKey; +use OCA\Files_External\Lib\Auth\SMB\KerberosApacheAuth; use OCA\Files_External\Lib\Auth\SMB\KerberosAuth; use OCA\Files_External\Lib\Backend\AmazonS3; use OCA\Files_External\Lib\Backend\DAV; @@ -62,6 +61,8 @@ use OCA\Files_External\Lib\Backend\SMB_OC; use OCA\Files_External\Lib\Backend\Swift; use OCA\Files_External\Lib\Config\IAuthMechanismProvider; use OCA\Files_External\Lib\Config\IBackendProvider; +use OCA\Files_External\Listener\GroupDeletedListener; +use OCA\Files_External\Listener\UserDeletedListener; use OCA\Files_External\Service\BackendService; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; @@ -126,16 +127,16 @@ class Application extends App implements IBackendProvider, IAuthMechanismProvide $container = $this->getContainer(); $backends = [ - $container->query(Local::class), - $container->query(FTP::class), - $container->query(DAV::class), - $container->query(OwnCloud::class), - $container->query(SFTP::class), - $container->query(AmazonS3::class), - $container->query(Swift::class), - $container->query(SFTP_Key::class), - $container->query(SMB::class), - $container->query(SMB_OC::class), + $container->get(Local::class), + $container->get(FTP::class), + $container->get(DAV::class), + $container->get(OwnCloud::class), + $container->get(SFTP::class), + $container->get(AmazonS3::class), + $container->get(Swift::class), + $container->get(SFTP_Key::class), + $container->get(SMB::class), + $container->get(SMB_OC::class), ]; return $backends; @@ -149,37 +150,38 @@ class Application extends App implements IBackendProvider, IAuthMechanismProvide return [ // AuthMechanism::SCHEME_NULL mechanism - $container->query(NullMechanism::class), + $container->get(NullMechanism::class), // AuthMechanism::SCHEME_BUILTIN mechanism - $container->query(Builtin::class), + $container->get(Builtin::class), // AuthMechanism::SCHEME_PASSWORD mechanisms - $container->query(Password::class), - $container->query(SessionCredentials::class), - $container->query(LoginCredentials::class), - $container->query(UserProvided::class), - $container->query(GlobalAuth::class), - $container->query(UserGlobalAuth::class), + $container->get(Password::class), + $container->get(SessionCredentials::class), + $container->get(LoginCredentials::class), + $container->get(UserProvided::class), + $container->get(GlobalAuth::class), + $container->get(UserGlobalAuth::class), // AuthMechanism::SCHEME_OAUTH1 mechanisms - $container->query(OAuth1::class), + $container->get(OAuth1::class), // AuthMechanism::SCHEME_OAUTH2 mechanisms - $container->query(OAuth2::class), + $container->get(OAuth2::class), // AuthMechanism::SCHEME_PUBLICKEY mechanisms - $container->query(RSA::class), - $container->query(RSAPrivateKey::class), + $container->get(RSA::class), + $container->get(RSAPrivateKey::class), // AuthMechanism::SCHEME_OPENSTACK mechanisms - $container->query(OpenStackV2::class), - $container->query(OpenStackV3::class), - $container->query(Rackspace::class), + $container->get(OpenStackV2::class), + $container->get(OpenStackV3::class), + $container->get(Rackspace::class), // Specialized mechanisms - $container->query(AccessKey::class), - $container->query(KerberosAuth::class), + $container->get(AccessKey::class), + $container->get(KerberosAuth::class), + $container->get(KerberosApacheAuth::class), ]; } } diff --git a/apps/files_external/lib/Lib/Auth/SMB/KerberosApacheAuth.php b/apps/files_external/lib/Lib/Auth/SMB/KerberosApacheAuth.php new file mode 100644 index 00000000000..17492280275 --- /dev/null +++ b/apps/files_external/lib/Lib/Auth/SMB/KerberosApacheAuth.php @@ -0,0 +1,53 @@ +<?php + +/** + * @copyright Copyright (c) 2018 Robin Appelman <robin@icewind.nl> + * + * @author Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Files_External\Lib\Auth\SMB; + +use OCA\Files_External\Lib\Auth\AuthMechanism; +use OCA\Files_External\Lib\DefinitionParameter; +use OCP\Authentication\LoginCredentials\IStore; +use OCP\IL10N; + +class KerberosApacheAuth extends AuthMechanism { + /** @var IStore */ + private $credentialsStore; + + public function __construct(IL10N $l, IStore $credentialsStore) { + $realm = new DefinitionParameter('default_realm', 'Default realm'); + $realm + ->setType(DefinitionParameter::VALUE_TEXT) + ->setFlag(DefinitionParameter::FLAG_OPTIONAL) + ->setTooltip($l->t('Kerberos default realm, defaults to "WORKGROUP"')); + $this + ->setIdentifier('smb::kerberosapache') + ->setScheme(self::SCHEME_SMB) + ->setText($l->t('Kerberos ticket Apache mode')) + ->addParameter($realm); + $this->credentialsStore = $credentialsStore; + } + + public function getCredentialsStore(): IStore { + return $this->credentialsStore; + } +} diff --git a/apps/files_external/lib/Lib/Backend/SMB.php b/apps/files_external/lib/Lib/Backend/SMB.php index 867648824ac..57ee866f3c7 100644 --- a/apps/files_external/lib/Lib/Backend/SMB.php +++ b/apps/files_external/lib/Lib/Backend/SMB.php @@ -24,16 +24,19 @@ * along with this program. If not, see <http://www.gnu.org/licenses/> * */ + namespace OCA\Files_External\Lib\Backend; use Icewind\SMB\BasicAuth; +use Icewind\SMB\KerberosApacheAuth; use Icewind\SMB\KerberosAuth; use OCA\Files_External\Lib\Auth\AuthMechanism; use OCA\Files_External\Lib\Auth\Password\Password; +use OCA\Files_External\Lib\Auth\SMB\KerberosApacheAuth as KerberosApacheAuthMechanism; use OCA\Files_External\Lib\DefinitionParameter; +use OCA\Files_External\Lib\InsufficientDataForMeaningfulAnswerException; use OCA\Files_External\Lib\LegacyDependencyCheckPolyfill; use OCA\Files_External\Lib\StorageConfig; - use OCP\IL10N; use OCP\IUser; @@ -69,10 +72,6 @@ class SMB extends Backend { ->setLegacyAuthMechanism($legacyAuth); } - /** - * @param StorageConfig $storage - * @param IUser $user - */ public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) { $auth = $storage->getAuthMechanism(); if ($auth->getScheme() === AuthMechanism::SCHEME_PASSWORD) { @@ -90,6 +89,45 @@ class SMB extends Backend { case 'smb::kerberos': $smbAuth = new KerberosAuth(); break; + case 'smb::kerberosapache': + if (!$auth instanceof KerberosApacheAuthMechanism) { + throw new \InvalidArgumentException('invalid authentication backend'); + } + $credentialsStore = $auth->getCredentialsStore(); + $kerbAuth = new KerberosApacheAuth(); + // check if a kerberos ticket is available, else fallback to session credentials + if ($kerbAuth->checkTicket()) { + $smbAuth = $kerbAuth; + } else { + try { + $credentials = $credentialsStore->getLoginCredentials(); + $user = $credentials->getLoginName(); + $pass = $credentials->getPassword(); + preg_match('/(.*)@(.*)/', $user, $matches); + $realm = $storage->getBackendOption('default_realm'); + if (empty($realm)) { + $realm = 'WORKGROUP'; + } + $userPart = $matches[1]; + $domainPart = $matches[2]; + if (count($matches) === 0) { + $username = $user; + $workgroup = $realm; + } else { + $username = $userPart; + $workgroup = $domainPart; + } + $smbAuth = new BasicAuth( + $username, + $workgroup, + $pass + ); + } catch (\Exception $e) { + throw new InsufficientDataForMeaningfulAnswerException('No session credentials saved'); + } + } + + break; default: throw new \InvalidArgumentException('unknown authentication backend'); } diff --git a/apps/files_external/tests/setup-krb.sh b/apps/files_external/tests/setup-krb.sh new file mode 100755 index 00000000000..968ba80529e --- /dev/null +++ b/apps/files_external/tests/setup-krb.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +function getContainerHealth { + docker inspect --format "{{.State.Health.Status}}" $1 +} + +function waitContainer { + while STATUS=$(getContainerHealth $1); [ $STATUS != "healthy" ]; do + if [ $STATUS == "unhealthy" ]; then + echo "Failed!" + exit -1 + fi + printf . + lf=$'\n' + sleep 1 + done + printf "$lf" +} + +mkdir /tmp/shared + +# start the dc +docker run -dit --name dc -v /tmp/shared:/shared --hostname krb.domain.test --cap-add SYS_ADMIN icewind1991/samba-krb-test-dc +DC_IP=$(docker inspect dc --format '{{.NetworkSettings.IPAddress}}') + +waitContainer dc + +# start apache +docker run -d --name apache -v $PWD:/var/www/html -v /tmp/shared:/shared --dns $DC_IP --hostname httpd.domain.test icewind1991/samba-krb-test-apache +APACHE_IP=$(docker inspect apache --format '{{.NetworkSettings.IPAddress}}') + +# add the dns record for apache +docker exec dc samba-tool dns add krb.domain.test domain.test httpd A $APACHE_IP -U administrator --password=passwOrd1 diff --git a/apps/settings/l10n/bg.js b/apps/settings/l10n/bg.js index 14c5f685d0d..9ff010c84e2 100644 --- a/apps/settings/l10n/bg.js +++ b/apps/settings/l10n/bg.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Преименувай", "Revoke" : "Отнемане", "Wipe device" : "Изтрий устройството", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Отмяната на този маркер може да попречи на изтриването на вашето устройство, ако то все още не е започнало изтриването.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Доверен", "Public" : "Публичен", "installing and updating apps via the app store or Federated Cloud Sharing" : "инсталиране и актуализиране на приложения чрез магазина за приложения или Federated Cloud Sharing/Федерирано споделяне в облак/", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Отмяната на този маркер може да попречи на изтриването на вашето устройство, ако то все още не е започнало изтриването.", "Nextcloud iOS app" : "Nextcloud iOS приложение", "Nextcloud Android app" : "Приложение Nextcloud за Android", "Nextcloud Talk for iOS" : "Nextcloud Talk за iOS", diff --git a/apps/settings/l10n/bg.json b/apps/settings/l10n/bg.json index df4953c9287..8038144b2f3 100644 --- a/apps/settings/l10n/bg.json +++ b/apps/settings/l10n/bg.json @@ -181,7 +181,6 @@ "Rename" : "Преименувай", "Revoke" : "Отнемане", "Wipe device" : "Изтрий устройството", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Отмяната на този маркер може да попречи на изтриването на вашето устройство, ако то все още не е започнало изтриването.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Доверен", "Public" : "Публичен", "installing and updating apps via the app store or Federated Cloud Sharing" : "инсталиране и актуализиране на приложения чрез магазина за приложения или Federated Cloud Sharing/Федерирано споделяне в облак/", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Отмяната на този маркер може да попречи на изтриването на вашето устройство, ако то все още не е започнало изтриването.", "Nextcloud iOS app" : "Nextcloud iOS приложение", "Nextcloud Android app" : "Приложение Nextcloud за Android", "Nextcloud Talk for iOS" : "Nextcloud Talk за iOS", diff --git a/apps/settings/l10n/br.js b/apps/settings/l10n/br.js index 8de2bbc956f..eb06b6fd33f 100644 --- a/apps/settings/l10n/br.js +++ b/apps/settings/l10n/br.js @@ -164,7 +164,6 @@ OC.L10N.register( "Rename" : "Adenvel", "Revoke" : "Digargañ", "Wipe device" : "Lemel an dra", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Digargañ ar jedouer a c'hell ampech an dilemel eus an dra ma n'eo ket bet kroget c'hoaz.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -391,6 +390,7 @@ OC.L10N.register( "Trusted" : "Fiziet", "Public" : "Publik", "installing and updating apps via the app store or Federated Cloud Sharing" : "stalia ha nevesaat meziantoù dre ar stal meziantoù pe Federation Cloud Sharing", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Digargañ ar jedouer a c'hell ampech an dilemel eus an dra ma n'eo ket bet kroget c'hoaz.", "Nextcloud iOS app" : "Mziant Nextcloud iOS", "Nextcloud Android app" : "Meziant Nextcloud Android", "Nextcloud Talk for iOS" : "Nextcloud Talk evit iOS", diff --git a/apps/settings/l10n/br.json b/apps/settings/l10n/br.json index f6027715dd6..2130546b636 100644 --- a/apps/settings/l10n/br.json +++ b/apps/settings/l10n/br.json @@ -162,7 +162,6 @@ "Rename" : "Adenvel", "Revoke" : "Digargañ", "Wipe device" : "Lemel an dra", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Digargañ ar jedouer a c'hell ampech an dilemel eus an dra ma n'eo ket bet kroget c'hoaz.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -389,6 +388,7 @@ "Trusted" : "Fiziet", "Public" : "Publik", "installing and updating apps via the app store or Federated Cloud Sharing" : "stalia ha nevesaat meziantoù dre ar stal meziantoù pe Federation Cloud Sharing", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Digargañ ar jedouer a c'hell ampech an dilemel eus an dra ma n'eo ket bet kroget c'hoaz.", "Nextcloud iOS app" : "Mziant Nextcloud iOS", "Nextcloud Android app" : "Meziant Nextcloud Android", "Nextcloud Talk for iOS" : "Nextcloud Talk evit iOS", diff --git a/apps/settings/l10n/ca.js b/apps/settings/l10n/ca.js index 62cb6b4d1c1..7b3d2cbff7a 100644 --- a/apps/settings/l10n/ca.js +++ b/apps/settings/l10n/ca.js @@ -166,7 +166,6 @@ OC.L10N.register( "Rename" : "Canvia el nom", "Revoke" : "Revoca", "Wipe device" : "Neteja dispositiu", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Revocant aquest token impedirà la neteja del vostre dispositiu si encara no ha començat.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -398,6 +397,7 @@ OC.L10N.register( "Trusted" : "De confiança", "Public" : "Públic", "installing and updating apps via the app store or Federated Cloud Sharing" : "s’està instal·lant i actualitzant aplicacions mitjançant la botiga d'aplicacions o la compartició de núvols federats", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Revocant aquest token impedirà la neteja del vostre dispositiu si encara no ha començat.", "Nextcloud iOS app" : "Aplicació de Nextcloud per a iOS", "Nextcloud Android app" : "Aplicació de Nextcloud per a Android", "Nextcloud Talk for iOS" : "Nextcloud Talk per a iOS", diff --git a/apps/settings/l10n/ca.json b/apps/settings/l10n/ca.json index 623564e4b7d..32e407aa0b8 100644 --- a/apps/settings/l10n/ca.json +++ b/apps/settings/l10n/ca.json @@ -164,7 +164,6 @@ "Rename" : "Canvia el nom", "Revoke" : "Revoca", "Wipe device" : "Neteja dispositiu", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Revocant aquest token impedirà la neteja del vostre dispositiu si encara no ha començat.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -396,6 +395,7 @@ "Trusted" : "De confiança", "Public" : "Públic", "installing and updating apps via the app store or Federated Cloud Sharing" : "s’està instal·lant i actualitzant aplicacions mitjançant la botiga d'aplicacions o la compartició de núvols federats", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Revocant aquest token impedirà la neteja del vostre dispositiu si encara no ha començat.", "Nextcloud iOS app" : "Aplicació de Nextcloud per a iOS", "Nextcloud Android app" : "Aplicació de Nextcloud per a Android", "Nextcloud Talk for iOS" : "Nextcloud Talk per a iOS", diff --git a/apps/settings/l10n/cs.js b/apps/settings/l10n/cs.js index 1c9de8b09f7..c8a034b07d3 100644 --- a/apps/settings/l10n/cs.js +++ b/apps/settings/l10n/cs.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Přejmenovat", "Revoke" : "Odvolat", "Wipe device" : "Vymazat obsah zařízení", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Odstranění tohoto tokenu může zabránit vymazání obsahu přístroje, pokud nebyl proces vymazání do teď zahájen.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Důvěryhodné", "Public" : "Veřejné", "installing and updating apps via the app store or Federated Cloud Sharing" : "Instalovat a aktualizovat aplikace prostřednictvím katalogu nebo federované cloudové sdílení", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Odstranění tohoto tokenu může zabránit vymazání obsahu přístroje, pokud nebyl proces vymazání do teď zahájen.", "Nextcloud iOS app" : "Aplikace Nextcloud pro iOS", "Nextcloud Android app" : "Aplikace Nextcloud pro Android", "Nextcloud Talk for iOS" : "Nextcloud Talk pro iOS", diff --git a/apps/settings/l10n/cs.json b/apps/settings/l10n/cs.json index a5f300af470..44e10920e9e 100644 --- a/apps/settings/l10n/cs.json +++ b/apps/settings/l10n/cs.json @@ -181,7 +181,6 @@ "Rename" : "Přejmenovat", "Revoke" : "Odvolat", "Wipe device" : "Vymazat obsah zařízení", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Odstranění tohoto tokenu může zabránit vymazání obsahu přístroje, pokud nebyl proces vymazání do teď zahájen.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Důvěryhodné", "Public" : "Veřejné", "installing and updating apps via the app store or Federated Cloud Sharing" : "Instalovat a aktualizovat aplikace prostřednictvím katalogu nebo federované cloudové sdílení", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Odstranění tohoto tokenu může zabránit vymazání obsahu přístroje, pokud nebyl proces vymazání do teď zahájen.", "Nextcloud iOS app" : "Aplikace Nextcloud pro iOS", "Nextcloud Android app" : "Aplikace Nextcloud pro Android", "Nextcloud Talk for iOS" : "Nextcloud Talk pro iOS", diff --git a/apps/settings/l10n/da.js b/apps/settings/l10n/da.js index 1c224da424d..65ec7ae134b 100644 --- a/apps/settings/l10n/da.js +++ b/apps/settings/l10n/da.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Omdøb", "Revoke" : "Tilbagekald", "Wipe device" : "Slet enhed", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Tilbagekaldelse af dette token kan muligvis forhindre sletning af din enhed, hvis den ikke har startet sletningen endnu.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Betroet", "Public" : "Offentlig", "installing and updating apps via the app store or Federated Cloud Sharing" : "installation og opdatering af apps via app-butikken eller sammensluttet Cloud deling", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Tilbagekaldelse af dette token kan muligvis forhindre sletning af din enhed, hvis den ikke har startet sletningen endnu.", "Nextcloud iOS app" : "Nextcloud iOS app", "Nextcloud Android app" : "Nextcloud Android app", "Nextcloud Talk for iOS" : "Nextcloud Talk til iOS", diff --git a/apps/settings/l10n/da.json b/apps/settings/l10n/da.json index d79391fe03a..37194f36ef9 100644 --- a/apps/settings/l10n/da.json +++ b/apps/settings/l10n/da.json @@ -181,7 +181,6 @@ "Rename" : "Omdøb", "Revoke" : "Tilbagekald", "Wipe device" : "Slet enhed", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Tilbagekaldelse af dette token kan muligvis forhindre sletning af din enhed, hvis den ikke har startet sletningen endnu.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Betroet", "Public" : "Offentlig", "installing and updating apps via the app store or Federated Cloud Sharing" : "installation og opdatering af apps via app-butikken eller sammensluttet Cloud deling", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Tilbagekaldelse af dette token kan muligvis forhindre sletning af din enhed, hvis den ikke har startet sletningen endnu.", "Nextcloud iOS app" : "Nextcloud iOS app", "Nextcloud Android app" : "Nextcloud Android app", "Nextcloud Talk for iOS" : "Nextcloud Talk til iOS", diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js index 676e10661cb..54f825d4e45 100644 --- a/apps/settings/l10n/de.js +++ b/apps/settings/l10n/de.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Umbenennen", "Revoke" : "Widerrufen", "Wipe device" : "Gerät löschen", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen von Deinem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ OC.L10N.register( "Trusted" : "Vertrauenswürdig", "Public" : "Öffentlich", "installing and updating apps via the app store or Federated Cloud Sharing" : "Das Installieren und Aktualisieren von Apps durch den App-Store oder durch Federated Cloud Sharing", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen von Deinem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.", "Nextcloud iOS app" : "Nextcloud iOS-App", "Nextcloud Android app" : "Nextcloud Android-App", "Nextcloud Talk for iOS" : "Nextcloud Talk für iOS", diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json index 09dda4f1fce..097bfcbce82 100644 --- a/apps/settings/l10n/de.json +++ b/apps/settings/l10n/de.json @@ -181,7 +181,6 @@ "Rename" : "Umbenennen", "Revoke" : "Widerrufen", "Wipe device" : "Gerät löschen", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen von Deinem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -486,6 +485,7 @@ "Trusted" : "Vertrauenswürdig", "Public" : "Öffentlich", "installing and updating apps via the app store or Federated Cloud Sharing" : "Das Installieren und Aktualisieren von Apps durch den App-Store oder durch Federated Cloud Sharing", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen von Deinem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.", "Nextcloud iOS app" : "Nextcloud iOS-App", "Nextcloud Android app" : "Nextcloud Android-App", "Nextcloud Talk for iOS" : "Nextcloud Talk für iOS", diff --git a/apps/settings/l10n/de_DE.js b/apps/settings/l10n/de_DE.js index 605c66840a9..9075c1ca229 100644 --- a/apps/settings/l10n/de_DE.js +++ b/apps/settings/l10n/de_DE.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Umbennen", "Revoke" : "Widerrufen", "Wipe device" : "Gerät löschen", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen von Ihrem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Vertrauenswürdig", "Public" : "Öffentlich", "installing and updating apps via the app store or Federated Cloud Sharing" : "Das Installieren und Aktualisieren von Apps durch den App-Store oder durch Federated Cloud Sharing", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen von Ihrem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.", "Nextcloud iOS app" : "Nextcloud iOS-App", "Nextcloud Android app" : "Nextcloud Android-App", "Nextcloud Talk for iOS" : "Nextcloud Talk für iOS", diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json index f0a3ef64bf7..b7e0165bdee 100644 --- a/apps/settings/l10n/de_DE.json +++ b/apps/settings/l10n/de_DE.json @@ -181,7 +181,6 @@ "Rename" : "Umbennen", "Revoke" : "Widerrufen", "Wipe device" : "Gerät löschen", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen von Ihrem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Vertrauenswürdig", "Public" : "Öffentlich", "installing and updating apps via the app store or Federated Cloud Sharing" : "Das Installieren und Aktualisieren von Apps durch den App-Store oder durch Federated Cloud Sharing", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen von Ihrem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.", "Nextcloud iOS app" : "Nextcloud iOS-App", "Nextcloud Android app" : "Nextcloud Android-App", "Nextcloud Talk for iOS" : "Nextcloud Talk für iOS", diff --git a/apps/settings/l10n/el.js b/apps/settings/l10n/el.js index 18e70783ddc..8ec0609474c 100644 --- a/apps/settings/l10n/el.js +++ b/apps/settings/l10n/el.js @@ -171,7 +171,6 @@ OC.L10N.register( "Rename" : "Μετονομασία", "Revoke" : "Ανάκληση", "Wipe device" : "Εκκαθάριση συσκευής", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Η κατάργηση αυτού του αναγνωριστικού ενδέχεται να αποτρέψει την εκκαθάριστη της συσκευής σας αν δεν έχει ξεκινήσει ακόμα.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -403,6 +402,7 @@ OC.L10N.register( "Trusted" : "Έμπιστος", "Public" : "Δημόσιο", "installing and updating apps via the app store or Federated Cloud Sharing" : "εγκατάσταση και ενημέρωση εφαρμογών μέσω του καταστήματος εφαρμογών ή του ", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Η κατάργηση αυτού του αναγνωριστικού ενδέχεται να αποτρέψει την εκκαθάριστη της συσκευής σας αν δεν έχει ξεκινήσει ακόμα.", "Nextcloud iOS app" : "Nextcloud iOS app", "Nextcloud Android app" : "Nextcloud Android app", "Nextcloud Talk for iOS" : "Nextcloud Talk για iOS", diff --git a/apps/settings/l10n/el.json b/apps/settings/l10n/el.json index c340426ff89..395e59dd17b 100644 --- a/apps/settings/l10n/el.json +++ b/apps/settings/l10n/el.json @@ -169,7 +169,6 @@ "Rename" : "Μετονομασία", "Revoke" : "Ανάκληση", "Wipe device" : "Εκκαθάριση συσκευής", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Η κατάργηση αυτού του αναγνωριστικού ενδέχεται να αποτρέψει την εκκαθάριστη της συσκευής σας αν δεν έχει ξεκινήσει ακόμα.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -401,6 +400,7 @@ "Trusted" : "Έμπιστος", "Public" : "Δημόσιο", "installing and updating apps via the app store or Federated Cloud Sharing" : "εγκατάσταση και ενημέρωση εφαρμογών μέσω του καταστήματος εφαρμογών ή του ", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Η κατάργηση αυτού του αναγνωριστικού ενδέχεται να αποτρέψει την εκκαθάριστη της συσκευής σας αν δεν έχει ξεκινήσει ακόμα.", "Nextcloud iOS app" : "Nextcloud iOS app", "Nextcloud Android app" : "Nextcloud Android app", "Nextcloud Talk for iOS" : "Nextcloud Talk για iOS", diff --git a/apps/settings/l10n/eo.js b/apps/settings/l10n/eo.js index 958373fc809..2328ac68a18 100644 --- a/apps/settings/l10n/eo.js +++ b/apps/settings/l10n/eo.js @@ -153,7 +153,6 @@ OC.L10N.register( "Rename" : "Alinomi", "Revoke" : "Senvalidigi", "Wipe device" : "Forviŝi aparaton", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Senvalido de tiu ĉi ĵetono eble malhelpos forviŝadon de via aparato, se ĝi ankoraŭ ne komencis forviŝadon.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -356,6 +355,7 @@ OC.L10N.register( "Use a second factor besides your password to increase security for your account." : "Uzu duan fazon krom via pasvorto por plisekurigi vian konton.", "Public" : "Publika", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalado kaj ĝisdatigo de aplikaĵoj per aplikaĵejo aŭ Federnuba Kunhavado", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Senvalido de tiu ĉi ĵetono eble malhelpos forviŝadon de via aparato, se ĝi ankoraŭ ne komencis forviŝadon.", "Nextcloud iOS app" : "iOS_aplikaĵo Nextcloud", "Nextcloud Android app" : "Android-aplikaĵo Nextcloud", "Nextcloud Talk for iOS" : "Nextcloud Talk por iOS", diff --git a/apps/settings/l10n/eo.json b/apps/settings/l10n/eo.json index 7e073034dbf..7ab8f80eadc 100644 --- a/apps/settings/l10n/eo.json +++ b/apps/settings/l10n/eo.json @@ -151,7 +151,6 @@ "Rename" : "Alinomi", "Revoke" : "Senvalidigi", "Wipe device" : "Forviŝi aparaton", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Senvalido de tiu ĉi ĵetono eble malhelpos forviŝadon de via aparato, se ĝi ankoraŭ ne komencis forviŝadon.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -354,6 +353,7 @@ "Use a second factor besides your password to increase security for your account." : "Uzu duan fazon krom via pasvorto por plisekurigi vian konton.", "Public" : "Publika", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalado kaj ĝisdatigo de aplikaĵoj per aplikaĵejo aŭ Federnuba Kunhavado", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Senvalido de tiu ĉi ĵetono eble malhelpos forviŝadon de via aparato, se ĝi ankoraŭ ne komencis forviŝadon.", "Nextcloud iOS app" : "iOS_aplikaĵo Nextcloud", "Nextcloud Android app" : "Android-aplikaĵo Nextcloud", "Nextcloud Talk for iOS" : "Nextcloud Talk por iOS", diff --git a/apps/settings/l10n/es.js b/apps/settings/l10n/es.js index 091a3a12d72..c4b5c529c3d 100644 --- a/apps/settings/l10n/es.js +++ b/apps/settings/l10n/es.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Renombrar", "Revoke" : "Anular", "Wipe device" : "Borrar dispositivo", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Anular este token puede evitar el borrado de tu dispositivo si aún no se ha iniciado el borrado.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "De confianza", "Public" : "Público", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando y actualizando aplicaciones a través de la tienda de aplicaciones o de la nube compartida federada", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Anular este token puede evitar el borrado de tu dispositivo si aún no se ha iniciado el borrado.", "Nextcloud iOS app" : "App Nextcloud para iOS", "Nextcloud Android app" : "App Nextcloud para Android", "Nextcloud Talk for iOS" : "Nextcloud Talk para iOS", diff --git a/apps/settings/l10n/es.json b/apps/settings/l10n/es.json index bb17a2e29ca..ec7a3c31ea5 100644 --- a/apps/settings/l10n/es.json +++ b/apps/settings/l10n/es.json @@ -181,7 +181,6 @@ "Rename" : "Renombrar", "Revoke" : "Anular", "Wipe device" : "Borrar dispositivo", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Anular este token puede evitar el borrado de tu dispositivo si aún no se ha iniciado el borrado.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "De confianza", "Public" : "Público", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando y actualizando aplicaciones a través de la tienda de aplicaciones o de la nube compartida federada", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Anular este token puede evitar el borrado de tu dispositivo si aún no se ha iniciado el borrado.", "Nextcloud iOS app" : "App Nextcloud para iOS", "Nextcloud Android app" : "App Nextcloud para Android", "Nextcloud Talk for iOS" : "Nextcloud Talk para iOS", diff --git a/apps/settings/l10n/eu.js b/apps/settings/l10n/eu.js index 7231ed17ff8..1885ec6f398 100644 --- a/apps/settings/l10n/eu.js +++ b/apps/settings/l10n/eu.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Berrizendatu", "Revoke" : "Ezeztatu", "Wipe device" : "Ezabatu gailua", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Token hau baliogabetzen baduzu zure gailua garbitzea ezinezkoa gerta daiteke garbiketa jada ez bada hasi.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -489,6 +488,7 @@ OC.L10N.register( "Trusted" : "Fidagarria", "Public" : "Publikoa", "installing and updating apps via the app store or Federated Cloud Sharing" : "Aplikazioak aplikazio-biltegiaren edo federatutako hodei partekatzearen bidez instalatzen edo eguneratzen", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Token hau baliogabetzen baduzu zure gailua garbitzea ezinezkoa gerta daiteke garbiketa jada ez bada hasi.", "Nextcloud iOS app" : "Nextcloud iOS aplikazioa", "Nextcloud Android app" : "Nextcloud Android aplikazioa", "Nextcloud Talk for iOS" : "Nextcloud Talk iOSentzat", diff --git a/apps/settings/l10n/eu.json b/apps/settings/l10n/eu.json index f9a32c6bcb9..a9eb8360f9f 100644 --- a/apps/settings/l10n/eu.json +++ b/apps/settings/l10n/eu.json @@ -181,7 +181,6 @@ "Rename" : "Berrizendatu", "Revoke" : "Ezeztatu", "Wipe device" : "Ezabatu gailua", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Token hau baliogabetzen baduzu zure gailua garbitzea ezinezkoa gerta daiteke garbiketa jada ez bada hasi.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -487,6 +486,7 @@ "Trusted" : "Fidagarria", "Public" : "Publikoa", "installing and updating apps via the app store or Federated Cloud Sharing" : "Aplikazioak aplikazio-biltegiaren edo federatutako hodei partekatzearen bidez instalatzen edo eguneratzen", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Token hau baliogabetzen baduzu zure gailua garbitzea ezinezkoa gerta daiteke garbiketa jada ez bada hasi.", "Nextcloud iOS app" : "Nextcloud iOS aplikazioa", "Nextcloud Android app" : "Nextcloud Android aplikazioa", "Nextcloud Talk for iOS" : "Nextcloud Talk iOSentzat", diff --git a/apps/settings/l10n/fa.js b/apps/settings/l10n/fa.js index c38997f0d92..c05545af6ff 100644 --- a/apps/settings/l10n/fa.js +++ b/apps/settings/l10n/fa.js @@ -155,7 +155,6 @@ OC.L10N.register( "Rename" : "تغییرنام", "Revoke" : "لغو", "Wipe device" : "وسیله را پاک کنید", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : " ابطال این نشانه ممکن است از هدر رفتن وسیله شما جلوگیری کند،اگر هنوز پاک نشده است.", "Internet Explorer" : "اینترنت اکسپلور", "Edge" : "مرورگر Edge", "Firefox" : "فایرفاکس", @@ -362,6 +361,7 @@ OC.L10N.register( "Use a second factor besides your password to increase security for your account." : "برای افزایش امنیت حساب کاربری خود ، از یک عامل دوم علاوه بر رمز عبور خود استفاده کنید.", "Public" : "عمومی", "installing and updating apps via the app store or Federated Cloud Sharing" : "نصب و به روزرسانی برنامه ها از طریق فروشگاه برنامه یا اشتراک گذاری ابر فدرال", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : " ابطال این نشانه ممکن است از هدر رفتن وسیله شما جلوگیری کند،اگر هنوز پاک نشده است.", "Nextcloud iOS app" : "برنامه iOS نکست کلود ", "Nextcloud Android app" : "نکست کلود برای اندروید", "Nextcloud Talk for iOS" : "نکست کلود تالک برای iOS", diff --git a/apps/settings/l10n/fa.json b/apps/settings/l10n/fa.json index aea8503d83e..ef70b92b5ab 100644 --- a/apps/settings/l10n/fa.json +++ b/apps/settings/l10n/fa.json @@ -153,7 +153,6 @@ "Rename" : "تغییرنام", "Revoke" : "لغو", "Wipe device" : "وسیله را پاک کنید", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : " ابطال این نشانه ممکن است از هدر رفتن وسیله شما جلوگیری کند،اگر هنوز پاک نشده است.", "Internet Explorer" : "اینترنت اکسپلور", "Edge" : "مرورگر Edge", "Firefox" : "فایرفاکس", @@ -360,6 +359,7 @@ "Use a second factor besides your password to increase security for your account." : "برای افزایش امنیت حساب کاربری خود ، از یک عامل دوم علاوه بر رمز عبور خود استفاده کنید.", "Public" : "عمومی", "installing and updating apps via the app store or Federated Cloud Sharing" : "نصب و به روزرسانی برنامه ها از طریق فروشگاه برنامه یا اشتراک گذاری ابر فدرال", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : " ابطال این نشانه ممکن است از هدر رفتن وسیله شما جلوگیری کند،اگر هنوز پاک نشده است.", "Nextcloud iOS app" : "برنامه iOS نکست کلود ", "Nextcloud Android app" : "نکست کلود برای اندروید", "Nextcloud Talk for iOS" : "نکست کلود تالک برای iOS", diff --git a/apps/settings/l10n/fr.js b/apps/settings/l10n/fr.js index c1bc5625369..6381fe1f47b 100644 --- a/apps/settings/l10n/fr.js +++ b/apps/settings/l10n/fr.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Renommer", "Revoke" : "Révoquer", "Wipe device" : "Effacer l'appareil", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Révoquer ce jeton peut empêcher l'effacement de votre appareil s'il n'a pas encore démarré l'effacement.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Approuvé", "Public" : "Publique", "installing and updating apps via the app store or Federated Cloud Sharing" : "le partage Federated Cloud ou l'installation et la mise à jour d'applications par l'app store", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Révoquer ce jeton peut empêcher l'effacement de votre appareil s'il n'a pas encore démarré l'effacement.", "Nextcloud iOS app" : "Application iOS Nextcloud", "Nextcloud Android app" : "Application Android Nextcloud", "Nextcloud Talk for iOS" : "Nextcloud Talk pour iOS", diff --git a/apps/settings/l10n/fr.json b/apps/settings/l10n/fr.json index 9910cce2df8..bb1a823b6b0 100644 --- a/apps/settings/l10n/fr.json +++ b/apps/settings/l10n/fr.json @@ -181,7 +181,6 @@ "Rename" : "Renommer", "Revoke" : "Révoquer", "Wipe device" : "Effacer l'appareil", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Révoquer ce jeton peut empêcher l'effacement de votre appareil s'il n'a pas encore démarré l'effacement.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Approuvé", "Public" : "Publique", "installing and updating apps via the app store or Federated Cloud Sharing" : "le partage Federated Cloud ou l'installation et la mise à jour d'applications par l'app store", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Révoquer ce jeton peut empêcher l'effacement de votre appareil s'il n'a pas encore démarré l'effacement.", "Nextcloud iOS app" : "Application iOS Nextcloud", "Nextcloud Android app" : "Application Android Nextcloud", "Nextcloud Talk for iOS" : "Nextcloud Talk pour iOS", diff --git a/apps/settings/l10n/gl.js b/apps/settings/l10n/gl.js index 5fbb2c2b7c4..7ac0ca27601 100644 --- a/apps/settings/l10n/gl.js +++ b/apps/settings/l10n/gl.js @@ -172,7 +172,6 @@ OC.L10N.register( "Rename" : "Renomear", "Revoke" : "Revogar", "Wipe device" : "Limpar o dispositivo", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "O revogado deste testemuño pode impedir a limpeza deste dispositivo se aínda non comezou.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -407,6 +406,7 @@ OC.L10N.register( "Trusted" : "De confianza", "Public" : "Público", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando e actualizando aplicacións mediante a tenda de aplicacións ou da nube federada compartida", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "O revogado deste testemuño pode impedir a limpeza deste dispositivo se aínda non comezou.", "Nextcloud iOS app" : "Apli Nextcloud para iOS", "Nextcloud Android app" : "Apli Nextcloud para Android", "Nextcloud Talk for iOS" : "Nextcloud Talk para iOS", diff --git a/apps/settings/l10n/gl.json b/apps/settings/l10n/gl.json index ae3c0fc291f..73e2442d42b 100644 --- a/apps/settings/l10n/gl.json +++ b/apps/settings/l10n/gl.json @@ -170,7 +170,6 @@ "Rename" : "Renomear", "Revoke" : "Revogar", "Wipe device" : "Limpar o dispositivo", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "O revogado deste testemuño pode impedir a limpeza deste dispositivo se aínda non comezou.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -405,6 +404,7 @@ "Trusted" : "De confianza", "Public" : "Público", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando e actualizando aplicacións mediante a tenda de aplicacións ou da nube federada compartida", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "O revogado deste testemuño pode impedir a limpeza deste dispositivo se aínda non comezou.", "Nextcloud iOS app" : "Apli Nextcloud para iOS", "Nextcloud Android app" : "Apli Nextcloud para Android", "Nextcloud Talk for iOS" : "Nextcloud Talk para iOS", diff --git a/apps/settings/l10n/he.js b/apps/settings/l10n/he.js index 16dba110480..551d7cfb88e 100644 --- a/apps/settings/l10n/he.js +++ b/apps/settings/l10n/he.js @@ -172,7 +172,6 @@ OC.L10N.register( "Rename" : "שינוי שם", "Revoke" : "שלילה", "Wipe device" : "השמדת נתוני מכשיר", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "שלילת האסימון הזו עשויה למנוע את השמדת נתוני המכשיר שלך אם ההשמדה טרם החלה.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -406,6 +405,7 @@ OC.L10N.register( "Trusted" : "מהימן", "Public" : "ציבורי", "installing and updating apps via the app store or Federated Cloud Sharing" : "התקנה ועדכון היישום דרך חנות היישומים או ענן שיתוף מאוגד", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "שלילת האסימון הזו עשויה למנוע את השמדת נתוני המכשיר שלך אם ההשמדה טרם החלה.", "Nextcloud iOS app" : "יישומון iOS של Nextcloud", "Nextcloud Android app" : "יישומון Android של Nextcloud", "Nextcloud Talk for iOS" : "Nextcloud Talk ל־iOS", diff --git a/apps/settings/l10n/he.json b/apps/settings/l10n/he.json index abeb63f9d0f..43ab013f2e1 100644 --- a/apps/settings/l10n/he.json +++ b/apps/settings/l10n/he.json @@ -170,7 +170,6 @@ "Rename" : "שינוי שם", "Revoke" : "שלילה", "Wipe device" : "השמדת נתוני מכשיר", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "שלילת האסימון הזו עשויה למנוע את השמדת נתוני המכשיר שלך אם ההשמדה טרם החלה.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -404,6 +403,7 @@ "Trusted" : "מהימן", "Public" : "ציבורי", "installing and updating apps via the app store or Federated Cloud Sharing" : "התקנה ועדכון היישום דרך חנות היישומים או ענן שיתוף מאוגד", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "שלילת האסימון הזו עשויה למנוע את השמדת נתוני המכשיר שלך אם ההשמדה טרם החלה.", "Nextcloud iOS app" : "יישומון iOS של Nextcloud", "Nextcloud Android app" : "יישומון Android של Nextcloud", "Nextcloud Talk for iOS" : "Nextcloud Talk ל־iOS", diff --git a/apps/settings/l10n/hr.js b/apps/settings/l10n/hr.js index 78f6e866c24..d1e5ed3d387 100644 --- a/apps/settings/l10n/hr.js +++ b/apps/settings/l10n/hr.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Preimenuj", "Revoke" : "Opozovi", "Wipe device" : "Izbriši sve s uređaja", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Opozivanje ovog tokena može spriječiti brisanje sadržaja s vašeg uređaja ako brisanje nije pokrenuto.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Pouzdan", "Public" : "Javna", "installing and updating apps via the app store or Federated Cloud Sharing" : "instaliranje i ažuriranje aplikacija putem trgovine aplikacijama ili dijeljenja putem udruženog oblaka", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Opozivanje ovog tokena može spriječiti brisanje sadržaja s vašeg uređaja ako brisanje nije pokrenuto.", "Nextcloud iOS app" : "Aplikacija Nextcloud za iOS", "Nextcloud Android app" : "Aplikacija Nextcloud za Android", "Nextcloud Talk for iOS" : "Nextcloud Talk za iOS", diff --git a/apps/settings/l10n/hr.json b/apps/settings/l10n/hr.json index a6f13e48569..6397ca5a53a 100644 --- a/apps/settings/l10n/hr.json +++ b/apps/settings/l10n/hr.json @@ -181,7 +181,6 @@ "Rename" : "Preimenuj", "Revoke" : "Opozovi", "Wipe device" : "Izbriši sve s uređaja", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Opozivanje ovog tokena može spriječiti brisanje sadržaja s vašeg uređaja ako brisanje nije pokrenuto.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Pouzdan", "Public" : "Javna", "installing and updating apps via the app store or Federated Cloud Sharing" : "instaliranje i ažuriranje aplikacija putem trgovine aplikacijama ili dijeljenja putem udruženog oblaka", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Opozivanje ovog tokena može spriječiti brisanje sadržaja s vašeg uređaja ako brisanje nije pokrenuto.", "Nextcloud iOS app" : "Aplikacija Nextcloud za iOS", "Nextcloud Android app" : "Aplikacija Nextcloud za Android", "Nextcloud Talk for iOS" : "Nextcloud Talk za iOS", diff --git a/apps/settings/l10n/hu.js b/apps/settings/l10n/hu.js index 913366d787d..0a0c5159b65 100644 --- a/apps/settings/l10n/hu.js +++ b/apps/settings/l10n/hu.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Átnevezés", "Revoke" : "Visszavonás", "Wipe device" : "Eszköz törlése", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "A token visszavonása lehet hogy meggátolja az eszköz törlését, ha az még nem kezdődött el.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Megbízható", "Public" : "Nyilvános", "installing and updating apps via the app store or Federated Cloud Sharing" : "alkalmazások telepítése és frissítése az alkalmazástár vagy a föderált felhőmegosztás segítségével", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "A token visszavonása lehet hogy meggátolja az eszköz törlését, ha az még nem kezdődött el.", "Nextcloud iOS app" : "Nextcloud iOS-es alkalmazás", "Nextcloud Android app" : "Nextcloud androidos alkalmazás", "Nextcloud Talk for iOS" : "Nextcloud Beszélgetés iOS-re", diff --git a/apps/settings/l10n/hu.json b/apps/settings/l10n/hu.json index c47fc992e26..36488c10ab0 100644 --- a/apps/settings/l10n/hu.json +++ b/apps/settings/l10n/hu.json @@ -181,7 +181,6 @@ "Rename" : "Átnevezés", "Revoke" : "Visszavonás", "Wipe device" : "Eszköz törlése", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "A token visszavonása lehet hogy meggátolja az eszköz törlését, ha az még nem kezdődött el.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Megbízható", "Public" : "Nyilvános", "installing and updating apps via the app store or Federated Cloud Sharing" : "alkalmazások telepítése és frissítése az alkalmazástár vagy a föderált felhőmegosztás segítségével", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "A token visszavonása lehet hogy meggátolja az eszköz törlését, ha az még nem kezdődött el.", "Nextcloud iOS app" : "Nextcloud iOS-es alkalmazás", "Nextcloud Android app" : "Nextcloud androidos alkalmazás", "Nextcloud Talk for iOS" : "Nextcloud Beszélgetés iOS-re", diff --git a/apps/settings/l10n/id.js b/apps/settings/l10n/id.js index e4dba2b724e..a3d3d2a3ef1 100644 --- a/apps/settings/l10n/id.js +++ b/apps/settings/l10n/id.js @@ -143,7 +143,6 @@ OC.L10N.register( "Rename" : "Ubah nama", "Revoke" : "Cabut ijin", "Wipe device" : "Hapus perangkat", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Mencabut token ini mungkin akan mencegah penghapusan perangkat Anda jika penghapusan belum dimulai.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -326,6 +325,7 @@ OC.L10N.register( "Change password" : "Ubah kata sandi", "Public" : "Publik", "installing and updating apps via the app store or Federated Cloud Sharing" : "memasang dan memperbarui aplikasi via toko aplikasi atau Federated Cloud Sharing", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Mencabut token ini mungkin akan mencegah penghapusan perangkat Anda jika penghapusan belum dimulai.", "Nextcloud iOS app" : "Aplikasi iOS Nextcloud", "Nextcloud Android app" : "Aplikasi Android Nextcloud", "Nextcloud Talk for iOS" : "Nextcloud Talk untuk iOS", diff --git a/apps/settings/l10n/id.json b/apps/settings/l10n/id.json index a7ccf98526b..fc9ed59812e 100644 --- a/apps/settings/l10n/id.json +++ b/apps/settings/l10n/id.json @@ -141,7 +141,6 @@ "Rename" : "Ubah nama", "Revoke" : "Cabut ijin", "Wipe device" : "Hapus perangkat", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Mencabut token ini mungkin akan mencegah penghapusan perangkat Anda jika penghapusan belum dimulai.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -324,6 +323,7 @@ "Change password" : "Ubah kata sandi", "Public" : "Publik", "installing and updating apps via the app store or Federated Cloud Sharing" : "memasang dan memperbarui aplikasi via toko aplikasi atau Federated Cloud Sharing", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Mencabut token ini mungkin akan mencegah penghapusan perangkat Anda jika penghapusan belum dimulai.", "Nextcloud iOS app" : "Aplikasi iOS Nextcloud", "Nextcloud Android app" : "Aplikasi Android Nextcloud", "Nextcloud Talk for iOS" : "Nextcloud Talk untuk iOS", diff --git a/apps/settings/l10n/it.js b/apps/settings/l10n/it.js index ca228cc842c..7b5634c0bad 100644 --- a/apps/settings/l10n/it.js +++ b/apps/settings/l10n/it.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Rinomina", "Revoke" : "Revoca", "Wipe device" : "Cancella dispositivo", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "La revoca di questo token potrebbe impedire la cancellazione del tuo dispositivo se non ha ancora iniziato ancora la cancellazione.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Affidabili", "Public" : "Pubblico", "installing and updating apps via the app store or Federated Cloud Sharing" : "installazione e aggiornamento delle applicazioni tramite il negozio delle applicazioni o condivisione cloud federata", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "La revoca di questo token potrebbe impedire la cancellazione del tuo dispositivo se non ha ancora iniziato ancora la cancellazione.", "Nextcloud iOS app" : "Applicazione di Nextcloud per iOS", "Nextcloud Android app" : "Applicazione di Nextcloud per Android", "Nextcloud Talk for iOS" : "Nextcloud Talk per iOS", diff --git a/apps/settings/l10n/it.json b/apps/settings/l10n/it.json index bdc91bfc863..e2bfa99141e 100644 --- a/apps/settings/l10n/it.json +++ b/apps/settings/l10n/it.json @@ -181,7 +181,6 @@ "Rename" : "Rinomina", "Revoke" : "Revoca", "Wipe device" : "Cancella dispositivo", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "La revoca di questo token potrebbe impedire la cancellazione del tuo dispositivo se non ha ancora iniziato ancora la cancellazione.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Affidabili", "Public" : "Pubblico", "installing and updating apps via the app store or Federated Cloud Sharing" : "installazione e aggiornamento delle applicazioni tramite il negozio delle applicazioni o condivisione cloud federata", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "La revoca di questo token potrebbe impedire la cancellazione del tuo dispositivo se non ha ancora iniziato ancora la cancellazione.", "Nextcloud iOS app" : "Applicazione di Nextcloud per iOS", "Nextcloud Android app" : "Applicazione di Nextcloud per Android", "Nextcloud Talk for iOS" : "Nextcloud Talk per iOS", diff --git a/apps/settings/l10n/ja.js b/apps/settings/l10n/ja.js index d1c592fe948..9a6a688d01c 100644 --- a/apps/settings/l10n/ja.js +++ b/apps/settings/l10n/ja.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "名前を変更", "Revoke" : "取り消す", "Wipe device" : "デバイスをワイプ", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "ワイプが開始されていない場合、このトークンを無効にすると端末のワイプが無効になる可能性があります。", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -480,6 +479,7 @@ OC.L10N.register( "Trusted" : "信頼できる", "Public" : "公開", "installing and updating apps via the app store or Federated Cloud Sharing" : "アプリストアまたはクラウド連携共有から、アプリをインストールならびにアップデート", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "ワイプが開始されていない場合、このトークンを無効にすると端末のワイプが無効になる可能性があります。", "Nextcloud iOS app" : "Nextcloud iOSアプリ", "Nextcloud Android app" : "Nextcloud Android アプリ", "Nextcloud Talk for iOS" : "iOS用Nextcloud Talk", diff --git a/apps/settings/l10n/ja.json b/apps/settings/l10n/ja.json index 9e77120abe6..e9014bd6b00 100644 --- a/apps/settings/l10n/ja.json +++ b/apps/settings/l10n/ja.json @@ -181,7 +181,6 @@ "Rename" : "名前を変更", "Revoke" : "取り消す", "Wipe device" : "デバイスをワイプ", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "ワイプが開始されていない場合、このトークンを無効にすると端末のワイプが無効になる可能性があります。", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -478,6 +477,7 @@ "Trusted" : "信頼できる", "Public" : "公開", "installing and updating apps via the app store or Federated Cloud Sharing" : "アプリストアまたはクラウド連携共有から、アプリをインストールならびにアップデート", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "ワイプが開始されていない場合、このトークンを無効にすると端末のワイプが無効になる可能性があります。", "Nextcloud iOS app" : "Nextcloud iOSアプリ", "Nextcloud Android app" : "Nextcloud Android アプリ", "Nextcloud Talk for iOS" : "iOS用Nextcloud Talk", diff --git a/apps/settings/l10n/lt_LT.js b/apps/settings/l10n/lt_LT.js index 6c9e83cdd20..407e33b60ac 100644 --- a/apps/settings/l10n/lt_LT.js +++ b/apps/settings/l10n/lt_LT.js @@ -163,7 +163,6 @@ OC.L10N.register( "Rename" : "Pervadinti", "Revoke" : "Panaikinti", "Wipe device" : "Ištrinti duomenis įrenginyje", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Panaikinus šį prieigos raktą, jums gali būti neleista ištrinti šio įrenginio duomenų, jeigu jis dar nepradėjo duomenų ištrynimo.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -415,6 +414,7 @@ OC.L10N.register( "Trusted" : "Patikima", "Public" : "Viešas", "installing and updating apps via the app store or Federated Cloud Sharing" : "Programėlių diegimas ir naujinimas per programėlių parduotuvę arba per „Federated Cloud Sharing“", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Panaikinus šį prieigos raktą, jums gali būti neleista ištrinti šio įrenginio duomenų, jeigu jis dar nepradėjo duomenų ištrynimo.", "Nextcloud iOS app" : "Nextcloud iOS programėlė", "Nextcloud Android app" : "Nextcloud Android programėlė", "Nextcloud Talk for iOS" : "Nextcloud pokalbiai iOS", diff --git a/apps/settings/l10n/lt_LT.json b/apps/settings/l10n/lt_LT.json index eaf23da3c25..433f4928a6d 100644 --- a/apps/settings/l10n/lt_LT.json +++ b/apps/settings/l10n/lt_LT.json @@ -161,7 +161,6 @@ "Rename" : "Pervadinti", "Revoke" : "Panaikinti", "Wipe device" : "Ištrinti duomenis įrenginyje", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Panaikinus šį prieigos raktą, jums gali būti neleista ištrinti šio įrenginio duomenų, jeigu jis dar nepradėjo duomenų ištrynimo.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -413,6 +412,7 @@ "Trusted" : "Patikima", "Public" : "Viešas", "installing and updating apps via the app store or Federated Cloud Sharing" : "Programėlių diegimas ir naujinimas per programėlių parduotuvę arba per „Federated Cloud Sharing“", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Panaikinus šį prieigos raktą, jums gali būti neleista ištrinti šio įrenginio duomenų, jeigu jis dar nepradėjo duomenų ištrynimo.", "Nextcloud iOS app" : "Nextcloud iOS programėlė", "Nextcloud Android app" : "Nextcloud Android programėlė", "Nextcloud Talk for iOS" : "Nextcloud pokalbiai iOS", diff --git a/apps/settings/l10n/mk.js b/apps/settings/l10n/mk.js index 8546577a3a5..fc8ce3fc8b5 100644 --- a/apps/settings/l10n/mk.js +++ b/apps/settings/l10n/mk.js @@ -182,7 +182,6 @@ OC.L10N.register( "Rename" : "Преименувај", "Revoke" : "Одземи", "Wipe device" : "Избриши уред", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Одземањето на овој токен може да спречи бришење на вашиот уред ако сè уште не е избришано.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -472,6 +471,7 @@ OC.L10N.register( "Trusted" : "Доверлив", "Public" : "Јавно", "installing and updating apps via the app store or Federated Cloud Sharing" : "инсталирање и ажурирање на апликации преку продавницата за апликации или Федерално споделување на облак", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Одземањето на овој токен може да спречи бришење на вашиот уред ако сè уште не е избришано.", "Nextcloud iOS app" : "iOS Апликација", "Nextcloud Android app" : "Android app", "Nextcloud Talk for iOS" : "Разговор за iOS", diff --git a/apps/settings/l10n/mk.json b/apps/settings/l10n/mk.json index 6fdf066c9ad..a02b0d05ee5 100644 --- a/apps/settings/l10n/mk.json +++ b/apps/settings/l10n/mk.json @@ -180,7 +180,6 @@ "Rename" : "Преименувај", "Revoke" : "Одземи", "Wipe device" : "Избриши уред", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Одземањето на овој токен може да спречи бришење на вашиот уред ако сè уште не е избришано.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -470,6 +469,7 @@ "Trusted" : "Доверлив", "Public" : "Јавно", "installing and updating apps via the app store or Federated Cloud Sharing" : "инсталирање и ажурирање на апликации преку продавницата за апликации или Федерално споделување на облак", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Одземањето на овој токен може да спречи бришење на вашиот уред ако сè уште не е избришано.", "Nextcloud iOS app" : "iOS Апликација", "Nextcloud Android app" : "Android app", "Nextcloud Talk for iOS" : "Разговор за iOS", diff --git a/apps/settings/l10n/nl.js b/apps/settings/l10n/nl.js index bb7812a4322..99b23259a21 100644 --- a/apps/settings/l10n/nl.js +++ b/apps/settings/l10n/nl.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Hernoemen", "Revoke" : "Intrekken", "Wipe device" : "Apparaat wissen", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Het verwijderen van deze token voorkomt mogelijk dat je apparaat gewist wordt, als dit proces nog niet gestart is.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Vertrouwd", "Public" : "Openbaar", "installing and updating apps via the app store or Federated Cloud Sharing" : "installeren en bijwerken van applicaties via de app store of gefedereerd delen", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Het verwijderen van deze token voorkomt mogelijk dat je apparaat gewist wordt, als dit proces nog niet gestart is.", "Nextcloud iOS app" : "Nextcloud iOS app", "Nextcloud Android app" : "Nextcloud Android app", "Nextcloud Talk for iOS" : "Nextcloud Talk voor iOS", diff --git a/apps/settings/l10n/nl.json b/apps/settings/l10n/nl.json index 4330a4e7f53..f5f99039e45 100644 --- a/apps/settings/l10n/nl.json +++ b/apps/settings/l10n/nl.json @@ -181,7 +181,6 @@ "Rename" : "Hernoemen", "Revoke" : "Intrekken", "Wipe device" : "Apparaat wissen", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Het verwijderen van deze token voorkomt mogelijk dat je apparaat gewist wordt, als dit proces nog niet gestart is.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Vertrouwd", "Public" : "Openbaar", "installing and updating apps via the app store or Federated Cloud Sharing" : "installeren en bijwerken van applicaties via de app store of gefedereerd delen", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Het verwijderen van deze token voorkomt mogelijk dat je apparaat gewist wordt, als dit proces nog niet gestart is.", "Nextcloud iOS app" : "Nextcloud iOS app", "Nextcloud Android app" : "Nextcloud Android app", "Nextcloud Talk for iOS" : "Nextcloud Talk voor iOS", diff --git a/apps/settings/l10n/pl.js b/apps/settings/l10n/pl.js index 4e6463b427b..caecf29bac5 100644 --- a/apps/settings/l10n/pl.js +++ b/apps/settings/l10n/pl.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Zmień nazwę", "Revoke" : "Cofnij", "Wipe device" : "Wyczyść urządzenie", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Unieważnienie tego tokena uniemożliwi czyszczenie urządzenia, jeśli jeszcze nie zostało rozpoczęte.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -219,7 +218,7 @@ OC.L10N.register( "Show QR code for mobile apps" : "Pokaż kod QR dla aplikacji mobilnych", "Copied!" : "Skopiowano!", "Copy" : "Kopiuj", - "Could not copy app password. Please copy it manually." : "Nie można skopiować hasła do aplikacji. Skopiuj go ręcznie.", + "Could not copy app password. Please copy it manually." : "Nie można skopiować hasła do aplikacji. Skopiuj je ręcznie.", "Your biography" : "Twoja biografia", "Unable to update biography" : "Nie można zaktualizować biografii", "Your full name" : "Twoja pełna nazwa", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Zaufany", "Public" : "Publiczny", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalowanie i aktualizowanie aplikacji za pośrednictwem sklepu z aplikacjami lub Udostępnionej Chmury Federacyjnej", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Unieważnienie tego tokena uniemożliwi czyszczenie urządzenia, jeśli jeszcze nie zostało rozpoczęte.", "Nextcloud iOS app" : "Aplikacja Nextcloud iOS", "Nextcloud Android app" : "Aplikacja Nextcloud Android", "Nextcloud Talk for iOS" : "Nextcloud Talk dla iOS", diff --git a/apps/settings/l10n/pl.json b/apps/settings/l10n/pl.json index fda4aaf5981..4a5b4e7c265 100644 --- a/apps/settings/l10n/pl.json +++ b/apps/settings/l10n/pl.json @@ -181,7 +181,6 @@ "Rename" : "Zmień nazwę", "Revoke" : "Cofnij", "Wipe device" : "Wyczyść urządzenie", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Unieważnienie tego tokena uniemożliwi czyszczenie urządzenia, jeśli jeszcze nie zostało rozpoczęte.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -217,7 +216,7 @@ "Show QR code for mobile apps" : "Pokaż kod QR dla aplikacji mobilnych", "Copied!" : "Skopiowano!", "Copy" : "Kopiuj", - "Could not copy app password. Please copy it manually." : "Nie można skopiować hasła do aplikacji. Skopiuj go ręcznie.", + "Could not copy app password. Please copy it manually." : "Nie można skopiować hasła do aplikacji. Skopiuj je ręcznie.", "Your biography" : "Twoja biografia", "Unable to update biography" : "Nie można zaktualizować biografii", "Your full name" : "Twoja pełna nazwa", @@ -488,6 +487,7 @@ "Trusted" : "Zaufany", "Public" : "Publiczny", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalowanie i aktualizowanie aplikacji za pośrednictwem sklepu z aplikacjami lub Udostępnionej Chmury Federacyjnej", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Unieważnienie tego tokena uniemożliwi czyszczenie urządzenia, jeśli jeszcze nie zostało rozpoczęte.", "Nextcloud iOS app" : "Aplikacja Nextcloud iOS", "Nextcloud Android app" : "Aplikacja Nextcloud Android", "Nextcloud Talk for iOS" : "Nextcloud Talk dla iOS", diff --git a/apps/settings/l10n/pt_BR.js b/apps/settings/l10n/pt_BR.js index 0059a16f7cb..18c1a3588a7 100644 --- a/apps/settings/l10n/pt_BR.js +++ b/apps/settings/l10n/pt_BR.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Renomear", "Revoke" : "Revogar", "Wipe device" : "Limpar o dispositivo", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "A revogação deste token pode impedir a limpeza do seu dispositivo, caso ainda não tenha sido iniciada.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Confiável", "Public" : "Público", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando e atualizando aplicativos via loja de aplicativos ou Nuvem Compartilhada Federada", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "A revogação deste token pode impedir a limpeza do seu dispositivo, caso ainda não tenha sido iniciada.", "Nextcloud iOS app" : "Aplicativo iOS Nextcloud", "Nextcloud Android app" : "Aplicativo Android Nextcloud", "Nextcloud Talk for iOS" : "Nextcloud Talk para iOS", diff --git a/apps/settings/l10n/pt_BR.json b/apps/settings/l10n/pt_BR.json index 3ab1a69dc29..6659d6b800c 100644 --- a/apps/settings/l10n/pt_BR.json +++ b/apps/settings/l10n/pt_BR.json @@ -181,7 +181,6 @@ "Rename" : "Renomear", "Revoke" : "Revogar", "Wipe device" : "Limpar o dispositivo", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "A revogação deste token pode impedir a limpeza do seu dispositivo, caso ainda não tenha sido iniciada.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Confiável", "Public" : "Público", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando e atualizando aplicativos via loja de aplicativos ou Nuvem Compartilhada Federada", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "A revogação deste token pode impedir a limpeza do seu dispositivo, caso ainda não tenha sido iniciada.", "Nextcloud iOS app" : "Aplicativo iOS Nextcloud", "Nextcloud Android app" : "Aplicativo Android Nextcloud", "Nextcloud Talk for iOS" : "Nextcloud Talk para iOS", diff --git a/apps/settings/l10n/ru.js b/apps/settings/l10n/ru.js index c5c2b13aaf8..1ec2c72fe13 100644 --- a/apps/settings/l10n/ru.js +++ b/apps/settings/l10n/ru.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Переименовать", "Revoke" : "Отозвать", "Wipe device" : "Удалить данные с устройства", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Если удаление данных с устройства не было инициировано, отзыв токена может сделать это невозможным.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -487,6 +486,7 @@ OC.L10N.register( "Trusted" : "Доверенный", "Public" : "Открытый", "installing and updating apps via the app store or Federated Cloud Sharing" : "установка и обновление приложений через магазин приложений или федерацию облачных хранилищ", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Если удаление данных с устройства не было инициировано, отзыв токена может сделать это невозможным.", "Nextcloud iOS app" : "Приложение Nextcloud для iOS", "Nextcloud Android app" : "Приложение Nextcloud для Android", "Nextcloud Talk for iOS" : "Nextcloud Talk для iOS", diff --git a/apps/settings/l10n/ru.json b/apps/settings/l10n/ru.json index aa2a52cb234..1272ee61072 100644 --- a/apps/settings/l10n/ru.json +++ b/apps/settings/l10n/ru.json @@ -181,7 +181,6 @@ "Rename" : "Переименовать", "Revoke" : "Отозвать", "Wipe device" : "Удалить данные с устройства", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Если удаление данных с устройства не было инициировано, отзыв токена может сделать это невозможным.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -485,6 +484,7 @@ "Trusted" : "Доверенный", "Public" : "Открытый", "installing and updating apps via the app store or Federated Cloud Sharing" : "установка и обновление приложений через магазин приложений или федерацию облачных хранилищ", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Если удаление данных с устройства не было инициировано, отзыв токена может сделать это невозможным.", "Nextcloud iOS app" : "Приложение Nextcloud для iOS", "Nextcloud Android app" : "Приложение Nextcloud для Android", "Nextcloud Talk for iOS" : "Nextcloud Talk для iOS", diff --git a/apps/settings/l10n/sc.js b/apps/settings/l10n/sc.js index 0423766cb0c..19b1680ad92 100644 --- a/apps/settings/l10n/sc.js +++ b/apps/settings/l10n/sc.js @@ -179,7 +179,6 @@ OC.L10N.register( "Rename" : "Torra a numenare", "Revoke" : "Rèvoca", "Wipe device" : "Cantzella dispositivu", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Sa rèvoca de custu token diat pòdere impedire sa cantzelladura de su dispositivu si no est cumintzada ancora.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -440,6 +439,7 @@ OC.L10N.register( "Trusted" : "Fidadu", "Public" : "Pùblicu", "installing and updating apps via the app store or Federated Cloud Sharing" : "installatzione e s'agiornamentu de is aplicatziones tràmite sa butega de is aplicatziones o sa cumpartzidura in sa nue federada", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Sa rèvoca de custu token diat pòdere impedire sa cantzelladura de su dispositivu si no est cumintzada ancora.", "Nextcloud iOS app" : "Aplicatzione Nextcloud pro iOS", "Nextcloud Android app" : "Aplicatzione Nextcloud pro Android", "Nextcloud Talk for iOS" : "Nextcloud Talk pro iOS", diff --git a/apps/settings/l10n/sc.json b/apps/settings/l10n/sc.json index cb7325886e9..dfe876e278f 100644 --- a/apps/settings/l10n/sc.json +++ b/apps/settings/l10n/sc.json @@ -177,7 +177,6 @@ "Rename" : "Torra a numenare", "Revoke" : "Rèvoca", "Wipe device" : "Cantzella dispositivu", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Sa rèvoca de custu token diat pòdere impedire sa cantzelladura de su dispositivu si no est cumintzada ancora.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -438,6 +437,7 @@ "Trusted" : "Fidadu", "Public" : "Pùblicu", "installing and updating apps via the app store or Federated Cloud Sharing" : "installatzione e s'agiornamentu de is aplicatziones tràmite sa butega de is aplicatziones o sa cumpartzidura in sa nue federada", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Sa rèvoca de custu token diat pòdere impedire sa cantzelladura de su dispositivu si no est cumintzada ancora.", "Nextcloud iOS app" : "Aplicatzione Nextcloud pro iOS", "Nextcloud Android app" : "Aplicatzione Nextcloud pro Android", "Nextcloud Talk for iOS" : "Nextcloud Talk pro iOS", diff --git a/apps/settings/l10n/sk.js b/apps/settings/l10n/sk.js index 4883cdda586..603099359c8 100644 --- a/apps/settings/l10n/sk.js +++ b/apps/settings/l10n/sk.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Premenovať", "Revoke" : "Odvolať", "Wipe device" : "Vymazať obsah zariadenia", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Ostránenie tohto tokenu môže zabrániť vymazaniu vášho zariadenia, ak sa ešte nezačalo mazanie.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Dôveryhodné", "Public" : "Verejné", "installing and updating apps via the app store or Federated Cloud Sharing" : "Inštalovať a aktualizovať aplikácia pomocou obchodu alebo Zdieľaného Cloudového Úložiska", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Ostránenie tohto tokenu môže zabrániť vymazaniu vášho zariadenia, ak sa ešte nezačalo mazanie.", "Nextcloud iOS app" : "Apka Nextcloud pre iOS", "Nextcloud Android app" : "Apka Nextcloud pre Android", "Nextcloud Talk for iOS" : "Nextcloud Talk pre iOS", diff --git a/apps/settings/l10n/sk.json b/apps/settings/l10n/sk.json index b622931a8cb..a3269a9f018 100644 --- a/apps/settings/l10n/sk.json +++ b/apps/settings/l10n/sk.json @@ -181,7 +181,6 @@ "Rename" : "Premenovať", "Revoke" : "Odvolať", "Wipe device" : "Vymazať obsah zariadenia", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Ostránenie tohto tokenu môže zabrániť vymazaniu vášho zariadenia, ak sa ešte nezačalo mazanie.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Dôveryhodné", "Public" : "Verejné", "installing and updating apps via the app store or Federated Cloud Sharing" : "Inštalovať a aktualizovať aplikácia pomocou obchodu alebo Zdieľaného Cloudového Úložiska", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Ostránenie tohto tokenu môže zabrániť vymazaniu vášho zariadenia, ak sa ešte nezačalo mazanie.", "Nextcloud iOS app" : "Apka Nextcloud pre iOS", "Nextcloud Android app" : "Apka Nextcloud pre Android", "Nextcloud Talk for iOS" : "Nextcloud Talk pre iOS", diff --git a/apps/settings/l10n/sl.js b/apps/settings/l10n/sl.js index 8f1d1d11be3..635cb2e0c1f 100644 --- a/apps/settings/l10n/sl.js +++ b/apps/settings/l10n/sl.js @@ -182,7 +182,6 @@ OC.L10N.register( "Rename" : "Preimenuj", "Revoke" : "Prekliči", "Wipe device" : "Varnostno izbriši napravo", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Obnovitev tega žetona lahko prepreči varnostno brisanje naprave, če se to še ni začelo.", "Internet Explorer" : "Internet Explorer", "Edge" : "Microsoft Edge", "Firefox" : "Mozilla Firefox", @@ -478,6 +477,7 @@ OC.L10N.register( "Trusted" : "Varni strežniki", "Public" : "Javno", "installing and updating apps via the app store or Federated Cloud Sharing" : "nameščanje in posodabljanje programov z uporabo programske zbirke ali zveznega oblaka", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Obnovitev tega žetona lahko prepreči varnostno brisanje naprave, če se to še ni začelo.", "Nextcloud iOS app" : "Program Nextcloud iOS", "Nextcloud Android app" : "Program Nextcloud Android", "Nextcloud Talk for iOS" : "Nextcloud Talk za iOS", diff --git a/apps/settings/l10n/sl.json b/apps/settings/l10n/sl.json index 26249414cb5..c5346fbdb1b 100644 --- a/apps/settings/l10n/sl.json +++ b/apps/settings/l10n/sl.json @@ -180,7 +180,6 @@ "Rename" : "Preimenuj", "Revoke" : "Prekliči", "Wipe device" : "Varnostno izbriši napravo", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Obnovitev tega žetona lahko prepreči varnostno brisanje naprave, če se to še ni začelo.", "Internet Explorer" : "Internet Explorer", "Edge" : "Microsoft Edge", "Firefox" : "Mozilla Firefox", @@ -476,6 +475,7 @@ "Trusted" : "Varni strežniki", "Public" : "Javno", "installing and updating apps via the app store or Federated Cloud Sharing" : "nameščanje in posodabljanje programov z uporabo programske zbirke ali zveznega oblaka", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Obnovitev tega žetona lahko prepreči varnostno brisanje naprave, če se to še ni začelo.", "Nextcloud iOS app" : "Program Nextcloud iOS", "Nextcloud Android app" : "Program Nextcloud Android", "Nextcloud Talk for iOS" : "Nextcloud Talk za iOS", diff --git a/apps/settings/l10n/sr.js b/apps/settings/l10n/sr.js index 8802b8dd0e3..74c9130d9af 100644 --- a/apps/settings/l10n/sr.js +++ b/apps/settings/l10n/sr.js @@ -164,7 +164,6 @@ OC.L10N.register( "Rename" : "Преименуј", "Revoke" : "Повуци", "Wipe device" : "Очисти уређај", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Повлачење овог токена може онемогућити удаљено брисање овог уређаја, ако оно још није започето.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -395,6 +394,7 @@ OC.L10N.register( "Trusted" : "Од поверења", "Public" : "Јавно", "installing and updating apps via the app store or Federated Cloud Sharing" : "Инсталирање и ажурирање апликација кроз продавницу или здруженом дељењу у облаку", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Повлачење овог токена може онемогућити удаљено брисање овог уређаја, ако оно још није започето.", "Nextcloud iOS app" : "Некстклауд iOS апликација", "Nextcloud Android app" : "Некстклауд Андроид апликација", "Nextcloud Talk for iOS" : "Nextcloud Talk за iOS", diff --git a/apps/settings/l10n/sr.json b/apps/settings/l10n/sr.json index 9ae08c70e5a..e3c04b4e54b 100644 --- a/apps/settings/l10n/sr.json +++ b/apps/settings/l10n/sr.json @@ -162,7 +162,6 @@ "Rename" : "Преименуј", "Revoke" : "Повуци", "Wipe device" : "Очисти уређај", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Повлачење овог токена може онемогућити удаљено брисање овог уређаја, ако оно још није започето.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -393,6 +392,7 @@ "Trusted" : "Од поверења", "Public" : "Јавно", "installing and updating apps via the app store or Federated Cloud Sharing" : "Инсталирање и ажурирање апликација кроз продавницу или здруженом дељењу у облаку", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Повлачење овог токена може онемогућити удаљено брисање овог уређаја, ако оно још није започето.", "Nextcloud iOS app" : "Некстклауд iOS апликација", "Nextcloud Android app" : "Некстклауд Андроид апликација", "Nextcloud Talk for iOS" : "Nextcloud Talk за iOS", diff --git a/apps/settings/l10n/sv.js b/apps/settings/l10n/sv.js index b6024ec8295..a462f499f12 100644 --- a/apps/settings/l10n/sv.js +++ b/apps/settings/l10n/sv.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Byt namn", "Revoke" : "Återkalla", "Wipe device" : "Rensa enhet", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Återkallning kan förhindra att enheten rensas om inte rensningen redan har startat.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -486,6 +485,7 @@ OC.L10N.register( "Trusted" : "Betrodd", "Public" : "Offentlig", "installing and updating apps via the app store or Federated Cloud Sharing" : "installerar och uppdaterar appar via appbutiken eller federerad molndelning", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Återkallning kan förhindra att enheten rensas om inte rensningen redan har startat.", "Nextcloud iOS app" : "Nextcloud iOS-app", "Nextcloud Android app" : "Nextcloud Android-app", "Nextcloud Talk for iOS" : "Nextcloud Talk för iOS", diff --git a/apps/settings/l10n/sv.json b/apps/settings/l10n/sv.json index bb980ce0398..5a26004012d 100644 --- a/apps/settings/l10n/sv.json +++ b/apps/settings/l10n/sv.json @@ -181,7 +181,6 @@ "Rename" : "Byt namn", "Revoke" : "Återkalla", "Wipe device" : "Rensa enhet", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Återkallning kan förhindra att enheten rensas om inte rensningen redan har startat.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -484,6 +483,7 @@ "Trusted" : "Betrodd", "Public" : "Offentlig", "installing and updating apps via the app store or Federated Cloud Sharing" : "installerar och uppdaterar appar via appbutiken eller federerad molndelning", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Återkallning kan förhindra att enheten rensas om inte rensningen redan har startat.", "Nextcloud iOS app" : "Nextcloud iOS-app", "Nextcloud Android app" : "Nextcloud Android-app", "Nextcloud Talk for iOS" : "Nextcloud Talk för iOS", diff --git a/apps/settings/l10n/th.js b/apps/settings/l10n/th.js index dfd73f449e2..89efb65fc7c 100644 --- a/apps/settings/l10n/th.js +++ b/apps/settings/l10n/th.js @@ -115,7 +115,6 @@ OC.L10N.register( "Rename" : "เปลี่ยนชื่อ", "Revoke" : "เพิกถอน", "Wipe device" : "ล้างอุปกรณ์", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "การเพิกถอนโทเค็นนี้อาจทำให้ไม่สามารถล้างอุปกรณ์ของคุณได้หากการล้างยังไม่เริ่ม", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -330,6 +329,7 @@ OC.L10N.register( "Trusted" : "เชื่อถือแล้ว", "Public" : "สาธารณะ", "installing and updating apps via the app store or Federated Cloud Sharing" : "กำลังติดตั้งและอัพเดทแอพพลิเคชันผ่าแอพสโตร์หรือคลาวด์ในเครือ", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "การเพิกถอนโทเค็นนี้อาจทำให้ไม่สามารถล้างอุปกรณ์ของคุณได้หากการล้างยังไม่เริ่ม", "Nextcloud iOS app" : "แอป Nextcloud สำหรับ iOS", "Nextcloud Android app" : "แอป Nextcloud สำหรับ Android", "Nextcloud Talk for iOS" : "Nextcloud Talk สำหรับ iOS", diff --git a/apps/settings/l10n/th.json b/apps/settings/l10n/th.json index 0993a57ea81..d87d811818f 100644 --- a/apps/settings/l10n/th.json +++ b/apps/settings/l10n/th.json @@ -113,7 +113,6 @@ "Rename" : "เปลี่ยนชื่อ", "Revoke" : "เพิกถอน", "Wipe device" : "ล้างอุปกรณ์", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "การเพิกถอนโทเค็นนี้อาจทำให้ไม่สามารถล้างอุปกรณ์ของคุณได้หากการล้างยังไม่เริ่ม", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -328,6 +327,7 @@ "Trusted" : "เชื่อถือแล้ว", "Public" : "สาธารณะ", "installing and updating apps via the app store or Federated Cloud Sharing" : "กำลังติดตั้งและอัพเดทแอพพลิเคชันผ่าแอพสโตร์หรือคลาวด์ในเครือ", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "การเพิกถอนโทเค็นนี้อาจทำให้ไม่สามารถล้างอุปกรณ์ของคุณได้หากการล้างยังไม่เริ่ม", "Nextcloud iOS app" : "แอป Nextcloud สำหรับ iOS", "Nextcloud Android app" : "แอป Nextcloud สำหรับ Android", "Nextcloud Talk for iOS" : "Nextcloud Talk สำหรับ iOS", diff --git a/apps/settings/l10n/tr.js b/apps/settings/l10n/tr.js index 3d909476def..9d75838a859 100644 --- a/apps/settings/l10n/tr.js +++ b/apps/settings/l10n/tr.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "Yeniden adlandır", "Revoke" : "Geri al", "Wipe device" : "Aygıtı sil", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Silme işlemi henüz başlamamış ise bu kodun geri çekilmesi aygıtınızın silinmesini engelleyebilir.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "Güvenilen", "Public" : "Herkese açık", "installing and updating apps via the app store or Federated Cloud Sharing" : "Uygulama mağazası ve Birleşik Bulut Paylaşımından uygulama kurma ve güncelleme", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Silme işlemi henüz başlamamış ise bu kodun geri çekilmesi aygıtınızın silinmesini engelleyebilir.", "Nextcloud iOS app" : "Nextcloud iOS uygulaması", "Nextcloud Android app" : "Nextcloud Android uygulaması", "Nextcloud Talk for iOS" : "iOS için Nextcloud Talk", diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json index 965197df8f0..7bd606ce7bf 100644 --- a/apps/settings/l10n/tr.json +++ b/apps/settings/l10n/tr.json @@ -181,7 +181,6 @@ "Rename" : "Yeniden adlandır", "Revoke" : "Geri al", "Wipe device" : "Aygıtı sil", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Silme işlemi henüz başlamamış ise bu kodun geri çekilmesi aygıtınızın silinmesini engelleyebilir.", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "Güvenilen", "Public" : "Herkese açık", "installing and updating apps via the app store or Federated Cloud Sharing" : "Uygulama mağazası ve Birleşik Bulut Paylaşımından uygulama kurma ve güncelleme", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Silme işlemi henüz başlamamış ise bu kodun geri çekilmesi aygıtınızın silinmesini engelleyebilir.", "Nextcloud iOS app" : "Nextcloud iOS uygulaması", "Nextcloud Android app" : "Nextcloud Android uygulaması", "Nextcloud Talk for iOS" : "iOS için Nextcloud Talk", diff --git a/apps/settings/l10n/vi.js b/apps/settings/l10n/vi.js index 4eb90530986..6a034f618cb 100644 --- a/apps/settings/l10n/vi.js +++ b/apps/settings/l10n/vi.js @@ -141,7 +141,6 @@ OC.L10N.register( "Rename" : "Đổi tên", "Revoke" : "Thu hồi", "Wipe device" : "Xóa thiết bị", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Việc thu hồi tín chỉ này có thể ngăn việc xóa thiết bị của bạn nếu thiết bị chưa bắt đầu xóa.", "This session" : "Phiên này", "Device" : "Thiết bị", "Last activity" : "Hoạt động cuối", @@ -252,6 +251,7 @@ OC.L10N.register( "Change password" : "Đổi mật khẩu", "Public" : "Công khai", "installing and updating apps via the app store or Federated Cloud Sharing" : "Đang cài đặt và cập nhật ứng dụng từ app store hoặc Federated Cloud Sharing", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Việc thu hồi tín chỉ này có thể ngăn việc xóa thiết bị của bạn nếu thiết bị chưa bắt đầu xóa.", "Add user in group" : "Thêm người dùng vào nhóm", "Close" : "Đóng", "All languages" : "Tất cả ngôn ngữ", diff --git a/apps/settings/l10n/vi.json b/apps/settings/l10n/vi.json index eafaf79f682..443e4ea2dd0 100644 --- a/apps/settings/l10n/vi.json +++ b/apps/settings/l10n/vi.json @@ -139,7 +139,6 @@ "Rename" : "Đổi tên", "Revoke" : "Thu hồi", "Wipe device" : "Xóa thiết bị", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Việc thu hồi tín chỉ này có thể ngăn việc xóa thiết bị của bạn nếu thiết bị chưa bắt đầu xóa.", "This session" : "Phiên này", "Device" : "Thiết bị", "Last activity" : "Hoạt động cuối", @@ -250,6 +249,7 @@ "Change password" : "Đổi mật khẩu", "Public" : "Công khai", "installing and updating apps via the app store or Federated Cloud Sharing" : "Đang cài đặt và cập nhật ứng dụng từ app store hoặc Federated Cloud Sharing", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "Việc thu hồi tín chỉ này có thể ngăn việc xóa thiết bị của bạn nếu thiết bị chưa bắt đầu xóa.", "Add user in group" : "Thêm người dùng vào nhóm", "Close" : "Đóng", "All languages" : "Tất cả ngôn ngữ", diff --git a/apps/settings/l10n/zh_CN.js b/apps/settings/l10n/zh_CN.js index 9fece971e3e..dddb0065d05 100644 --- a/apps/settings/l10n/zh_CN.js +++ b/apps/settings/l10n/zh_CN.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "重命名", "Revoke" : "撤销", "Wipe device" : "擦除设备", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果擦除操作还未开始,撤销此令牌可能会妨碍对您设备的擦除操作", "Internet Explorer" : "IE 浏览器", "Edge" : "Edge 浏览器", "Firefox" : "火狐浏览器", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "受信任", "Public" : "公开", "installing and updating apps via the app store or Federated Cloud Sharing" : "通过应用程序商店或联合云共享安装和更新应用程序", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果擦除操作还未开始,撤销此令牌可能会妨碍对您设备的擦除操作", "Nextcloud iOS app" : "Nextcloud iOS 应用", "Nextcloud Android app" : "Nextcloud Android 应用", "Nextcloud Talk for iOS" : "Nextcloud Talk for iOS", diff --git a/apps/settings/l10n/zh_CN.json b/apps/settings/l10n/zh_CN.json index 4e6ef22449c..0dfc0307d73 100644 --- a/apps/settings/l10n/zh_CN.json +++ b/apps/settings/l10n/zh_CN.json @@ -181,7 +181,6 @@ "Rename" : "重命名", "Revoke" : "撤销", "Wipe device" : "擦除设备", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果擦除操作还未开始,撤销此令牌可能会妨碍对您设备的擦除操作", "Internet Explorer" : "IE 浏览器", "Edge" : "Edge 浏览器", "Firefox" : "火狐浏览器", @@ -488,6 +487,7 @@ "Trusted" : "受信任", "Public" : "公开", "installing and updating apps via the app store or Federated Cloud Sharing" : "通过应用程序商店或联合云共享安装和更新应用程序", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果擦除操作还未开始,撤销此令牌可能会妨碍对您设备的擦除操作", "Nextcloud iOS app" : "Nextcloud iOS 应用", "Nextcloud Android app" : "Nextcloud Android 应用", "Nextcloud Talk for iOS" : "Nextcloud Talk for iOS", diff --git a/apps/settings/l10n/zh_HK.js b/apps/settings/l10n/zh_HK.js index ae9a0cd7f97..c8e79810fde 100644 --- a/apps/settings/l10n/zh_HK.js +++ b/apps/settings/l10n/zh_HK.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "重新命名", "Revoke" : "撤銷", "Wipe device" : "抹除裝置", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果還沒開始抹除,則撤銷此權杖可能會導致無法抹除您的裝置。", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "受信任", "Public" : "公開", "installing and updating apps via the app store or Federated Cloud Sharing" : "透過應用程式中心或是聯盟式雲端分享來安裝、更新應用程式", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果還沒開始抹除,則撤銷此權杖可能會導致無法抹除您的裝置。", "Nextcloud iOS app" : "Nextcloud iOS 應用程式", "Nextcloud Android app" : "Nextcloud Android 應用程式", "Nextcloud Talk for iOS" : "iOS 版 Nextcloud Talk", diff --git a/apps/settings/l10n/zh_HK.json b/apps/settings/l10n/zh_HK.json index bd041933154..8cb0d07ade1 100644 --- a/apps/settings/l10n/zh_HK.json +++ b/apps/settings/l10n/zh_HK.json @@ -181,7 +181,6 @@ "Rename" : "重新命名", "Revoke" : "撤銷", "Wipe device" : "抹除裝置", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果還沒開始抹除,則撤銷此權杖可能會導致無法抹除您的裝置。", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "受信任", "Public" : "公開", "installing and updating apps via the app store or Federated Cloud Sharing" : "透過應用程式中心或是聯盟式雲端分享來安裝、更新應用程式", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果還沒開始抹除,則撤銷此權杖可能會導致無法抹除您的裝置。", "Nextcloud iOS app" : "Nextcloud iOS 應用程式", "Nextcloud Android app" : "Nextcloud Android 應用程式", "Nextcloud Talk for iOS" : "iOS 版 Nextcloud Talk", diff --git a/apps/settings/l10n/zh_TW.js b/apps/settings/l10n/zh_TW.js index bf0383900d6..f8c2ecc4883 100644 --- a/apps/settings/l10n/zh_TW.js +++ b/apps/settings/l10n/zh_TW.js @@ -183,7 +183,6 @@ OC.L10N.register( "Rename" : "重新命名", "Revoke" : "撤銷", "Wipe device" : "抹除裝置", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果還沒開始抹除,則撤銷此權杖可能會導致無法抹除您的裝置。", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -490,6 +489,7 @@ OC.L10N.register( "Trusted" : "受信任", "Public" : "公開", "installing and updating apps via the app store or Federated Cloud Sharing" : "透過應用程式中心或是聯盟式雲端分享來安裝、更新應用程式", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果還沒開始抹除,則撤銷此權杖可能會導致無法抹除您的裝置。", "Nextcloud iOS app" : "Nextcloud iOS 應用程式", "Nextcloud Android app" : "Nextcloud Android 應用程式", "Nextcloud Talk for iOS" : "iOS 版 Nextcloud Talk", diff --git a/apps/settings/l10n/zh_TW.json b/apps/settings/l10n/zh_TW.json index 263721952c4..b66abddc721 100644 --- a/apps/settings/l10n/zh_TW.json +++ b/apps/settings/l10n/zh_TW.json @@ -181,7 +181,6 @@ "Rename" : "重新命名", "Revoke" : "撤銷", "Wipe device" : "抹除裝置", - "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果還沒開始抹除,則撤銷此權杖可能會導致無法抹除您的裝置。", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -488,6 +487,7 @@ "Trusted" : "受信任", "Public" : "公開", "installing and updating apps via the app store or Federated Cloud Sharing" : "透過應用程式中心或是聯盟式雲端分享來安裝、更新應用程式", + "Revoking this token might prevent the wiping of your device if it hasn't started the wipe yet." : "如果還沒開始抹除,則撤銷此權杖可能會導致無法抹除您的裝置。", "Nextcloud iOS app" : "Nextcloud iOS 應用程式", "Nextcloud Android app" : "Nextcloud Android 應用程式", "Nextcloud Talk for iOS" : "iOS 版 Nextcloud Talk", diff --git a/apps/settings/src/components/AuthToken.vue b/apps/settings/src/components/AuthToken.vue index ce9d59936b9..e599be9c671 100644 --- a/apps/settings/src/components/AuthToken.vue +++ b/apps/settings/src/components/AuthToken.vue @@ -76,7 +76,7 @@ icon="icon-delete" :title="t('settings', 'Revoke')" @click.stop.prevent="revoke"> - {{ t('settings', 'Revoking this token might prevent the wiping of your device if it hasn\'t started the wipe yet.') }} + {{ t('settings', 'Revoking this token might prevent the wiping of your device if it has not started the wipe yet.') }} </ActionButton> </template> </Actions> diff --git a/apps/settings/src/components/AuthTokenSection.vue b/apps/settings/src/components/AuthTokenSection.vue index 87895e48219..bb700a1b572 100644 --- a/apps/settings/src/components/AuthTokenSection.vue +++ b/apps/settings/src/components/AuthTokenSection.vue @@ -99,7 +99,7 @@ export default { .then(tap(data => this.tokens.push(data.deviceToken))) .catch(err => { console.error.bind('could not create app password', err) - OC.Notification.showTemporary(t('core', 'Error while creating device token')) + OC.Notification.showTemporary(t('settings', 'Error while creating device token')) throw err }) }, @@ -113,7 +113,7 @@ export default { .then(tap(() => console.debug('app token scope updated'))) .catch(err => { console.error.bind('could not update app token scope', err) - OC.Notification.showTemporary(t('core', 'Error while updating device token scope')) + OC.Notification.showTemporary(t('settings', 'Error while updating device token scope')) // Restore token.scope[scope] = oldVal @@ -131,7 +131,7 @@ export default { .then(tap(() => console.debug('app token name updated'))) .catch(err => { console.error.bind('could not update app token name', err) - OC.Notification.showTemporary(t('core', 'Error while updating device token name')) + OC.Notification.showTemporary(t('settings', 'Error while updating device token name')) // Restore token.name = oldName @@ -152,7 +152,7 @@ export default { .then(tap(() => console.debug('app token deleted'))) .catch(err => { console.error.bind('could not delete app token', err) - OC.Notification.showTemporary(t('core', 'Error while deleting the token')) + OC.Notification.showTemporary(t('settings', 'Error while deleting the token')) // Restore // eslint-disable-next-line vue/no-mutating-props @@ -175,7 +175,7 @@ export default { token.type = 2 } catch (err) { console.error('could not wipe app token', err) - OC.Notification.showTemporary(t('core', 'Error while wiping the device with the token')) + OC.Notification.showTemporary(t('settings', 'Error while wiping the device with the token')) } }, }, diff --git a/apps/settings/src/components/AuthTokenSetupDialogue.vue b/apps/settings/src/components/AuthTokenSetupDialogue.vue index a97326876d1..2ad2ae670dd 100644 --- a/apps/settings/src/components/AuthTokenSetupDialogue.vue +++ b/apps/settings/src/components/AuthTokenSetupDialogue.vue @@ -115,13 +115,13 @@ export default { if (this.passwordCopied) { return { ...base, - content: t('core', 'Copied!'), + content: t('settings', 'Copied!'), show: true, } } else { return { ...base, - content: t('core', 'Copy'), + content: t('settings', 'Copy'), show: this.hoveringCopyButton, } } @@ -151,7 +151,7 @@ export default { }) .catch(err => { console.error('could not create a new app password', err) - OC.Notification.showTemporary(t('core', 'Error while creating device token')) + OC.Notification.showTemporary(t('settings', 'Error while creating device token')) this.reset() }) @@ -162,7 +162,7 @@ export default { setTimeout(() => { this.passwordCopied = false }, 3000) }, onCopyPasswordFailed() { - OC.Notification.showTemporary(t('core', 'Could not copy app password. Please copy it manually.')) + OC.Notification.showTemporary(t('settings', 'Could not copy app password. Please copy it manually.')) }, reset() { this.adding = false diff --git a/apps/sharebymail/l10n/pt_BR.js b/apps/sharebymail/l10n/pt_BR.js index af8c11bd523..17d2b6e74c0 100644 --- a/apps/sharebymail/l10n/pt_BR.js +++ b/apps/sharebymail/l10n/pt_BR.js @@ -27,6 +27,7 @@ OC.L10N.register( "Share by mail" : "Compartilhamento por e-mail", "Sharing %1$s failed, because this item is already shared with user %2$s" : "Compartilhamento de %1$s falhou, porque este item já está compartilhado com o usuário%2$s", "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Não pudemos enviar a você a senha auto-gerada. Defina um e-mail válido em sua configuração e tente novamente.", + "Failed to send share by email. Got an invalid email address" : "Compartilhamento por email falhou. Endereço de email inválido", "Failed to send share by email" : "Falha ao enviar compartilhamento via e-mail", "%1$s shared »%2$s« with you" : "%1$s compartilhou »%2$s« com você", "%1$s shared »%2$s« with you." : "%1$s compartilhou »%2$s« com você.", diff --git a/apps/sharebymail/l10n/pt_BR.json b/apps/sharebymail/l10n/pt_BR.json index 0b227250790..9a3b11757c4 100644 --- a/apps/sharebymail/l10n/pt_BR.json +++ b/apps/sharebymail/l10n/pt_BR.json @@ -25,6 +25,7 @@ "Share by mail" : "Compartilhamento por e-mail", "Sharing %1$s failed, because this item is already shared with user %2$s" : "Compartilhamento de %1$s falhou, porque este item já está compartilhado com o usuário%2$s", "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Não pudemos enviar a você a senha auto-gerada. Defina um e-mail válido em sua configuração e tente novamente.", + "Failed to send share by email. Got an invalid email address" : "Compartilhamento por email falhou. Endereço de email inválido", "Failed to send share by email" : "Falha ao enviar compartilhamento via e-mail", "%1$s shared »%2$s« with you" : "%1$s compartilhou »%2$s« com você", "%1$s shared »%2$s« with you." : "%1$s compartilhou »%2$s« com você.", diff --git a/apps/updatenotification/l10n/ru.js b/apps/updatenotification/l10n/ru.js index 6ddbc8f0a04..f5f36a512ed 100644 --- a/apps/updatenotification/l10n/ru.js +++ b/apps/updatenotification/l10n/ru.js @@ -1,16 +1,16 @@ OC.L10N.register( "updatenotification", { - "{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о порядке обновления.", - "Channel updated" : "Канал обновлен.", - "Web updater is disabled" : "Обновление с использование web-интерфейса отключено", + "{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о способе обновления.", + "Channel updated" : "Канал обновлен", + "Web updater is disabled" : "Веб обновление отключено", "Update notifications" : "Уведомления об обновлениях", "The update server could not be reached since %d days to check for new updates." : "Сервер обновлений недоступен для проверки наличия обновлений дней: %d.", "Please check the Nextcloud and server log files for errors." : "Проверьте наличие ошибок в файлах журналов Nextcloud и сервера.", "Update to %1$s is available." : "Доступно обновление до версии %1$s.", "Update for %1$s to version %2$s is available." : "Для приложения %1$s доступно обновление до версии %2$s.", "Update for {app} to version %s is available." : "Для приложения {app} доступно обновление до версии %s.", - "Update notification" : "Уведомление о новой версии", + "Update notification" : "Уведомление об обновлении", "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Показывает уведомления об обновлениях для Nextcloud и обеспечивает систему обновления технологией единого входа (SSO).", "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Версия, которой вы пользуетесь, больше не обслуживается. Пожалуйста, обновитесь до поддерживаемой версии как можно скорее.", "Apps missing compatible version" : "Приложения без совместимой версии", @@ -34,6 +34,7 @@ OC.L10N.register( "Checked on {lastCheckedDate}" : "Проверено {lastCheckedDate}", "Checking apps for compatible versions" : "Проверка приложений на совместимость версий", "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Убедитесь, что значением параметра <samp>appstoreenabled</samp> в файле «config.php» не является «false».", + "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Не удалось подключиться к App Store или обновления не были получены. Выполните поиск обновлений вручную или убедитесь, что ваш сервер имеет доступ к Интернету и может подключиться к App Store.", "<strong>All</strong> apps have a compatible version for this Nextcloud version available" : "<strong>Все</strong> приложения имеют версию, совместимую с этой версией Nextcloud.", "View changelog" : "Просмотреть изменения", "Enterprise" : "Использование на предприятии (Enterprise)", diff --git a/apps/updatenotification/l10n/ru.json b/apps/updatenotification/l10n/ru.json index 8d3dc3134b5..e6c573faf56 100644 --- a/apps/updatenotification/l10n/ru.json +++ b/apps/updatenotification/l10n/ru.json @@ -1,14 +1,14 @@ { "translations": { - "{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о порядке обновления.", - "Channel updated" : "Канал обновлен.", - "Web updater is disabled" : "Обновление с использование web-интерфейса отключено", + "{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о способе обновления.", + "Channel updated" : "Канал обновлен", + "Web updater is disabled" : "Веб обновление отключено", "Update notifications" : "Уведомления об обновлениях", "The update server could not be reached since %d days to check for new updates." : "Сервер обновлений недоступен для проверки наличия обновлений дней: %d.", "Please check the Nextcloud and server log files for errors." : "Проверьте наличие ошибок в файлах журналов Nextcloud и сервера.", "Update to %1$s is available." : "Доступно обновление до версии %1$s.", "Update for %1$s to version %2$s is available." : "Для приложения %1$s доступно обновление до версии %2$s.", "Update for {app} to version %s is available." : "Для приложения {app} доступно обновление до версии %s.", - "Update notification" : "Уведомление о новой версии", + "Update notification" : "Уведомление об обновлении", "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Показывает уведомления об обновлениях для Nextcloud и обеспечивает систему обновления технологией единого входа (SSO).", "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Версия, которой вы пользуетесь, больше не обслуживается. Пожалуйста, обновитесь до поддерживаемой версии как можно скорее.", "Apps missing compatible version" : "Приложения без совместимой версии", @@ -32,6 +32,7 @@ "Checked on {lastCheckedDate}" : "Проверено {lastCheckedDate}", "Checking apps for compatible versions" : "Проверка приложений на совместимость версий", "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Убедитесь, что значением параметра <samp>appstoreenabled</samp> в файле «config.php» не является «false».", + "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Не удалось подключиться к App Store или обновления не были получены. Выполните поиск обновлений вручную или убедитесь, что ваш сервер имеет доступ к Интернету и может подключиться к App Store.", "<strong>All</strong> apps have a compatible version for this Nextcloud version available" : "<strong>Все</strong> приложения имеют версию, совместимую с этой версией Nextcloud.", "View changelog" : "Просмотреть изменения", "Enterprise" : "Использование на предприятии (Enterprise)", diff --git a/apps/updatenotification/src/components/UpdateNotification.vue b/apps/updatenotification/src/components/UpdateNotification.vue index b9e28e4ec2c..09c229fb36e 100644 --- a/apps/updatenotification/src/components/UpdateNotification.vue +++ b/apps/updatenotification/src/components/UpdateNotification.vue @@ -198,8 +198,8 @@ export default { } return this.missingAppUpdates.length === 0 - ? t('updatenotification', '<strong>All</strong> apps have a compatible version for this Nextcloud version available', this) - : n('updatenotification', '<strong>%n</strong> app has no compatible version for this Nextcloud version available', '<strong>%n</strong> apps have no compatible version for this Nextcloud version available', this.missingAppUpdates.length) + ? t('updatenotification', '<strong>All</strong> apps have a compatible version for this Nextcloud version available.', this) + : n('updatenotification', '<strong>%n</strong> app has no compatible version for this Nextcloud version available.', '<strong>%n</strong> apps have no compatible version for this Nextcloud version available.', this.missingAppUpdates.length) }, whatsNew() { diff --git a/apps/user_status/l10n/ru.js b/apps/user_status/l10n/ru.js index 0adaac99134..ed32cd16a14 100644 --- a/apps/user_status/l10n/ru.js +++ b/apps/user_status/l10n/ru.js @@ -7,9 +7,11 @@ OC.L10N.register( "Out sick" : "Болею", "Vacationing" : "В отпуске", "Working remotely" : "Удалённая работа", + "In a call" : "Вызывать", "User status" : "Статус пользователя", "View profile" : "Открыть профиль", "Clear status message after" : "Очистить сообщение о состоянии через", + "What is your status?" : "Какой у вас статус?", "Set status" : "Установить статус", "Online status" : "Статус работы в сети", "Status message" : "Описание статуса", diff --git a/apps/user_status/l10n/ru.json b/apps/user_status/l10n/ru.json index 81f15f0b089..1d8d5c0aab9 100644 --- a/apps/user_status/l10n/ru.json +++ b/apps/user_status/l10n/ru.json @@ -5,9 +5,11 @@ "Out sick" : "Болею", "Vacationing" : "В отпуске", "Working remotely" : "Удалённая работа", + "In a call" : "Вызывать", "User status" : "Статус пользователя", "View profile" : "Открыть профиль", "Clear status message after" : "Очистить сообщение о состоянии через", + "What is your status?" : "Какой у вас статус?", "Set status" : "Установить статус", "Online status" : "Статус работы в сети", "Status message" : "Описание статуса", diff --git a/apps/weather_status/l10n/ru.js b/apps/weather_status/l10n/ru.js index a7ec8fc4fbb..97e953a1b4f 100644 --- a/apps/weather_status/l10n/ru.js +++ b/apps/weather_status/l10n/ru.js @@ -11,6 +11,28 @@ OC.L10N.register( "Detect location" : "Определить местоположение", "Set custom address" : "Задать адрес", "Favorites" : "Избранное", + "{temperature} {unit} clear sky later today" : "{temperature} {unit} сегодня обещают ясную погоду", + "{temperature} {unit} clear sky" : "{temperature} {unit} ясно", + "{temperature} {unit} cloudy later today" : "{temperature} {unit} сегодня обещают облачно", + "{temperature} {unit} cloudy" : "{temperature} {unit} облачно", + "{temperature} {unit} fair weather later today" : "{temperature} {unit} сегодня обещают хорошую погоду", + "{temperature} {unit} fair weather" : "{temperature} {unit} хорошая погода", + "{temperature} {unit} partly cloudy later today" : "{temperature} {unit} сегодня обещают местами облачно", + "{temperature} {unit} partly cloudy" : "{temperature} {unit} местами облачно", + "{temperature} {unit} foggy later today" : "{temperature} {unit} сегодня обещают туман", + "{temperature} {unit} foggy" : "{temperature} {unit} туман", + "{temperature} {unit} light rain later today" : "{temperature} {unit} сегодня обещают небольшой дождь", + "{temperature} {unit} light rain" : "{temperature} {unit} идёт небольшой дождь", + "{temperature} {unit} rain later today" : "{temperature} {unit} сегодня обещают дождь", + "{temperature} {unit} rain" : "{temperature} {unit} идёт дождь", + "{temperature} {unit} heavy rain later today" : "{temperature} {unit} сегодня обещают сильный дождь", + "{temperature} {unit} heavy rain" : "{temperature} {unit} идёт сильный дождь", + "{temperature} {unit} rain showers later today" : "{temperature} {unit} сегодня обещают мокрый снег", + "{temperature} {unit} rain showers" : "{temperature} {unit} идёт мокрый снег", + "{temperature} {unit} light rain showers later today" : "{temperature} {unit} сегодня обещают снег с дождём", + "{temperature} {unit} light rain showers" : "{temperature} {unit} идёт снег с дождём ", + "{temperature} {unit} heavy rain showers later today" : "{temperature} {unit} сегодня обещают сильный снег с дождём ", + "{temperature} {unit} heavy rain showers" : "{temperature} {unit} идёт сильный снег с дождём ", "More weather for {adr}" : "Дополнительные сведения о погоде в {adr}", "Loading weather" : "Получение сведений о погоде...", "Remove from favorites" : "Удалить из избранного", diff --git a/apps/weather_status/l10n/ru.json b/apps/weather_status/l10n/ru.json index 607882c886d..386e6a4903c 100644 --- a/apps/weather_status/l10n/ru.json +++ b/apps/weather_status/l10n/ru.json @@ -9,6 +9,28 @@ "Detect location" : "Определить местоположение", "Set custom address" : "Задать адрес", "Favorites" : "Избранное", + "{temperature} {unit} clear sky later today" : "{temperature} {unit} сегодня обещают ясную погоду", + "{temperature} {unit} clear sky" : "{temperature} {unit} ясно", + "{temperature} {unit} cloudy later today" : "{temperature} {unit} сегодня обещают облачно", + "{temperature} {unit} cloudy" : "{temperature} {unit} облачно", + "{temperature} {unit} fair weather later today" : "{temperature} {unit} сегодня обещают хорошую погоду", + "{temperature} {unit} fair weather" : "{temperature} {unit} хорошая погода", + "{temperature} {unit} partly cloudy later today" : "{temperature} {unit} сегодня обещают местами облачно", + "{temperature} {unit} partly cloudy" : "{temperature} {unit} местами облачно", + "{temperature} {unit} foggy later today" : "{temperature} {unit} сегодня обещают туман", + "{temperature} {unit} foggy" : "{temperature} {unit} туман", + "{temperature} {unit} light rain later today" : "{temperature} {unit} сегодня обещают небольшой дождь", + "{temperature} {unit} light rain" : "{temperature} {unit} идёт небольшой дождь", + "{temperature} {unit} rain later today" : "{temperature} {unit} сегодня обещают дождь", + "{temperature} {unit} rain" : "{temperature} {unit} идёт дождь", + "{temperature} {unit} heavy rain later today" : "{temperature} {unit} сегодня обещают сильный дождь", + "{temperature} {unit} heavy rain" : "{temperature} {unit} идёт сильный дождь", + "{temperature} {unit} rain showers later today" : "{temperature} {unit} сегодня обещают мокрый снег", + "{temperature} {unit} rain showers" : "{temperature} {unit} идёт мокрый снег", + "{temperature} {unit} light rain showers later today" : "{temperature} {unit} сегодня обещают снег с дождём", + "{temperature} {unit} light rain showers" : "{temperature} {unit} идёт снег с дождём ", + "{temperature} {unit} heavy rain showers later today" : "{temperature} {unit} сегодня обещают сильный снег с дождём ", + "{temperature} {unit} heavy rain showers" : "{temperature} {unit} идёт сильный снег с дождём ", "More weather for {adr}" : "Дополнительные сведения о погоде в {adr}", "Loading weather" : "Получение сведений о погоде...", "Remove from favorites" : "Удалить из избранного", diff --git a/apps/weather_status/l10n/zh_CN.js b/apps/weather_status/l10n/zh_CN.js index 56945daa3fa..539875aaff6 100644 --- a/apps/weather_status/l10n/zh_CN.js +++ b/apps/weather_status/l10n/zh_CN.js @@ -11,6 +11,28 @@ OC.L10N.register( "Detect location" : "检测地点", "Set custom address" : "自定义地址", "Favorites" : "收藏", + "{temperature} {unit} clear sky later today" : "今天日晚些时候{temperature} {unit}晴天", + "{temperature} {unit} clear sky" : "{temperature} {unit}晴天", + "{temperature} {unit} cloudy later today" : "今日晚些时候{temperature} {unit}多云", + "{temperature} {unit} cloudy" : "{temperature} {unit}多云", + "{temperature} {unit} fair weather later today" : "今日晚些时候天气还行{temperature} {unit}", + "{temperature} {unit} fair weather" : "{temperature} {unit}天气还行", + "{temperature} {unit} partly cloudy later today" : "今日晚些时候{temperature} {unit}局部多云", + "{temperature} {unit} partly cloudy" : "{temperature} {unit}局部多云", + "{temperature} {unit} foggy later today" : "今日晚些时候{temperature} {unit}有雾", + "{temperature} {unit} foggy" : "{temperature} {unit}雾", + "{temperature} {unit} light rain later today" : "今日晚些时候{temperature} {unit}小雨", + "{temperature} {unit} light rain" : "{temperature} {unit}小雨", + "{temperature} {unit} rain later today" : "今日晚些时候{temperature} {unit}有雨", + "{temperature} {unit} rain" : "{temperature} {unit}下雨", + "{temperature} {unit} heavy rain later today" : "今日晚些时候{temperature} {unit}大雨", + "{temperature} {unit} heavy rain" : "{temperature} {unit}大雨", + "{temperature} {unit} rain showers later today" : "今日晚些时候{temperature} {unit}有阵雨", + "{temperature} {unit} rain showers" : "{temperature} {unit}阵雨", + "{temperature} {unit} light rain showers later today" : "今日晚些时候{temperature} {unit}零星小雨", + "{temperature} {unit} light rain showers" : "{temperature} {unit}零星小雨", + "{temperature} {unit} heavy rain showers later today" : "今日晚先时候{temperature} {unit}有滂沱阵雨", + "{temperature} {unit} heavy rain showers" : "{temperature} {unit}滂沱阵雨", "More weather for {adr}" : "{adr} 的更多天气信息", "Loading weather" : "正在加载天气", "Remove from favorites" : "从收藏夹移除", @@ -35,7 +57,7 @@ OC.L10N.register( "{temperature} {unit} Rain at {time}" : "{temperature} {unit} 雨,于 {time}", "{temperature} {unit} Heavy rain at {time}" : "{temperature} {unit} 大雨,于 {time}", "{temperature} {unit} Rain showers at {time}" : "{temperature} {unit} 阵雨,于 {time}", - "{temperature} {unit} Light rain showers at {time}" : "{temperature} {unit} 阵小雨,于 {time}", - "{temperature} {unit} Heavy rain showers at {time}" : "{temperature} {unit} 阵大雨,于 {time}" + "{temperature} {unit} Light rain showers at {time}" : "{temperature} {unit} 零星小雨,于 {time}", + "{temperature} {unit} Heavy rain showers at {time}" : "{temperature} {unit} 滂沱阵雨,于 {time}" }, "nplurals=1; plural=0;"); diff --git a/apps/weather_status/l10n/zh_CN.json b/apps/weather_status/l10n/zh_CN.json index b0d19699212..21984b00647 100644 --- a/apps/weather_status/l10n/zh_CN.json +++ b/apps/weather_status/l10n/zh_CN.json @@ -9,6 +9,28 @@ "Detect location" : "检测地点", "Set custom address" : "自定义地址", "Favorites" : "收藏", + "{temperature} {unit} clear sky later today" : "今天日晚些时候{temperature} {unit}晴天", + "{temperature} {unit} clear sky" : "{temperature} {unit}晴天", + "{temperature} {unit} cloudy later today" : "今日晚些时候{temperature} {unit}多云", + "{temperature} {unit} cloudy" : "{temperature} {unit}多云", + "{temperature} {unit} fair weather later today" : "今日晚些时候天气还行{temperature} {unit}", + "{temperature} {unit} fair weather" : "{temperature} {unit}天气还行", + "{temperature} {unit} partly cloudy later today" : "今日晚些时候{temperature} {unit}局部多云", + "{temperature} {unit} partly cloudy" : "{temperature} {unit}局部多云", + "{temperature} {unit} foggy later today" : "今日晚些时候{temperature} {unit}有雾", + "{temperature} {unit} foggy" : "{temperature} {unit}雾", + "{temperature} {unit} light rain later today" : "今日晚些时候{temperature} {unit}小雨", + "{temperature} {unit} light rain" : "{temperature} {unit}小雨", + "{temperature} {unit} rain later today" : "今日晚些时候{temperature} {unit}有雨", + "{temperature} {unit} rain" : "{temperature} {unit}下雨", + "{temperature} {unit} heavy rain later today" : "今日晚些时候{temperature} {unit}大雨", + "{temperature} {unit} heavy rain" : "{temperature} {unit}大雨", + "{temperature} {unit} rain showers later today" : "今日晚些时候{temperature} {unit}有阵雨", + "{temperature} {unit} rain showers" : "{temperature} {unit}阵雨", + "{temperature} {unit} light rain showers later today" : "今日晚些时候{temperature} {unit}零星小雨", + "{temperature} {unit} light rain showers" : "{temperature} {unit}零星小雨", + "{temperature} {unit} heavy rain showers later today" : "今日晚先时候{temperature} {unit}有滂沱阵雨", + "{temperature} {unit} heavy rain showers" : "{temperature} {unit}滂沱阵雨", "More weather for {adr}" : "{adr} 的更多天气信息", "Loading weather" : "正在加载天气", "Remove from favorites" : "从收藏夹移除", @@ -33,7 +55,7 @@ "{temperature} {unit} Rain at {time}" : "{temperature} {unit} 雨,于 {time}", "{temperature} {unit} Heavy rain at {time}" : "{temperature} {unit} 大雨,于 {time}", "{temperature} {unit} Rain showers at {time}" : "{temperature} {unit} 阵雨,于 {time}", - "{temperature} {unit} Light rain showers at {time}" : "{temperature} {unit} 阵小雨,于 {time}", - "{temperature} {unit} Heavy rain showers at {time}" : "{temperature} {unit} 阵大雨,于 {time}" + "{temperature} {unit} Light rain showers at {time}" : "{temperature} {unit} 零星小雨,于 {time}", + "{temperature} {unit} Heavy rain showers at {time}" : "{temperature} {unit} 滂沱阵雨,于 {time}" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file |