(ComputerCraft)(Minecraft 版本 1.7.10)(问题)制作语言文件读取器

我想为我的操作系统制作语言读取器,但找不到任何帮助我的东西。

我想把列表放到我的其他脚本中。

这是 de-de 语言文件(位置:/os/bin/):

    de = {
    Menu = “菜单”,
    Shutdown = “关闭”,
    MenuLength = 4,
    ShutdownLength = 11
    }

请问有谁能帮助我吗?

原文链接 https://stackoverflow.com/questions/70367341

点赞
stackoverflow用户11740758
stackoverflow用户11740758

gsub() 字符串函数/方法可以使用你的翻译表进行翻译。

你只需要为此使用你的语言表。

例如...

# /usr/bin/lua
Lua 5.3.5  版权所有 (C) 1994-2018 Lua.org, PUC-Rio
> de = {
>>     菜单 = "Menü",
>>     关机 = "Ausschalten",
>>     菜单长度 = 4,
>>     关机长度 = 11
>>     }
> 语言 = de
> print(('菜单 关机'):gsub('(%g+)', 语言))
Menü Ausschalten    2

如果你必须使用 Lua 5.1,那么使用 %w...

# /bin/lua
Lua 5.1.5  版权所有 (C) 1994-2012 Lua.org, PUC-Rio
> de = {
>>     菜单 = "Menü",
>>     关机 = "Ausschalten",
>>     菜单长度 = 4,
>>     关机长度 = 11
>>     }
> 语言 = de
> print(('菜单 关机'):gsub('(%w+)', 语言))
Menü Ausschalten    2

长度可以使用 len() 函数/方法进行测量...

> print(('关机'):gsub('(%w+)', 语言):len())
11
> print(('菜单'):gsub('(%w+)', 语言):len())
5

如你所见,在 Lua 中,Umlaut ü 的测量是不同的。

要引入你的 de-de.lua,我建议使用 dofile(),并以你的特定路径加载它...

Lua 5.1.5  版权所有 (C) 1994-2012 Lua.org, PUC-Rio
> dofile('/os/bin/de-de.lua') -- 但读取安全性注释
> print(de['菜单'])
Menü

尝试将带有德语 Umlaut 的特殊词转换为其字节表示。

然后将字节放入你的翻译表中...

$ lua
Lua 5.4.3  版权所有 (C) 1994-2021 Lua.org, PUC-Rio
> print(('Menü'):byte(1,-1))
77  101 110 195 188
> print('\77\101\110\195\188')
Menü
> de = {菜单 = '\77\101\110\195\188'}
> print(('菜单'):gsub('%g+', de))
Menü    1

...或者对于 Lua 5.1...

$ /bin/lua
Lua 5.1.5  版权所有 (C) 1994-2012 Lua.org, PUC-Rio
> print(('Menü'):byte(1, -1))
77  101 110 195 188
> print('\77\101\110\195\188')
Menü
> de = {菜单 = '\77\101\110\195\188'}
> print(('菜单'):gsub('%w+', de))
Menü    1

你也可以混合使用。

以下是字节表示:üäößÜÄÖ

> print(('üäößÜÄÖ'):byte(1, -1))
195 188 195 164 195 182 195 159 195 156 195 132 195 150
> de = {菜单 = 'Men\195\188', Umlaute = '\195\188\195\164\195\182\195\159\195\156\195\132\195\150'}
> print(('菜单 特殊符号'):gsub('%w+', de))
Menü üäößÜÄÖ    2
2021-12-16 09:02:34