From 2ae1d575ab085f6a3900efecd90297b9419fd1c2 Mon Sep 17 00:00:00 2001 From: WHR Date: Tue, 29 Sep 2020 22:08:56 +0800 Subject: [PATCH 01/12] Update and improve Chinese translations --- .../assets/opencomputers/lang/zh_CN.lang | 437 +++++++++--------- .../assets/opencomputers/lang/zh_TW.lang | 429 ++++++++--------- 2 files changed, 441 insertions(+), 425 deletions(-) diff --git a/src/main/resources/assets/opencomputers/lang/zh_CN.lang b/src/main/resources/assets/opencomputers/lang/zh_CN.lang index 0a0680ba9..6da7ed9c8 100644 --- a/src/main/resources/assets/opencomputers/lang/zh_CN.lang +++ b/src/main/resources/assets/opencomputers/lang/zh_CN.lang @@ -3,11 +3,12 @@ # Use [nl] to for a line break. 使用[nl]作为换行标志 # Blocks -tile.oc.accessPoint.name=§c桥接器§7 +tile.oc.accessPoint.name=§c访问点§7 tile.oc.adapter.name=适配器 -tile.oc.assembler.name=机器人装配器 +tile.oc.assembler.name=设备装配器 tile.oc.cable.name=线缆 tile.oc.capacitor.name=电容 +tile.oc.carpetedCapacitor.name=地毯电容 tile.oc.case1.name=基础机箱 tile.oc.case2.name=高级机箱 tile.oc.case3.name=超级机箱 @@ -28,7 +29,7 @@ tile.oc.powerConverter.name=能量转换器 tile.oc.powerDistributor.name=能量分配器 tile.oc.print.name=3D打印 tile.oc.printer.name=3D打印机 -tile.oc.raid.name=Raid磁盘阵列 +tile.oc.raid.name=磁盘阵列 tile.oc.redstone.name=红石I/O端口 tile.oc.relay.name=中继器 tile.oc.robot.name=机器人 @@ -37,18 +38,18 @@ tile.oc.screen1.name=基础显示屏 tile.oc.screen2.name=高级显示屏 tile.oc.screen3.name=超级显示屏 tile.oc.rack.name=机架 -tile.oc.switch.name=§c开关§7 -tile.oc.switch.name=交换机 +tile.oc.switch.name=§c交换机§7 +tile.oc.transposer.name=传送器 tile.oc.waypoint.name=路径点 # Items item.oc.AbstractBusCard.name=抽象类总线卡 item.oc.Acid.name=蚀刻药水 -item.oc.ALU.name=算逻运算单元(ALU) +item.oc.ALU.name=逻辑运算单元(ALU) item.oc.Analyzer.name=分析器 -item.oc.APU0.name=基础加速运算单元(APU) -item.oc.APU1.name=高级加速运算单元(APU) -item.oc.APU2.name=创造加速运算单元(APU) +item.oc.APU0.name=基础加速运算单元(APU) +item.oc.APU1.name=高级加速运算单元(APU) +item.oc.APU2.name=创造加速运算单元(APU) item.oc.ArrowKeys.name=方向键 item.oc.ButtonGroup.name=按钮组 item.oc.CardBase.name=基板 @@ -57,10 +58,11 @@ item.oc.CircuitBoard.name=电路板 item.oc.ComponentBus0.name=基础组件总线 item.oc.ComponentBus1.name=高级组件总线 item.oc.ComponentBus2.name=超级组件总线 -item.oc.ControlUnit.name=控制单元(CU) -item.oc.CPU0.name=基础中央处理器(CPU) -item.oc.CPU1.name=高级中央处理器(CPU) -item.oc.CPU2.name=超级中央处理器(CPU) +item.oc.ComponentBus3.name=创造模式组件总线 +item.oc.ControlUnit.name=控制单元(CU) +item.oc.CPU0.name=基础中央处理器(CPU) +item.oc.CPU1.name=高级中央处理器(CPU) +item.oc.CPU2.name=超级中央处理器(CPU) item.oc.CuttingWire.name=切割线 item.oc.DataCard0.name=基础数据卡 item.oc.DataCard1.name=高级数据卡 @@ -68,12 +70,12 @@ item.oc.DataCard2.name=超级数据卡 item.oc.DebugCard.name=调试卡 item.oc.Debugger.name=网络调试器 item.oc.DiamondChip.name=钻石芯片 -item.oc.Disk.name=磁碟 -item.oc.DiskDriveMountable.name=磁盘 +item.oc.Disk.name=磁碟片 +item.oc.DiskDriveMountable.name=磁盘驱动器 item.oc.Drone.name=无人机 -item.oc.DroneCase0.name=基础机器人外壳 -item.oc.DroneCase1.name=高级机器人外壳 -item.oc.DroneCase3.name=创造机器人外壳 +item.oc.DroneCase0.name=基础无人机外壳 +item.oc.DroneCase1.name=高级无人机外壳 +item.oc.DroneCase3.name=创造无人机外壳 item.oc.eeprom.name=EEPROM item.oc.FloppyDisk.name=软盘 item.oc.GraphicsCard0.name=基础显卡 @@ -84,18 +86,18 @@ item.oc.HardDiskDrive1.name=高级磁盘驱动器 item.oc.HardDiskDrive2.name=超级磁盘驱动器 item.oc.hoverBoots.name=悬浮靴 item.oc.InkCartridge.name=墨盒 -item.oc.InkCartridgeEmpty.name=墨盒(空) -item.oc.InternetCard.name=因特网卡 -item.oc.Interweb.name=因特网 +item.oc.InkCartridgeEmpty.name=墨盒(空) +item.oc.InternetCard.name=互联网卡 +item.oc.Interweb.name=互联网 item.oc.IronNugget.name=铁粒 item.oc.LinkedCard.name=连接卡 item.oc.Manual.name=开放式电脑使用手册 -item.oc.Memory0.name=存储器-T1 -item.oc.Memory1.name=存储器-T1.5 -item.oc.Memory2.name=存储器-T2 -item.oc.Memory3.name=存储器-T2.5 -item.oc.Memory4.name=存储器-T3 -item.oc.Memory5.name=存储器-T3.5 +item.oc.Memory0.name=内存-T1 +item.oc.Memory1.name=内存-T1.5 +item.oc.Memory2.name=内存-T2 +item.oc.Memory3.name=内存-T2.5 +item.oc.Memory4.name=内存-T3 +item.oc.Memory5.name=内存-T3.5 item.oc.Microchip0.name=简易微芯片 item.oc.Microchip1.name=高级微芯片 item.oc.Microchip2.name=超级微芯片 @@ -106,7 +108,7 @@ item.oc.Nanomachines.name=纳米机器 item.oc.NetworkCard.name=网卡 item.oc.NumPad.name=数字键盘 item.oc.Present.name=一点小礼物... -item.oc.PrintedCircuitBoard.name=印刷电路板(PCB) +item.oc.PrintedCircuitBoard.name=印刷电路板(PCB) item.oc.RawCircuitBoard.name=未加工电路板 item.oc.RedstoneCard0.name=基础红石卡 item.oc.RedstoneCard1.name=高级红石卡 @@ -152,8 +154,8 @@ item.oc.UpgradeTank.name=水箱升级 item.oc.UpgradeTankController.name=高级水箱升级 item.oc.UpgradeTractorBeam.name=牵引光束升级 item.oc.UpgradeTrading.name=交易升级 -item.oc.WirelessNetworkCard0.name=无线网卡 -item.oc.WirelessNetworkCard1.name=无线网卡 +item.oc.WirelessNetworkCard0.name=基础无线网卡 +item.oc.WirelessNetworkCard1.name=高级无线网卡 item.oc.WorldSensorCard.name=世界感应卡 item.oc.wrench.name=螺丝刀扳手 @@ -161,86 +163,89 @@ item.oc.wrench.name=螺丝刀扳手 entity.oc.Drone.name=无人机 # GUI -oc:gui.Analyzer.Address=§6地址§f: %s -oc:gui.Analyzer.AddressCopied=地址已复制到剪贴板. -oc:gui.Analyzer.ChargerSpeed=§6充电速度§f: %s -oc:gui.Analyzer.ComponentName=§6组件名§f: %s -oc:gui.Analyzer.Components=§6已连接组件的数量§f: %s -oc:gui.Analyzer.CopyToClipboard=点击以复制到剪贴板. -oc:gui.Analyzer.LastError=§6上一个错误§f: %s -oc:gui.Analyzer.RobotName=§6名称§f: %s -oc:gui.Analyzer.RobotOwner=§6主人§f: %s -oc:gui.Analyzer.RobotXp=§6经验§f: %s (等级 %s) -oc:gui.Analyzer.StoredEnergy=§6存储能量§f: %s -oc:gui.Analyzer.TotalEnergy=§6存储能量上限§f: %s -oc:gui.Analyzer.Users=§6用户§f: %s -oc:gui.Analyzer.WirelessStrength=§6信号强度§f: %s +oc:gui.Analyzer.Address=§6地址§f:%s +oc:gui.Analyzer.AddressCopied=地址已复制到剪贴板。 +oc:gui.Analyzer.ChargerSpeed=§6充电速度§f:%s +oc:gui.Analyzer.ComponentName=§6组件名§f:%s +oc:gui.Analyzer.Components=§6已连接组件的数量§f:%s +oc:gui.Analyzer.CopyToClipboard=点击以复制到剪贴板。 +oc:gui.Analyzer.LastError=§6上一个错误§f:%s +oc:gui.Analyzer.RobotName=§6名称§f:%s +oc:gui.Analyzer.RobotOwner=§6主人§f:%s +oc:gui.Analyzer.RobotXp=§6经验§f:%s (等级 %s) +oc:gui.Analyzer.StoredEnergy=§6存储能量§f:%s +oc:gui.Analyzer.TotalEnergy=§6存储能量上限§f:%s +oc:gui.Analyzer.Users=§6用户§f:%s +oc:gui.Analyzer.WirelessStrength=§6信号强度§f:%s oc:gui.Assembler.Collect=收集输出 -oc:gui.Assembler.Complexity=复杂度: %s/%s +oc:gui.Assembler.Complexity=复杂度:%s/%s oc:gui.Assembler.InsertCase=插入一个机箱 oc:gui.Assembler.InsertCPU=插入一个CPU oc:gui.Assembler.InsertRAM=插入一些存储器 -oc:gui.Assembler.Progress=进度: %s%% (%s) +oc:gui.Assembler.Progress=进度:%s%% (%s) oc:gui.Assembler.Run=组装 oc:gui.Assembler.Warning.BIOS=BIOS oc:gui.Assembler.Warning.GraphicsCard=显卡 oc:gui.Assembler.Warning.Inventory=物品栏升级 oc:gui.Assembler.Warning.Keyboard=键盘 -oc:gui.Assembler.Warning.OS=运行环境 +oc:gui.Assembler.Warning.OS=可引导介质 oc:gui.Assembler.Warning.Screen=显示屏 -oc:gui.Assembler.Warnings=§e警告§7: 推荐的组件丢失. -oc:gui.Chat.NewVersion=有新版本可用: %s -oc:gui.Chat.TextureName=§7材质名为§a%s§f. -oc:gui.Chat.WarningClassTransformer=执行类转换器时发生§c错误§f. 请将您(全部!)的FML的§alatest.log§f/§afml-server-latest.log§f日志文件一并报告, 谢谢! -oc:gui.Chat.WarningFingerprint=§c警告§f - 指纹校验不匹配! 预期对应 '§a%s§f' 但识别到 '§e%s§f'. 如果您不是模组的作者, 或运行的不是反混淆版本, 我§l强烈§f 建议你重新下载开放式电脑模组, 因为当前使用的JAR文件已被篡改. -oc:gui.Chat.WarningLink=无法打开链接: %s -oc:gui.Chat.WarningLuaFallback=无法使用原有的Lua库, 电脑不会持续现在的状态. 它们会在区块载入时重启. -oc:gui.Chat.WarningProjectRed=你目前使用的Project:Red版本不兼容OpenComputers. 请升级您的Project:Red后再试. -oc:gui.Chat.WarningRecipes=加载合成表时遇到一个或多个错误. 部分物品或因此无法合成. 查阅日志文件以获取详细信息. -oc:gui.Chat.WarningSimpleComponent=一个(您的?)扩展Mod使用了§aSimpleComponent§f接口但§e做错了一些事情§f. Component logic无法注入. 查阅日志文件以获取详细信息. -oc:gui.Drive.Managed=Managed -oc:gui.Drive.Unmanaged=Unmanaged -oc:gui.Drive.Warning=§l警告§r:切换模式将会导致当前磁盘上所有数据丢失! -oc:gui.Error.ComponentOverflow=过多的组件连接了计算机. -oc:gui.Error.InternalError=网络错误, 请检查log文件. 这可能是个Bug. -oc:gui.Error.NoCPU=这台计算机上没有安装CPU. -oc:gui.Error.NoEnergy=能量不足. -oc:gui.Error.NoRAM=这台计算机上没有安装内存. -oc:gui.Error.OutOfMemory=内存溢出. +oc:gui.Assembler.Warnings=§e警告§7:推荐的组件丢失。 +oc:gui.Chat.NewVersion=有新版本可用:%s +oc:gui.Chat.TextureName=§7材质名为§a%s§f。 +oc:gui.Chat.WarningClassTransformer=执行类转换器时发生§c错误§f。请将您(全部!)的FML的§alatest.log§f/§afml-server-latest.log§f日志文件一并报告,谢谢! +oc:gui.Chat.WarningFingerprint=§c警告§f - 指纹校验不匹配!预期对应 '§a%s§f' 但识别到 '§e%s§f'。如果您不是模组的作者,或运行的不是反混淆版本,我§l强烈§f 建议你重新下载开放式电脑模组,因为当前使用的JAR文件已被篡改。 +oc:gui.Chat.WarningLink=无法打开链接:%s +oc:gui.Chat.WarningLuaFallback=无法使用原生Lua库,电脑不会保持状态,它们会在区块载入时重启。 +oc:gui.Chat.WarningProjectRed=你目前使用的Project:Red版本不兼容OpenComputers。请升级您的Project:Red后再试。 +oc:gui.Chat.WarningRecipes=加载合成表时遇到一个或多个错误,部分物品或因此无法合成。查阅日志文件以获取详细信息。 +oc:gui.Chat.WarningSimpleComponent=一个(您的?)扩展Mod使用了§aSimpleComponent§f接口但§e做错了一些事情§f;Component logic无法注入。查阅日志文件以获取详细信息。 +oc:gui.Drive.Managed=托管 +oc:gui.Drive.Unmanaged=非托管 +oc:gui.Drive.ReadOnlyLock=锁定 +oc:gui.Drive.ReadOnlyLockWarning=当前有§l只读§r锁定。只有擦除磁盘才能解除锁定。 +oc:gui.Drive.Warning=§l警告§r:切换模式将会导致当前磁盘上所有数据丢失! +oc:gui.Error.ComponentOverflow=过多的组件连接了计算机。 +oc:gui.Error.InternalError=网络错误,请检查日志文件。这可能是个Bug。 +oc:gui.Error.NoCPU=这台计算机上没有安装CPU。 +oc:gui.Error.NoEnergy=能量不足。 +oc:gui.Error.NoRAM=这台计算机上没有安装内存。 +oc:gui.Error.OutOfMemory=内存溢出。 oc:gui.Manual.Blocks=开放式电脑-方块 oc:gui.Manual.Home=主页 oc:gui.Manual.Items=开放式电脑-物品 -oc:gui.Manual.Warning.BlockMissing=该方块不可用. -oc:gui.Manual.Warning.ImageMissing=未找到图片. -oc:gui.Manual.Warning.ItemMissing=该物品不可用. -oc:gui.Manual.Warning.OreDictMissing=该矿物词典条目不可用. -oc:gui.Raid.Warning=§4添加磁盘会损坏该磁盘.[nl]移除磁盘会损坏Raid. +oc:gui.Manual.Warning.BlockMissing=该方块不可用。 +oc:gui.Manual.Warning.ImageMissing=未找到图片。 +oc:gui.Manual.Warning.ItemMissing=该物品不可用。 +oc:gui.Manual.Warning.OreDictMissing=该矿物词典条目不可用。 +oc:gui.Raid.Warning=§4添加磁盘会损坏该磁盘。[nl]移除磁盘会损坏阵列。 oc:gui.Robot.Power=能量 oc:gui.Robot.TurnOff=关闭 -oc:gui.Robot.TurnOn=开启[nl]§7使用分析器来追踪Bug.§r -oc:gui.ServerRack.Back=后 -oc:gui.ServerRack.Bottom=底部 -oc:gui.ServerRack.Left=左 -oc:gui.ServerRack.None=无 -oc:gui.ServerRack.Right=右 +oc:gui.Robot.TurnOn=开启[nl]§7使用分析器来排除错误。§r +oc:gui.Rack.Back=后 +oc:gui.Rack.Bottom=底部 +oc:gui.Rack.Left=左 +oc:gui.Rack.None=无 +oc:gui.Rack.Right=右 +oc:gui.Rack.Top=上部 oc:gui.Rack.Enabled=启用 oc:gui.Rack.Disabled=禁用 -oc:gui.ServerRack.Top=上部 +oc:gui.Rack.RelayModeTooltip=中继模式 oc:gui.Switch.PacketsPerCycle=数据包 / 周期 oc:gui.Switch.QueueSize=队列长度 oc:gui.Switch.TransferRate=周期率 -oc:gui.Terminal.InvalidKey=无效键, 看上去另一个终端已绑定到这台服务器. -oc:gui.Terminal.OutOfRange=无信号. +oc:gui.Terminal.InvalidKey=无效键,看上去另一个终端已绑定到这台服务器。 +oc:gui.Terminal.OutOfRange=无信号。 # Containers -oc:container.AccessPoint=桥接器 +oc:container.AccessPoint=访问点 oc:container.Adapter=适配器 oc:container.Case=计算机 oc:container.Charger=充电器 oc:container.Disassembler=分解器 oc:container.DiskDrive=磁盘驱动器 oc:container.Printer=打印机 -oc:container.Raid=Raid磁盘阵列 +oc:container.Raid=磁盘阵列 oc:container.Relay=中继器 oc:container.Server=服务器 oc:container.Rack=机架 @@ -248,152 +253,152 @@ oc:container.Switch=交换机 oc:container.TabletWrapper=平板电脑 # Keybinds -key.clipboardPaste=粘贴到剪贴板 +key.clipboardPaste=从剪贴板粘贴 key.materialCosts=显示材料需求 # Item / Block Tooltips -oc:tooltip.AccessPoint=类似于交换机, 但它还能接收无线数据包和无线传递连接包. -oc:tooltip.AbstractBusCard=允许计算机向§f星门科技2§7的抽象类总线发送或接收LIP数据包. -oc:tooltip.Acid=一种有毒的假液相物质, 通常只有某些海盗会使用它们. 它的腐蚀特性令它非常完美地适用于蚀刻电路板的材料. -oc:tooltip.Adapter=用于控制非电脑组件的方块, 比如原版或者来自其它模组的方块. -oc:tooltip.ALU=用来做算逻运算以免你亲自代劳, 它更能胜任这份差事. -oc:tooltip.Analyzer=用于显示方块信息, 比如它们的§f地址§7和§f组件名称§7. 如果计算机未能正常关闭它也会显示使计算机崩溃的报错. -oc:tooltip.APU=如果你只是需要一个额外的卡槽,这就是你需要的自带GPU(或者IGP,集成图形处理器)的CPU.[nl] 支持的组件: §f%s§7[nl] 最大分辨率: §f%sx%s§7[nl] 最高色深: §f%s§7[nl] 运算/tick: §f%s§7 -oc:tooltip.Assembler=允许使用若干不同的电脑组件来组装机器人. -oc:tooltip.Cable=连接方块的廉价选择. -oc:tooltip.Capacitor=储能以备他用. 能够非常快速地充电或放电. -oc:tooltip.CardBase=正如其名, 它是用来安装其它扩展卡的基本卡板. -oc:tooltip.Case=计算机机箱是构建计算机的基本方块, 也是各种§f扩展卡§7,§f存储器§7以及§f硬盘§7的外壳.[nl] 格子: §f%s§7 -oc:tooltip.Chamelium=3D打印的基本原材料. 不要误吸:或造成失明和暂时失去意识. -oc:tooltip.ChameliumBlock=整洁干净的玩意. 对于彩色3D打印相当实用, 或者只是拿它的整洁干净的色彩来装饰你的华丽的基地. -oc:tooltip.Charger=将电容器的能量传输给相邻机器人. 传输效率取决于输入的§f红石信号§7强度, 无信号意味着不给机器人充电, 而最强信号则意味着全速给机器人充电. -oc:tooltip.CircuitBoard=现在我们已经取得一些进展. 可以通过蚀刻来得到印制电路板. -oc:tooltip.ControlUnit=用来控制...控制东西...的单元. 你需要这玩意儿来做CPU. 所以反正啦, 这个非常重要. -oc:tooltip.ComponentBus=这个扩展能让服务器同时与更多组件通讯, 工作原理类似CPU.[nl] 支持的组件: §f%s§7 -oc:tooltip.CPU=所有计算机最核心的组件, 它的时钟频率有点不可靠, 但是你考虑到它是靠便携日晷来运行的, 还能指望什么呢?[nl] 支持组件: §f%s§7 -oc:tooltip.CPU.Architecture=架构: §f%s§7 -oc:tooltip.CuttingWire=用于将粘土块切割成电路板的形状. 使用一次就会坏掉, 这可能使得成为历来最低效的工具. -oc:tooltip.DataCard0=提供数种高级算法, 例如哈希和DEFLATE/INFLATE算法. -oc:tooltip.DataCard1=提供数种高级算法, 例如哈希, AES加密和DEFLATE/INFLATE算法. -oc:tooltip.DataCard2=提供数种高级算法, 例如哈希, AES加密, 椭圆曲线加密和DEFLATE/INFLATE算法. -oc:tooltip.DebugCard=创造模式物品, 它能让你更简易的操控世界来进行测试. 请自己承担它带来的危险. -oc:tooltip.Debugger=用于在OpenComputer的内部网络格栅中输出调试信息. 请在开发者指导下使用. -oc:tooltip.DiamondChip=一小粒正在发光的钻石. 永远不会破镜重圆. -oc:tooltip.Disassembler=将物品分解成基础组件. §l警告§7: 分解得到的物品会有%s%%的几率在分解过程中损坏! -oc:tooltip.Disk=用于制造持久存储设备的原始媒介材料. -oc:tooltip.DiskDrive.CC=已经§a支持§7使用ComputerCraft的软盘了. -oc:tooltip.DiskDrive=用来读写软盘.可以给机器人安装使其可以插入磁盘. -oc:tooltip.DiskDriveMountable=和普通磁盘用途一样,但必须装载在机架里. -oc:tooltip.DiskUsage=磁盘使用: %s/%s 字节 -oc:tooltip.DiskModeManaged=模式: 管理 -oc:tooltip.DiskModeUnmanaged=模式: 不受管理 -oc:tooltip.Drone=无人机是一种轻量而快速的侦查单位, 自身拥有有限的载物空间. -oc:tooltip.DroneCase=这个外壳将会在组装机中组装出无人机. 这个外壳可容纳少量组件, 并内建末地石驱动的悬浮系统. -oc:tooltip.EEPROM=小型的可编程存储器, 可存储电脑启动所用的BIOS. -oc:tooltip.FakeEndstone=几乎可以以假乱真, 甚至更加轻盈! -oc:tooltip.Geolyzer=可以检测周围方块的硬度. 这些信息对编写全息地图程序或检测矿物都有很大的帮助. -oc:tooltip.GraphicsCard=用来改变屏幕上的显示内容. 最高分辨率: §f%sx%s§7[nl] 最高色深: §f%s§7[nl] 运算/tick: §f%s§7 -oc:tooltip.HoverBoots=跳得更高, 摔得更深, 走得更快. 一切尽在Hover Boots (TM), 已获顶级认证. -oc:tooltip.InkCartridge=用于重新填装3D打印机的墨水. 因为某些原因这些墨水不必保留在打印机里. -oc:tooltip.InkCartridgeEmpty=此墨盒经过深度干燥处理. 用颜料重新装填, 抑或弃置. 看我脸色行事. -oc:tooltip.InternetCard=因特网卡可以让你发送HTTP请求以及使用货真价实的TCP套接字. -oc:tooltip.Interweb=恭喜, 你赢得了一个(1)因特网. 你可以使用因特网卡来连接它. 注意: 不要水贴钓鱼 -oc:tooltip.IronNugget=颗粒状的铁, 所以叫铁粒啦, 蠢蠢的感觉... -oc:tooltip.Keyboard=可以连接屏幕来输入显示文本. -oc:tooltip.Hologram0=一个能通过电脑控制来投射出任何三维结构的全息投影仪.[nl] 分辨率: §f48x32x48§7 [nl] 最大显示规模: §f3x§7 [nl] 最高色深: §f黑白§7 -oc:tooltip.Hologram1=使用电脑控制的高级全息投影仪.[nl] 分辨率: §f48x32x48§7 [nl] 最大显示规模: §f4x§7 [nl] 最高色深: §f三原色§7 -oc:tooltip.LinkedCard=连接卡可以成对合成, 并且它们只能与各自对应的连接卡交互. 然而, 它们之间的交互没有距离限制, 甚至可以跨越不同的世界. 但它们传递信息所需要的能量消耗不多不少. -oc:tooltip.LinkedCard_Channel=§8频道: %s§7 -oc:tooltip.Manual=包含你需要的关于OpenComputer的一切信息. 还有更多. 为此你只需要...§o请按R键继续§7. -oc:tooltip.MaterialCosts=按住 [§f%s§7] 显示所需材料. -oc:tooltip.Materials=所需材料: -oc:tooltip.Memory=电脑运行必备. 内存越大, 你就可以运行越复杂的程序. -oc:tooltip.Microchip=通常也管这种芯片叫集成电路. 我也不知道为什么能和红石一起运行, 但事实如此. -oc:tooltip.Microcontroller=微控制器是被压缩到不能再压缩的电脑. 它们更多是用于执行特殊任务, 并只运行一个内建于EEPROM中的简单程序.[nl] §c不能和外置组件相连接.§7 -oc:tooltip.MicrocontrollerCase=微控制器基础组件. 在组装机中为其添加各种组件并组装微控制器. -oc:tooltip.MotionSensor=可以检测附近生物的动向. 检测需要无遮挡物的环境. -oc:tooltip.Nanomachines=控制单元,同时还是一堆可以吸入的纳米机器(如果你愿意的话). -oc:tooltip.NetworkCard=允许通过其他方块(比如线缆)相连的远程计算机能够向彼此发送信息进行交互. -oc:tooltip.PowerAcceptor=能量转换速度: §f%s/t§7 -oc:tooltip.PowerConverter.BuildCraft=§fMJ§7: §a%s:%s§7 -oc:tooltip.PowerConverter.Factorization=§fCharge§7: §a%s:%s§7 -oc:tooltip.PowerConverter.IndustrialCraft2=§fEU§7: §a%s:%s§7 -oc:tooltip.PowerConverter.Mekanism=§fJoules§7: §a%s:%s§7 -oc:tooltip.PowerConverter.ThermalExpansion=§fRF§7: §a%s:%s§7 -oc:tooltip.PowerConverter.ResonantEngine=§fCoulombs§7: §a%s:%s§7 -oc:tooltip.PowerConverter=将其它模组的能量转化为本模组的内部能源形式. 转换比: -oc:tooltip.PowerDistributor=在不同网络中分配能量. 很实用于通过包含多个理论上独立子网络的转换器在系统中共享能量. -oc:tooltip.Present=...,它随时为你的麻烦待命. 打开此礼物将有机会获得§kphat lewt§7![nl]§8在时机合适时,合成OpenComputers的物品.§7 -oc:tooltip.Print.BeaconBase=§8可用作信标底座. -oc:tooltip.Print.LightValue=§8光强: %s. -oc:tooltip.Print.RedstoneLevel=§8红石信号强度: %s. -oc:tooltip.PrintedCircuitBoard=扩展卡, 内存等组件的基础板. -oc:tooltip.Printer=利用变色物质和墨盒打印出用户自定义的形状. 需要用电脑进行配置. 不要让幼童接触. 就是这样. -oc:tooltip.Raid=允许将三块硬盘组成一个大文件系统供所有与其连接的电脑使用. -oc:tooltip.RawCircuitBoard=能在熔炉或其它炉子中加工强化. -oc:tooltip.Redstone=能够在方块周围接收或发送红石信号. 可以被与之相连的计算机控制. 基本上就像一个外置红石卡. -oc:tooltip.RedstoneCard.ProjectRed=§fProject Red§7红石系统已§a兼容§7. -oc:tooltip.RedstoneCard.RedLogic=§fRedLogic§7红石系统已§a兼容§7. -oc:tooltip.RedstoneCard.RedNet=§fRedNet§7红石系统已§a兼容§7. -oc:tooltip.RedstoneCard.WirelessCBE=§f无线红石(ChickenBones)§7红石系统已§a兼容§7. -oc:tooltip.RedstoneCard.WirelessSV=§f无线红石(SlimeVoid)§7红石系统已§a兼容§7. -oc:tooltip.RedstoneCard=允许在计算机和机器人四周接收或发送红石信号. -oc:tooltip.Relay=可将不同网络连接在一起. 仅信息可通过此设备传递, 其它元件仍不可见. 用法举例: 可用于保持多个独立网络的通信. -oc:tooltip.Robot=和计算机不同, 机器人能够移动并且像玩家那样与世界中的东西交互. 然而, 它们§o不能§r§7直接与外设进行交互! +oc:tooltip.AccessPoint=类似于交换机,但它还能接收无线数据包和无线传递连接包。 +oc:tooltip.AbstractBusCard=允许计算机向§f星门科技2§7的抽象类总线发送或接收LIP数据包。 +oc:tooltip.Acid=一种有毒的假液相物质,通常只有某些海盗会使用它们。它的腐蚀特性令它非常完美地适用于蚀刻电路板的材料。 +oc:tooltip.Adapter=用于控制非电脑组件的方块,比如原版或者来自其它模组的方块。 +oc:tooltip.ALU=用来做算逻运算以免你亲自代劳,它更能胜任这份差事。 +oc:tooltip.Analyzer=用于显示方块信息,比如它们的§f地址§7和§f组件名称§7。如果计算机未能正常关闭它也会显示使计算机崩溃的报错。 +oc:tooltip.APU=如果你只是需要一个额外的卡槽,这就是你需要的自带GPU(或者IGP,集成图形处理器)的CPU。[nl] 支持的组件:§f%s§7[nl] 最大分辨率:§f%sx%s§7[nl] 最高色深:§f%s§7[nl] 运算/tick:§f%s§7 +oc:tooltip.Assembler=允许使用若干不同的电脑组件来组装机器人。 +oc:tooltip.Cable=连接方块的廉价选择。 +oc:tooltip.Capacitor=储能以备他用。能够非常快速地充电或放电。 +oc:tooltip.CardBase=正如其名,它是用来安装其它扩展卡的基本卡板。 +oc:tooltip.Case=计算机机箱是构建计算机的基本方块,也是各种§f扩展卡§7,§f存储器§7以及§f硬盘§7的外壳。[nl] 格子:§f%s§7 +oc:tooltip.Chamelium=3D打印的基本原材料。不要误吸:或造成失明和暂时失去意识。 +oc:tooltip.ChameliumBlock=整洁干净的玩意。对于彩色3D打印相当实用,或者只是拿它的整洁干净的色彩来装饰你的华丽的基地。 +oc:tooltip.Charger=将电容器的能量传输给相邻机器人。传输效率取决于输入的§f红石信号§7强度,无信号意味着不给机器人充电,而最强信号则意味着全速给机器人充电。 +oc:tooltip.CircuitBoard=现在我们已经取得一些进展。可以通过蚀刻来得到印制电路板。 +oc:tooltip.ControlUnit=用来控制...控制东西...的单元。你需要这玩意儿来做CPU。所以反正啦,这个非常重要。 +oc:tooltip.ComponentBus=这个扩展能让服务器同时与更多组件通讯,工作原理类似CPU.[nl] 支持的组件:§f%s§7 +oc:tooltip.CPU=所有计算机最核心的组件,它的时钟频率有点不可靠,但是你考虑到它是靠便携日晷来运行的,还能指望什么呢?[nl] 支持组件:§f%s§7 +oc:tooltip.CPU.Architecture=架构:§f%s§7 +oc:tooltip.CuttingWire=用于将粘土块切割成电路板的形状。使用一次就会坏掉,这可能使得成为历来最低效的工具。 +oc:tooltip.DataCard0=提供数种高级算法,例如哈希和DEFLATE/INFLATE算法。 +oc:tooltip.DataCard1=提供数种高级算法,例如哈希,AES加密和DEFLATE/INFLATE算法。 +oc:tooltip.DataCard2=提供数种高级算法,例如哈希,AES加密,椭圆曲线加密和DEFLATE/INFLATE算法。 +oc:tooltip.DebugCard=创造模式物品,它能让你更简易的操控世界来进行测试。请自己承担它带来的危险。 +oc:tooltip.Debugger=用于在OpenComputer的内部网络格栅中输出调试信息。请在开发者指导下使用。 +oc:tooltip.DiamondChip=一小粒正在发光的钻石。永远不会破镜重圆。 +oc:tooltip.Disassembler=将物品分解成基础组件。§l警告§7:分解物品会有%s%%的几率在分解过程中损坏! +oc:tooltip.Disk=用于制造持久存储设备的原始媒介材料。 +oc:tooltip.DiskDrive.CC=已经§a支持§7使用ComputerCraft的软盘了。 +oc:tooltip.DiskDrive=用来读写软盘.可以给机器人安装使其可以插入磁盘。 +oc:tooltip.DiskDriveMountable=和普通磁盘用途一样,但必须装载在机架里。 +oc:tooltip.DiskUsage=磁盘使用:%s/%s 字节 +oc:tooltip.DiskModeManaged=模式:托管 +oc:tooltip.DiskModeUnmanaged=模式:非托管 +oc:tooltip.Drone=无人机是一种轻量而快速的侦查单位,自身拥有有限的载物空间。 +oc:tooltip.DroneCase=这个外壳将会在组装机中组装出无人机。这个外壳可容纳少量组件,并内建末地石驱动的悬浮系统。 +oc:tooltip.EEPROM=小型的可编程存储器,可存储电脑启动所用的BIOS。 +oc:tooltip.FakeEndstone=几乎可以以假乱真,甚至更加轻盈! +oc:tooltip.Geolyzer=可以检测周围方块的硬度。这些信息对编写全息地图程序或检测矿物都有很大的帮助。 +oc:tooltip.GraphicsCard=用来改变屏幕上的显示内容。最高分辨率:§f%sx%s§7[nl] 最高色深:§f%s§7[nl] 运算/tick:§f%s§7 +oc:tooltip.HoverBoots=跳得更高,摔得更深,走得更快。一切尽在 Hover Boots (TM),已获顶级认证。 +oc:tooltip.InkCartridge=用于重新填装3D打印机的墨水。因为某些原因这些墨水不必保留在打印机里。 +oc:tooltip.InkCartridgeEmpty=此墨盒经过深度干燥处理。用颜料重新装填,抑或弃置。看我脸色行事。 +oc:tooltip.InternetCard=因特网卡可以让你发送HTTP请求以及使用货真价实的TCP套接字。 +oc:tooltip.Interweb=恭喜,你赢得了一个(1)因特网。你可以使用因特网卡来连接它。注意:不要水贴钓鱼 +oc:tooltip.IronNugget=颗粒状的铁,所以叫铁粒啦,蠢蠢的感觉... +oc:tooltip.Keyboard=可以连接屏幕来输入显示文本。 +oc:tooltip.Hologram0=一个能通过电脑控制来投射出任何三维结构的全息投影仪。[nl] 分辨率:§f48x32x48§7 [nl] 最大显示规模:§f3x§7 [nl] 最高色深:§f黑白§7 +oc:tooltip.Hologram1=使用电脑控制的高级全息投影仪。[nl] 分辨率:§f48x32x48§7 [nl] 最大显示规模:§f4x§7 [nl] 最高色深:§f三原色§7 +oc:tooltip.LinkedCard=连接卡可以成对合成,并且它们只能与各自对应的连接卡交互。然而,它们之间的交互没有距离限制,甚至可以跨越不同的世界。但它们传递信息所需要的能量消耗不多不少。 +oc:tooltip.LinkedCard_Channel=§8频道:%s§7 +oc:tooltip.Manual=包含你需要的关于OpenComputer的一切信息。还有更多。为此你只需要...§o请按R键继续§7。 +oc:tooltip.MaterialCosts=按住 [§f%s§7] 显示所需材料。 +oc:tooltip.Materials=所需材料: +oc:tooltip.Memory=电脑运行必备。内存越大,你就可以运行越复杂的程序。 +oc:tooltip.Microchip=通常也管这种芯片叫集成电路。我也不知道为什么能和红石一起运行,但事实如此。 +oc:tooltip.Microcontroller=微控制器是被压缩到不能再压缩的电脑。它们更多是用于执行特殊任务,并只运行一个内建于EEPROM中的简单程序。[nl] §c不能和外置组件相连接。§7 +oc:tooltip.MicrocontrollerCase=微控制器基础组件。在组装机中为其添加各种组件并组装微控制器。 +oc:tooltip.MotionSensor=可以检测附近生物的动向。检测需要无遮挡物的环境。 +oc:tooltip.Nanomachines=控制单元,同时还是一堆可以吸入的纳米机器(如果你愿意的话)。 +oc:tooltip.NetworkCard=允许通过其他方块(比如线缆)相连的远程计算机能够向彼此发送信息进行交互。 +oc:tooltip.PowerAcceptor=能量转换速度:§f%s/t§7 +oc:tooltip.PowerConverter.BuildCraft=§fMJ§7:§a%s:%s§7 +oc:tooltip.PowerConverter.Factorization=§fCharge§7:§a%s:%s§7 +oc:tooltip.PowerConverter.IndustrialCraft2=§fEU§7:§a%s:%s§7 +oc:tooltip.PowerConverter.Mekanism=§fJoules§7:§a%s:%s§7 +oc:tooltip.PowerConverter.ThermalExpansion=§fRF§7:§a%s:%s§7 +oc:tooltip.PowerConverter.ResonantEngine=§fCoulombs§7:§a%s:%s§7 +oc:tooltip.PowerConverter=将其它模组的能量转化为本模组的内部能源形式。转换比: +oc:tooltip.PowerDistributor=在不同网络中分配能量。很实用于通过包含多个理论上独立子网络的转换器在系统中共享能量。 +oc:tooltip.Present=...,它随时为你的麻烦待命。打开此礼物将有机会获得§kphat lewt§7![nl]§8在时机合适时,合成OpenComputers的物品。§7 +oc:tooltip.Print.BeaconBase=§8可用作信标底座。 +oc:tooltip.Print.LightValue=§8光强:%s。 +oc:tooltip.Print.RedstoneLevel=§8红石信号强度:%s。 +oc:tooltip.PrintedCircuitBoard=扩展卡,内存等组件的基础板。 +oc:tooltip.Printer=利用变色物质和墨盒打印出用户自定义的形状。需要用电脑进行配置。不要让幼童接触。就是这样。 +oc:tooltip.Raid=允许将三块硬盘组成一个大文件系统供所有与其连接的电脑使用。 +oc:tooltip.RawCircuitBoard=能在熔炉或其它炉子中加工强化。 +oc:tooltip.Redstone=能够在方块周围接收或发送红石信号。可以被与之相连的计算机控制。基本上就像一个外置红石卡。 +oc:tooltip.RedstoneCard.ProjectRed=§fProject Red§7红石系统已§a兼容§7。 +oc:tooltip.RedstoneCard.RedLogic=§fRedLogic§7红石系统已§a兼容§7。 +oc:tooltip.RedstoneCard.RedNet=§fRedNet§7红石系统已§a兼容§7。 +oc:tooltip.RedstoneCard.WirelessCBE=§f无线红石(ChickenBones)§7红石系统已§a兼容§7。 +oc:tooltip.RedstoneCard.WirelessSV=§f无线红石(SlimeVoid)§7红石系统已§a兼容§7。 +oc:tooltip.RedstoneCard=允许在计算机和机器人四周接收或发送红石信号。 +oc:tooltip.Relay=可将不同网络连接在一起。仅信息可通过此设备传递,其它元件仍不可见。用法举例:可用于保持多个独立网络的通信。 +oc:tooltip.Robot=和计算机不同,机器人能够移动并且像玩家那样与世界中的东西交互。然而,它们§o不能§r§7直接与外设进行交互! # The underscore makes sure this isn't hidden with the rest of the tooltip. -oc:tooltip.Robot_Level=§f等级§7: §a%s§7. -oc:tooltip.Robot_StoredEnergy=§f存储能量§7: §a%s§7. -oc:tooltip.Screen=显示文本, 运作需要机箱中的显卡.[nl] 最高分辨率: §f%sx%s§7[nl] 最高色深: §f%s§7 -oc:tooltip.Server=这就是服务器, 它与许多其它的服务器拥有相似功能, 但这台服务器可以使用组件进行升级, 就像升级机箱一样. 它也可以放入服务器机架中运行.[nl] 支持终端的数量: §f%s§7 -oc:tooltip.Server.Components=已安装的组件: -oc:tooltip.Rack=它能装下四台服务器或者别的设备. -oc:tooltip.Switch=允许设备相互连接不同的网络. 仅能传递网络信息, 并且组件不可见. 例如你可以通过这种方式来建立独立网络但仍允许其使用网卡通讯. -oc:tooltip.Tablet=一台平板电脑,为Lua新人准备. 潜行时右击可强制关机. -oc:tooltip.TabletCase=平板电脑的基础外壳. 在组装机中添加组件以制造平板电脑. -oc:tooltip.Terminal=可以远程控制服务器, 不过前提是你处于信号范围内. 使用方法相同于显示屏与键盘. Shift+右键一个机架中的服务器可以绑定对应的终端. -oc:tooltip.TerminalServer=在工作范围内可与遥控终端连接, 以提供远程控制功能. 内建有虚拟显示器和键盘. -oc:tooltip.TexturePicker=这个工具可以显示放块表面的描述, 可用于3D打印定义中. 完全不是材质名, 完全不是. 很抱歉先生, 不是. +oc:tooltip.Robot_Level=§f等级§7:§a%s§7。 +oc:tooltip.Robot_StoredEnergy=§f存储能量§7:§a%s§7。 +oc:tooltip.Screen=显示文本,运作需要机箱中的显卡。[nl] 最高分辨率:§f%sx%s§7[nl] 最高色深:§f%s§7 +oc:tooltip.Server=这就是服务器,它与许多其它的服务器拥有相似功能,但这台服务器可以使用组件进行升级,就像升级机箱一样。它也可以放入服务器机架中运行。[nl] 支持终端的数量:§f%s§7 +oc:tooltip.Server.Components=已安装的组件: +oc:tooltip.Rack=它能装下四台服务器或者别的设备。 +oc:tooltip.Switch=允许设备相互连接不同的网络。仅能传递网络信息,并且组件不可见。例如你可以通过这种方式来建立独立网络但仍允许其使用网卡通讯。 +oc:tooltip.Tablet=一台平板电脑,为Lua新人准备。潜行时右击可强制关机。 +oc:tooltip.TabletCase=平板电脑的基础外壳。在组装机中添加组件以制造平板电脑。 +oc:tooltip.Terminal=可以远程控制服务器,不过前提是你处于信号范围内。使用方法相同于显示屏与键盘。Shift+右键一个机架中的服务器可以绑定对应的终端。 +oc:tooltip.TerminalServer=在工作范围内可与遥控终端连接,以提供远程控制功能。内建有虚拟显示器和键盘。 +oc:tooltip.TexturePicker=这个工具可以显示放块表面的描述,可用于3D打印定义中。完全不是材质名,完全不是。很抱歉先生,不是。 oc:tooltip.Tier=§8等级 %s -oc:tooltip.NetSplitter=作为动态连接器的存在. 每个面的连接设定可通过扳手切换. 红石信号可反相所有面的连接设定. -oc:tooltip.TooLong=按住 [§f%s§7] 显示详细物品信息. -oc:tooltip.Transistor=大多数电脑组件中最基础的元素. 看上去有些扭曲, 但它是有用的. +oc:tooltip.NetSplitter=作为动态连接器的存在。每个面的连接设定可通过扳手切换。红石信号可反相所有面的连接设定。 +oc:tooltip.TooLong=按住 [§f%s§7] 显示详细物品信息。 +oc:tooltip.Transistor=大多数电脑组件中最基础的元素。看上去有些扭曲,但它是有用的。 oc:tooltip.Transposer=可在相邻容器之间自动转移物品和液体。 -oc:tooltip.UpgradeAngel=允许机器人凭空放置方块, 甚至是在没有任何依附的情况下. -oc:tooltip.UpgradeBattery=增加机器人存储能量的上限, 让其能够运作很长一段时间也不必充电. [nl] 电容: §f%s§7 -oc:tooltip.UpgradeChunkloader=如果机器人走进了一片森林, 周围没有任何生物载入区块, 那么它还能继续移动吗? 这个升级组件可以让你确定这点. 它能让机器人所处的区块保持载入, 但这会让能量不断地消耗. -oc:tooltip.UpgradeContainerCard=卡容器组件可以让你方便随意的将卡装入机器人或从中移出. [nl] 最高等级: §f%s§7 -oc:tooltip.UpgradeContainerUpgrade=卡容器升级组件可以让你方便的将卡装入另一个卡容器或从中移出. [nl] 最高等级: §f%s§7 -oc:tooltip.UpgradeCrafting=能让机器人的物品栏左上角部分成为合成界面. 物品必须在合成界面里排列整齐. -oc:tooltip.UpgradeDatabase=能对物品信息进行分类, 供其它组件进一步分离用.[nl] 可支持条目数量: §f%s§7 -oc:tooltip.UpgradeExperience=这个升级能让机器人在执行一些工作时获取经验并累积. 它们拥有越多的累积经验, 就能够存储越多的能量, 越快的挖掘方块并且使用工具时拥有更高的效率. -oc:tooltip.UpgradeGenerator=可以让机器人通过燃料充能. 燃烧物品得到的发电量取决于燃料的等级.[nl] §f发电效率§7: §a%s%%§7 -oc:tooltip.UpgradeHover=这个升级组件可让机器人飞得更高而无需爬墙.[nl] 最大高度: §f%s§7 -oc:tooltip.UpgradeInventory=这个升级组件为机器人提供了物品背包. 如果没有这个升级, 机器人将不能存储物品. -oc:tooltip.UpgradeInventoryController=这个升级组件可以控制机器人使其与外部容器互动, 并能允许机器人将装备上的工具替换成其物品栏中的其它物品. -oc:tooltip.UpgradeLeash=这个升级组件可让诸如无人机之类的设备绑在Isaa- 不好意思,*清清嗓子* 我刚才说错了. 我只是被告知这原本是用来拴动物的绳子. 可以拴很多动物, 好奇怪啊. -oc:tooltip.UpgradeNavigation=可以让机器人确认所处位置以及定位. 定位地点即为用于合成此升级组件用到的地图的中心点. -oc:tooltip.UpgradePiston=这个升级十分有用. 它能让机器人像活塞那样移动方块, 但 §l不能§7 移动实体. -oc:tooltip.UpgradeSign=允许机器人读写告示牌. -oc:tooltip.UpgradeSolarGenerator=可以让机器人在太阳光的照射下四处奔走. 机器人顶部需要无任何方块阻挡. 发电效率是斯特林发电机的 %s%% 倍. -oc:tooltip.UpgradeTank=为你的机器人装上一个可存储流体的水箱. 如果没有升级此功能, 你的机器人将无法在内部存储流体. -oc:tooltip.UpgradeTankController=这个升级能让你的机器人与外界水箱交互, 向其传输流体. -oc:tooltip.UpgradeTractorBeam=十分先进的高科技, 别名 "物品磁铁". 它能让机器人在任何地方捡起3格范围内的掉落物. +oc:tooltip.UpgradeAngel=允许机器人凭空放置方块,甚至是在没有任何依附的情况下。 +oc:tooltip.UpgradeBattery=增加机器人存储能量的上限,让其能够运作很长一段时间也不必充电。[nl] 电容: §f%s§7 +oc:tooltip.UpgradeChunkloader=如果机器人走进了一片森林,周围没有任何生物载入区块,那么它还能继续移动吗?这个升级组件可以让你确定这点,它能让机器人所处的区块保持载入,但这会让能量不断地消耗。 +oc:tooltip.UpgradeContainerCard=卡容器组件可以让你方便随意的将卡装入机器人或从中移出。[nl] 最高等级:§f%s§7 +oc:tooltip.UpgradeContainerUpgrade=卡容器升级组件可以让你方便的将卡装入另一个卡容器或从中移出。[nl] 最高等级: §f%s§7 +oc:tooltip.UpgradeCrafting=能让机器人的物品栏左上角部分成为合成界面。物品必须在合成界面里排列整齐。 +oc:tooltip.UpgradeDatabase=能对物品信息进行分类,供其它组件进一步分离用。[nl] 可支持条目数量:§f%s§7 +oc:tooltip.UpgradeExperience=这个升级能让机器人在执行一些工作时获取经验并累积。它们拥有越多的累积经验,就能够存储越多的能量,越快的挖掘方块并且使用工具时拥有更高的效率。 +oc:tooltip.UpgradeGenerator=可以让机器人通过燃料充能。燃烧物品得到的发电量取决于燃料的等级。[nl] §f发电效率§7:§a%s%%§7 +oc:tooltip.UpgradeHover=这个升级组件可让机器人飞得更高而无需爬墙。[nl] 最大高度:§f%s§7 +oc:tooltip.UpgradeInventory=这个升级组件为机器人提供了物品背包。如果没有这个升级,机器人将不能存储物品。 +oc:tooltip.UpgradeInventoryController=这个升级组件可以控制机器人使其与外部容器互动,并能允许机器人将装备上的工具替换成其物品栏中的其它物品。 +oc:tooltip.UpgradeLeash=这个升级组件可让诸如无人机之类的设备绑在Isaa- 不好意思,*清清嗓子* 我刚才说错了。我只是被告知这原本是用来拴动物的绳子。可以拴很多动物,好奇怪啊。 +oc:tooltip.UpgradeNavigation=可以让机器人确认所处位置以及定位。定位地点即为用于合成此升级组件用到的地图的中心点。 +oc:tooltip.UpgradePiston=这个升级十分有用。它能让机器人像活塞那样移动方块,但 §l不能§7 移动实体。 +oc:tooltip.UpgradeSign=允许机器人读写告示牌。 +oc:tooltip.UpgradeSolarGenerator=可以让机器人在太阳光的照射下四处奔走。机器人顶部需要无任何方块阻挡。发电效率是斯特林发电机的 %s%% 倍。 +oc:tooltip.UpgradeTank=为你的机器人装上一个可存储流体的水箱。如果没有升级此功能,你的机器人将无法在内部存储流体。 +oc:tooltip.UpgradeTankController=这个升级能让你的机器人与外界水箱交互,向其传输流体。 +oc:tooltip.UpgradeTractorBeam=十分先进的高科技,别名“物品磁铁”。它能让机器人在任何地方捡起3格范围内的掉落物。 oc:tooltip.Waypoint=为安装有导航升级的设备提供参考点。 -oc:tooltip.WirelessNetworkCard=允许在发送正常信息的情况下发送无线网络信息. 请确保已设置好 §f信号强度§7 否则不会发出信息. 越高的信号强度会导致越高的能量消耗. -oc:tooltip.WorldSensorCard=可读取关于世界的各种信息, 例如重力加速度和是否有可供呼吸的大气. 使用风险自负. 制造商对由卡片输出结果造成的损失不承担任何法律责任. 我们不仅有律师, 还有现金. 不要试图告倒我们. -oc:tooltip.Wrench=螺丝刀和扳手混合体, 新手友好, 高手毁灭者. +oc:tooltip.WirelessNetworkCard=允许在发送正常信息的情况下发送无线网络信息。请确保已设置好 §f信号强度§7 否则不会发出信息。越高的信号强度会导致越高的能量消耗。 +oc:tooltip.WorldSensorCard=可读取关于世界的各种信息,例如重力加速度和是否有可供呼吸的大气。使用风险自负。制造商对由卡片输出结果造成的损失不承担任何法律责任。我们不仅有律师,还有现金。不要试图告倒我们。 +oc:tooltip.Wrench=螺丝刀和扳手混合体,新手友好,高手毁灭者。 #Achievements achievement.oc.adapter=Plug In Baby -achievement.oc.adapter.desc=和其它MOD的方块(甚至是原版Minecraft方块)进行互动! +achievement.oc.adapter.desc=和其它MOD的方块(甚至是原版Minecraft方块)进行互动! achievement.oc.assembler=完美 -achievement.oc.assembler.desc=是时候征服世界了! +achievement.oc.assembler.desc=是时候征服世界了! achievement.oc.cable=并不是脏兮兮的电线 achievement.oc.cable.desc=搭配权威认证的反SCP-229科技 achievement.oc.capacitor=本设备含电池 achievement.oc.capacitor.desc=不可能阻止它 achievement.oc.card=我们接受卡片 -achievement.oc.card.desc=这是为方便您的使用. 我们保证这不是别有用心. +achievement.oc.card.desc=这是为方便您的使用。我们保证这不是别有用心。 achievement.oc.case=以备后患 achievement.oc.case.desc=Because cuboid towers are the best. achievement.oc.charger=那就开始做吧! @@ -409,14 +414,14 @@ achievement.oc.diskDrive.desc=Inferior capacity but such delicious sound. achievement.oc.drone=啊!飞走了! achievement.oc.drone.desc=冷静冷静,直接用核弹让他们在轨道上瞬间爆炸 achievement.oc.eeprom=每台电脑 -achievement.oc.eeprom.desc=仅限一个, 就是这样. 这是用来决定最终启动顺序的,明白吗?! +achievement.oc.eeprom.desc=仅限一个,就是这样。这是用来决定最终启动顺序的,明白吗?! achievement.oc.floppy=The One Ri- Disk achievement.oc.floppy.desc=Not to be confused with Flappy. achievement.oc.geolyzer=深入地心 achievement.oc.geolyzer.desc=It has extraordinary qualities. achievement.oc.graphicsCard=LastGen achievement.oc.graphicsCard.desc=The way it's meant to be... uh... rendered. Yeah. That. -achievement.oc.hdd=Hot Dog Dealer(热狗推销员) +achievement.oc.hdd=Hot Dog Dealer(热狗推销员) achievement.oc.hdd.desc=等等我不是那个意思。让我想想,好像想起来什么意思了... achievement.oc.hologram=下一个次元 achievement.oc.hologram.desc=因为2D很无聊啊。或者本来就这样? @@ -426,7 +431,7 @@ achievement.oc.microcontroller=Little Sisters achievement.oc.microcontroller.desc=计算机的小妹妹哦 achievement.oc.motionSensor=Got the Moves achievement.oc.motionSensor.desc=Like Steve Swagger. -achievement.oc.networkCard=现在我们在聊天了! +achievement.oc.networkCard=现在我们在聊天了! achievement.oc.networkCard.desc=Keep in touch with those distant relatives via transitive relations. achievement.oc.openOS=启动 achievement.oc.openOS.desc=One OS to - wait, I used that one already? Dang. @@ -439,7 +444,7 @@ achievement.oc.raid.desc=Heroic plzkthx. achievement.oc.ram=随机存取存储器 achievement.oc.ram.desc=恭喜,你的操作完全正确。 achievement.oc.redstoneCard=联系 -achievement.oc.redstoneCard.desc=模拟信号时间到. +achievement.oc.redstoneCard.desc=模拟信号时间到。 achievement.oc.redstoneIO=The Outsider achievement.oc.redstoneIO.desc=将红石信号传播到你需要的地方! achievement.oc.robot=Beep Boop diff --git a/src/main/resources/assets/opencomputers/lang/zh_TW.lang b/src/main/resources/assets/opencomputers/lang/zh_TW.lang index 277ec5baf..f55ab6fde 100644 --- a/src/main/resources/assets/opencomputers/lang/zh_TW.lang +++ b/src/main/resources/assets/opencomputers/lang/zh_TW.lang @@ -7,27 +7,28 @@ tile.oc.adapter.name=連接器 tile.oc.assembler.name=機器組裝台 tile.oc.cable.name=線纜 tile.oc.capacitor.name=電容 +tile.oc.carpetedCapacitor.name=地毯電容 tile.oc.case1.name=基礎電腦機殼 -tile.oc.case2.name=高級電腦機殼 +tile.oc.case2.name=進階電腦機殼 tile.oc.case3.name=超級電腦機殼 -tile.oc.caseCreative.name=電腦機殼(創造模式) +tile.oc.caseCreative.name=電腦機殼(創造模式) tile.oc.chameliumBlock.name=變色凝膠磚 tile.oc.charger.name=充電器 tile.oc.disassembler.name=拆解機 tile.oc.diskDrive.name=磁碟機 tile.oc.endstone.name=終界石 tile.oc.geolyzer.name=硬度分析機 -tile.oc.hologram1.name=全息投影機 (1級) -tile.oc.hologram2.name=全息投影機 (2級) +tile.oc.hologram1.name=全息投影機 (1級) +tile.oc.hologram2.name=全息投影機 (2級) tile.oc.keyboard.name=鍵盤 tile.oc.microcontroller.name=微型控制器 tile.oc.motionSensor.name=動作感應器 -tile.oc.netSplitter.name=網路路由器 +tile.oc.netSplitter.name=網路分配器 tile.oc.powerConverter.name=能源轉換器 tile.oc.powerDistributor.name=能源分配器 tile.oc.print.name=3D 列印 tile.oc.printer.name=3D 列印機 -tile.oc.raid.name=磁碟陣列機(NAS) +tile.oc.raid.name=磁碟陣列機 tile.oc.redstone.name=紅石I/O tile.oc.relay.name=中繼器 tile.oc.robot.name=機器人 @@ -36,107 +37,111 @@ tile.oc.screen1.name=黑白電腦顯示器 tile.oc.screen2.name=彩色電腦顯示器 tile.oc.screen3.name=高畫質電腦顯示器 tile.oc.rack.name=伺服器機架 -tile.oc.switch.name=路由器 +tile.oc.switch.name=§c交換機§7 tile.oc.transposer.name=差轉機 tile.oc.waypoint.name=路點 # Items item.oc.AbstractBusCard.name=抽象的介面卡 item.oc.Acid.name=蝕刻藥水 -item.oc.ALU.name=算邏運算單元(ALU) +item.oc.ALU.name=邏輯運算單元(ALU) item.oc.Analyzer.name=分析器 -item.oc.APU0.name=加速處理單元 (APU) (1級) -item.oc.APU1.name=加速處理單元 (APU) (2級) -item.oc.APU2.name=加速處理單元 (APU) (創造模式) +item.oc.APU0.name=加速處理單元(APU) (1級) +item.oc.APU1.name=加速處理單元(APU) (2級) +item.oc.APU2.name=加速處理單元(APU) (創造模式) item.oc.ArrowKeys.name=方向鍵 item.oc.ButtonGroup.name=按鈕組 item.oc.CardBase.name=主板 item.oc.Chamelium.name=變色凝膠 item.oc.CircuitBoard.name=電路板 item.oc.ComponentBus0.name=基礎排線 -item.oc.ComponentBus1.name=高級排線 +item.oc.ComponentBus1.name=進階排線 item.oc.ComponentBus2.name=超級排線 -item.oc.ControlUnit.name=控制單元 (CU) -item.oc.CPU0.name=中央處理器 (CPU) (1級) -item.oc.CPU1.name=中央處理器 (CPU) (2級) -item.oc.CPU2.name=中央處理器 (CPU) (3級) +item.oc.ComponentBus3.name=創造模式排線 +item.oc.ControlUnit.name=控制單元(CU) +item.oc.CPU0.name=中央處理器(CPU) (1級) +item.oc.CPU1.name=中央處理器(CPU) (2級) +item.oc.CPU2.name=中央處理器(CPU) (3級) item.oc.CuttingWire.name=切割線 -item.oc.DataCard0.name=資料卡 (1級) -item.oc.DataCard1.name=資料卡 (2級) -item.oc.DataCard2.name=資料卡 (3級) +item.oc.DataCard0.name=資料卡 (1級) +item.oc.DataCard1.name=資料卡 (2級) +item.oc.DataCard2.name=資料卡 (3級) item.oc.DebugCard.name=除錯卡 item.oc.Debugger.name=網路除錯卡 -item.oc.Disk.name=磁碟 +item.oc.DiamondChip.name=鑽石晶片 +item.oc.Disk.name=磁碟片 +item.oc.DiskDriveMountable.name=磁碟機 item.oc.Drone.name=無人機 -item.oc.DroneCase0.name=無人機外殼 (1級) -item.oc.DroneCase1.name=無人機外殼 (2級) -item.oc.DroneCase3.name=無人機外殼 (創造模式) -item.oc.eeprom.name=電子抹除式可複寫唯讀記憶體(EEPROM) -item.oc.FloppyDisk.name=磁碟片 +item.oc.DroneCase0.name=無人機外殼 (1級) +item.oc.DroneCase1.name=無人機外殼 (2級) +item.oc.DroneCase3.name=無人機外殼 (創造模式) +item.oc.eeprom.name=電子抹除式可複寫唯讀記憶體(EEPROM) +item.oc.FloppyDisk.name=軟碟 item.oc.GraphicsCard0.name=顯示卡 item.oc.GraphicsCard1.name=彩色顯示卡 item.oc.GraphicsCard2.name=高畫質顯示卡 -item.oc.HardDiskDrive0.name=硬碟機 (1級) -item.oc.HardDiskDrive1.name=硬碟機 (2級) -item.oc.HardDiskDrive2.name=硬碟機 (3級) +item.oc.HardDiskDrive0.name=硬碟機 (1級) +item.oc.HardDiskDrive1.name=硬碟機 (2級) +item.oc.HardDiskDrive2.name=硬碟機 (3級) item.oc.hoverBoots.name=懸停靴 item.oc.InkCartridge.name=墨水匣 -item.oc.InkCartridgeEmpty.name=墨水匣(空) +item.oc.InkCartridgeEmpty.name=墨水匣(空) item.oc.InternetCard.name=上網卡 -item.oc.Interweb.name=因特網 +item.oc.Interweb.name=網際網 item.oc.IronNugget.name=鐵粒 item.oc.LinkedCard.name=連結卡 item.oc.Manual.name=開放式電腦手冊 -item.oc.Memory0.name=記憶卡 (1級) -item.oc.Memory1.name=記憶卡 (1.5級) -item.oc.Memory2.name=記憶卡 (2級) -item.oc.Memory3.name=記憶卡 (2.5級) -item.oc.Memory4.name=記憶卡 (3級) -item.oc.Memory5.name=記憶卡 (3.5級) -item.oc.Microchip0.name=微晶片 (1級) -item.oc.Microchip1.name=微晶片 (2級) -item.oc.Microchip2.name=微晶片 (3級) -item.oc.MicrocontrollerCase0.name=微控制器外殼 (Tier 1) -item.oc.MicrocontrollerCase1.name=微控制器外殼 (Tier 2) -item.oc.MicrocontrollerCase3.name=微控制器外殼 (Creative) -item.oc.Nanomachines.name=納米機器 +item.oc.Memory0.name=記憶卡 (1級) +item.oc.Memory1.name=記憶卡 (1.5級) +item.oc.Memory2.name=記憶卡 (2級) +item.oc.Memory3.name=記憶卡 (2.5級) +item.oc.Memory4.name=記憶卡 (3級) +item.oc.Memory5.name=記憶卡 (3.5級) +item.oc.Microchip0.name=微晶片 (1級) +item.oc.Microchip1.name=微晶片 (2級) +item.oc.Microchip2.name=微晶片 (3級) +item.oc.MicrocontrollerCase0.name=微控制器外殼 (Tier 1) +item.oc.MicrocontrollerCase1.name=微控制器外殼 (Tier 2) +item.oc.MicrocontrollerCase3.name=微控制器外殼 (Creative) +item.oc.Nanomachines.name=奈米機器 item.oc.NetworkCard.name=網路卡 item.oc.NumPad.name=數字鍵盤 item.oc.Present.name=一個小東西... -item.oc.PrintedCircuitBoard.name=印刷電路板(PCB) +item.oc.PrintedCircuitBoard.name=印刷電路板(PCB) item.oc.RawCircuitBoard.name=電路板材料 -item.oc.RedstoneCard0.name=紅石卡 (1級) -item.oc.RedstoneCard1.name=紅石卡 (2級) -item.oc.Server0.name=伺服器 (1級) -item.oc.Server1.name=伺服器 (2級) -item.oc.Server2.name=伺服器 (3級) -item.oc.Server3.name=伺服器 (創造模式) +item.oc.RedstoneCard0.name=紅石卡 (1級) +item.oc.RedstoneCard1.name=紅石卡 (2級) +item.oc.Server0.name=伺服器 (1級) +item.oc.Server1.name=伺服器 (2級) +item.oc.Server2.name=伺服器 (3級) +item.oc.Server3.name=伺服器 (創造模式) item.oc.Tablet.name=平板電腦 -item.oc.TabletCase0.name=平板電腦保護套 (1級) -item.oc.TabletCase1.name=平板電腦保護套 (2級) -item.oc.TabletCase3.name=平板電腦保護套 (創造模式) +item.oc.TabletCase0.name=平板電腦保護套 (1級) +item.oc.TabletCase1.name=平板電腦保護套 (2級) +item.oc.TabletCase3.name=平板電腦保護套 (創造模式) item.oc.Terminal.name=遠端終端機 +item.oc.TerminalServer.name=終端伺服器 item.oc.TexturePicker.name=紋理選擇器 item.oc.Transistor.name=電晶體 item.oc.UpgradeAngel.name=天使升級 -item.oc.UpgradeBattery0.name=電池升級 (1級) -item.oc.UpgradeBattery1.name=電池升級 (2級) -item.oc.UpgradeBattery2.name=電池升級 (3級) +item.oc.UpgradeBattery0.name=電池升級 (1級) +item.oc.UpgradeBattery1.name=電池升級 (2級) +item.oc.UpgradeBattery2.name=電池升級 (3級) item.oc.UpgradeChunkloader.name=區塊載入器升級 -item.oc.UpgradeContainerCard0.name=卡片集裝箱 (1級) -item.oc.UpgradeContainerCard1.name=卡片集裝箱 (2級) -item.oc.UpgradeContainerCard2.name=卡片集裝箱 (3級) -item.oc.UpgradeContainerUpgrade0.name=集裝箱升級 (1級) -item.oc.UpgradeContainerUpgrade1.name=集裝箱升級 (2級) -item.oc.UpgradeContainerUpgrade2.name=集裝箱升級 (3級) +item.oc.UpgradeContainerCard0.name=卡片集裝箱 (1級) +item.oc.UpgradeContainerCard1.name=卡片集裝箱 (2級) +item.oc.UpgradeContainerCard2.name=卡片集裝箱 (3級) +item.oc.UpgradeContainerUpgrade0.name=集裝箱升級 (1級) +item.oc.UpgradeContainerUpgrade1.name=集裝箱升級 (2級) +item.oc.UpgradeContainerUpgrade2.name=集裝箱升級 (3級) item.oc.UpgradeCrafting.name=合成升級 -item.oc.UpgradeDatabase0.name=資料庫升級 (1級) -item.oc.UpgradeDatabase1.name=資料庫升級 (2級) -item.oc.UpgradeDatabase2.name=資料庫升級 (3級) +item.oc.UpgradeDatabase0.name=資料庫升級 (1級) +item.oc.UpgradeDatabase1.name=資料庫升級 (2級) +item.oc.UpgradeDatabase2.name=資料庫升級 (3級) item.oc.UpgradeExperience.name=經驗升級 item.oc.UpgradeGenerator.name=發電機升級 -item.oc.UpgradeHover0.name=懸停升級 (1級) -item.oc.UpgradeHover1.name=懸停升級 (2級) +item.oc.UpgradeHover0.name=懸停升級 (1級) +item.oc.UpgradeHover1.name=懸停升級 (2級) item.oc.UpgradeInventory.name=物品欄升級 item.oc.UpgradeInventoryController.name=物品控制器升級 item.oc.UpgradeLeash.name=皮帶升級 @@ -145,8 +150,9 @@ item.oc.UpgradePiston.name=活塞升級 item.oc.UpgradeSign.name=告示牌 I/O 升級 item.oc.UpgradeSolarGenerator.name=太陽能發電升級 item.oc.UpgradeTank.name=水箱升級 -item.oc.UpgradeTankController.name=高級水箱升級 +item.oc.UpgradeTankController.name=進階水箱升級 item.oc.UpgradeTractorBeam.name=牽引光束升級 +item.oc.UpgradeTrading.name=交易升級 item.oc.WirelessNetworkCard0.name=無線網卡 item.oc.WirelessNetworkCard1.name=無線網卡 item.oc.WorldSensorCard.name=世界傳感器卡 @@ -156,49 +162,51 @@ item.oc.wrench.name=螺絲刀扳手 entity.oc.Drone.name=無人機 # GUI -oc:gui.Analyzer.Address=§6位址§f: %s -oc:gui.Analyzer.AddressCopied=位址複製到剪貼簿. -oc:gui.Analyzer.ChargerSpeed=§6充電速度§f: %s -oc:gui.Analyzer.ComponentName=§6設備元件名稱§f: %s -oc:gui.Analyzer.Components=§6連接元件的數量§f: %s +oc:gui.Analyzer.Address=§6位址§f:%s +oc:gui.Analyzer.AddressCopied=位址複製到剪貼簿。 +oc:gui.Analyzer.ChargerSpeed=§6充電速度§f:%s +oc:gui.Analyzer.ComponentName=§6装置元件名稱§f:%s +oc:gui.Analyzer.Components=§6連接元件的數量§f:%s oc:gui.Analyzer.CopyToClipboard=點擊複製到剪貼簿。 -oc:gui.Analyzer.LastError=§6上一個錯誤§f: %s -oc:gui.Analyzer.RobotName=§6名字§f: %s -oc:gui.Analyzer.RobotOwner=§6持有者§f: %s -oc:gui.Analyzer.RobotXp=§6經驗值§f: %s -oc:gui.Analyzer.StoredEnergy=§6儲存能量§f: %s -oc:gui.Analyzer.TotalEnergy=§6總儲存能量§f: %s -oc:gui.Analyzer.Users=§6使用者§f: %s -oc:gui.Analyzer.WirelessStrength=§6信號強度§f: %s +oc:gui.Analyzer.LastError=§6上一個錯誤§f:%s +oc:gui.Analyzer.RobotName=§6名字§f:%s +oc:gui.Analyzer.RobotOwner=§6持有者§f:%s +oc:gui.Analyzer.RobotXp=§6經驗值§f:%s +oc:gui.Analyzer.StoredEnergy=§6儲存能量§f:%s +oc:gui.Analyzer.TotalEnergy=§6總儲存能量§f:%s +oc:gui.Analyzer.Users=§6使用者§f:%s +oc:gui.Analyzer.WirelessStrength=§6信號強度§f:%s oc:gui.Assembler.Collect=收集機器人 -oc:gui.Assembler.Complexity=複雜性: %s/%s -oc:gui.Assembler.InsertCase=裝入電腦機殼(CASE) -oc:gui.Assembler.InsertCPU=裝入中央處理器(CPU) -oc:gui.Assembler.InsertRAM=裝入一些記憶體(RAM) -oc:gui.Assembler.Progress=進度: %s%% (%s) +oc:gui.Assembler.Complexity=複雜性:%s/%s +oc:gui.Assembler.InsertCase=裝入電腦機殼(CASE) +oc:gui.Assembler.InsertCPU=裝入中央處理器(CPU) +oc:gui.Assembler.InsertRAM=裝入一些記憶體(RAM) +oc:gui.Assembler.Progress=進度:%s%% (%s) oc:gui.Assembler.Run=開始組裝機器人 -oc:gui.Assembler.Warnings=§e警告§7: 缺少某些建議的零組件 +oc:gui.Assembler.Warnings=§e警告§7:缺少某些建議的零組件 oc:gui.Assembler.Warning.GraphicsCard=顯示卡 oc:gui.Assembler.Warning.Inventory=物品欄升級組件 oc:gui.Assembler.Warning.Keyboard=鍵盤 -oc:gui.Assembler.Warning.OS=開機(作業系統) 中等 +oc:gui.Assembler.Warning.OS=啟動媒介 oc:gui.Assembler.Warning.Screen=螢幕 -oc:gui.Assembler.Warnings=§e警告§7: 缺少建議的零組件 -oc:gui.Chat.NewVersion=有新版本可用: %s -oc:gui.Chat.TextureName=§7紋理名稱是 §a%s§f. +oc:gui.Assembler.Warnings=§e警告§7:缺少建議的零組件 +oc:gui.Chat.NewVersion=有新版本可用:%s +oc:gui.Chat.TextureName=§7紋理名稱是 §a%s§f。 oc:gui.Chat.WarningClassTransformer=There were §cerrors§f running the class transformer. Please report this, together with your (full!) FML §alatest.log§f/§afml-server-latest.log§f logfile, thank you! oc:gui.Chat.WarningFingerprint=§c警告§f - 指紋不符!預期 '§a%s§f' 但得到 '§e%s§f'. Unless you are a modder and are running the deobfuscated version of the mod, it is §lstrongly§f recommended to redownload OpenComputers, because the JAR you are using may have been tampered with. -oc:gui.Chat.WarningLink=無法打開鏈接: %s -oc:gui.Chat.WarningLuaFallback=本機 LUA 函式庫無法使用,電腦將無法維持狀態,他會重新啟動並且載入區塊 -oc:gui.Chat.WarningProjectRed=你正在使用的 Project: Red 模組與 OpenComputers 不相容. 請嘗試更新 Project: Red. +oc:gui.Chat.WarningLink=無法打開鏈接:%s +oc:gui.Chat.WarningLuaFallback=本機 LUA 函式庫無法使用,電腦將無法維持狀態,它們會在載入區塊時重新啟動。 +oc:gui.Chat.WarningProjectRed=你正在使用的 Project:Red 模組與 OpenComputers 不相容。請嘗試更新 Project:Red。 oc:gui.Chat.WarningRecipes=There were errors loading one or more recipes. Some items may be uncraftable. Please check your log file for more information. oc:gui.Chat.WarningSimpleComponent=An addon (yours?) using the §aSimpleComponent§f interface did §esomething wrong§f. Component logic could not be injected. Please check your log file for more information. oc:gui.Drive.Managed=受管 oc:gui.Drive.Unmanaged=非受管 -oc:gui.Drive.Warning=§l警告§r: 切換模式會導致目前儲存在硬碟上的所有資料遺失! +oc:gui.Drive.ReadOnlyLock=鎖定 +oc:gui.Drive.ReadOnlyLockWarning=目前有唯讀鎖定。只有抹除磁碟才能解除鎖定。 +oc:gui.Drive.Warning=§l警告§r:切換模式會導致目前儲存在硬碟上的所有資料遺失! oc:gui.Error.ComponentOverflow=太多的元件連接到電腦上了 -oc:gui.Error.InternalError=內部錯誤,請查看日誌文件。這可能是一個錯誤。 -oc:gui.Error.NoCPU=電腦內沒有安裝中央處理器(CPU). +oc:gui.Error.InternalError=內部錯誤,請查看紀錄檔。這可能是一個錯誤。 +oc:gui.Error.NoCPU=電腦內沒有安裝中央處理器(CPU)。 oc:gui.Error.NoEnergy=沒有能源 oc:gui.Error.NoRAM=電腦內沒有安裝記憶卡 oc:gui.Error.OutOfMemory=記憶體不足 @@ -209,7 +217,7 @@ oc:gui.Manual.Warning.BlockMissing=方塊不存在 oc:gui.Manual.Warning.ImageMissing=沒有找到圖片 oc:gui.Manual.Warning.ItemMissing=物品不存在 oc:gui.Manual.Warning.OreDictMissing=礦物字典不存在 -oc:gui.Raid.Warning=§4放入的硬碟機會清除硬碟資料.[nl] 移除硬碟機會刪除磁碟陣列機(NAS)資料. +oc:gui.Raid.Warning=§4放入的硬碟機會清除硬碟資料。[nl] 移除硬碟機會刪除磁碟陣列機資料。 oc:gui.Robot.Power=能量 oc:gui.Robot.TurnOff=關閉 oc:gui.Robot.TurnOn=開啟 @@ -219,25 +227,28 @@ oc:gui.Rack.Bottom=底部 oc:gui.Rack.Left=左 oc:gui.Rack.Right=右 oc:gui.Rack.Top=上 -oc:gui.Switch.TransferRate=週期率 +oc:gui.Rack.Enabled=啟用 +oc:gui.Rack.Disabled=禁用 +oc:gui.Rack.RelayModeTooltip=中繼模式 +oc:gui.Switch.TransferRate=速率 oc:gui.Switch.PacketsPerCycle=封包 / 週期 oc:gui.Switch.QueueSize=隊列大小 oc:gui.Terminal.InvalidKey=按鍵無效時,最有可能另一端已經綁定到伺服器。 -oc:gui.Terminal.OutOfRange=沒訊號. +oc:gui.Terminal.OutOfRange=沒訊號。 # Containers -oc:container.AccessPoint=橋接器 -oc:container.Adapter=連接器 +oc:container.AccessPoint=存取點 +oc:container.Adapter=配接器 oc:container.Case=電腦 oc:container.Charger=充電器 oc:container.Disassembler=拆解機 oc:container.DiskDrive=硬碟機 oc:container.Printer=印表機 -oc:container.Raid=磁碟陣列機(NAS) +oc:container.Raid=磁碟陣列機 oc:container.Relay=中繼器 oc:container.Server=伺服器 oc:container.Rack=伺服器機架 -oc:container.Switch=路由器 +oc:container.Switch=交換機 oc:container.TabletWrapper=平板電腦 # Keybinds @@ -245,132 +256,132 @@ key.clipboardPaste=貼上剪貼簿 key.materialCosts=顯示材料成本 # Item / Block Tooltips -oc:tooltip.AccessPoint=就像一個切換器,但它會接收無線封包並且轉換無線的封包變成有線的封包. -oc:tooltip.AbstractBusCard=允許與 §fStargateTech 2§7 抽象卡傳送與接收 LIP 封包. -oc:tooltip.Acid=一種有毒的假液相物質,通常只有某些海盜會使用它們.[nl]它的腐蝕特性令它非常完美地適用于蝕刻電路板的材料. -oc:tooltip.Adapter=用于控制非電腦組件的方塊,[nl]比如原版或者來自其他模組的方塊. -oc:tooltip.ALU=用來做算邏運算以免你親自代勞,[nl]它更勝任這份差事. -oc:tooltip.Analyzer=用于顯示方塊信息,比如它們的§f地址§7和§f組件名稱§7.[nl]如果計算機未能正常關閉它也會顯示使得計算機崩潰的報錯. -oc:tooltip.APU=這是 CPU 組成 GPU (或 IGP)的一個處理器, 如果你需要額外的卡片插槽,他可以讓你減少一片顯示卡.[nl] 支援的零組件: §f%s§7[nl] 最大分辨率: §f%sx%s§7[nl] 最大顏色深度: §f%s§7[nl] 運作/tick: §f%s§7 +oc:tooltip.AccessPoint=就像一個交換機,但它會接收無線封包並且轉換無線的封包變成有線的封包。 +oc:tooltip.AbstractBusCard=允許與 §fStargateTech 2§7 抽象卡傳送與接收 LIP 封包。 +oc:tooltip.Acid=一種有毒的假液相物質,通常只有某些海盜會使用它們。[nl]它的腐蝕特性令它非常完美地適用于蝕刻電路板的材料。 +oc:tooltip.Adapter=用于控制非電腦組件的方塊,[nl]比如原版或者來自其他模組的方塊。 +oc:tooltip.ALU=用來做算邏運算以免你親自代勞,[nl]它更勝任這份差事。 +oc:tooltip.Analyzer=用于顯示方塊資訊,比如它們的§f位址§7和§f組件名稱§7.[nl]如果計算機未能正常關閉它也會顯示使得計算機崩潰的報錯。 +oc:tooltip.APU=這是 CPU 組成 GPU(或 IGP)的一個處理器,如果你需要額外的卡片插槽,他可以讓你減少一片顯示卡。[nl] 支援的零組件:§f%s§7[nl] 最大分辨率:§f%sx%s§7[nl] 最大顏色深度:§f%s§7[nl] 運作/tick:§f%s§7 oc:tooltip.Assembler=機器組裝台可以從不同的電腦零組件來組裝一台機器人。 -oc:tooltip.Cable=連接方塊的廉價選擇. -oc:tooltip.Capacitor=儲能以備他用.[nl]能夠非常快速地充電放電. -oc:tooltip.CardBase=正如其名,它是用來安裝其他擴展卡的基本卡板. -oc:tooltip.Case=計算機電腦機殼是構建計算機的基本方塊,[nl]也是各種§f介面卡§7,§f記憶體§7以及§f硬碟§7的外殼.[nl] 格子: §f%s§7 -oc:tooltip.Chamelium=3D列印的原料. 不可吞食: 會導致失明與臨時性身體消失 -oc:tooltip.ChameliumBlock=乾淨清潔. 方便用於3D列印, 只是一個純色的乾淨方塊, 彩色方塊可以讓你發揮創意 -oc:tooltip.Charger=將電容器的能量傳輸給相鄰機器人.[nl]傳輸效率取決于輸入的§f紅石信號§7強度,無信號意味著不給機器人充電,而最強信號則意味著全速給機器人充電. -oc:tooltip.CircuitBoard=現在我們已經取得一些進展.[nl]可以通過蝕刻來得到印制板. -oc:tooltip.ControlUnit=用來控制...控制東西...的單元.[nl]你需要這玩意兒來做CPU.所以反正啦,這個非常重要. -oc:tooltip.ComponentBus=這個擴充套件能讓伺服器同時與更多組件通訊, 工作原理類似CPU.[nl] 支援的組件: §f%s§7. -oc:tooltip.CPU=所有計算機最核心的組件,它的時鐘頻率有點不可靠,[nl]但是你考慮到它是靠便攜日晷來運行的你還能指望啥呢? -oc:tooltip.CPU.Architecture=架構: §f%s§7 -oc:tooltip.CuttingWire=用于將粘土塊切割成電路板的形狀.[nl]使用一次就會壞掉,這可能使得成為歷來最低效的工具. -oc:tooltip.DataCard0=提供了一些先進的演算法,如散列處理以及 deflate/inflate. -oc:tooltip.DataCard1=提供了一些先進的演算法,如散列處理, AES 加密 以及 deflate/inflate. -oc:tooltip.DataCard2=提供了一些先進的演算法,如散列處理, AES 加密, elliptic curve cryptography and deflate/inflate. -oc:tooltip.DebugCard=創造模式物品, 它能讓你更簡易的操控世界來進行測試. 請自己承擔它帶來的危險. -oc:tooltip.Debugger=可以使用輸出錯誤訊息到 OC's 網路. 只能使用在開發模式. -oc:tooltip.Disassembler=拆解還原成它原來的零組件 §l警告§7: 拆解物品過程中 %s%% 有可能破壞掉這些零組件! -oc:tooltip.Disk=用於制造持久存儲設備的原始媒介材料. -oc:tooltip.DiskDrive.CC=已經§a支持§7使用另一個電腦模組(ComputerCraft)的軟碟. -oc:tooltip.DiskDrive=用來讀寫軟碟. -oc:tooltip.DiskUsage=磁碟使用量: %s/%s Byte -oc:tooltip.DiskModeManaged=模式: 受管 -oc:tooltip.DiskModeUnmanaged=模式: 非受管 -oc:tooltip.Drone=無人機重量輕,速度快的偵察部隊,擁有有限的載貨空間。 +oc:tooltip.Cable=連接方塊的廉價選擇。 +oc:tooltip.Capacitor=儲能以備他用。[nl]能夠非常快速地充電放電。 +oc:tooltip.CardBase=正如其名,它是用來安裝其他擴展卡的基本卡板。 +oc:tooltip.Case=計算機電腦機殼是構建計算機的基本方塊,[nl]也是各種§f介面卡§7,§f記憶體§7以及§f硬碟§7的外殼。[nl] 格子:§f%s§7 +oc:tooltip.Chamelium=3D列印的原料。不可吞食:會導致失明與臨時性身體消失 +oc:tooltip.ChameliumBlock=乾淨清潔。方便用於3D列印,只是一個純色的乾淨方塊,彩色方塊可以讓你發揮創意 +oc:tooltip.Charger=將電容器的能量傳輸給相鄰機器人.[nl]傳輸效率取決于輸入的§f紅石信號§7強度,無信號意味著不給機器人充電,而最強信號則意味著全速給機器人充電。 +oc:tooltip.CircuitBoard=現在我們已經取得一些進展.[nl]可以通過蝕刻來得到印制板。 +oc:tooltip.ControlUnit=用來控制...控制東西...的單元.[nl]你需要這玩意兒來做CPU。所以反正啦,這個非常重要。 +oc:tooltip.ComponentBus=這個擴充套件能讓伺服器同時與更多組件通訊,工作原理類似CPU。[nl] 支援的組件:§f%s§7。 +oc:tooltip.CPU=所有計算機最核心的組件,它的時鐘頻率有點不可靠,[nl]但是你考慮到它是靠便攜日晷來運行的你還能指望啥呢? +oc:tooltip.CPU.Architecture=架構:§f%s§7 +oc:tooltip.CuttingWire=用于將粘土塊切割成電路板的形狀。[nl]使用一次就會壞掉,這可能使得成為歷來最低效的工具。 +oc:tooltip.DataCard0=提供了一些先進的演算法,如雜湊處理以及 deflate/inflate。 +oc:tooltip.DataCard1=提供了一些先進的演算法,如雜湊處理,AES 加密以及 deflate/inflate。 +oc:tooltip.DataCard2=提供了一些先進的演算法,如雜湊處理,AES 加密,橢圓曲線密碼學以及 deflate/inflate。 +oc:tooltip.DebugCard=創造模式物品,它能讓你更簡易的操控世界來進行測試。請自己承擔它帶來的危險。 +oc:tooltip.Debugger=可以使用輸出錯誤訊息到 OC's 網路。只能使用在開發模式。 +oc:tooltip.Disassembler=拆解還原成它原來的零組件 §l警告§7:拆解物品過程中 %s%% 有可能破壞掉這些零組件! +oc:tooltip.Disk=用於制造持久存儲装置的原始媒介材料。 +oc:tooltip.DiskDrive.CC=已經§a支持§7使用另一個電腦模組(ComputerCraft)的軟碟。 +oc:tooltip.DiskDrive=用來讀寫軟碟。 +oc:tooltip.DiskUsage=磁碟使用量:%s/%s Byte +oc:tooltip.DiskModeManaged=模式:受管 +oc:tooltip.DiskModeUnmanaged=模式:非受管 +oc:tooltip.Drone=無人機重量輕,速度快的偵察部隊,擁有有限的載貨空間。 oc:tooltip.DroneCase=這個外殼是用來建立無人機的組裝外殼。它有足夠的空間用於少量組件,並終界石供電懸浮。 -oc:tooltip.EEPROM=非常小的程式化儲存裝置,可裝入電腦 BIOS 用來開機. +oc:tooltip.EEPROM=非常小的程式化儲存裝置,可裝入電腦 BIOS 用來開機。 oc:tooltip.FakeEndstone=幾乎一樣好真實的東西,甚至模仿其floatiness! -oc:tooltip.Geolyzer=允許掃描周邊地區的方塊硬度,這個訊息可用於產生區域的全息圖,或用來檢測礦石是非常有用的. -oc:tooltip.GraphicsCard=用來改變顯示器顯示內容.[nl]最高分辨率: §f%sx%s§7[nl] 最大色深: §f%s§7 -oc:tooltip.HoverBoots=跳得更高, 跌幅更深, 走得更快. 這是一個全新專利的 懸停靴 (TM). +oc:tooltip.Geolyzer=允許掃描周邊地區的方塊硬度,這個訊息可用於產生區域的全息圖,或用來檢測礦石是非常有用的。 +oc:tooltip.GraphicsCard=用來改變顯示器顯示內容。[nl]最高分辨率:§f%sx%s§7[nl] 最大色深:§f%s§7 +oc:tooltip.HoverBoots=跳得更高,跌幅更深,走得更快。這是一個全新專利的 懸停靴 (TM)。 oc:tooltip.InkCartridge=用於填充墨水的3D打印機。很神奇的原理,不必保留在印表機中。 oc:tooltip.InkCartridgeEmpty=這個墨盒已經被吸乾。用染料填充它。或者把它扔掉。看看你是否在乎。 -oc:tooltip.InternetCard=這個介面卡允許你發出 HTTP要求到真實的 TCP sockets. -oc:tooltip.Interweb=恭喜,你贏取了 (1) 因特網,你可以使用網路卡連接它,小心,不要餵食巨魔. -oc:tooltip.IronNugget=顆粒狀的鐵,所以叫鐵粒啦,蠢蠢的感覺... -oc:tooltip.Keyboard=可以連接顯示器,能夠輸入顯示文本. -oc:tooltip.Hologram0=可以透過電腦進行控制以顯示任意像素體積的結構體.[nl] 解析度: §f48x32x48§7 [nl] 最大縮放: §f3x§7 [nl] 色深: §f單色§7 -oc:tooltip.Hologram1=可以透過電腦進行控制以顯示任意像素體積的結構體.[nl] 解析度: §f48x32x48§7 [nl] 最大縮放: §f4x§7 [nl] 色深: §f三色§7 -oc:tooltip.LinkedCard=這些都是製作成對的,而且只能與它的合作卡通訊,然而,它可以在任何距離,甚至是誇世界溝通,但是發送訊息的消耗的能量非常高. -oc:tooltip.LinkedCard_Channel=§8頻道: %s§7 -oc:tooltip.Manual=所有你需要知道開放式電腦模組的訊息都在裡面.而且他的需求非常便宜... §o請按 R 繼續§7. -oc:tooltip.MaterialCosts=按著 [§f%s§7] 顯示材料成本. -oc:tooltip.Materials=需求材料: -oc:tooltip.Memory=電腦運行必備.[nl]記憶體越大,你就可以運行越復雜的程序. -oc:tooltip.Microchip=通常也管這種芯片叫集成電路.[nl]我也不知道為啥能和紅石一起運行,但事實如此啊. -oc:tooltip.Microcontroller=微控制器是一部小型電腦. 它的目的是在處理非常具體的任務, 只能執行儲存在 EEPROM 的單一獨立程式.[nl] §c無法連結外部零組件.§7 -oc:tooltip.MicrocontrollerCase=微控制器的基本組件. 將其放入組裝機裡添加其他的零組件 -oc:tooltip.MotionSensor=可以檢測到附近活物的移動,需要在視線內不能有阻擋物. -oc:tooltip.Nanomachines=如果你敢,插入控制單元與一組奈米機器 -oc:tooltip.NetworkCard=允許通過其他方塊(比如線纜)相連的遠程計算機能夠向彼此發送信息進行交互. -oc:tooltip.PowerAcceptor=能源轉換速度: §f%s/t§7 -oc:tooltip.PowerConverter.BuildCraft=§f建築模組minecraft焦耳(BC-MJ)§7: §a%s:%s§7 -oc:tooltip.PowerConverter.Factorization=§f因式分解 (Charge)§7: §a%s:%s§7 -oc:tooltip.PowerConverter.IndustrialCraft2=§f工業時代 EU(IC²-EU)§7: §a%s:%s§7 -oc:tooltip.PowerConverter.Mekanism=§f通用機器焦耳(Joules)§7: §a%s:%s§7 -oc:tooltip.PowerConverter.ThermalExpansion=§f熱能擴展RF(TE-RF)§7: §a%s:%s§7 -oc:tooltip.PowerConverter.ResonantEngine=§f諧振引擎庫侖§7: §a%s:%s§7 -oc:tooltip.PowerConverter=將其他模組的能量轉化為本模組的內部能源形式.轉換率: -oc:tooltip.PowerDistributor=在不同網絡中分配能量.[nl]用來通過包含多個理論上獨立的子網絡的轉換器在系統中共享能量時很實用. +oc:tooltip.InternetCard=這個介面卡允許你發出 HTTP 要求或真實的 TCP sockets。 +oc:tooltip.Interweb=恭喜,你贏取了 (1) 網際網,你可以使用網路卡連接它,小心,不要餵食巨魔。 +oc:tooltip.IronNugget=顆粒狀的鐵,所以叫鐵粒啦,蠢蠢的感覺... +oc:tooltip.Keyboard=可以連接顯示器,能夠輸入顯示文本。 +oc:tooltip.Hologram0=可以透過電腦進行控制以顯示任意像素體積的結構體。[nl] 解析度:§f48x32x48§7 [nl] 最大縮放:§f3x§7 [nl] 色深:§f單色§7 +oc:tooltip.Hologram1=可以透過電腦進行控制以顯示任意像素體積的結構體。[nl] 解析度:§f48x32x48§7 [nl] 最大縮放:§f4x§7 [nl] 色深:§f三色§7 +oc:tooltip.LinkedCard=這些都是製作成對的,而且只能與它的合作卡通訊,然而,它可以在任何距離,甚至是誇世界溝通,但是發送訊息的消耗的能量非常高。 +oc:tooltip.LinkedCard_Channel=§8頻道:%s§7 +oc:tooltip.Manual=所有你需要知道開放式電腦模組的訊息都在裡面.而且他的需求非常便宜... §o請按 R 繼續§7。 +oc:tooltip.MaterialCosts=按著 [§f%s§7] 顯示材料成本。 +oc:tooltip.Materials=需求材料: +oc:tooltip.Memory=電腦運行必備。[nl]記憶體越大,你就可以運行越復雜的程式。 +oc:tooltip.Microchip=通常也管這種晶片叫積體電路。[nl]我也不知道為啥能和紅石一起運行,但事實如此啊。 +oc:tooltip.Microcontroller=微控制器是一部小型電腦。它的目的是在處理非常具體的任務,只能執行儲存在 EEPROM 的單一獨立程式.[nl] §c無法連結外部零組件。§7 +oc:tooltip.MicrocontrollerCase=微控制器的基本組件。將其放入組裝機裡添加其他的零組件 +oc:tooltip.MotionSensor=可以檢測到附近活物的移動,需要在視線內不能有阻擋物。 +oc:tooltip.Nanomachines=如果你敢,插入控制單元與一組奈米機器 +oc:tooltip.NetworkCard=允許通過其他方塊(比如線纜)相連的遠程計算機能夠向彼此發送訊息進行交互。 +oc:tooltip.PowerAcceptor=能源轉換速度:§f%s/t§7 +oc:tooltip.PowerConverter.BuildCraft=§f建築模組minecraft焦耳(BC-MJ)§7:§a%s:%s§7 +oc:tooltip.PowerConverter.Factorization=§f因式分解 (Charge)§7:§a%s:%s§7 +oc:tooltip.PowerConverter.IndustrialCraft2=§f工業時代 EU(IC²-EU)§7:§a%s:%s§7 +oc:tooltip.PowerConverter.Mekanism=§f通用機器焦耳(Joules)§7:§a%s:%s§7 +oc:tooltip.PowerConverter.ThermalExpansion=§f熱能擴展RF(TE-RF)§7:§a%s:%s§7 +oc:tooltip.PowerConverter.ResonantEngine=§f諧振引擎庫侖§7:§a%s:%s§7 +oc:tooltip.PowerConverter=將其他模組的能量轉化為本模組的內部能源形式。轉換率: +oc:tooltip.PowerDistributor=在不同網絡中分配能量。[nl]用來通過包含多個理論上獨立的子網絡的轉換器在系統中共享能量時很實用。 oc:tooltip.Present=... for your troubles. Open this present for a chance to receive some §kphat lewt§7![nl]§8Craft OpenComputers items when the time is right for a chance to receive a present.§7 oc:tooltip.Print.BeaconBase=§8一盞燈的基座 -oc:tooltip.Print.LightValue=§8發出的光: %s. -oc:tooltip.Print.RedstoneLevel=§8紅石輸出: %s. +oc:tooltip.Print.LightValue=§8發出的光:%s。 +oc:tooltip.Print.RedstoneLevel=§8紅石輸出:%s。 oc:tooltip.PrintedCircuitBoard=基本的構建方塊用來裝入擴充卡與記憶體模組 -oc:tooltip.Printer=允許使用玩家自定義的墨水匣 Chamelium 與 Ink Cartridges. 必須使用電腦來進行配置. 遠離小朋友 +oc:tooltip.Printer=允許使用玩家自定義的墨水匣 Chamelium 與 Ink Cartridges。必須使用電腦來進行組態。遠離小朋友 oc:tooltip.Raid=使用三個硬碟機然後連接電腦成為一個更大容量的資料儲存系統 -oc:tooltip.PrintedCircuitBoard=擴展卡,記憶體等的基板. -oc:tooltip.RawCircuitBoard=能夠在熔爐或者類似爐子中加工強化成其他材料. -oc:tooltip.Redstone=能夠在方塊周圍接收以及發送紅石信號.[nl]可以被與之相連的計算機控制.基本上就像一個外置紅石卡. -oc:tooltip.RedstoneCard.ProjectRed=已經§a支持§fProjectRed§7. -oc:tooltip.RedstoneCard.RedLogic=已經§a支持§7§f紅石邏輯(RedLogic)§7中的紅石系統. -oc:tooltip.RedstoneCard.RedNet=已經§a支援§7MFR中的§f紅石網絡(RedNet)§7. -oc:tooltip.RedstoneCard.WirelessCBE=已經§a支援§f無線紅石 (ChickenBones)§7. -oc:tooltip.RedstoneCard.WirelessSV=已經§a支援§f無線紅石 (SlimeVoid)§7. -oc:tooltip.RedstoneCard=能夠在計算機和機器人四周接收以及發送紅石信號. -oc:tooltip.Robot=和計算機不同,機器人能夠移動并且像玩家那些與世界之中的東西交互.[nl]然而,它們§o不能§r§7直接與外設進行交互! +oc:tooltip.PrintedCircuitBoard=擴展卡,記憶體等的基板。 +oc:tooltip.RawCircuitBoard=能夠在熔爐或者類似爐子中加工強化成其他材料。 +oc:tooltip.Redstone=能夠在方塊周圍接收以及發送紅石信號。[nl]可以被與之相連的計算機控制。基本上就像一個外置紅石卡。 +oc:tooltip.RedstoneCard.ProjectRed=已經§a支持§fProjectRed§7。 +oc:tooltip.RedstoneCard.RedLogic=已經§a支持§7§f紅石邏輯(RedLogic)§7中的紅石系統。 +oc:tooltip.RedstoneCard.RedNet=已經§a支援§7MFR中的§f紅石網絡(RedNet)§7。 +oc:tooltip.RedstoneCard.WirelessCBE=已經§a支援§f無線紅石(ChickenBones)§7。 +oc:tooltip.RedstoneCard.WirelessSV=已經§a支援§f無線紅石(SlimeVoid)§7。 +oc:tooltip.RedstoneCard=能夠在計算機和機器人四周接收以及發送紅石信號。 +oc:tooltip.Robot=和計算機不同,機器人能夠移動并且像玩家那些與世界之中的東西交互。[nl]然而,它們§o不能§r§7直接與外設進行交互! # The underscore makes sure this isn't hidden with the rest of the tooltip. -oc:tooltip.Robot_Level=§f等級§7: §a%s§7. -oc:tooltip.Robot_StoredEnergy=§f儲能§7: §a%s§7. -oc:tooltip.Screen=由電腦機殼內的顯示卡控制來顯示文字.[nl]最高分辨率: §f%sx%s§7[nl] 最大色深: §f%s§7 -oc:tooltip.Server=這是一台伺服器, 他非常棒, 但是他可以使用元件去升級他功能就像電腦一樣. 他可以插入伺服器機架上執行. +oc:tooltip.Robot_Level=§f等級§7:§a%s§7。 +oc:tooltip.Robot_StoredEnergy=§f儲能§7:§a%s§7。 +oc:tooltip.Screen=由電腦機殼內的顯示卡控制來顯示文字。[nl]最高分辨率:§f%sx%s§7[nl] 最大色深:§f%s§7 +oc:tooltip.Server=這是一台伺服器,他非常棒,但是他可以使用元件去升級他功能就像電腦一樣。他可以插入伺服器機架上執行。 oc:tooltip.Server.Components=安裝的元件: -oc:tooltip.Rack=提供安裝最多達四個伺服器。為每個伺服器提供了一個內置的虛擬鍵盤和螢幕元件,相當於一個遠程終端。 -oc:tooltip.Switch=允許設備相互連接不同的網絡.[nl]僅能傳遞網絡信息,通過路由器方式設備并不互相可見.[nl]例如可以通過這種方式來建立獨立網絡但仍允許其使用網卡通訊. -oc:tooltip.Tablet=一台平板電腦, 可以在旅行中使用LUA. 使用潛行按鍵來啟動或是關閉他 -oc:tooltip.TabletCase=平板電腦的機殼,將它放置在機器組裝台內製作一台平板電腦 +oc:tooltip.Rack=提供安裝最多達四個伺服器。為每個伺服器提供了一個內置的虛擬鍵盤和螢幕元件,相當於一個遠程終端機。 +oc:tooltip.Switch=允許装置相互連接不同的網絡。[nl]僅能傳遞網絡資訊,透过交換機連接的裝置并不互相可見.[nl]例如可以通過這種方式來建立獨立網絡但仍允許其使用網卡通訊。 +oc:tooltip.Tablet=一台平板電腦,可以在旅行中使用LUA。使用潛行按鍵來啟動或是關閉他 +oc:tooltip.TabletCase=平板電腦的機殼,將它放置在機器組裝台內製作一台平板電腦 oc:tooltip.Terminal=允許遠程控制伺服器,只要你在它的範圍內。就像一個隨身型螢幕和鍵盤。按住Shift鍵並滑鼠右鍵單擊某個服務器的服務器機架終端綁定它。 -oc:tooltip.TexturePicker=可以工具允許顯示方塊該面向的紋理描述, 主要用於3D印表機. 完全沒有紋理名字,沒了! +oc:tooltip.TexturePicker=可以工具允許顯示方塊該面向的紋理描述,主要用於3D印表機。完全沒有紋理名字,沒了! oc:tooltip.Tier=§8等級 %s oc:tooltip.NetSplitter=作為一個動態連接器。每邊的連接可以通過用扳手擊中它進行切換。所有邊的連接可以通過應用紅石信號反轉。 -oc:tooltip.TooLong=按住潛行鍵([§f%s§7])以查看詳細提示信息. -oc:tooltip.Transistor=在多數其他計算機的零件中都很基礎的元件.[nl]引腳有點彎了,但還能用。 +oc:tooltip.TooLong=按住潛行鍵([§f%s§7])以查看詳細提示資訊。 +oc:tooltip.Transistor=在多數其他計算機的零件中都很基礎的元件。[nl]引腳有點彎了,但還能用。 oc:tooltip.Transposer=允許相鄰的箱子與液體容器之間的物品液體transferral oc:tooltip.UpgradeAngel=讓機器人能夠憑空放置方塊在任何地方,即使沒有參考點可以依附放置。 -oc:tooltip.UpgradeBattery=增加機器人可儲存的能量,讓它可以工作更長的時間不需要補充能量. [nl] 容量: §f%s§7 +oc:tooltip.UpgradeBattery=增加機器人可儲存的能量,讓它可以工作更長的時間不需要補充能量。[nl] 容量:§f%s§7 oc:tooltip.UpgradeChunkloader=如果機器人在森林中移動,周圍沒有其他玩家,它真的會動嗎? 這個升級組件可以確保它持續地在作用中,它使區塊持續在載入狀態,但會不斷消耗能量,維持它。 -oc:tooltip.UpgradeContainerCard=這個集裝箱升級組件允許動態裝配機器人內的某個插卡. [nl] 最大等級: §f%s§7 +oc:tooltip.UpgradeContainerCard=這個集裝箱升級組件允許動態裝配機器人內的某個插卡。[nl] 最大等級:§f%s§7 oc:tooltip.UpgradeContainerUpgrade=這個集裝箱升級組件允許動態裝配機器人內的某個升級組件 [nl] 最大等級: §f%s§7 -oc:tooltip.UpgradeCrafting=使得機器人能夠將其物品欄的左上區域作為合成網格來制做物品.[nl]物品欄內物品擺放必須與工作臺中一致. -oc:tooltip.UpgradeDatabase=這個升級允許儲存用於檢索與其他組件的堆疊訊息.[nl] 支持的條目: §f%s§7 +oc:tooltip.UpgradeCrafting=使得機器人能夠將其物品欄的左上區域作為合成網格來制做物品。[nl]物品欄內物品擺放必須與工作臺中一致。 +oc:tooltip.UpgradeDatabase=這個升級允許儲存用於檢索與其他組件的堆疊訊息.[nl] 支持的條目:§f%s§7 oc:tooltip.UpgradeExperience=這個升級組件,能夠讓機器人執行各種操作,累積更多的經驗,然後它會獲得更多的能量,更多的儲存空間,速度更快,它收割更有效率,也能使用工具。 -oc:tooltip.UpgradeGenerator=用來不斷地消耗燃料發電,燃燒物品并基于它們的燃燒值隨著時間推移產生電力.[nl] §f效率§7: §a%s%%§7。 -oc:tooltip.UpgradeHover=可以升級可以讓機器人飛離地面更高,而且不用爬牆.[nl] 最大高度: §f%s§7 +oc:tooltip.UpgradeGenerator=用來不斷地消耗燃料發電,燃燒物品并基于它們的燃燒值隨著時間推移產生電力.[nl] §f效率§7:§a%s%%§7。 +oc:tooltip.UpgradeHover=可以升級可以讓機器人飛離地面更高,而且不用爬牆。[nl] 最大高度:§f%s§7 oc:tooltip.UpgradeInventory=這個升級組件提供機器人一個物品放置的空間,沒有這個升級組件,機器人將不能再內部儲存任何物品。 oc:tooltip.UpgradeInventoryController=這個升級組件可以讓機器人更好的控制如何與外部互動物品,並且允許他交換或是裝備物品欄內的工具。 -oc:tooltip.UpgradeLeash=允許一些設備,如無人機, 來綁定 Isaa- excuse me... *chatter* My apologies. 我只是被告知這其實是用來綁住多種動物在木樁上. +oc:tooltip.UpgradeLeash=允許一些装置,如無人機,來綁定 Isaa- excuse me... *chatter* My apologies. 我只是被告知這其實是用來綁住多種動物在木樁上。 oc:tooltip.UpgradeNavigation=可以用來確定機器人的位置和方向。該位置是相對於被用來製作這個升級地圖的中心。 -oc:tooltip.UpgradePiston=這個升級十分有用. 它能讓機器人像活塞那樣移動方塊, 但 §l不能§7 移動實體. +oc:tooltip.UpgradePiston=這個升級十分有用。它能讓機器人像活塞那樣移動方塊,但 §l不能§7 移動實體。 oc:tooltip.UpgradeSign=允許讀取文字與寫入文字到告示牌 -oc:tooltip.UpgradeSolarGenerator=在移動中可以從陽光獲取能量. 機器人上方必須保持無遮蔽狀態才能. 產生能量 %s%% 速度的能量給引擎。 -oc:tooltip.UpgradeTank=為你的機器人裝上一個可存儲流體的水箱. 如果沒有升級此功能, 你的機器人將無法在內部存儲流體. -oc:tooltip.UpgradeTankController=這個升級能讓你的機器人與外界水箱交互, 向其傳輸流體. -oc:tooltip.UpgradeTractorBeam=裝備機器人具有非常先進的技術,綽號"物品磁鐵"。它能夠拾取三個方塊內的任何地方。 -oc:tooltip.Waypoint=提供一個參考點到與導航設備的升級。 -oc:tooltip.WirelessNetworkCard=允許在發送正常信息外無線發送網絡信息.[nl]請確保已設置好§f信號強度§7否則不會發出無線數據包。 -oc:tooltip.WorldSensorCard=允許讀取世界訊息,比如重力,以及是否在大氣下,傳回結果. +oc:tooltip.UpgradeSolarGenerator=在移動中可以從陽光獲取能量。機器人上方必須保持無遮蔽狀態才能。產生能量 %s%% 速度的能量給引擎。 +oc:tooltip.UpgradeTank=為你的機器人裝上一個可存儲流體的水箱。如果沒有升級此功能,你的機器人將無法在內部存儲流體。 +oc:tooltip.UpgradeTankController=這個升級能讓你的機器人與外界水箱交互,向其傳輸流體。 +oc:tooltip.UpgradeTractorBeam=裝備機器人具有非常先進的技術,綽號「物品磁鐵」。它能夠拾取三個方塊內的任何地方。 +oc:tooltip.Waypoint=提供一個參考點到與導航装置的升級。 +oc:tooltip.WirelessNetworkCard=允許在發送正常資訊外無線發送網絡資訊。[nl]請確保已設置好§f信號強度§7否則不會發出無線封包。 +oc:tooltip.WorldSensorCard=允許讀取世界訊息,比如重力,以及是否在大氣下,傳回結果。 oc:tooltip.Wrench=螺絲刀和扳手的混合體,這個工具是簡單易學,但很難掌握。 #Achievements @@ -426,9 +437,9 @@ achievement.oc.rack=Dat Rack achievement.oc.rack.desc=I don't know what you're thinking of, I clearly meant the server rack. achievement.oc.raid=LFG achievement.oc.raid.desc=Heroic plzkthx. -achievement.oc.ram=隨機存取存儲器 +achievement.oc.ram=隨機存取記憶體 achievement.oc.ram.desc=Congratulations, you're Doin' It Right. -achievement.oc.redstoneCard=聯繫 +achievement.oc.redstoneCard=聯絡 achievement.oc.redstoneCard.desc=Time to go analog. achievement.oc.redstoneIO=局外人 achievement.oc.redstoneIO.desc=Taking redstone signals where you want them. From 9263d99b2037e437bc3925c338ef17c044ac85a0 Mon Sep 17 00:00:00 2001 From: WHR Date: Tue, 29 Sep 2020 22:47:24 +0800 Subject: [PATCH 02/12] Using a more common translation for 'access point' --- src/main/resources/assets/opencomputers/lang/zh_CN.lang | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/assets/opencomputers/lang/zh_CN.lang b/src/main/resources/assets/opencomputers/lang/zh_CN.lang index 6da7ed9c8..c3e6b2854 100644 --- a/src/main/resources/assets/opencomputers/lang/zh_CN.lang +++ b/src/main/resources/assets/opencomputers/lang/zh_CN.lang @@ -3,7 +3,7 @@ # Use [nl] to for a line break. 使用[nl]作为换行标志 # Blocks -tile.oc.accessPoint.name=§c访问点§7 +tile.oc.accessPoint.name=§c接入点§7 tile.oc.adapter.name=适配器 tile.oc.assembler.name=设备装配器 tile.oc.cable.name=线缆 @@ -238,7 +238,7 @@ oc:gui.Terminal.InvalidKey=无效键,看上去另一个终端已绑定到这 oc:gui.Terminal.OutOfRange=无信号。 # Containers -oc:container.AccessPoint=访问点 +oc:container.AccessPoint=接入点 oc:container.Adapter=适配器 oc:container.Case=计算机 oc:container.Charger=充电器 From c9530ae0dd9a2426eab8cedef6c241dbb5086c70 Mon Sep 17 00:00:00 2001 From: payonel Date: Wed, 8 Jun 2022 23:10:49 -0700 Subject: [PATCH 03/12] fix env pass in sh command. closes #3196 --- .../resources/assets/opencomputers/loot/openos/bin/sh.lua | 2 +- .../assets/opencomputers/loot/openos/lib/core/full_shell.lua | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua b/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua index d4e4dd9db..de7a7b1c4 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua @@ -41,5 +41,5 @@ if #args == 0 then end else -- execute command. - return sh.execute(...) + return sh.execute(_ENV, ...) end diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/core/full_shell.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/core/full_shell.lua index 2576b07ee..7c6701715 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/core/full_shell.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/core/full_shell.lua @@ -10,8 +10,8 @@ function shell.execute(command, env, ...) if not sh then return false, reason end - local proc = process.load(sh, nil, nil, command) - local result = table.pack(process.internal.continue(proc, env, command, ...)) + local proc = process.load(sh, env, nil, command) + local result = table.pack(process.internal.continue(proc, command, ...)) if result.n == 0 then return true end return table.unpack(result, 1, result.n) end From 7d23e7ff99fed7de1e4226127d645e4d3123c158 Mon Sep 17 00:00:00 2001 From: Adrian Siekierka Date: Sat, 11 Jun 2022 14:05:10 +0200 Subject: [PATCH 04/12] Remove canEntityDestroy check from OC Player agent. (#3239) --- src/main/scala/li/cil/oc/server/agent/Player.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/server/agent/Player.scala b/src/main/scala/li/cil/oc/server/agent/Player.scala index 796d50597..7ad3ffe9a 100644 --- a/src/main/scala/li/cil/oc/server/agent/Player.scala +++ b/src/main/scala/li/cil/oc/server/agent/Player.scala @@ -345,7 +345,7 @@ class Player(val agent: internal.Agent) extends FakePlayer(agent.world.asInstanc val hardness = block.getBlockHardness(world, x, y, z) val isBlockUnbreakable = hardness < 0 - val canDestroyBlock = !isBlockUnbreakable && block.canEntityDestroy(world, x, y, z, this) + val canDestroyBlock = !isBlockUnbreakable if (!canDestroyBlock) { return 0 } From 40ae359521a3ac615e1296633ebb288f144160e7 Mon Sep 17 00:00:00 2001 From: Adrian Siekierka Date: Sat, 11 Jun 2022 19:41:13 +0200 Subject: [PATCH 05/12] Implement media() on server disk drive, fix #3440 --- .../li/cil/oc/server/component/DiskDriveMountable.scala | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/scala/li/cil/oc/server/component/DiskDriveMountable.scala b/src/main/scala/li/cil/oc/server/component/DiskDriveMountable.scala index e4c59ede3..a2497063c 100644 --- a/src/main/scala/li/cil/oc/server/component/DiskDriveMountable.scala +++ b/src/main/scala/li/cil/oc/server/component/DiskDriveMountable.scala @@ -80,6 +80,14 @@ class DiskDriveMountable(val rack: api.internal.Rack, val slot: Int) extends pre else result(false) } + @Callback(doc = "function(): string -- Return the internal floppy disk address") + def media(context: Context, args: Arguments): Array[AnyRef] = { + if (filesystemNode.isEmpty) + result(Unit, "drive is empty") + else + result(filesystemNode.head.address) + } + // ----------------------------------------------------------------------- // // Analyzable From 61f55781222d1dce8272e32921a00a466a264643 Mon Sep 17 00:00:00 2001 From: Adrian Siekierka Date: Sat, 11 Jun 2022 19:51:54 +0200 Subject: [PATCH 06/12] AE2: Fix filtering by keys which are not always present. --- .../scala/li/cil/oc/integration/appeng/NetworkControl.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/integration/appeng/NetworkControl.scala b/src/main/scala/li/cil/oc/integration/appeng/NetworkControl.scala index 9fe7cb6e6..2f2cacc1b 100644 --- a/src/main/scala/li/cil/oc/integration/appeng/NetworkControl.scala +++ b/src/main/scala/li/cil/oc/integration/appeng/NetworkControl.scala @@ -169,7 +169,8 @@ trait NetworkControl[AETile >: Null <: TileEntity with IGridProxyable with IActi filter.forall { case (key: String, value: AnyRef) => { val stack_value = stack.get(key) - value match { + if (stack_value == null) false + else value match { case number: Number => stack_value match { case stack_number: Number => number.intValue == stack_number.intValue case any => number.toString.equals(any.toString) From 35006787ba877765b12211003be57252de38a818 Mon Sep 17 00:00:00 2001 From: Adrian Siekierka Date: Sat, 11 Jun 2022 19:53:45 +0200 Subject: [PATCH 07/12] AE2: Fix item stack sizes larger than 2^31-1 --- .../scala/li/cil/oc/integration/appeng/NetworkControl.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/integration/appeng/NetworkControl.scala b/src/main/scala/li/cil/oc/integration/appeng/NetworkControl.scala index 2f2cacc1b..d62e0764e 100644 --- a/src/main/scala/li/cil/oc/integration/appeng/NetworkControl.scala +++ b/src/main/scala/li/cil/oc/integration/appeng/NetworkControl.scala @@ -75,7 +75,7 @@ trait NetworkControl[AETile >: Null <: TileEntity with IGridProxyable with IActi val hash = result(0) // it would have been nice to put these fields in a registry convert // but the potential ae item needs the tile and position data - hash.update("size", Int.box(aeItem.getStackSize.toInt)) + hash.update("size", Long.box(aeItem.getStackSize)) hash.update("isCraftable", Boolean.box(aeItem.isCraftable)) return hash } From fed59c585525e74916491753480ddaf0513efaa8 Mon Sep 17 00:00:00 2001 From: TeraV Date: Wed, 26 Jan 2022 17:10:08 -0500 Subject: [PATCH 08/12] Added robot names from Mystery Science Theater 3000 --- src/main/resources/assets/opencomputers/robot.names | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/resources/assets/opencomputers/robot.names b/src/main/resources/assets/opencomputers/robot.names index 0e5ab13c0..455dcad2f 100644 --- a/src/main/resources/assets/opencomputers/robot.names +++ b/src/main/resources/assets/opencomputers/robot.names @@ -34,6 +34,7 @@ Claptrap # Borderlands Codsworth # Fallout 4 Continuity # Mona Lisa Overdrive Cortana # Halo +Crow # Mystery Science Theater 3000 Crypto # Kodos Curiosity # Mars Rover Daedalus # Deus Ex @@ -60,6 +61,7 @@ Ghost # I, Robot quote "There have always been ghosts in the machin GLaDOS # Portal Gipsy Danger # Pacific Rim G.U.N.T.E.R. # Lost in Space +Gypsy # Mystery Science Theater 3000 HAL 9000 # Space Odyssey Harbinger # Mass Effect Harkness # Fallout 3 @@ -116,6 +118,7 @@ T-1000 # Terminator Tachikoma # Ghost in the Shell TARA UH # Perry Rhodan Terminator # Terminator +Tom Servo # Mystery Science Theater 3000 Rinzler # Tron Twiki # Buck Rodgers Uniblab # The Jetsons From b1f37cda1f0e6b8b326ccf7c4d9b04dfac4d6144 Mon Sep 17 00:00:00 2001 From: lunaboards-dev <30084950+lunaboards-dev@users.noreply.github.com> Date: Fri, 17 Jun 2022 20:35:12 -0500 Subject: [PATCH 09/12] Add Zone of Endless (Ace Combat) --- src/main/resources/assets/opencomputers/robot.names | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/assets/opencomputers/robot.names b/src/main/resources/assets/opencomputers/robot.names index 455dcad2f..ef86f19e3 100644 --- a/src/main/resources/assets/opencomputers/robot.names +++ b/src/main/resources/assets/opencomputers/robot.names @@ -134,3 +134,4 @@ Wheatley # Portal Wintermute # Neuromancer Wobbo # Contributor Yui-MHCP001 # AKA Yui (Mental Health Counseling Program 001) - Sword Art Online +Zone of Endless # Ace Combat series From e940d5c745501b9096157a08a1ece4f9518dd1e7 Mon Sep 17 00:00:00 2001 From: D-Cysteine <54219287+D-Cysteine@users.noreply.github.com> Date: Sat, 24 Jul 2021 19:50:27 -0600 Subject: [PATCH 10/12] Add dimension to machine position debug statements --- src/main/scala/li/cil/oc/server/machine/Machine.scala | 7 +++++-- .../server/machine/luac/NativeLuaArchitecture.scala | 11 +++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/scala/li/cil/oc/server/machine/Machine.scala b/src/main/scala/li/cil/oc/server/machine/Machine.scala index 3bc3c81bb..2b187c1ff 100644 --- a/src/main/scala/li/cil/oc/server/machine/Machine.scala +++ b/src/main/scala/li/cil/oc/server/machine/Machine.scala @@ -780,7 +780,7 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach catch { case t: Throwable => OpenComputers.log.error( - s"""Unexpected error loading a state of computer at (${host.xPosition}, ${host.yPosition}, ${host.zPosition}). """ + + s"""Unexpected error loading a state of computer at ${machinePosition}. """ + s"""State: ${state.headOption.fold("no state")(_.toString)}. Unless you're upgrading/downgrading across a major version, please report this! Thank you.""", t) close() } @@ -862,7 +862,7 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach catch { case t: Throwable => OpenComputers.log.error( - s"""Unexpected error saving a state of computer at (${host.xPosition}, ${host.yPosition}, ${host.zPosition}). """ + + s"""Unexpected error saving a state of computer at ${machinePosition}. """ + s"""State: ${state.headOption.fold("no state")(_.toString)}. Unless you're upgrading/downgrading across a major version, please report this! Thank you.""", t) } }) @@ -1039,6 +1039,9 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach // Keep track of time spent executing the computer. cpuTotal += System.nanoTime() - cpuStart } + + /** Helper method for printing the machine position in error messages and debug statements. */ + private def machinePosition = s"(${host.xPosition}, ${host.yPosition}, ${host.zPosition}, ${host.world().provider.dimensionId})" } object Machine extends MachineAPI { diff --git a/src/main/scala/li/cil/oc/server/machine/luac/NativeLuaArchitecture.scala b/src/main/scala/li/cil/oc/server/machine/luac/NativeLuaArchitecture.scala index f87d313d1..ec110a64e 100644 --- a/src/main/scala/li/cil/oc/server/machine/luac/NativeLuaArchitecture.scala +++ b/src/main/scala/li/cil/oc/server/machine/luac/NativeLuaArchitecture.scala @@ -376,7 +376,7 @@ abstract class NativeLuaArchitecture(val machine: api.machine.Machine) extends A try lua.gc(LuaState.GcAction.COLLECT, 0) catch { case t: Throwable => - OpenComputers.log.warn(s"Error cleaning up loaded computer @ (${machine.host.xPosition}, ${machine.host.yPosition}, ${machine.host.zPosition}). This either means the server is badly overloaded or a user created an evil __gc method, accidentally or not.") + OpenComputers.log.warn(s"Error cleaning up loaded computer @ ${machinePosition}. This either means the server is badly overloaded or a user created an evil __gc method, accidentally or not.") machine.crash("error in garbage collector, most likely __gc method timed out") } } catch { @@ -414,19 +414,22 @@ abstract class NativeLuaArchitecture(val machine: api.machine.Machine) extends A try lua.gc(LuaState.GcAction.COLLECT, 0) catch { case t: Throwable => - OpenComputers.log.warn(s"Error cleaning up loaded computer @ (${machine.host.xPosition}, ${machine.host.yPosition}, ${machine.host.zPosition}). This either means the server is badly overloaded or a user created an evil __gc method, accidentally or not.") + OpenComputers.log.warn(s"Error cleaning up loaded computer @ ${machinePosition}. This either means the server is badly overloaded or a user created an evil __gc method, accidentally or not.") machine.crash("error in garbage collector, most likely __gc method timed out") } } catch { case e: LuaRuntimeException => - OpenComputers.log.warn(s"Could not persist computer @ (${machine.host.xPosition}, ${machine.host.yPosition}, ${machine.host.zPosition}).\n${e.toString}" + (if (e.getLuaStackTrace.isEmpty) "" else "\tat " + e.getLuaStackTrace.mkString("\n\tat "))) + OpenComputers.log.warn(s"Could not persist computer @ ${machinePosition}.\n${e.toString}" + (if (e.getLuaStackTrace.isEmpty) "" else "\tat " + e.getLuaStackTrace.mkString("\n\tat "))) nbt.removeTag("state") case e: LuaGcMetamethodException => - OpenComputers.log.warn(s"Could not persist computer @ (${machine.host.xPosition}, ${machine.host.yPosition}, ${machine.host.zPosition}).\n${e.toString}") + OpenComputers.log.warn(s"Could not persist computer @ ${machinePosition}.\n${e.toString}") nbt.removeTag("state") } // Limit memory again. recomputeMemory(machine.host.internalComponents) } + + /** Helper method for printing the machine position in error messages and debug statements. */ + private def machinePosition = s"(${machine.host.xPosition}, ${machine.host.yPosition}, ${machine.host.zPosition}, ${machine.host.world().provider.dimensionId})" } From 5065044b749abfd7c28c034804ba4ef499953a4c Mon Sep 17 00:00:00 2001 From: repo_alt Date: Fri, 24 Jun 2022 12:10:19 +0400 Subject: [PATCH 11/12] moved machinePosition() to MachineHost --- src/main/java/li/cil/oc/api/machine/MachineHost.java | 9 +++++++++ src/main/scala/li/cil/oc/server/machine/Machine.scala | 7 ++----- .../server/machine/luac/NativeLuaArchitecture.scala | 11 ++++------- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/main/java/li/cil/oc/api/machine/MachineHost.java b/src/main/java/li/cil/oc/api/machine/MachineHost.java index 67c7eae4a..b8ab09467 100644 --- a/src/main/java/li/cil/oc/api/machine/MachineHost.java +++ b/src/main/java/li/cil/oc/api/machine/MachineHost.java @@ -55,4 +55,13 @@ public interface MachineHost extends EnvironmentHost { * @param node the node that was disconnected from the network. */ void onMachineDisconnect(Node node); + + /** Helper method for printing the machine position in error messages and debug statements. */ + default String machinePosition() + { + if (world() != null && world().provider != null) + return String.format("(%g, %g, %g, %d)", xPosition(), yPosition(), zPosition(), world().provider.dimensionId); + else + return String.format("(%g, %g, %g)", xPosition(), yPosition(), zPosition()); + } } diff --git a/src/main/scala/li/cil/oc/server/machine/Machine.scala b/src/main/scala/li/cil/oc/server/machine/Machine.scala index 2b187c1ff..a42d6288b 100644 --- a/src/main/scala/li/cil/oc/server/machine/Machine.scala +++ b/src/main/scala/li/cil/oc/server/machine/Machine.scala @@ -780,7 +780,7 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach catch { case t: Throwable => OpenComputers.log.error( - s"""Unexpected error loading a state of computer at ${machinePosition}. """ + + s"""Unexpected error loading a state of computer at ${host.machinePosition()}. """ + s"""State: ${state.headOption.fold("no state")(_.toString)}. Unless you're upgrading/downgrading across a major version, please report this! Thank you.""", t) close() } @@ -862,7 +862,7 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach catch { case t: Throwable => OpenComputers.log.error( - s"""Unexpected error saving a state of computer at ${machinePosition}. """ + + s"""Unexpected error saving a state of computer at ${host.machinePosition()}. """ + s"""State: ${state.headOption.fold("no state")(_.toString)}. Unless you're upgrading/downgrading across a major version, please report this! Thank you.""", t) } }) @@ -1039,9 +1039,6 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach // Keep track of time spent executing the computer. cpuTotal += System.nanoTime() - cpuStart } - - /** Helper method for printing the machine position in error messages and debug statements. */ - private def machinePosition = s"(${host.xPosition}, ${host.yPosition}, ${host.zPosition}, ${host.world().provider.dimensionId})" } object Machine extends MachineAPI { diff --git a/src/main/scala/li/cil/oc/server/machine/luac/NativeLuaArchitecture.scala b/src/main/scala/li/cil/oc/server/machine/luac/NativeLuaArchitecture.scala index ec110a64e..ed13eb4e3 100644 --- a/src/main/scala/li/cil/oc/server/machine/luac/NativeLuaArchitecture.scala +++ b/src/main/scala/li/cil/oc/server/machine/luac/NativeLuaArchitecture.scala @@ -376,7 +376,7 @@ abstract class NativeLuaArchitecture(val machine: api.machine.Machine) extends A try lua.gc(LuaState.GcAction.COLLECT, 0) catch { case t: Throwable => - OpenComputers.log.warn(s"Error cleaning up loaded computer @ ${machinePosition}. This either means the server is badly overloaded or a user created an evil __gc method, accidentally or not.") + OpenComputers.log.warn(s"Error cleaning up loaded computer @ ${machine.host().machinePosition()}. This either means the server is badly overloaded or a user created an evil __gc method, accidentally or not.") machine.crash("error in garbage collector, most likely __gc method timed out") } } catch { @@ -414,22 +414,19 @@ abstract class NativeLuaArchitecture(val machine: api.machine.Machine) extends A try lua.gc(LuaState.GcAction.COLLECT, 0) catch { case t: Throwable => - OpenComputers.log.warn(s"Error cleaning up loaded computer @ ${machinePosition}. This either means the server is badly overloaded or a user created an evil __gc method, accidentally or not.") + OpenComputers.log.warn(s"Error cleaning up loaded computer @ ${machine.host().machinePosition()}. This either means the server is badly overloaded or a user created an evil __gc method, accidentally or not.") machine.crash("error in garbage collector, most likely __gc method timed out") } } catch { case e: LuaRuntimeException => - OpenComputers.log.warn(s"Could not persist computer @ ${machinePosition}.\n${e.toString}" + (if (e.getLuaStackTrace.isEmpty) "" else "\tat " + e.getLuaStackTrace.mkString("\n\tat "))) + OpenComputers.log.warn(s"Could not persist computer @ ${machine.host().machinePosition()}.\n${e.toString}" + (if (e.getLuaStackTrace.isEmpty) "" else "\tat " + e.getLuaStackTrace.mkString("\n\tat "))) nbt.removeTag("state") case e: LuaGcMetamethodException => - OpenComputers.log.warn(s"Could not persist computer @ ${machinePosition}.\n${e.toString}") + OpenComputers.log.warn(s"Could not persist computer @ ${machine.host().machinePosition()}.\n${e.toString}") nbt.removeTag("state") } // Limit memory again. recomputeMemory(machine.host.internalComponents) } - - /** Helper method for printing the machine position in error messages and debug statements. */ - private def machinePosition = s"(${machine.host.xPosition}, ${machine.host.yPosition}, ${machine.host.zPosition}, ${machine.host.world().provider.dimensionId})" } From 352e75603ce542956152870f682660aa7127f2af Mon Sep 17 00:00:00 2001 From: Adrian Siekierka Date: Sun, 12 Jun 2022 13:13:24 +0200 Subject: [PATCH 12/12] fix #3182 by passing inventory source to transposer.getInventoryName --- .../traits/WorldInventoryAnalytics.scala | 29 ++++++++++---- .../scala/li/cil/oc/util/InventoryUtils.scala | 39 ++++++++++++++----- 2 files changed, 51 insertions(+), 17 deletions(-) diff --git a/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala b/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala index e82090706..94c67f978 100644 --- a/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala +++ b/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala @@ -6,12 +6,12 @@ import li.cil.oc.api.machine.Callback import li.cil.oc.api.machine.Context import li.cil.oc.api.prefab.ItemStackArrayValue import li.cil.oc.server.component.result -import li.cil.oc.util.{BlockPosition, DatabaseAccess, InventoryUtils} +import li.cil.oc.util.{BlockInventorySource, BlockPosition, DatabaseAccess, EntityInventorySource, InventorySource, InventoryUtils} import li.cil.oc.util.ExtendedWorld._ import li.cil.oc.util.ExtendedArguments._ -import li.cil.oc.util.InventoryUtils import net.minecraft.inventory.IInventory import net.minecraft.block.Block +import net.minecraft.entity.EntityList import net.minecraft.item.ItemStack import net.minecraftforge.common.util.ForgeDirection import net.minecraftforge.oredict.OreDictionary @@ -102,8 +102,12 @@ trait WorldInventoryAnalytics extends WorldAware with SideRestricted with Networ } case _ => None } - withInventory(facing, inventory => blockAt(position.offset(facing)) match { - case Some(block) => result(block.getUnlocalizedName) + withInventorySource(facing, { + case BlockInventorySource(position, _) => blockAt(position) match { + case Some(block) => result(block.getUnlocalizedName) + case _ => result(Unit, "Unknown") + } + case EntityInventorySource(entity, _) => result(EntityList.getEntityString(entity)) case _ => result(Unit, "Unknown") }) } @@ -122,9 +126,20 @@ trait WorldInventoryAnalytics extends WorldAware with SideRestricted with Networ withInventory(facing, inventory => store(inventory.getStackInSlot(args.checkSlot(inventory, 1)))) } - private def withInventory(side: ForgeDirection, f: IInventory => Array[AnyRef]) = - InventoryUtils.inventoryAt(position.offset(side)) match { - case Some(inventory) if inventory.isUseableByPlayer(fakePlayer) && mayInteract(position.offset(side), side.getOpposite) => f(inventory) + private def mayInteract(side: ForgeDirection, f: InventorySource): Boolean = { + if (!f.inventory.isUseableByPlayer(fakePlayer)) false + else f match { + case BlockInventorySource(pos, _) => mayInteract(pos, side.getOpposite) + case _ => true + } + } + + private def withInventorySource(side: ForgeDirection, f: InventorySource => Array[AnyRef]) = + InventoryUtils.inventorySourceAt(position.offset(side)) match { + case Some(is) if mayInteract(side, is) => f(is) case _ => result(Unit, "no inventory") } + + private def withInventory(side: ForgeDirection, f: IInventory => Array[AnyRef]) = + withInventorySource(side, is => f(is.inventory)) } diff --git a/src/main/scala/li/cil/oc/util/InventoryUtils.scala b/src/main/scala/li/cil/oc/util/InventoryUtils.scala index cc0a07a4a..e54030264 100644 --- a/src/main/scala/li/cil/oc/util/InventoryUtils.scala +++ b/src/main/scala/li/cil/oc/util/InventoryUtils.scala @@ -2,6 +2,7 @@ package li.cil.oc.util import li.cil.oc.util.ExtendedWorld._ import net.minecraft.block.BlockChest +import net.minecraft.entity.Entity import net.minecraft.entity.item.EntityItem import net.minecraft.entity.item.EntityMinecartContainer import net.minecraft.entity.player.EntityPlayer @@ -25,22 +26,34 @@ object InventoryUtils { (!stackA.getHasSubtypes || stackA.getItemDamage == stackB.getItemDamage) && (!checkNBT || ItemStack.areItemStackTagsEqual(stackA, stackB)) + /** + * Retrieves an actual inventory implementation for a specified world coordinate, + * complete with a reference to the source of said implementation. + *
+ * This performs special handling for (double-)chests and also checks for + * mine carts with chests. + */ + def inventorySourceAt(position: BlockPosition): Option[InventorySource] = position.world match { + case Some(world) if world.blockExists(position) => (world.getBlock(position), world.getTileEntity(position)) match { + case (block: BlockChest, chest: TileEntityChest) => Option(block.func_149951_m(world, chest.xCoord, chest.yCoord, chest.zCoord)). + map(a => BlockInventorySource(position, a)) + case (_, inventory: IInventory) => Some(BlockInventorySource(position, inventory)) + case _ => world.getEntitiesWithinAABB(classOf[EntityMinecartContainer], position.bounds). + map(_.asInstanceOf[EntityMinecartContainer]). + find(!_.isDead). + map(a => EntityInventorySource(a, a)) + } + case _ => None + } + /** * Retrieves an actual inventory implementation for a specified world coordinate. *
* This performs special handling for (double-)chests and also checks for * mine carts with chests. */ - def inventoryAt(position: BlockPosition): Option[IInventory] = position.world match { - case Some(world) if world.blockExists(position) => (world.getBlock(position), world.getTileEntity(position)) match { - case (block: BlockChest, chest: TileEntityChest) => Option(block.func_149951_m(world, chest.xCoord, chest.yCoord, chest.zCoord)) - case (_, inventory: IInventory) => Some(inventory) - case _ => world.getEntitiesWithinAABB(classOf[EntityMinecartContainer], position.bounds). - map(_.asInstanceOf[EntityMinecartContainer]). - find(!_.isDead) - } - case _ => None - } + def inventoryAt(position: BlockPosition): Option[IInventory] = inventorySourceAt(position). + map(a => a.inventory) /** * Inserts a stack into an inventory. @@ -408,3 +421,9 @@ object InventoryUtils { case _ => null } } + +sealed trait InventorySource { + def inventory: IInventory +} +final case class BlockInventorySource(position: BlockPosition, inventory: IInventory) extends InventorySource +final case class EntityInventorySource(entity: Entity, inventory: IInventory) extends InventorySource