summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2022-04-15 04:47:28 +0800
committerGitHub <noreply@github.com>2022-04-15 04:47:28 +0800
commit38c34dd6143d551d29bd3177f874bdc7959ab655 (patch)
tree5167d5bc599a5eeb6892e21b8b1c3313a69c1bd4
parentc45d862d3a3f0e0588a27b9e7cd8ba84afd454a8 (diff)
parent7def246d1b7a968d7305058b379ec4049ede5879 (diff)
downloadlua-language-server-38c34dd6143d551d29bd3177f874bdc7959ab655.zip
Merge pull request #1056 from AlexCai2019/master
新增繁體中文翻譯
-rw-r--r--locale/zh-tw/meta.lua686
-rw-r--r--locale/zh-tw/script.lua534
-rw-r--r--locale/zh-tw/setting.lua249
3 files changed, 1469 insertions, 0 deletions
diff --git a/locale/zh-tw/meta.lua b/locale/zh-tw/meta.lua
new file mode 100644
index 00000000..bd02c566
--- /dev/null
+++ b/locale/zh-tw/meta.lua
@@ -0,0 +1,686 @@
+---@diagnostic disable: undefined-global, lowercase-global
+
+-- basic
+arg =
+'獨立版Lua的啟動參數。 '
+assert =
+'如果其參數`v` 的值為假(`nil` 或`false`), 它就呼叫$error; 否則,回傳所有的參數。在錯誤情況時, `message` 指那個錯誤對象; 如果不提供這個參數,參數預設為`"assertion failed!"` 。 '
+cgopt.collect =
+'做一次完整的垃圾回收循環。 '
+cgopt.stop =
+'停止垃圾回收器的執行。 '
+cgopt.restart =
+'重啟垃圾回收器的自動執行。 '
+cgopt.count =
+'以K 位元組數為單位回傳Lua 使用的總記憶體數。 '
+cgopt.step =
+'單步執行垃圾回收器。步長“大小”由`arg` 控制。 '
+cgopt.setpause =
+'將`arg` 設為回收器的*間歇率* 。 '
+cgopt.setstepmul =
+'將`arg` 設為回收器的*步進倍率* 。 '
+cgopt.incremental =
+'改變回收器模式為增量模式。 '
+cgopt.generational =
+'改變回收器模式為分代模式。 '
+cgopt.isrunning =
+'回傳表示回收器是否在工作的布林值。 '
+collectgarbage =
+'這個函式是垃圾回收器的通用介面。通過參數opt 它提供了一組不同的功能。 '
+dofile =
+'打開該名字的檔案,並執行檔案中的Lua 程式碼區塊。不帶參數呼叫時, `dofile` 執行標準輸入的內容(`stdin`)。回傳該程式碼區塊的所有回傳值。對於有錯誤的情況,`dofile` 將錯誤反饋給呼叫者(即,`dofile` 沒有執行在保護模式下)。 '
+error =
+[[
+中止上一次保護函式呼叫, 將錯誤對象`message` 回傳。函式`error` 永遠不會回傳。
+
+當`message` 是一個字串時,通常`error` 會把一些有關出錯位置的訊息附加在訊息的前頭。 level 參數指明了怎樣獲得出錯位置。
+]]
+_G =
+'一個全域變數(非函式), 內部儲存有全域環境(參見§2.2)。 Lua 自己不使用這個變數; 改變這個變數的值不會對任何環境造成影響,反之亦然。 '
+getfenv =
+'回傳給定函式的環境。 `f` 可以是一個Lua函式,也可是一個表示呼叫堆疊層級的數字。 '
+getmetatable =
+'如果`object` 不包含元表,回傳`nil` 。否則,如果在該對象的元表中有`"__metatable"` 域時回傳其關聯值, 沒有時回傳該對象的元表。 '
+ipairs =
+[[
+回傳三個值(疊代函式、表`t` 以及`0` ), 如此,以下程式碼
+```lua
+ for i,v in ipairs(t) do body end
+```
+將疊代鍵值對`(1,t[1]) ,(2,t[2]), ...` ,直到第一個空值。
+]]
+loadmode.b =
+'只能是二進制程式碼區塊。 '
+loadmode.t =
+'只能是文字程式碼區塊。 '
+loadmode.bt =
+'可以是二進制也可以是文字。 '
+load['<5.1'] =
+'使用`func` 分段載入程式碼區塊。每次呼叫`func` 必須回傳一個字串用於連接前文。 '
+load['>5.2'] =
+[[
+載入一個程式碼區塊。
+
+如果`chunk` 是一個字串,程式碼區塊指這個字串。如果`chunk` 是一個函式, `load` 不斷地呼叫它獲取程式碼區塊的片段。每次對`chunk` 的呼叫都必須回傳一個字串緊緊連接在上次呼叫的回傳串之後。當回傳空串、`nil`、或是不回傳值時,都表示程式碼區塊結束。
+]]
+loadfile =
+'從檔案`filename` 或標準輸入(如果檔名未提供)中獲取程式碼區塊。 '
+loadstring =
+'使用給定字串載入程式碼區塊。 '
+module =
+'創建一個模組。 '
+next =
+[[
+執行程式來走訪表中的所有域。第一個參數是要走訪的表,第二個參數是表中的某個鍵。 `next` 回傳該鍵的下一個鍵及其關聯的值。如果用`nil` 作為第二個參數呼叫`next` 將回傳初始鍵及其關聯值。當以最後一個鍵去呼叫,或是以`nil` 呼叫一張空表時, `next` 回傳`nil`。如果不提供第二個參數,將認為它就是`nil`。特別指出,你可以用`next(t)` 來判斷一張表是否是空的。
+
+索引在走訪過程中的順序無定義, 即使是數字索引也是這樣。 (如果想按數字順序走訪表,可以使用數字形式的`for` 。)
+
+當在走訪過程中你給表中並不存在的域賦值, `next` 的行為是未定義的。然而你可以去修改那些已存在的域。特別指出,你可以清除一些已存在的域。
+]]
+pairs =
+[[
+如果`t` 有元方法`__pairs`, 以`t` 為參數呼叫它,並回傳其回傳的前三個值。
+
+否則,回傳三個值:`next` 函式, 表`t`,以及`nil`。因此以下程式碼
+```lua
+ for k,v in pairs(t) do body end
+```
+能疊代表`t` 中的所有鍵值對。
+
+參見函式$next 中關於疊代過程中修改表的風險。
+]]
+pcall =
+'傳入參數,以*保護模式* 呼叫函式`f` 。這意味著`f` 中的任何錯誤不會拋出; 取而代之的是,`pcall` 會將錯誤捕獲到,並回傳一個狀態碼。第一個回傳值是狀態碼(一個布林值), 當沒有錯誤時,其為真。此時,`pcall` 同樣會在狀態碼後回傳所有呼叫的結果。在有錯誤時,`pcall` 回傳`false` 加錯誤訊息。 '
+print =
+'接收任意數量的參數,並將它們的值輸出到`stdout`。它用`tostring` 函式將每個參數都轉換為字串。 `print` 不用於做格式化輸出。僅作為看一下某個值的快捷方式。多用於除錯。完整的對輸出的控制,請使用$string.format 以及$io.write。 '
+rawequal =
+'在不觸發任何元方法的情況下檢查`v1` 是否和`v2` 相等。回傳一個布林值。 '
+rawget =
+'在不觸發任何元方法的情況下獲取`table[index]` 的值。 `table` 必須是一張表; `index` 可以是任何值。 '
+rawlen =
+'在不觸發任何元方法的情況下回傳對象`v` 的長度。 `v` 可以是表或字串。它回傳一個整數。 '
+rawset =
+[[
+在不觸發任何元方法的情況下將`table[index]` 設為`value。 ` `table` 必須是一張表, `index` 可以是`nil` 與`NaN` 之外的任何值。 `value` 可以是任何Lua 值。
+這個函式回傳`table`。
+]]
+select =
+'如果`index` 是個數字, 那麼回傳參數中第`index` 個之後的部分; 負的數字會從後向前索引(`-1` 指最後一個參數)。否則,`index` 必須是字串`"#"`, 此時`select` 回傳參數的個數。 '
+setfenv =
+'設定給定函式的環境。 '
+setmetatable =
+[[
+給指定表設定元表。 (你不能在Lua 中改變其它類型值的元表,那些只能在C 裡做。) 如果`metatable` 是`nil`, 將指定表的元表移除。如果原來那張元表有`"__metatable"` 域,拋出一個錯誤。
+]]
+tonumber =
+[[
+如果呼叫的時候沒有`base`, `tonumber` 嘗試把參數轉換為一個數字。如果參數已經是一個數字,或是一個可以轉換為數字的字串, `tonumber` 就回傳這個數字; 否則回傳`nil`。
+
+字串的轉換結果可能是整數也可能是浮點數, 這取決於Lua 的轉換文法(參見§3.1)。 (字串可以有前置和後置的空格,可以帶符號。)
+]]
+tostring =
+[[
+可以接收任何類型,它將其轉換為人可閱讀的字串形式。浮點數總被轉換為浮點數的表現形式(小數點形式或是指數形式)。 (如果想完全控制數字如何被轉換,可以使用$string.format。)
+如果`v` 有`"__tostring"` 域的元表, `tostring` 會以`v` 為參數呼叫它。並用它的結果作為回傳值。
+]]
+type =
+[[
+將參數的類型編碼為一個字串回傳。函式可能的回傳值有`"nil"` (一個字串,而不是`nil` 值), `"number"`, `"string"`, `"boolean"`, `"table"`, `"function"`, `"thread"`, `"userdata"`。
+]]
+_VERSION =
+'一個包含有目前直譯器版本號的全域變數(並非函式)。 '
+warn =
+'使用所有參數組成的字串訊息來發送警告。 '
+xpcall['=5.1'] =
+'傳入參數,以*保護模式* 呼叫函式`f` 。這個函式和`pcall` 類似。不過它可以額外設定一個訊息處理器`err`。 '
+xpcall['>5.2'] =
+'傳入參數,以*保護模式* 呼叫函式`f` 。這個函式和`pcall` 類似。不過它可以額外設定一個訊息處理器`msgh`。 '
+unpack =
+[[
+回傳給定`list` 中的所有元素。改函式等價於
+```lua
+return list[i], list[i+1], ···, list[j]
+```
+]]
+
+bit32 =
+''
+bit32.arshift =
+[[
+回傳`x` 向右位移`disp` 位的結果。 `disp` 為負時向左位移。這是算數位移操作,左側的空位使用`x` 的高位填充,右側空位使用`0` 填充。
+]]
+bit32.band =
+'回傳參數按位與的結果。 '
+bit32.bnot =
+[[
+回傳`x` 按位取反的結果。
+
+```lua
+assert(bit32.bnot(x) ==
+(-1 - x) % 2^32)
+```
+]]
+bit32.bor =
+'回傳參數按位或的結果。 '
+bit32.btest =
+'參數按位與的結果不為0時,回傳`true` 。 '
+bit32.bxor =
+'回傳參數按位異或的結果。 '
+bit32.extract =
+'回傳`n` 中第`field` 到第`field + width - 1` 位組成的結果。 '
+bit32.replace =
+'回傳`v` 的第`field` 到第`field + width - 1` 位替換`n` 的對應位後的結果。 '
+bit32.lrotate =
+'回傳`x` 向左旋轉`disp` 位的結果。 `disp` 為負時向右旋轉。 '
+bit32.lshift =
+[[
+回傳`x` 向左位移`disp` 位的結果。 `disp` 為負時向右位移。空位總是使用`0` 填充。
+
+```lua
+assert(bit32.lshift(b, disp) ==
+(b * 2^disp) % 2^32)
+```
+]]
+bit32.rrotate =
+'回傳`x` 向右旋轉`disp` 位的結果。 `disp` 為負時向左旋轉。 '
+bit32.rshift =
+[[
+回傳`x` 向右位移`disp` 位的結果。 `disp` 為負時向左位移。空位總是使用`0` 填充。
+
+```lua
+assert(bit32.lshift(b, disp) ==
+(b * 2^disp) % 2^32)
+```
+]]
+
+coroutine =
+''
+coroutine.create =
+'創建一個主體函式為`f` 的新共常式。 f 必須是一個Lua 的函式。回傳這個新共常式,它是一個類型為`"thread"` 的對象。 '
+coroutine.isyieldable =
+'如果正在執行的共常式可以讓出,則回傳真。 '
+coroutine.isyieldable['>5.4'] =
+'如果共常式`co` 可以讓出,則回傳真。 `co` 預設為正在執行的共常式。 '
+coroutine.close =
+'關閉共常式`co`,並關閉它所有等待*to-be-closed* 的變數,並將共常式狀態設為`dead` 。 '
+coroutine.resume =
+'開始或繼續共常式`co` 的執行。 '
+coroutine.running =
+'回傳目前正在執行的共常式加一個布林值。如果目前執行的共常式是主執行緒,其為真。 '
+coroutine.status =
+'以字串形式回傳共常式`co` 的狀態。 '
+coroutine.wrap =
+'創建一個主體函式為`f` 的新共常式。 f 必須是一個Lua 的函式。回傳一個函式, 每次呼叫該函式都會延續該共常式。 '
+coroutine.yield =
+'掛起正在呼叫的共常式的執行。 '
+costatus.running =
+'正在執行。 '
+costatus.suspended =
+'掛起或是還沒有開始執行。 '
+costatus.normal =
+'是活動的,但並不在執行。 '
+costatus.dead =
+'執行完主體函式或因錯誤停止。 '
+
+debug =
+''
+debug.debug =
+'進入一個使用者交互模式,執行使用者輸入的每個字串。 '
+debug.getfenv =
+'回傳對象`o` 的環境。 '
+debug.gethook =
+'回傳三個表示執行緒鉤子設定的值: 目前鉤子函式,目前鉤子遮罩,目前鉤子計數。 '
+debug.getinfo =
+'回傳關於一個函式訊息的表。 '
+debug.getlocal['<5.1'] =
+'回傳在堆疊的`level` 層處函式的索引為`index` 的區域變數的名字和值。 '
+debug.getlocal['>5.2'] =
+'回傳在堆疊的`f` 層處函式的索引為`index` 的區域變數的名字和值。 '
+debug.getmetatable =
+'回傳給定`value` 的元表。 '
+debug.getregistry =
+'回傳註冊表。 '
+debug.getupvalue =
+'回傳函式`f` 的第`up` 個上值的名字和值。 '
+debug.getuservalue['<5.3']=
+'回傳關聯在`u` 上的`Lua` 值。 '
+debug.getuservalue['>5.4']=
+'回傳關聯在`u` 上的第`n` 個`Lua` 值,以及一個布林,`false`表示值不存在。 '
+debug.setcstacklimit =
+[[
+### **已在`Lua 5.4.2` 中廢棄**
+
+設定新的C堆疊限制。該限制控制Lua中嵌套呼叫的深度,以避免堆疊溢出。
+
+如果設定成功,該函式回傳之前的限制;否則回傳`false`。
+]]
+debug.setfenv =
+'將`table` 設定為`object` 的環境。 '
+debug.sethook =
+'將一個函式作為鉤子函式設入。 '
+debug.setlocal =
+'將`value` 賦給堆疊上第`level` 層函式的第`local` 個區域變數。 '
+debug.setmetatable =
+'將`value` 的元表設為`table` (可以是`nil`)。 '
+debug.setupvalue =
+'將`value` 設為函式`f` 的第`up` 個上值。 '
+debug.setuservalue['<5.3']=
+'將`value` 設為`udata` 的關聯值。 '
+debug.setuservalue['>5.4']=
+'將`value` 設為`udata` 的第`n` 個關聯值。 '
+debug.traceback =
+'回傳呼叫堆疊的堆疊回溯訊息。字串可選項`message` 被添加在堆疊回溯訊息的開頭。 '
+debug.upvalueid =
+'回傳指定函式第`n` 個上值的唯一標識符(一個輕量使用者資料)。 '
+debug.upvaluejoin =
+'讓Lua 閉包`f1` 的第`n1` 個上值引用`Lua` 閉包`f2` 的第`n2` 個上值。 '
+infowhat.n =
+'`name` 和`namewhat`'
+infowhat.S =
+'`source`,`short_src`,`linedefined`,`lalinedefined`,和`what`'
+infowhat.l =
+'`currentline`'
+infowhat.t =
+'`istailcall`'
+infowhat.u['<5.1'] =
+'`nups`'
+infowhat.u['>5.2'] =
+'`nups`、`nparams` 和`isvararg`'
+infowhat.f =
+'`func`'
+infowhat.r =
+'`ftransfer` 和`ntransfer`'
+infowhat.L =
+'`activelines`'
+hookmask.c =
+'每當Lua 呼叫一個函式時,呼叫鉤子。 '
+hookmask.r =
+'每當Lua 從一個函式內回傳時,呼叫鉤子。 '
+hookmask.l =
+'每當Lua 進入新的一行時,呼叫鉤子。 '
+
+file =
+''
+file[':close'] =
+'關閉`file`。 '
+file[':flush'] =
+'將寫入的資料儲存到`file` 中。 '
+file[':lines'] =
+[[
+------
+```lua
+for c in file:lines(...) do
+ body
+end
+```
+]]
+file[':read'] =
+'讀檔案`file`, 指定的格式決定了要讀什麼。 '
+file[':seek'] =
+'設定及獲取基於檔案開頭處計算出的位置。 '
+file[':setvbuf'] =
+'設定輸出檔案的緩衝模式。 '
+file[':write'] =
+'將參數的值逐個寫入`file`。 '
+readmode.n =
+'讀取一個數字,根據Lua 的轉換文法回傳浮點數或整數。 '
+readmode.a =
+'從目前位置開始讀取整個檔案。 '
+readmode.l =
+'讀取一行並忽略行結束標記。 '
+readmode.L =
+'讀取一行並保留行結束標記。 '
+seekwhence.set =
+'基點為0 (檔案開頭)。 '
+seekwhence.cur =
+'基點為目前位置。 '
+seekwhence['.end'] =
+'基點為檔案尾。 '
+vbuf.no =
+'不緩衝;輸出操作立刻生效。 '
+vbuf.full =
+'完全緩衝;只有在快取滿或呼叫flush 時才做輸出操作。 '
+vbuf.line =
+'行緩衝;輸出將緩衝到每次換行前。 '
+
+io =
+''
+io.stdin =
+'標準輸入。 '
+io.stdout =
+'標準輸出。 '
+io.stderr =
+'標準錯誤。 '
+io.close =
+'關閉`file` 或預設輸出檔案。 '
+io.flush =
+'將寫入的資料儲存到預設輸出檔案中。 '
+io.input =
+'設定`file` 為預設輸入檔案。 '
+io.lines =
+[[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+io.open =
+'用字串`mode` 指定的模式打開一個檔案。 '
+io.output =
+'設定`file` 為預設輸出檔案。 '
+io.popen =
+'用一個分離程序開啟程式`prog` 。 '
+io.read =
+'讀檔案`file`, 指定的格式決定了要讀什麼。 '
+io.tmpfile =
+'如果成功,回傳一個臨時檔案的控制代碼。 '
+io.type =
+'檢查`obj` 是否是合法的檔案控制代碼。 '
+io.write =
+'將參數的值逐個寫入預設輸出檔案。 '
+openmode.r =
+'讀模式。 '
+openmode.w =
+'寫模式。 '
+openmode.a =
+'追加模式。 '
+openmode['.r+'] =
+'更新模式,所有之前的資料都保留。 '
+openmode['.w+'] =
+'更新模式,所有之前的資料都刪除。 '
+openmode['.a+'] =
+'追加更新模式,所有之前的資料都保留,只允許在檔案尾部做寫入。 '
+openmode.rb =
+'讀模式。 (二進制方式)'
+openmode.wb =
+'寫模式。 (二進制方式)'
+openmode.ab =
+'追加模式。 (二進制方式)'
+openmode['.r+b'] =
+'更新模式,所有之前的資料都保留。 (二進制方式)'
+openmode['.w+b'] =
+'更新模式,所有之前的資料都刪除。 (二進制方式)'
+openmode['.a+b'] =
+'追加更新模式,所有之前的資料都保留,只允許在檔案尾部做寫入。 (二進制方式)'
+popenmode.r =
+'從這個程式中讀取資料。 (二進制方式)'
+popenmode.w =
+'向這個程式寫入輸入。 (二進制方式)'
+filetype.file =
+'是一個打開的檔案控制代碼。 '
+filetype['.closed file'] =
+'是一個關閉的檔案控制代碼。 '
+filetype['.nil'] =
+'不是檔案控制代碼。 '
+
+math =
+''
+math.abs =
+'回傳`x` 的絕對值。 '
+math.acos =
+'回傳`x` 的反餘弦值(用弧度表示)。 '
+math.asin =
+'回傳`x` 的反正弦值(用弧度表示)。 '
+math.atan['<5.2'] =
+'回傳`x` 的反正切值(用弧度表示)。 '
+math.atan['>5.3'] =
+'回傳`y/x` 的反正切值(用弧度表示)。 '
+math.atan2 =
+'回傳`y/x` 的反正切值(用弧度表示)。 '
+math.ceil =
+'回傳不小於`x` 的最小整數值。 '
+math.cos =
+'回傳`x` 的餘弦(假定參數是弧度)。 '
+math.cosh =
+'回傳`x` 的雙曲餘弦(假定參數是弧度)。 '
+math.deg =
+'將角`x` 從弧度轉換為角度。 '
+math.exp =
+'回傳`e^x` 的值(e 為自然對數的底)。 '
+math.floor =
+'回傳不大於`x` 的最大整數值。 '
+math.fmod =
+'回傳`x` 除以`y`,將商向零圓整後的餘數。 '
+math.frexp =
+'將`x` 分解為尾數與指數,回傳值符合`x = m * (2 ^ e)` 。 `e` 是一個整數,`m` 是[0.5, 1) 之間的規格化小數(`x` 為0時`m` 為0)。 '
+math.huge =
+'一個比任何數字值都大的浮點數。 '
+math.ldexp =
+'回傳`m * (2 ^ e)` 。 '
+math.log['<5.1'] =
+'回傳`x` 的自然對數。 '
+math.log['>5.2'] =
+'回以指定底的`x` 的對數。 '
+math.log10 =
+'回傳`x` 的以10為底的對數。 '
+math.max =
+'回傳參數中最大的值, 大小由Lua 操作`<` 決定。 '
+math.maxinteger =
+'最大值的整數。 '
+math.min =
+'回傳參數中最小的值, 大小由Lua 操作`<` 決定。 '
+math.mininteger =
+'最小值的整數。 '
+math.modf =
+'回傳`x` 的整數部分和小數部分。 '
+math.pi =
+'*π* 的值。 '
+math.pow =
+'回傳`x ^ y` 。 '
+math.rad =
+'將角`x` 從角度轉換為弧度。 '
+math.random =
+[[
+* `math.random()`: 回傳[0,1) 區間內一致分佈的浮點偽隨機數。
+* `math.random(n)`: 回傳[1, n] 區間內一致分佈的整數偽隨機數。
+* `math.random(m, n)`: 回傳[m, n] 區間內一致分佈的整數偽隨機數。
+]]
+math.randomseed['<5.3'] =
+'把`x` 設為偽隨機數發生器的“種子”: 相同的種子產生相同的隨機數列。 '
+math.randomseed['>5.4'] =
+[[
+* `math.randomseed(x, y)`: 將`x` 與`y` 連接為128位的種子來重新初始化偽隨機生成器。
+* `math.randomseed(x)`: 等同於`math.randomseed(x, 0)` 。
+* `math.randomseed()`: 生成一個較弱的隨機種子。
+]]
+math.sin =
+'回傳`x` 的正弦值(假定參數是弧度)。 '
+math.sinh =
+'回傳`x` 的雙曲正弦值(假定參數是弧度)。 '
+math.sqrt =
+'回傳`x` 的平方根。 '
+math.tan =
+'回傳`x` 的正切值(假定參數是弧度)。 '
+math.tanh =
+'回傳`x` 的雙曲正切值(假定參數是弧度)。 '
+math.tointeger =
+'如果`x` 可以轉換為一個整數, 回傳該整數。 '
+math.type =
+'如果`x` 是整數,回傳`"integer"`, 如果它是浮點數,回傳`"float"`, 如果`x` 不是數字,回傳`nil`。 '
+math.ult =
+'如果整數`m` 和`n` 以無符號整數形式比較, `m` 在`n` 之下,回傳布林真否則回傳假。 '
+
+os =
+''
+os.clock =
+'回傳程式使用的按秒計CPU 時間的近似值。 '
+os.date =
+'回傳一個包含日期及時刻的字串或表。格式化方法取決於所給字串`format`。 '
+os.difftime =
+'回傳以秒計算的時刻`t1` 到`t2` 的差值。 '
+os.execute =
+'呼叫系統直譯器執行`command`。 '
+os.exit['<5.1'] =
+'呼叫C 函式`exit` 終止宿主程式。 '
+os.exit['>5.2'] =
+'呼叫ISO C 函式`exit` 終止宿主程式。 '
+os.getenv =
+'回傳程序環境變數`varname` 的值。 '
+os.remove =
+'刪除指定名字的檔案。 '
+os.rename =
+'將名字為`oldname` 的檔案或目錄更名為`newname`。 '
+os.setlocale =
+'設定程式的目前區域。 '
+os.time =
+'當不傳參數時,回傳目前時刻。如果傳入一張表,就回傳由這張表表示的時刻。 '
+os.tmpname =
+'回傳一個可用於臨時檔案的檔名字串。 '
+osdate.year =
+'四位數字'
+osdate.month =
+'1-12'
+osdate.day =
+'1-31'
+osdate.hour =
+'0-23'
+osdate.min =
+'0-59'
+osdate.sec =
+'0-61'
+osdate.wday =
+'星期幾,1-7,星期天為1'
+osdate.yday =
+'當年的第幾天,1-366'
+osdate.isdst =
+'夏令時標記,一個布林值'
+
+package =
+''
+require['<5.3'] =
+'載入一個模組,回傳該模組的回傳值(`nil`時為`true`)。 '
+require['>5.4'] =
+'載入一個模組,回傳該模組的回傳值(`nil`時為`true`)與搜尋器回傳的載入資料。預設搜尋器的載入資料指示了載入位置,對於檔案來說就是檔案路徑。 '
+package.config =
+'一個描述有一些為包管理準備的編譯期配置訊息的串。 '
+package.cpath =
+'這個路徑被`require` 在C 載入器中做搜尋時用到。 '
+package.loaded =
+'用於`require` 控制哪些模組已經被載入的表。 '
+package.loaders =
+'用於`require` 控制如何載入模組的表。 '
+package.loadlib =
+'讓宿主程式動態連接C 庫`libname` 。 '
+package.path =
+'這個路徑被`require` 在Lua 載入器中做搜尋時用到。 '
+package.preload =
+'儲存有一些特殊模組的載入器。 '
+package.searchers =
+'用於`require` 控制如何載入模組的表。 '
+package.searchpath =
+'在指定`path` 中搜尋指定的`name` 。 '
+package.seeall =
+'給`module` 設定一個元表,該元表的`__index` 域為全域環境,這樣模組便會繼承全域環境的值。可作為`module` 函式的選項。 '
+
+string =
+''
+string.byte =
+'回傳字元`s[i]`, `s[i+1]`, ... ,`s[j]` 的內部數字編碼。 '
+string.char =
+'接收零或更多的整數。回傳和參數數量相同長度的字串。其中每個字元的內部編碼值等於對應的參數值。 '
+string.dump =
+'回傳包含有以二進制方式表示的(一個*二進制程式碼區塊* )指定函式的字串。 '
+string.find =
+'查找第一個字串中匹配到的`pattern`(參見§6.4.1)。 '
+string.format =
+'回傳不定數量參數的格式化版本,格式化串為第一個參數。 '
+string.gmatch =
+[[
+回傳一個疊代器函式。每次呼叫這個函式都會繼續以`pattern` (參見§6.4.1) 對s 做匹配,並回傳所有捕獲到的值。
+
+下面這個例子會循環疊代字串s 中所有的單詞, 並逐行輸出:
+```lua
+ s =
+"hello world from Lua"
+ for w in string.gmatch(s, "%a+") do
+ print(w)
+ end
+```
+]]
+string.gsub =
+'將字串s 中,所有的(或是在n 給出時的前n 個) pattern (參見§6.4.1)都替換成repl ,並回傳其副本。 '
+string.len =
+'回傳其長度。 '
+string.lower =
+'將其中的大寫字元都轉為小寫後回傳其副本。 '
+string.match =
+'在字串s 中找到第一個能用pattern (參見§6.4.1)匹配到的部分。如果能找到,match 回傳其中的捕獲物; 否則回傳nil 。 '
+string.pack =
+'回傳一個打包了(即以二進制形式序列化) v1, v2 等值的二進制字串。字串fmt 為打包格式(參見§6.4.2)。 '
+string.packsize =
+[[回傳以指定格式用$string.pack 打包的字串的長度。格式化字串中不可以有變長選項's' 或'z' (參見§6.4.2)。 ]]
+string.rep['<5.1'] =
+'回傳`n` 個字串`s` 連在一起的字串。如果`n` 不是正數則回傳空串。 '
+string.rep['>5.2'] =
+'回傳`n` 個字串`s` 以字串`sep` 為分割符連在一起的字串。預設的`sep` 值為空字串(即沒有分割符)。如果`n` 不是正數則回傳空字串。 '
+string.reverse =
+'回傳字串s 的翻轉串。 '
+string.sub =
+'回傳字串的子串, 該子串從`i` 開始到`j` 為止。 '
+string.unpack =
+'回傳以格式fmt (參見§6.4.2) 打包在字串s (參見string.pack) 中的值。 '
+string.upper =
+'接收一個字串,將其中的小寫字元都轉為大寫後回傳其副本。 '
+
+table =
+''
+table.concat =
+'提供一個列表,其所有元素都是字串或數字,回傳字串`list[i]..sep..list[i+1] ··· sep..list[j]`。 '
+table.insert =
+'在`list` 的位置`pos` 處插入元素`value`。 '
+table.maxn =
+'回傳給定表的最大正數索引,如果表沒有正數索引,則回傳零。 '
+table.move =
+[[
+將元素從表`a1` 移到表`a2`。
+```lua
+a2[t],··· =
+a1[f],···,a1[e]
+return a2
+```
+]]
+table.pack =
+'回傳用所有參數以鍵`1`,`2`, 等填充的新表, 並將`"n"` 這個域設為參數的總數。 '
+table.remove =
+'移除`list` 中`pos` 位置上的元素,並回傳這個被移除的值。 '
+table.sort =
+'在表內從`list[1]` 到`list[#list]` *原地* 對其間元素按指定順序排序。 '
+table.unpack =
+[[
+回傳列表中的元素。這個函式等價於
+```lua
+ return list[i], list[i+1], ···, list[j]
+```
+i 預設為1 ,j 預設為#list。
+]]
+table.foreach =
+'走訪表中的每一個元素,並以key和value執行回呼函式。如果回呼函式回傳一個非nil值則循環終止,並且回傳這個值。該函式等同pair(list),比pair(list)更慢。不推薦使用'
+table.foreachi =
+'走訪數組中的每一個元素,並以索引號index和value執行回呼函式。如果回呼函式回傳一個非nil值則循環終止,並且回傳這個值。該函式等同ipair(list),比ipair(list)更慢。不推薦使用'
+table.getn =
+'回傳表的長度。該函式等價於#list。 '
+
+utf8 =
+''
+utf8.char =
+'接收零或多個整數, 將每個整數轉換成對應的UTF-8 位元組序列,並回傳這些序列連接到一起的字串。 '
+utf8.charpattern =
+'用於精確匹配到一個UTF-8 位元組序列的模式,它假定處理的對像是一個合法的UTF-8 字串。 '
+utf8.codes =
+[[
+回傳一系列的值,可以讓
+```lua
+for p, c in utf8.codes(s) do
+ body
+end
+```
+疊代出字串s 中所有的字元。這裡的p 是位置(按位元組數)而c 是每個字元的編號。如果處理到一個不合法的位元組序列,將拋出一個錯誤。
+]]
+utf8.codepoint =
+'以整數形式回傳`s` 中從位置`i` 到`j` 間(包括兩端) 所有字元的編號。 '
+utf8.len =
+'回傳字串`s` 中從位置`i` 到`j` 間(包括兩端) UTF-8 字元的個數。 '
+utf8.offset =
+'回傳編碼在`s` 中的第`n` 個字元的開始位置(按位元組數) (從位置`i` 處開始統計)。 '
diff --git a/locale/zh-tw/script.lua b/locale/zh-tw/script.lua
new file mode 100644
index 00000000..de4e0abb
--- /dev/null
+++ b/locale/zh-tw/script.lua
@@ -0,0 +1,534 @@
+DIAG_LINE_ONLY_SPACE =
+'只有空格的空行。 '
+DIAG_LINE_POST_SPACE =
+'後置空格。 '
+DIAG_UNUSED_LOCAL =
+'未使用的區域變數`{}`。 '
+DIAG_UNDEF_GLOBAL =
+'未定義的全域變數`{}`。 '
+DIAG_UNDEF_FIELD =
+'未定義的屬性/欄位`{}`。 '
+DIAG_UNDEF_ENV_CHILD =
+'未定義的變數`{}`(重載了`_ENV` )。 '
+DIAG_UNDEF_FENV_CHILD =
+'未定義的變數`{}`(處於模組中)。 '
+DIAG_GLOBAL_IN_NIL_ENV =
+'不能使用全域變數(`_ENV`被置為了`nil`)。 '
+DIAG_GLOBAL_IN_NIL_FENV =
+'不能使用全域變數(模組被置為了`nil`)。 '
+DIAG_UNUSED_LABEL =
+'未使用的標籤`{}`。 '
+DIAG_UNUSED_FUNCTION =
+'未使用的函式。 '
+DIAG_UNUSED_VARARG =
+'未使用的不定參數。 '
+DIAG_REDEFINED_LOCAL =
+'重定義區域變數`{}`。 '
+DIAG_DUPLICATE_INDEX =
+'重複的索引`{}`。 '
+DIAG_DUPLICATE_METHOD =
+'重複的方法`{}`。 '
+DIAG_PREVIOUS_CALL =
+'會被解釋為`{}{}`。你可能需要加一個`;`。 '
+DIAG_PREFIELD_CALL =
+'會被解釋為`{}{}`。你可能需要加一個`,`或`;`。 '
+DIAG_OVER_MAX_ARGS =
+'函式只接收{:d} 個參數,但你傳了{:d} 個。 '
+DIAG_OVER_MAX_VALUES =
+'只有{} 個變數,但你設定了{} 個值。 '
+DIAG_AMBIGUITY_1 =
+'會優先運算`{}`,你可能需要加個括號。 '
+DIAG_LOWERCASE_GLOBAL =
+'首字母小寫的全域變數,你是否漏了`local` 或是有拼寫錯誤? '
+DIAG_EMPTY_BLOCK =
+'空程式碼區塊'
+DIAG_DIAGNOSTICS =
+'Lua 診斷'
+DIAG_SYNTAX_CHECK =
+'Lua 語法檢查'
+DIAG_NEED_VERSION =
+'在{} 中是合法的,目前為{}'
+DIAG_DEFINED_VERSION =
+'在{} 中有定義,目前為{}'
+DIAG_DEFINED_CUSTOM =
+'在{} 中有定義'
+DIAG_DUPLICATE_CLASS =
+'重複定義的Class `{}`。 '
+DIAG_UNDEFINED_CLASS =
+'未定義的Class `{}`。 '
+DIAG_CYCLIC_EXTENDS =
+'循環繼承。 '
+DIAG_INEXISTENT_PARAM =
+'不存在的參數。 '
+DIAG_DUPLICATE_PARAM =
+'重複的參數。 '
+DIAG_NEED_CLASS =
+'需要先定義Class 。 '
+DIAG_DUPLICATE_SET_FIELD=
+'重複定義的欄位`{}`。 '
+DIAG_SET_CONST =
+'不能對常數賦值。 '
+DIAG_SET_FOR_STATE =
+'修改了循環變數。 '
+DIAG_CODE_AFTER_BREAK =
+'無法執行到`break` 後的程式碼。 '
+DIAG_UNBALANCED_ASSIGNMENTS =
+'由於值的數量不夠而被賦值為了`nil` 。在Lua中, `x, y = 1` 等價於`x, y = 1, nil` 。 '
+DIAG_REQUIRE_LIKE =
+'你可以在設定中將`{}` 視為`require`。 '
+DIAG_COSE_NON_OBJECT =
+'無法close 此類型的值。 (除非給此類型設定`__close` 元方法)'
+DIAG_COUNT_DOWN_LOOP =
+'你的意思是`{}` 嗎? '
+DIAG_UNKNOWN =
+'無法推測出類型。 '
+DIAG_DEPRECATED =
+'已廢棄。 '
+DIAG_DIFFERENT_REQUIRES =
+'使用了不同的名字require 了同一個檔案。 '
+DIAG_REDUNDANT_RETURN =
+'冗餘回傳。 '
+DIAG_AWAIT_IN_SYNC =
+'只能在標記為異步的函式中呼叫異步函式。 '
+DIAG_NOT_YIELDABLE =
+'此函式的第{} 個參數沒有被標記為可讓出,但是傳入了異步函式。 (使用`---@param name async fun()` 來標記為可讓出)'
+DIAG_DISCARD_RETURNS =
+'不能丟棄此函式的回傳值。 '
+
+DIAG_CIRCLE_DOC_CLASS =
+'循環繼承的類。 '
+DIAG_DOC_FIELD_NO_CLASS =
+'欄位必須定義在類別之後。 '
+DIAG_DUPLICATE_DOC_CLASS =
+'重複定義的類別`{}`。 '
+DIAG_DUPLICATE_DOC_FIELD =
+'重複定義的欄位`{}`。 '
+DIAG_DUPLICATE_DOC_PARAM =
+'重複指向的參數`{}`。 '
+DIAG_UNDEFINED_DOC_CLASS =
+'未定義的類別`{}`。 '
+DIAG_UNDEFINED_DOC_NAME =
+'未定義的類型或別名`{}`。 '
+DIAG_UNDEFINED_DOC_PARAM =
+'指向了未定義的參數`{}`。 '
+DIAG_UNKNOWN_DIAG_CODE =
+'未知的診斷代碼`{}`。 '
+
+MWS_NOT_SUPPORT =
+'{} 目前還不支援多工作目錄,我可能需要重啟才能支援新的工作目錄...'
+MWS_RESTART =
+'重啟'
+MWS_NOT_COMPLETE =
+'工作目錄還沒有準備好,你可以稍後再試一下...'
+MWS_COMPLETE =
+'工作目錄準備好了,你可以再試一下了...'
+MWS_MAX_PRELOAD =
+'預載入檔案數已達上限({}),你需要手動打開需要載入的檔案。 '
+MWS_UCONFIG_FAILED =
+'使用者配置儲存失敗。 '
+MWS_UCONFIG_UPDATED =
+'使用者配置已更新。 '
+MWS_WCONFIG_UPDATED =
+'工作區配置已更新。 '
+
+WORKSPACE_SKIP_LARGE_FILE =
+'已跳過過大的檔案:{}。目前設定的大小限制為:{} KB,該檔案大小為:{} KB'
+WORKSPACE_LOADING =
+'正在載入工作目錄'
+WORKSPACE_DIAGNOSTIC =
+'正在對工作目錄進行診斷'
+WORKSPACE_SKIP_HUGE_FILE =
+'出於效能考慮,已停止對此檔案解析:{}'
+
+PARSER_CRASH =
+'語法解析崩潰了!遺言:{}'
+PARSER_UNKNOWN =
+'未知語法錯誤...'
+PARSER_MISS_NAME =
+'缺少名稱。 '
+PARSER_UNKNOWN_SYMBOL =
+'未知符號`{symbol}`。 '
+PARSER_MISS_SYMBOL =
+'缺少符號`{symbol}`。 '
+PARSER_MISS_ESC_X =
+'必須是2個16進制字元。 '
+PARSER_UTF8_SMALL =
+'至少有1個字元。 '
+PARSER_UTF8_MAX =
+'必須在{min} 與{max} 之間。 '
+PARSER_ERR_ESC =
+'錯誤的轉義符。 '
+PARSER_MUST_X16 =
+'必須是16進制字元。 '
+PARSER_MISS_EXPONENT =
+'缺少指數部分。 '
+PARSER_MISS_EXP =
+'缺少表達式。 '
+PARSER_MISS_FIELD =
+'缺少欄位/屬性名。 '
+PARSER_MISS_METHOD =
+'缺少方法名。 '
+PARSER_ARGS_AFTER_DOTS =
+'`...`必須是最後一個參數。 '
+PARSER_KEYWORD =
+'關鍵字無法作為名稱。 '
+PARSER_EXP_IN_ACTION =
+'該表達式不能作為語句。 '
+PARSER_BREAK_OUTSIDE =
+'`break`必須在循環內部。 '
+PARSER_MALFORMED_NUMBER =
+'無法構成有效數字。 '
+PARSER_ACTION_AFTER_RETURN =
+'`return`之後不能再執行程式碼。 '
+PARSER_ACTION_AFTER_BREAK =
+'`break`之後不能再執行程式碼。 '
+PARSER_NO_VISIBLE_LABEL =
+'標籤`{label}`不可見。 '
+PARSER_REDEFINE_LABEL =
+'標籤`{label}`重複定義。 '
+PARSER_UNSUPPORT_SYMBOL =
+'{version} 不支援該符號。 '
+PARSER_UNEXPECT_DOTS =
+'`...`只能在不定參函式中使用。 '
+PARSER_UNEXPECT_SYMBOL =
+'未知的符號`{symbol}` 。 '
+PARSER_UNKNOWN_TAG =
+'不支援的屬性。 '
+PARSER_MULTI_TAG =
+'只能設定一個屬性。 '
+PARSER_UNEXPECT_LFUNC_NAME =
+'區域函式只能使用標識符作為名稱。 '
+PARSER_UNEXPECT_EFUNC_NAME =
+'函式作為表達式時不能命名。 '
+PARSER_ERR_LCOMMENT_END =
+'應使用`{symbol}`來關閉多行註解。 '
+PARSER_ERR_C_LONG_COMMENT =
+'Lua應使用`--[[ ]]`來進行多行註解。 '
+PARSER_ERR_LSTRING_END =
+'應使用`{symbol}`來關閉長字串。 '
+PARSER_ERR_ASSIGN_AS_EQ =
+'應使用`=`來進行賦值操作。 '
+PARSER_ERR_EQ_AS_ASSIGN =
+'應使用`==`來進行等於判斷。 '
+PARSER_ERR_UEQ =
+'應使用`~=`來進行不等於判斷。 '
+PARSER_ERR_THEN_AS_DO =
+'應使用`then`。 '
+PARSER_ERR_DO_AS_THEN =
+'應使用`do`。 '
+PARSER_MISS_END =
+'缺少對應的`end`。 '
+PARSER_ERR_COMMENT_PREFIX =
+'Lua應使用`--`來進行註解。 '
+PARSER_MISS_SEP_IN_TABLE =
+'需要用`,`或`;`進行分割。 '
+PARSER_SET_CONST =
+'不能對常數賦值。 '
+PARSER_UNICODE_NAME =
+'包含了Unicode 字元。 '
+PARSER_ERR_NONSTANDARD_SYMBOL =
+'Lua中應使用符號`{symbol}`。 '
+PARSER_MISS_SPACE_BETWEEN =
+'符號之間必須保留空格'
+PARSER_INDEX_IN_FUNC_NAME =
+'命名函式的名稱中不能使用`[name]` 形式。 '
+PARSER_UNKNOWN_ATTRIBUTE =
+'區域變數屬性應該是`const` 或`close`'
+
+PARSER_LUADOC_MISS_CLASS_NAME =
+'缺少類別名稱。 '
+PARSER_LUADOC_MISS_EXTENDS_SYMBOL =
+'缺少符號`:`。 '
+PARSER_LUADOC_MISS_CLASS_EXTENDS_NAME =
+'缺少要繼承的類名稱。 '
+PARSER_LUADOC_MISS_SYMBOL =
+'缺少符號`{symbol}`。 '
+PARSER_LUADOC_MISS_ARG_NAME =
+'缺少參數名稱。 '
+PARSER_LUADOC_MISS_TYPE_NAME =
+'缺少類型名。 '
+PARSER_LUADOC_MISS_ALIAS_NAME =
+'缺少別名。 '
+PARSER_LUADOC_MISS_ALIAS_EXTENDS =
+'缺少別名定義。 '
+PARSER_LUADOC_MISS_PARAM_NAME =
+'缺少要指向的參數名稱。 '
+PARSER_LUADOC_MISS_PARAM_EXTENDS =
+'缺少參數的類型定義。 '
+PARSER_LUADOC_MISS_FIELD_NAME =
+'缺少欄位名稱。 '
+PARSER_LUADOC_MISS_FIELD_EXTENDS =
+'缺少欄位的類型定義。 '
+PARSER_LUADOC_MISS_GENERIC_NAME =
+'缺少泛型名稱。 '
+PARSER_LUADOC_MISS_GENERIC_EXTENDS_NAME =
+'缺少泛型要繼承的類別名稱。 '
+PARSER_LUADOC_MISS_VARARG_TYPE =
+'缺少不定參的類型定義。 '
+PARSER_LUADOC_MISS_FUN_AFTER_OVERLOAD =
+'缺少關鍵字`fun`。 '
+PARSER_LUADOC_MISS_CATE_NAME =
+'缺少文件類型名稱。 '
+PARSER_LUADOC_MISS_DIAG_MODE =
+'缺少診斷模式'
+PARSER_LUADOC_ERROR_DIAG_MODE =
+'診斷模式不正確'
+
+SYMBOL_ANONYMOUS =
+'<匿名函式>'
+
+HOVER_VIEW_DOCUMENTS =
+'查看文件'
+
+HOVER_DOCUMENT_LUA51 =
+'http://www.lua.org/manual/5.1/manual.html#{}'
+HOVER_DOCUMENT_LUA52 =
+'http://www.lua.org/manual/5.2/manual.html#{}'
+HOVER_DOCUMENT_LUA53 =
+'http://cloudwu.github.io/lua53doc/manual.html#{}'
+HOVER_DOCUMENT_LUA54 =
+'http://www.lua.org/manual/5.4/manual.html#{}'
+HOVER_DOCUMENT_LUAJIT =
+'http://www.lua.org/manual/5.1/manual.html#{}'
+
+HOVER_NATIVE_DOCUMENT_LUA51 =
+'command:extension.lua.doc?["en-us/51/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA52 =
+'command:extension.lua.doc?["en-us/52/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA53 =
+'command:extension.lua.doc?["zh-cn/53/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA54 =
+'command:extension.lua.doc?["en-us/54/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUAJIT =
+'command:extension.lua.doc?["en-us/51/manual.html/{}"]'
+
+HOVER_MULTI_PROTOTYPE =
+'({} 個原型)'
+HOVER_STRING_BYTES =
+'{} 個位元組'
+HOVER_STRING_CHARACTERS =
+'{} 個位元組,{} 個字元'
+HOVER_MULTI_DEF_PROTO =
+'({} 個定義,{} 個原型)'
+HOVER_MULTI_PROTO_NOT_FUNC =
+'({} 個非函式定義)'
+
+HOVER_USE_LUA_PATH =
+'(搜尋路徑: `{}`)'
+HOVER_EXTENDS =
+'展開為{}'
+HOVER_TABLE_TIME_UP =
+'出於效能考慮,已禁用了部分類型推斷。 '
+HOVER_WS_LOADING =
+'正在載入工作目錄:{} / {}'
+
+ACTION_DISABLE_DIAG =
+'在工作區禁用診斷({})。 '
+ACTION_MARK_GLOBAL =
+'標記`{}` 為已定義的全域變數。 '
+ACTION_REMOVE_SPACE =
+'清除所有後置空格。 '
+ACTION_ADD_SEMICOLON =
+'添加`;` 。 '
+ACTION_ADD_BRACKETS =
+'添加括號。 '
+ACTION_RUNTIME_VERSION =
+'修改執行版本為{} 。 '
+ACTION_OPEN_LIBRARY =
+'載入{} 中的全域變數。 '
+ACTION_ADD_DO_END =
+'添加`do ... end` 。 '
+ACTION_FIX_LCOMMENT_END =
+'改用正確的多行註解關閉符號。 '
+ACTION_ADD_LCOMMENT_END =
+'關閉多行註解。 '
+ACTION_FIX_C_LONG_COMMENT =
+'修改為Lua 的多行註解格式。 '
+ACTION_FIX_LSTRING_END =
+'改用正確的長字串關閉符號。 '
+ACTION_ADD_LSTRING_END =
+'關閉長字串。 '
+ACTION_FIX_ASSIGN_AS_EQ =
+'改為`=` 。 '
+ACTION_FIX_EQ_AS_ASSIGN =
+'改為`==` 。 '
+ACTION_FIX_UEQ =
+'改為`~=` 。 '
+ACTION_FIX_THEN_AS_DO =
+'改為`then` 。 '
+ACTION_FIX_DO_AS_THEN =
+'改為`do` 。 '
+ACTION_ADD_END =
+'添加`end` (根據縮排推測添加位置)。 '
+ACTION_FIX_COMMENT_PREFIX =
+'改為`--` 。 '
+ACTION_FIX_NONSTANDARD_SYMBOL =
+'改為`{symbol}`'
+ACTION_RUNTIME_UNICODE_NAME =
+'允許使用Unicode 字元。 '
+ACTION_SWAP_PARAMS =
+'將其改為`{node}` 的第{index} 個參數'
+ACTION_FIX_INSERT_SPACE =
+'插入空格'
+ACTION_JSON_TO_LUA =
+'把JSON 轉成Lua'
+ACTION_DISABLE_DIAG_LINE=
+'在此行禁用診斷({})。 '
+ACTION_DISABLE_DIAG_FILE=
+'在此檔案禁用診斷({})。 '
+ACTION_MARK_ASYNC =
+'將目前函式標記為異步。 '
+
+COMMAND_DISABLE_DIAG =
+'禁用診斷'
+COMMAND_MARK_GLOBAL =
+'標記全域變數'
+COMMAND_REMOVE_SPACE =
+'清除所有後置空格'
+COMMAND_ADD_BRACKETS =
+'添加括號'
+COMMAND_RUNTIME_VERSION =
+'修改執行版本'
+COMMAND_OPEN_LIBRARY =
+'載入第三方庫中的全域變數'
+COMMAND_UNICODE_NAME =
+'允許使用Unicode 字元'
+COMMAND_JSON_TO_LUA =
+'JSON 轉Lua'
+COMMAND_JSON_TO_LUA_FAILED =
+'JSON 轉Lua 失敗:{}'
+
+COMPLETION_IMPORT_FROM =
+'從{} 中導入'
+COMPLETION_DISABLE_AUTO_REQUIRE =
+'禁用自動require'
+COMPLETION_ASK_AUTO_REQUIRE =
+'在檔案頂部添加程式碼require 此檔案? '
+
+DEBUG_MEMORY_LEAK =
+'{} 很抱歉發生了嚴重的記憶體漏失,語言服務即將重啟。 '
+DEBUG_RESTART_NOW =
+'立即重啟'
+
+WINDOW_COMPILING =
+'正在編譯'
+WINDOW_DIAGNOSING =
+'正在診斷'
+WINDOW_INITIALIZING =
+'正在初始化...'
+WINDOW_PROCESSING_HOVER =
+'正在處理懸浮提示...'
+WINDOW_PROCESSING_DEFINITION =
+'正在處理轉到定義...'
+WINDOW_PROCESSING_REFERENCE =
+'正在處理轉到引用...'
+WINDOW_PROCESSING_RENAME =
+'正在處理重命名...'
+WINDOW_PROCESSING_COMPLETION =
+'正在處理自動完成...'
+WINDOW_PROCESSING_SIGNATURE =
+'正在處理參數提示...'
+WINDOW_PROCESSING_SYMBOL =
+'正在處理檔案符號...'
+WINDOW_PROCESSING_WS_SYMBOL =
+'正在處理工作區符號...'
+WINDOW_PROCESSING_SEMANTIC_FULL =
+'正在處理全量語義著色...'
+WINDOW_PROCESSING_SEMANTIC_RANGE =
+'正在處理差量語義著色...'
+WINDOW_PROCESSING_HINT =
+'正在處理內嵌提示...'
+WINDOW_INCREASE_UPPER_LIMIT =
+'增加上限'
+WINDOW_CLOSE =
+'關閉'
+WINDOW_SETTING_WS_DIAGNOSTIC =
+'你可以在設定中延遲或禁用工作目錄診斷'
+WINDOW_DONT_SHOW_AGAIN =
+'不再提示'
+WINDOW_DELAY_WS_DIAGNOSTIC =
+'空閒時診斷(延遲{}秒)'
+WINDOW_DISABLE_DIAGNOSTIC =
+'禁用工作區診斷'
+WINDOW_LUA_STATUS_WORKSPACE =
+'工作區:{}'
+WINDOW_LUA_STATUS_CACHED_FILES =
+'已快取檔案:{ast}/{max}'
+WINDOW_LUA_STATUS_MEMORY_COUNT =
+'記憶體佔用:{mem:.f}M'
+WINDOW_LUA_STATUS_TIP =
+[[
+
+這個圖標是貓,
+不是狗也不是狐狸!
+ ↓↓↓
+]]
+WINDOW_APPLY_SETTING =
+'套用設定'
+WINDOW_CHECK_SEMANTIC =
+'如果你正在使用商城中的顏色主題,你可能需要同時修改`editor.semanticHighlighting.enabled` 選項為`true` 才會使語義著色生效。 '
+WINDOW_TELEMETRY_HINT =
+'請允許發送匿名的使用資料與錯誤報告,幫助我們進一步完善此延伸模組。在[此處](https://github.com/sumneko/lua-language-server/wiki/%E9%9A%90%E7%A7%81%E5%A3%B0%E6%98%8E)閱讀我們的隱私聲明。 '
+WINDOW_TELEMETRY_ENABLE =
+'允許'
+WINDOW_TELEMETRY_DISABLE =
+'禁止'
+WINDOW_CLIENT_NOT_SUPPORT_CONFIG =
+'你的客戶端不支援從服務側修改設定,請手動修改如下設定:'
+WINDOW_LCONFIG_NOT_SUPPORT_CONFIG=
+'暫不支援自動修改本地設定,請手動修改如下設定:'
+WINDOW_MANUAL_CONFIG_ADD =
+'為`{key}` 添加值`{value:q}`;'
+WINDOW_MANUAL_CONFIG_SET =
+'將`{key}` 的值設定為`{value:q}`;'
+WINDOW_MANUAL_CONFIG_PROP =
+'將`{key}` 的屬性`{prop}` 設定為`{value:q}`;'
+WINDOW_APPLY_WHIT_SETTING =
+'套用並修改設定'
+WINDOW_APPLY_WHITOUT_SETTING =
+'套用但不修改設定'
+WINDOW_ASK_APPLY_LIBRARY =
+'是否需要將你的工作環境配置為`{}` ? '
+WINDOW_SEARCHING_IN_FILES =
+'正在檔案中搜尋...'
+
+CONFIG_LOAD_FAILED =
+'無法讀取設定檔:{}'
+CONFIG_LOAD_ERROR =
+'設定檔載入錯誤:{}'
+CONFIG_TYPE_ERROR =
+'設定檔必須是lua或json格式:{}'
+
+PLUGIN_RUNTIME_ERROR =
+[[
+延伸模組發生錯誤,請匯報給延伸模組作者。
+請在輸出或日誌中查看詳細訊息。
+延伸模組路徑:{}
+]]
+PLUGIN_TRUST_LOAD =
+[[
+目前設定試圖載入位於此位置的延伸模組:{}
+
+注意,惡意的延伸模組可能會危害您的電腦
+]]
+PLUGIN_TRUST_YES =
+[[
+信任並載入延伸模組
+]]
+PLUGIN_TRUST_NO =
+[[
+不要載入此延伸模組
+]]
+
+CLI_CHECK_ERROR_TYPE =
+'check 必須是一個字串,但是是一個{}'
+CLI_CHECK_ERROR_URI =
+'check 必須是一個有效的URI,但是是{}'
+CLI_CHECK_ERROR_LEVEL =
+'checklevel 必須是這些值之一:{}'
+CLI_CHECK_INITING =
+'正在初始化...'
+CLI_CHECK_SUCCESS =
+'診斷完成,沒有發現問題'
+CLI_CHECK_RESULTS =
+'診斷完成,共有{} 個問題,請查看{}'
diff --git a/locale/zh-tw/setting.lua b/locale/zh-tw/setting.lua
new file mode 100644
index 00000000..f2a6d0a8
--- /dev/null
+++ b/locale/zh-tw/setting.lua
@@ -0,0 +1,249 @@
+---@diagnostic disable: undefined-global
+
+config.runtime.version =
+"Lua執行版本。"
+config.runtime.path =
+[[
+當使用`require` 時,如何根據輸入的名字來查找檔案。
+此選項設定為`?/init.lua` 意味著當你輸入`require 'myfile'` 時,會從已載入的檔案中搜尋`{workspace}/myfile/init.lua`。
+當`runtime.pathStrict` 設定為`false` 時,還會嘗試搜尋`${workspace}/**/myfile/init.lua`。
+如果你想要載入工作區以外的檔案,你需要先設定`Lua.workspace.library`。
+]]
+config.runtime.pathStrict =
+'啟用後`runtime.path` 將只搜尋第一層目錄,見`runtime.path` 的說明。 '
+config.runtime.special =
+[[將自定義全域變數視為一些特殊的內置變數,語言服務將提供特殊的支援。
+下面這個例子表示將`include` 視為`require` 。
+```json
+"Lua.runtime.special" : {
+ "include" : "require"
+}
+```
+]]
+config.runtime.unicodeName =
+"允許在名字中使用Unicode 字元。"
+config.runtime.nonstandardSymbol =
+"支援非標準的符號。請務必確認你的執行環境支援這些符號。"
+config.runtime.plugin =
+"延伸模組路徑,請查閱[文件](https://github.com/sumneko/lua-language-server/wiki/Plugin)了解用法。"
+config.runtime.fileEncoding =
+"檔案編碼,`ansi` 選項只在`Windows` 平台下有效。"
+config.runtime.builtin =
+[[
+調整內置庫的啟用狀態,你可以根據實際執行環境禁用掉不存在的庫(或重新定義)。
+
+* `default`: 表示庫會根據執行版本啟用或禁用
+* `enable`: 總是啟用
+* `disable`: 總是禁用
+]]
+config.diagnostics.enable =
+"啟用診斷。"
+config.diagnostics.disable =
+"禁用的診斷(使用浮框括號內的程式碼)。"
+config.diagnostics.globals =
+"已定義的全域變數。"
+config.diagnostics.severity =
+"修改診斷等級。"
+config.diagnostics.neededFileStatus =
+[[
+* Opened: 只診斷打開的檔案
+* Any: 診斷任何檔案
+* Disable: 禁用此診斷
+]]
+config.diagnostics.workspaceDelay =
+"進行工作區診斷的延遲(毫秒)。當你啟動工作區,或編輯了任意檔案後,將會在後台對整個工作區進行重新診斷。設定為負數可以禁用工作區診斷。"
+config.diagnostics.workspaceRate =
+"工作區診斷的執行速率(百分比)。降低該值會減少CPU佔用,但是也會降低工作區診斷的速度。你目前正在編輯的檔案的診斷總是全速完成,不受該選項影響。"
+config.diagnostics.libraryFiles =
+"如何診斷通過`Lua.workspace.library` 載入的檔案。"
+config.diagnostics.ignoredFiles =
+"如何診斷被忽略的檔案。"
+config.diagnostics.files.Enable =
+"總是診斷這些檔案。"
+config.diagnostics.files.Opened =
+"只有打開這些檔案時才會診斷。"
+config.diagnostics.files.Disable =
+"不診斷這些檔案。"
+config.workspace.ignoreDir =
+"忽略的檔案與目錄(使用`.gitignore` 語法)。"
+config.workspace.ignoreSubmodules =
+"忽略子模組。"
+config.workspace.useGitIgnore =
+"忽略`.gitignore` 中列舉的檔案。"
+config.workspace.maxPreload =
+"最大預載入檔案數。 "
+config.workspace.preloadFileSize =
+"預載入時跳過大小大於該值(KB)的檔案。 "
+config.workspace.library =
+"除了目前工作區以外,還會從哪些目錄中載入檔案。這些目錄中的檔案將被視作外部提供的程式碼庫,部分操作(如重命名欄位)不會修改這些檔案。 "
+config.workspace.checkThirdParty =
+[[
+自動檢測與適配第三方庫,目前支援的庫為:
+
+* OpenResty
+* Cocos4.0
+* LÖVE
+* LÖVR
+* skynet
+* Jass
+]]
+config.workspace.userThirdParty =
+'在這裡添加私有的第三方庫適配檔案路徑,請參考內置的[配置檔案路徑](https://github.com/sumneko/lua-language-server/tree/master/meta/3rd)'
+config.completion.enable =
+'啟用自動完成。'
+config.completion.callSnippet =
+'顯示函式呼叫片段。'
+config.completion.callSnippet.Disable =
+"只顯示`函式名`。 "
+config.completion.callSnippet.Both =
+"顯示`函式名` 與`呼叫片段`。 "
+config.completion.callSnippet.Replace =
+"只顯示`呼叫片段`。 "
+config.completion.keywordSnippet =
+'顯示關鍵字語法片段'
+config.completion.keywordSnippet.Disable =
+"只顯示`關鍵字`。 "
+config.completion.keywordSnippet.Both =
+"顯示`關鍵字` 與`語法片段`。 "
+config.completion.keywordSnippet.Replace =
+"只顯示`語法片段`。 "
+config.completion.displayContext =
+"預覽建議的相關程式碼片段,可能可以幫助你了解這項建議的用法。設定的數字表示程式碼片段的截取行數,設定為`0`可以禁用此功能。 "
+config.completion.workspaceWord =
+"顯示的上下文單詞是否包含工作區中其他檔案的內容。 "
+config.completion.showWord =
+"在建議中顯示上下文單詞。 "
+config.completion.showWord.Enable =
+"總是在建議中顯示上下文單詞。 "
+config.completion.showWord.Fallback =
+"無法根據語義提供建議時才顯示上下文單詞。 "
+config.completion.showWord.Disable =
+"不顯示上下文單詞。 "
+config.completion.autoRequire =
+"輸入內容看起來是個檔名時,自動`require` 此檔案。 "
+config.completion.showParams =
+"在建議列表中顯示函式的參數訊息,函式擁有多個定義時會分開顯示。 "
+config.completion.requireSeparator =
+"`require` 時使用的分隔符。 "
+config.completion.postfix =
+"用於觸發後綴建議的符號。 "
+config.color.mode =
+"著色模式。 "
+config.color.mode.Semantic =
+"語義著色。你可能需要同時將`editor.semanticHighlighting.enabled` 設定為`true` 才能生效。 "
+config.color.mode.SemanticEnhanced =
+"增強的語義顏色。類似於`Semantic`,但會進行額外的分析(也會帶來額外的開銷)。 "
+config.color.mode.Grammar =
+"語法著色。 "
+config.semantic.enable =
+"啟用語義著色。你可能需要同時將`editor.semanticHighlighting.enabled` 設定為`true` 才能生效。 "
+config.semantic.variable =
+"對變數/欄位/參數進行語義著色。 "
+config.semantic.annotation =
+"對類型註解進行語義著色。 "
+config.semantic.keyword =
+"對關鍵字/字面常數/運算符進行語義著色。只有當你的編輯器無法進行語法著色時才需要啟用此功能。 "
+config.signatureHelp.enable =
+"啟用參數提示。 "
+config.hover.enable =
+"啟用懸浮提示。 "
+config.hover.viewString =
+"懸浮提示查看字串內容(僅當字面常數包含轉義符時)。 "
+config.hover.viewStringMax =
+"懸浮提示查看字串內容時的最大長度。 "
+config.hover.viewNumber =
+"懸浮提示查看數字內容(僅當字面常數不是十進制時)。 "
+config.hover.fieldInfer =
+"懸浮提示查看表時,會對錶的每個欄位進行類型推測,當類型推測的用時累計達到該設定值(毫秒)時,將跳過後續欄位的類型推測。 "
+config.hover.previewFields =
+"懸浮提示查看表時,限製表內欄位的最大預覽數量。 "
+config.hover.enumsLimit =
+"當值對應多個類型時,限制類型的顯示數量。 "
+config.develop.enable =
+'開發者模式。請勿開啟,會影響效能。'
+config.develop.debuggerPort =
+'除錯器監聽埠。'
+config.develop.debuggerWait =
+'除錯器連接之前掛起。'
+config.intelliSense.searchDepth =
+'設定智慧感知的搜尋深度。增大該值可以增加準確度,但會降低效能。不同的項目對該設定的容忍度差異較大,請自己調整為合適的值。'
+config.intelliSense.fastGlobal =
+'在對全域變數進行補全,及查看`_G` 的懸浮提示時進行最佳化。這會略微降低類型推測的準確度,但是對於大量使用全域變數的項目會有大幅的效能提升。'
+config.window.statusBar =
+'在狀態欄顯示延伸模組狀態。'
+config.window.progressBar =
+'在狀態欄顯示進度條。'
+config.hint.enable =
+'啟用內嵌提示。'
+config.hint.paramType =
+'在函式的參數位置提示類型。'
+config.hint.setType =
+'在賦值操作位置提示類型。'
+config.hint.paramName =
+'在函式呼叫處提示參數名。'
+config.hint.paramName.All =
+'所有類型的參數均進行提示。'
+config.hint.paramName.Literal =
+'只有字面常數類型的參數進行提示。'
+config.hint.paramName.Disable =
+'禁用參數提示。'
+config.hint.arrayIndex =
+'在構造表時提示數組索引。'
+config.hint.arrayIndex.Enable =
+'所有的表中都提示數組索引。'
+config.hint.arrayIndex.Auto =
+'只有表大於3項,或者表是混合類型時才進行提示。'
+config.hint.arrayIndex.Disable =
+'禁用數組索引提示。'
+config.format.enable =
+'啟用程式碼格式化程式。'
+config.telemetry.enable =
+[[
+啟用遙測,通過網路發送你的編輯器訊息與錯誤日誌。在[此處](https://github.com/s umneko/lua-language-server/wiki/%E9%9A%90%E7%A7%81%E5%A3%B0%E6%98%8E)閱讀我們的隱私聲明。
+]]
+config.misc.parameters =
+'VSCode中啟動語言服務時的[命令列參數](https://github.com/sumneko/lua-language-server/wiki/Command-line)。 '
+config.IntelliSense.traceLocalSet =
+'請查閱[文件](https://github.com/sumneko/lua-language-server/wiki/IntelliSense-optional-features)了解用法。 '
+config.IntelliSense.traceReturn =
+'請查閱[文件](https://github.com/sumneko/lua-language-server/wiki/IntelliSense-optional-features)了解用法。 '
+config.IntelliSense.traceBeSetted =
+'請查閱[文件](https://github.com/sumneko/lua-language-server/wiki/IntelliSense-optional-features)了解用法。 '
+config.IntelliSense.traceFieldInject =
+'請查閱[文件](https://github.com/sumneko/lua-language-server/wiki/IntelliSense-optional-features)了解用法。 '
+
+
+config.diagnostics['unused-local'] =
+'未使用的區域變數'
+config.diagnostics['unused-function'] =
+'未使用的函式'
+config.diagnostics['undefined-global'] =
+'未定義的全域變數'
+config.diagnostics['global-in-nil-env'] =
+'不能使用全域變數( `_ENV` 被設定為了`nil`)'
+config.diagnostics['unused-label'] =
+'未使用的標籤'
+config.diagnostics['unused-vararg'] =
+'未使用的不定參數'
+config.diagnostics['trailing-space'] =
+'後置空格'
+config.diagnostics['redefined-local'] =
+'重複定義的區域變數'
+config.diagnostics['newline-call'] =
+'以`(` 開始的新行,在語法上被解析為了上一行的函式呼叫'
+config.diagnostics['newfield-call'] =
+'在字面常數表中,2行程式碼之間缺少分隔符,在語法上被解析為了一次索引操作'
+config.diagnostics['redundant-parameter'] =
+'函式呼叫時,傳入了多餘的參數'
+config.diagnostics['ambiguity-1'] =
+'優先級歧義,如:`num or 0 + 1`,推測使用者的實際期望為`(num or 0) + 1` '
+config.diagnostics['lowercase-global'] =
+'首字母小寫的全域變數定義'
+config.diagnostics['undefined-env-child'] =
+'`_ENV` 被設定為了新的字面常數表,但是試圖獲取的全域變數不在這張表中'
+config.diagnostics['duplicate-index'] =
+'在字面常數表中重複定義了索引'
+config.diagnostics['empty-block'] =
+'空程式碼區塊'
+config.diagnostics['redundant-value'] =
+'賦值操作時,值的數量比被賦值的對像多'