aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/css/files.css7
-rw-r--r--apps/systemtags/l10n/de.js2
-rw-r--r--apps/systemtags/l10n/de.json2
-rw-r--r--apps/systemtags/l10n/de_DE.js2
-rw-r--r--apps/systemtags/l10n/de_DE.json2
-rw-r--r--apps/theming/lib/Controller/ThemingController.php44
-rw-r--r--apps/theming/templates/settings-admin.php8
-rw-r--r--apps/theming/tests/Controller/ThemingControllerTest.php72
-rw-r--r--core/Command/Db/ConvertType.php2
-rw-r--r--core/Command/Upgrade.php6
-rw-r--r--core/l10n/de.js2
-rw-r--r--core/l10n/de.json2
-rw-r--r--core/l10n/de_DE.js2
-rw-r--r--core/l10n/de_DE.json2
-rw-r--r--core/l10n/zh_TW.js1
-rw-r--r--core/l10n/zh_TW.json1
-rw-r--r--lib/l10n/zh_TW.js22
-rw-r--r--lib/l10n/zh_TW.json22
18 files changed, 152 insertions, 49 deletions
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 1f8aa10bdb3..004a0b9ff50 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -608,13 +608,6 @@ html.ie8 .column-mtime .selectedActions {
padding-right: 14px;
}
-#fileList .filesize {
- padding-top: 0;
- padding-bottom: 0;
- padding-left: 60px;
- padding-right: 15px;
-}
-
#fileList .popovermenu {
margin-right: 6px;
}
diff --git a/apps/systemtags/l10n/de.js b/apps/systemtags/l10n/de.js
index 2c0f3ecb06b..b174a88813a 100644
--- a/apps/systemtags/l10n/de.js
+++ b/apps/systemtags/l10n/de.js
@@ -26,7 +26,7 @@ OC.L10N.register(
"%1$s unassigned system tag %3$s from %2$s" : "%1$s hat den System-Tag %3$s von %2$s entfernt",
"%s (restricted)" : "%s (eingeschränkt)",
"%s (invisible)" : "%s (unsichtbar)",
- "Collaborative tags" : "Zusammenarbeits-Etikett",
+ "Collaborative tags" : "Gemeinsame Tags",
"Name" : "Name",
"Delete" : "Löschen",
"Public" : "Öffentlich",
diff --git a/apps/systemtags/l10n/de.json b/apps/systemtags/l10n/de.json
index 565888ca44d..da38dbd3703 100644
--- a/apps/systemtags/l10n/de.json
+++ b/apps/systemtags/l10n/de.json
@@ -24,7 +24,7 @@
"%1$s unassigned system tag %3$s from %2$s" : "%1$s hat den System-Tag %3$s von %2$s entfernt",
"%s (restricted)" : "%s (eingeschränkt)",
"%s (invisible)" : "%s (unsichtbar)",
- "Collaborative tags" : "Zusammenarbeits-Etikett",
+ "Collaborative tags" : "Gemeinsame Tags",
"Name" : "Name",
"Delete" : "Löschen",
"Public" : "Öffentlich",
diff --git a/apps/systemtags/l10n/de_DE.js b/apps/systemtags/l10n/de_DE.js
index 754b3bb7468..00743322424 100644
--- a/apps/systemtags/l10n/de_DE.js
+++ b/apps/systemtags/l10n/de_DE.js
@@ -26,7 +26,7 @@ OC.L10N.register(
"%1$s unassigned system tag %3$s from %2$s" : "%1$s hat den System-Tag %3$s von %2$s entfernt",
"%s (restricted)" : "%s (eingeschränkt)",
"%s (invisible)" : "%s (unsichtbar)",
- "Collaborative tags" : "Zusammenarbeits-Etikett",
+ "Collaborative tags" : "Gemeinsame Tags",
"Name" : "Name",
"Delete" : "Löschen",
"Public" : "Öffentlich",
diff --git a/apps/systemtags/l10n/de_DE.json b/apps/systemtags/l10n/de_DE.json
index 447722ea6c9..627582535c0 100644
--- a/apps/systemtags/l10n/de_DE.json
+++ b/apps/systemtags/l10n/de_DE.json
@@ -24,7 +24,7 @@
"%1$s unassigned system tag %3$s from %2$s" : "%1$s hat den System-Tag %3$s von %2$s entfernt",
"%s (restricted)" : "%s (eingeschränkt)",
"%s (invisible)" : "%s (unsichtbar)",
- "Collaborative tags" : "Zusammenarbeits-Etikett",
+ "Collaborative tags" : "Gemeinsame Tags",
"Name" : "Name",
"Delete" : "Löschen",
"Public" : "Öffentlich",
diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php
index 55391619f3c..f788261b747 100644
--- a/apps/theming/lib/Controller/ThemingController.php
+++ b/apps/theming/lib/Controller/ThemingController.php
@@ -100,6 +100,50 @@ class ThemingController extends Controller {
* @internal param string $color
*/
public function updateStylesheet($setting, $value) {
+ $value = trim($value);
+ switch ($setting) {
+ case 'name':
+ if (strlen($value) > 250) {
+ return new DataResponse([
+ 'data' => [
+ 'message' => $this->l->t('The given name is too long'),
+ ],
+ 'status' => 'error'
+ ]);
+ }
+ break;
+ case 'url':
+ if (strlen($value) > 500) {
+ return new DataResponse([
+ 'data' => [
+ 'message' => $this->l->t('The given web address is too long'),
+ ],
+ 'status' => 'error'
+ ]);
+ }
+ break;
+ case 'slogan':
+ if (strlen($value) > 500) {
+ return new DataResponse([
+ 'data' => [
+ 'message' => $this->l->t('The given slogan is too long'),
+ ],
+ 'status' => 'error'
+ ]);
+ }
+ break;
+ case 'color':
+ if (!preg_match('/^\#([0-9a-f]{3}|[0-9a-f]{6})$/i', $value)) {
+ return new DataResponse([
+ 'data' => [
+ 'message' => $this->l->t('The given color is invalid'),
+ ],
+ 'status' => 'error'
+ ]);
+ }
+ break;
+ }
+
$this->template->set($setting, $value);
return new DataResponse(
[
diff --git a/apps/theming/templates/settings-admin.php b/apps/theming/templates/settings-admin.php
index 811b2883a88..50c4a8fb5ec 100644
--- a/apps/theming/templates/settings-admin.php
+++ b/apps/theming/templates/settings-admin.php
@@ -36,25 +36,25 @@ style('theming', 'settings-admin');
<?php } else { ?>
<p>
<label><span><?php p($l->t('Name')) ?></span>
- <input id="theming-name" type="text" placeholder="<?php p($l->t('Name')); ?>" value="<?php p($_['name']) ?>" />
+ <input id="theming-name" type="text" placeholder="<?php p($l->t('Name')); ?>" value="<?php p($_['name']) ?>" maxlength="250" />
</label>
<span data-setting="name" data-toggle="tooltip" data-original-title="<?php p($l->t('reset to default')); ?>" class="theme-undo icon icon-history"></span>
</p>
<p>
<label><span><?php p($l->t('Web address')) ?></span>
- <input id="theming-url" type="text" placeholder="<?php p($l->t('Web address https://…')); ?>" value="<?php p($_['url']) ?>" />
+ <input id="theming-url" type="text" placeholder="<?php p($l->t('Web address https://…')); ?>" value="<?php p($_['url']) ?>" maxlength="500" />
</label>
<span data-setting="url" data-toggle="tooltip" data-original-title="<?php p($l->t('reset to default')); ?>" class="theme-undo icon icon-history"></span>
</p>
<p>
<label><span><?php p($l->t('Slogan')) ?></span>
- <input id="theming-slogan" type="text" placeholder="<?php p($l->t('Slogan')); ?>" value="<?php p($_['slogan']) ?>" />
+ <input id="theming-slogan" type="text" placeholder="<?php p($l->t('Slogan')); ?>" value="<?php p($_['slogan']) ?>" maxlength="500" />
</label>
<span data-setting="slogan" data-toggle="tooltip" data-original-title="<?php p($l->t('reset to default')); ?>" class="theme-undo icon icon-history"></span>
</p>
<p>
<label><span><?php p($l->t('Color')) ?></span>
- <input id="theming-color" type="text" class="jscolor" value="<?php p($_['color']) ?>" />
+ <input id="theming-color" type="text" class="jscolor" maxlength="6" value="<?php p($_['color']) ?>" />
</label>
<span data-setting="color" data-toggle="tooltip" data-original-title="<?php p($l->t('reset to default')); ?>" class="theme-undo icon icon-history"></span>
</p>
diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php
index 933faf8a0a1..0f42e252400 100644
--- a/apps/theming/tests/Controller/ThemingControllerTest.php
+++ b/apps/theming/tests/Controller/ThemingControllerTest.php
@@ -36,34 +36,34 @@ use OCP\IRequest;
use Test\TestCase;
class ThemingControllerTest extends TestCase {
- /** @var IRequest */
+ /** @var IRequest|\PHPUnit_Framework_MockObject_MockObject */
private $request;
- /** @var IConfig */
+ /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */
private $config;
- /** @var Template */
+ /** @var Template|\PHPUnit_Framework_MockObject_MockObject */
private $template;
/** @var Util */
private $util;
/** @var \OCP\AppFramework\Utility\ITimeFactory */
private $timeFactory;
- /** @var IL10N */
+ /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */
private $l10n;
/** @var ThemingController */
private $themingController;
- /** @var IRootFolder */
+ /** @var IRootFolder|\PHPUnit_Framework_MockObject_MockObject */
private $rootFolder;
public function setUp() {
- $this->request = $this->getMock('\\OCP\\IRequest');
- $this->config = $this->getMock('\\OCP\\IConfig');
- $this->template = $this->getMockBuilder('\\OCA\\Theming\\Template')
+ $this->request = $this->getMockBuilder('OCP\IRequest')->getMock();
+ $this->config = $this->getMockBuilder('OCP\IConfig')->getMock();
+ $this->template = $this->getMockBuilder('OCA\Theming\Template')
->disableOriginalConstructor()->getMock();
$this->util = new Util();
$this->timeFactory = $this->getMockBuilder('OCP\AppFramework\Utility\ITimeFactory')
->disableOriginalConstructor()
->getMock();
- $this->l10n = $this->getMock('\\OCP\\IL10N');
- $this->rootFolder = $this->getMock('\\OCP\\Files\\IRootFolder');
+ $this->l10n = $this->getMockBuilder('OCP\IL10N')->getMock();
+ $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->getMock();
$this->timeFactory->expects($this->any())
->method('getTime')
@@ -83,27 +83,48 @@ class ThemingControllerTest extends TestCase {
return parent::setUp();
}
- public function testUpdateStylesheet() {
+ public function dataUpdateStylesheet() {
+ return [
+ ['name', str_repeat('a', 250), 'success', 'Saved'],
+ ['name', str_repeat('a', 251), 'error', 'The given name is too long'],
+ ['url', str_repeat('a', 500), 'success', 'Saved'],
+ ['url', str_repeat('a', 501), 'error', 'The given web address is too long'],
+ ['slogan', str_repeat('a', 500), 'success', 'Saved'],
+ ['slogan', str_repeat('a', 501), 'error', 'The given slogan is too long'],
+ ['color', '#0082c9', 'success', 'Saved'],
+ ['color', '#0082C9', 'success', 'Saved'],
+ ['color', '0082C9', 'error', 'The given color is invalid'],
+ ['color', '#0082Z9', 'error', 'The given color is invalid'],
+ ['color', 'Nextcloud', 'error', 'The given color is invalid'],
+ ];
+ }
+
+ /**
+ * @dataProvider dataUpdateStylesheet
+ *
+ * @param string $setting
+ * @param string $value
+ * @param string $status
+ * @param string $message
+ */
+ public function testUpdateStylesheet($setting, $value, $status, $message) {
$this->template
- ->expects($this->once())
+ ->expects($status === 'success' ? $this->once() : $this->never())
->method('set')
- ->with('MySetting', 'MyValue');
+ ->with($setting, $value);
$this->l10n
->expects($this->once())
->method('t')
- ->with('Saved')
- ->willReturn('Saved');
+ ->with($message)
+ ->willReturn($message);
- $expected = new DataResponse(
- [
- 'data' =>
- [
- 'message' => 'Saved',
- ],
- 'status' => 'success'
- ]
- );
- $this->assertEquals($expected, $this->themingController->updateStylesheet('MySetting', 'MyValue'));
+ $expected = new DataResponse([
+ 'data' => [
+ 'message' => $message,
+ ],
+ 'status' => $status,
+ ]);
+ $this->assertEquals($expected, $this->themingController->updateStylesheet($setting, $value));
}
public function testUpdateLogoNoData() {
@@ -665,5 +686,4 @@ class ThemingControllerTest extends TestCase {
$expected->addHeader('Expires', date(\DateTime::RFC2822, 123));
@$this->assertEquals($expected, $this->themingController->getStylesheet());
}
-
}
diff --git a/core/Command/Db/ConvertType.php b/core/Command/Db/ConvertType.php
index 6e15f9afbc7..ccf5c0685cb 100644
--- a/core/Command/Db/ConvertType.php
+++ b/core/Command/Db/ConvertType.php
@@ -61,7 +61,7 @@ class ConvertType extends Command {
protected function configure() {
$this
->setName('db:convert-type')
- ->setDescription('Convert the ownCloud database to the newly configured one')
+ ->setDescription('Convert the Nextcloud database to the newly configured one')
->addArgument(
'type',
InputArgument::REQUIRED,
diff --git a/core/Command/Upgrade.php b/core/Command/Upgrade.php
index 952034fd222..caf92492d90 100644
--- a/core/Command/Upgrade.php
+++ b/core/Command/Upgrade.php
@@ -299,8 +299,8 @@ class Upgrade extends Command {
return self::ERROR_SUCCESS;
} else if($this->config->getSystemValue('maintenance', false)) {
- //Possible scenario: ownCloud core is updated but an app failed
- $output->writeln('<warning>ownCloud is in maintenance mode</warning>');
+ //Possible scenario: Nextcloud core is updated but an app failed
+ $output->writeln('<warning>Nextcloud is in maintenance mode</warning>');
$output->write('<comment>Maybe an upgrade is already in process. Please check the '
. 'logfile (data/nextcloud.log). If you want to re-run the '
. 'upgrade procedure, remove the "maintenance mode" from '
@@ -308,7 +308,7 @@ class Upgrade extends Command {
, true);
return self::ERROR_MAINTENANCE_MODE;
} else {
- $output->writeln('<info>ownCloud is already latest version</info>');
+ $output->writeln('<info>Nextcloud is already latest version</info>');
return self::ERROR_UP_TO_DATE;
}
}
diff --git a/core/l10n/de.js b/core/l10n/de.js
index 6c013e61abe..6b745eaa03c 100644
--- a/core/l10n/de.js
+++ b/core/l10n/de.js
@@ -205,7 +205,7 @@ OC.L10N.register(
"({scope})" : "({scope})",
"Delete" : "Löschen",
"Rename" : "Umbenennen",
- "Collaborative tags" : "Gemeinschaftliche Tags",
+ "Collaborative tags" : "Gemeinsame Tags",
"The object type is not specified." : "Der Objekttyp ist nicht angegeben.",
"Enter new" : "Neuen eingeben",
"Add" : "Hinzufügen",
diff --git a/core/l10n/de.json b/core/l10n/de.json
index 04e099ff746..769517ea724 100644
--- a/core/l10n/de.json
+++ b/core/l10n/de.json
@@ -203,7 +203,7 @@
"({scope})" : "({scope})",
"Delete" : "Löschen",
"Rename" : "Umbenennen",
- "Collaborative tags" : "Gemeinschaftliche Tags",
+ "Collaborative tags" : "Gemeinsame Tags",
"The object type is not specified." : "Der Objekttyp ist nicht angegeben.",
"Enter new" : "Neuen eingeben",
"Add" : "Hinzufügen",
diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js
index d631acbd2ee..4ef276707b6 100644
--- a/core/l10n/de_DE.js
+++ b/core/l10n/de_DE.js
@@ -205,7 +205,7 @@ OC.L10N.register(
"({scope})" : "({scope})",
"Delete" : "Löschen",
"Rename" : "Umbenennen",
- "Collaborative tags" : "Gemeinschaftliche Tags",
+ "Collaborative tags" : "Gemeinsame Tags",
"The object type is not specified." : "Der Objekttyp ist nicht angegeben.",
"Enter new" : "Neuen eingeben",
"Add" : "Hinzufügen",
diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json
index de15b2a8fff..d8c0d4f216f 100644
--- a/core/l10n/de_DE.json
+++ b/core/l10n/de_DE.json
@@ -203,7 +203,7 @@
"({scope})" : "({scope})",
"Delete" : "Löschen",
"Rename" : "Umbenennen",
- "Collaborative tags" : "Gemeinschaftliche Tags",
+ "Collaborative tags" : "Gemeinsame Tags",
"The object type is not specified." : "Der Objekttyp ist nicht angegeben.",
"Enter new" : "Neuen eingeben",
"Add" : "Hinzufügen",
diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js
index 33f73a90f23..e6582dd9fe7 100644
--- a/core/l10n/zh_TW.js
+++ b/core/l10n/zh_TW.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Error unfavoriting" : "從最愛移除出錯",
"Couldn't send mail to following users: %s " : "無法寄送郵件給這些使用者:%s",
"Preparing update" : "準備更新",
+ "[%d / %d]: %s" : "[%d / %d]: %s",
"Repair warning: " : "修復警告:",
"Repair error: " : "修復錯誤",
"Turned on maintenance mode" : "已啓用維護模式",
diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json
index e3d2cdc36ca..212121d5f30 100644
--- a/core/l10n/zh_TW.json
+++ b/core/l10n/zh_TW.json
@@ -25,6 +25,7 @@
"Error unfavoriting" : "從最愛移除出錯",
"Couldn't send mail to following users: %s " : "無法寄送郵件給這些使用者:%s",
"Preparing update" : "準備更新",
+ "[%d / %d]: %s" : "[%d / %d]: %s",
"Repair warning: " : "修復警告:",
"Repair error: " : "修復錯誤",
"Turned on maintenance mode" : "已啓用維護模式",
diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js
index 9f1661e813a..bf9f98219d9 100644
--- a/lib/l10n/zh_TW.js
+++ b/lib/l10n/zh_TW.js
@@ -9,12 +9,15 @@ OC.L10N.register(
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改",
"PHP %s or higher is required." : "需要 PHP %s 或更高版本",
"PHP with a version lower than %s is required." : "需要 PHP 版本低於 %s ",
+ "%sbit or higher PHP required." : "%s 或需要更高階版本的php",
"Following databases are supported: %s" : "這些資料庫支援: %s",
"The command line tool %s could not be found" : "無法找到命令提示位元工具 %s",
"The library %s is not available." : "套件庫 %s 無法使用",
"Library %s with a version higher than %s is required - available version %s." : "需要套件庫 %s 版本高於 %s - 可使用的版本是 %s",
"Library %s with a version lower than %s is required - available version %s." : "需要套件庫 %s 版本低於 %s - 可使用的版本是 %s",
"Following platforms are supported: %s" : "這些平台支援: %s",
+ "Server version %s or higher is required." : "需要伺服器版本 %s 或更高階版本",
+ "Server version %s or lower is required." : "需要伺服器版本 %s 或更低階版本",
"Unknown filetype" : "未知的檔案類型",
"Invalid image" : "無效的圖片",
"today" : "今天",
@@ -36,15 +39,20 @@ OC.L10N.register(
"File name is too long" : "檔案名稱太長",
"App directory already exists" : "應用程式目錄已經存在",
"Can't create app folder. Please fix permissions. %s" : "無法建立應用程式目錄,請檢查權限:%s",
+ "Archive does not contain a directory named %s" : "檔案文件未包含目錄名稱 %s",
"No source specified when installing app" : "沒有指定應用程式安裝來源",
"No href specified when installing app from http" : "從 http 安裝應用程式,找不到 href 屬性",
"No path specified when installing app from local file" : "從本地檔案安裝應用程式時沒有指定路徑",
"Archives of type %s are not supported" : "不支援 %s 格式的壓縮檔",
"Failed to open archive when installing app" : "安裝應用程式時無法開啓壓縮檔",
"App does not provide an info.xml file" : "應用程式沒有提供 info.xml 檔案",
+ "App cannot be installed because appinfo file cannot be read." : "程式無法安裝,因為無法讀取appinfo檔案。",
"Signature could not get checked. Please contact the app developer and check your admin screen." : "無法驗證數位簽章,請聯絡 app 開發者,並檢查您的管理頁面",
"App can't be installed because of not allowed code in the App" : "無法安裝應用程式因為在當中找到危險的代碼",
+ "App can't be installed because it is not compatible with this version of the server" : "程式無法安裝,因為伺服器版本不符。",
"App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "無法安裝應用程式,因為它包含了 <shipped>true</shipped> 標籤,在未發行的應用程式當中這是不允許的",
+ "App can't be installed because the version in info.xml is not the same as the version reported from the app store" : "程式無法安裝,因為info.xml檔案中版本與app商店中要求不同。",
+ "%s enter the database username and name." : "%s 輸入資料庫名稱及使用者名稱",
"%s enter the database username." : "%s 輸入資料庫使用者名稱。",
"%s enter the database name." : "%s 輸入資料庫名稱。",
"%s you may not use dots in the database name" : "%s 資料庫名稱不能包含小數點",
@@ -94,6 +102,8 @@ OC.L10N.register(
"Sharing %s failed, because the sharing backend for %s could not find its source" : "分享 %s 失敗,因為 %s 的分享後端找不到它的來源",
"Sharing %s failed, because the file could not be found in the file cache" : "分享 %s 失敗,因為在快取中找不到該檔案",
"Cannot increase permissions of %s" : "無法增加%s的權限",
+ "Files can't be shared with delete permissions" : "無法分享具有刪除權限的檔案",
+ "Files can't be shared with create permissions" : "無法分享具有新建權限的檔案",
"Expiration date is in the past" : "到期日是之前的時間",
"Cannot set expiration date more than %s days in the future" : "無法設定到期日超過未來%s天",
"Could not find category \"%s\"" : "找不到分類:\"%s\"",
@@ -103,12 +113,19 @@ OC.L10N.register(
"Username contains whitespace at the beginning or at the end" : "使用者名詞的開頭或結尾有空白",
"A valid password must be provided" : "一定要提供一個有效的密碼",
"The username is already being used" : "這個使用者名稱已經有人使用了",
+ "Login canceled by app" : "程式取消登入",
+ "User disabled" : "使用者取消",
+ "Help" : "說明",
"Personal" : "個人",
"Users" : "使用者",
"Admin" : "管理",
"Recommended" : "建議",
+ "App \"%s\" cannot be installed because appinfo file cannot be read." : "程式\"%s\"無法安裝,因為無法讀取appinfo檔案。",
+ "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "程式\"%s\"無法安裝,因為伺服器版本不符。",
"App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "應用程式 \"%s\" 無法被安裝,下列的相依性並不是完整的: %s",
"No app name specified" : "沒有指定應用程式名稱",
+ "App '%s' could not be installed!" : "程式\"%s\"無法安裝。",
+ "a safe home for all your data" : "您資料的安全屋",
"File is currently busy, please try again later" : "檔案目前忙碌中,請稍候再試",
"Can't read file" : "無法讀取檔案",
"Application is not enabled" : "應用程式未啟用",
@@ -117,18 +134,23 @@ OC.L10N.register(
"Unknown user" : "未知的使用者",
"No database drivers (sqlite, mysql, or postgresql) installed." : "沒有安裝資料庫驅動程式 (sqlite, mysql, 或 postgresql)",
"Microsoft Windows Platform is not supported" : "不支援微軟Windows系統",
+ "Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "微軟Windows不支援Nextcloud伺服器,如果您一定要使用,我們建議您在虛擬機中安裝Linux版本伺服器。",
"Cannot write into \"config\" directory" : "無法寫入 config 目錄",
"Cannot write into \"apps\" directory" : "無法寫入 apps 目錄",
"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "通常藉由%s開放網頁伺服器對 apps 目錄的權限%s或是在設定檔中關閉 appstore 就可以修正這個問題",
"Cannot create \"data\" directory (%s)" : "無法建立 data 目錄 (%s)",
+ "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "可試試修改<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">給予網頁伺服器寫入根目錄的權限。",
"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "通常藉由%s開放網頁伺服器對根目錄的權限%s就可以修正權限問題",
"Setting locale to %s failed" : "設定語系為 %s 失敗",
"Please install one of these locales on your system and restart your webserver." : "請在系統中安裝這些語系的其中一個,然後重啓網頁伺服器",
"Please ask your server administrator to install the module." : "請詢問系統管理員來安裝這些模組",
"PHP module %s not installed." : "未安裝 PHP 模組 %s",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP設定值 \"%s\" 沒有被設定為 \"%s\"",
+ "Adjusting this setting in php.ini will make Nextcloud run again" : "調整php.ini中的設定,使Nextcloud重新運作。",
"mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload 應該要被設定成 \"0\"而不是目前的設定 \"%s\" ",
"To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "為了修正這個問題,請到php.ini將 <code>mbstring.func_overload</code> 的值改為 <code>0</code>",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "libxml2版本最低需求為2.7.0。目前安裝版本為 %s 。",
+ "To fix this issue update your libxml2 version and restart your web server." : "修正方式為更新您的libxml2為2.7.0以上版本,再重啟網頁伺服器。",
"PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 已經設定成「剪除 inline doc block」模式,這將會使幾個核心應用程式無法使用",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "這大概是由快取或是加速器像是 Zend OPcache, eAccelerator 造成的",
"PHP modules have been installed, but they are still listed as missing?" : "你已經安裝了指定的 PHP 模組,可是還是顯示為找不到嗎?",
diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json
index 7ad8f180fb3..4383312af1e 100644
--- a/lib/l10n/zh_TW.json
+++ b/lib/l10n/zh_TW.json
@@ -7,12 +7,15 @@
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改",
"PHP %s or higher is required." : "需要 PHP %s 或更高版本",
"PHP with a version lower than %s is required." : "需要 PHP 版本低於 %s ",
+ "%sbit or higher PHP required." : "%s 或需要更高階版本的php",
"Following databases are supported: %s" : "這些資料庫支援: %s",
"The command line tool %s could not be found" : "無法找到命令提示位元工具 %s",
"The library %s is not available." : "套件庫 %s 無法使用",
"Library %s with a version higher than %s is required - available version %s." : "需要套件庫 %s 版本高於 %s - 可使用的版本是 %s",
"Library %s with a version lower than %s is required - available version %s." : "需要套件庫 %s 版本低於 %s - 可使用的版本是 %s",
"Following platforms are supported: %s" : "這些平台支援: %s",
+ "Server version %s or higher is required." : "需要伺服器版本 %s 或更高階版本",
+ "Server version %s or lower is required." : "需要伺服器版本 %s 或更低階版本",
"Unknown filetype" : "未知的檔案類型",
"Invalid image" : "無效的圖片",
"today" : "今天",
@@ -34,15 +37,20 @@
"File name is too long" : "檔案名稱太長",
"App directory already exists" : "應用程式目錄已經存在",
"Can't create app folder. Please fix permissions. %s" : "無法建立應用程式目錄,請檢查權限:%s",
+ "Archive does not contain a directory named %s" : "檔案文件未包含目錄名稱 %s",
"No source specified when installing app" : "沒有指定應用程式安裝來源",
"No href specified when installing app from http" : "從 http 安裝應用程式,找不到 href 屬性",
"No path specified when installing app from local file" : "從本地檔案安裝應用程式時沒有指定路徑",
"Archives of type %s are not supported" : "不支援 %s 格式的壓縮檔",
"Failed to open archive when installing app" : "安裝應用程式時無法開啓壓縮檔",
"App does not provide an info.xml file" : "應用程式沒有提供 info.xml 檔案",
+ "App cannot be installed because appinfo file cannot be read." : "程式無法安裝,因為無法讀取appinfo檔案。",
"Signature could not get checked. Please contact the app developer and check your admin screen." : "無法驗證數位簽章,請聯絡 app 開發者,並檢查您的管理頁面",
"App can't be installed because of not allowed code in the App" : "無法安裝應用程式因為在當中找到危險的代碼",
+ "App can't be installed because it is not compatible with this version of the server" : "程式無法安裝,因為伺服器版本不符。",
"App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "無法安裝應用程式,因為它包含了 <shipped>true</shipped> 標籤,在未發行的應用程式當中這是不允許的",
+ "App can't be installed because the version in info.xml is not the same as the version reported from the app store" : "程式無法安裝,因為info.xml檔案中版本與app商店中要求不同。",
+ "%s enter the database username and name." : "%s 輸入資料庫名稱及使用者名稱",
"%s enter the database username." : "%s 輸入資料庫使用者名稱。",
"%s enter the database name." : "%s 輸入資料庫名稱。",
"%s you may not use dots in the database name" : "%s 資料庫名稱不能包含小數點",
@@ -92,6 +100,8 @@
"Sharing %s failed, because the sharing backend for %s could not find its source" : "分享 %s 失敗,因為 %s 的分享後端找不到它的來源",
"Sharing %s failed, because the file could not be found in the file cache" : "分享 %s 失敗,因為在快取中找不到該檔案",
"Cannot increase permissions of %s" : "無法增加%s的權限",
+ "Files can't be shared with delete permissions" : "無法分享具有刪除權限的檔案",
+ "Files can't be shared with create permissions" : "無法分享具有新建權限的檔案",
"Expiration date is in the past" : "到期日是之前的時間",
"Cannot set expiration date more than %s days in the future" : "無法設定到期日超過未來%s天",
"Could not find category \"%s\"" : "找不到分類:\"%s\"",
@@ -101,12 +111,19 @@
"Username contains whitespace at the beginning or at the end" : "使用者名詞的開頭或結尾有空白",
"A valid password must be provided" : "一定要提供一個有效的密碼",
"The username is already being used" : "這個使用者名稱已經有人使用了",
+ "Login canceled by app" : "程式取消登入",
+ "User disabled" : "使用者取消",
+ "Help" : "說明",
"Personal" : "個人",
"Users" : "使用者",
"Admin" : "管理",
"Recommended" : "建議",
+ "App \"%s\" cannot be installed because appinfo file cannot be read." : "程式\"%s\"無法安裝,因為無法讀取appinfo檔案。",
+ "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "程式\"%s\"無法安裝,因為伺服器版本不符。",
"App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "應用程式 \"%s\" 無法被安裝,下列的相依性並不是完整的: %s",
"No app name specified" : "沒有指定應用程式名稱",
+ "App '%s' could not be installed!" : "程式\"%s\"無法安裝。",
+ "a safe home for all your data" : "您資料的安全屋",
"File is currently busy, please try again later" : "檔案目前忙碌中,請稍候再試",
"Can't read file" : "無法讀取檔案",
"Application is not enabled" : "應用程式未啟用",
@@ -115,18 +132,23 @@
"Unknown user" : "未知的使用者",
"No database drivers (sqlite, mysql, or postgresql) installed." : "沒有安裝資料庫驅動程式 (sqlite, mysql, 或 postgresql)",
"Microsoft Windows Platform is not supported" : "不支援微軟Windows系統",
+ "Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "微軟Windows不支援Nextcloud伺服器,如果您一定要使用,我們建議您在虛擬機中安裝Linux版本伺服器。",
"Cannot write into \"config\" directory" : "無法寫入 config 目錄",
"Cannot write into \"apps\" directory" : "無法寫入 apps 目錄",
"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "通常藉由%s開放網頁伺服器對 apps 目錄的權限%s或是在設定檔中關閉 appstore 就可以修正這個問題",
"Cannot create \"data\" directory (%s)" : "無法建立 data 目錄 (%s)",
+ "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "可試試修改<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">給予網頁伺服器寫入根目錄的權限。",
"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "通常藉由%s開放網頁伺服器對根目錄的權限%s就可以修正權限問題",
"Setting locale to %s failed" : "設定語系為 %s 失敗",
"Please install one of these locales on your system and restart your webserver." : "請在系統中安裝這些語系的其中一個,然後重啓網頁伺服器",
"Please ask your server administrator to install the module." : "請詢問系統管理員來安裝這些模組",
"PHP module %s not installed." : "未安裝 PHP 模組 %s",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP設定值 \"%s\" 沒有被設定為 \"%s\"",
+ "Adjusting this setting in php.ini will make Nextcloud run again" : "調整php.ini中的設定,使Nextcloud重新運作。",
"mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload 應該要被設定成 \"0\"而不是目前的設定 \"%s\" ",
"To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "為了修正這個問題,請到php.ini將 <code>mbstring.func_overload</code> 的值改為 <code>0</code>",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "libxml2版本最低需求為2.7.0。目前安裝版本為 %s 。",
+ "To fix this issue update your libxml2 version and restart your web server." : "修正方式為更新您的libxml2為2.7.0以上版本,再重啟網頁伺服器。",
"PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 已經設定成「剪除 inline doc block」模式,這將會使幾個核心應用程式無法使用",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "這大概是由快取或是加速器像是 Zend OPcache, eAccelerator 造成的",
"PHP modules have been installed, but they are still listed as missing?" : "你已經安裝了指定的 PHP 模組,可是還是顯示為找不到嗎?",