summaryrefslogtreecommitdiff
path: root/server-beta/locale
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2019-09-23 14:54:04 +0800
committer最萌小汐 <sumneko@hotmail.com>2019-09-23 14:54:04 +0800
commit1dda93bba596496c1a427707fe97d92391129b8d (patch)
tree8bb525452d5677133a17662d091a077db5af1cad /server-beta/locale
parent62a3e74b5467ca3bc0879e73e8fc8b129c0bec6a (diff)
downloadlua-language-server-1dda93bba596496c1a427707fe97d92391129b8d.zip
整理文件
Diffstat (limited to 'server-beta/locale')
-rw-r--r--server-beta/locale/en-US/libs/@lua/basic.lni239
-rw-r--r--server-beta/locale/en-US/libs/@lua/bit32.lni57
-rw-r--r--server-beta/locale/en-US/libs/@lua/coroutine.lni42
-rw-r--r--server-beta/locale/en-US/libs/@lua/debug.lni148
-rw-r--r--server-beta/locale/en-US/libs/@lua/file.lni91
-rw-r--r--server-beta/locale/en-US/libs/@lua/io.lni230
-rw-r--r--server-beta/locale/en-US/libs/@lua/math.lni132
-rw-r--r--server-beta/locale/en-US/libs/@lua/os.lni38
-rw-r--r--server-beta/locale/en-US/libs/@lua/package.lni29
-rw-r--r--server-beta/locale/en-US/libs/@lua/string.lni72
-rw-r--r--server-beta/locale/en-US/libs/@lua/table.lni39
-rw-r--r--server-beta/locale/en-US/libs/@lua/utf8.lni40
-rw-r--r--server-beta/locale/en-US/script.lni122
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/basic.lni239
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/bit32.lni55
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/coroutine.lni42
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/debug.lni140
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/file.lni91
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/io.lni230
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/math.lni132
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/os.lni38
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/package.lni29
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/string.lni61
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/table.lni39
-rw-r--r--server-beta/locale/zh-CN/libs/@lua/utf8.lni24
-rw-r--r--server-beta/locale/zh-CN/script.lni122
26 files changed, 2521 insertions, 0 deletions
diff --git a/server-beta/locale/en-US/libs/@lua/basic.lni b/server-beta/locale/en-US/libs/@lua/basic.lni
new file mode 100644
index 00000000..7dbf8d60
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/basic.lni
@@ -0,0 +1,239 @@
+[arg]
+description = 'Command-line arguments of Lua Standalone.'
+
+[assert]
+description = 'Calls error if the value of its argument is false.'
+
+[collectgarbage]
+[[.enums]]
+name = 'opt'
+enum = '"collect"'
+description = 'Performs a full garbage-collection cycle.'
+``````````
+name = 'opt'
+enum = '"stop"'
+description = 'Stops automatic execution.'
+``````````
+name = 'opt'
+enum = '"restart"'
+description = 'Restarts automatic execution.'
+``````````
+name = 'opt'
+enum = '"count"'
+description = 'Returns the total memory in Kbytes.'
+``````````
+name = 'opt'
+enum = '"step"'
+description = 'Performs a garbage-collection step.'
+``````````
+name = 'opt'
+enum = '"setpause"'
+description = 'Set pause.'
+``````````
+name = 'opt'
+enum = '"setstepmul"'
+description = 'Set step multiplier.'
+``````````
+name = 'opt'
+enum = '"isrunning"'
+description = 'Returns whether the collector is running.'
+
+["collectgarbage Lua 5.4"]
+[[.enums]]
+name = 'opt'
+enum = '"collect"'
+description = 'Performs a full garbage-collection cycle.'
+``````````
+name = 'opt'
+enum = '"stop"'
+description = 'Stops automatic execution.'
+``````````
+name = 'opt'
+enum = '"restart"'
+description = 'Restarts automatic execution.'
+``````````
+name = 'opt'
+enum = '"count"'
+description = 'Returns the total memory in Kbytes.'
+``````````
+name = 'opt'
+enum = '"step"'
+description = 'Performs a garbage-collection step.'
+``````````
+name = 'opt'
+enum = '"setpause"'
+description = 'Set pause.'
+``````````
+name = 'opt'
+enum = '"setstepmul"'
+description = 'Set step multiplier.'
+``````````
+name = 'opt'
+enum = '"incremental"'
+description = 'Change the collector mode to incremental.'
+``````````
+name = 'opt'
+enum = '"generational"'
+description = 'Change the collector mode to generational.'
+``````````
+name = 'opt'
+enum = '"isrunning"'
+description = 'Returns whether the collector is running.'
+
+[dofile]
+description = 'Opens the named file and executes its contents as a Lua chunk.'
+
+[error]
+description = 'Terminates the last protected function called and returns message as the error object.'
+
+[_G]
+description = 'Holds the global environment.'
+
+[getfenv]
+description = 'Returns the current environment in use by the function. `f` can be a Lua function or a number that specifies the function at that stack level.'
+
+[getmetatable]
+description = 'Returns the metatable of the given object.'
+
+[ipairs]
+description = [[
+----------------
+```lua
+for i, v in ipairs(t) do
+ body
+end
+```
+]]
+
+[load]
+description = 'Loads a chunk.'
+[[.enums]]
+name = 'mode'
+enum = '"b"'
+description = 'Only binary chunks.'
+``````````
+name = 'mode'
+enum = '"t"'
+description = 'Only text chunks.'
+``````````
+name = 'mode'
+enum = '"bt"'
+description = 'Both binary and text.'
+
+['load Lua 5.1']
+description = 'Loads a chunk using function `func` to get its pieces. Each call to `func` must return a string that concatenates with previous results.'
+
+[loadfile]
+description = 'Loads a chunk from file.'
+[[.enums]]
+name = 'mode'
+enum = '"b"'
+description = 'Only binary chunks.'
+``````````
+name = 'mode'
+enum = '"t"'
+description = 'Only text chunks.'
+``````````
+name = 'mode'
+enum = '"bt"'
+description = 'Both binary and text.'
+
+['loadfile Lua 5.1']
+description = 'Loads a chunk from file `filename` or from the standard input, if no file name is given.'
+
+[loadstring]
+description = 'Loads a chunk from the given string.'
+
+[module]
+description = 'Creates a module'
+
+[next]
+description = 'Returns the next index of the table and its associated value.'
+
+[pairs]
+description = [[
+----------------
+```lua
+for k, v in pairs(t) do
+ body
+end
+```
+]]
+
+[pcall]
+description = 'Calls function with the given arguments in protected mode.'
+
+[print]
+description = 'Receives any number of arguments and prints their values to stdout.'
+
+[rawequal]
+description = 'Checks whether v1 is equal to v2, without invoking the `__eq` metamethod.'
+
+[rawget]
+description = 'Gets the real value of `table[index]`, without invoking the `__index` metamethod.'
+
+[rawlen]
+description = 'Returns the length of the object `v`, without invoking the `__len` metamethod.'
+
+[rawset]
+description = 'Sets the real value of `table[index]` to `value`, without invoking the `__newindex` metamethod.'
+
+[select]
+[[.enums]]
+name = 'index'
+enum = '"#"'
+description = 'Returns the total number of extra arguments.'
+``````````
+name = 'index'
+code = 'integer'
+description = 'Returns all arguments after number `index`.'
+
+[setfenv]
+description = 'Sets the environment to be used by the given function. `f` can be a Lua function or a number that specifies the function at that stack level.'
+
+[setmetatable]
+description = 'Sets the metatable for the given table.'
+
+[tonumber]
+description = 'Tries to convert its argument to a number.'
+
+[tostring]
+description = 'Receives a value of any type and converts it to a string in a human-readable format.'
+
+[type]
+description = 'Returns the type of its only argument, coded as a string.'
+
+["_VERSION Lua 5.1"]
+description = 'Running Lua version.'
+
+["_VERSION Lua 5.2"]
+description = 'Running Lua version.'
+
+["_VERSION Lua 5.3"]
+description = 'Running Lua version.'
+
+["_VERSION Lua 5.4"]
+description = 'Running Lua version.'
+
+[warn]
+description = 'Emits a warning with a message composed by the concatenation of all its arguments (which should be strings).'
+
+[xpcall]
+description = 'Calls function `f` with the given arguments in protected mode with a new message handler.'
+
+['xpcall Lua 5.1']
+description = 'Calls function `f` in protected mode with a new message handler.'
+
+[require]
+description = 'Loads the given module, returns any value returned by the given module(`true` when `nil`).'
+
+["require Lua 5.4"]
+description = 'Loads the given module, returns any value returned by the searcher(`true` when `nil`). Besides that value, also returns as a second result the loader data returned by the searcher, which indicates how `require` found the module. (For instance, if the module came from a file, this loader data is the file path.)'
+
+[unpack]
+description = [[
+-------
+```lua
+return list[i], list[i+1], ···, list[j]
+```
+]]
diff --git a/server-beta/locale/en-US/libs/@lua/bit32.lni b/server-beta/locale/en-US/libs/@lua/bit32.lni
new file mode 100644
index 00000000..13630970
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/bit32.lni
@@ -0,0 +1,57 @@
+[arshift]
+description = [[
+Returns the number `x` shifted `disp` bits to the right. Negative displacements shift to the left.
+
+This shift operation is what is called arithmetic shift. Vacant bits on the left are filled with copies of the higher bit of `x`; vacant bits on the right are filled with zeros.
+]]
+
+[band]
+description = 'Returns the bitwise *and* of its operands.'
+
+[bnot]
+description = [[
+Returns the bitwise negation of `x`.
+
+```lua
+assert(bit32.bnot(x) == (-1 - x) % 2^32)
+```
+]]
+
+[bor]
+description = 'Returns the bitwise *or* of its operands.'
+
+[btest]
+description = 'Returns a boolean signaling whether the bitwise *and* of its operands is different from zero.'
+
+[bxor]
+description = 'Returns the bitwise *exclusive or* of its operands.'
+
+[extract]
+description = 'Returns the unsigned number formed by the bits `field` to `field + width - 1` from `n`.'
+
+[replace]
+description = 'Returns a copy of `n` with the bits `field` to `field + width - 1` replaced by the value `v` .'
+
+[lrotate]
+description = 'Returns the number `x` rotated `disp` bits to the left. Negative displacements rotate to the right.'
+
+[lshift]
+description = [[
+Returns the number `x` shifted `disp` bits to the left. Negative displacements shift to the right. In any direction, vacant bits are filled with zeros.
+
+```lua
+assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)
+```
+]]
+
+[rrotate]
+description = 'Returns the number `x` rotated `disp` bits to the right. Negative displacements rotate to the left.'
+
+[rshift]
+description = [[
+Returns the number `x` shifted `disp` bits to the right. Negative displacements shift to the left. In any direction, vacant bits are filled with zeros.
+
+```lua
+assert(bit32.rshift(b, disp) == math.floor(b % 2^32 / 2^disp))
+```
+]]
diff --git a/server-beta/locale/en-US/libs/@lua/coroutine.lni b/server-beta/locale/en-US/libs/@lua/coroutine.lni
new file mode 100644
index 00000000..910638ec
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/coroutine.lni
@@ -0,0 +1,42 @@
+[create]
+description = 'Creates a new coroutine.'
+
+[isyieldable]
+description = 'Returns true when the running coroutine can yield.'
+
+['isyieldable Lua 5.4']
+description = 'Returns true when the coroutine `co` can yield. The default for `co` is the running coroutine.'
+
+[close]
+description = 'Closes coroutine `co` , closing all its pending to-be-closed variables and putting the coroutine in a dead state.'
+
+[resume]
+description = 'Starts or continues the execution of coroutine `co`.'
+
+[running]
+description = 'Returns the running coroutine plus a boolean, true when the running coroutine is the main one.'
+
+[status]
+description = 'Returns the status of coroutine `co`.'
+[[.enums]]
+name = 'status'
+enum = '"running"'
+description = 'Is running.'
+``````````
+name = 'status'
+enum = '"suspended"'
+description = 'Is suspended or not started.'
+``````````
+name = 'status'
+enum = '"normal"'
+description = 'Is active but not running.'
+``````````
+name = 'status'
+enum = '"dead"'
+description = 'Has finished or stopped with an error.'
+
+[wrap]
+description = 'Creates a new coroutine.'
+
+[yield]
+description = 'Suspends the execution of the calling coroutine.'
diff --git a/server-beta/locale/en-US/libs/@lua/debug.lni b/server-beta/locale/en-US/libs/@lua/debug.lni
new file mode 100644
index 00000000..44d5317f
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/debug.lni
@@ -0,0 +1,148 @@
+["debug.debug"]
+description = 'Enters an interactive mode with the user, running each string that the user enters.'
+
+[getfenv]
+description = 'Returns the environment of object `o` .'
+
+[gethook]
+description = 'Returns the current hook settings of the thread.'
+
+[getinfo]
+description = 'Returns a table with information about a function.'
+[[.enums]]
+name = 'what'
+enum = '"n"'
+description = '`name` and `namewhat`'
+``````````
+name = 'what'
+enum = '"S"'
+description = '`source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`'
+``````````
+name = 'what'
+enum = '"l"'
+description = '`currentline`'
+``````````
+name = 'what'
+enum = '"t"'
+description = '`istailcall`'
+``````````
+name = 'what'
+enum = '"u"'
+description = '`nups`, `nparams`, and `isvararg`'
+``````````
+name = 'what'
+enum = '"f"'
+description = '`func`'
+``````````
+name = 'what'
+enum = '"L"'
+description = '`activelines`'
+
+['getinfo Lua 5.1']
+description = 'Returns a table with information about a function.'
+[[.enums]]
+name = 'what'
+enum = '"n"'
+description = '`name` and `namewhat`'
+``````````
+name = 'what'
+enum = '"S"'
+description = '`source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`'
+``````````
+name = 'what'
+enum = '"l"'
+description = '`currentline`'
+``````````
+name = 'what'
+enum = '"t"'
+description = '`istailcall`'
+``````````
+name = 'what'
+enum = '"u"'
+description = '`nups`'
+``````````
+name = 'what'
+enum = '"f"'
+description = '`func`'
+``````````
+name = 'what'
+enum = '"L"'
+description = '`activelines`'
+
+[getlocal]
+description = 'Returns the name and the value of the local variable with index `local` of the function at level `f` of the stack.'
+
+['getlocal Lua 5.1']
+description = 'Returns the name and the value of the local variable with index `local` of the function at level `level` of the stack.'
+
+[getmetatable]
+description = 'Returns the metatable of the given value.'
+
+[getregistry]
+description = 'Returns the registry table.'
+
+[getupvalue]
+description = 'Returns the name and the value of the upvalue with index `up` of the function.'
+
+[getuservalue]
+description = 'Returns the Lua value associated to u.'
+
+["getuservalue Lua 5.4"]
+description = [[
+Returns the `n`-th user value associated
+to the userdata `u` plus a boolean,
+`false` if the userdata does not have that value.
+]]
+
+[setCstacklimit]
+description = [[
+Sets a new limit for the C stack. This limit controls how deeply nested calls can go in Lua, with the intent of avoiding a stack overflow.
+
+In case of success, this function returns the old limit. In case of error, it returns `false`.
+]]
+
+[setfenv]
+description = 'Sets the environment of the given `object` to the given `table` .'
+
+[sethook]
+description = 'Sets the given function as a hook.'
+[[.enums]]
+name = 'mask'
+enum = '"c"'
+description = 'Calls hook when Lua calls a function.'
+``````````
+name = 'mask'
+enum = '"r"'
+description = 'Calls hook when Lua returns from a function.'
+``````````
+name = 'mask'
+enum = '"l"'
+description = 'Calls hook when Lua enters a new line of code.'
+
+[setlocal]
+description = 'Assigns the `value` to the local variable with index `local` of the function at `level` of the stack.'
+
+[setmetatable]
+description = 'Sets the metatable for the given value to the given table (which can be nil).'
+
+[setupvalue]
+description = 'Assigns the `value` to the upvalue with index `up` of the function.'
+
+[setuservalue]
+description = 'Sets the given value as the Lua value associated to the given udata.'
+
+["setuservalue Lua 5.4"]
+description = [[
+Sets the given `value` as
+the `n`-th user value associated to the given `udata`.
+`udata` must be a full userdata.
+]]
+
+[traceback]
+description = 'Returns a string with a traceback of the call stack. The optional message string is appended at the beginning of the traceback.'
+
+[upvalueid]
+description = 'Returns a unique identifier (as a light userdata) for the upvalue numbered `n` from the given function.'
+
+[upvaluejoin]
+description = 'Make the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua closure `f2`.'
diff --git a/server-beta/locale/en-US/libs/@lua/file.lni b/server-beta/locale/en-US/libs/@lua/file.lni
new file mode 100644
index 00000000..58bb2278
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/file.lni
@@ -0,0 +1,91 @@
+[close]
+description = 'Close `file`.'
+
+[flush]
+description = 'Saves any written data to `file`.'
+
+[lines]
+description = [[
+------
+```lua
+for c in file:lines(...) do
+ body
+end
+```
+]]
+[[.enums]]
+name = 'mode'
+enum = '"n"'
+description = 'Reads a numeral and returns it as number.'
+``````````
+name = 'mode'
+enum = '"a"'
+description = 'Reads the whole file.'
+``````````
+name = 'mode'
+enum = '"l"'
+description = 'Reads the next line skipping the end of line.'
+``````````
+name = 'mode'
+enum = '"L"'
+description = 'Reads the next line keeping the end of line.'
+``````````
+name = 'mode'
+code = 'number'
+description = 'Reads a string with up to this number of bytes.'
+
+[read]
+description = 'Reads the `file`, according to the given formats, which specify what to read.'
+[[.enums]]
+name = 'mode'
+enum = '"n"'
+description = 'Reads a numeral and returns it as number.'
+``````````
+name = 'mode'
+enum = '"a"'
+description = 'Reads the whole file.'
+``````````
+name = 'mode'
+enum = '"l"'
+description = 'Reads the next line skipping the end of line.'
+``````````
+name = 'mode'
+enum = '"L"'
+description = 'Reads the next line keeping the end of line.'
+``````````
+name = 'mode'
+code = 'number'
+description = 'Reads a string with up to this number of bytes.'
+
+[seek]
+description = 'Sets and gets the file position, measured from the beginning of the file.'
+[[.enums]]
+name = 'whence'
+enum = '"set"'
+description = 'Base is beginning of the file.'
+``````````
+name = 'whence'
+enum = '"cur"'
+description = 'Base is current position.'
+``````````
+name = 'whence'
+enum = '"end"'
+description = 'Base is end of file.'
+
+[setvbuf]
+description = 'Sets the buffering mode for an output file.'
+[[.enums]]
+name = 'mode'
+enum = '"no"'
+description = 'Output operation appears immediately.'
+``````````
+name = 'mode'
+enum = '"full"'
+description = 'Performed only when the buffer is full.'
+``````````
+name = 'mode'
+enum = '"line"'
+description = 'Buffered until a newline is output.'
+
+[write]
+description = 'Writes the value of each of its arguments to `file`.'
diff --git a/server-beta/locale/en-US/libs/@lua/io.lni b/server-beta/locale/en-US/libs/@lua/io.lni
new file mode 100644
index 00000000..2b405f2f
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/io.lni
@@ -0,0 +1,230 @@
+[stdin]
+description = 'standard input.'
+
+[stdout]
+description = 'standard output.'
+
+[stderr]
+description = 'standard error.'
+
+[close]
+description = 'Close `file` or default output file.'
+
+[flush]
+description = 'Saves any written data to default output file.'
+
+[input]
+description = 'Sets `file` as the default input file.'
+
+["lines Lua 5.1"]
+description = [[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+[[.enums]]
+name = 'mode'
+enum = '"*n"'
+description = 'Reads a numeral and returns it as number.'
+``````````
+name = 'mode'
+enum = '"*a"'
+description = 'Reads the whole file.'
+``````````
+name = 'mode'
+enum = '"*l"'
+description = 'Reads the next line skipping the end of line.'
+``````````
+name = 'mode'
+code = 'number'
+description = 'Reads a string with up to this number of bytes.'
+
+["lines Lua 5.3"]
+description = [[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+[[.enums]]
+name = 'mode'
+enum = '"n"'
+description = 'Reads a numeral and returns it as number.'
+``````````
+name = 'mode'
+enum = '"a"'
+description = 'Reads the whole file.'
+``````````
+name = 'mode'
+enum = '"l"'
+description = 'Reads the next line skipping the end of line.'
+``````````
+name = 'mode'
+enum = '"L"'
+description = 'Reads the next line keeping the end of line.'
+``````````
+name = 'mode'
+code = 'number'
+description = 'Reads a string with up to this number of bytes.'
+
+["lines LuaJIT"]
+description = [[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+[[.enums]]
+name = 'mode'
+enum = '"*n"'
+description = 'Reads a numeral and returns it as number.'
+``````````
+name = 'mode'
+enum = '"*a"'
+description = 'Reads the whole file.'
+``````````
+name = 'mode'
+enum = '"*l"'
+description = 'Reads the next line skipping the end of line.'
+``````````
+name = 'mode'
+enum = '"*L"'
+description = 'Reads the next line keeping the end of line.'
+``````````
+name = 'mode'
+code = 'number'
+description = 'Reads a string with up to this number of bytes.'
+
+[open]
+description = 'Opens a file, in the mode specified in the string `mode`.'
+[[.enums]]
+name = 'mode'
+enum = '"r"'
+description = 'Read mode.'
+``````````
+name = 'mode'
+enum = '"w"'
+description = 'Write mode.'
+``````````
+name = 'mode'
+enum = '"a"'
+description = 'Append mode.'
+``````````
+name = 'mode'
+enum = '"r+"'
+description = 'Update mode, all previous data is preserved.'
+``````````
+name = 'mode'
+enum = '"w+"'
+description = 'Update mode, all previous data is erased.'
+``````````
+name = 'mode'
+enum = '"a+"'
+description = 'Append update mode, previous data is preserved, writing is only allowed at the end of file.'
+
+[output]
+description = 'Sets `file` as the default output file.'
+
+[popen]
+description = 'Starts program prog in a separated process.'
+[[.enums]]
+name = 'mode'
+enum = '"r"'
+description = 'Read data from this program by `file`.'
+``````````
+name = 'mode'
+enum = '"w"'
+description = 'Write data to this program by `file`.'
+
+["read Lua 5.1"]
+description = 'Reads the `file`, according to the given formats, which specify what to read.'
+[[.enums]]
+name = 'mode'
+enum = '"*n"'
+description = 'Reads a numeral and returns it as number.'
+``````````
+name = 'mode'
+enum = '"*a"'
+description = 'Reads the whole file.'
+``````````
+name = 'mode'
+enum = '"*l"'
+description = 'Reads the next line skipping the end of line.'
+``````````
+name = 'mode'
+code = 'number'
+description = 'Reads a string with up to this number of bytes.'
+
+["read Lua 5.3"]
+description = 'Reads the `file`, according to the given formats, which specify what to read.'
+[[.enums]]
+name = 'mode'
+enum = '"n"'
+description = 'Reads a numeral and returns it as number.'
+``````````
+name = 'mode'
+enum = '"a"'
+description = 'Reads the whole file.'
+``````````
+name = 'mode'
+enum = '"l"'
+description = 'Reads the next line skipping the end of line.'
+``````````
+name = 'mode'
+enum = '"L"'
+description = 'Reads the next line keeping the end of line.'
+``````````
+name = 'mode'
+code = 'number'
+description = 'Reads a string with up to this number of bytes.'
+
+["read LuaJIT"]
+description = 'Reads the `file`, according to the given formats, which specify what to read.'
+[[.enums]]
+name = 'mode'
+enum = '"*n"'
+description = 'Reads a numeral and returns it as number.'
+``````````
+name = 'mode'
+enum = '"*a"'
+description = 'Reads the whole file.'
+``````````
+name = 'mode'
+enum = '"*l"'
+description = 'Reads the next line skipping the end of line.'
+``````````
+name = 'mode'
+enum = '"*L"'
+description = 'Reads the next line keeping the end of line.'
+``````````
+name = 'mode'
+code = 'number'
+description = 'Reads a string with up to this number of bytes.'
+
+[tmpfile]
+description = 'In case of success, returns a handle for a temporary file.'
+
+[type]
+description = 'Checks whether `obj` is a valid file handle.'
+[[.enums]]
+name = 'type'
+enum = '"file"'
+description = 'Is an open file handle.'
+``````````
+name = 'type'
+enum = '"closed file"'
+description = 'Is a closed file handle.'
+``````````
+name = 'type'
+code = 'nil'
+description = 'Is not a file handle.'
+
+[write]
+description = 'Writes the value of each of its arguments to default output file.'
diff --git a/server-beta/locale/en-US/libs/@lua/math.lni b/server-beta/locale/en-US/libs/@lua/math.lni
new file mode 100644
index 00000000..034153e7
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/math.lni
@@ -0,0 +1,132 @@
+[abs]
+description = 'Returns the absolute value of `x`.'
+
+[acos]
+description = 'Returns the arc cosine of `x` (in radians).'
+
+[asin]
+description = 'Returns the arc sine of `x` (in radians).'
+
+["atan Lua 5.1"]
+description = 'Returns the arc tangent of `x` (in radians).'
+
+["atan Lua 5.3"]
+description = 'Returns the arc tangent of `y/x` (in radians).'
+
+[atan2]
+description = 'Returns the arc tangent of `y/x` (in radians).'
+
+[ceil]
+description = 'Returns the smallest integral value larger than or equal to `x`.'
+
+[cos]
+description = 'Returns the cosine of `x` (assumed to be in radians).'
+
+[cosh]
+description = 'Returns the hyperbolic cosine of `x` (assumed to be in radians).'
+
+[deg]
+description = 'Converts the angle `x` from radians to degrees.'
+
+[exp]
+description = 'Returns the value `e^x` (where `e` is the base of natural logarithms).'
+
+[floor]
+description = 'Returns the largest integral value smaller than or equal to `x`.'
+
+[fmod]
+description = 'Returns the remainder of the division of `x` by `y` that rounds the quotient towards zero.'
+
+[frexp]
+description = 'Decompose `x` into tails and exponents. Returns `m` and `e` such that `x = m * (2 ^ e)`, `e` is an integer and the absolute value of `m` is in the range [0.5, 1) (or zero when `x` is zero).'
+
+[huge]
+description = 'A value larger than any other numeric value.'
+
+[log]
+description = 'Returns the logarithm of `x` in the given base.'
+
+['log Lua 5.1']
+description = 'Returns the natural logarithm of `x` .'
+
+[log10]
+description = 'Returns the base-10 logarithm of x.'
+
+[ldexp]
+description = 'Returns `m * (2 ^ e)` .'
+
+[max]
+description = 'Returns the argument with the maximum value, according to the Lua operator `<`.'
+
+[maxinteger]
+description = 'An integer with the maximum value for an integer.'
+
+[min]
+description = 'Returns the argument with the minimum value, according to the Lua operator `<`.'
+
+[mininteger]
+description = 'An integer with the minimum value for an integer.'
+
+[modf]
+description = 'Returns the integral part of `x` and the fractional part of `x`.'
+
+[pi]
+description = 'The value of *π*.'
+
+[pow]
+description = 'Returns `x ^ y` .'
+
+[rad]
+description = 'Converts the angle `x` from degrees to radians.'
+
+[random]
+description = [[
+* `math.random()`: Returns a float in the range [0,1).
+* `math.random(n)`: Returns a integer in the range [1, n].
+* `math.random(m, n)`: Returns a integer in the range [m, n].
+]]
+
+[randomseed]
+description = 'Sets `x` as the "seed" for the pseudo-random generator.'
+
+["randomseed Lua 5.4"]
+description = [[
+* `math.randomseed(x, y)`: Concatenate `x` and `y` into a 128-bit `seed` to reinitialize the pseudo-random generator.
+* `math.randomseed(x)`: Equate to `math.randomseed(x, 0)` .
+* `math.randomseed()`: Generates a seed with a weak attempt for randomness.
+]]
+
+[sin]
+description = 'Returns the sine of `x` (assumed to be in radians).'
+
+[sinh]
+description = 'Returns the hyperbolic sine of `x` (assumed to be in radians).'
+
+[sqrt]
+description = 'Returns the square root of `x`.'
+
+[tan]
+description = 'Returns the tangent of `x` (assumed to be in radians).'
+
+[tanh]
+description = 'Returns the hyperbolic tangent of `x` (assumed to be in radians).'
+
+[tointeger]
+description = 'If the value `x` is convertible to an integer, returns that integer.'
+
+[type]
+[[.enums]]
+name = 'type'
+enum = '"integer"'
+description = '`x` is an integer.'
+``````````
+name = 'type'
+enum = '"float"'
+description = '`x` is a float.'
+``````````
+name = 'type'
+code = 'nil'
+description = '`x` is not a number.'
+
+[ult]
+description = 'Returns `true` if and only if `m` is below `n` when they are compared as unsigned integers.'
diff --git a/server-beta/locale/en-US/libs/@lua/os.lni b/server-beta/locale/en-US/libs/@lua/os.lni
new file mode 100644
index 00000000..82b7c228
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/os.lni
@@ -0,0 +1,38 @@
+[clock]
+description = 'Returns an approximation of the amount in seconds of CPU time used by the program.'
+
+[data]
+description = 'Returns a string or a table containing date and time, formatted according to the given string `format`.'
+
+[difftime]
+description = 'Returns the difference, in seconds, from time `t1` to time `t2`.'
+
+[execute]
+description = 'Passes `command` to be executed by an operating system shell.'
+
+['execute Lua 5.1']
+description = 'Passes `command` to be executed by an operating system shell.'
+
+[exit]
+description = 'Calls the ISO C function `exit` to terminate the host program.'
+
+['exit Lua 5.1']
+description = 'Calls the C function `exit` to terminate the host program.'
+
+[getenv]
+description = 'Returns the value of the process environment variable `varname`.'
+
+[remove]
+description = 'Deletes the file with the given name.'
+
+[rename]
+description = 'Renames the file or directory named `oldname` to `newname`.'
+
+[setlocale]
+description = 'Sets the current locale of the program.'
+
+[time]
+description = 'Returns the current time when called without arguments, or a time representing the local date and time specified by the given table.'
+
+[tmpname]
+description = 'Returns a string with a file name that can be used for a temporary file.'
diff --git a/server-beta/locale/en-US/libs/@lua/package.lni b/server-beta/locale/en-US/libs/@lua/package.lni
new file mode 100644
index 00000000..1c8b633a
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/package.lni
@@ -0,0 +1,29 @@
+[config]
+description = 'A string describing some compile-time configurations for packages.'
+
+[cpath]
+description = 'The path used by `require` to search for a C loader.'
+
+[loaded]
+description = 'A table used by `require` to control which modules are already loaded.'
+
+[loaders]
+description = 'A table used by `require` to control how to load modules.'
+
+[loadlib]
+description = 'Dynamically links the host program with the C library `libname`.'
+
+[path]
+description = 'The path used by `require` to search for a Lua loader.'
+
+[preload]
+description = 'A table to store loaders for specific modules.'
+
+[searchers]
+description = 'A table used by `require` to control how to load modules.'
+
+[searchpath]
+description = 'Searches for the given `name` in the given `path`.'
+
+[seeall]
+describing = 'Sets a metatable for `module` with its `__index` field referring to the global environment, so that this module inherits values from the global environment. To be used as an option to function `module` .'
diff --git a/server-beta/locale/en-US/libs/@lua/string.lni b/server-beta/locale/en-US/libs/@lua/string.lni
new file mode 100644
index 00000000..2055b16b
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/string.lni
@@ -0,0 +1,72 @@
+[byte]
+description = 'Returns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.'
+
+[char]
+description = 'Returns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.'
+
+[dump]
+description = 'Returns a string containing a binary representation (a *binary chunk*) of the given function.'
+
+[find]
+description = 'Looks for the first match of [`pattern`](https://www.lua.org/manual/5.3/manual.html#6.4.1) in the string.'
+
+[format]
+description = 'Returns a formatted version of its variable number of arguments following the description given in its first argument.'
+
+[gmatch]
+description = [[
+----------
+```lua
+s = "hello world from Lua"
+for w in string.gmatch(s, "%a+") do
+ print(w)
+end
+```
+]]
+
+["gmatch Lua 5.4"]
+description = [[
+----------
+```lua
+s = "hello world from Lua"
+for w in string.gmatch(s, "%a+") do
+ print(w)
+end
+```
+]]
+
+[gsub]
+description = 'Returns a copy of s in which all (or the first `n`, if given) occurrences of the [`pattern`](https://www.lua.org/manual/5.3/manual.html#6.4.1) have been replaced by a replacement string specified by `repl`.'
+
+[len]
+description = 'Returns its length.'
+
+[lower]
+description = 'Returns a copy of this string with all uppercase letters changed to lowercase.'
+
+[match]
+description = 'Looks for the first match of [`pattern`](https://www.lua.org/manual/5.3/manual.html#6.4.1) in the string.'
+
+[pack]
+description = 'Returns a binary string containing the values `v1`, `v2`, etc. packed (that is, serialized in binary form) according to the format string [`fmt`](https://www.lua.org/manual/5.3/manual.html#6.4.2).'
+
+[packsize]
+description = 'Returns the size of a string resulting from `string.pack` with the given format.'
+
+[rep]
+description = 'Returns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.'
+
+['rep Lua 5.1']
+description = 'Returns a string that is the concatenation of `n` copies of the string `s` .'
+
+[reverse]
+description = 'Returns a string that is the string `s` reversed.'
+
+[sub]
+description = 'Returns the substring of the string that starts at `i` and continues until `j`.'
+
+[unpack]
+description = 'Returns the values packed in string according to the format string [`fmt`](https://www.lua.org/manual/5.3/manual.html#6.4.2).'
+
+[upper]
+description = 'Returns a copy of this string with all lowercase letters changed to uppercase.'
diff --git a/server-beta/locale/en-US/libs/@lua/table.lni b/server-beta/locale/en-US/libs/@lua/table.lni
new file mode 100644
index 00000000..d32ea4ae
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/table.lni
@@ -0,0 +1,39 @@
+[concat]
+description = [[
+--------
+```lua
+return list[i]..sep..list[i+1] ··· sep..list[j]
+```
+]]
+
+[insert]
+description = 'Inserts element `value` at position `pos` in `list`.'
+
+[maxn]
+description = 'Returns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.'
+
+[move]
+description = [[
+Moves elements from table `a1` to table `a2`.
+```lua
+a2[t],··· = a1[f],···,a1[e]
+return a2
+```
+]]
+
+[pack]
+description = 'Returns a new table with all arguments stored into keys `1`, `2`, etc. and with a field `"n"` with the total number of arguments.'
+
+[remove]
+description = 'Removes from `list` the element at position `pos`, returning the value of the removed element.'
+
+[sort]
+description = 'Sorts list elements in a given order, *in-place*, from `list[1]` to `list[#list]`.'
+
+[unpack]
+description = [[
+-------
+```lua
+return list[i], list[i+1], ···, list[j]
+```
+]]
diff --git a/server-beta/locale/en-US/libs/@lua/utf8.lni b/server-beta/locale/en-US/libs/@lua/utf8.lni
new file mode 100644
index 00000000..c7ab9bf3
--- /dev/null
+++ b/server-beta/locale/en-US/libs/@lua/utf8.lni
@@ -0,0 +1,40 @@
+[char]
+description = 'Receives zero or more integers, converts each one to its corresponding UTF-8 byte sequence and returns a string with the concatenation of all these sequences.'
+
+[charpattern]
+description = 'The pattern which matches exactly one UTF-8 byte sequence, assuming that the subject is a valid UTF-8 string.'
+
+[codes]
+description = [[
+--------
+```lua
+for p, c in utf8.codes(s) do
+ body
+end
+```
+]]
+
+["codes Lua 5.4"]
+description = [[
+--------
+```lua
+for p, c in utf8.codes(s) do
+ body
+end
+```
+]]
+
+[codepoint]
+description = 'Returns the codepoints (as integers) from all characters in `s` that start between byte position `i` and `j` (both included).'
+
+["codepoint Lua 5.4"]
+description = 'Returns the codepoints (as integers) from all characters in `s` that start between byte position `i` and `j` (both included).'
+
+[len]
+description = 'Returns the number of UTF-8 characters in string `s` that start between positions `i` and `j` (both inclusive).'
+
+["len Lua 5.4"]
+description = 'Returns the number of UTF-8 characters in string `s` that start between positions `i` and `j` (both inclusive).'
+
+[offset]
+description = 'Returns the position (in bytes) where the encoding of the `n`-th character of `s` (counting from position `i`) starts.'
diff --git a/server-beta/locale/en-US/script.lni b/server-beta/locale/en-US/script.lni
new file mode 100644
index 00000000..9c108203
--- /dev/null
+++ b/server-beta/locale/en-US/script.lni
@@ -0,0 +1,122 @@
+DIAG_LINE_ONLY_SPACE = 'Line with spaces only.'
+DIAG_LINE_POST_SPACE = 'Line with postspace.'
+DIAG_UNUSED_LOCAL = 'Unused local `{}`.'
+DIAG_UNDEF_GLOBAL = 'Undefined global `{}`.'
+DIAG_UNDEF_ENV_CHILD = 'Undefined variable `{}` (overloaded `_ENV` ).'
+DIAG_UNDEF_FENV_CHILD = 'Undefined variable `{}` (inside module).'
+DIAG_GLOBAL_IN_NIL_ENV = 'Invalid global (`_ENV` is `nil`).'
+DIAG_GLOBAL_IN_NIL_FENV = 'Invalid global (module environment is `nil`).'
+DIAG_UNUSED_LABEL = 'Unused label `{}`.'
+DIAG_UNUSED_FUNCTION = 'Unused functions.'
+DIAG_UNUSED_VARARG = 'Unused vararg.'
+DIAG_REDEFINED_LOCAL = 'Redefined local `{}`.'
+DIAG_DUPLICATE_INDEX = 'Duplicate index `{}`.'
+DIAG_DUPLICATE_METHOD = 'Duplicate method `{}`.'
+DIAG_PREVIOUS_CALL = 'Parsed as function call for the previous line. It may be necessary to add a `;` before.'
+DIAG_OVER_MAX_ARGS = 'The function takes only {:d} parameters, but you passed {:d}.'
+DIAG_OVER_MAX_ARGS = 'Only has {} variables, but you set {} values.'
+DIAG_AMBIGUITY_1 = 'Compute `{}` first. You may need to add brackets.'
+DIAG_LOWERCASE_GLOBAL = 'Global variable in lowercase initial.'
+DIAG_EMPTY_BLOCK = 'Empty block.'
+DIAG_DIAGNOSTICS = 'Lua Diagnostics.'
+DIAG_SYNTAX_CHECK = 'Lua Syntax Check.'
+DIAG_NEED_VERSION = 'Supported in {}, current is {}.'
+DIAG_DEFINED_VERSION = 'Defined in {}, current is {}.'
+DIAG_DEFINED_CUSTOM = 'Defined in {}.'
+DIAG_DUPLICATE_CLASS = 'Duplicate class.'
+DIAG_UNDEFINED_CLASS = 'Undefined Class.'
+DIAG_CYCLIC_EXTENDS = 'Cyclic extends.'
+DIAG_INEXISTENT_PARAM = 'Inexistent param.'
+DIAG_DUPLICATE_PARAM = 'Duplicate param.'
+DIAG_NEED_CLASS = 'Class needs to be defined first.'
+DIAG_DUPLICATE_FIELD = 'Duplicate field.'
+DIAG_SET_CONST = 'Assignment to const variable.'
+
+MWS_NOT_SUPPORT = '{} dose not support multi workspace for now, I may need to restart to support the new workspace ...'
+MWS_RESTART = 'Restart'
+MWS_NOT_COMPLETE = 'Workspace is not complete yet. You may try again later...'
+MWS_COMPLETE = 'Workspace is complete now. You may try again...'
+MWS_MAX_PRELOAD = 'Preloaded files has reached the upper limit ({}), you need to manually open the files that need to be loaded.'
+MWS_UCONFIG_FAILED = 'Saving user setting failed.'
+MWS_UCONFIG_UPDATED = 'User setting updated.'
+MWS_WCONFIG_UPDATED = 'Workspace setting updated.'
+
+PARSER_CRASH = 'Parser crashed! Last words:{}'
+PARSER_UNKNOWN = 'Unknown syntax error...'
+PARSER_MISS_NAME = '<name> expected.'
+PARSER_UNKNOWN_SYMBOL = 'Unexpected symbol `{symbol}`.'
+PARSER_MISS_SYMBOL = 'Missed symbol `{symbol}`.'
+PARSER_MISS_ESC_X = 'Should be 2 hexadecimal digits.'
+PARSER_UTF8_SMALL = 'At least 1 hexadecimal digit.'
+PARSER_UTF8_MAX = 'Should between {min} and {max} .'
+PARSER_ERR_ESC = 'Invalid escape sequence.'
+PARSER_MUST_X16 = 'Should be hexadecimal digits.'
+PARSER_MISS_EXPONENT = 'Missed digits for the exponent.'
+PARSER_MISS_EXP = '<exp> expected.'
+PARSER_MISS_FIELD = '<field> expected.'
+PARSER_MISS_METHOD = '<method> expected.'
+PARSER_ARGS_AFTER_DOTS = '`...` should be the last arg.'
+PARSER_KEYWORD = '<keyword> cannot be used as name.'
+PARSER_EXP_IN_ACTION = 'Unexpected <exp> .'
+PARSER_BREAK_OUTSIDE = '<break> not inside a loop.'
+PARSER_MALFORMED_NUMBER = 'Malformed number.'
+PARSER_ACTION_AFTER_RETURN = '<eof> expected after `return`.'
+PARSER_ACTION_AFTER_BREAK = '<eof> expected after `break`.'
+PARSER_NO_VISIBLE_LABEL = 'No visible label `{label}` .'
+PARSER_REDEFINE_LABEL = 'Label `{label}` already defined.'
+PARSER_UNSUPPORT_SYMBOL = '{version} does not support this grammar.'
+PARSER_UNEXPECT_DOTS = 'Cannot use `...` outside a vararg function.'
+PARSER_UNKNOWN_TAG = 'Unknown tag.'
+PARSER_MULTI_TAG = 'Dose not support multi tags.'
+PARSER_UNEXPECT_LFUNC_NAME = 'Local function can only use identifiers as name.'
+PARSER_ERR_LCOMMENT_END = 'Multi-line annotations should be closed by `{symbol}` .'
+PARSER_ERR_C_LONG_COMMENT = 'Lua should use `--[[ ]]` for multi-line annotations.'
+PARSER_ERR_LSTRING_END = 'Long string should be closed by `{symbol}` .'
+PARSER_ERR_ASSIGN_AS_EQ = 'Should use `=` for assignment.'
+PARSER_ERR_EQ_AS_ASSIGN = 'Should use `==` for equal.'
+PARSER_ERR_UEQ = 'Should use `~=` for not equal.'
+PARSER_ERR_THEN_AS_DO = 'Should use `then` .'
+PARSER_ERR_DO_AS_THEN = 'Should use `do` .'
+PARSER_MISS_END = 'Miss corresponding `end` .'
+PARSER_ERR_COMMENT_PREFIX = 'Lua should use `--` for annotations.'
+PARSER_MISS_SEP_IN_TABLE = 'Miss symbol `,` or `;` .'
+
+SYMBOL_ANONYMOUS = '<Anonymous>'
+
+HOVER_DOCUMENT_LUA51 = '[View documents](http://www.lua.org/manual/5.1/manual.html#pdf-{})'
+HOVER_DOCUMENT_LUA52 = '[View documents](http://www.lua.org/manual/5.2/manual.html#pdf-{})'
+HOVER_DOCUMENT_LUA53 = '[View documents](http://www.lua.org/manual/5.3/manual.html#pdf-{})'
+HOVER_DOCUMENT_LUA54 = '[View documents](http://www.lua.org/work/doc/manual.html#pdf-{})'
+HOVER_DOCUMENT_LUAJIT = '[View documents](http://www.lua.org/manual/5.1/manual.html#pdf-{})'
+HOVER_MULTI_PROTOTYPE = '({} prototypes)'
+
+ACTION_DISABLE_DIAG = 'Disable diagnostics ({}).'
+ACTION_MARK_GLOBAL = 'Mark `{}` as defined global.'
+ACTION_REMOVE_SPACE = 'Clear all postemptive spaces.'
+ACTION_ADD_SEMICOLON = 'Add `;` .'
+ACTION_ADD_BRACKETS = 'Add brackets.'
+ACTION_RUNTIME_VERSION = 'Change runtime version to {} .'
+ACTION_OPEN_LIBRARY = 'Load globals from {} .'
+ACTION_ADD_DO_END = 'Add `do ... end` .'
+ACTION_FIX_LCOMMENT_END = 'Modify to the correct multi-line annotations closing symbol.'
+ACTION_ADD_LCOMMENT_END = 'Close multi-line annotations.'
+ACTION_FIX_C_LONG_COMMENT = 'Modify to Lua multi-line annotations format.'
+ACTION_FIX_LSTRING_END = 'Modify to the correct long string closing symbol.'
+ACTION_ADD_LSTRING_END = 'Close long string.'
+ACTION_FIX_ASSIGN_AS_EQ = 'Modify to `=` .'
+ACTION_FIX_EQ_AS_ASSIGN = 'Modify to `==` .'
+ACTION_FIX_UEQ = 'Modify to `~=` .'
+ACTION_FIX_THEN_AS_DO = 'Modify to `then` .'
+ACTION_FIX_DO_AS_THEN = 'Modify to `do` .'
+ACTION_ADD_END = 'Add `end` (infer the addition location ny indentations).'
+ACTION_FIX_COMMENT_PREFIX = 'Modify to `--` .'
+
+COMMAND_DISABLE_DIAG = 'Disable diagnostics'
+COMMAND_MARK_GLOBAL = 'Mark defined global'
+COMMAND_REMOVE_SPACE = 'Clear all postemptive spaces'
+COMMAND_ADD_BRACKETS = 'Add brackets'
+COMMAND_RUNTIME_VERSION = 'Change runtime version'
+COMMAND_OPEN_LIBRARY = 'Load globals from 3rd library'
+
+DEBUG_MEMORY_LEAK = "{} I'm sorry for the serious memory leak. The language service will be restarted soon."
+DEBUG_RESTART_NOW = 'Restart now'
diff --git a/server-beta/locale/zh-CN/libs/@lua/basic.lni b/server-beta/locale/zh-CN/libs/@lua/basic.lni
new file mode 100644
index 00000000..d4b234b0
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/basic.lni
@@ -0,0 +1,239 @@
+[arg]
+description = '独立版Lua的启动参数。'
+
+[assert]
+description = '如果其参数 `v` 的值为假,它就调用 `error`。'
+
+[collectgarbage]
+[[.enums]]
+name = 'opt'
+enum = '"collect"'
+description = '做一次完整的垃圾收集循环。'
+``````````
+name = 'opt'
+enum = '"stop"'
+description = '停止垃圾收集器的运行。'
+``````````
+name = 'opt'
+enum = '"restart"'
+description = '重启垃圾收集器的自动运行。'
+``````````
+name = 'opt'
+enum = '"count"'
+description = '以 K 字节数为单位返回 Lua 使用的总内存数。'
+``````````
+name = 'opt'
+enum = '"step"'
+description = '单步运行垃圾收集器。'
+``````````
+name = 'opt'
+enum = '"setpause"'
+description = '设置收集器的 `间歇率`。'
+``````````
+name = 'opt'
+enum = '"setstepmul"'
+description = '设置收集器的 `步进倍率`。'
+``````````
+name = 'opt'
+enum = '"isrunning"'
+description = '返回表示收集器是否在工作的布尔值。'
+
+["collectgarbage Lua 5.4"]
+[[.enums]]
+name = 'opt'
+enum = '"collect"'
+description = '做一次完整的垃圾收集循环。'
+``````````
+name = 'opt'
+enum = '"stop"'
+description = '停止垃圾收集器的运行。'
+``````````
+name = 'opt'
+enum = '"restart"'
+description = '重启垃圾收集器的自动运行。'
+``````````
+name = 'opt'
+enum = '"count"'
+description = '以 K 字节数为单位返回 Lua 使用的总内存数。'
+``````````
+name = 'opt'
+enum = '"step"'
+description = '单步运行垃圾收集器。'
+``````````
+name = 'opt'
+enum = '"setpause"'
+description = '设置收集器的 `间歇率`。'
+``````````
+name = 'opt'
+enum = '"setstepmul"'
+description = '设置收集器的 `步进倍率`。'
+``````````
+name = 'opt'
+enum = '"incremental"'
+description = '改变收集器模式为增量模式。'
+``````````
+name = 'opt'
+enum = '"generational"'
+description = '改变收集器模式为分代模式。'
+``````````
+name = 'opt'
+enum = '"isrunning"'
+description = '返回表示收集器是否在工作的布尔值。'
+
+[dofile]
+description = '打开该名字的文件,并执行文件中的 Lua 代码块。'
+
+[error]
+description = '中止上一次保护函数调用, 将错误对象 message 返回。'
+
+[_G]
+description = '内部储存有全局环境。'
+
+[getfenv]
+description = '返回给定函数的环境。`f` 可以是一个Lua函数,也可是一个表示调用栈层级的数字。'
+
+[getmetatable]
+description = '返回该对象的元表。'
+
+[ipairs]
+description = [[
+----------------
+```lua
+for i, v in ipairs(t) do
+ body
+end
+```
+]]
+
+[load]
+description = '加载一个代码块。'
+[[.enums]]
+name = 'mode'
+enum = '"b"'
+description = '只能是二进制代码块。'
+``````````
+name = 'mode'
+enum = '"t"'
+description = '只能是文本代码块。'
+``````````
+name = 'mode'
+enum = '"bt"'
+description = '可以是二进制也可以是文本。'
+
+['load Lua 5.1']
+description = '使用 `func` 分段加载代码块。每次调用 `func` 必须返回一个字符串用于连接前文。'
+
+[loadfile]
+description = '从文件中获取代码块。'
+[[.enums]]
+name = 'mode'
+enum = '"b"'
+description = '只能是二进制代码块。'
+``````````
+name = 'mode'
+enum = '"t"'
+description = '只能是文本代码块。'
+``````````
+name = 'mode'
+enum = '"bt"'
+description = '可以是二进制也可以是文本。'
+
+['loadfile Lua 5.1']
+description = '从 `filename` 或标准输入中加载代码块。'
+
+[loadstring]
+description = '使用给定字符串加载代码块。'
+
+[module]
+description = '创建一个模块'
+
+[next]
+description = '返回该键的下一个键及其关联的值。'
+
+[pairs]
+description = [[
+----------------
+```lua
+for k, v in pairs(t) do
+ body
+end
+```
+]]
+
+[pcall]
+description = '传入参数,以 *保护模式* 调用函数 `f` 。'
+
+[print]
+description = '接收任意数量的参数,并将它们的值打印到 `stdout`。'
+
+[rawequal]
+description = '在不触发任何元方法的情况下 检查 `v1` 是否和 `v2` 相等。'
+
+[rawget]
+description = '在不触发任何元方法的情况下 获取 `table[index]` 的值。'
+
+[rawlen]
+description = '在不触发任何元方法的情况下 返回对象 `v` 的长度。'
+
+[rawset]
+description = '在不触发任何元方法的情况下 将 `table[index]` 设为 `value`。'
+
+[select]
+[[.enums]]
+name = 'index'
+enum = '"#"'
+description = '返回参数的个数。'
+``````````
+name = 'index'
+code = 'integer'
+description = '返回参数中第 `index` 个之后的部分。'
+
+[setfenv]
+description = '设置给定函数的环境。 `f` 可以是一个Lua函数,也可是一个表示调用栈层级的数字。'
+
+[setmetatable]
+description = '给指定表设置元表。'
+
+[tonumber]
+description = '尝试把参数转换为一个数字。'
+
+[tostring]
+description = '可以接收任何类型,它将其转换为人可阅读的字符串形式。'
+
+[type]
+description = '将参数的类型编码为一个字符串返回。'
+
+["_VERSION Lua 5.1"]
+description = '当前解释器版本号。'
+
+["_VERSION Lua 5.2"]
+description = '当前解释器版本号。'
+
+["_VERSION Lua 5.3"]
+description = '当前解释器版本号。'
+
+["_VERSION Lua 5.4"]
+description = '当前解释器版本号。'
+
+[warn]
+description = '使用所有参数组成的字符串消息来发送警告。'
+
+[xpcall]
+description = '传入参数并设置一个消息处理器 `msgh`,以 *保护模式* 调用函数 `f` 。'
+
+["xpcall Lua 5.1"]
+description = '设置一个消息处理器 `err`,以 *保护模式* 调用函数 `f` 。'
+
+[require]
+description = '加载一个模块,返回该模块的返回值(`nil`时为`true`)。'
+
+["require Lua 5.4"]
+description = '加载一个模块,返回该模块的返回值(`nil`时为`true`)与搜索器返回的加载数据。默认搜索器的加载数据指示了加载位置,对于文件来说就是文件路径。'
+
+[unpack]
+description = [[
+-------
+```lua
+return list[i], list[i+1], ···, list[j]
+```
+]]
diff --git a/server-beta/locale/zh-CN/libs/@lua/bit32.lni b/server-beta/locale/zh-CN/libs/@lua/bit32.lni
new file mode 100644
index 00000000..35aa22cc
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/bit32.lni
@@ -0,0 +1,55 @@
+[arshift]
+description = [[
+返回 `x` 向右位移 `disp` 位的结果。`disp` 为负时向左位移。这是算数位移操作,左侧的空位使用 `x` 的高位填充,右侧空位使用 `0` 填充。
+]]
+
+[band]
+description = '返回参数按位与的结果。'
+
+[bnot]
+description = [[
+返回 `x` 按位取反的结果。
+
+```lua
+assert(bit32.bnot(x) == (-1 - x) % 2^32)
+```
+]]
+
+[bor]
+description = '返回参数按位或的结果。'
+
+[btest]
+description = '参数按位与的结果不为0时,返回 `true` 。'
+
+[bxor]
+description = '返回参数按位异或的结果。'
+
+[extract]
+description = '返回 `n` 中第 `field` 到第 `field + width - 1` 位组成的结果。'
+
+[replace]
+description = '返回 `v` 的第 `field` 到第 `field + width - 1` 位替换 `n` 的对应位后的结果。'
+
+[lrotate]
+description = '返回 `x` 向左旋转 `disp` 位的结果。`disp` 为负时向右旋转。'
+
+[lshift]
+description = [[
+返回 `x` 向左位移 `disp` 位的结果。`disp` 为负时向右位移。空位总是使用 `0` 填充。
+
+```lua
+assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)
+```
+]]
+
+[rrotate]
+description = '返回 `x` 向右旋转 `disp` 位的结果。`disp` 为负时向左旋转。'
+
+[rshift]
+description = [[
+返回 `x` 向右位移 `disp` 位的结果。`disp` 为负时向左位移。空位总是使用 `0` 填充。
+
+```lua
+assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)
+```
+]]
diff --git a/server-beta/locale/zh-CN/libs/@lua/coroutine.lni b/server-beta/locale/zh-CN/libs/@lua/coroutine.lni
new file mode 100644
index 00000000..42f1cb8f
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/coroutine.lni
@@ -0,0 +1,42 @@
+[create]
+description = '创建一个主体函数为 `f` 的新协程。'
+
+[isyieldable]
+description = '如果正在运行的协程可以让出,则返回真。'
+
+['isyieldable Lua 5.4']
+description = '如果协程 `co` 可以让出,则返回真。`co` 默认为正在运行的协程。'
+
+[close]
+description = '关闭协程 `co`,并关闭它所有等待 *to-be-closed* 的变量,并将协程状态设为 `dead` 。'
+
+[resume]
+description = '开始或继续协程 `co` 的运行。'
+
+[running]
+description = '返回当前正在运行的协程加一个布尔量。 如果当前运行的协程是主线程,其为真。'
+
+[status]
+description = '以字符串形式返回协程 `co` 的状态。'
+[[.enums]]
+name = 'status'
+enum = '"running"'
+description = '正在运行。'
+``````````
+name = 'status'
+enum = '"suspended"'
+description = '挂起或是还没有开始运行。'
+``````````
+name = 'status'
+enum = '"normal"'
+description = '是活动的,但并不在运行。'
+``````````
+name = 'status'
+enum = '"dead"'
+description = '运行完主体函数或因错误停止。'
+
+[wrap]
+description = '创建一个主体函数为 `f` 的新协程。'
+
+[yield]
+description = '挂起正在调用的协程的执行。'
diff --git a/server-beta/locale/zh-CN/libs/@lua/debug.lni b/server-beta/locale/zh-CN/libs/@lua/debug.lni
new file mode 100644
index 00000000..0ed9e219
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/debug.lni
@@ -0,0 +1,140 @@
+["debug.debug"]
+description = '进入一个用户交互模式,运行用户输入的每个字符串。'
+
+[getfenv]
+description = '返回对象 `o` 的环境。'
+
+[gethook]
+description = '返回三个表示线程钩子设置的值: 当前钩子函数,当前钩子掩码,当前钩子计数 。'
+
+[getinfo]
+description = '返回关于一个函数信息的表。'
+[[.enums]]
+name = 'what'
+enum = '"n"'
+description = '`name` 和 `namewhat`'
+``````````
+name = 'what'
+enum = '"S"'
+description = '`source`,`short_src`,`linedefined`,`lastlinedefined`,和 `what`'
+``````````
+name = 'what'
+enum = '"l"'
+description = '`currentline`'
+``````````
+name = 'what'
+enum = '"t"'
+description = '`istailcall`'
+``````````
+name = 'what'
+enum = '"u"'
+description = '`nups`,`nparams`,和`isvararg`'
+``````````
+name = 'what'
+enum = '"f"'
+description = '`func`'
+``````````
+name = 'what'
+enum = '"L"'
+description = '`activelines`'
+
+['getinfo Lua 5.1']
+description = '返回关于一个函数信息的表。'
+[[.enums]]
+name = 'what'
+enum = '"n"'
+description = '`name` 和 `namewhat`'
+``````````
+name = 'what'
+enum = '"S"'
+description = '`source`,`short_src`,`linedefined`,`lastlinedefined`,和 `what`'
+``````````
+name = 'what'
+enum = '"l"'
+description = '`currentline`'
+``````````
+name = 'what'
+enum = '"t"'
+description = '`istailcall`'
+``````````
+name = 'what'
+enum = '"u"'
+description = '`nups`'
+``````````
+name = 'what'
+enum = '"f"'
+description = '`func`'
+``````````
+name = 'what'
+enum = '"L"'
+description = '`activelines`'
+
+[getlocal]
+description = '返回在栈的 `f` 层处函数的索引为 `local` 的局部变量的名字和值。'
+
+['getlocal Lua 5.1']
+description = '返回在栈的 `level` 层处函数的索引为 `local` 的局部变量的名字和值。'
+
+[getmetatable]
+description = '返回给定 `value` 的元表。'
+
+[getregistry]
+description = '返回注册表。'
+
+[getupvalue]
+description = '返回函数 `f` 的第 `up` 个上值的名字和值。'
+
+[getuservalue]
+description = '返回关联在 `u` 上的 `Lua` 值。'
+
+["getuservalue Lua 5.4"]
+description = '返回关联在 `u` 上的第 `n` 个 `Lua` 值,以及一个布尔,`false`表示值不存在。'
+
+[setCstacklimit]
+description = [[
+设置新的C栈限制。该限制控制Lua中嵌套调用的深度,以避免堆栈溢出。
+
+如果设置成功,该函数返回之前的限制;否则返回`false`。
+]]
+
+[setfenv]
+description = '将 `table` 设置为 `object` 的环境。'
+
+[sethook]
+description = '将一个函数作为钩子函数设入。'
+[[.enums]]
+name = 'mask'
+enum = '"c"'
+description = '每当 Lua 调用一个函数时,调用钩子。'
+``````````
+name = 'mask'
+enum = '"r"'
+description = '每当 Lua 从一个函数内返回时,调用钩子。'
+``````````
+name = 'mask'
+enum = '"l"'
+description = '每当 Lua 进入新的一行时,调用钩子。'
+
+[setlocal]
+description = '将 `value` 赋给 栈上第 `level` 层函数的第 `local` 个局部变量。'
+
+[setmetatable]
+description = '将 `value` 的元表设为 `table` (可以是 `nil`)。'
+
+[setupvalue]
+description = '将 `value` 设为函数 `f` 的第 `up` 个上值。'
+
+["setuservalue Lua 5.4"]
+description = '将 `value` 设为 `udata` 的第 `n` 个关联值。'
+
+[setuservalue]
+description = '将 `value` 设为 `udata` 的关联值。'
+
+[traceback]
+description = '返回调用栈的栈回溯信息。 字符串可选项 `message` 被添加在栈回溯信息的开头。'
+
+[upvalueid]
+description = '返回指定函数第 `n` 个上值的唯一标识符(一个轻量用户数据)。'
+
+[upvaluejoin]
+description = '让 Lua 闭包 `f1` 的第 `n1` 个上值 引用 `Lua` 闭包 `f2` 的第 `n2` 个上值。'
diff --git a/server-beta/locale/zh-CN/libs/@lua/file.lni b/server-beta/locale/zh-CN/libs/@lua/file.lni
new file mode 100644
index 00000000..4dcace0f
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/file.lni
@@ -0,0 +1,91 @@
+[close]
+description = '关闭 `file`。'
+
+[flush]
+description = '将写入的数据保存到 `file` 中。'
+
+[lines]
+description = [[
+------
+```lua
+for c in file:lines(...) do
+ body
+end
+```
+]]
+[[.enums]]
+name = 'mode'
+enum = '"n"'
+description = '读取一个数字,根据 Lua 的转换文法返回浮点数或整数。'
+``````````
+name = 'mode'
+enum = '"a"'
+description = '从当前位置开始读取整个文件。'
+``````````
+name = 'mode'
+enum = '"l"'
+description = '读取一行并忽略行结束标记。'
+``````````
+name = 'mode'
+enum = '"L"'
+description = '读取一行并保留行结束标记。'
+``````````
+name = 'mode'
+code = 'number'
+description = '读取一个不超过这个数量字节数的字符串。'
+
+[read]
+description = '读文件 `file`, 指定的格式决定了要读什么。'
+[[.enums]]
+name = 'mode'
+enum = '"n"'
+description = '读取一个数字,根据 Lua 的转换文法返回浮点数或整数。'
+``````````
+name = 'mode'
+enum = '"a"'
+description = '从当前位置开始读取整个文件。'
+``````````
+name = 'mode'
+enum = '"l"'
+description = '读取一行并忽略行结束标记。'
+``````````
+name = 'mode'
+enum = '"L"'
+description = '读取一行并保留行结束标记。'
+``````````
+name = 'mode'
+code = 'number'
+description = '读取一个不超过这个数量字节数的字符串。'
+
+[seek]
+description = '设置及获取基于文件开头处计算出的位置。'
+[[.enums]]
+name = 'whence'
+enum = '"set"'
+description = '基点为 0 (文件开头)。'
+``````````
+name = 'whence'
+enum = '"cur"'
+description = '基点为当前位置。'
+``````````
+name = 'whence'
+enum = '"end"'
+description = '基点为文件尾。'
+
+[setvbuf]
+description = '设置输出文件的缓冲模式。'
+[[.enums]]
+name = 'mode'
+enum = '"no"'
+description = '不缓冲;输出操作立刻生效。'
+``````````
+name = 'mode'
+enum = '"full"'
+description = '完全缓冲;只有在缓存满或调用 flush 时才做输出操作。'
+``````````
+name = 'mode'
+enum = '"line"'
+description = '行缓冲;输出将缓冲到每次换行前。'
+
+[write]
+description = '将参数的值逐个写入 `file`。'
diff --git a/server-beta/locale/zh-CN/libs/@lua/io.lni b/server-beta/locale/zh-CN/libs/@lua/io.lni
new file mode 100644
index 00000000..34f6d5eb
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/io.lni
@@ -0,0 +1,230 @@
+[stdin]
+description = '标准输入。'
+
+[stdout]
+description = '标准输出。'
+
+[stderr]
+description = '标准错误。'
+
+[close]
+description = '关闭 `file` 或默认输出文件。'
+
+[flush]
+description = '将写入的数据保存到默认输出文件中。'
+
+[input]
+description = '设置 `file` 为默认输入文件。'
+
+["lines Lua 5.1"]
+description = [[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+[[.enums]]
+name = 'mode'
+enum = '"*n"'
+description = '读取一个数字,根据 Lua 的转换文法返回浮点数或整数。'
+``````````
+name = 'mode'
+enum = '"*a"'
+description = '从当前位置开始读取整个文件。'
+``````````
+name = 'mode'
+enum = '"*l"'
+description = '读取一行并忽略行结束标记。'
+``````````
+name = 'mode'
+code = 'number'
+description = '读取一个不超过这个数量字节数的字符串。'
+
+["lines Lua 5.3"]
+description = [[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+[[.enums]]
+name = 'mode'
+enum = '"n"'
+description = '读取一个数字,根据 Lua 的转换文法返回浮点数或整数。'
+``````````
+name = 'mode'
+enum = '"a"'
+description = '从当前位置开始读取整个文件。'
+``````````
+name = 'mode'
+enum = '"l"'
+description = '读取一行并忽略行结束标记。'
+``````````
+name = 'mode'
+enum = '"L"'
+description = '读取一行并保留行结束标记。'
+``````````
+name = 'mode'
+code = 'number'
+description = '读取一个不超过这个数量字节数的字符串。'
+
+["lines LuaJIT"]
+description = [[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+[[.enums]]
+name = 'mode'
+enum = '"*n"'
+description = '读取一个数字,根据 Lua 的转换文法返回浮点数或整数。'
+``````````
+name = 'mode'
+enum = '"*a"'
+description = '从当前位置开始读取整个文件。'
+``````````
+name = 'mode'
+enum = '"*l"'
+description = '读取一行并忽略行结束标记。'
+``````````
+name = 'mode'
+enum = '"*L"'
+description = '读取一行并保留行结束标记。'
+``````````
+name = 'mode'
+code = 'number'
+description = '读取一个不超过这个数量字节数的字符串。'
+
+[open]
+description = '用字符串 `mode` 指定的模式打开一个文件。'
+[[.enums]]
+name = 'mode'
+enum = '"r"'
+description = '读模式。'
+``````````
+name = 'mode'
+enum = '"w"'
+description = '写模式。'
+``````````
+name = 'mode'
+enum = '"a"'
+description = '追加模式。'
+``````````
+name = 'mode'
+enum = '"r+"'
+description = '更新模式,所有之前的数据都保留。'
+``````````
+name = 'mode'
+enum = '"w+"'
+description = '更新模式,所有之前的数据都删除。'
+``````````
+name = 'mode'
+enum = '"a+"'
+description = '追加更新模式,所有之前的数据都保留,只允许在文件尾部做写入。'
+
+[output]
+description = '设置 `file` 为默认输出文件。'
+
+[popen]
+description = '用一个分离进程开启程序 `prog` 。'
+[[.enums]]
+name = 'mode'
+enum = '"r"'
+description = '从这个程序中读取数据。'
+``````````
+name = 'mode'
+enum = '"w"'
+description = '向这个程序写入输入。'
+
+["read Lua 5.1"]
+description = '读文件 `file`, 指定的格式决定了要读什么。'
+[[.enums]]
+name = 'mode'
+enum = '"*n"'
+description = '读取一个数字,根据 Lua 的转换文法返回浮点数或整数。'
+``````````
+name = 'mode'
+enum = '"*a"'
+description = '从当前位置开始读取整个文件。'
+``````````
+name = 'mode'
+enum = '"*l"'
+description = '读取一行并忽略行结束标记。'
+``````````
+name = 'mode'
+code = 'number'
+description = '读取一个不超过这个数量字节数的字符串。'
+
+["read Lua 5.3"]
+description = '读文件 `file`, 指定的格式决定了要读什么。'
+[[.enums]]
+name = 'mode'
+enum = '"n"'
+description = '读取一个数字,根据 Lua 的转换文法返回浮点数或整数。'
+``````````
+name = 'mode'
+enum = '"a"'
+description = '从当前位置开始读取整个文件。'
+``````````
+name = 'mode'
+enum = '"l"'
+description = '读取一行并忽略行结束标记。'
+``````````
+name = 'mode'
+enum = '"L"'
+description = '读取一行并保留行结束标记。'
+``````````
+name = 'mode'
+code = 'number'
+description = '读取一个不超过这个数量字节数的字符串。'
+
+["read LuaJIT"]
+description = '读文件 `file`, 指定的格式决定了要读什么。'
+[[.enums]]
+name = 'mode'
+enum = '"*n"'
+description = '读取一个数字,根据 Lua 的转换文法返回浮点数或整数。'
+``````````
+name = 'mode'
+enum = '"*a"'
+description = '从当前位置开始读取整个文件。'
+``````````
+name = 'mode'
+enum = '"*l"'
+description = '读取一行并忽略行结束标记。'
+``````````
+name = 'mode'
+enum = '"*L"'
+description = '读取一行并保留行结束标记。'
+``````````
+name = 'mode'
+code = 'number'
+description = '读取一个不超过这个数量字节数的字符串。'
+
+[tmpfile]
+description = '如果成功,返回一个临时文件的句柄。'
+
+[type]
+description = '检查 `obj` 是否是合法的文件句柄。'
+[[.enums]]
+name = 'type'
+enum = '"file"'
+description = '是一个打开的文件句柄。'
+``````````
+name = 'type'
+enum = '"closed file"'
+description = '是一个关闭的文件句柄。'
+``````````
+name = 'type'
+code = 'nil'
+description = '不是文件句柄。'
+
+[write]
+description = '将参数的值逐个写入默认输出文件。'
diff --git a/server-beta/locale/zh-CN/libs/@lua/math.lni b/server-beta/locale/zh-CN/libs/@lua/math.lni
new file mode 100644
index 00000000..fba72360
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/math.lni
@@ -0,0 +1,132 @@
+[abs]
+description = '返回 `x` 的绝对值。'
+
+[acos]
+description = '返回 `x` 的反余弦值(用弧度表示)。'
+
+[asin]
+description = '返回 `x` 的反正弦值(用弧度表示)。'
+
+["atan Lua 5.1"]
+description = '返回 `x` 的反正切值(用弧度表示)。'
+
+["atan Lua 5.3"]
+description = '返回 `y/x` 的反正切值(用弧度表示)。'
+
+[atan2]
+description = '返回 `y/x` 的反正切值(用弧度表示)。'
+
+[ceil]
+description = '返回不小于 `x` 的最小整数值。'
+
+[cos]
+description = '返回 `x` 的余弦(假定参数是弧度)。'
+
+[cosh]
+description = '返回 `x` 的双曲余弦(假定参数是弧度)。'
+
+[deg]
+description = '将角 `x` 从弧度转换为角度。'
+
+[exp]
+description = '返回 `e^x` 的值 (e 为自然对数的底)。'
+
+[floor]
+description = '返回不大于 `x` 的最大整数值。'
+
+[fmod]
+description = '返回 `x` 除以 `y`,将商向零圆整后的余数。'
+
+[frexp]
+description = '将 `x` 分解为尾数与指数,返回值符合 `x = m * (2 ^ e)` 。`e` 是一个整数,`m` 是 [0.5, 1) 之间的规格化小数 (`x` 为0时 `m` 为0)。'
+
+[huge]
+description = '一个比任何数字值都大的浮点数。'
+
+[ldexp]
+description = '返回 `m * (2 ^ e)` 。'
+
+[log]
+description = '返回以指定底的 `x` 的对数。'
+
+['log Lua 5.1']
+description = '返回 `x` 的自然对数。'
+
+[log10]
+description = '返回 `x` 的以10为底的对数。'
+
+[max]
+description = '返回参数中最大的值, 大小由 Lua 操作 `<` 决定。'
+
+[maxinteger]
+description = '最大值的整数。'
+
+[min]
+description = '返回参数中最小的值, 大小由 Lua 操作 `<` 决定。'
+
+[mininteger]
+description = '最小值的整数。'
+
+[modf]
+description = '返回 `x` 的整数部分和小数部分。'
+
+[pi]
+description = '*π* 的值。'
+
+[pow]
+description = '返回 `x ^ y` 。'
+
+[rad]
+description = '将角 `x` 从角度转换为弧度。'
+
+[random]
+description = [[
+* `math.random()`: 返回 [0,1) 区间内一致分布的浮点伪随机数。
+* `math.random(n)`: 返回 [1, n] 区间内一致分布的整数伪随机数。
+* `math.random(m, n)`: 返回 [m, n] 区间内一致分布的整数伪随机数。
+]]
+
+[randomseed]
+description = '把 `x` 设为伪随机数发生器的“种子”: 相同的种子产生相同的随机数列。'
+
+["randomseed Lua 5.4"]
+description = [[
+* `math.randomseed(x, y)`: 将 `x` 与 `y` 连接为128位的种子来重新初始化伪随机生成器。
+* `math.randomseed(x)`: 等同于 `math.randomseed(x, 0)` 。
+* `math.randomseed()`: Generates a seed with a weak attempt for randomness.
+]]
+
+[sin]
+description = '返回 `x` 的正弦值(假定参数是弧度)。'
+
+[sinh]
+description = '返回 `x` 的双曲正弦值(假定参数是弧度)。'
+
+[sqrt]
+description = '返回 `x` 的平方根。'
+
+[tan]
+description = '返回 `x` 的正切值(假定参数是弧度)。'
+
+[tanh]
+description = '返回 `x` 的双曲正切值(假定参数是弧度)。'
+
+[tointeger]
+description = '如果 `x` 可以转换为一个整数, 返回该整数。'
+
+[type]
+[[.enums]]
+name = 'type'
+enum = '"integer"'
+description = '`x` 是一个整数。'
+``````````
+name = 'type'
+enum = '"float"'
+description = '`x` 是一个浮点数。'
+``````````
+name = 'type'
+code = 'nil'
+description = '`x` 不是一个数字。'
+
+[ult]
+description = '如果整数 `m` 和 `n` 以无符号整数形式比较, `m` 在 `n` 之下,返回布尔真否则返回假。'
diff --git a/server-beta/locale/zh-CN/libs/@lua/os.lni b/server-beta/locale/zh-CN/libs/@lua/os.lni
new file mode 100644
index 00000000..e3702667
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/os.lni
@@ -0,0 +1,38 @@
+[clock]
+description = '返回程序使用的按秒计 CPU 时间的近似值。'
+
+[data]
+description = '返回一个包含日期及时刻的字符串或表。 格式化方法取决于所给字符串 `format`。'
+
+[difftime]
+description = '返回以秒计算的时刻 `t1` 到 `t2` 的差值。'
+
+[execute]
+description = '调用系统解释器执行 `command`。'
+
+['execute Lua 5.1']
+description = '调用系统解释器执行 `command`。'
+
+[exit]
+description = '调用 ISO C 函数 `exit` 终止宿主程序。'
+
+['exit Lua 5.1']
+description = '调用 C 函数 `exit` 终止宿主程序。'
+
+[getenv]
+description = '返回进程环境变量 `varname` 的值。'
+
+[remove]
+description = '删除指定名字的文件。'
+
+[rename]
+description = '将名字为 `oldname` 的文件或目录更名为 `newname`。'
+
+[setlocale]
+description = '设置程序的当前区域。'
+
+[time]
+description = '当不传参数时,返回当前时刻。 如果传入一张表,就返回由这张表表示的时刻。'
+
+[tmpname]
+description = '返回一个可用于临时文件的文件名字符串。'
diff --git a/server-beta/locale/zh-CN/libs/@lua/package.lni b/server-beta/locale/zh-CN/libs/@lua/package.lni
new file mode 100644
index 00000000..209a9dc1
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/package.lni
@@ -0,0 +1,29 @@
+[config]
+description = '一个描述有一些为包管理准备的编译期配置信息的串。'
+
+[cpath]
+description = '这个路径被 `require` 在 C 加载器中做搜索时用到。'
+
+[loaded]
+description = '用于 `require` 控制哪些模块已经被加载的表。'
+
+[loaders]
+description = '用于 `require` 控制如何加载模块的表。'
+
+[loadlib]
+description = '让宿主程序动态链接 C 库 `libname` 。'
+
+[path]
+description = '这个路径被 `require` 在 Lua 加载器中做搜索时用到。'
+
+[preload]
+description = '保存有一些特殊模块的加载器。'
+
+[searchers]
+description = '用于 `require` 控制如何加载模块的表。'
+
+[searchpath]
+description = '在指定 `path` 中搜索指定的 `name` 。'
+
+[seeall]
+description = '给 `module` 设置一个元表,该元表的 `__index` 域为全局环境,这样模块便会继承全局环境的值。可作为 `module` 函数的选项。'
diff --git a/server-beta/locale/zh-CN/libs/@lua/string.lni b/server-beta/locale/zh-CN/libs/@lua/string.lni
new file mode 100644
index 00000000..6aa78cce
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/string.lni
@@ -0,0 +1,61 @@
+[byte]
+description = '返回字符 `s[i]`, `s[i+1]`, ... ,`s[j]` 的内部数字编码。'
+
+[char]
+description = '接收零或更多的整数。 返回和参数数量相同长度的字符串。 其中每个字符的内部编码值等于对应的参数值。'
+
+[dump]
+description = '返回包含有以二进制方式表示的(一个 *二进制代码块* )指定函数的字符串。'
+
+[find]
+description = '查找第一个字符串中匹配到的 [`pattern`](https://cloudwu.github.io/lua53doc/manual.html#6.4.1)。'
+
+[format]
+description = '返回不定数量参数的格式化版本,格式化串为第一个参数。'
+
+[gmatch]
+description = [[
+----------
+```lua
+s = "hello world from Lua"
+for w in string.gmatch(s, "%a+") do
+ print(w)
+end
+```
+]]
+
+[gsub]
+description = '将字符串中,所有的(或是在 `n` 给出时的前 `n` 个) [`pattern`](https://cloudwu.github.io/lua53doc/manual.html#6.4.1) 都替换成 `repl` ,并返回其副本。'
+
+[len]
+description = '返回其长度。'
+
+[lower]
+description = '将其中的大写字符都转为小写后返回其副本。'
+
+[match]
+description = '在字符串中找到第一个能用 [`pattern`](https://cloudwu.github.io/lua53doc/manual.html#6.4.1) 匹配到的部分。'
+
+[pack]
+description = '返回一个打包了(即以二进制形式序列化) `v1`, `v2` 等值的二进制字符串。 字符串 [`fmt`](https://cloudwu.github.io/lua53doc/manual.html#6.4.2) 为打包格式。'
+
+[packsize]
+description = '返回以指定格式用 `string.pack` 打包的字符串的长度。'
+
+[rep]
+description = '返回 `n` 个字符串 `s` 以字符串 `sep` 为分割符连在一起的字符串。'
+
+['rep Lua 5.1']
+description = '返回 `n` 个字符串 `s` 连在一起的字符串。'
+
+[reverse]
+description = '返回字符串的翻转串。'
+
+[sub]
+description = '返回字符串的子串, 该子串从 `i` 开始到 `j` 为止。'
+
+[unpack]
+description = '返回以格式 [`fmt`](https://cloudwu.github.io/lua53doc/manual.html#6.4.2) 打包在字符串中的值。'
+
+[upper]
+description = '接收一个字符串,将其中的小写字符都转为大写后返回其副本。'
diff --git a/server-beta/locale/zh-CN/libs/@lua/table.lni b/server-beta/locale/zh-CN/libs/@lua/table.lni
new file mode 100644
index 00000000..9163d8e5
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/table.lni
@@ -0,0 +1,39 @@
+[concat]
+description = [[
+--------
+```lua
+return list[i]..sep..list[i+1] ··· sep..list[j]
+```
+]]
+
+[insert]
+description = '在 `list` 的位置 `pos` 处插入元素 `value`。'
+
+[maxn]
+description = '返回给定表的最大正数索引,如果表没有正数索引,则返回零。'
+
+[move]
+description = [[
+将元素从表 `a1` 移到表 `a2`。
+```lua
+a2[t],··· = a1[f],···,a1[e]
+return a2
+```
+]]
+
+[pack]
+description = '返回用所有参数以键 `1`,`2`, 等填充的新表, 并将 `"n"` 这个域设为参数的总数。'
+
+[remove]
+description = '移除 `list` 中 `pos` 位置上的元素,并返回这个被移除的值。'
+
+[sort]
+description = '在表内从 `list[1]` 到 `list[#list]` *原地* 对其间元素按指定次序排序。'
+
+[unpack]
+description = [[
+-------
+```lua
+return list[i], list[i+1], ···, list[j]
+```
+]]
diff --git a/server-beta/locale/zh-CN/libs/@lua/utf8.lni b/server-beta/locale/zh-CN/libs/@lua/utf8.lni
new file mode 100644
index 00000000..0af45153
--- /dev/null
+++ b/server-beta/locale/zh-CN/libs/@lua/utf8.lni
@@ -0,0 +1,24 @@
+[char]
+description = '接收零或多个整数, 将每个整数转换成对应的 UTF-8 字节序列,并返回这些序列连接到一起的字符串。'
+
+[charpattern]
+description = '用于精确匹配到一个 UTF-8 字节序列的模式,它假定处理的对象是一个合法的 UTF-8 字符串。'
+
+[codes]
+description = [[
+--------
+```lua
+for p, c in utf8.codes(s) do
+ body
+end
+```
+]]
+
+[codepoint]
+description = '以整数形式返回 `s` 中 从位置 `i` 到 `j` 间(包括两端) 所有字符的编号。'
+
+[len]
+description = '返回字符串 `s` 中 从位置 `i` 到 `j` 间 (包括两端) UTF-8 字符的个数。'
+
+[offset]
+description = '返回编码在 `s` 中的第 `n` 个字符的开始位置(按字节数) (从位置 `i` 处开始统计)。'
diff --git a/server-beta/locale/zh-CN/script.lni b/server-beta/locale/zh-CN/script.lni
new file mode 100644
index 00000000..b441db5a
--- /dev/null
+++ b/server-beta/locale/zh-CN/script.lni
@@ -0,0 +1,122 @@
+DIAG_LINE_ONLY_SPACE = '只有空格的空行。'
+DIAG_LINE_POST_SPACE = '后置空格。'
+DIAG_UNUSED_LOCAL = '未使用的局部变量 `{}`。'
+DIAG_UNDEF_GLOBAL = '未定义的全局变量 `{}`。'
+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_OVER_MAX_ARGS = '函数只接收 {:d} 个参数,但你传了 {:d} 个。'
+DIAG_OVER_MAX_VALUES = '只有 {} 个变量,但你设置了 {} 个值。'
+DIAG_AMBIGUITY_1 = '会优先运算 `{}`,你可能需要加个括号。'
+DIAG_LOWERCASE_GLOBAL = '首字母小写的全局变量'
+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_FIELD = '重复定义的 field 。'
+DIAG_SET_CONST = '不能对常量赋值。'
+
+MWS_NOT_SUPPORT = '{} 目前还不支持多工作目录,我可能需要重启才能支持新的工作目录...'
+MWS_RESTART = '重启'
+MWS_NOT_COMPLETE = '工作目录还没有准备好,你可以稍后再试一下...'
+MWS_COMPLETE = '工作目录准备好了,你可以再试一下了...'
+MWS_MAX_PRELOAD = '预加载文件数已达上限({}),你需要手动打开需要加载的文件。'
+MWS_UCONFIG_FAILED = '用户配置保存失败。'
+MWS_UCONFIG_UPDATED = '用户配置已更新。'
+MWS_WCONFIG_UPDATED = '工作区配置已更新。'
+
+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_UNKNOWN_TAG = '不支持的标签。'
+PARSER_MULTI_TAG = '只能设置一个标签。'
+PARSER_UNEXPECT_LFUNC_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 = '需要用`,`或`;`进行分割。'
+
+SYMBOL_ANONYMOUS = '<匿名函数>'
+
+HOVER_DOCUMENT_LUA51 = '[查看文档](http://www.lua.org/manual/5.1/manual.html#pdf-{})'
+HOVER_DOCUMENT_LUA52 = '[查看文档](http://www.lua.org/manual/5.2/manual.html#pdf-{})'
+HOVER_DOCUMENT_LUA53 = '[查看文档](http://cloudwu.github.io/lua53doc/manual.html#pdf-{})'
+HOVER_DOCUMENT_LUA54 = '[查看文档](http://www.lua.org/work/doc/manual.html#pdf-{})'
+HOVER_DOCUMENT_LUAJIT = '[查看文档](http://www.lua.org/manual/5.1/manual.html#pdf-{})'
+HOVER_MULTI_PROTOTYPE = '({} 个原型)'
+
+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 = '改为 `--` 。'
+
+COMMAND_DISABLE_DIAG = '禁用诊断'
+COMMAND_MARK_GLOBAL = '标记全局变量'
+COMMAND_REMOVE_SPACE = '清除所有后置空格'
+COMMAND_ADD_BRACKETS = '添加括号'
+COMMAND_RUNTIME_VERSION = '修改运行版本'
+COMMAND_OPEN_LIBRARY = '加载第三方库中的全局变量'
+
+DEBUG_MEMORY_LEAK = '{} 很抱歉发生了严重的内存泄漏,语言服务即将重启。'
+DEBUG_RESTART_NOW = '立即重启'