diff --git a/changelog.md b/changelog.md index d929b7919..46cf64a79 100644 --- a/changelog.md +++ b/changelog.md @@ -4,6 +4,7 @@ * `FIX` cannot debug in Linux due to lua-debug expecting host process to have lua54 symbols available * `FIX` support hex color codes with `#` in `textDocument/documentColor` +* `CHG` fulfill zh-tw translations ## 3.14.0 `2025-4-7` diff --git a/locale/zh-tw/meta.lua b/locale/zh-tw/meta.lua index 8aa5656d9..b942c480f 100644 --- a/locale/zh-tw/meta.lua +++ b/locale/zh-tw/meta.lua @@ -4,7 +4,7 @@ arg = '獨立版Lua的啟動引數。' assert = -'如果其引數 `v` 的值為假( `nil` 或 `false` ),它就呼叫 $error ;否則,回傳所有的引數。在錯誤情況時, `message` 指那個錯誤對象;如果不提供這個引數,預設為 `"assertion failed!"` 。' +'如果其引數 `v` 的值為假( `nil` 或 `false` ),它就擲回 $error ;否則,回傳所有的引數。在發生錯誤時, `message` 是錯誤物件;如果不提供這個引數,預設為 `"assertion failed!"` 。' cgopt.collect = '做一次完整的垃圾回收循環。' @@ -28,14 +28,14 @@ cgopt.isrunning = '回傳表示回收器是否在工作的布林值。' collectgarbage = -'這個函式是垃圾回收器的一般介面。透過引數 opt 它提供了一組不同的功能。' +'這個函式是垃圾回收器的一般介面。它透過引數 opt 提供了一組不同的功能。' dofile = '打開該名字的檔案,並執行檔案中的 Lua 程式碼區塊。不帶引數呼叫時, `dofile` 執行標準輸入的內容(`stdin`)。回傳該程式碼區塊的所有回傳值。對於有錯誤的情況, `dofile` 將錯誤回饋給呼叫者(即 `dofile` 沒有執行在保護模式下)。' error = [[ -中止上一次保護函式呼叫,將錯誤對象 `message` 回傳。函式 `error` 永遠不會回傳。 +中止上一次保護函式呼叫,將錯誤物件 `message` 回傳。函式 `error` 永遠不會回傳。 當 `message` 是一個字串時,通常 `error` 會把一些有關出錯位置的資訊附加在訊息的開頭。 `level` 引數指明了怎樣獲得出錯位置。 ]] @@ -47,7 +47,7 @@ getfenv = '回傳給定函式的環境。 `f` 可以是一個Lua函式,也可是一個表示呼叫堆疊層級的數字。' getmetatable = -'如果 `object` 不包含中繼資料表,回傳 `nil` 。否則,如果在該物件的中繼資料表中有 `"__metatable"` 域時回傳其關聯值,沒有時回傳該對象的中繼資料表。' +'如果 `object` 不包含中繼資料表,回傳 `nil` 。否則,如果在該物件的中繼資料表中有 `"__metatable"` 欄位時回傳其關聯值,沒有時回傳該對象的中繼資料表。' ipairs = [[ @@ -75,7 +75,7 @@ load['>5.2'] = ]] loadfile = -'從檔案 `filename` 或標準輸入(如果檔名未提供)中獲取程式碼區塊。' +'從檔案 `filename` 或標準輸入(如果未提供檔名)中獲取程式碼區塊。' loadstring = '使用給定字串載入程式碼區塊。' @@ -134,20 +134,24 @@ setfenv = setmetatable = [[ -為指定的表設定中繼資料表。(你不能在 Lua 中改變其它類型值的中繼資料表,那些只能在 C 裡做。)如果 `metatable` 是 `nil`,將指定的表的中繼資料表移除。如果原來那張中繼資料表有 `"__metatable"` 域,擲回一個錯誤。 +為指定的表設定中繼資料表,如果 `metatable` 是 `nil`,則移除該表的中繼資料表。如果原來那張中繼資料表有 `"__metatable"` 欄位,則擲回一個錯誤。 + +這個函式回傳 `table`。 + +你必須使用除錯庫(參見§6.10)才能修改 Lua 中其他類型的中繼資料表。 ]] tonumber = [[ -如果呼叫的時候沒有 `base` , `tonumber` 嘗試把引數轉換為一個數字。如果引數已經是一個數字,或是一個可以轉換為數字的字串, `tonumber` 就回傳這個數字,否則回傳 `fail`。 +如果呼叫的時候沒有 `base` , `tonumber` 會嘗試把引數轉換為一個數字。如果引數已經是一個數字,或是一個可以轉換為數字的字串, `tonumber` 就回傳這個數字,否則回傳 `fail`。 字串的轉換結果可能是整數也可能是浮點數,這取決於 Lua 的轉換文法(參見 §3.1)。(字串可以有前置和後置的空格,可以帶符號。) ]] tostring = [[ -可以接收任何類型,它將其轉換為人可閱讀的字串形式。浮點數總被轉換為浮點數的表現形式(小數點形式或是指數形式)。 -如果 `v` 有 `"__tostring"` 域的中繼資料表, `tostring` 會以 `v` 為引數呼叫它。並用它的結果作為回傳值。 +可以將任何類型轉換為人可閱讀的字串形式。浮點數總被轉換為浮點數的表現形式(小數點形式或是指數形式)。 +如果 `v` 的中繼資料表有 `"__tostring"` 欄位, `tostring` 會以 `v` 為引數呼叫它。並用它的結果作為回傳值。 如果想完全控制數字如何被轉換,可以使用 $string.format 。 ]] @@ -285,7 +289,7 @@ debug.setcstacklimit = 設定新的C堆疊限制。該限制控制Lua中巢狀呼叫的深度,以避免堆疊溢出。 -如果設定成功,該函式回傳之前的限制;否則回傳`false`。 +如果設定成功,該函式回傳之前的限制;否則回傳 `false`。 ]] debug.setfenv = '將 `table` 設定為 `object` 的環境。' @@ -375,7 +379,7 @@ seekwhence['.end'] = '基點為檔案尾。' vbuf.no = -'不緩衝;輸出操作立刻生效。' +'不緩衝;輸出操作即時生效。' vbuf.full = '完全緩衝;只有在快取滿或呼叫 flush 時才做輸出操作。' vbuf.line = @@ -445,9 +449,9 @@ openmode['.a+b'] = '追加更新模式,所有之前的資料都保留,只允許在檔案尾部做寫入。(二進制方式)' popenmode.r = -'從這個程式中讀取資料。(二進制方式)' +'從這個程式讀取資料。(二進制方式)' popenmode.w = -'向這個程式寫入輸入。(二進制方式)' +'向這個程式寫入資料。(二進制方式)' filetype.file = '是一個打開的檔案控制代碼。' @@ -493,7 +497,7 @@ math.ldexp = math.log['<5.1'] = '回傳 `x` 的自然對數。' math.log['>5.2'] = -'回以指定底的 `x` 的對數。' +'回傳指定底的 `x` 的對數。' math.log10 = '回傳 `x` 的以10為底的對數。' math.max = @@ -541,7 +545,7 @@ math.tointeger['>5.3'] = math.type['>5.3'] = '如果 `x` 是整數,回傳 `"integer"` ,如果它是浮點數,回傳 `"float"` ,如果 `x` 不是數字,回傳 `nil` 。' math.ult['>5.3'] = -'整數 `m` 和 `n` 以無符號整數形式比較,如果 `m` 在 `n` 之下則回傳布林真,否則回傳假。' +'整數 `m` 和 `n` 以無符號整數形式比較,如果 `m` 小於 `n` 則回傳布林真,否則回傳假。' os = '' @@ -562,7 +566,7 @@ os.getenv = os.remove = '刪除指定名字的檔案。' os.rename = -'將名字為 `oldname` 的檔案或目錄更名為 `newname`。' +'將名字為 `oldname` 的檔案或資料夾重新命名為 `newname`。' os.setlocale = '設定程式的目前區域。' os.time = @@ -595,7 +599,7 @@ package = require['<5.3'] = '載入一個模組,回傳該模組的回傳值( `nil` 時為 `true` )。' require['>5.4'] = -'載入一個模組,回傳該模組的回傳值( `nil` 時為 `true` )與搜尋器回傳的載入資料。預設搜尋器的載入資料指示了載入位置,對於檔案來説就是檔案路徑。' +'載入一個模組,回傳該模組的回傳值( `nil` 時為 `true` )與搜尋器回傳的載入資料。預設搜尋器的載入資料指示了載入位置,對於檔案來說就是檔案路徑。' package.config = '一個描述一些為包管理準備的編譯時期組態的字串。' @@ -623,7 +627,7 @@ string = string.byte = '回傳字元 `s[i]` 、 `s[i+1]` ... `s[j]` 的內部數字編碼。' string.char = -'接收零或更多的整數,回傳和引數數量相同長度的字串。其中每個字元的內部編碼值等於對應的引數值。' +'回傳和引數數量相同長度的字串。其中每個字元的內部編碼值等於對應的引數值。' string.dump = '回傳包含有以二進制方式表示的(一個 *二進制程式碼區塊* )指定函式的字串。' string.find = @@ -632,7 +636,7 @@ string.format = '回傳不定數量引數的格式化版本,格式化字串為第一個引數。' string.gmatch = [[ -回傳一個疊代器函式。每次呼叫這個函式都會繼續以 `pattern` (參見 §6.4.1)對 s 做配對,並回傳所有捕獲到的值。 +回傳一個疊代器函式。每次呼叫這個函式都會繼續以 `pattern` (參見 §6.4.1)對 s 做配對,並回傳所有捕獲到的值。 下面這個例子會循環疊代字串 s 中所有的單詞, 並逐行列印: ```lua @@ -644,7 +648,7 @@ string.gmatch = ``` ]] string.gsub = -'將字串 s 中,所有的(或是在 n 給出時的前 n 個) `pattern` (參見 §6.4.1)都替換成 `repl` ,並回傳其副本。' +'將字串 s 中,所有的(或是有提供 n 時的前 n 個) `pattern` (參見 §6.4.1)都替換成 `repl` ,並回傳其副本。' string.len = '回傳其長度。' string.lower = @@ -656,11 +660,11 @@ string.pack = string.packsize = [[回傳以指定格式用 $string.pack 壓縮的字串的長度。格式化字串中不可以有變長選項 's' 或 'z' (參見 §6.4.2)。]] string.rep['>5.2'] = -'回傳 `n` 個字串 `s` 以字串 `sep` 為分割符連在一起的字串。預設的 `sep` 值為空字串(即沒有分割符)。如果 `n` 不是正數則回傳空字串。' +'回傳 `n` 個由字串 `s` 以字串 `sep` 為分割符連在一起的字串。預設的 `sep` 值為空字串(即沒有分割符)。如果 `n` 不是正數則回傳空字串。' string.rep['<5.1'] = -'回傳 `n` 個字串 `s` 連在一起的字串。如果 `n` 不是正數則回傳空字串。' +'回傳 `n` 個由字串 `s` 連在一起的字串。如果 `n` 不是正數則回傳空字串。' string.reverse = -'回傳字串 s 的反轉字串。' +'回傳字串 `s` 的反轉字串。' string.sub = '回傳一個從 `i` 開始並在 `j` 結束的子字串。' string.unpack = @@ -700,9 +704,9 @@ table.unpack = i 預設為 1 , j 預設為 #list。 ]] table.foreach = -'走訪表中的每一個元素,並以key和value執行回呼函式。如果回呼函式回傳一個非nil值則循環終止,並且回傳這個值。該函式等同pair(list),比pair(list)更慢。不推薦使用。' +'走訪表中的每一個元素,並以key和value執行回呼函式。如果回呼函式回傳一個非nil值則終止迴圈,並且回傳這個值。該函式等同pair(list),比pair(list)更慢,不推薦使用。' table.foreachi = -'走訪表中的每一個元素,並以索引號index和value執行回呼函式。如果回呼函式回傳一個非nil值則循環終止,並且回傳這個值。該函式等同ipair(list),比ipair(list)更慢。不推薦使用。' +'走訪表中的每一個元素,並以索引號index和value執行回呼函式。如果回呼函式回傳一個非nil值則終止迴圈,並且回傳這個值。該函式等同ipair(list),比ipair(list)更慢,不推薦使用。' table.getn = '回傳表的長度。該函式等價於#list。' table.new = diff --git a/locale/zh-tw/script.lua b/locale/zh-tw/script.lua index e2618f374..27613739c 100644 --- a/locale/zh-tw/script.lua +++ b/locale/zh-tw/script.lua @@ -37,7 +37,7 @@ DIAG_OVER_MAX_ARGS = DIAG_MISS_ARGS = '函式最少接收 {:d} 個引數,但獲得了 {:d} 個。' DIAG_UNNECESSARY_ASSERT = -'不必要的斷言:此表達式始終為真值。' +'不必要的斷言:此陳述式始終為真。' DIAG_OVER_MAX_VALUES = '只有 {} 個變數,但你設定了 {} 個值。' DIAG_AMBIGUITY_1 = @@ -73,11 +73,11 @@ 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` 。' +'由於值的數量不夠而賦值了 `nil` 。在Lua中, `x, y = 1` 等價於 `x, y = 1, nil` 。' DIAG_REQUIRE_LIKE = '你可以在設定中將 `{}` 視為 `require`。' DIAG_COSE_NON_OBJECT = @@ -116,22 +116,22 @@ DIAG_UNDEFINED_DOC_NAME = '未定義的類型或別名 `{}`。' DIAG_UNDEFINED_DOC_PARAM = '指向了未定義的參數 `{}`。' -DIAG_MISSING_GLOBAL_DOC_COMMENT = -- TODO: need translate! -'Missing comment for global function `{}`.' -DIAG_MISSING_GLOBAL_DOC_PARAM = -- TODO: need translate! -'Missing @param annotation for parameter `{}` in global function `{}`.' -DIAG_MISSING_GLOBAL_DOC_RETURN = -- TODO: need translate! -'Missing @return annotation at index `{}` in global function `{}`.' -DIAG_MISSING_LOCAL_EXPORT_DOC_COMMENT = -- TODO: need translate! -'Missing comment for exported local function `{}`.' -DIAG_MISSING_LOCAL_EXPORT_DOC_PARAM = -- TODO: need translate! -'Missing @param annotation for parameter `{}` in exported local function `{}`.' -DIAG_MISSING_LOCAL_EXPORT_DOC_RETURN = -- TODO: need translate! -'Missing @return annotation at index `{}` in exported local function `{}`.' -DIAG_INCOMPLETE_SIGNATURE_DOC_PARAM = -- TODO: need translate! -'Incomplete signature. Missing @param annotation for parameter `{}`.' -DIAG_INCOMPLETE_SIGNATURE_DOC_RETURN = -- TODO: need translate! -'Incomplete signature. Missing @return annotation at index `{}`.' +DIAG_MISSING_GLOBAL_DOC_COMMENT = +'全域函式 `{}` 缺少註解。' +DIAG_MISSING_GLOBAL_DOC_PARAM = +'全域函式 `{2}` 的參數 `{1}` 缺少 @param 標註。' +DIAG_MISSING_GLOBAL_DOC_RETURN = +'全域函式 `{2}` 的第 `{1}` 個回傳值缺少 @return 標註。' +DIAG_MISSING_LOCAL_EXPORT_DOC_COMMENT = +'輸出的區域函式 `{}` 缺少註解。' +DIAG_MISSING_LOCAL_EXPORT_DOC_PARAM = +'輸出的區域函式 `{2}` 的參數 `{1}` 缺少 @param 標註。' +DIAG_MISSING_LOCAL_EXPORT_DOC_RETURN = +'輸出的區域函式 `{2}` 的第 {1} 個回傳值缺少 @return 標註。' +DIAG_INCOMPLETE_SIGNATURE_DOC_PARAM = +'簽名不完整。參數 `{1}` 缺少 @param 標註。' +DIAG_INCOMPLETE_SIGNATURE_DOC_RETURN = +'簽名不完整。第 {1} 個回傳值缺少 @return 標註。' DIAG_UNKNOWN_DIAG_CODE = '未知的診斷代碼 `{}`。' DIAG_CAST_LOCAL_TYPE = @@ -158,35 +158,35 @@ DIAG_MISSING_RETURN = '此處需要回傳值。' DIAG_RETURN_TYPE_MISMATCH = '第 {index} 個回傳值的類型為 `{def}` ,但實際回傳的是 `{ref}`。\n{err}' -DIAG_UNKNOWN_OPERATOR = -- TODO: need translate! -'Unknown operator `{}`.' -DIAG_UNREACHABLE_CODE = -- TODO: need translate! -'Unreachable code.' -DIAG_INVISIBLE_PRIVATE = -- TODO: need translate! -'Field `{field}` is private, it can only be accessed in class `{class}`.' -DIAG_INVISIBLE_PROTECTED = -- TODO: need translate! -'Field `{field}` is protected, it can only be accessed in class `{class}` and its subclasses.' -DIAG_INVISIBLE_PACKAGE = -- TODO: need translate! -'Field `{field}` can only be accessed in same file `{uri}`.' -DIAG_GLOBAL_ELEMENT = -- TODO: need translate! -'Element is global.' -DIAG_MISSING_FIELDS = -- TODO: need translate! -'Missing required fields in type `{1}`: {2}' -DIAG_INJECT_FIELD = -- TODO: need translate! -'Fields cannot be injected into the reference of `{class}` for `{field}`. {fix}' -DIAG_INJECT_FIELD_FIX_CLASS = -- TODO: need translate! -'To do so, use `---@class` for `{node}`.' -DIAG_INJECT_FIELD_FIX_TABLE = -- TODO: need translate! -'如要允许注入,请在定义中添加 `{fix}` 。' +DIAG_UNKNOWN_OPERATOR = +'未知的運算子 `{}`。' +DIAG_UNREACHABLE_CODE = +'無法到達的程式碼。' +DIAG_INVISIBLE_PRIVATE = +'欄位 `{field}` 是私有層級,只能在 `{class}` 類別中才能存取。' +DIAG_INVISIBLE_PROTECTED = +'欄位 `{field}` 是保護層級,只能在 `{class}` 類別及其子類別中才能存取。' +DIAG_INVISIBLE_PACKAGE = +'欄位 `{field}` 只能在同樣的檔案 `{uri}` 中存取。' +DIAG_GLOBAL_ELEMENT = +'全域元素。' +DIAG_MISSING_FIELDS = +'缺少類型 `{1}` 的必要欄位: {2}' +DIAG_INJECT_FIELD = +'不能在 `{class}` 的引用中注入欄位 `{field}` 。{fix}' +DIAG_INJECT_FIELD_FIX_CLASS = +'如果要允許注入,請對 `{node}` 使用 `{fix}` 。' +DIAG_INJECT_FIELD_FIX_TABLE = +'如果要允許注入,請在定義中添加 `{fix}` 。' MWS_NOT_SUPPORT = -'{} 目前還不支援多工作目錄,我可能需要重新啟動才能支援新的工作目錄...' +'{} 目前還不支援多工作目錄,我可能需要重新啟動才能支援新的工作目錄…' MWS_RESTART = '重新啟動' MWS_NOT_COMPLETE = -'工作目錄還沒有準備好,你可以稍後再試一下...' +'工作目錄還沒有準備好,你可以稍後再試一下…' MWS_COMPLETE = -'工作目錄準備好了,你可以再試一下了...' +'工作目錄準備好了,你可以再試一下了' MWS_MAX_PRELOAD = '預載入檔案數已達上限({}),你需要手動打開需要載入的檔案。' MWS_UCONFIG_FAILED = @@ -206,13 +206,13 @@ WORKSPACE_SKIP_HUGE_FILE = '出於效能考慮,已停止對此檔案解析:{}' WORKSPACE_NOT_ALLOWED = '你的工作目錄被設定為了 `{}` ,Lua語言伺服拒絕載入此目錄,請檢查你的設定檔。[了解更多](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder)' -WORKSPACE_SCAN_TOO_MUCH = -- TODO: need translate! -'已掃描了超過 {} 個檔案,目前掃描的目錄為 `{}`. Please see the [FAQ](https://luals.github.io/wiki/faq#how-can-i-improve-startup-speeds) to see how you can include fewer files. It is also possible that your [configuration is incorrect](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder).' +WORKSPACE_SCAN_TOO_MUCH = +'已掃描了超過 {} 個檔案,目前掃描的目錄為 `{}`。請檢視[FAQ](https://luals.github.io/wiki/faq#how-can-i-improve-startup-speeds)以便了解你要如何引入更少檔案。也有可能你的[組態是錯的](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder)。' PARSER_CRASH = '語法解析崩潰了!遺言:{}' PARSER_UNKNOWN = -'未知語法錯誤...' +'未知語法錯誤…' PARSER_MISS_NAME = '缺少名稱。' PARSER_UNKNOWN_SYMBOL = @@ -238,13 +238,13 @@ PARSER_MISS_FIELD = PARSER_MISS_METHOD = '缺少方法名。' PARSER_ARGS_AFTER_DOTS = -'`...`必須是最後一個引數。' +'`...` 必須是最後一個引數。' PARSER_KEYWORD = '關鍵字無法作為名稱。' PARSER_EXP_IN_ACTION = '該表達式不能作為敘述。' PARSER_BREAK_OUTSIDE = -'`break`必須在循環內部。' +'`break`必須在迴圈內部。' PARSER_MALFORMED_NUMBER = '無法構成有效數字。' PARSER_ACTION_AFTER_RETURN = @@ -258,7 +258,7 @@ PARSER_REDEFINE_LABEL = PARSER_UNSUPPORT_SYMBOL = '{version} 不支援該符號。' PARSER_UNEXPECT_DOTS = -'`...`只能在不定參函式中使用。' +'`...` 只能在不定參函式中使用。' PARSER_UNEXPECT_SYMBOL = '未知的符號 `{symbol}` 。' PARSER_UNKNOWN_TAG = @@ -303,14 +303,14 @@ PARSER_INDEX_IN_FUNC_NAME = '命名函式的名稱中不能使用 `[name]` 形式。' PARSER_UNKNOWN_ATTRIBUTE = '區域變數屬性應該是 `const` 或 `close` 。' -PARSER_AMBIGUOUS_SYNTAX = -- TODO: need translate! -'在 Lua 5.1 中,函数调用的左括号必须与函数在同一行。' -PARSER_NEED_PAREN = -- TODO: need translate! -'需要添加一对括号。' -PARSER_NESTING_LONG_MARK = -- TODO: need translate! -'Nesting of `[[...]]` is not allowed in Lua 5.1 .' -PARSER_LOCAL_LIMIT = -- TODO: need translate! -'Only 200 active local variables and upvalues can be existed at the same time.' +PARSER_AMBIGUOUS_SYNTAX = +'在 Lua 5.1 中,呼叫函式的左括號和函式必須在同一行。' +PARSER_NEED_PAREN = +'需要添加一對括號。' +PARSER_NESTING_LONG_MARK = +'Lua 5.1 不允許使用巢狀的 `[[...]]` 。' +PARSER_LOCAL_LIMIT = +'只能同時存在200個活躍的區域變數與上值。' PARSER_LUADOC_MISS_CLASS_NAME = '缺少類別名稱。' PARSER_LUADOC_MISS_EXTENDS_SYMBOL = @@ -456,10 +456,10 @@ ACTION_MARK_ASYNC = '將目前函式標記為非同步。' ACTION_ADD_DICT = '添加 \'{}\' 到工作區字典' -ACTION_FIX_ADD_PAREN = -- TODO: need translate! -'添加括号。' -ACTION_AUTOREQUIRE = -- TODO: need translate! -"Import '{}' as {}" +ACTION_FIX_ADD_PAREN = +'添加括號。' +ACTION_AUTOREQUIRE = +"引入 '{}' 作為 {}" COMMAND_DISABLE_DIAG = '停用診斷' @@ -481,8 +481,8 @@ COMMAND_JSON_TO_LUA_FAILED = 'JSON 轉 Lua 失敗:{}' COMMAND_ADD_DICT = '添加單字到字典裡' -COMMAND_REFERENCE_COUNT = -- TODO: need translate! -'{} references' +COMMAND_REFERENCE_COUNT = +'{} 個參考' COMPLETION_IMPORT_FROM = '從 {} 中匯入' @@ -501,31 +501,31 @@ 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_PROCESSING_BUILD_META = -- TODO: need translate! -'Processing build meta...' +'正在處理內嵌提示…' +WINDOW_PROCESSING_BUILD_META = +'正在處理編譯器中繼資料…' WINDOW_INCREASE_UPPER_LIMIT = '增加上限' WINDOW_CLOSE = @@ -582,15 +582,15 @@ WINDOW_APPLY_WHITOUT_SETTING = WINDOW_ASK_APPLY_LIBRARY = '是否需要將你的工作環境配置為 `{}` ?' WINDOW_SEARCHING_IN_FILES = -'正在檔案中搜尋...' -WINDOW_CONFIG_LUA_DEPRECATED = -- TODO: need translate! -'`config.lua` is deprecated, please use `config.json` instead.' -WINDOW_CONVERT_CONFIG_LUA = -- TODO: need translate! -'Convert to `config.json`' -WINDOW_MODIFY_REQUIRE_PATH = -- TODO: need translate! -'Do you want to modify the require path?' -WINDOW_MODIFY_REQUIRE_OK = -- TODO: need translate! -'Modify' +'正在檔案中搜尋…' +WINDOW_CONFIG_LUA_DEPRECATED = +'`config.lua` 已棄用,請改用 `config.json` 。' +WINDOW_CONVERT_CONFIG_LUA = +'轉換為 `config.json`' +WINDOW_MODIFY_REQUIRE_PATH = +'你想要修改 `require` 的路徑嗎?' +WINDOW_MODIFY_REQUIRE_OK = +'修改' CONFIG_LOAD_FAILED = '無法讀取設定檔案:{}' @@ -598,22 +598,22 @@ CONFIG_LOAD_ERROR = '設定檔案載入錯誤:{}' CONFIG_TYPE_ERROR = '設定檔案必須是lua或json格式:{}' -CONFIG_MODIFY_FAIL_SYNTAX_ERROR = -- TODO: need translate! -'Failed to modify settings, there are syntax errors in the settings file: {}' -CONFIG_MODIFY_FAIL_NO_WORKSPACE = -- TODO: need translate! +CONFIG_MODIFY_FAIL_SYNTAX_ERROR = +'修改設定失敗,設定檔中有語法錯誤:{}' +CONFIG_MODIFY_FAIL_NO_WORKSPACE = [[ -Failed to modify settings: -* The current mode is single-file mode, server cannot create `.luarc.json` without workspace. -* The language client dose not support modifying settings from the server side. +修改設定失敗: +* 目前模式為單一檔案模式,伺服器只能在工作區中新增 `.luarc.json` 檔案。 +* 語言用戶端不支援從伺服端修改設定。 -Please modify following settings manually: +請手動修改以下設定: {} ]] -CONFIG_MODIFY_FAIL = -- TODO: need translate! +CONFIG_MODIFY_FAIL = [[ -Failed to modify settings +修改設定失敗 -Please modify following settings manually: +請手動修改以下設定: {} ]] @@ -645,58 +645,58 @@ CLI_CHECK_ERROR_URI = CLI_CHECK_ERROR_LEVEL = 'checklevel 必須是這些值之一:{}' CLI_CHECK_INITING = -'正在初始化...' +'正在初始化…' CLI_CHECK_SUCCESS = '診斷完成,沒有發現問題' -CLI_CHECK_PROGRESS = -- TODO: need translate! -'Found {} problems in {} files' +CLI_CHECK_PROGRESS = +'在檔案 {2} 中檢測到問題 {1}' CLI_CHECK_RESULTS_OUTPATH = '診斷完成,共有 {} 個問題,請查看 {}' CLI_CHECK_RESULTS_PRETTY = '診斷完成,共有 {} 個問題' -CLI_CHECK_MULTIPLE_WORKERS = -- TODO: need translate! -'Starting {} worker tasks, progress output will be disabled. This may take a few minutes.' -CLI_DOC_INITING = -- TODO: need translate! -'Loading documents ...' -CLI_DOC_DONE = -- TODO: need translate! -'Document exporting completed!' +CLI_CHECK_MULTIPLE_WORKERS = +'開始 {} 個工作任務,將會停用進度輸出。這可能會花費幾分鐘。' +CLI_DOC_INITING = +'文件載入中…' +CLI_DOC_DONE = +'文件輸出完成!' CLI_DOC_WORKING = -'正在產生文件...' - -TYPE_ERROR_ENUM_GLOBAL_DISMATCH = -- TODO: need translate! -'Type `{child}` cannot match enumeration type of `{parent}`' -TYPE_ERROR_ENUM_GENERIC_UNSUPPORTED = -- TODO: need translate! -'Cannot use generic `{child}` in enumeration' -TYPE_ERROR_ENUM_LITERAL_DISMATCH = -- TODO: need translate! -'Literal `{child}` cannot match the enumeration value of `{parent}`' -TYPE_ERROR_ENUM_OBJECT_DISMATCH = -- TODO: need translate! -'The object `{child}` cannot match the enumeration value of `{parent}`. They must be the same object' -TYPE_ERROR_ENUM_NO_OBJECT = -- TODO: need translate! -'The passed in enumeration value `{child}` is not recognized' -TYPE_ERROR_INTEGER_DISMATCH = -- TODO: need translate! -'Literal `{child}` cannot match integer `{parent}`' -TYPE_ERROR_STRING_DISMATCH = -- TODO: need translate! -'Literal `{child}` cannot match string `{parent}`' -TYPE_ERROR_BOOLEAN_DISMATCH = -- TODO: need translate! -'Literal `{child}` cannot match boolean `{parent}`' -TYPE_ERROR_TABLE_NO_FIELD = -- TODO: need translate! -'Field `{key}` does not exist in the table' -TYPE_ERROR_TABLE_FIELD_DISMATCH = -- TODO: need translate! -'The type of field `{key}` is `{child}`, which cannot match `{parent}`' -TYPE_ERROR_CHILD_ALL_DISMATCH = -- TODO: need translate! -'All subtypes in `{child}` cannot match `{parent}`' -TYPE_ERROR_PARENT_ALL_DISMATCH = -- TODO: need translate! -'`{child}` cannot match any subtypes in `{parent}`' -TYPE_ERROR_UNION_DISMATCH = -- TODO: need translate! -'`{child}` cannot match `{parent}`' -TYPE_ERROR_OPTIONAL_DISMATCH = -- TODO: need translate! -'Optional type cannot match `{parent}`' -TYPE_ERROR_NUMBER_LITERAL_TO_INTEGER = -- TODO: need translate! -'The number `{child}` cannot be converted to an integer' -TYPE_ERROR_NUMBER_TYPE_TO_INTEGER = -- TODO: need translate! -'Cannot convert number type to integer type' -TYPE_ERROR_DISMATCH = -- TODO: need translate! -'Type `{child}` cannot match `{parent}`' +'正在產生文件…' + +TYPE_ERROR_ENUM_GLOBAL_DISMATCH = +'類型 `{child}` 不符合 `{parent}` 的列舉類型' +TYPE_ERROR_ENUM_GENERIC_UNSUPPORTED = +'無法在列舉中使用泛型 `{child}`' +TYPE_ERROR_ENUM_LITERAL_DISMATCH = +'字面常數 `{child}` 不符合 `{parent}` 的列舉值' +TYPE_ERROR_ENUM_OBJECT_DISMATCH = +'物件 `{child}` 不符合 `{parent}` 的列舉值,它們必須是同一個物件' +TYPE_ERROR_ENUM_NO_OBJECT = +'無法識別傳入的列舉值 `{child}`' +TYPE_ERROR_INTEGER_DISMATCH = +'字面常數 `{child}` 不符合整數 `{parent}`' +TYPE_ERROR_STRING_DISMATCH = +'字面常數 `{child}` 不符合字串 `{parent}`' +TYPE_ERROR_BOOLEAN_DISMATCH = +'字面常數 `{child}` 不符合布林值 `{parent}`' +TYPE_ERROR_TABLE_NO_FIELD = +'表中不存在欄位 `{key}`' +TYPE_ERROR_TABLE_FIELD_DISMATCH = +'欄位 `{key}` 的類型是 `{child}`,無法匹配 `{parent}`' +TYPE_ERROR_CHILD_ALL_DISMATCH = +'`{child}` 的所有子類型皆無法匹配 `{parent}`' +TYPE_ERROR_PARENT_ALL_DISMATCH = +'`{child}` 無法匹配 `{parent}` 中的任何子類型' +TYPE_ERROR_UNION_DISMATCH = +'`{child}` 無法匹配 `{parent}`' +TYPE_ERROR_OPTIONAL_DISMATCH = +'可選類型不符合 `{parent}`' +TYPE_ERROR_NUMBER_LITERAL_TO_INTEGER = +'無法將數字 `{child}` 轉換成整數' +TYPE_ERROR_NUMBER_TYPE_TO_INTEGER = +'無法將數字類型轉換為整數類型' +TYPE_ERROR_DISMATCH = +'類型 `{child}` 無法匹配 `{parent}`' LUADOC_DESC_CLASS = [=[ @@ -980,7 +980,7 @@ function concat(...) end ]=] LUADOC_DESC_OVERLOAD = [=[ -允許定義多個函數簽章。 +允許定義多個函式簽章。 ## 語法 `---@overload fun([: ] [, [: ]]...)[: [, ]...]` @@ -1152,15 +1152,15 @@ print(x) --> table --- [檢視文件](https://luals.github.io/wiki/annotations#cast) ]=] -LUADOC_DESC_OPERATOR = -- TODO: need translate! +LUADOC_DESC_OPERATOR = [=[ -Provide type declaration for [operator metamethods](http://lua-users.org/wiki/MetatableEvents). +為 [運算子元方法](http://lua-users.org/wiki/MetatableEvents) 提供類型聲明 -## Syntax +## 語法 `@operator [(input_type)]:` -## Usage -### Vector Add Metamethod +## 用法 +### 向量加法元方法 ``` ---@class Vector ---@operator add(Vector):Vector @@ -1171,7 +1171,7 @@ vB = Vector.new(10, 20, 30) vC = vA + vB --> Vector ``` -### Unary Minus +### 一元減法 ``` ---@class Passcode ---@operator unm:integer @@ -1180,18 +1180,17 @@ pA = Passcode.new(1234) pB = -pA --> integer ``` -[View Request](https://github.com/LuaLS/lua-language-server/issues/599) +[檢視請求](https://github.com/LuaLS/lua-language-server/issues/599) ]=] -LUADOC_DESC_ENUM = -- TODO: need translate! +LUADOC_DESC_ENUM = [=[ -Mark a table as an enum. If you want an enum but can't define it as a Lua -table, take a look at the [`@alias`](https://luals.github.io/wiki/annotations#alias) -tag. +將表標記為列舉。如果你想要一個列舉但是無法將其定義為 Lua 表,看一眼 [`@alias`](https://luals.github.io/wiki/annotations#alias) +標籤。 -## Syntax +## 語法 `@enum ` -## Usage +## 用法 ``` ---@enum colors local colors = { @@ -1209,15 +1208,14 @@ local function setColor(color) end setColor(colors.green) ``` ]=] -LUADOC_DESC_SOURCE = -- TODO: need translate! +LUADOC_DESC_SOURCE = [=[ -Provide a reference to some source code which lives in another file. When -searching for the definition of an item, its `@source` will be used. +提供一個其他檔案中原始碼的引用。當查找某一項的定義時,將會使用它的 `@source`。 -## Syntax +## 語法 `@source ` -## Usage +## 用法 ``` ---You can use absolute paths ---@source C:/Users/me/Documents/program/myFile.c @@ -1236,15 +1234,14 @@ local c local d ``` ]=] -LUADOC_DESC_PACKAGE = -- TODO: need translate! +LUADOC_DESC_PACKAGE = [=[ -Mark a function as private to the file it is defined in. A packaged function -cannot be accessed from another file. +將函式標註為其所處檔案的私有成員。一個打包的函式不可以被其他檔案存取。 -## Syntax +## 語法 `@package` -## Usage +## 用法 ``` ---@class Animal ---@field private eyes integer @@ -1257,15 +1254,14 @@ function Animal:eyesCount() end ``` ]=] -LUADOC_DESC_PRIVATE = -- TODO: need translate! +LUADOC_DESC_PRIVATE = [=[ -Mark a function as private to a @class. Private functions can be accessed only -from within their class and are not accessible from child classes. +將欄位標註為類別的私有成員。私有欄位僅可在其所屬的類別中存取,並且不能被子類別存取。 -## Syntax +## 語法 `@private` -## Usage +## 用法 ``` ---@class Animal ---@field private eyes integer @@ -1283,15 +1279,14 @@ local myDog = {} myDog:eyesCount(); ``` ]=] -LUADOC_DESC_PROTECTED = -- TODO: need translate! +LUADOC_DESC_PROTECTED = [=[ -Mark a function as protected within a @class. Protected functions can be -accessed only from within their class or from child classes. +將欄位標註為類別的保護成員。保護欄位僅可在其所屬的類別或子類別中存取。 -## Syntax +## 語法 `@protected` -## Usage +## 用法 ``` ---@class Animal ---@field private eyes integer diff --git a/locale/zh-tw/setting.lua b/locale/zh-tw/setting.lua index 1bc254aa9..434771e70 100644 --- a/locale/zh-tw/setting.lua +++ b/locale/zh-tw/setting.lua @@ -1,22 +1,22 @@ ---@diagnostic disable: undefined-global -config.addonManager.enable = -- TODO: need translate! -"Whether the addon manager is enabled or not." -config.addonManager.repositoryBranch = -- TODO: need translate! -"Specifies the git branch used by the addon manager." -config.addonManager.repositoryPath = -- TODO: need translate! -"Specifies the git path used by the addon manager." +config.addonManager.enable = +"是否啟用延伸模組的附加插件管理器(Addon Manager)。" +config.addonManager.repositoryBranch = +"指定插件管理器(Addon Manager)使用的git branch。" +config.addonManager.repositoryPath = +"指定插件管理器(Addon Manager)使用的git path。" config.runtime.version = "Lua執行版本。" config.runtime.path = [[ 當使用 `require` 時,如何根據輸入的名字來尋找檔案。 -此選項設定為 `?/init.lua` 意味著當你輸入 `require 'myfile'` 時,會從已載入的檔案中搜尋 `{workspace}/myfile/init.lua`。 +此選項設定為 `?/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` 的説明。' +'啟用後 `runtime.path` 將只搜尋第一層目錄,見 `runtime.path` 的說明。' config.runtime.special = [[將自訂全域變數視為一些特殊的內建變數,語言伺服將提供特殊的支援。 下面這個例子表示將 `include` 視為 `require` 。 @@ -32,8 +32,8 @@ config.runtime.nonstandardSymbol = "支援非標準的符號。請務必確認你的執行環境支援這些符號。" config.runtime.plugin = "延伸模組路徑,請查閱[文件](https://luals.github.io/wiki/plugins)瞭解用法。" -config.runtime.pluginArgs = -- TODO: need translate! -"Additional arguments for the plugin." +config.runtime.pluginArgs = +"延伸模組的額外引數。" config.runtime.fileEncoding = "檔案編碼,選項 `ansi` 只在 `Windows` 平台下有效。" config.runtime.builtin = @@ -52,8 +52,8 @@ config.diagnostics.disable = "停用的診斷(使用浮框括號內的程式碼)。" config.diagnostics.globals = "已定義的全域變數。" -config.diagnostics.globalsRegex = -- TODO: need translate! -"Find defined global variables using regex." +config.diagnostics.globalsRegex = +"使用正規表示式尋找全域變數。" config.diagnostics.severity = [[ 修改診斷等級。 @@ -69,13 +69,13 @@ config.diagnostics.neededFileStatus = ]] config.diagnostics.groupSeverity = [[ -批量修改一個組中的診斷等級。 +批次修改一個組中的診斷等級。 設定為 `Fallback` 意味著組中的診斷由 `diagnostics.severity` 單獨設定。 其他設定將覆蓋單獨設定,但是不會覆蓋以 `!` 結尾的設定。 ]] config.diagnostics.groupFileStatus = [[ -批量修改一個組中的檔案狀態。 +批次修改一個組中的檔案狀態。 * Opened: 只診斷打開的檔案 * Any: 診斷所有檔案 @@ -84,14 +84,14 @@ config.diagnostics.groupFileStatus = 設定為 `Fallback` 意味著組中的診斷由 `diagnostics.neededFileStatus` 單獨設定。 其他設定將覆蓋單獨設定,但是不會覆蓋以 `!` 結尾的設定。 ]] -config.diagnostics.workspaceEvent = -- TODO: need translate! -"Set the time to trigger workspace diagnostics." -config.diagnostics.workspaceEvent.OnChange = -- TODO: need translate! -"Trigger workspace diagnostics when the file is changed." -config.diagnostics.workspaceEvent.OnSave = -- TODO: need translate! -"Trigger workspace diagnostics when the file is saved." -config.diagnostics.workspaceEvent.None = -- TODO: need translate! -"Disable workspace diagnostics." +config.diagnostics.workspaceEvent = +"設定觸發工作區診斷的時機。" +config.diagnostics.workspaceEvent.OnChange = +"當檔案發生變化時觸發工作區診斷。" +config.diagnostics.workspaceEvent.OnSave = +"當儲存檔案時觸發工作區診斷。" +config.diagnostics.workspaceEvent.None = +"停用工作區診斷。" config.diagnostics.workspaceDelay = "進行工作區診斷的延遲(毫秒)。" config.diagnostics.workspaceRate = @@ -114,8 +114,8 @@ config.diagnostics.ignoredFiles.Disable = "不診斷這些檔案。" config.diagnostics.disableScheme = '不診斷使用以下 scheme 的lua檔案。' -config.diagnostics.unusedLocalExclude = -- TODO: need translate! -'Do not diagnose `unused-local` when the variable name matches the following pattern.' +config.diagnostics.unusedLocalExclude = +'如果變數名符合以下規則,則不對其進行 `unused-local` 診斷。' config.workspace.ignoreDir = "忽略的檔案與目錄(使用 `.gitignore` 語法)。" config.workspace.ignoreSubmodules = @@ -123,9 +123,9 @@ config.workspace.ignoreSubmodules = config.workspace.useGitIgnore = "忽略 `.gitignore` 中列舉的檔案。" config.workspace.maxPreload = -"最大預載入檔案數。" +"最大預先載入檔案數。" config.workspace.preloadFileSize = -"預載入時跳過大小大於該值(KB)的檔案。" +"預先載入時跳過大小大於該值(KB)的檔案。" config.workspace.library = "除了目前工作區以外,還會從哪些目錄中載入檔案。這些目錄中的檔案將被視作外部提供的程式碼庫,部分操作(如重新命名欄位)不會修改這些檔案。" config.workspace.checkThirdParty = @@ -174,7 +174,7 @@ config.completion.showWord.Fallback = config.completion.showWord.Disable = "不顯示上下文單詞。" config.completion.autoRequire = -"輸入內容看起來是個檔名時,自動 `require` 此檔案。" +"輸入內容看起來像檔名時,自動 `require` 此檔案。" config.completion.showParams = "在建議列表中顯示函式的參數資訊,函式擁有多個定義時會分開顯示。" config.completion.requireSeparator = @@ -186,7 +186,7 @@ config.color.mode = config.color.mode.Semantic = "語義著色。你可能需要同時將 `editor.semanticHighlighting.enabled` 設定為 `true` 才能生效。" config.color.mode.SemanticEnhanced = -"增強的語義顏色。類似於`Semantic`,但會進行額外的分析(也會帶來額外的開銷)。" +"增強的語義顏色。類似於 `Semantic` ,但會進行額外的分析(也會帶來額外的開銷)。" config.color.mode.Grammar = "語法著色。" config.semantic.enable = @@ -215,7 +215,7 @@ config.hover.enumsLimit = "當值對應多個類型時,限制類型的顯示數量。" config.hover.expandAlias = [[ -是否展開別名。例如 `---@alias myType boolean|number` 展開後顯示為 `boolean|number`,否則顯示為 `myType'。 +是否展開別名。例如 `---@alias myType boolean|number` 展開後顯示為 `boolean|number`,否則顯示為 `myType`'。 ]] config.develop.enable = '開發者模式。請勿開啟,會影響效能。' @@ -254,9 +254,9 @@ config.hint.arrayIndex.Auto = config.hint.arrayIndex.Disable = '停用陣列索引提示。' config.hint.await = -'如果呼叫的函數被標記為了 `---@async`,則在呼叫處提示 `await`。' +'如果呼叫的函式被標記為了 `---@async`,則在呼叫處提示 `await`。' config.hint.awaitPropagate = -'啟用 `await` 的傳播,當一個函數呼叫了一個 `---@async` 標記的函數時,會自動標記為 `---@async`。' +'啟用 `await` 的傳播,當一個函式呼叫了一個 `---@async` 標記的函式時,會自動標記為 `---@async`。' config.hint.semicolon = '若陳述式尾部沒有分號,則顯示虛擬分號。' config.hint.semicolon.All = @@ -265,8 +265,8 @@ config.hint.semicolon.SameLine = '兩個陳述式在同一行時,在它們之間顯示分號。' config.hint.semicolon.Disable = '停用虛擬分號。' -config.codeLens.enable = -- TODO: need translate! -'Enable code lens.' +config.codeLens.enable = +'啟用CodeLens。' config.format.enable = '啟用程式碼格式化程式。' config.format.defaultConfig = @@ -276,50 +276,50 @@ config.format.defaultConfig = ]] config.spell.dict = '拼寫檢查的自訂單詞。' -config.nameStyle.config = -- TODO: need translate! -'Set name style config' +config.nameStyle.config = +'設定檢查命名風格的組態' config.telemetry.enable = [[ 啟用遙測,透過網路發送你的編輯器資訊與錯誤日誌。在[此處](https://luals.github.io/privacy/#language-server)閱讀我們的隱私聲明。 ]] config.misc.parameters = -'VSCode中啟動語言伺服時的[命令列參數](https://luals.github.io/wiki/usage#arguments)。' -config.misc.executablePath = -- TODO: need translate! -'Specify the executable path in VSCode.' -config.language.fixIndent = -- TODO: need translate! -'(VSCode only) Fix incorrect auto-indentation, such as incorrect indentation when line breaks occur within a string containing the word "function."' -config.language.completeAnnotation = -- TODO: need translate! -'(VSCode only) Automatically insert "---@ " after a line break following a annotation.' +'VSCode內啟動語言伺服時的[命令列參數](https://luals.github.io/wiki/usage#arguments)。' +config.misc.executablePath = +'指定VSCode內的可執行文件' +config.language.fixIndent = +'(僅限VSCode)修復自動縮排錯誤,例如在有包含 "function" 的字串中換行時出現的錯誤縮排。' +config.language.completeAnnotation = +'(僅限VSCode)在註解後換行時自動插入 "---@ "。' config.type.castNumberToInteger = '允許將 `number` 類型賦值給 `integer` 類型。' config.type.weakUnionCheck = [[ 同位類型中只要有一個子類型滿足條件,則同位類型也滿足條件。 -此設定為 `false` 時,`number|boolean` 類型無法賦給 `number` 類型;為 `true` 時則可以。 +此設定為 `false` 時,`number|boolean` 類型無法賦值給 `number` 類型;為 `true` 時則可以。 ]] -config.type.weakNilCheck = -- TODO: need translate! +config.type.weakNilCheck = [[ -When checking the type of union type, ignore the `nil` in it. +對同位類型進行類型檢查時,忽略其中的 `nil`。 -When this setting is `false`, the `number|nil` type cannot be assigned to the `number` type. It can be with `true`. +此設定為 `false` 時,`number|boolean` 類型無法賦值給 `number` 類型;為 `true` 時則可以。 ]] -config.type.inferParamType = -- TODO: need translate! +config.type.inferParamType = [[ -未注释参数类型时,参数类型由函数传入参数推断。 +未註解參數類型時,參數類型由函式傳入參數推斷。 -如果设置为 "false",则在未注释时,参数类型为 "any"。 +如果設定為 "false",則在未註解時,參數類型為 "any"。 ]] -config.type.checkTableShape = -- TODO: need translate! +config.type.checkTableShape = [[ -对表的形状进行严格检查。 +對表的形狀進行嚴格檢查。 ]] -config.doc.privateName = -- TODO: need translate! -'Treat specific field names as private, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are private, witch can only be accessed in the class where the definition is located.' -config.doc.protectedName = -- TODO: need translate! -'Treat specific field names as protected, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are protected, witch can only be accessed in the class where the definition is located and its subclasses.' -config.doc.packageName = -- TODO: need translate! -'Treat specific field names as package, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are package, witch can only be accessed in the file where the definition is located.' +config.doc.privateName = +'將特定名稱的欄位視為private,例如 `m_*` 代表 `XXX.m_id` 和 `XXX.m_type` 會是私有層級,只能在定義所在的類別內存取' +config.doc.protectedName = +'將特定名稱的欄位視為protected,例如 `m_*` 代表 `XXX.m_id` 和 `XXX.m_type` 會是保護層級,只能在定義所在的類別和其子類別內存取' +config.doc.packageName = +'將特定名稱的欄位視為package,例如 `m_*` 代表 `XXX.m_id` 和 `XXX.m_type` 只能在定義所在的檔案內存取' config.diagnostics['unused-local'] = '未使用的區域變數' config.diagnostics['unused-function'] = @@ -354,110 +354,110 @@ config.diagnostics['empty-block'] = '空程式碼區塊' config.diagnostics['redundant-value'] = '賦值操作時,值的數量比被賦值的對象多' -config.diagnostics['assign-type-mismatch'] = -- TODO: need translate! -'Enable diagnostics for assignments in which the value\'s type does not match the type of the assigned variable.' -config.diagnostics['await-in-sync'] = -- TODO: need translate! -'Enable diagnostics for calls of asynchronous functions within a synchronous function.' -config.diagnostics['cast-local-type'] = -- TODO: need translate! -'Enable diagnostics for casts of local variables where the target type does not match the defined type.' -config.diagnostics['cast-type-mismatch'] = -- TODO: need translate! -'Enable diagnostics for casts where the target type does not match the initial type.' -config.diagnostics['circular-doc-class'] = -- TODO: need translate! -'Enable diagnostics for two classes inheriting from each other introducing a circular relation.' -config.diagnostics['close-non-object'] = -- TODO: need translate! -'Enable diagnostics for attempts to close a variable with a non-object.' -config.diagnostics['code-after-break'] = -- TODO: need translate! -'Enable diagnostics for code placed after a break statement in a loop.' -config.diagnostics['codestyle-check'] = -- TODO: need translate! -'Enable diagnostics for incorrectly styled lines.' -config.diagnostics['count-down-loop'] = -- TODO: need translate! -'Enable diagnostics for `for` loops which will never reach their max/limit because the loop is incrementing instead of decrementing.' -config.diagnostics['deprecated'] = -- TODO: need translate! -'Enable diagnostics to highlight deprecated API.' -config.diagnostics['different-requires'] = -- TODO: need translate! -'Enable diagnostics for files which are required by two different paths.' -config.diagnostics['discard-returns'] = -- TODO: need translate! -'Enable diagnostics for calls of functions annotated with `---@nodiscard` where the return values are ignored.' -config.diagnostics['doc-field-no-class'] = -- TODO: need translate! -'Enable diagnostics to highlight a field annotation without a defining class annotation.' -config.diagnostics['duplicate-doc-alias'] = -- TODO: need translate! -'Enable diagnostics for a duplicated alias annotation name.' -config.diagnostics['duplicate-doc-field'] = -- TODO: need translate! -'Enable diagnostics for a duplicated field annotation name.' -config.diagnostics['duplicate-doc-param'] = -- TODO: need translate! -'Enable diagnostics for a duplicated param annotation name.' -config.diagnostics['duplicate-set-field'] = -- TODO: need translate! -'Enable diagnostics for setting the same field in a class more than once.' -config.diagnostics['incomplete-signature-doc'] = -- TODO: need translate! -'Incomplete @param or @return annotations for functions.' -config.diagnostics['invisible'] = -- TODO: need translate! -'Enable diagnostics for accesses to fields which are invisible.' -config.diagnostics['missing-global-doc'] = -- TODO: need translate! -'Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.' -config.diagnostics['missing-local-export-doc'] = -- TODO: need translate! -'Missing annotations for exported locals! Exported local functions must have a comment and annotations for all parameters and return values.' -config.diagnostics['missing-parameter'] = -- TODO: need translate! -'Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.' -config.diagnostics['missing-return'] = -- TODO: need translate! -'Enable diagnostics for functions with return annotations which have no return statement.' -config.diagnostics['missing-return-value'] = -- TODO: need translate! -'Enable diagnostics for return statements without values although the containing function declares returns.' -config.diagnostics['need-check-nil'] = -- TODO: need translate! -'Enable diagnostics for variable usages if `nil` or an optional (potentially `nil`) value was assigned to the variable before.' -config.diagnostics['unnecessary-assert'] = -- TODO: need translate! -'Enable diagnostics for redundant assertions on truthy values.' -config.diagnostics['no-unknown'] = -- TODO: need translate! -'Enable diagnostics for cases in which the type cannot be inferred.' -config.diagnostics['not-yieldable'] = -- TODO: need translate! -'Enable diagnostics for calls to `coroutine.yield()` when it is not permitted.' -config.diagnostics['param-type-mismatch'] = -- TODO: need translate! -'Enable diagnostics for function calls where the type of a provided parameter does not match the type of the annotated function definition.' -config.diagnostics['redundant-return'] = -- TODO: need translate! -'Enable diagnostics for return statements which are not needed because the function would exit on its own.' -config.diagnostics['redundant-return-value']= -- TODO: need translate! -'Enable diagnostics for return statements which return an extra value which is not specified by a return annotation.' -config.diagnostics['return-type-mismatch'] = -- TODO: need translate! -'Enable diagnostics for return values whose type does not match the type declared in the corresponding return annotation.' -config.diagnostics['spell-check'] = -- TODO: need translate! -'Enable diagnostics for typos in strings.' -config.diagnostics['name-style-check'] = -- TODO: need translate! -'Enable diagnostics for name style.' -config.diagnostics['unbalanced-assignments']= -- TODO: need translate! -'Enable diagnostics on multiple assignments if not all variables obtain a value (e.g., `local x,y = 1`).' -config.diagnostics['undefined-doc-class'] = -- TODO: need translate! -'Enable diagnostics for class annotations in which an undefined class is referenced.' -config.diagnostics['undefined-doc-name'] = -- TODO: need translate! -'Enable diagnostics for type annotations referencing an undefined type or alias.' -config.diagnostics['undefined-doc-param'] = -- TODO: need translate! -'Enable diagnostics for cases in which a parameter annotation is given without declaring the parameter in the function definition.' -config.diagnostics['undefined-field'] = -- TODO: need translate! -'Enable diagnostics for cases in which an undefined field of a variable is read.' -config.diagnostics['unknown-cast-variable'] = -- TODO: need translate! -'Enable diagnostics for casts of undefined variables.' -config.diagnostics['unknown-diag-code'] = -- TODO: need translate! -'Enable diagnostics in cases in which an unknown diagnostics code is entered.' -config.diagnostics['unknown-operator'] = -- TODO: need translate! -'Enable diagnostics for unknown operators.' -config.diagnostics['unreachable-code'] = -- TODO: need translate! -'Enable diagnostics for unreachable code.' -config.diagnostics['global-element'] = -- TODO: need translate! -'Enable diagnostics to warn about global elements.' -config.typeFormat.config = -- TODO: need translate! -'Configures the formatting behavior while typing Lua code.' -config.typeFormat.config.auto_complete_end = -- TODO: need translate! -'Controls if `end` is automatically completed at suitable positions.' -config.typeFormat.config.auto_complete_table_sep = -- TODO: need translate! -'Controls if a separator is automatically appended at the end of a table declaration.' -config.typeFormat.config.format_line = -- TODO: need translate! -'Controls if a line is formatted at all.' +config.diagnostics['assign-type-mismatch'] = +'賦值類型與變數類型不符合' +config.diagnostics['await-in-sync'] = +'同步函式中呼叫非同步函式' +config.diagnostics['cast-local-type'] = +'已顯式定義變數類型不符合要定義的值的類型' +config.diagnostics['cast-type-mismatch'] = +'變數被轉換為不符合其初始類型的類型' +config.diagnostics['circular-doc-class'] = +'兩個類別互相繼承、循環' +config.diagnostics['close-non-object'] = +'嘗試關閉非物件變數' +config.diagnostics['code-after-break'] = +'迴圈內break陳述式後的程式碼' +config.diagnostics['codestyle-check'] = +'行的格式不正確' +config.diagnostics['count-down-loop'] = +'因為 `for` 迴圈是遞增而不是遞減,所以不會到達上限/極限' +config.diagnostics['deprecated'] = +'API已標記deprecated(棄用)但仍在使用' +config.diagnostics['different-requires'] = +'required的同一個檔案使用了兩個不同的名字' +config.diagnostics['discard-returns'] = +'忽略了標註為 `@nodiscard` 的函式的回傳值' +config.diagnostics['doc-field-no-class'] = +'向沒有標註 `@class` 的類別標註 `@field` 欄位' +config.diagnostics['duplicate-doc-alias'] = +'`@alias` 標註名字衝突' +config.diagnostics['duplicate-doc-field'] = +'`@field` 標註名字衝突' +config.diagnostics['duplicate-doc-param'] = +'`@param` 標註名字衝突' +config.diagnostics['duplicate-set-field'] = +'在類別中多次定義相同的欄位' +config.diagnostics['incomplete-signature-doc'] = +'`@param` 或 `@return` 不完整' +config.diagnostics['invisible'] = +'嘗試存取不可見的欄位' +config.diagnostics['missing-global-doc'] = +'全域變數缺少標註(全域函式必須為所有參數和回傳值提供標註)' +config.diagnostics['missing-local-export-doc'] = +'匯出的區域函式缺少標註(匯出的區域函式、所有的參數和回傳值都必須有標註)' +config.diagnostics['missing-parameter'] = +'函式呼叫的引數數量比函式標註的參數數量少' +config.diagnostics['missing-return'] = +'函式有 `@return` 標註卻沒有 `return` 陳述式' +config.diagnostics['missing-return-value'] = +'函式沒有回傳值,但使用了 `@return` 標註了回傳值' +config.diagnostics['need-check-nil'] = +'變數曾被賦值為 `nil` 或可選值(可能是 `nil` )' +config.diagnostics['unnecessary-assert'] = +'對始終為true的陳述式的冗餘斷言' +config.diagnostics['no-unknown'] = +'無法推斷變數的未知類型' +config.diagnostics['not-yieldable'] = +'不允許呼叫 `coroutine.yield()`' +config.diagnostics['param-type-mismatch'] = +'給定參數的類型不符合函式定義所要求的類型( `@param` )' +config.diagnostics['redundant-return'] = +'放了一個不需要的 `return` 陳述式,因為函式會自行退出' +config.diagnostics['redundant-return-value']= +'回傳了 `@return` 標註未指定的額外值' +config.diagnostics['return-type-mismatch'] = +'回傳值的類型不符合 `@return` 中宣告的類型' +config.diagnostics['spell-check'] = +'字串拼寫檢查' +config.diagnostics['name-style-check'] = +'變數命名風格檢查' +config.diagnostics['unbalanced-assignments']= +'多重賦值時沒有賦值所有變數(如 `local x,y = 1` )' +config.diagnostics['undefined-doc-class'] = +'在 `@class` 標註中引用未定義的類別。' +config.diagnostics['undefined-doc-name'] = +'在 `@type` 標註中引用未定義的類型或 `@alias`' +config.diagnostics['undefined-doc-param'] = +'在 `@param` 標註中引用函式定義未宣告的參數' +config.diagnostics['undefined-field'] = +'讀取變數中為定義的欄位' +config.diagnostics['unknown-cast-variable'] = +'使用 `@cast` 對未定義的變數進行強制轉換' +config.diagnostics['unknown-diag-code'] = +'輸入了未知的診斷' +config.diagnostics['unknown-operator'] = +'未知的運算子' +config.diagnostics['unreachable-code'] = +'無法到達的程式碼' +config.diagnostics['global-element'] = +'對全域元素的警告' +config.typeFormat.config = +'寫Lua程式碼時的格式化組態' +config.typeFormat.config.auto_complete_end = +'是否在合適的位置自動完成 `end`' +config.typeFormat.config.auto_complete_table_sep = +'是否在宣告表的結尾自動添加分隔符號' +config.typeFormat.config.format_line = +'是否格式化某一行' -command.exportDocument = -- TODO: need translate! -'Lua: Export Document ...' -command.addon_manager.open = -- TODO: need translate! -'Lua: Open Addon Manager ...' -command.reloadFFIMeta = -- TODO: need translate! -'Lua: Reload luajit ffi meta' -command.startServer = -- TODO: need translate! -'Lua: (debug) Start Language Server' -command.stopServer = -- TODO: need translate! -'Lua: (debug) Stop Language Server' +command.exportDocument = +'Lua:輸出文件…' +command.addon_manager.open = +'Lua:打開插件管理器(Addon Manager)…' +command.reloadFFIMeta = +'Lua:重新生成luajit的FFI模組C語言中繼資料' +command.startServer = +'Lua:(除錯)重新啟動語言伺服' +command.stopServer = +'Lua:(除錯)停止語言伺服'