From 36a057d21b9a8b29fceeb0f36e8966d5c1a2aef2 Mon Sep 17 00:00:00 2001 From: Controllerdestiny <523321293@qq.co> Date: Mon, 30 Sep 2024 15:20:33 +0800 Subject: [PATCH 1/7] ec getstring --- src/Economics.Deal/Command.cs | 50 +++++++++++++------------- src/Economics.RPG/Command.cs | 32 ++++++++--------- src/Economics.RPG/RPG.cs | 4 +-- src/Economics.RPG/Setting/Config.cs | 4 +-- src/Economics.Regain/Regain..cs | 24 ++++++------- src/Economics.Shop/Command.cs | 30 ++++++++-------- src/Economics.Skill/Command.cs | 52 +++++++++++++-------------- src/Economics.Skill/Skill.cs | 2 +- src/Economics.Skill/Utils.cs | 18 +++++----- src/Economics.Task/Command.cs | 56 ++++++++++++++--------------- src/Economics.Task/Plugin.cs | 8 ++--- src/Economics.Task/Utils.cs | 12 +++---- src/EconomicsAPI/Command.cs | 36 +++++++++---------- src/EconomicsAPI/Economics.cs | 16 ++++----- 14 files changed, 172 insertions(+), 172 deletions(-) diff --git a/src/Economics.Deal/Command.cs b/src/Economics.Deal/Command.cs index 23ce41524..6938dc3d8 100644 --- a/src/Economics.Deal/Command.cs +++ b/src/Economics.Deal/Command.cs @@ -25,9 +25,9 @@ void Show(List line) new PaginationTools.Settings { MaxLinesPerPage = Deal.Config.PageMax, - NothingToDisplayString = "当前没有交易物品", - HeaderFormat = "交易列表 ({0}/{1}):", - FooterFormat = "输入 {0}deal list {{0}} 查看更多".SFormat(Commands.Specifier) + NothingToDisplayString = GetString("当前没有交易物品"), + HeaderFormat = GetString("交易列表 ({0}/{1}):"), + FooterFormat = GetString("输入 {0}deal list {{0}} 查看更多").SFormat(Commands.Specifier) } ); } @@ -35,17 +35,17 @@ void Show(List line) { if (args.Player.SelectedItem.stack == 0) { - args.Player.SendErrorMessage("你手持物品为空!"); + args.Player.SendErrorMessage(GetString("你手持物品为空!")); return; } if (!long.TryParse(args.Parameters[1], out var cost) || cost < 0) { - args.Player.SendErrorMessage("请输入一个正确的价格!"); + args.Player.SendErrorMessage(GetString("请输入一个正确的价格!")); return; } Deal.Config.PushItem(args.Player, cost); - args.Player.SendSuccessMessage("发布成功"); - TShock.Utils.Broadcast($"玩家`{args.Player.Name}`发布了一个交易物品: [i/s{args.Player.SelectedItem.stack}:{args.Player.SelectedItem.netID}] 价格: {cost}", Color.DarkGreen); + args.Player.SendSuccessMessage(GetString("发布成功")); + TShock.Utils.Broadcast(GetString($"玩家`{args.Player.Name}`发布了一个交易物品: [i/s{args.Player.SelectedItem.stack}:{args.Player.SelectedItem.netID}] 价格: {cost}"), Color.DarkGreen); args.Player.SelectedItem.stack = 0; args.Player.SendData(PacketTypes.PlayerSlot, "", args.Player.Index, args.Player.TPlayer.selectedItem); } @@ -55,7 +55,7 @@ void Show(List line) var index = 1; foreach (var DealContext in Deal.Config.DealContexts) { - lines.Add(string.Format("{0}:{1} 发布者:{2} 价格{3}" + lines.Add(string.Format(GetString("{0}:{1} 发布者:{2} 价格{3}") , index.Color(TShockAPI.Utils.RedHighlight) , DealContext.Item.ToString() , DealContext.Publisher.Color(TShockAPI.Utils.PinkHighlight) @@ -69,70 +69,70 @@ void Show(List line) { if (!int.TryParse(args.Parameters[1], out var index) || index <= 0) { - args.Player.SendErrorMessage("请输入一个正确的ID"); + args.Player.SendErrorMessage(GetString("请输入一个正确的ID")); return; } var context = Deal.Config.GetDealContext(index); if (context == null) { - args.Player.SendErrorMessage("不存在此交易!"); + args.Player.SendErrorMessage(GetString("不存在此交易!")); return; } if (!EconomicsAPI.Economics.CurrencyManager.DelUserCurrency(args.Player.Name, context.Cost)) { - args.Player.SendErrorMessage($"你的{EconomicsAPI.Economics.Setting.CurrencyName}不足,无法购买!"); + args.Player.SendErrorMessage(GetString($"你的{EconomicsAPI.Economics.Setting.CurrencyName}不足,无法购买!")); return; } EconomicsAPI.Economics.CurrencyManager.AddUserCurrency(context.Publisher, context.Cost); args.Player.GiveItem(context.Item.netID, context.Item.Stack, context.Item.Prefix); - args.Player.SendSuccessMessage("交易成功!"); - TShock.Utils.Broadcast(string.Format("玩家{0}购买了{1}发布的物品{2}!", args.Player.Name, context.Publisher, context.Item.ToString()), Color.OrangeRed); + args.Player.SendSuccessMessage(GetString("交易成功!")); + TShock.Utils.Broadcast(string.Format(GetString("玩家{0}购买了{1}发布的物品{2}!"), args.Player.Name, context.Publisher, context.Item.ToString()), Color.OrangeRed); Deal.Config.RemoveItem(index - 1); } else if (args.Parameters.Count == 2 && args.Parameters[0].ToLower() == "recall") { if (!int.TryParse(args.Parameters[1], out var index) || index <= 0) { - args.Player.SendErrorMessage("请输入一个正确的ID"); + args.Player.SendErrorMessage(GetString("请输入一个正确的ID")); return; } var context = Deal.Config.GetDealContext(index); if (context == null) { - args.Player.SendErrorMessage("不存在此交易!"); + args.Player.SendErrorMessage(GetString("不存在此交易!")); return; } if (context.Publisher != args.Player.Name) { - args.Player.SendErrorMessage("该交易不是你发布的无法撤回!"); + args.Player.SendErrorMessage(GetString("该交易不是你发布的无法撤回!")); return; } - args.Player.SendSuccessMessage("撤回成功!"); - TShock.Utils.Broadcast(string.Format("玩家{0}撤回了发布的物品{1}!", args.Player.Name, context.Item.ToString()), Color.OrangeRed); + args.Player.SendSuccessMessage(GetString("撤回成功!")); + TShock.Utils.Broadcast(string.Format(GetString("玩家{0}撤回了发布的物品{1}!"), args.Player.Name, context.Item.ToString()), Color.OrangeRed); args.Player.GiveItem(context.Item.netID, context.Item.Stack, context.Item.Prefix); Deal.Config.RemoveItem(index - 1); } else if (args.Parameters.Count == 1 && args.Parameters[0].ToLower() == "help") { - args.Player.SendInfoMessage("/deal push [价格]"); - args.Player.SendInfoMessage("/deal buy [ID]"); - args.Player.SendInfoMessage("/deal recall [ID]"); - args.Player.SendInfoMessage("/deal list"); + args.Player.SendInfoMessage(GetString("/deal push [价格]")); + args.Player.SendInfoMessage(GetString("/deal buy [ID]")); + args.Player.SendInfoMessage(GetString("/deal recall [ID]")); + args.Player.SendInfoMessage(GetString("/deal list")); } else if (args.Parameters.Count == 1 && args.Parameters[0].ToLower() == "reset") { if (!args.Player.HasPermission("economics.deal.reset")) { - args.Player.SendErrorMessage("你无权使用此命令!"); + args.Player.SendErrorMessage(GetString("你无权使用此命令!")); return; } Deal.Config.DealContexts.Clear(); ConfigHelper.Write(Deal.PATH, Deal.Config); - args.Player.SendInfoMessage("交易已重置!"); + args.Player.SendInfoMessage(GetString("交易已重置!")); } else { - args.Player.SendInfoMessage("输入/deal help 查看命令使用方法"); + args.Player.SendInfoMessage(GetString("输入/deal help 查看命令使用方法")); } } } \ No newline at end of file diff --git a/src/Economics.RPG/Command.cs b/src/Economics.RPG/Command.cs index f7d36bf83..cb4710b61 100644 --- a/src/Economics.RPG/Command.cs +++ b/src/Economics.RPG/Command.cs @@ -14,7 +14,7 @@ public void Rank(CommandArgs args) { if (!args.Player.IsLoggedIn) { - args.Player.SendErrorMessage("你必须登陆才能使用此命令!"); + args.Player.SendErrorMessage(GetString("你必须登陆才能使用此命令!")); return; } var level = RPG.PlayerLevelManager.GetLevel(args.Player.Name); @@ -25,17 +25,17 @@ public void Rank(CommandArgs args) var ranklevel = level.RankLevels.Find(x => x.Name == args.Parameters[0]); if (ranklevel == null) { - args.Player.SendErrorMessage($"等级 {args.Parameters[0]} 不存在! "); + args.Player.SendErrorMessage(GetString($"等级 {args.Parameters[0]} 不存在! ")); return; } if (!args.Player.InProgress(ranklevel.Limit)) { - args.Player.SendErrorMessage($"必须满足进度限制:{string.Join(",", ranklevel.Limit)}"); + args.Player.SendErrorMessage(GetString($"必须满足进度限制:{string.Join(",", ranklevel.Limit)}")); return; } if (EconomicsAPI.Economics.CurrencyManager.DelUserCurrency(args.Player.Name, ranklevel.Cost)) { - args.Player.SendSuccessMessage($"成功升级至 {ranklevel.Name}!"); + args.Player.SendSuccessMessage(GetString($"成功升级至 {ranklevel.Name}!")); TShock.Utils.Broadcast(string.Format(ranklevel.RankBroadcast, args.Player.Name, ranklevel.Name), Color.Green); RPG.PlayerLevelManager.Update(args.Player.Name, ranklevel); args.Player.ExecCommand(ranklevel.RankCommands); @@ -43,15 +43,15 @@ public void Rank(CommandArgs args) } else { - args.Player.SendErrorMessage($"升级所需 {ranklevel.Cost},你当前{EconomicsAPI.Economics.Setting.CurrencyName}仅有{EconomicsAPI.Economics.CurrencyManager.GetUserCurrency(args.Player.Name)}!"); + args.Player.SendErrorMessage(GetString($"升级所需 {ranklevel.Cost},你当前{EconomicsAPI.Economics.Setting.CurrencyName}仅有{EconomicsAPI.Economics.CurrencyManager.GetUserCurrency(args.Player.Name)}!")); } } else { - args.Player.SendInfoMessage("请选择一个升级:"); + args.Player.SendInfoMessage(GetString("请选择一个升级:")); foreach (var info in level.RankLevels) { - args.Player.SendInfoMessage($"/rank {info.Name}({info.Cost})"); + args.Player.SendInfoMessage(GetString($"/rank {info.Name}({info.Cost})")); } } } @@ -60,12 +60,12 @@ public void Rank(CommandArgs args) var ranklevel = level.RankLevels[0]; if (!args.Player.InProgress(ranklevel.Limit)) { - args.Player.SendErrorMessage($"必须满足进度限制:{string.Join(",", ranklevel.Limit)}"); + args.Player.SendErrorMessage(GetString($"必须满足进度限制:{string.Join(",", ranklevel.Limit)}")); return; } if (EconomicsAPI.Economics.CurrencyManager.DelUserCurrency(args.Player.Name, ranklevel.Cost)) { - args.Player.SendSuccessMessage($"成功升级至 {ranklevel.Name}!"); + args.Player.SendSuccessMessage(GetString($"成功升级至 {ranklevel.Name}!")); TShock.Utils.Broadcast(string.Format(ranklevel.RankBroadcast, args.Player.Name, ranklevel.Name), Color.Green); RPG.PlayerLevelManager.Update(args.Player.Name, ranklevel); args.Player.ExecCommand(ranklevel.RankCommands); @@ -73,12 +73,12 @@ public void Rank(CommandArgs args) } else { - args.Player.SendErrorMessage($"升级所需 {ranklevel.Cost},你当前{EconomicsAPI.Economics.Setting.CurrencyName}仅有{EconomicsAPI.Economics.CurrencyManager.GetUserCurrency(args.Player.Name)}!"); + args.Player.SendErrorMessage(GetString($"升级所需 {ranklevel.Cost},你当前{EconomicsAPI.Economics.Setting.CurrencyName}仅有{EconomicsAPI.Economics.CurrencyManager.GetUserCurrency(args.Player.Name)}!")); } } else { - args.Player.SendErrorMessage("已经满级了,无法继续升级!"); + args.Player.SendErrorMessage(GetString("已经满级了,无法继续升级!")); } } @@ -87,11 +87,11 @@ public void ResetLevel(CommandArgs args) { if (!args.Player.IsLoggedIn) { - args.Player.SendErrorMessage("你必须登陆才能使用此命令!"); + args.Player.SendErrorMessage(GetString("你必须登陆才能使用此命令!")); return; } RPG.PlayerLevelManager.ResetPlayerLevel(args.Player.Name); - args.Player.SendSuccessMessage("您已成功重置等级!"); + args.Player.SendSuccessMessage(GetString("您已成功重置等级!")); foreach (var cmd in RPG.Config.ResetCommand) { args.Player.ExecCommand(cmd); @@ -99,7 +99,7 @@ public void ResetLevel(CommandArgs args) TShock.Utils.Broadcast(string.Format(RPG.Config.ResetBroadcast, args.Player.Name), Color.Green); if (RPG.Config.ResetKick) { - args.Player.Disconnect("你因重置等级被踢出!"); + args.Player.Disconnect(GetString("你因重置等级被踢出!")); } } @@ -109,11 +109,11 @@ public void Level(CommandArgs args) if (args.Parameters.Count == 1 && args.Parameters[0].ToLower() == "reset") { RPG.PlayerLevelManager.RemoveAll(); - args.Player.SendSuccessMessage("玩家等级信息重置成功!"); + args.Player.SendSuccessMessage(GetString("玩家等级信息重置成功!")); } else { - args.Player.SendErrorMessage("语法错误,正确语法:"); + args.Player.SendErrorMessage(GetString("语法错误,正确语法:")); args.Player.SendErrorMessage("/level reset"); } } diff --git a/src/Economics.RPG/RPG.cs b/src/Economics.RPG/RPG.cs index ebe67ec11..b76b0cf2b 100644 --- a/src/Economics.RPG/RPG.cs +++ b/src/Economics.RPG/RPG.cs @@ -83,8 +83,8 @@ public static bool InLevel(string Name, IEnumerable list) private void OnCounterTop(PlayerCountertopArgs args) { var level = PlayerLevelManager.GetLevel(args.Player.Name); - args.Messages.Add(new($"当前职业: {level.Name}", 10)); - args.Messages.Add(new($"升级职业: {string.Join(",", level.RankLevels.Select(x => $"{x.Name}({x.Cost})"))}", 11)); + args.Messages.Add(new(GetString($"当前职业: {level.Name}"), 10)); + args.Messages.Add(new(GetString($"升级职业: {string.Join(",", level.RankLevels.Select(x => $"{x.Name}({x.Cost})"))}"), 11)); } private void PlayerHooks_PlayerChat(PlayerChatEventArgs e) diff --git a/src/Economics.RPG/Setting/Config.cs b/src/Economics.RPG/Setting/Config.cs index 556df4f57..124731dc0 100644 --- a/src/Economics.RPG/Setting/Config.cs +++ b/src/Economics.RPG/Setting/Config.cs @@ -32,7 +32,7 @@ public void Init() { if (level.Parent.Name != this.DefaultLevel.Name) { - TShock.Log.ConsoleError($"等级 {name} 空引用等级 {level.Parent.Name}"); + TShock.Log.ConsoleError(GetString($"等级 {name} 空引用等级 {level.Parent.Name}")); level.Parent = null; } else @@ -101,7 +101,7 @@ public HashSet GetLevelAllParent(string name) } if (level.Parent?.Name == name) { - TShock.Log.ConsoleError($"{level.Name} 与 {name} 之间循环引用"); + TShock.Log.ConsoleError(GetString($"{level.Name} 与 {name} 之间循环引用")); break; } parents.Add(level); diff --git a/src/Economics.Regain/Regain..cs b/src/Economics.Regain/Regain..cs index 82547749b..96019cd48 100644 --- a/src/Economics.Regain/Regain..cs +++ b/src/Economics.Regain/Regain..cs @@ -65,9 +65,9 @@ void Show(List line) new PaginationTools.Settings { MaxLinesPerPage = Config.PageMax, - NothingToDisplayString = "当前可回收物品", - HeaderFormat = "回收物品列表 ({0}/{1}):", - FooterFormat = "输入 {0}regain list {{0}} 查看更多".SFormat(Commands.Specifier) + NothingToDisplayString = GetString("当前可回收物品"), + HeaderFormat = GetString("回收物品列表 ({0}/{1}):"), + FooterFormat = GetString("输入 {0}regain list {{0}} 查看更多").SFormat(Commands.Specifier) } ); } @@ -75,19 +75,19 @@ bool Verify(out Config.RegainInfo? regain) { if (!Config.TryGetRegain(args.Player.SelectedItem.netID, out regain) || regain == null) { - args.Player.SendErrorMessage("该物品暂时无法回收!"); + args.Player.SendErrorMessage(GetString("该物品暂时无法回收!")); return false; } if (args.Player.SelectedItem.stack == 0 || args.Player.SelectedItem.netID == 0) { - args.Player.SendErrorMessage("请手持一个有效物品!"); + args.Player.SendErrorMessage(GetString("请手持一个有效物品!")); return false; } return true; } if (!args.Player.RealPlayer || !args.Player.IsLoggedIn) { - args.Player.SendErrorMessage("你必须登录游戏使用此命令!"); + args.Player.SendErrorMessage(GetString("你必须登录游戏使用此命令!")); return; } @@ -118,7 +118,7 @@ bool Verify(out Config.RegainInfo? regain) } if (!int.TryParse(args.Parameters[0], out var count) && count > 0) { - args.Player.SendErrorMessage($"值{args.Parameters[0]}无效!"); + args.Player.SendErrorMessage(GetString($"值{args.Parameters[0]}无效!")); return; } if (!Verify(out var regain) || regain == null) @@ -130,14 +130,14 @@ bool Verify(out Config.RegainInfo? regain) EconomicsAPI.Economics.CurrencyManager.AddUserCurrency(args.Player.Name, count * regain.Cost); args.Player.SelectedItem.stack -= count; args.Player.SendData(PacketTypes.PlayerSlot, "", args.Player.Index, args.Player.TPlayer.selectedItem); - args.Player.SendSuccessMessage($"成功兑换{count * regain.Cost}个{EconomicsAPI.Economics.Setting.CurrencyName}!"); + args.Player.SendSuccessMessage(GetString($"成功兑换{count * regain.Cost}个{EconomicsAPI.Economics.Setting.CurrencyName}!")); break; } default: - args.Player.SendInfoMessage("/regain语法"); - args.Player.SendInfoMessage("/regain"); - args.Player.SendInfoMessage("/regain [数量]"); - args.Player.SendInfoMessage("/regain list"); + args.Player.SendInfoMessage(GetString("/regain语法")); + args.Player.SendInfoMessage(GetString("/regain")); + args.Player.SendInfoMessage(GetString("/regain [数量]")); + args.Player.SendInfoMessage(GetString("/regain list")); break; } diff --git a/src/Economics.Shop/Command.cs b/src/Economics.Shop/Command.cs index 2b17f48ab..74fc0b90d 100644 --- a/src/Economics.Shop/Command.cs +++ b/src/Economics.Shop/Command.cs @@ -25,9 +25,9 @@ void Show(List line) new PaginationTools.Settings { MaxLinesPerPage = Shop.Config.PageMax, - NothingToDisplayString = "当前商店没有商品", - HeaderFormat = "商品列表 ({0}/{1}):", - FooterFormat = "输入 {0}shop list {{0}} 查看更多".SFormat(Commands.Specifier) + NothingToDisplayString = GetString("当前商店没有商品"), + HeaderFormat = GetString("商品列表 ({0}/{1}):"), + FooterFormat = GetString("输入 {0}shop list {{0}} 查看更多").SFormat(Commands.Specifier) } ); } @@ -37,7 +37,7 @@ void Show(List line) var index = 1; foreach (var product in Shop.Config.Products) { - lines.Add($"{index}:[{product.Name}] {string.Join(" ", product.Items.Select(x => x.ToString()))} 价格:{product.Cost}"); + lines.Add(GetString($"{index}:[{product.Name}] {string.Join(" ", product.Items.Select(x => x.ToString()))} 价格:{product.Cost}")); index++; } Show(lines); @@ -46,39 +46,39 @@ void Show(List line) { if (!int.TryParse(args.Parameters[1], out var index)) { - args.Player.SendErrorMessage("请输入正确的序号!"); + args.Player.SendErrorMessage(GetString("请输入正确的序号!")); return; } var count = 1; if (args.Parameters.Count > 2 && !int.TryParse(args.Parameters[2], out count) && count <= 0) { - args.Player.SendErrorMessage("你输入的购买数量不正确!"); + args.Player.SendErrorMessage(GetString("你输入的购买数量不正确!")); return; } var product = Shop.Config.GetProduct(index); if (product == null) { - args.Player.SendErrorMessage("此商品不存在,请检查序号后重新输入!"); + args.Player.SendErrorMessage(GetString("此商品不存在,请检查序号后重新输入!")); return; } if (!args.Player.InProgress(product.ProgressLimit)) { - args.Player.SendErrorMessage($"购买此商品需满足进度条件: {string.Join(",", product.ProgressLimit)}"); + args.Player.SendErrorMessage(GetString($"购买此商品需满足进度条件: {string.Join(",", product.ProgressLimit)}")); return; } if (!args.Player.InLevel(product.LevelLimit)) { - args.Player.SendErrorMessage($"购买此商品需达到以下等级之一: {string.Join(",", product.LevelLimit)}"); + args.Player.SendErrorMessage(GetString($"购买此商品需达到以下等级之一: {string.Join(",", product.LevelLimit)}")); return; } if (!Shop.HasItem(args.Player, product.ItemTerm)) { - args.Player.SendErrorMessage($"请满足物品条件: {string.Join(",", product.ItemTerm.Select(x => x.ToString()))}"); + args.Player.SendErrorMessage(GetString($"请满足物品条件: {string.Join(",", product.ItemTerm.Select(x => x.ToString()))}")); return; } if (!EconomicsAPI.Economics.CurrencyManager.DelUserCurrency(args.Player.Name, product.Cost * count)) { - args.Player.SendErrorMessage($"你的{EconomicsAPI.Economics.Setting.CurrencyName}不足!"); + args.Player.SendErrorMessage(GetString($"你的{EconomicsAPI.Economics.Setting.CurrencyName}不足!")); return; } for (var i = 0; i < count; i++) @@ -87,16 +87,16 @@ void Show(List line) } args.Player.ExecCommand(product.Commamds); - args.Player.SendSuccessMessage("购买成功!"); + args.Player.SendSuccessMessage(GetString("购买成功!")); } else if (args.Parameters.Count == 1 && args.Parameters[0].ToLower() == "help") { - args.Player.SendInfoMessage("/shop buy [序号] [数量]"); - args.Player.SendInfoMessage("/shop list [序号]"); + args.Player.SendInfoMessage(GetString("/shop buy [序号] [数量]")); + args.Player.SendInfoMessage(GetString("/shop list [序号]")); } else { - args.Player.SendInfoMessage("输入/shop help 查看指令帮助"); + args.Player.SendInfoMessage(GetString("输入/shop help 查看指令帮助")); } } } \ No newline at end of file diff --git a/src/Economics.Skill/Command.cs b/src/Economics.Skill/Command.cs index eb42e4bdb..1cbffb7ff 100644 --- a/src/Economics.Skill/Command.cs +++ b/src/Economics.Skill/Command.cs @@ -23,15 +23,15 @@ void Show(List line) new PaginationTools.Settings { MaxLinesPerPage = Skill.Config.PageMax, - NothingToDisplayString = "当前技能列表空空如也", - HeaderFormat = "技能列表 ({0}/{1}):", - FooterFormat = "输入 {0}skill list {{0}} 查看更多".SFormat(Commands.Specifier) + NothingToDisplayString = GetString("当前技能列表空空如也"), + HeaderFormat = GetString("技能列表 ({0}/{1}):"), + FooterFormat = GetString("输入 {0}skill list {{0}} 查看更多").SFormat(Commands.Specifier) } ); } if (!args.Player.IsLoggedIn && args.Parameters.Count == 1 && args.Parameters[0].ToLower() != "reset") { - args.Player.SendErrorMessage("你必须登陆游戏才能购买技能!"); + args.Player.SendErrorMessage(GetString("你必须登陆游戏才能购买技能!")); return; } @@ -40,7 +40,7 @@ void Show(List line) var line = new List(); for (var i = 0; i < Skill.Config.SkillContexts.Count; i++) { - line.Add($"{i + 1}. {Skill.Config.SkillContexts[i].Name} 价格 {Skill.Config.SkillContexts[i].Cost}"); + line.Add(GetString($"{i + 1}. {Skill.Config.SkillContexts[i].Name} 价格 {Skill.Config.SkillContexts[i].Cost}")); } Show(line); @@ -51,7 +51,7 @@ void Show(List line) { if (!int.TryParse(args.Parameters[1], out var index)) { - args.Player.SendErrorMessage("请输入一个正确的序号!"); + args.Player.SendErrorMessage(GetString("请输入一个正确的序号!")); return; } if (args.Parameters[0].ToLower() == "buy") @@ -61,11 +61,11 @@ void Show(List line) var skill = Utils.VerifyBindSkill(args.Player, index); if (!EconomicsAPI.Economics.CurrencyManager.DelUserCurrency(args.Player.Name, skill.Cost)) { - args.Player.SendErrorMessage($"你的{EconomicsAPI.Economics.Setting.CurrencyName} 不足购买此技能!"); + args.Player.SendErrorMessage(GetString($"你的{EconomicsAPI.Economics.Setting.CurrencyName} 不足购买此技能!")); return; } Skill.PlayerSKillManager.Add(args.Player.Name, args.Player.SelectedItem.netID, index); - args.Player.SendSuccessMessage("购买成功,技能已绑定!"); + args.Player.SendSuccessMessage(GetString("购买成功,技能已绑定!")); return; } catch (Exception ex) @@ -79,11 +79,11 @@ void Show(List line) if (!Skill.PlayerSKillManager.HasSkill(args.Player.Name, args.Player.SelectedItem.netID, index) && !Skill.PlayerSKillManager.HasSkill(args.Player.Name, index)) { - args.Player.SendErrorMessage("你未绑定此技能,无需删除!"); + args.Player.SendErrorMessage(GetString("你未绑定此技能,无需删除!")); return; } Skill.PlayerSKillManager.Remove(args.Player.Name, index); - args.Player.SendSuccessMessage("技能移除成功!"); + args.Player.SendSuccessMessage(GetString("技能移除成功!")); return; } break; @@ -95,19 +95,19 @@ void Show(List line) var skills = Skill.PlayerSKillManager.QuerySkill(args.Player.Name); if (!skills.Any()) { - args.Player.SendErrorMessage("你并未绑定技能!"); + args.Player.SendErrorMessage(GetString("你并未绑定技能!")); return; } - args.Player.SendSuccessMessage("查询成功!"); + args.Player.SendSuccessMessage(GetString("查询成功!")); foreach (var skill in skills) { if (skill.Skill != null) { - args.Player.SendSuccessMessage(skill.Skill.SkillSpark.SparkMethod.Contains(Enumerates.SkillSparkType.Take) ? $"[{skill.ID}] 主动技能 [i:{skill.BindItem}] 绑定 {skill.Skill.Name}" : $"[{skill.ID}] 被动技能 {skill.Skill.Name}"); + args.Player.SendSuccessMessage(GetString(skill.Skill.SkillSpark.SparkMethod.Contains(Enumerates.SkillSparkType.Take) ? $"[{skill.ID}] 主动技能 [i:{skill.BindItem}] 绑定 {skill.Skill.Name}" : $"[{skill.ID}] 被动技能 {skill.Skill.Name}")); } else { - args.Player.SendErrorMessage($"无法溯源的技能序号: {skill.ID}"); + args.Player.SendErrorMessage(GetString($"无法溯源的技能序号: {skill.ID}")); } } @@ -119,14 +119,14 @@ void Show(List line) var skills = Skill.PlayerSKillManager.QuerySkillByItem(args.Player.Name, args.Player.SelectedItem.netID); if (!skills.Any()) { - args.Player.SendErrorMessage("手持物品并未绑定技能!"); + args.Player.SendErrorMessage(GetString("手持物品并未绑定技能!")); return; } foreach (var skill in skills) { Skill.PlayerSKillManager.Remove(args.Player.Name, skill.ID); } - args.Player.SendSuccessMessage("成功移除了手持武器的所有技能!"); + args.Player.SendSuccessMessage(GetString("成功移除了手持武器的所有技能!")); return; } else if (args.Parameters[0].ToLower() == "clear") @@ -134,36 +134,36 @@ void Show(List line) var skills = Skill.PlayerSKillManager.QuerySkill(args.Player.Name); if (!skills.Any()) { - args.Player.SendErrorMessage("你并未绑定技能!"); + args.Player.SendErrorMessage(GetString("你并未绑定技能!")); return; } foreach (var skill in skills) { Skill.PlayerSKillManager.Remove(args.Player.Name, skill.ID); } - args.Player.SendSuccessMessage("成功移除了绑定的所有技能!"); + args.Player.SendSuccessMessage(GetString("成功移除了绑定的所有技能!")); return; } else if (args.Parameters[0].ToLower() == "reset") { if (!args.Player.HasPermission(Permission.SkillAdmin)) { - args.Player.SendErrorMessage("你没有权限执行此命令!"); + args.Player.SendErrorMessage(GetString("你没有权限执行此命令!")); return; } Skill.PlayerSKillManager.ClearTable(); - args.Player.SendSuccessMessage("技能重置成功!"); + args.Player.SendSuccessMessage(GetString("技能重置成功!")); return; } break; } default: - args.Player.SendInfoMessage("/skill buy [技能ID]"); - args.Player.SendInfoMessage("/skill del [技能ID]"); - args.Player.SendInfoMessage("/skill list [页码]"); - args.Player.SendInfoMessage("/skill delall"); - args.Player.SendInfoMessage("/skill clear"); - args.Player.SendInfoMessage("/skill reset"); + args.Player.SendInfoMessage(GetString("/skill buy [技能ID]")); + args.Player.SendInfoMessage(GetString("/skill del [技能ID]")); + args.Player.SendInfoMessage(GetString("/skill list [页码]")); + args.Player.SendInfoMessage(GetString("/skill delall")); + args.Player.SendInfoMessage(GetString("/skill clear")); + args.Player.SendInfoMessage(GetString("/skill reset")); break; } } diff --git a/src/Economics.Skill/Skill.cs b/src/Economics.Skill/Skill.cs index bb562ccf8..90a8d4986 100644 --- a/src/Economics.Skill/Skill.cs +++ b/src/Economics.Skill/Skill.cs @@ -137,7 +137,7 @@ private void OnPlayerCountertop(PlayerCountertopArgs args) { var skill = PlayerSKillManager.QuerySkill(args.Player.Name); var msg = skill.Any() ? string.Join(",", skill.Select(x => x.Skill == null ? "无效技能" : x.Skill.Name)) : "无"; - args.Messages.Add(new($"绑定技能: {msg}", 12)); + args.Messages.Add(new(GetString($"绑定技能: {msg}"), 12)); } private void OnUpdate(EventArgs args) diff --git a/src/Economics.Skill/Utils.cs b/src/Economics.Skill/Utils.cs index 87a2e52ec..74a943647 100644 --- a/src/Economics.Skill/Utils.cs +++ b/src/Economics.Skill/Utils.cs @@ -14,42 +14,42 @@ public class Utils { public static SkillContext VerifyBindSkill(TSPlayer Player, int index) { - var context = Skill.Config.GetSkill(index) ?? throw new NullReferenceException($"技能序号{index} 不存在!"); + var context = Skill.Config.GetSkill(index) ?? throw new NullReferenceException(GetString($"技能序号{index} 不存在!")); if (context.SkillSpark.SparkMethod.Contains(SkillSparkType.Take) && (Player.SelectedItem.netID == 0 || Player.SelectedItem.stack == 0)) { - throw new Exception("这是一个主动技能,请手持一个有效武器!"); + throw new Exception(GetString("这是一个主动技能,请手持一个有效武器!")); } if (!RPG.RPG.InLevel(Player.Name, context.LimitLevel)) { - throw new Exception($"你当前等级无法购买此技能,限制等级:{string.Join(", ", context.LimitLevel)}"); + throw new Exception(GetString($"你当前等级无法购买此技能,限制等级:{string.Join(", ", context.LimitLevel)}")); } if (!Player.InProgress(context.LimitProgress)) { - throw new Exception($"当前进度无法购买此技能,限制进度:{string.Join(", ", context.LimitProgress)}"); + throw new Exception(GetString($"当前进度无法购买此技能,限制进度:{string.Join(", ", context.LimitProgress)}")); } var bind = Skill.PlayerSKillManager.QuerySkillByItem(Player.Name, Player.SelectedItem.netID); if (context.SkillUnique && Skill.PlayerSKillManager.HasSkill(Player.Name, index)) { - throw new Exception("此技能是唯一的不能重复绑定!"); + throw new Exception(GetString("此技能是唯一的不能重复绑定!")); } if (context.SkillUniqueAll && Skill.PlayerSKillManager.HasSkill(index)) { - throw new Exception("此技能全服唯一已经有其他人绑定了此技能!"); + throw new Exception(GetString("此技能全服唯一已经有其他人绑定了此技能!")); } if (bind.Count >= Skill.Config.SkillMaxCount) { - throw new Exception("技能已超过规定的最大绑定数量!"); + throw new Exception(GetString("技能已超过规定的最大绑定数量!")); } return bind.Where(x => x.Skill != null && x.Skill.SkillSpark.SparkMethod.Contains(SkillSparkType.Take)).Count() >= Skill.Config.WeapoeBindMaxCount - ? throw new Exception("此武器已超过规定的最大绑定数量!") + ? throw new Exception(GetString("此武器已超过规定的最大绑定数量!")) : bind.Where(x => x.Skill != null && x.Skill.SkillSpark.SparkMethod.Contains(SkillSparkType.Take)).Count() >= Skill.Config.PSkillMaxCount - ? throw new Exception("被动类型技能已超过最大绑定数量!") + ? throw new Exception(GetString("被动类型技能已超过最大绑定数量!")) : context; } diff --git a/src/Economics.Task/Command.cs b/src/Economics.Task/Command.cs index 13fa53953..b2fb3a20d 100644 --- a/src/Economics.Task/Command.cs +++ b/src/Economics.Task/Command.cs @@ -24,9 +24,9 @@ void ShowTask(List line) new PaginationTools.Settings { MaxLinesPerPage = Plugin.TaskConfig.PageCount, - NothingToDisplayString = "当前没有任务", - HeaderFormat = "任务列表 ({0}/{1}):", - FooterFormat = "输入 {0}task list {{0}} 查看更多".SFormat(Commands.Specifier) + NothingToDisplayString = GetString("当前没有任务"), + HeaderFormat = GetString("任务列表 ({0}/{1}):"), + FooterFormat = GetString("输入 {0}task list {{0}} 查看更多").SFormat(Commands.Specifier) } ); } @@ -42,23 +42,23 @@ void ShowTask(List line) var task = Plugin.TaskConfig.GetTask(index); if (task == null) { - args.Player.SendErrorMessage("不存在此任务!"); + args.Player.SendErrorMessage(GetString("不存在此任务!")); } else { - args.Player.SendMessage($"{task.TaskName}介绍: {task.Description}", Microsoft.Xna.Framework.Color.Wheat); + args.Player.SendMessage(GetString($"{task.TaskName}介绍: {task.Description}"), Microsoft.Xna.Framework.Color.Wheat); } } else { - args.Player.SendErrorMessage("错误的技能序号!"); + args.Player.SendErrorMessage(GetString("错误的技能序号!")); } } else if (args.Parameters.Count == 2 && args.Parameters[0].ToLower() == "pick") { if (UserTaskData.HasTask(args.Player.Name)) { - args.Player.SendErrorMessage("您还有一个任务正在进行,不能接多个任务!"); + args.Player.SendErrorMessage(GetString("您还有一个任务正在进行,不能接多个任务!")); } else { @@ -69,39 +69,39 @@ void ShowTask(List line) { if (Plugin.TaskFinishManager.HasFinishTask(index, args.Player.Name)) { - args.Player.SendErrorMessage($"此任务你已经完成过了!"); + args.Player.SendErrorMessage(GetString($"此任务你已经完成过了!")); return; } if (!Plugin.InOfFinishTask(args.Player, task.FinishTask)) { - args.Player.SendErrorMessage($"必须完成任务 {string.Join(",", task.FinishTask)} 才能接此任务"); + args.Player.SendErrorMessage(GetString($"必须完成任务 {string.Join(",", task.FinishTask)} 才能接此任务")); return; } if (!RPG.RPG.InLevel(args.Player.Name, task.LimitLevel)) { - args.Player.SendErrorMessage($"只有在{string.Join(", ", task.LimitLevel)} 以及符等级才能接取此任务"); + args.Player.SendErrorMessage(GetString($"只有在{string.Join(", ", task.LimitLevel)} 以及符等级才能接取此任务")); return; } if (!args.Player.InProgress(task.LimitProgress)) { - args.Player.SendErrorMessage($"需要满足进度{string.Join(", ", task.LimitLevel)}才能接取此任务"); + args.Player.SendErrorMessage(GetString($"需要满足进度{string.Join(", ", task.LimitLevel)}才能接取此任务")); return; } UserTaskData.Add(args.Player.Name, index); Plugin.TaskFinishManager.Add(index, args.Player.Name, TaskStatus.Ongoing); - args.Player.SendSuccessMessage("任务接取成功!"); - args.Player.SendSuccessMessage($"任务名称:{task.TaskName}"); - args.Player.SendSuccessMessage($"任务介绍:{task.Description}"); + args.Player.SendSuccessMessage(GetString("任务接取成功!")); + args.Player.SendSuccessMessage(GetString($"任务名称:{task.TaskName}")); + args.Player.SendSuccessMessage(GetString($"任务介绍:{task.Description}")); } else { - args.Player.SendErrorMessage("任务不存在!"); + args.Player.SendErrorMessage(GetString("任务不存在!")); } } else { - args.Player.SendErrorMessage("输入了一个错误的序号!"); + args.Player.SendErrorMessage(GetString("输入了一个错误的序号!")); } } } @@ -114,7 +114,7 @@ void ShowTask(List line) } else { - args.Player.SendErrorMessage("你没有接取一个任务!"); + args.Player.SendErrorMessage(GetString("你没有接取一个任务!")); } } else if (args.Parameters.Count == 1 && args.Parameters[0].ToLower() == "del") @@ -142,36 +142,36 @@ void ShowTask(List line) } else { - args.Player.SendErrorMessage("你当前的任务还没有完成!"); + args.Player.SendErrorMessage(GetString("你当前的任务还没有完成!")); } } else { - args.Player.SendErrorMessage("你还没有接一个任务!"); + args.Player.SendErrorMessage(GetString("你还没有接一个任务!")); } } else if (args.Parameters.Count == 1 && args.Parameters[0].ToLower() == "reset") { if (!args.Player.HasPermission(Permission.TaskAdmin)) { - args.Player.SendErrorMessage("你没有使用该指令的权限!"); + args.Player.SendErrorMessage(GetString("你没有使用该指令的权限!")); return; } Plugin.TaskFinishManager.RemoveAll(); UserTaskData.Clear(); Plugin.KillNPCManager.RemoveAll(); Plugin.TallkManager.RemoveAll(); - args.Player.SendSuccessMessage("已清空完成任务!"); + args.Player.SendSuccessMessage(GetString("已清空完成任务!")); } else { - args.Player.SendInfoMessage("/task list 查看任务列表"); - args.Player.SendInfoMessage("/task info <序号> 查看任务详情"); - args.Player.SendInfoMessage("/task pick <序号> 接取一个任务"); - args.Player.SendInfoMessage("/task prog 查看任务完成进度"); - args.Player.SendInfoMessage("/task pr 提交任务"); - args.Player.SendInfoMessage("/task del 移除任务"); - args.Player.SendInfoMessage("/task reset 清空完成任务"); + args.Player.SendInfoMessage(GetString("/task list 查看任务列表")); + args.Player.SendInfoMessage(GetString("/task info <序号> 查看任务详情")); + args.Player.SendInfoMessage(GetString("/task pick <序号> 接取一个任务")); + args.Player.SendInfoMessage(GetString("/task prog 查看任务完成进度")); + args.Player.SendInfoMessage(GetString("/task pr 提交任务")); + args.Player.SendInfoMessage(GetString("/task del 移除任务")); + args.Player.SendInfoMessage(GetString("/task reset 清空完成任务")); } } } \ No newline at end of file diff --git a/src/Economics.Task/Plugin.cs b/src/Economics.Task/Plugin.cs index 028447fd9..0fbd92d47 100644 --- a/src/Economics.Task/Plugin.cs +++ b/src/Economics.Task/Plugin.cs @@ -66,22 +66,22 @@ private object Finish(RestRequestArgs args) { if (args.Parameters["name"] == null) { - return new RestObject("201") { Response = "没有检测到玩家名称" }; + return new RestObject("201") { Response = GetString("没有检测到玩家名称") }; } if (args.Parameters["taskid"] == null) { - return new RestObject("201") { Response = "没有检测到任务ID" }; + return new RestObject("201") { Response = GetString("没有检测到任务ID") }; } if (!int.TryParse(args.Parameters["taskid"], out var taskid)) { - return new RestObject("201") { Response = "非法的任务ID" }; + return new RestObject("201") { Response = GetString("非法的任务ID") }; } var task = TaskFinishManager.GetTaksByName(args.Parameters["name"]); var finish = task.Any(x => x.TaskID == taskid); - return new RestObject() { { "response", "查询成功" }, { "code", finish } }; + return new RestObject() { { "response", GetString("查询成功") }, { "code", finish } }; } private void LoadConfig(ReloadEventArgs? args = null) diff --git a/src/Economics.Task/Utils.cs b/src/Economics.Task/Utils.cs index 55f2dc558..f2794a6d2 100644 --- a/src/Economics.Task/Utils.cs +++ b/src/Economics.Task/Utils.cs @@ -77,16 +77,16 @@ public static List GetTaskProgress(TSPlayer ply) var task = GetUserTask(ply.Name); if (task != null) { - result.Add($"{task.TaskName}完成进度"); + result.Add(GetString($"{task.TaskName}完成进度")); task.TaskInfo.TallkNPC.ForEach(x => { - var talk = Plugin.TallkManager.TallkNpcByID(ply.Name, x) ? "(已完成)".Color(TShockAPI.Utils.GreenHighlight) : "(未完成)".Color(TShockAPI.Utils.RedHighlight); - result.Add($"与{TShock.Utils.GetNPCById(x).FullName}进行对话{talk}"); + var talk = Plugin.TallkManager.TallkNpcByID(ply.Name, x) ? GetString("(已完成)").Color(TShockAPI.Utils.GreenHighlight) : GetString("(未完成)").Color(TShockAPI.Utils.RedHighlight); + result.Add(GetString($"与{TShock.Utils.GetNPCById(x).FullName}进行对话{talk}")); }); task.TaskInfo.KillNPCS.ForEach(x => { - var str = $"击杀怪物 {TShock.Utils.GetNPCById(x.ID).FullName} ({Plugin.KillNPCManager.GetKillNpcsCountByID(ply.Name, x.ID)}/{x.Count})"; + var str = GetString($"击杀怪物 {TShock.Utils.GetNPCById(x.ID).FullName} ({Plugin.KillNPCManager.GetKillNpcsCountByID(ply.Name, x.ID)}/{x.Count})"); result.Add(str); }); @@ -102,7 +102,7 @@ public static List GetTaskProgress(TSPlayer ply) { items.ForEach(n => stack += n.stack); } - result.Add($"拥有{TShock.Utils.GetItemById(x.netID).Name} ({stack}/{x.Stack})"); + result.Add(GetString($"拥有{TShock.Utils.GetItemById(x.netID).Name} ({stack}/{x.Stack})")); } else { @@ -112,7 +112,7 @@ public static List GetTaskProgress(TSPlayer ply) items.ForEach(n => stack += n.stack); } - result.Add($"拥有{TShock.Utils.GetPrefixById(x.Prefix)}{TShock.Utils.GetItemById(x.netID).Name} ({stack}/{x.Stack})"); + result.Add(GetString($"拥有{TShock.Utils.GetPrefixById(x.Prefix)}{TShock.Utils.GetItemById(x.netID).Name} ({stack}/{x.Stack})")); } }); } diff --git a/src/EconomicsAPI/Command.cs b/src/EconomicsAPI/Command.cs index 0ecdeea27..322f4e7d6 100644 --- a/src/EconomicsAPI/Command.cs +++ b/src/EconomicsAPI/Command.cs @@ -23,7 +23,7 @@ public void Bank(CommandArgs args) { if (args.Parameters.Count > 0 && args.Parameters[0].ToLower() != "pay" && !args.Player.HasPermission(EconomicsPerm.CurrencyAdmin)) { - args.Player.SendErrorMessage("你没有权限执行此命令!"); + args.Player.SendErrorMessage(GetString("你没有权限执行此命令!")); return; } if (args.Parameters.Count == 3) @@ -31,7 +31,7 @@ public void Bank(CommandArgs args) var name = args.Parameters[1]; if (!long.TryParse(args.Parameters[2], out var num)) { - args.Player.SendErrorMessage("请输入一个有效数值!"); + args.Player.SendErrorMessage(GetString("请输入一个有效数值!")); return; } switch (args.Parameters[0].ToLower()) @@ -39,66 +39,66 @@ public void Bank(CommandArgs args) case "add": { Economics.CurrencyManager.AddUserCurrency(name, num); - args.Player.SendSuccessMessage($"成功为`{name}`添加 {num} 个{Economics.Setting.CurrencyName}"); + args.Player.SendSuccessMessage(GetString($"成功为`{name}`添加 {num} 个{Economics.Setting.CurrencyName}")); break; } case "del": { if (Economics.CurrencyManager.DelUserCurrency(name, num)) { - args.Player.SendSuccessMessage($"成功删除`{name}`的 {num} 个{Economics.Setting.CurrencyName}"); + args.Player.SendSuccessMessage(GetString($"成功删除`{name}`的 {num} 个{Economics.Setting.CurrencyName}")); return; } - args.Player.SendErrorMessage($"用户`{name}`仅有{Economics.CurrencyManager.GetUserCurrency(name)}个{Economics.Setting.CurrencyName}"); + args.Player.SendErrorMessage(GetString($"用户`{name}`仅有{Economics.CurrencyManager.GetUserCurrency(name)}个{Economics.Setting.CurrencyName}")); break; } case "pay": { if (!args.Player.HasPermission(EconomicsPerm.PayCurrency)) { - args.Player.SendErrorMessage("你无权执行此命令!"); + args.Player.SendErrorMessage(GetString("你无权执行此命令!")); return; } if (Economics.CurrencyManager.DelUserCurrency(args.Player.Name, num)) { Economics.CurrencyManager.AddUserCurrency(name, num); - args.Player.SendSuccessMessage($"成功转账给`{name}` {num} 个{Economics.Setting.CurrencyName}"); + args.Player.SendSuccessMessage(GetString($"成功转账给`{name}` {num} 个{Economics.Setting.CurrencyName}")); return; } else { - args.Player.SendSuccessMessage($"你的{Economics.Setting.CurrencyName}不足,无法转账!"); + args.Player.SendSuccessMessage(GetString($"你的{Economics.Setting.CurrencyName}不足,无法转账!")); return; } } default: - args.Player.SendErrorMessage("语法错误,请输入/bank help查看正确语法"); + args.Player.SendErrorMessage(GetString("语法错误,请输入/bank help查看正确语法")); break; } } else if (args.Parameters.Count == 2 && args.Parameters[0] == "clear") { Economics.CurrencyManager.ClearUserCurrency(args.Parameters[1]); - args.Player.SendSuccessMessage($"已清空`{args.Parameters[1]}`的所有{Economics.Setting.CurrencyName}"); + args.Player.SendSuccessMessage(GetString($"已清空`{args.Parameters[1]}`的所有{Economics.Setting.CurrencyName}")); } else if (args.Parameters.Count == 1 && args.Parameters[0] == "reset") { Economics.CurrencyManager.Reset(); - args.Player.SendSuccessMessage($"Economics 已重置"); + args.Player.SendSuccessMessage(GetString($"Economics 已重置")); } else if (args.Parameters.Count == 1 && args.Parameters[0] == "help") { - args.Player.SendInfoMessage("bank 指令"); - args.Player.SendInfoMessage("/bank add [用户] [数量]"); - args.Player.SendInfoMessage("/bank del [用户] [数量]"); - args.Player.SendInfoMessage("/bank pay [用户] [数量]"); - args.Player.SendInfoMessage("/bank clear [用户]"); - args.Player.SendInfoMessage("/bank reset"); + args.Player.SendInfoMessage(GetString("bank 指令")); + args.Player.SendInfoMessage(GetString("/bank add [用户] [数量]")); + args.Player.SendInfoMessage(GetString("/bank del [用户] [数量]")); + args.Player.SendInfoMessage(GetString("/bank pay [用户] [数量]")); + args.Player.SendInfoMessage(GetString("/bank clear [用户]")); + args.Player.SendInfoMessage(GetString("/bank reset")); } else { - args.Player.SendErrorMessage("语法错误,请输入/bank help查看正确语法"); + args.Player.SendErrorMessage(GetString("语法错误,请输入/bank help查看正确语法")); } } #endregion diff --git a/src/EconomicsAPI/Economics.cs b/src/EconomicsAPI/Economics.cs index 748bc20a9..62144b935 100644 --- a/src/EconomicsAPI/Economics.cs +++ b/src/EconomicsAPI/Economics.cs @@ -120,13 +120,13 @@ private void LoadConfig(ReloadEventArgs? args = null) private void PlayerHandler_OnPlayerCountertop(PlayerCountertopArgs args) { - args.Messages.Add(new($"当前延迟: {args.Ping.GetPing():F1}ms", 7)); - args.Messages.Add(new($"玩家名称: {args.Player.Name}", 1)); - args.Messages.Add(new($"{Setting.CurrencyName}数量: {CurrencyManager.GetUserCurrency(args.Player.Name)}", 3)); - args.Messages.Add(new($"在线人数: {TShock.Utils.GetActivePlayerCount()}/{Main.maxPlayers}", 4)); - args.Messages.Add(new($"世界名称: {Main.worldName}", 9)); - args.Messages.Add(new($"当前生命: {args.Player.TPlayer.statLife}/{args.Player.TPlayer.statLifeMax}", 5)); - args.Messages.Add(new($"当前魔力: {args.Player.TPlayer.statMana}/{args.Player.TPlayer.statManaMax}", 6)); + args.Messages.Add(new(GetString($"当前延迟: {args.Ping.GetPing():F1}ms"), 7)); + args.Messages.Add(new(GetString($"玩家名称: {args.Player.Name}"), 1)); + args.Messages.Add(new(GetString($"{Setting.CurrencyName}数量: {CurrencyManager.GetUserCurrency(args.Player.Name)}"), 3)); + args.Messages.Add(new(GetString($"在线人数: {TShock.Utils.GetActivePlayerCount()}/{Main.maxPlayers}"), 4)); + args.Messages.Add(new(GetString($"世界名称: {Main.worldName}"), 9)); + args.Messages.Add(new(GetString($"当前生命: {args.Player.TPlayer.statLife}/{args.Player.TPlayer.statLifeMax}"), 5)); + args.Messages.Add(new(GetString($"当前魔力: {args.Player.TPlayer.statMana}/{args.Player.TPlayer.statManaMax}"), 6)); } private void OnKillMe(object? sender, GetDataHandlers.KillMeEventArgs e) @@ -135,7 +135,7 @@ private void OnKillMe(object? sender, GetDataHandlers.KillMeEventArgs e) { var drop = CurrencyManager.GetUserCurrency(e.Player.Name) * Setting.DeathDropRate; CurrencyManager.DelUserCurrency(e.Player.Name, Convert.ToInt64(drop)); - e.Player.SendErrorMessage($"你因死亡掉落{drop:F0}个{Setting.CurrencyName}!"); + e.Player.SendErrorMessage(GetString($"你因死亡掉落{drop:F0}个{Setting.CurrencyName}!")); } } From 9dca23da52d973f87cd02e359c706d715eb979e4 Mon Sep 17 00:00:00 2001 From: Controllerdestiny <523321293@qq.co> Date: Mon, 30 Sep 2024 15:22:00 +0800 Subject: [PATCH 2/7] version --- src/EconomicsAPI/Economics.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/EconomicsAPI/Economics.cs b/src/EconomicsAPI/Economics.cs index 62144b935..be73fcd6d 100644 --- a/src/EconomicsAPI/Economics.cs +++ b/src/EconomicsAPI/Economics.cs @@ -25,7 +25,7 @@ public class Economics : TerrariaPlugin public override string Name => Assembly.GetExecutingAssembly().GetName().Name!; - public override Version Version => new(1, 0, 1, 0); + public override Version Version => new(1, 0, 1, 1); public readonly static List ServerPlayers = new(); From b21f51a19a15d53be44be3115c9763484c51c26d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=91=E5=8F=B8=E5=91=BD?= <79201070+Controllerdestiny@users.noreply.github.com> Date: Mon, 30 Sep 2024 15:23:01 +0800 Subject: [PATCH 3/7] Create dotnet-desktop.yml --- .github/workflows/dotnet-desktop.yml | 115 +++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 .github/workflows/dotnet-desktop.yml diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml new file mode 100644 index 000000000..e718dd9be --- /dev/null +++ b/.github/workflows/dotnet-desktop.yml @@ -0,0 +1,115 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# This workflow will build, test, sign and package a WPF or Windows Forms desktop application +# built on .NET Core. +# To learn how to migrate your existing application to .NET Core, +# refer to https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework +# +# To configure this workflow: +# +# 1. Configure environment variables +# GitHub sets default environment variables for every workflow run. +# Replace the variables relative to your project in the "env" section below. +# +# 2. Signing +# Generate a signing certificate in the Windows Application +# Packaging Project or add an existing signing certificate to the project. +# Next, use PowerShell to encode the .pfx file using Base64 encoding +# by running the following Powershell script to generate the output string: +# +# $pfx_cert = Get-Content '.\SigningCertificate.pfx' -Encoding Byte +# [System.Convert]::ToBase64String($pfx_cert) | Out-File 'SigningCertificate_Encoded.txt' +# +# Open the output file, SigningCertificate_Encoded.txt, and copy the +# string inside. Then, add the string to the repo as a GitHub secret +# and name it "Base64_Encoded_Pfx." +# For more information on how to configure your signing certificate for +# this workflow, refer to https://github.com/microsoft/github-actions-for-desktop-apps#signing +# +# Finally, add the signing certificate password to the repo as a secret and name it "Pfx_Key". +# See "Build the Windows Application Packaging project" below to see how the secret is used. +# +# For more information on GitHub Actions, refer to https://github.com/features/actions +# For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications, +# refer to https://github.com/microsoft/github-actions-for-desktop-apps + +name: .NET Core Desktop + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + + build: + + strategy: + matrix: + configuration: [Debug, Release] + + runs-on: windows-latest # For a list of available runner types, refer to + # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on + + env: + Solution_Name: your-solution-name # Replace with your solution name, i.e. MyWpfApp.sln. + Test_Project_Path: your-test-project-path # Replace with the path to your test project, i.e. MyWpfApp.Tests\MyWpfApp.Tests.csproj. + Wap_Project_Directory: your-wap-project-directory-name # Replace with the Wap project directory relative to the solution, i.e. MyWpfApp.Package. + Wap_Project_Path: your-wap-project-path # Replace with the path to your Wap project, i.e. MyWpf.App.Package\MyWpfApp.Package.wapproj. + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # Install the .NET Core workload + - name: Install .NET Core + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + + # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild + - name: Setup MSBuild.exe + uses: microsoft/setup-msbuild@v2 + + # Execute all unit tests in the solution + - name: Execute unit tests + run: dotnet test + + # Restore the application to populate the obj folder with RuntimeIdentifiers + - name: Restore the application + run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration + env: + Configuration: ${{ matrix.configuration }} + + # Decode the base 64 encoded pfx and save the Signing_Certificate + - name: Decode the pfx + run: | + $pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.Base64_Encoded_Pfx }}") + $certificatePath = Join-Path -Path $env:Wap_Project_Directory -ChildPath GitHubActionsWorkflow.pfx + [IO.File]::WriteAllBytes("$certificatePath", $pfx_cert_byte) + + # Create the app package by building and packaging the Windows Application Packaging project + - name: Create the app package + run: msbuild $env:Wap_Project_Path /p:Configuration=$env:Configuration /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:PackageCertificateKeyFile=GitHubActionsWorkflow.pfx /p:PackageCertificatePassword=${{ secrets.Pfx_Key }} + env: + Appx_Bundle: Always + Appx_Bundle_Platforms: x86|x64 + Appx_Package_Build_Mode: StoreUpload + Configuration: ${{ matrix.configuration }} + + # Remove the pfx + - name: Remove the pfx + run: Remove-Item -path $env:Wap_Project_Directory\GitHubActionsWorkflow.pfx + + # Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact + - name: Upload build artifacts + uses: actions/upload-artifact@v3 + with: + name: MSIX Package + path: ${{ env.Wap_Project_Directory }}\AppPackages From 714c06a41174704d580ee51804f61f2e82a02e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=91=E5=8F=B8=E5=91=BD?= <79201070+Controllerdestiny@users.noreply.github.com> Date: Mon, 30 Sep 2024 15:23:19 +0800 Subject: [PATCH 4/7] Delete .github/workflows/dotnet-desktop.yml --- .github/workflows/dotnet-desktop.yml | 115 --------------------------- 1 file changed, 115 deletions(-) delete mode 100644 .github/workflows/dotnet-desktop.yml diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml deleted file mode 100644 index e718dd9be..000000000 --- a/.github/workflows/dotnet-desktop.yml +++ /dev/null @@ -1,115 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# This workflow will build, test, sign and package a WPF or Windows Forms desktop application -# built on .NET Core. -# To learn how to migrate your existing application to .NET Core, -# refer to https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework -# -# To configure this workflow: -# -# 1. Configure environment variables -# GitHub sets default environment variables for every workflow run. -# Replace the variables relative to your project in the "env" section below. -# -# 2. Signing -# Generate a signing certificate in the Windows Application -# Packaging Project or add an existing signing certificate to the project. -# Next, use PowerShell to encode the .pfx file using Base64 encoding -# by running the following Powershell script to generate the output string: -# -# $pfx_cert = Get-Content '.\SigningCertificate.pfx' -Encoding Byte -# [System.Convert]::ToBase64String($pfx_cert) | Out-File 'SigningCertificate_Encoded.txt' -# -# Open the output file, SigningCertificate_Encoded.txt, and copy the -# string inside. Then, add the string to the repo as a GitHub secret -# and name it "Base64_Encoded_Pfx." -# For more information on how to configure your signing certificate for -# this workflow, refer to https://github.com/microsoft/github-actions-for-desktop-apps#signing -# -# Finally, add the signing certificate password to the repo as a secret and name it "Pfx_Key". -# See "Build the Windows Application Packaging project" below to see how the secret is used. -# -# For more information on GitHub Actions, refer to https://github.com/features/actions -# For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications, -# refer to https://github.com/microsoft/github-actions-for-desktop-apps - -name: .NET Core Desktop - -on: - push: - branches: [ "master" ] - pull_request: - branches: [ "master" ] - -jobs: - - build: - - strategy: - matrix: - configuration: [Debug, Release] - - runs-on: windows-latest # For a list of available runner types, refer to - # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on - - env: - Solution_Name: your-solution-name # Replace with your solution name, i.e. MyWpfApp.sln. - Test_Project_Path: your-test-project-path # Replace with the path to your test project, i.e. MyWpfApp.Tests\MyWpfApp.Tests.csproj. - Wap_Project_Directory: your-wap-project-directory-name # Replace with the Wap project directory relative to the solution, i.e. MyWpfApp.Package. - Wap_Project_Path: your-wap-project-path # Replace with the path to your Wap project, i.e. MyWpf.App.Package\MyWpfApp.Package.wapproj. - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - # Install the .NET Core workload - - name: Install .NET Core - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 8.0.x - - # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild - - name: Setup MSBuild.exe - uses: microsoft/setup-msbuild@v2 - - # Execute all unit tests in the solution - - name: Execute unit tests - run: dotnet test - - # Restore the application to populate the obj folder with RuntimeIdentifiers - - name: Restore the application - run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration - env: - Configuration: ${{ matrix.configuration }} - - # Decode the base 64 encoded pfx and save the Signing_Certificate - - name: Decode the pfx - run: | - $pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.Base64_Encoded_Pfx }}") - $certificatePath = Join-Path -Path $env:Wap_Project_Directory -ChildPath GitHubActionsWorkflow.pfx - [IO.File]::WriteAllBytes("$certificatePath", $pfx_cert_byte) - - # Create the app package by building and packaging the Windows Application Packaging project - - name: Create the app package - run: msbuild $env:Wap_Project_Path /p:Configuration=$env:Configuration /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:PackageCertificateKeyFile=GitHubActionsWorkflow.pfx /p:PackageCertificatePassword=${{ secrets.Pfx_Key }} - env: - Appx_Bundle: Always - Appx_Bundle_Platforms: x86|x64 - Appx_Package_Build_Mode: StoreUpload - Configuration: ${{ matrix.configuration }} - - # Remove the pfx - - name: Remove the pfx - run: Remove-Item -path $env:Wap_Project_Directory\GitHubActionsWorkflow.pfx - - # Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact - - name: Upload build artifacts - uses: actions/upload-artifact@v3 - with: - name: MSIX Package - path: ${{ env.Wap_Project_Directory }}\AppPackages From a392013d868e5f774c8964f70239f0d3e3fe40ab Mon Sep 17 00:00:00 2001 From: Controllerdestiny <523321293@qq.co> Date: Mon, 30 Sep 2024 16:20:44 +0800 Subject: [PATCH 5/7] versw and log --- scripts/i18n.ps1 | 5 + src/BedSet/i18n/template.pot | 16 +++ src/Economics.Deal/README.md | 2 +- src/Economics.Deal/i18n/template.pot | 108 +++++++++++++++ src/Economics.RPG/README.md | 3 + src/Economics.RPG/RPG.cs | 2 +- src/Economics.RPG/i18n/template.pot | 89 +++++++++++++ src/Economics.Regain/README.md | 2 +- src/Economics.Regain/Regain..cs | 2 +- src/Economics.Regain/i18n/template.pot | 62 +++++++++ src/Economics.Shop/Shop.cs | 2 +- src/Economics.Shop/i18n/template.pot | 77 +++++++++++ src/Economics.Skill/Skill.cs | 2 +- src/Economics.Skill/i18n/template.pot | 156 ++++++++++++++++++++++ src/Economics.Task/Plugin.cs | 2 +- src/Economics.Task/i18n/template.pot | 174 +++++++++++++++++++++++++ src/EconomicsAPI/i18n/template.pot | 126 ++++++++++++++++++ 17 files changed, 823 insertions(+), 7 deletions(-) create mode 100644 scripts/i18n.ps1 create mode 100644 src/Economics.Deal/i18n/template.pot create mode 100644 src/Economics.RPG/i18n/template.pot create mode 100644 src/Economics.Regain/i18n/template.pot create mode 100644 src/Economics.Shop/i18n/template.pot create mode 100644 src/Economics.Skill/i18n/template.pot create mode 100644 src/Economics.Task/i18n/template.pot create mode 100644 src/EconomicsAPI/i18n/template.pot diff --git a/scripts/i18n.ps1 b/scripts/i18n.ps1 new file mode 100644 index 000000000..99a20a36e --- /dev/null +++ b/scripts/i18n.ps1 @@ -0,0 +1,5 @@ + foreach ($p in @(Get-ChildItem src/**/*.csproj)) { + $pot = [System.IO.Path]::Combine($p.DirectoryName, "i18n", "template.pot") + New-Item -Path $p.DirectoryName -Name i18n -ItemType Directory -Force + dotnet tool run GetText.Extractor -u -o -s $p.FullName -t $pot +} \ No newline at end of file diff --git a/src/BedSet/i18n/template.pot b/src/BedSet/i18n/template.pot index e69de29bb..951993986 100644 --- a/src/BedSet/i18n/template.pot +++ b/src/BedSet/i18n/template.pot @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: BedSet\n" +"POT-Creation-Date: 2024-09-30 15:29:00+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:01+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Plugin.cs:42 +msgid "出生点位置设置成功!" +msgstr "" + diff --git a/src/Economics.Deal/README.md b/src/Economics.Deal/README.md index f7c30c2ff..4066ff46b 100644 --- a/src/Economics.Deal/README.md +++ b/src/Economics.Deal/README.md @@ -10,7 +10,7 @@ ## 更新日志 ``` -暂无 +1. 支持多语言 ``` ## 指令 diff --git a/src/Economics.Deal/i18n/template.pot b/src/Economics.Deal/i18n/template.pot new file mode 100644 index 000000000..162cb9fb1 --- /dev/null +++ b/src/Economics.Deal/i18n/template.pot @@ -0,0 +1,108 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.Deal\n" +"POT-Creation-Date: 2024-09-30 15:29:47+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:48+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Command.cs:58 +msgid "{0}:{1} 发布者:{2} 价格{3}" +msgstr "{0}: {1} publisher: {2} price: {3}" + +#: ..\..\Command.cs:118 +msgid "/deal buy [ID]" +msgstr "/deal buy [ID]" + +#: ..\..\Command.cs:120 +msgid "/deal list" +msgstr "/deal buy list" + +#: ..\..\Command.cs:117 +msgid "/deal push [价格]" +msgstr "/deal push [price]" + +#: ..\..\Command.cs:119 +msgid "/deal recall [ID]" +msgstr "/deal recall [ID]" + +#: ..\..\Command.cs:78 +#: ..\..\Command.cs:102 +msgid "不存在此交易!" +msgstr "This transaction does not exist!" + +#: ..\..\Command.cs:110 +msgid "撤回成功!" +msgstr "recall successfuly!" + +#: ..\..\Command.cs:28 +msgid "当前没有交易物品" +msgstr "There are no items currently for trade." + +#: ..\..\Command.cs:47 +msgid "发布成功" +msgstr "Post successful." + +#: ..\..\Command.cs:107 +msgid "该交易不是你发布的无法撤回!" +msgstr "This transaction was not initiated by you and cannot be retracted!" + +#: ..\..\Command.cs:88 +msgid "交易成功!" +msgstr "Transaction successful!" + +#: ..\..\Command.cs:29 +msgid "交易列表 ({0}/{1}):" +msgstr "Transaction List ({0}/{1}):" + +#: ..\..\Command.cs:131 +msgid "交易已重置!" +msgstr "Transaction has been reset!" + +#: ..\..\Command.cs:83 +#, csharp-format +msgid "你的{0}不足,无法购买!" +msgstr "You do not have enough {0}, unable to make the purchase!" + +#: ..\..\Command.cs:38 +msgid "你手持物品为空!" +msgstr "You have no items in hand!" + +#: ..\..\Command.cs:126 +msgid "你无权使用此命令!" +msgstr "You do not have permission to use this command!" + +#: ..\..\Command.cs:43 +msgid "请输入一个正确的价格!" +msgstr "Please enter a valid price!" + +#: ..\..\Command.cs:72 +#: ..\..\Command.cs:96 +msgid "请输入一个正确的ID" +msgstr "Please enter a valid ID." + +#: ..\..\Command.cs:30 +msgid "输入 {0}deal list {{0}} 查看更多" +msgstr "Type {0}deal list {{0}} to see more" + +#: ..\..\Command.cs:135 +msgid "输入/deal help 查看命令使用方法" +msgstr "Type /deal help to view command usage instructions." + +#: ..\..\Command.cs:111 +msgid "玩家{0}撤回了发布的物品{1}!" +msgstr "Player {0} has retracted the posted item {1}!" + +#: ..\..\Command.cs:89 +msgid "玩家{0}购买了{1}发布的物品{2}!" +msgstr "Player {0} has purchased the item {2} posted by {1}!" + +#: ..\..\Command.cs:48 +#, csharp-format +msgid "玩家`{0}`发布了一个交易物品: [i/s{1}:{2}] 价格: {3}" +msgstr "Player `{0}` has posted a trade item: [i/s{1}:{2}] Price: {3}" + diff --git a/src/Economics.RPG/README.md b/src/Economics.RPG/README.md index c2f43c889..67e8d630a 100644 --- a/src/Economics.RPG/README.md +++ b/src/Economics.RPG/README.md @@ -10,6 +10,9 @@ ## 更新日志 ``` +V1.0.0.3 +- 支持多语言 + V1.0.0.2 - 添加权限economics.rpg.chat,拥有此权限不会改变玩家聊天格式。 diff --git a/src/Economics.RPG/RPG.cs b/src/Economics.RPG/RPG.cs index b76b0cf2b..2549df700 100644 --- a/src/Economics.RPG/RPG.cs +++ b/src/Economics.RPG/RPG.cs @@ -19,7 +19,7 @@ public class RPG : TerrariaPlugin public override string Name => Assembly.GetExecutingAssembly().GetName().Name!; - public override Version Version => new(1, 0, 0, 3); + public override Version Version => new(1, 0, 0, 4); internal static Config Config { get; set; } = new Config(); diff --git a/src/Economics.RPG/i18n/template.pot b/src/Economics.RPG/i18n/template.pot new file mode 100644 index 000000000..e01a8217a --- /dev/null +++ b/src/Economics.RPG/i18n/template.pot @@ -0,0 +1,89 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.RPG\n" +"POT-Creation-Date: 2024-09-30 15:29:53+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:53+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Setting\Config.cs:104 +#, csharp-format +msgid "{0} 与 {1} 之间循环引用" +msgstr "Circular reference between {0} and {1}" + +#: ..\..\Command.cs:54 +#, csharp-format +msgid "/rank {0}({1})" +msgstr "/rank {0}({1})" + +#: ..\..\Command.cs:33 +#: ..\..\Command.cs:63 +#, csharp-format +msgid "必须满足进度限制:{0}" +msgstr "Must meet progress restriction: {0}" + +#: ..\..\Command.cs:38 +#: ..\..\Command.cs:68 +#, csharp-format +msgid "成功升级至 {0}!" +msgstr "Successfully upgraded to {0}!" + +#: ..\..\RPG.cs:86 +#, csharp-format +msgid "当前职业: {0}" +msgstr "Current profession: {0}" + +#: ..\..\Command.cs:28 +#, csharp-format +msgid "等级 {0} 不存在! " +msgstr "Level {0} does not exist!" + +#: ..\..\Setting\Config.cs:35 +#, csharp-format +msgid "等级 {0} 空引用等级 {1}" +msgstr "Level {0} is an empty reference to level {1}" + +#: ..\..\Command.cs:17 +#: ..\..\Command.cs:90 +msgid "你必须登陆才能使用此命令!" +msgstr "You must be logged in to use this command!" + +#: ..\..\Command.cs:102 +msgid "你因重置等级被踢出!" +msgstr "You have been kicked out due to a level reset!" + +#: ..\..\Command.cs:94 +msgid "您已成功重置等级!" +msgstr "You have successfully reset your level!" + +#: ..\..\Command.cs:51 +msgid "请选择一个升级:" +msgstr "Please choose an upgrade:" + +#: ..\..\Command.cs:46 +#: ..\..\Command.cs:76 +#, csharp-format +msgid "升级所需 {0},你当前{1}仅有{2}!" +msgstr "Upgrade required {0}, you currently only have {2} of {1}!" + +#: ..\..\RPG.cs:87 +#, csharp-format +msgid "升级职业: {0}" +msgstr "Upgrade profession: {0}" + +#: ..\..\Command.cs:112 +msgid "玩家等级信息重置成功!" +msgstr "Player level information has been successfully reset!" + +#: ..\..\Command.cs:81 +msgid "已经满级了,无法继续升级!" +msgstr "You have reached the maximum level and cannot upgrade any further!" + +#: ..\..\Command.cs:116 +msgid "语法错误,正确语法:" +msgstr "Grammatical errors, correct grammar:" + diff --git a/src/Economics.Regain/README.md b/src/Economics.Regain/README.md index 7f659363a..fda74ea75 100644 --- a/src/Economics.Regain/README.md +++ b/src/Economics.Regain/README.md @@ -10,7 +10,7 @@ ## 更新日志 ``` -暂无 +1.支持多语言 ``` ## 指令 diff --git a/src/Economics.Regain/Regain..cs b/src/Economics.Regain/Regain..cs index 96019cd48..86acb9dc5 100644 --- a/src/Economics.Regain/Regain..cs +++ b/src/Economics.Regain/Regain..cs @@ -16,7 +16,7 @@ public class Regain : TerrariaPlugin public override string Name => Assembly.GetExecutingAssembly().GetName().Name!; - public override Version Version => new(1, 0, 0, 1); + public override Version Version => new(1, 0, 0, 2); internal static string PATH = Path.Combine(EconomicsAPI.Economics.SaveDirPath, "Regain.json"); diff --git a/src/Economics.Regain/i18n/template.pot b/src/Economics.Regain/i18n/template.pot new file mode 100644 index 000000000..756bbf577 --- /dev/null +++ b/src/Economics.Regain/i18n/template.pot @@ -0,0 +1,62 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.Regain\n" +"POT-Creation-Date: 2024-09-30 15:29:51+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:52+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Regain..cs:138 +msgid "/regain" +msgstr "/regain" + +#: ..\..\Regain..cs:139 +msgid "/regain [数量]" +msgstr "/regain [num]" + +#: ..\..\Regain..cs:140 +msgid "/regain list" +msgstr "/regain list" + +#: ..\..\Regain..cs:137 +msgid "/regain语法" +msgstr "/regain Grammar" + +#: ..\..\Regain..cs:133 +#, csharp-format +msgid "成功兑换{0}个{1}!" +msgstr "Successfully exchanged {0} {1}s!" + +#: ..\..\Regain..cs:68 +msgid "当前可回收物品" +msgstr "Current recyclable items" + +#: ..\..\Regain..cs:78 +msgid "该物品暂时无法回收!" +msgstr "This item is temporarily not recyclable!" + +#: ..\..\Regain..cs:69 +msgid "回收物品列表 ({0}/{1}):" +msgstr "Recyclable Item List ({0}/{1}):" + +#: ..\..\Regain..cs:90 +msgid "你必须登录游戏使用此命令!" +msgstr "You must be logged into the game to use this command!" + +#: ..\..\Regain..cs:83 +msgid "请手持一个有效物品!" +msgstr "Please hold a valid item!" + +#: ..\..\Regain..cs:70 +msgid "输入 {0}regain list {{0}} 查看更多" +msgstr "Type {0}regain list to view more" + +#: ..\..\Regain..cs:121 +#, csharp-format +msgid "值{0}无效!" +msgstr "Value {0} is invalid!" + diff --git a/src/Economics.Shop/Shop.cs b/src/Economics.Shop/Shop.cs index 3aacb368b..c23f92e9f 100644 --- a/src/Economics.Shop/Shop.cs +++ b/src/Economics.Shop/Shop.cs @@ -17,7 +17,7 @@ public class Shop : TerrariaPlugin public override string Name => Assembly.GetExecutingAssembly().GetName().Name!; - public override Version Version => new(1, 0, 0, 1); + public override Version Version => new(1, 0, 0, 2); internal string PATH = Path.Combine(EconomicsAPI.Economics.SaveDirPath, "Shop.json"); diff --git a/src/Economics.Shop/i18n/template.pot b/src/Economics.Shop/i18n/template.pot new file mode 100644 index 000000000..351580f28 --- /dev/null +++ b/src/Economics.Shop/i18n/template.pot @@ -0,0 +1,77 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.Shop\n" +"POT-Creation-Date: 2024-09-30 15:29:54+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:55+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Command.cs:40 +#, csharp-format +msgid "{0}:[{1}] {2} 价格:{3}" +msgstr "{0}:[{1}] {2} price:{3}" + +#: ..\..\Command.cs:94 +msgid "/shop buy [序号] [数量]" +msgstr "/shop buy [index] [num]" + +#: ..\..\Command.cs:95 +msgid "/shop list [序号]" +msgstr "/shop list [index]" + +#: ..\..\Command.cs:61 +msgid "此商品不存在,请检查序号后重新输入!" +msgstr "This item does not exist, please check the serial number and try again!" + +#: ..\..\Command.cs:28 +msgid "当前商店没有商品" +msgstr "Currently, there are no items in the store." + +#: ..\..\Command.cs:90 +msgid "购买成功!" +msgstr "Purchase successful!" + +#: ..\..\Command.cs:71 +#, csharp-format +msgid "购买此商品需达到以下等级之一: {0}" +msgstr "To purchase this item, you must reach one of the following levels: {0}" + +#: ..\..\Command.cs:66 +#, csharp-format +msgid "购买此商品需满足进度条件: {0}" +msgstr "To purchase this item, you must meet the following progress condition: {0}" + +#: ..\..\Command.cs:81 +#, csharp-format +msgid "你的{0}不足!" +msgstr "You do not have enough {0}!" + +#: ..\..\Command.cs:55 +msgid "你输入的购买数量不正确!" +msgstr "The purchase quantity you entered is incorrect!" + +#: ..\..\Command.cs:76 +#, csharp-format +msgid "请满足物品条件: {0}" +msgstr "Please meet the item condition: {0}" + +#: ..\..\Command.cs:49 +msgid "请输入正确的序号!" +msgstr "Please enter the correct serial number!" + +#: ..\..\Command.cs:29 +msgid "商品列表 ({0}/{1}):" +msgstr "Item List ({0}/{1}):" + +#: ..\..\Command.cs:30 +msgid "输入 {0}shop list {{0}} 查看更多" +msgstr "Type {0}shop list {{0}} to see more" + +#: ..\..\Command.cs:99 +msgid "输入/shop help 查看指令帮助" +msgstr "Type /shop help to view command assistance." + diff --git a/src/Economics.Skill/Skill.cs b/src/Economics.Skill/Skill.cs index 90a8d4986..471350f11 100644 --- a/src/Economics.Skill/Skill.cs +++ b/src/Economics.Skill/Skill.cs @@ -22,7 +22,7 @@ public class Skill : TerrariaPlugin public override string Name => Assembly.GetExecutingAssembly().GetName().Name!; - public override Version Version => new(1, 2, 1, 3); + public override Version Version => new(1, 2, 1, 4); internal static string PATH = Path.Combine(EconomicsAPI.Economics.SaveDirPath, "Skill.json"); diff --git a/src/Economics.Skill/i18n/template.pot b/src/Economics.Skill/i18n/template.pot new file mode 100644 index 000000000..fca17ad4b --- /dev/null +++ b/src/Economics.Skill/i18n/template.pot @@ -0,0 +1,156 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.Skill\n" +"POT-Creation-Date: 2024-09-30 15:29:57+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:58+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Command.cs:43 +#, csharp-format +msgid "{0}. {1} 价格 {2}" +msgstr "{0}. {1} price {2}" + +#: ..\..\Command.cs:161 +msgid "/skill buy [技能ID]" +msgstr "/skill buy [ID]" + +#: ..\..\Command.cs:165 +msgid "/skill clear" +msgstr "/skill clear" + +#: ..\..\Command.cs:162 +msgid "/skill del [技能ID]" +msgstr "/skill del [ID]" + +#: ..\..\Command.cs:164 +msgid "/skill delall" +msgstr "/skill delall" + +#: ..\..\Command.cs:163 +msgid "/skill list [页码]" +msgstr "/skill list [page number]" + +#: ..\..\Command.cs:166 +msgid "/skill reset" +msgstr "/skill reset" + +#: ..\..\Skill.cs:140 +#, csharp-format +msgid "绑定技能: {0}" +msgstr "Bind skill: {0}" + +#: ..\..\Utils.cs:52 +msgid "被动类型技能已超过最大绑定数量!" +msgstr "The maximum number of passive skills has been exceeded!" + +#: ..\..\Command.cs:101 +msgid "查询成功!" +msgstr "Query successful!" + +#: ..\..\Command.cs:144 +msgid "成功移除了绑定的所有技能!" +msgstr "All bound skills have been successfully removed!" + +#: ..\..\Command.cs:129 +msgid "成功移除了手持武器的所有技能!" +msgstr "All skills bound to the held weapon have been successfully removed!" + +#: ..\..\Utils.cs:41 +msgid "此技能全服唯一已经有其他人绑定了此技能!" +msgstr "This skill is unique across the server and has already been bound by someone else!" + +#: ..\..\Utils.cs:36 +msgid "此技能是唯一的不能重复绑定!" +msgstr "This skill is unique and cannot be bound more than once!" + +#: ..\..\Utils.cs:50 +msgid "此武器已超过规定的最大绑定数量!" +msgstr "This weapon has exceeded the maximum allowed number of bindings!" + +#: ..\..\Command.cs:26 +msgid "当前技能列表空空如也" +msgstr "The current skill list is empty." + +#: ..\..\Utils.cs:30 +#, csharp-format +msgid "当前进度无法购买此技能,限制进度:{0}" +msgstr "You cannot purchase this skill with your current progress, limited to {0}." + +#: ..\..\Command.cs:68 +msgid "购买成功,技能已绑定!" +msgstr "Purchase successful, skill has been bound!" + +#: ..\..\Command.cs:27 +msgid "技能列表 ({0}/{1}):" +msgstr "skill list ({0}/{1}):" + +#: ..\..\Utils.cs:17 +#, csharp-format +msgid "技能序号{0} 不存在!" +msgstr "Skill number {0} does not exist!" + +#: ..\..\Command.cs:86 +msgid "技能移除成功!" +msgstr "Skill removal successful!" + +#: ..\..\Utils.cs:46 +msgid "技能已超过规定的最大绑定数量!" +msgstr "The skill has exceeded the maximum allowed number of bindings!" + +#: ..\..\Command.cs:155 +msgid "技能重置成功!" +msgstr "Skill reset successful!" + +#: ..\..\Command.cs:34 +msgid "你必须登陆游戏才能购买技能!" +msgstr "You must log in to the game to purchase skills!" + +#: ..\..\Command.cs:98 +#: ..\..\Command.cs:137 +msgid "你并未绑定技能!" +msgstr "You have not bound any skills!" + +#: ..\..\Utils.cs:25 +#, csharp-format +msgid "你当前等级无法购买此技能,限制等级:{0}" +msgstr "You cannot purchase this skill with your current level, limited to {0}." + +#: ..\..\Command.cs:64 +#, csharp-format +msgid "你的{0} 不足购买此技能!" +msgstr "You do not have enough {0} to purchase this skill!" + +#: ..\..\Command.cs:151 +msgid "你没有权限执行此命令!" +msgstr "You do not have permission to execute this command!" + +#: ..\..\Command.cs:82 +msgid "你未绑定此技能,无需删除!" +msgstr "You have not bound this skill, no need to delete!" + +#: ..\..\Command.cs:54 +msgid "请输入一个正确的序号!" +msgstr "Please enter a correct serial number!" + +#: ..\..\Command.cs:122 +msgid "手持物品并未绑定技能!" +msgstr "The item you are holding has not bound any skills!" + +#: ..\..\Command.cs:28 +msgid "输入 {0}skill list {{0}} 查看更多" +msgstr "Type {0}skill list {{0}} to see more" + +#: ..\..\Command.cs:110 +#, csharp-format +msgid "无法溯源的技能序号: {0}" +msgstr "" + +#: ..\..\Utils.cs:20 +msgid "这是一个主动技能,请手持一个有效武器!" +msgstr "Unable to trace the skill serial number: {0}" + diff --git a/src/Economics.Task/Plugin.cs b/src/Economics.Task/Plugin.cs index 0fbd92d47..8569a75db 100644 --- a/src/Economics.Task/Plugin.cs +++ b/src/Economics.Task/Plugin.cs @@ -21,7 +21,7 @@ public class Plugin : TerrariaPlugin public override string Name => Assembly.GetExecutingAssembly().GetName().Name!; - public override Version Version => new(1, 0, 0, 1); + public override Version Version => new(1, 0, 0, 2); internal static Config TaskConfig = new(); diff --git a/src/Economics.Task/i18n/template.pot b/src/Economics.Task/i18n/template.pot new file mode 100644 index 000000000..ec077f943 --- /dev/null +++ b/src/Economics.Task/i18n/template.pot @@ -0,0 +1,174 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.Task\n" +"POT-Creation-Date: 2024-09-30 15:29:59+0800\n" +"PO-Revision-Date: 2024-09-30 15:30:00+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Utils.cs:83 +msgid "(未完成)" +msgstr "(Not completed)" + +#: ..\..\Utils.cs:83 +msgid "(已完成)" +msgstr "(Completed)" + +#: ..\..\Command.cs:49 +#, csharp-format +msgid "{0}介绍: {1}" +msgstr "{0} Introduction: {1}" + +#: ..\..\Utils.cs:80 +#, csharp-format +msgid "{0}完成进度" +msgstr "{0} Completion Progress" + +#: ..\..\Command.cs:173 +msgid "/task del 移除任务" +msgstr "/task del Remove task" + +#: ..\..\Command.cs:169 +msgid "/task info <序号> 查看任务详情" +msgstr "/task info Check task details" + +#: ..\..\Command.cs:168 +msgid "/task list 查看任务列表" +msgstr "/task list Check task list" + +#: ..\..\Command.cs:170 +msgid "/task pick <序号> 接取一个任务" +msgstr "/task pick Pick up a task" + +#: ..\..\Command.cs:172 +msgid "/task pr 提交任务" +msgstr "/task pr Submit task" + +#: ..\..\Command.cs:171 +msgid "/task prog 查看任务完成进度" +msgstr "/task prog Check task completion progress" + +#: ..\..\Command.cs:174 +msgid "/task reset 清空完成任务" +msgstr "/task reset Clear completed tasks" + +#: ..\..\Command.cs:77 +#, csharp-format +msgid "必须完成任务 {0} 才能接此任务" +msgstr "Must complete task {0} to pick up this task" + +#: ..\..\Command.cs:45 +msgid "不存在此任务!" +msgstr "Task does not exist!" + +#: ..\..\Plugin.cs:84 +msgid "查询成功" +msgstr "Query successful" + +#: ..\..\Command.cs:72 +msgid "此任务你已经完成过了!" +msgstr "You have already completed this task!" + +#: ..\..\Command.cs:54 +msgid "错误的技能序号!" +msgstr "Incorrect skill number!" + +#: ..\..\Command.cs:27 +msgid "当前没有任务" +msgstr "No current tasks" + +#: ..\..\Plugin.cs:79 +msgid "非法的任务ID" +msgstr "Illegal task ID" + +#: ..\..\Utils.cs:89 +#, csharp-format +msgid "击杀怪物 {0} ({1}/{2})" +msgstr "Kill monster {0} ({1}/{2})" + +#: ..\..\Plugin.cs:74 +msgid "没有检测到任务ID" +msgstr "No task ID detected" + +#: ..\..\Plugin.cs:69 +msgid "没有检测到玩家名称" +msgstr "No player name detected" + +#: ..\..\Command.cs:145 +msgid "你当前的任务还没有完成!" +msgstr "Your current task is not completed!" + +#: ..\..\Command.cs:150 +msgid "你还没有接一个任务!" +msgstr "You haven't picked up a task yet!" + +#: ..\..\Command.cs:117 +msgid "你没有接取一个任务!" +msgstr "You have not picked up a task!" + +#: ..\..\Command.cs:157 +msgid "你没有使用该指令的权限!" +msgstr "You do not have permission to use this command!" + +#: ..\..\Command.cs:61 +msgid "您还有一个任务正在进行,不能接多个任务!" +msgstr "You have an ongoing task, cannot pick up multiple tasks!" + +#: ..\..\Command.cs:99 +msgid "任务不存在!" +msgstr "Task does not exist!" + +#: ..\..\Command.cs:93 +msgid "任务接取成功!" +msgstr "Task picked up successfully!" + +#: ..\..\Command.cs:95 +#, csharp-format +msgid "任务介绍:{0}" +msgstr "Task introduction:{0}" + +#: ..\..\Command.cs:28 +msgid "任务列表 ({0}/{1}):" +msgstr "Task list ({0}/{1}):" + +#: ..\..\Command.cs:94 +#, csharp-format +msgid "任务名称:{0}" +msgstr "Task name:{0}" + +#: ..\..\Command.cs:29 +msgid "输入 {0}task list {{0}} 查看更多" +msgstr "Enter {0}task list {0} to view more" + +#: ..\..\Command.cs:104 +msgid "输入了一个错误的序号!" +msgstr "An incorrect number has been entered!" + +#: ..\..\Command.cs:87 +#, csharp-format +msgid "需要满足进度{0}才能接取此任务" +msgstr "Need to meet progress {0} to pick up this task" + +#: ..\..\Utils.cs:105 +#, csharp-format +msgid "拥有{0} ({1}/{2})" +msgstr "Have {0} ({1}/{2})" + +#: ..\..\Utils.cs:115 +#, csharp-format +msgid "拥有{0}{1} ({2}/{3})" +msgstr "Have {0}{1} ({2}/{3})" + +#: ..\..\Utils.cs:84 +#, csharp-format +msgid "与{0}进行对话{1}" +msgstr "Dialogue with {0}{1}" + +#: ..\..\Command.cs:82 +#, csharp-format +msgid "只有在{0} 以及符等级才能接取此任务" +msgstr "Only in {0} and with the level of talisman can you pick up this task" \ No newline at end of file diff --git a/src/EconomicsAPI/i18n/template.pot b/src/EconomicsAPI/i18n/template.pot new file mode 100644 index 000000000..fa1ff9a65 --- /dev/null +++ b/src/EconomicsAPI/i18n/template.pot @@ -0,0 +1,126 @@ +msgid "" +msgstr "" +"Project-Id-Version: EconomicsAPI\n" +"POT-Creation-Date: 2024-09-30 15:30:04+0800\n" +"PO-Revision-Date: 2024-09-30 15:30:05+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Economics.cs:125 +#, csharp-format +msgid "{0}数量: {1}" +msgstr "{0} quantity: {1}" + +#: ..\..\Command.cs:93 +msgid "/bank add [用户] [数量]" +msgstr "/bank add [user] [amount]" + +#: ..\..\Command.cs:96 +msgid "/bank clear [用户]" +msgstr "/bank clear [user]" + +#: ..\..\Command.cs:94 +msgid "/bank del [用户] [数量]" +msgstr "/bank del [user] [amount]" + +#: ..\..\Command.cs:95 +msgid "/bank pay [用户] [数量]" +msgstr "/bank pay [user] [amount]" + +#: ..\..\Command.cs:97 +msgid "/bank reset" +msgstr "/bank reset" + +#: ..\..\Command.cs:49 +#, csharp-format +msgid "成功删除`{0}`的 {1} 个{2}" +msgstr "Successfully deleted {1} {2} from `{0}`" + +#: ..\..\Command.cs:42 +#, csharp-format +msgid "成功为`{0}`添加 {1} 个{2}" +msgstr "Successfully added {1} {2} to `{0}`" + +#: ..\..\Command.cs:65 +#, csharp-format +msgid "成功转账给`{0}` {1} 个{2}" +msgstr "Successfully transferred {1} {2} to `{0}`" + +#: ..\..\Economics.cs:129 +#, csharp-format +msgid "当前魔力: {0}/{1}" +msgstr "Current mana: {0}/{1}" + +#: ..\..\Economics.cs:128 +#, csharp-format +msgid "当前生命: {0}/{1}" +msgstr "Current health: {0}/{1}" + +#: ..\..\Economics.cs:123 +#, csharp-format +msgid "当前延迟: {0:F1}ms" +msgstr "Current latency: {0:F1}ms" + +#: ..\..\Command.cs:70 +#, csharp-format +msgid "你的{0}不足,无法转账!" +msgstr "You do not have enough {0} to transfer!" + +#: ..\..\Command.cs:26 +msgid "你没有权限执行此命令!" +msgstr "You do not have permission to execute this command!" + +#: ..\..\Command.cs:59 +msgid "你无权执行此命令!" +msgstr "You are not authorized to execute this command!" + +#: ..\..\Economics.cs:138 +#, csharp-format +msgid "你因死亡掉落{0:F0}个{1}!" +msgstr "You dropped {0:F0} {1} upon death!" + +#: ..\..\Command.cs:34 +msgid "请输入一个有效数值!" +msgstr "Please enter a valid number!" + +#: ..\..\Economics.cs:127 +#, csharp-format +msgid "世界名称: {0}" +msgstr "World name: {0}" + +#: ..\..\Economics.cs:124 +#, csharp-format +msgid "玩家名称: {0}" +msgstr "Player name: {0}" + +#: ..\..\Command.cs:83 +#, csharp-format +msgid "已清空`{0}`的所有{1}" +msgstr "All {1} of `{0}` have been cleared" + +#: ..\..\Command.cs:52 +#, csharp-format +msgid "用户`{0}`仅有{1}个{2}" +msgstr "User `{0}` only has {1} {2}" + +#: ..\..\Command.cs:76 +#: ..\..\Command.cs:101 +msgid "语法错误,请输入/bank help查看正确语法" +msgstr "Syntax error, please enter /bank help to view the correct syntax" + +#: ..\..\Economics.cs:126 +#, csharp-format +msgid "在线人数: {0}/{1}" +msgstr "Online users: {0}/{1}" + +#: ..\..\Command.cs:92 +msgid "bank 指令" +msgstr "bank command" + +#: ..\..\Command.cs:88 +msgid "Economics 已重置" +msgstr "Economics has been reset" \ No newline at end of file From db3bed5b864721e040c98270fe67b89b1bc72351 Mon Sep 17 00:00:00 2001 From: Controllerdestiny <523321293@qq.co> Date: Mon, 30 Sep 2024 18:04:47 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E8=A1=A5=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/i18n.ps1 | 29 ++- src/Economics.WeaponPlus/WItem.cs | 52 ++--- src/Economics.WeaponPlus/WeaponPlus.cs | 166 ++++---------- src/Economics.WeaponPlus/i18n/en-US.po | 245 +++++++++++++++++++++ src/Economics.WeaponPlus/i18n/template.pot | 245 +++++++++++++++++++++ src/EconomicsAPI/i18n/en-US.po | 126 +++++++++++ 6 files changed, 705 insertions(+), 158 deletions(-) create mode 100644 src/Economics.WeaponPlus/i18n/en-US.po create mode 100644 src/Economics.WeaponPlus/i18n/template.pot create mode 100644 src/EconomicsAPI/i18n/en-US.po diff --git a/scripts/i18n.ps1 b/scripts/i18n.ps1 index 99a20a36e..938066928 100644 --- a/scripts/i18n.ps1 +++ b/scripts/i18n.ps1 @@ -1,5 +1,24 @@ - foreach ($p in @(Get-ChildItem src/**/*.csproj)) { - $pot = [System.IO.Path]::Combine($p.DirectoryName, "i18n", "template.pot") - New-Item -Path $p.DirectoryName -Name i18n -ItemType Directory -Force - dotnet tool run GetText.Extractor -u -o -s $p.FullName -t $pot -} \ No newline at end of file + param( + [Parameter(Mandatory)] + [string]$t +) + +$ext = [System.IO.Path]::GetExtension($t) +Write-Host $ext +if($t -eq "*"){ + foreach ($p in @(Get-ChildItem src/**/*.csproj)) { + $pot = [System.IO.Path]::Combine($p.DirectoryName, "i18n", "template.pot") + New-Item -Path $p.DirectoryName -Name i18n -ItemType Directory -Force + dotnet tool run GetText.Extractor -u -o -s $p.FullName -t $pot + } +}elseif((Test-Path $t) -and $ext -eq ".csproj"){ + $FullName = [System.IO.Path]::GetFullPath($t) + $dirName = [System.IO.Path]::GetDirectoryName($t) + $pot = [System.IO.Path]::Combine($dirName, "i18n", "template.pot") + New-Item -Path $dirName -Name i18n -ItemType Directory -Force + dotnet tool run GetText.Extractor -u -o -s $FullName -t $pot +}else{ + Write-Host "csproj file Path Not Exist!" +} + + \ No newline at end of file diff --git a/src/Economics.WeaponPlus/WItem.cs b/src/Economics.WeaponPlus/WItem.cs index 86ed116a6..bffcd2e4f 100644 --- a/src/Economics.WeaponPlus/WItem.cs +++ b/src/Economics.WeaponPlus/WItem.cs @@ -106,33 +106,33 @@ public string ItemMess() stringBuilder2 = stringBuilder; var stringBuilder3 = stringBuilder2; handler = new StringBuilder.AppendInterpolatedStringHandler(16, 15, stringBuilder2); - handler.AppendFormatted(WeaponPlus.LangTipsGet("当前总等级:")); + handler.AppendFormatted(GetString("当前总等级:")); handler.AppendFormatted(this.Level); handler.AppendLiteral(" "); - handler.AppendFormatted(WeaponPlus.LangTipsGet("剩余强化次数:")); + handler.AppendFormatted(GetString("剩余强化次数:")); handler.AppendFormatted(WeaponPlus.config.MaximunofLevel - this.Level); handler.AppendLiteral(" "); - handler.AppendFormatted(WeaponPlus.LangTipsGet("次")); + handler.AppendFormatted(GetString("次")); handler.AppendLiteral(" "); - handler.AppendFormatted(WeaponPlus.LangTipsGet("伤害等级:")); + handler.AppendFormatted(GetString("伤害等级:")); handler.AppendFormatted(this.damage_level); handler.AppendLiteral(", "); - handler.AppendFormatted(WeaponPlus.LangTipsGet("大小等级:")); + handler.AppendFormatted(GetString("大小等级:")); handler.AppendFormatted(this.scale_level); handler.AppendLiteral(", "); - handler.AppendFormatted(WeaponPlus.LangTipsGet("击退等级:")); + handler.AppendFormatted(GetString("击退等级:")); handler.AppendFormatted(this.knockBack_level); handler.AppendLiteral(", "); - handler.AppendFormatted(WeaponPlus.LangTipsGet("攻速等级:")); + handler.AppendFormatted(GetString("攻速等级:")); handler.AppendFormatted(this.useSpeed_level); handler.AppendLiteral(", "); - handler.AppendFormatted(WeaponPlus.LangTipsGet("射弹飞行速度等级:")); + handler.AppendFormatted(GetString("射弹飞行速度等级:")); handler.AppendFormatted(this.shootSpeed_level); stringBuilder3.AppendLine(ref handler); } else { - stringBuilder.AppendLine(WeaponPlus.LangTipsGet("未升级过,无任何加成")); + stringBuilder.AppendLine(GetString("未升级过,无任何加成")); } var num = (int) (this.orig_damage * 0.05f * this.damage_level); if (num < this.damage_level) @@ -143,16 +143,16 @@ public string ItemMess() stringBuilder2 = stringBuilder; var stringBuilder4 = stringBuilder2; handler = new StringBuilder.AppendInterpolatedStringHandler(9, 7, stringBuilder2); - handler.AppendFormatted(WeaponPlus.LangTipsGet("当前状态:")); - handler.AppendFormatted(WeaponPlus.LangTipsGet("伤害")); + handler.AppendFormatted(GetString("当前状态:")); + handler.AppendFormatted(GetString("伤害")); handler.AppendLiteral(" +"); handler.AppendFormatted(value, "0.00%"); handler.AppendLiteral(","); - handler.AppendFormatted(WeaponPlus.LangTipsGet("大小")); + handler.AppendFormatted(GetString("大小")); handler.AppendLiteral(" +"); handler.AppendFormatted(0.05f * this.scale_level, "0.00%"); handler.AppendLiteral(","); - handler.AppendFormatted(WeaponPlus.LangTipsGet("击退")); + handler.AppendFormatted(GetString("击退")); handler.AppendLiteral(" +"); handler.AppendFormatted(0.05f * this.knockBack_level, "0.00%"); handler.AppendLiteral(","); @@ -161,11 +161,11 @@ public string ItemMess() stringBuilder2 = stringBuilder; var stringBuilder5 = stringBuilder2; handler = new StringBuilder.AppendInterpolatedStringHandler(3, 4, stringBuilder2); - handler.AppendFormatted(WeaponPlus.LangTipsGet("攻速")); + handler.AppendFormatted(GetString("攻速")); handler.AppendLiteral("+"); handler.AppendFormatted(value, "0.00%"); handler.AppendLiteral(","); - handler.AppendFormatted(WeaponPlus.LangTipsGet("射弹飞速")); + handler.AppendFormatted(GetString("射弹飞速")); handler.AppendLiteral("+"); handler.AppendFormatted(0.05f * this.shootSpeed_level, "0.00%"); stringBuilder5.AppendLine(ref handler); @@ -174,37 +174,37 @@ public string ItemMess() stringBuilder2 = stringBuilder; var stringBuilder6 = stringBuilder2; handler = new StringBuilder.AppendInterpolatedStringHandler(0, 2, stringBuilder2); - handler.AppendFormatted(WeaponPlus.LangTipsGet("伤害升至下一级需:")); - handler.AppendFormatted(this.plusPrice(PlusType.damage, out var price) ? price : WeaponPlus.LangTipsGet("当前已满级")); + handler.AppendFormatted(GetString("伤害升至下一级需:")); + handler.AppendFormatted(this.plusPrice(PlusType.damage, out var price) ? price : GetString("当前已满级")); stringBuilder6.AppendLine(ref handler); stringBuilder2 = stringBuilder; var stringBuilder7 = stringBuilder2; handler = new StringBuilder.AppendInterpolatedStringHandler(0, 2, stringBuilder2); - handler.AppendFormatted(WeaponPlus.LangTipsGet("大小升至下一级需:")); - handler.AppendFormatted(this.plusPrice(PlusType.scale, out price) ? price : WeaponPlus.LangTipsGet("当前已满级")); + handler.AppendFormatted(GetString("大小升至下一级需:")); + handler.AppendFormatted(this.plusPrice(PlusType.scale, out price) ? price : GetString("当前已满级")); stringBuilder7.AppendLine(ref handler); stringBuilder2 = stringBuilder; var stringBuilder8 = stringBuilder2; handler = new StringBuilder.AppendInterpolatedStringHandler(0, 2, stringBuilder2); - handler.AppendFormatted(WeaponPlus.LangTipsGet("击退升至下一级需:")); - handler.AppendFormatted(this.plusPrice(PlusType.knockBack, out price) ? price : WeaponPlus.LangTipsGet("当前已满级")); + handler.AppendFormatted(GetString("击退升至下一级需:")); + handler.AppendFormatted(this.plusPrice(PlusType.knockBack, out price) ? price : GetString("当前已满级")); stringBuilder8.AppendLine(ref handler); stringBuilder2 = stringBuilder; var stringBuilder9 = stringBuilder2; handler = new StringBuilder.AppendInterpolatedStringHandler(0, 2, stringBuilder2); - handler.AppendFormatted(WeaponPlus.LangTipsGet("攻速升至下一级需:")); - handler.AppendFormatted(this.plusPrice(PlusType.useSpeed, out price) ? price : WeaponPlus.LangTipsGet("当前已满级")); + handler.AppendFormatted(GetString("攻速升至下一级需:")); + handler.AppendFormatted(this.plusPrice(PlusType.useSpeed, out price) ? price : GetString("当前已满级")); stringBuilder9.AppendLine(ref handler); stringBuilder2 = stringBuilder; var stringBuilder10 = stringBuilder2; handler = new StringBuilder.AppendInterpolatedStringHandler(0, 2, stringBuilder2); - handler.AppendFormatted(WeaponPlus.LangTipsGet("射弹飞速升至下一级需:")); - handler.AppendFormatted(this.plusPrice(PlusType.shootSpeed, out price) ? price : WeaponPlus.LangTipsGet("当前已满级")); + handler.AppendFormatted(GetString("射弹飞速升至下一级需:")); + handler.AppendFormatted(this.plusPrice(PlusType.shootSpeed, out price) ? price : GetString("当前已满级")); stringBuilder10.Append(ref handler); } else { - stringBuilder.Append(WeaponPlus.LangTipsGet("已达到最大武器总等级")); + stringBuilder.Append(GetString("已达到最大武器总等级")); } return stringBuilder.ToString(); } diff --git a/src/Economics.WeaponPlus/WeaponPlus.cs b/src/Economics.WeaponPlus/WeaponPlus.cs index 5909598f0..45f720030 100644 --- a/src/Economics.WeaponPlus/WeaponPlus.cs +++ b/src/Economics.WeaponPlus/WeaponPlus.cs @@ -33,7 +33,6 @@ public class WeaponPlus : TerrariaPlugin public static WPlayer[] wPlayers = new WPlayer[256]; - public static List> LangTips = new List>(); #endregion #region 注册与卸载钩子 @@ -41,18 +40,17 @@ public WeaponPlus(Main game) : base(game) { } public override void Initialize() { DB = new WeaponPlusDB(TShock.DB); - this.NewLangTips(); LoadConfig(); GeneralHooks.ReloadEvent += LoadConfig; ServerApi.Hooks.NetGreetPlayer.Register((TerrariaPlugin) (object) this, this.OnGreetPlayer); ServerApi.Hooks.ServerLeave.Register((TerrariaPlugin) (object) this, this.OnServerLeave); Commands.ChatCommands.Add(new Command("weaponplus.plus", this.PlusItem, "plus") { - HelpText = LangTipsGet("输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料") + HelpText = GetString("输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料") }); Commands.ChatCommands.Add(new Command("weaponplus.admin", this.ClearPlusItem, "clearallplayersplus") { - HelpText = LangTipsGet("输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属") + HelpText = GetString("输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属") }); } @@ -67,92 +65,6 @@ protected override void Dispose(bool disposing) } #endregion - #region 创建提示语 - public void NewLangTips() - { - LangTips.Add(new List { "几乎所有的武器和弹药都能强化,但是强化结果会无效化词缀,作为补偿,前三次强化价格降低 80%", "Almost all weapons and ammunition can be strengthened, but the strengthening results will invalidate the affixes. As compensation, the price of the first three enhancements will be reduced by 80%" }); - LangTips.Add(new List { "强化绑定一类武器,即同 ID 武器,而不是单独的一个物品。强化与人物绑定,不可分享,扔出即失效,只在背包,猪猪等个人私有库存内起效。", "Strengthen the binding of a type of weapon, that is, the same ID weapon, rather than a single item. Strengthen the binding with the character, which cannot be shared. Throw it out and it will become invalid. It only works in the private inventory of backpacks, piggy bank and other individuals." }); - LangTips.Add(new List { "当你不小心扔出或其他原因导致强化无效,请使用指令 /plus load 来重新获取。每次重新获取都会从当前背包中查找并强制拿出来重给,请注意捡取避免丢失。", "When you throw it out carelessly or the reinforcement is invalid for other reasons, please use the command to retrieve it again. Each time you retrieve it, you will find it from the current backpack and force it to be taken out again. Please pay attention to picking up to avoid loss." }); - LangTips.Add(new List { "重新获取时重给的物品是单独给予,不会被其他玩家捡走,每次进入服务器时会默认强制重新获取。", "The items to be re-acquired are given separately and will not be picked up by other players. Each time you enter the server, you will be forced to re-acquire by default." }); - LangTips.Add(new List { "第一个物品栏是强化栏,指令只对该物品栏内的物品起效,强化完即可将武器拿走换至其他栏位,功能类似于哥布林的重铸槽。", "The first item column is the reinforcement column. The command only works on the items in this item column. After the reinforcement, the weapon can be taken away and replaced to another column. The function is similar to the recasting slot of Goblin." }); - LangTips.Add(new List { "输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料", "Enter /plus --to view the current level status of the weapon and how many materials are needed to upgrade to the next level" }); - LangTips.Add(new List { "输入 /plus help 查看 plus 系列指令帮助", "Enter /plus help --to view the help of the plus series of instructions" }); - LangTips.Add(new List { "输入 /plus load 将当前身上所有已升级的武器重新获取", "Enter /plus load --to reacquire all upgraded weapons on the current inventory" }); - LangTips.Add(new List { "输入 /plus 升级/降级当前武器的伤害等级", "Enter /plus --to upgrade/downgrade the damage level of the current weapon" }); - LangTips.Add(new List { "输入 /plus 升级/降级当前武器或射弹的体积等级 ±5%", "Enter /plus --to upgrade/downgrade the volume level of the current weapon or projectile by ± 5%" }); - LangTips.Add(new List { "输入 /plus 升级/降级当前武器的击退等级 ±5%", "Enter /plus --to upgrade/downgrade the knockback level of the current weapon by ± 5%" }); - LangTips.Add(new List { "输入 /plus 升级/降级当前武器的使用速度等级", "Enter /plus --to upgrade/downgrade the speed level of the current weapon" }); - LangTips.Add(new List { "输入 /plus 升级/降级当前武器的射弹飞行速度等级,影响鞭类武器范围±5%", "Enter /plus --to upgrade/downgrade the projectile flying speed level of the current weapon, affecting the range of whip weapons by ± 5%" }); - LangTips.Add(new List { "输入 /plus clear 清理当前武器的所有等级,可以回收一点消耗物", "Enter /plus clear --to clear all levels of the current weapon, and you can recycle some consumables" }); - LangTips.Add(new List { "输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属", "Enter /clearallplayersplus --to clear all enhancement items of all players in the database, exclusive to the administrator" }); - LangTips.Add(new List { "该指令必须在游戏内使用", "This command must be used in the game" }); - LangTips.Add(new List { "请在第一个物品栏内放入武器而不是其他什么东西或空", "Please put weapons in the first item column instead of anything else or empty" }); - LangTips.Add(new List { "当前物品:", "Current item: " }); - LangTips.Add(new List { "您当前的升级武器已重新读取", "Your current upgraded weapon has been re-read" }); - LangTips.Add(new List { "当前武器没有任何等级,不用回炉重做", "The current weapon has no level, so you don't need to redo it" }); - LangTips.Add(new List - { - "完全重置成功!" + EconomicsAPI.Economics.Setting.CurrencyName + "回收:", - "Complete reset succeeded! " + EconomicsAPI.Economics.Setting.CurrencyName + " recovery: " - }); - LangTips.Add(new List { "升级成功", "Upgrade succeeded" }); - LangTips.Add(new List { "共计消耗:", "Total consumption: " }); - LangTips.Add(new List { "降级成功", "Degraded successfully" }); - LangTips.Add(new List { "等级过低", "The grade is too low" }); - LangTips.Add(new List { "当前该类型升级已达到上限,无法升级", "Currently, the upgrade of this type has reached the upper limit and cannot be upgraded" }); - LangTips.Add(new List - { - "扣除" + EconomicsAPI.Economics.Setting.CurrencyName + ":", - "Deduct " + EconomicsAPI.Economics.Setting.CurrencyName + ": " - }); - LangTips.Add(new List { "当前剩余:", "Current remaining: " }); - LangTips.Add(new List - { - EconomicsAPI.Economics.Setting.CurrencyName + "不足!", - "Not enough " + EconomicsAPI.Economics.Setting.CurrencyName + "!" - }); - LangTips.Add(new List { "所有玩家的所有强化数据全部清理成功!", "All enhancement data of all players have been cleared successfully!" }); - LangTips.Add(new List { "强化数据清理失败!!!", "Enhanced data cleaning failed!!!" }); - LangTips.Add(new List { "当前总等级:", "Current total level: " }); - LangTips.Add(new List { "剩余强化次数:", "How many times can the weapon be strengthened: " }); - LangTips.Add(new List { "次", "times" }); - LangTips.Add(new List { "伤害等级:", "damage level: " }); - LangTips.Add(new List { "大小等级:", "scale level: " }); - LangTips.Add(new List { "击退等级:", "knockback level: " }); - LangTips.Add(new List { "攻速等级:", "use time level: " }); - LangTips.Add(new List { "射弹飞行速度等级:", "projectile speed level: " }); - LangTips.Add(new List { "未升级过,无任何加成", "Not upgraded, no bonus" }); - LangTips.Add(new List { "当前状态:", "Current status: " }); - LangTips.Add(new List { "伤害", "damage" }); - LangTips.Add(new List { "大小", "scale" }); - LangTips.Add(new List { "击退", "knockback" }); - LangTips.Add(new List { "攻速", "use time" }); - LangTips.Add(new List { "射弹飞速", "projectile speed" }); - LangTips.Add(new List { "伤害升至下一级需:", "Damage to the next level requires: " }); - LangTips.Add(new List { "大小升至下一级需:", "Scale to the next level requires: " }); - LangTips.Add(new List { "击退升至下一级需:", "KnockBack to the next level requires: " }); - LangTips.Add(new List { "攻速升至下一级需:", "UseTime to the next level requires: " }); - LangTips.Add(new List { "射弹飞速升至下一级需:", "Proiectile speed to the next level requires: " }); - LangTips.Add(new List { "当前已满级", "The current level is full" }); - LangTips.Add(new List { "已达到最大武器总等级", "The maximum total weapon level has been reached" }); - LangTips.Add(new List { "SSC 未开启", "SSC is disable" }); - LangTips.Add(new List { "请输入正整数", "Please enter a positive integer" }); - } - #endregion - - #region 切换提示语语言方法 - public static string LangTipsGet(string str) - { - foreach (var langTip in LangTips) - { - if (langTip.Contains(str)) - { - return config.EnableEnglish ? langTip[1] : langTip[0]; - } - } - return string.Empty; - } - #endregion #region 配置文件创建与重读加载方法 private static void LoadConfig(ReloadEventArgs args = null!) @@ -161,7 +73,7 @@ private static void LoadConfig(ReloadEventArgs args = null!) config.Write(TerrariaMap.Config.configPath); if (args != null && args.Player != null) { - args.Player.SendSuccessMessage("[武器强化EC版]重新加载配置完毕。"); + args.Player.SendSuccessMessage(GetString("[武器强化EC版]重新加载配置完毕。")); } } #endregion @@ -211,8 +123,8 @@ private void OnServerLeave(LeaveEventArgs args) #region 强化物品 private void PlusItem(CommandArgs args) { - var text = LangTipsGet("几乎所有的武器和弹药都能强化,但是强化结果会无效化词缀,作为补偿,前三次强化价格降低 80%") + "\n" + LangTipsGet("强化绑定一类武器,即同 ID 武器,而不是单独的一个物品。强化与人物绑定,不可分享,扔出即失效,只在背包,猪猪等个人私有库存内起效。") + "\n" + LangTipsGet("当你不小心扔出或其他原因导致强化无效,请使用指令 /plus load 来重新获取。每次重新获取都会从当前背包中查找并强制拿出来重给,请注意捡取避免丢失。") + "\n" + LangTipsGet("重新获取时重给的物品是单独给予,不会被其他玩家捡走,每次进入服务器时会默认强制重新获取。") + "\n" + LangTipsGet("第一个物品栏是强化栏,指令只对该物品栏内的物品起效,强化完即可将武器拿走换至其他栏位,功能类似于哥布林的重铸槽。"); - var text2 = LangTipsGet("输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料") + "\n" + LangTipsGet("输入 /plus load 将当前身上所有已升级的武器重新获取") + "\n" + LangTipsGet("输入 /plus 升级/降级当前武器的伤害等级") + "\n" + LangTipsGet("输入 /plus 升级/降级当前武器或射弹的体积等级 ±5%") + "\n" + LangTipsGet("输入 /plus 升级/降级当前武器的击退等级 ±5%") + "\n" + LangTipsGet("输入 /plus 升级/降级当前武器的使用速度等级") + "\n" + LangTipsGet("输入 /plus 升级/降级当前武器的射弹飞行速度等级,影响鞭类武器范围±5%") + "\n" + LangTipsGet("输入 /plus clear 清理当前武器的所有等级,可以回收一点消耗物") + "\n" + LangTipsGet("输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属"); + var text = GetString("几乎所有的武器和弹药都能强化,但是强化结果会无效化词缀,作为补偿,前三次强化价格降低 80%\n强化绑定一类武器,即同 ID 武器,而不是单独的一个物品。强化与人物绑定,不可分享,扔出即失效,只在背包,猪猪等个人私有库存内起效。\n当你不小心扔出或其他原因导致强化无效,请使用指令 /plus load 来重新获取。每次重新获取都会从当前背包中查找并强制拿出来重给,请注意捡取避免丢失。\n重新获取时重给的物品是单独给予,不会被其他玩家捡走,每次进入服务器时会默认强制重新获取。\n第一个物品栏是强化栏,指令只对该物品栏内的物品起效,强化完即可将武器拿走换至其他栏位,功能类似于哥布林的重铸槽。"); + var text2 = GetString("输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料\n输入 /plus load 将当前身上所有已升级的武器重新获取\n输入 /plus 升级/降级当前武器的伤害等级\n输入 /plus 升级/降级当前武器或射弹的体积等级 ±5%\n输入 /plus 升级/降级当前武器的击退等级 ±5%\n输入 /plus 升级/降级当前武器的使用速度等级\n输入 /plus 升级/降级当前武器的射弹飞行速度等级,影响鞭类武器范围±5%\n输入 /plus clear 清理当前武器的所有等级,可以回收一点消耗物\n输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属"); if (args.Parameters.Count == 1 && args.Parameters[0].Equals("help", StringComparison.OrdinalIgnoreCase)) { if (!args.Player.Active) @@ -226,12 +138,12 @@ private void PlusItem(CommandArgs args) } if (!args.Player.Active) { - args.Player.SendInfoMessage(LangTipsGet("该指令必须在游戏内使用")); + args.Player.SendInfoMessage(GetString("该指令必须在游戏内使用")); return; } if (!TShock.ServerSideCharacterConfig.Settings.Enabled) { - args.Player.SendInfoMessage(LangTipsGet("SSC 未开启")); + args.Player.SendInfoMessage(GetString("SSC 未开启")); return; } var wPlayer = wPlayers[args.Player.Index]; @@ -240,11 +152,11 @@ private void PlusItem(CommandArgs args) select ??= new WItem(firstItem.netID, args.Player.Name); if ((firstItem == null || firstItem.IsAir || TShock.Utils.GetItemById(firstItem.type).damage <= 0 || firstItem.accessory || firstItem.netID == 0) && (args.Parameters.Count != 1 || !args.Parameters[0].Equals("load", StringComparison.OrdinalIgnoreCase))) { - args.Player.SendInfoMessage(LangTipsGet("请在第一个物品栏内放入武器而不是其他什么东西或空")); + args.Player.SendInfoMessage(GetString("请在第一个物品栏内放入武器而不是其他什么东西或空")); } else if (args.Parameters.Count == 0) { - args.Player.SendMessage($"{LangTipsGet("当前物品:")}[i:{firstItem.netID}] {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", this.getRandColor()); + args.Player.SendMessage(GetString($"{"当前物品:"}[i:{firstItem.netID}] {"共计消耗:"}{select.allCost}\n{select.ItemMess()}"), this.getRandColor()); } else if (args.Parameters.Count == 1) { @@ -254,13 +166,13 @@ private void PlusItem(CommandArgs args) { ReplaceWeaponsInBackpack(args.Player.TPlayer, hasItem); } - args.Player.SendInfoMessage(LangTipsGet("您当前的升级武器已重新读取")); + args.Player.SendInfoMessage(GetString("您当前的升级武器已重新读取")); } else if (args.Parameters[0].Equals("clear", StringComparison.OrdinalIgnoreCase)) { if (select.Level == 0) { - args.Player.SendInfoMessage(LangTipsGet("当前武器没有任何等级,不用回炉重做")); + args.Player.SendInfoMessage(GetString("当前武器没有任何等级,不用回炉重做")); return; } var num = (long) (select.allCost * config.ResetTheWeaponReturnMultiple); @@ -268,11 +180,11 @@ private void PlusItem(CommandArgs args) wPlayer.hasItems.RemoveAll((x) => x.id == firstItem.netID); DB.DeleteDB(args.Player.Name, firstItem.netID); ReplaceWeaponsInBackpack(args.Player.TPlayer, select, 1); - args.Player.SendMessage(LangTipsGet("完全重置成功!" + EconomicsAPI.Economics.Setting.CurrencyName + "回收:") + num, new Color(0, 255, 0)); + args.Player.SendMessage(GetString("完全重置成功!" + EconomicsAPI.Economics.Setting.CurrencyName + "回收:") + num, new Color(0, 255, 0)); } else { - args.Player.SendInfoMessage(LangTipsGet("输入 /plus help 查看 plus 系列指令帮助")); + args.Player.SendInfoMessage(GetString("输入 /plus help 查看 plus 系列指令帮助")); } } else if (args.Parameters.Count >= 2 && args.Parameters.Count <= 3) @@ -282,12 +194,12 @@ private void PlusItem(CommandArgs args) { if (!int.TryParse(args.Parameters[2], out result)) { - args.Player.SendInfoMessage(LangTipsGet("输入 /plus help 查看 plus 系列指令帮助")); + args.Player.SendInfoMessage(GetString("输入 /plus help 查看 plus 系列指令帮助")); return; } if (result <= 0) { - args.Player.SendInfoMessage(LangTipsGet("请输入正整数")); + args.Player.SendInfoMessage(GetString("请输入正整数")); return; } } @@ -302,7 +214,7 @@ private void PlusItem(CommandArgs args) } else { - args.Player.SendInfoMessage(LangTipsGet("输入 /plus help 查看 plus 系列指令帮助")); + args.Player.SendInfoMessage(GetString("输入 /plus help 查看 plus 系列指令帮助")); } if (args.Parameters[0].Equals("damage", StringComparison.OrdinalIgnoreCase) || args.Parameters[0].Equals("da", StringComparison.OrdinalIgnoreCase) || args.Parameters[0] == "伤害") { @@ -318,20 +230,20 @@ private void PlusItem(CommandArgs args) } DB.WriteDB(select); ReplaceWeaponsInBackpack(args.Player.TPlayer, select); - args.Player.SendMessage($"[i:{select.id}] {LangTipsGet("升级成功")} {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", this.getRandColor()); + args.Player.SendMessage(GetString($"[i:{select.id}] 升级成功 共计消耗:{select.allCost}\n{select.ItemMess()}"), this.getRandColor()); } break; case -1: if (select.damage_level - result < 0) { - args.Player.SendInfoMessage(LangTipsGet("等级过低")); + args.Player.SendInfoMessage(GetString("等级过低")); break; } select.damage_level -= result; select.CheckDB(); DB.WriteDB(select); ReplaceWeaponsInBackpack(args.Player.TPlayer, select); - args.Player.SendMessage($"[i:{select.id}] {LangTipsGet("降级成功")} {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"[i:{select.id}] 降级成功 共计消耗:{select.allCost}\n{select.ItemMess()}"), new Color(0, 255, 0)); break; } } @@ -349,20 +261,20 @@ private void PlusItem(CommandArgs args) } DB.WriteDB(select); ReplaceWeaponsInBackpack(args.Player.TPlayer, select); - args.Player.SendMessage($"[i:{select.id}] {LangTipsGet("升级成功")} {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", this.getRandColor()); + args.Player.SendMessage(GetString($"[i:{select.id}] 升级成功 共计消耗:{select.allCost}\n{select.ItemMess()}"), this.getRandColor()); } break; case -1: if (select.scale_level - result < 0) { - args.Player.SendInfoMessage(LangTipsGet("等级过低")); + args.Player.SendInfoMessage(GetString("等级过低")); break; } select.scale_level -= result; select.CheckDB(); DB.WriteDB(select); ReplaceWeaponsInBackpack(args.Player.TPlayer, select); - args.Player.SendMessage($"[i:{select.id}] {LangTipsGet("降级成功")} {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"[i:{select.id}] 降级成功 共计消耗:{select.allCost}\n{select.ItemMess()}"), new Color(0, 255, 0)); break; } } @@ -380,20 +292,20 @@ private void PlusItem(CommandArgs args) } DB.WriteDB(select); ReplaceWeaponsInBackpack(args.Player.TPlayer, select); - args.Player.SendMessage($"[i:{select.id}] {LangTipsGet("升级成功")} {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", this.getRandColor()); + args.Player.SendMessage(GetString($"[i:{select.id}] 升级成功 共计消耗:{select.allCost}\n{select.ItemMess()}"), this.getRandColor()); } break; case -1: if (select.knockBack_level - result < 0) { - args.Player.SendInfoMessage(LangTipsGet("等级过低")); + args.Player.SendInfoMessage(GetString("等级过低")); break; } select.knockBack_level -= result; select.CheckDB(); DB.WriteDB(select); ReplaceWeaponsInBackpack(args.Player.TPlayer, select); - args.Player.SendMessage($"[i:{select.id}] {LangTipsGet("降级成功")} {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"[i:{select.id}] 降级成功 共计消耗:{select.allCost}\n{select.ItemMess()}"), new Color(0, 255, 0)); break; } } @@ -411,20 +323,20 @@ private void PlusItem(CommandArgs args) } DB.WriteDB(select); ReplaceWeaponsInBackpack(args.Player.TPlayer, select); - args.Player.SendMessage($"[i:{select.id}] {LangTipsGet("升级成功")} {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", this.getRandColor()); + args.Player.SendMessage(GetString($"[i:{select.id}] 升级成功 共计消耗:{select.allCost}\n{select.ItemMess()}"), this.getRandColor()); } break; case -1: if (select.useSpeed_level - result < 0) { - args.Player.SendInfoMessage(LangTipsGet("等级过低")); + args.Player.SendInfoMessage(GetString("等级过低")); break; } select.useSpeed_level -= result; select.CheckDB(); DB.WriteDB(select); ReplaceWeaponsInBackpack(args.Player.TPlayer, select); - args.Player.SendMessage($"[i:{select.id}] {LangTipsGet("降级成功")} {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"[i:{select.id}] 降级成功 共计消耗:{select.allCost}\n{select.ItemMess()}"), new Color(0, 255, 0)); break; } } @@ -442,31 +354,31 @@ private void PlusItem(CommandArgs args) } DB.WriteDB(select); ReplaceWeaponsInBackpack(args.Player.TPlayer, select); - args.Player.SendMessage($"[i:{select.id}] {LangTipsGet("升级成功")} {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", this.getRandColor()); + args.Player.SendMessage(GetString($"[i:{select.id}] 升级成功 共计消耗:{select.allCost}\n{select.ItemMess()}"), this.getRandColor()); } break; case -1: if (select.shootSpeed_level - result < 0) { - args.Player.SendInfoMessage(LangTipsGet("等级过低")); + args.Player.SendInfoMessage(GetString("等级过低")); break; } select.shootSpeed_level -= result; select.CheckDB(); DB.WriteDB(select); ReplaceWeaponsInBackpack(args.Player.TPlayer, select); - args.Player.SendMessage($"[i:{select.id}] {LangTipsGet("降级成功")} {LangTipsGet("共计消耗:")}{select.allCost}\n{select.ItemMess()}", new Color(0, 255, 0)); + args.Player.SendMessage(GetString($"[i:{select.id}] 降级成功 共计消耗:{select.allCost}\n{select.ItemMess()}"), new Color(0, 255, 0)); break; } } else { - args.Player.SendInfoMessage(LangTipsGet("输入 /plus help 查看 plus 系列指令帮助")); + args.Player.SendInfoMessage(GetString("输入 /plus help 查看 plus 系列指令帮助")); } } else { - args.Player.SendInfoMessage(LangTipsGet("输入 /plus help 查看 plus 系列指令帮助")); + args.Player.SendInfoMessage(GetString("输入 /plus help 查看 plus 系列指令帮助")); } } #endregion @@ -491,16 +403,16 @@ private void ClearPlusItem(CommandArgs args) } wPlayer.hasItems.Clear(); } - TSPlayer.All.SendSuccessMessage(LangTipsGet("所有玩家的所有强化数据全部清理成功!")); + TSPlayer.All.SendSuccessMessage(GetString("所有玩家的所有强化数据全部清理成功!")); } else { - args.Player.SendErrorMessage(LangTipsGet("强化数据清理失败!!!")); + args.Player.SendErrorMessage(GetString("强化数据清理失败!!!")); } } else { - args.Player.SendInfoMessage(LangTipsGet("输入 /clearallplayersplus 将数据库中强化物品全部清理")); + args.Player.SendInfoMessage(GetString("输入 /clearallplayersplus 将数据库中强化物品全部清理")); } } #endregion @@ -658,16 +570,16 @@ public bool Deduction(WItem WItem, int whoAMI, PlusType plusType, int gap = 1) var name = TShock.Players[whoAMI].Name; if (!WItem.plusPrice(plusType, out var price, gap)) { - TShock.Players[whoAMI].SendMessage(LangTipsGet("当前该类型升级已达到上限,无法升级"), Color.Red); + TShock.Players[whoAMI].SendMessage(GetString("当前该类型升级已达到上限,无法升级"), Color.Red); return false; } if (EconomicsAPI.Economics.CurrencyManager.DelUserCurrency(name, price)) { WItem.allCost += price; - TShock.Players[whoAMI].SendMessage(LangTipsGet("扣除" + EconomicsAPI.Economics.Setting.CurrencyName + ":") + price + "," + LangTipsGet("当前剩余:") + EconomicsAPI.Economics.CurrencyManager.GetUserCurrency(name), new Color(99, 106, 255)); + TShock.Players[whoAMI].SendMessage(GetString("扣除" + EconomicsAPI.Economics.Setting.CurrencyName + ":") + price + "," + GetString("当前剩余:") + EconomicsAPI.Economics.CurrencyManager.GetUserCurrency(name), new Color(99, 106, 255)); return true; } - TShock.Players[whoAMI].SendInfoMessage(LangTipsGet(EconomicsAPI.Economics.Setting.CurrencyName + "不足!")); + TShock.Players[whoAMI].SendInfoMessage(GetString(EconomicsAPI.Economics.Setting.CurrencyName + "不足!")); return false; } #endregion diff --git a/src/Economics.WeaponPlus/i18n/en-US.po b/src/Economics.WeaponPlus/i18n/en-US.po new file mode 100644 index 000000000..b2b4e3199 --- /dev/null +++ b/src/Economics.WeaponPlus/i18n/en-US.po @@ -0,0 +1,245 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.WeaponPlus\n" +"POT-Creation-Date: 2024-09-30 17:35:21+0800\n" +"PO-Revision-Date: 2024-09-30 17:35:22+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" +#: ..\..\WeaponPlus.cs:76 +msgid "[武器强化EC版]重新加载配置完毕。" +msgstr "[Weapon Enhancement EC Edition] Configuration reloaded." + +#: ..\..\WeaponPlus.cs:246 +#: ..\..\WeaponPlus.cs:277 +#: ..\..\WeaponPlus.cs:308 +#: ..\..\WeaponPlus.cs:339 +#: ..\..\WeaponPlus.cs:370 +#, csharp-format +msgid "[i:{0}] 降级成功 共计消耗:{1}\n{2}" +msgstr "[i:{0}] Downgrade successful, total consumed: {1}\n{2}" + +#: ..\..\WeaponPlus.cs:233 +#: ..\..\WeaponPlus.cs:264 +#: ..\..\WeaponPlus.cs:295 +#: ..\..\WeaponPlus.cs:326 +#: ..\..\WeaponPlus.cs:357 +#, csharp-format +msgid "[i:{0}] 升级成功 共计消耗:{1}\n{2}" +msgstr "[i:{0}] Upgrade successful, total consumed: {1}\n{2}" + +#: ..\..\WeaponPlus.cs:159 +#, csharp-format +msgid "{0}[i:{1}] {2}{3}\n{4}" +msgstr "{0}[i:{1}] {2}{3}\n{4}" + +#: ..\..\WeaponPlus.cs:582 +msgid "不足!" +msgstr "Insufficient!" + +#: ..\..\WItem.cs:115 +msgid "次" +msgstr "times" + +#: ..\..\WItem.cs:151 +msgid "大小" +msgstr "Size" + +#: ..\..\WItem.cs:120 +msgid "大小等级:" +msgstr "Size Level:" + +#: ..\..\WItem.cs:183 +msgid "大小升至下一级需:" +msgstr "To upgrade to the next size level, you need:" + +#: ..\..\WeaponPlus.cs:573 +msgid "当前该类型升级已达到上限,无法升级" +msgstr "The current type has reached its upgrade limit and cannot be upgraded further." + +#: ..\..\WeaponPlus.cs:579 +msgid "当前剩余:" +msgstr "Remaining:" + +#: ..\..\WeaponPlus.cs:175 +msgid "当前武器没有任何等级,不用回炉重做" +msgstr "The current weapon has no levels and does not need to be reworked." + +#: ..\..\WItem.cs:178 +#: ..\..\WItem.cs:184 +#: ..\..\WItem.cs:190 +#: ..\..\WItem.cs:196 +#: ..\..\WItem.cs:202 +msgid "当前已满级" +msgstr "Currently at maximum level." + +#: ..\..\WItem.cs:146 +msgid "当前状态:" +msgstr "Current Status:" + +#: ..\..\WItem.cs:109 +msgid "当前总等级:" +msgstr "Current Total Level:" + +#: ..\..\WeaponPlus.cs:239 +#: ..\..\WeaponPlus.cs:270 +#: ..\..\WeaponPlus.cs:301 +#: ..\..\WeaponPlus.cs:332 +#: ..\..\WeaponPlus.cs:363 +msgid "等级过低" +msgstr "Level too low" + +#: ..\..\WeaponPlus.cs:141 +msgid "该指令必须在游戏内使用" +msgstr "This command must be used in-game." + +#: ..\..\WItem.cs:164 +msgid "攻速" +msgstr "Attack Speed" + +#: ..\..\WItem.cs:126 +msgid "攻速等级:" +msgstr "Attack Speed Level:" + +#: ..\..\WItem.cs:195 +msgid "攻速升至下一级需:" +msgstr "To upgrade to the next attack speed level, you need:" + +#: ..\..\WItem.cs:155 +msgid "击退" +msgstr "Knockback" + +#: ..\..\WItem.cs:123 +msgid "击退等级:" +msgstr "Knockback Level:" + +#: ..\..\WItem.cs:189 +msgid "击退升至下一级需:" +msgstr "To upgrade to the next knockback level, you need:" + +#: ..\..\WeaponPlus.cs:126 +msgid "" +"几乎所有的武器和弹药都能强化,但是强化结果会无效化词缀,作为补偿,前三次强化价格降低 80%\n" +"强化绑定一类武器,即同 ID 武器,而不是单独的一个物品。强化与人物绑定,不可分享,扔出即失效,只在背包,猪猪等个人私有库存内起效。\n" +"当你不小心扔出或其他原因导致强化无效,请使用指令 /plus load 来重新获取。每次重新获取都会从当前背包中查找并强制拿出来重给,请注意捡取避免丢失。\n" +"重新获取时重给的物品是单独给予,不会被其他玩家捡走,每次进入服务器时会默认强制重新获取。\n" +"第一个物品栏是强化栏,指令只对该物品栏内的物品起效,强化完即可将武器拿走换至其他栏位,功能类似于哥布林的重铸槽。" +msgstr "" +"Almost all weapons and ammunition can be enhanced, but the enhancement will invalidate affixes. As compensation, the cost of the first three enhancements is reduced by 80%.\n" +"Enhancement is bound to a type of weapon, i.e., weapons with the same ID, not individual items. Enhancements are character-bound, non-transferable, and become invalid if thrown out. They only work within personal inventories such as the backpack or piggy bank.\n" +"If you accidentally throw out an item or for other reasons the enhancement becomes invalid, use the command /plus load to retrieve it. Each retrieval will forcibly take the item from your current inventory, so please pick it up to avoid losing it.\n" +"When retrieving, the item is given separately and cannot be picked up by other players. The system will force a retrieval every time you enter the server.\n" +"The first slot in the inventory is the enhancement slot, and commands only apply to items in this slot. Once enhanced, the weapon can be moved to another slot, similar to the Goblin Tinkerer's reforging function." + +#: ..\..\WeaponPlus.cs:579 +msgid "扣除:" +msgstr "Deducted:" + +#: ..\..\WeaponPlus.cs:169 +msgid "您当前的升级武器已重新读取" +msgstr "Your currently upgraded weapon has been reloaded." + +#: ..\..\WeaponPlus.cs:410 +msgid "强化数据清理失败!!!" +msgstr "Enhancement data cleanup failed!!!" + +#: ..\..\WeaponPlus.cs:202 +msgid "请输入正整数" +msgstr "Please enter a positive integer." + +#: ..\..\WeaponPlus.cs:155 +msgid "请在第一个物品栏内放入武器而不是其他什么东西或空" +msgstr "Please place a weapon in the first inventory slot, not something else or leave it empty." + +#: ..\..\WItem.cs:147 +msgid "伤害" +msgstr "Damage" + +#: ..\..\WItem.cs:117 +msgid "伤害等级:" +msgstr "Damage Level:" + +#: ..\..\WItem.cs:177 +msgid "伤害升至下一级需:" +msgstr "To upgrade to the next damage level, you need:" + +#: ..\..\WItem.cs:168 +msgid "射弹飞速" +msgstr "Projectile Speed" + +#: ..\..\WItem.cs:201 +msgid "射弹飞速升至下一级需:" +msgstr "To upgrade to the next projectile speed level, you need:" + +#: ..\..\WItem.cs:129 +msgid "射弹飞行速度等级:" +msgstr "Projectile Speed Level:" + +#: ..\..\WItem.cs:112 +msgid "剩余强化次数:" +msgstr "Remaining Enhancement Times:" + +#: ..\..\WeaponPlus.cs:53 +msgid "输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属" +msgstr "Enter /clearallplayersplus to clear all enhanced items for all players in the database. Admin only." + +#: ..\..\WeaponPlus.cs:415 +msgid "输入 /clearallplayersplus 将数据库中强化物品全部清理" +msgstr "Enter /clearallplayersplus to clear all enhanced items in the database." + +#: ..\..\WeaponPlus.cs:49 +msgid "输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料" +msgstr "Enter /plus to view the current weapon's level status and the materials needed to reach the next level." + +#: ..\..\WeaponPlus.cs:127 +msgid "" +"输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料\n" +"输入 /plus load 将当前身上所有已升级的武器重新获取\n" +"输入 /plus 升级/降级当前武器的伤害等级\n" +"输入 /plus 升级/降级当前武器或射弹的体积等级 ±5%\n" +"输入 /plus 升级/降级当前武器的击退等级 ±5%\n" +"输入 /plus 升级/降级当前武器的使用速度等级\n" +"输入 /plus 升级/降级当前武器的射弹飞行速度等级,影响鞭类武器范围±5%\n" +"输入 /plus clear 清理当前武器的所有等级,可以回收一点消耗物\n" +"输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属" +msgstr "" +"Enter /plus to view the current weapon's level status and the materials needed to reach the next level.\n" +"Enter /plus load to re-obtain all currently upgraded weapons on your person.\n" +"Enter /plus to upgrade/downgrade the current weapon's damage level.\n" +"Enter /plus to upgrade/downgrade the current weapon or projectile's size level by ±5%.\n" +"Enter /plus to upgrade/downgrade the current weapon's knockback level by ±5%.\n" +"Enter /plus to upgrade/downgrade the current weapon's use speed level.\n" +"Enter /plus to upgrade/downgrade the current weapon's projectile speed level, affecting the range of whip-like weapons by ±5%.\n" +"Enter /plus clear to clear all levels of the current weapon, allowing for some material recovery.\n" +"Enter /clearallplayersplus to clear all enhanced items for all players in the database. Admin only." + +#: ..\..\WeaponPlus.cs:187 +#: ..\..\WeaponPlus.cs:197 +#: ..\..\WeaponPlus.cs:217 +#: ..\..\WeaponPlus.cs:376 +#: ..\..\WeaponPlus.cs:381 +msgid "输入 /plus help 查看 plus 系列指令帮助" +msgstr "Enter /plus help to view the help for the plus series of commands." + +#: ..\..\WeaponPlus.cs:406 +msgid "所有玩家的所有强化数据全部清理成功!" +msgstr "All enhancement data for all players has been successfully cleared!" + +#: ..\..\WeaponPlus.cs:183 +msgid "完全重置成功!回收:" +msgstr "Complete reset successful! Recovered:" + +#: ..\..\WItem.cs:135 +msgid "未升级过,无任何加成" +msgstr "Not upgraded, no bonuses." + +#: ..\..\WItem.cs:207 +msgid "已达到最大武器总等级" +msgstr "Maximum total weapon level reached." + +#: ..\..\WeaponPlus.cs:146 +msgid "SSC 未开启" +msgstr "SSC is not enabled." \ No newline at end of file diff --git a/src/Economics.WeaponPlus/i18n/template.pot b/src/Economics.WeaponPlus/i18n/template.pot new file mode 100644 index 000000000..b2b4e3199 --- /dev/null +++ b/src/Economics.WeaponPlus/i18n/template.pot @@ -0,0 +1,245 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.WeaponPlus\n" +"POT-Creation-Date: 2024-09-30 17:35:21+0800\n" +"PO-Revision-Date: 2024-09-30 17:35:22+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" +#: ..\..\WeaponPlus.cs:76 +msgid "[武器强化EC版]重新加载配置完毕。" +msgstr "[Weapon Enhancement EC Edition] Configuration reloaded." + +#: ..\..\WeaponPlus.cs:246 +#: ..\..\WeaponPlus.cs:277 +#: ..\..\WeaponPlus.cs:308 +#: ..\..\WeaponPlus.cs:339 +#: ..\..\WeaponPlus.cs:370 +#, csharp-format +msgid "[i:{0}] 降级成功 共计消耗:{1}\n{2}" +msgstr "[i:{0}] Downgrade successful, total consumed: {1}\n{2}" + +#: ..\..\WeaponPlus.cs:233 +#: ..\..\WeaponPlus.cs:264 +#: ..\..\WeaponPlus.cs:295 +#: ..\..\WeaponPlus.cs:326 +#: ..\..\WeaponPlus.cs:357 +#, csharp-format +msgid "[i:{0}] 升级成功 共计消耗:{1}\n{2}" +msgstr "[i:{0}] Upgrade successful, total consumed: {1}\n{2}" + +#: ..\..\WeaponPlus.cs:159 +#, csharp-format +msgid "{0}[i:{1}] {2}{3}\n{4}" +msgstr "{0}[i:{1}] {2}{3}\n{4}" + +#: ..\..\WeaponPlus.cs:582 +msgid "不足!" +msgstr "Insufficient!" + +#: ..\..\WItem.cs:115 +msgid "次" +msgstr "times" + +#: ..\..\WItem.cs:151 +msgid "大小" +msgstr "Size" + +#: ..\..\WItem.cs:120 +msgid "大小等级:" +msgstr "Size Level:" + +#: ..\..\WItem.cs:183 +msgid "大小升至下一级需:" +msgstr "To upgrade to the next size level, you need:" + +#: ..\..\WeaponPlus.cs:573 +msgid "当前该类型升级已达到上限,无法升级" +msgstr "The current type has reached its upgrade limit and cannot be upgraded further." + +#: ..\..\WeaponPlus.cs:579 +msgid "当前剩余:" +msgstr "Remaining:" + +#: ..\..\WeaponPlus.cs:175 +msgid "当前武器没有任何等级,不用回炉重做" +msgstr "The current weapon has no levels and does not need to be reworked." + +#: ..\..\WItem.cs:178 +#: ..\..\WItem.cs:184 +#: ..\..\WItem.cs:190 +#: ..\..\WItem.cs:196 +#: ..\..\WItem.cs:202 +msgid "当前已满级" +msgstr "Currently at maximum level." + +#: ..\..\WItem.cs:146 +msgid "当前状态:" +msgstr "Current Status:" + +#: ..\..\WItem.cs:109 +msgid "当前总等级:" +msgstr "Current Total Level:" + +#: ..\..\WeaponPlus.cs:239 +#: ..\..\WeaponPlus.cs:270 +#: ..\..\WeaponPlus.cs:301 +#: ..\..\WeaponPlus.cs:332 +#: ..\..\WeaponPlus.cs:363 +msgid "等级过低" +msgstr "Level too low" + +#: ..\..\WeaponPlus.cs:141 +msgid "该指令必须在游戏内使用" +msgstr "This command must be used in-game." + +#: ..\..\WItem.cs:164 +msgid "攻速" +msgstr "Attack Speed" + +#: ..\..\WItem.cs:126 +msgid "攻速等级:" +msgstr "Attack Speed Level:" + +#: ..\..\WItem.cs:195 +msgid "攻速升至下一级需:" +msgstr "To upgrade to the next attack speed level, you need:" + +#: ..\..\WItem.cs:155 +msgid "击退" +msgstr "Knockback" + +#: ..\..\WItem.cs:123 +msgid "击退等级:" +msgstr "Knockback Level:" + +#: ..\..\WItem.cs:189 +msgid "击退升至下一级需:" +msgstr "To upgrade to the next knockback level, you need:" + +#: ..\..\WeaponPlus.cs:126 +msgid "" +"几乎所有的武器和弹药都能强化,但是强化结果会无效化词缀,作为补偿,前三次强化价格降低 80%\n" +"强化绑定一类武器,即同 ID 武器,而不是单独的一个物品。强化与人物绑定,不可分享,扔出即失效,只在背包,猪猪等个人私有库存内起效。\n" +"当你不小心扔出或其他原因导致强化无效,请使用指令 /plus load 来重新获取。每次重新获取都会从当前背包中查找并强制拿出来重给,请注意捡取避免丢失。\n" +"重新获取时重给的物品是单独给予,不会被其他玩家捡走,每次进入服务器时会默认强制重新获取。\n" +"第一个物品栏是强化栏,指令只对该物品栏内的物品起效,强化完即可将武器拿走换至其他栏位,功能类似于哥布林的重铸槽。" +msgstr "" +"Almost all weapons and ammunition can be enhanced, but the enhancement will invalidate affixes. As compensation, the cost of the first three enhancements is reduced by 80%.\n" +"Enhancement is bound to a type of weapon, i.e., weapons with the same ID, not individual items. Enhancements are character-bound, non-transferable, and become invalid if thrown out. They only work within personal inventories such as the backpack or piggy bank.\n" +"If you accidentally throw out an item or for other reasons the enhancement becomes invalid, use the command /plus load to retrieve it. Each retrieval will forcibly take the item from your current inventory, so please pick it up to avoid losing it.\n" +"When retrieving, the item is given separately and cannot be picked up by other players. The system will force a retrieval every time you enter the server.\n" +"The first slot in the inventory is the enhancement slot, and commands only apply to items in this slot. Once enhanced, the weapon can be moved to another slot, similar to the Goblin Tinkerer's reforging function." + +#: ..\..\WeaponPlus.cs:579 +msgid "扣除:" +msgstr "Deducted:" + +#: ..\..\WeaponPlus.cs:169 +msgid "您当前的升级武器已重新读取" +msgstr "Your currently upgraded weapon has been reloaded." + +#: ..\..\WeaponPlus.cs:410 +msgid "强化数据清理失败!!!" +msgstr "Enhancement data cleanup failed!!!" + +#: ..\..\WeaponPlus.cs:202 +msgid "请输入正整数" +msgstr "Please enter a positive integer." + +#: ..\..\WeaponPlus.cs:155 +msgid "请在第一个物品栏内放入武器而不是其他什么东西或空" +msgstr "Please place a weapon in the first inventory slot, not something else or leave it empty." + +#: ..\..\WItem.cs:147 +msgid "伤害" +msgstr "Damage" + +#: ..\..\WItem.cs:117 +msgid "伤害等级:" +msgstr "Damage Level:" + +#: ..\..\WItem.cs:177 +msgid "伤害升至下一级需:" +msgstr "To upgrade to the next damage level, you need:" + +#: ..\..\WItem.cs:168 +msgid "射弹飞速" +msgstr "Projectile Speed" + +#: ..\..\WItem.cs:201 +msgid "射弹飞速升至下一级需:" +msgstr "To upgrade to the next projectile speed level, you need:" + +#: ..\..\WItem.cs:129 +msgid "射弹飞行速度等级:" +msgstr "Projectile Speed Level:" + +#: ..\..\WItem.cs:112 +msgid "剩余强化次数:" +msgstr "Remaining Enhancement Times:" + +#: ..\..\WeaponPlus.cs:53 +msgid "输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属" +msgstr "Enter /clearallplayersplus to clear all enhanced items for all players in the database. Admin only." + +#: ..\..\WeaponPlus.cs:415 +msgid "输入 /clearallplayersplus 将数据库中强化物品全部清理" +msgstr "Enter /clearallplayersplus to clear all enhanced items in the database." + +#: ..\..\WeaponPlus.cs:49 +msgid "输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料" +msgstr "Enter /plus to view the current weapon's level status and the materials needed to reach the next level." + +#: ..\..\WeaponPlus.cs:127 +msgid "" +"输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料\n" +"输入 /plus load 将当前身上所有已升级的武器重新获取\n" +"输入 /plus 升级/降级当前武器的伤害等级\n" +"输入 /plus 升级/降级当前武器或射弹的体积等级 ±5%\n" +"输入 /plus 升级/降级当前武器的击退等级 ±5%\n" +"输入 /plus 升级/降级当前武器的使用速度等级\n" +"输入 /plus 升级/降级当前武器的射弹飞行速度等级,影响鞭类武器范围±5%\n" +"输入 /plus clear 清理当前武器的所有等级,可以回收一点消耗物\n" +"输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属" +msgstr "" +"Enter /plus to view the current weapon's level status and the materials needed to reach the next level.\n" +"Enter /plus load to re-obtain all currently upgraded weapons on your person.\n" +"Enter /plus to upgrade/downgrade the current weapon's damage level.\n" +"Enter /plus to upgrade/downgrade the current weapon or projectile's size level by ±5%.\n" +"Enter /plus to upgrade/downgrade the current weapon's knockback level by ±5%.\n" +"Enter /plus to upgrade/downgrade the current weapon's use speed level.\n" +"Enter /plus to upgrade/downgrade the current weapon's projectile speed level, affecting the range of whip-like weapons by ±5%.\n" +"Enter /plus clear to clear all levels of the current weapon, allowing for some material recovery.\n" +"Enter /clearallplayersplus to clear all enhanced items for all players in the database. Admin only." + +#: ..\..\WeaponPlus.cs:187 +#: ..\..\WeaponPlus.cs:197 +#: ..\..\WeaponPlus.cs:217 +#: ..\..\WeaponPlus.cs:376 +#: ..\..\WeaponPlus.cs:381 +msgid "输入 /plus help 查看 plus 系列指令帮助" +msgstr "Enter /plus help to view the help for the plus series of commands." + +#: ..\..\WeaponPlus.cs:406 +msgid "所有玩家的所有强化数据全部清理成功!" +msgstr "All enhancement data for all players has been successfully cleared!" + +#: ..\..\WeaponPlus.cs:183 +msgid "完全重置成功!回收:" +msgstr "Complete reset successful! Recovered:" + +#: ..\..\WItem.cs:135 +msgid "未升级过,无任何加成" +msgstr "Not upgraded, no bonuses." + +#: ..\..\WItem.cs:207 +msgid "已达到最大武器总等级" +msgstr "Maximum total weapon level reached." + +#: ..\..\WeaponPlus.cs:146 +msgid "SSC 未开启" +msgstr "SSC is not enabled." \ No newline at end of file diff --git a/src/EconomicsAPI/i18n/en-US.po b/src/EconomicsAPI/i18n/en-US.po new file mode 100644 index 000000000..fa1ff9a65 --- /dev/null +++ b/src/EconomicsAPI/i18n/en-US.po @@ -0,0 +1,126 @@ +msgid "" +msgstr "" +"Project-Id-Version: EconomicsAPI\n" +"POT-Creation-Date: 2024-09-30 15:30:04+0800\n" +"PO-Revision-Date: 2024-09-30 15:30:05+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Economics.cs:125 +#, csharp-format +msgid "{0}数量: {1}" +msgstr "{0} quantity: {1}" + +#: ..\..\Command.cs:93 +msgid "/bank add [用户] [数量]" +msgstr "/bank add [user] [amount]" + +#: ..\..\Command.cs:96 +msgid "/bank clear [用户]" +msgstr "/bank clear [user]" + +#: ..\..\Command.cs:94 +msgid "/bank del [用户] [数量]" +msgstr "/bank del [user] [amount]" + +#: ..\..\Command.cs:95 +msgid "/bank pay [用户] [数量]" +msgstr "/bank pay [user] [amount]" + +#: ..\..\Command.cs:97 +msgid "/bank reset" +msgstr "/bank reset" + +#: ..\..\Command.cs:49 +#, csharp-format +msgid "成功删除`{0}`的 {1} 个{2}" +msgstr "Successfully deleted {1} {2} from `{0}`" + +#: ..\..\Command.cs:42 +#, csharp-format +msgid "成功为`{0}`添加 {1} 个{2}" +msgstr "Successfully added {1} {2} to `{0}`" + +#: ..\..\Command.cs:65 +#, csharp-format +msgid "成功转账给`{0}` {1} 个{2}" +msgstr "Successfully transferred {1} {2} to `{0}`" + +#: ..\..\Economics.cs:129 +#, csharp-format +msgid "当前魔力: {0}/{1}" +msgstr "Current mana: {0}/{1}" + +#: ..\..\Economics.cs:128 +#, csharp-format +msgid "当前生命: {0}/{1}" +msgstr "Current health: {0}/{1}" + +#: ..\..\Economics.cs:123 +#, csharp-format +msgid "当前延迟: {0:F1}ms" +msgstr "Current latency: {0:F1}ms" + +#: ..\..\Command.cs:70 +#, csharp-format +msgid "你的{0}不足,无法转账!" +msgstr "You do not have enough {0} to transfer!" + +#: ..\..\Command.cs:26 +msgid "你没有权限执行此命令!" +msgstr "You do not have permission to execute this command!" + +#: ..\..\Command.cs:59 +msgid "你无权执行此命令!" +msgstr "You are not authorized to execute this command!" + +#: ..\..\Economics.cs:138 +#, csharp-format +msgid "你因死亡掉落{0:F0}个{1}!" +msgstr "You dropped {0:F0} {1} upon death!" + +#: ..\..\Command.cs:34 +msgid "请输入一个有效数值!" +msgstr "Please enter a valid number!" + +#: ..\..\Economics.cs:127 +#, csharp-format +msgid "世界名称: {0}" +msgstr "World name: {0}" + +#: ..\..\Economics.cs:124 +#, csharp-format +msgid "玩家名称: {0}" +msgstr "Player name: {0}" + +#: ..\..\Command.cs:83 +#, csharp-format +msgid "已清空`{0}`的所有{1}" +msgstr "All {1} of `{0}` have been cleared" + +#: ..\..\Command.cs:52 +#, csharp-format +msgid "用户`{0}`仅有{1}个{2}" +msgstr "User `{0}` only has {1} {2}" + +#: ..\..\Command.cs:76 +#: ..\..\Command.cs:101 +msgid "语法错误,请输入/bank help查看正确语法" +msgstr "Syntax error, please enter /bank help to view the correct syntax" + +#: ..\..\Economics.cs:126 +#, csharp-format +msgid "在线人数: {0}/{1}" +msgstr "Online users: {0}/{1}" + +#: ..\..\Command.cs:92 +msgid "bank 指令" +msgstr "bank command" + +#: ..\..\Command.cs:88 +msgid "Economics 已重置" +msgstr "Economics has been reset" \ No newline at end of file From 03aacd71e6a24f415be0d5deda05a09a566e676b Mon Sep 17 00:00:00 2001 From: Controllerdestiny <523321293@qq.co> Date: Mon, 30 Sep 2024 18:36:03 +0800 Subject: [PATCH 7/7] =?UTF-8?q?po=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Economics.Deal/i18n/en-US.po | 108 +++++++++++++ src/Economics.RPG/i18n/en-US.po | 89 +++++++++++ src/Economics.Regain/i18n/en-US.po | 62 ++++++++ src/Economics.Shop/i18n/en-US.po | 77 +++++++++ src/Economics.Skill/i18n/en-US.po | 156 ++++++++++++++++++ src/Economics.Task/i18n/en-US.po | 174 +++++++++++++++++++++ src/Economics.WeaponPlus/i18n/en-US.po | 78 ++++----- src/Economics.WeaponPlus/i18n/template.pot | 151 +++++++++--------- 8 files changed, 778 insertions(+), 117 deletions(-) create mode 100644 src/Economics.Deal/i18n/en-US.po create mode 100644 src/Economics.RPG/i18n/en-US.po create mode 100644 src/Economics.Regain/i18n/en-US.po create mode 100644 src/Economics.Shop/i18n/en-US.po create mode 100644 src/Economics.Skill/i18n/en-US.po create mode 100644 src/Economics.Task/i18n/en-US.po diff --git a/src/Economics.Deal/i18n/en-US.po b/src/Economics.Deal/i18n/en-US.po new file mode 100644 index 000000000..162cb9fb1 --- /dev/null +++ b/src/Economics.Deal/i18n/en-US.po @@ -0,0 +1,108 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.Deal\n" +"POT-Creation-Date: 2024-09-30 15:29:47+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:48+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Command.cs:58 +msgid "{0}:{1} 发布者:{2} 价格{3}" +msgstr "{0}: {1} publisher: {2} price: {3}" + +#: ..\..\Command.cs:118 +msgid "/deal buy [ID]" +msgstr "/deal buy [ID]" + +#: ..\..\Command.cs:120 +msgid "/deal list" +msgstr "/deal buy list" + +#: ..\..\Command.cs:117 +msgid "/deal push [价格]" +msgstr "/deal push [price]" + +#: ..\..\Command.cs:119 +msgid "/deal recall [ID]" +msgstr "/deal recall [ID]" + +#: ..\..\Command.cs:78 +#: ..\..\Command.cs:102 +msgid "不存在此交易!" +msgstr "This transaction does not exist!" + +#: ..\..\Command.cs:110 +msgid "撤回成功!" +msgstr "recall successfuly!" + +#: ..\..\Command.cs:28 +msgid "当前没有交易物品" +msgstr "There are no items currently for trade." + +#: ..\..\Command.cs:47 +msgid "发布成功" +msgstr "Post successful." + +#: ..\..\Command.cs:107 +msgid "该交易不是你发布的无法撤回!" +msgstr "This transaction was not initiated by you and cannot be retracted!" + +#: ..\..\Command.cs:88 +msgid "交易成功!" +msgstr "Transaction successful!" + +#: ..\..\Command.cs:29 +msgid "交易列表 ({0}/{1}):" +msgstr "Transaction List ({0}/{1}):" + +#: ..\..\Command.cs:131 +msgid "交易已重置!" +msgstr "Transaction has been reset!" + +#: ..\..\Command.cs:83 +#, csharp-format +msgid "你的{0}不足,无法购买!" +msgstr "You do not have enough {0}, unable to make the purchase!" + +#: ..\..\Command.cs:38 +msgid "你手持物品为空!" +msgstr "You have no items in hand!" + +#: ..\..\Command.cs:126 +msgid "你无权使用此命令!" +msgstr "You do not have permission to use this command!" + +#: ..\..\Command.cs:43 +msgid "请输入一个正确的价格!" +msgstr "Please enter a valid price!" + +#: ..\..\Command.cs:72 +#: ..\..\Command.cs:96 +msgid "请输入一个正确的ID" +msgstr "Please enter a valid ID." + +#: ..\..\Command.cs:30 +msgid "输入 {0}deal list {{0}} 查看更多" +msgstr "Type {0}deal list {{0}} to see more" + +#: ..\..\Command.cs:135 +msgid "输入/deal help 查看命令使用方法" +msgstr "Type /deal help to view command usage instructions." + +#: ..\..\Command.cs:111 +msgid "玩家{0}撤回了发布的物品{1}!" +msgstr "Player {0} has retracted the posted item {1}!" + +#: ..\..\Command.cs:89 +msgid "玩家{0}购买了{1}发布的物品{2}!" +msgstr "Player {0} has purchased the item {2} posted by {1}!" + +#: ..\..\Command.cs:48 +#, csharp-format +msgid "玩家`{0}`发布了一个交易物品: [i/s{1}:{2}] 价格: {3}" +msgstr "Player `{0}` has posted a trade item: [i/s{1}:{2}] Price: {3}" + diff --git a/src/Economics.RPG/i18n/en-US.po b/src/Economics.RPG/i18n/en-US.po new file mode 100644 index 000000000..e01a8217a --- /dev/null +++ b/src/Economics.RPG/i18n/en-US.po @@ -0,0 +1,89 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.RPG\n" +"POT-Creation-Date: 2024-09-30 15:29:53+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:53+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Setting\Config.cs:104 +#, csharp-format +msgid "{0} 与 {1} 之间循环引用" +msgstr "Circular reference between {0} and {1}" + +#: ..\..\Command.cs:54 +#, csharp-format +msgid "/rank {0}({1})" +msgstr "/rank {0}({1})" + +#: ..\..\Command.cs:33 +#: ..\..\Command.cs:63 +#, csharp-format +msgid "必须满足进度限制:{0}" +msgstr "Must meet progress restriction: {0}" + +#: ..\..\Command.cs:38 +#: ..\..\Command.cs:68 +#, csharp-format +msgid "成功升级至 {0}!" +msgstr "Successfully upgraded to {0}!" + +#: ..\..\RPG.cs:86 +#, csharp-format +msgid "当前职业: {0}" +msgstr "Current profession: {0}" + +#: ..\..\Command.cs:28 +#, csharp-format +msgid "等级 {0} 不存在! " +msgstr "Level {0} does not exist!" + +#: ..\..\Setting\Config.cs:35 +#, csharp-format +msgid "等级 {0} 空引用等级 {1}" +msgstr "Level {0} is an empty reference to level {1}" + +#: ..\..\Command.cs:17 +#: ..\..\Command.cs:90 +msgid "你必须登陆才能使用此命令!" +msgstr "You must be logged in to use this command!" + +#: ..\..\Command.cs:102 +msgid "你因重置等级被踢出!" +msgstr "You have been kicked out due to a level reset!" + +#: ..\..\Command.cs:94 +msgid "您已成功重置等级!" +msgstr "You have successfully reset your level!" + +#: ..\..\Command.cs:51 +msgid "请选择一个升级:" +msgstr "Please choose an upgrade:" + +#: ..\..\Command.cs:46 +#: ..\..\Command.cs:76 +#, csharp-format +msgid "升级所需 {0},你当前{1}仅有{2}!" +msgstr "Upgrade required {0}, you currently only have {2} of {1}!" + +#: ..\..\RPG.cs:87 +#, csharp-format +msgid "升级职业: {0}" +msgstr "Upgrade profession: {0}" + +#: ..\..\Command.cs:112 +msgid "玩家等级信息重置成功!" +msgstr "Player level information has been successfully reset!" + +#: ..\..\Command.cs:81 +msgid "已经满级了,无法继续升级!" +msgstr "You have reached the maximum level and cannot upgrade any further!" + +#: ..\..\Command.cs:116 +msgid "语法错误,正确语法:" +msgstr "Grammatical errors, correct grammar:" + diff --git a/src/Economics.Regain/i18n/en-US.po b/src/Economics.Regain/i18n/en-US.po new file mode 100644 index 000000000..756bbf577 --- /dev/null +++ b/src/Economics.Regain/i18n/en-US.po @@ -0,0 +1,62 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.Regain\n" +"POT-Creation-Date: 2024-09-30 15:29:51+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:52+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Regain..cs:138 +msgid "/regain" +msgstr "/regain" + +#: ..\..\Regain..cs:139 +msgid "/regain [数量]" +msgstr "/regain [num]" + +#: ..\..\Regain..cs:140 +msgid "/regain list" +msgstr "/regain list" + +#: ..\..\Regain..cs:137 +msgid "/regain语法" +msgstr "/regain Grammar" + +#: ..\..\Regain..cs:133 +#, csharp-format +msgid "成功兑换{0}个{1}!" +msgstr "Successfully exchanged {0} {1}s!" + +#: ..\..\Regain..cs:68 +msgid "当前可回收物品" +msgstr "Current recyclable items" + +#: ..\..\Regain..cs:78 +msgid "该物品暂时无法回收!" +msgstr "This item is temporarily not recyclable!" + +#: ..\..\Regain..cs:69 +msgid "回收物品列表 ({0}/{1}):" +msgstr "Recyclable Item List ({0}/{1}):" + +#: ..\..\Regain..cs:90 +msgid "你必须登录游戏使用此命令!" +msgstr "You must be logged into the game to use this command!" + +#: ..\..\Regain..cs:83 +msgid "请手持一个有效物品!" +msgstr "Please hold a valid item!" + +#: ..\..\Regain..cs:70 +msgid "输入 {0}regain list {{0}} 查看更多" +msgstr "Type {0}regain list to view more" + +#: ..\..\Regain..cs:121 +#, csharp-format +msgid "值{0}无效!" +msgstr "Value {0} is invalid!" + diff --git a/src/Economics.Shop/i18n/en-US.po b/src/Economics.Shop/i18n/en-US.po new file mode 100644 index 000000000..351580f28 --- /dev/null +++ b/src/Economics.Shop/i18n/en-US.po @@ -0,0 +1,77 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.Shop\n" +"POT-Creation-Date: 2024-09-30 15:29:54+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:55+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Command.cs:40 +#, csharp-format +msgid "{0}:[{1}] {2} 价格:{3}" +msgstr "{0}:[{1}] {2} price:{3}" + +#: ..\..\Command.cs:94 +msgid "/shop buy [序号] [数量]" +msgstr "/shop buy [index] [num]" + +#: ..\..\Command.cs:95 +msgid "/shop list [序号]" +msgstr "/shop list [index]" + +#: ..\..\Command.cs:61 +msgid "此商品不存在,请检查序号后重新输入!" +msgstr "This item does not exist, please check the serial number and try again!" + +#: ..\..\Command.cs:28 +msgid "当前商店没有商品" +msgstr "Currently, there are no items in the store." + +#: ..\..\Command.cs:90 +msgid "购买成功!" +msgstr "Purchase successful!" + +#: ..\..\Command.cs:71 +#, csharp-format +msgid "购买此商品需达到以下等级之一: {0}" +msgstr "To purchase this item, you must reach one of the following levels: {0}" + +#: ..\..\Command.cs:66 +#, csharp-format +msgid "购买此商品需满足进度条件: {0}" +msgstr "To purchase this item, you must meet the following progress condition: {0}" + +#: ..\..\Command.cs:81 +#, csharp-format +msgid "你的{0}不足!" +msgstr "You do not have enough {0}!" + +#: ..\..\Command.cs:55 +msgid "你输入的购买数量不正确!" +msgstr "The purchase quantity you entered is incorrect!" + +#: ..\..\Command.cs:76 +#, csharp-format +msgid "请满足物品条件: {0}" +msgstr "Please meet the item condition: {0}" + +#: ..\..\Command.cs:49 +msgid "请输入正确的序号!" +msgstr "Please enter the correct serial number!" + +#: ..\..\Command.cs:29 +msgid "商品列表 ({0}/{1}):" +msgstr "Item List ({0}/{1}):" + +#: ..\..\Command.cs:30 +msgid "输入 {0}shop list {{0}} 查看更多" +msgstr "Type {0}shop list {{0}} to see more" + +#: ..\..\Command.cs:99 +msgid "输入/shop help 查看指令帮助" +msgstr "Type /shop help to view command assistance." + diff --git a/src/Economics.Skill/i18n/en-US.po b/src/Economics.Skill/i18n/en-US.po new file mode 100644 index 000000000..fca17ad4b --- /dev/null +++ b/src/Economics.Skill/i18n/en-US.po @@ -0,0 +1,156 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.Skill\n" +"POT-Creation-Date: 2024-09-30 15:29:57+0800\n" +"PO-Revision-Date: 2024-09-30 15:29:58+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Command.cs:43 +#, csharp-format +msgid "{0}. {1} 价格 {2}" +msgstr "{0}. {1} price {2}" + +#: ..\..\Command.cs:161 +msgid "/skill buy [技能ID]" +msgstr "/skill buy [ID]" + +#: ..\..\Command.cs:165 +msgid "/skill clear" +msgstr "/skill clear" + +#: ..\..\Command.cs:162 +msgid "/skill del [技能ID]" +msgstr "/skill del [ID]" + +#: ..\..\Command.cs:164 +msgid "/skill delall" +msgstr "/skill delall" + +#: ..\..\Command.cs:163 +msgid "/skill list [页码]" +msgstr "/skill list [page number]" + +#: ..\..\Command.cs:166 +msgid "/skill reset" +msgstr "/skill reset" + +#: ..\..\Skill.cs:140 +#, csharp-format +msgid "绑定技能: {0}" +msgstr "Bind skill: {0}" + +#: ..\..\Utils.cs:52 +msgid "被动类型技能已超过最大绑定数量!" +msgstr "The maximum number of passive skills has been exceeded!" + +#: ..\..\Command.cs:101 +msgid "查询成功!" +msgstr "Query successful!" + +#: ..\..\Command.cs:144 +msgid "成功移除了绑定的所有技能!" +msgstr "All bound skills have been successfully removed!" + +#: ..\..\Command.cs:129 +msgid "成功移除了手持武器的所有技能!" +msgstr "All skills bound to the held weapon have been successfully removed!" + +#: ..\..\Utils.cs:41 +msgid "此技能全服唯一已经有其他人绑定了此技能!" +msgstr "This skill is unique across the server and has already been bound by someone else!" + +#: ..\..\Utils.cs:36 +msgid "此技能是唯一的不能重复绑定!" +msgstr "This skill is unique and cannot be bound more than once!" + +#: ..\..\Utils.cs:50 +msgid "此武器已超过规定的最大绑定数量!" +msgstr "This weapon has exceeded the maximum allowed number of bindings!" + +#: ..\..\Command.cs:26 +msgid "当前技能列表空空如也" +msgstr "The current skill list is empty." + +#: ..\..\Utils.cs:30 +#, csharp-format +msgid "当前进度无法购买此技能,限制进度:{0}" +msgstr "You cannot purchase this skill with your current progress, limited to {0}." + +#: ..\..\Command.cs:68 +msgid "购买成功,技能已绑定!" +msgstr "Purchase successful, skill has been bound!" + +#: ..\..\Command.cs:27 +msgid "技能列表 ({0}/{1}):" +msgstr "skill list ({0}/{1}):" + +#: ..\..\Utils.cs:17 +#, csharp-format +msgid "技能序号{0} 不存在!" +msgstr "Skill number {0} does not exist!" + +#: ..\..\Command.cs:86 +msgid "技能移除成功!" +msgstr "Skill removal successful!" + +#: ..\..\Utils.cs:46 +msgid "技能已超过规定的最大绑定数量!" +msgstr "The skill has exceeded the maximum allowed number of bindings!" + +#: ..\..\Command.cs:155 +msgid "技能重置成功!" +msgstr "Skill reset successful!" + +#: ..\..\Command.cs:34 +msgid "你必须登陆游戏才能购买技能!" +msgstr "You must log in to the game to purchase skills!" + +#: ..\..\Command.cs:98 +#: ..\..\Command.cs:137 +msgid "你并未绑定技能!" +msgstr "You have not bound any skills!" + +#: ..\..\Utils.cs:25 +#, csharp-format +msgid "你当前等级无法购买此技能,限制等级:{0}" +msgstr "You cannot purchase this skill with your current level, limited to {0}." + +#: ..\..\Command.cs:64 +#, csharp-format +msgid "你的{0} 不足购买此技能!" +msgstr "You do not have enough {0} to purchase this skill!" + +#: ..\..\Command.cs:151 +msgid "你没有权限执行此命令!" +msgstr "You do not have permission to execute this command!" + +#: ..\..\Command.cs:82 +msgid "你未绑定此技能,无需删除!" +msgstr "You have not bound this skill, no need to delete!" + +#: ..\..\Command.cs:54 +msgid "请输入一个正确的序号!" +msgstr "Please enter a correct serial number!" + +#: ..\..\Command.cs:122 +msgid "手持物品并未绑定技能!" +msgstr "The item you are holding has not bound any skills!" + +#: ..\..\Command.cs:28 +msgid "输入 {0}skill list {{0}} 查看更多" +msgstr "Type {0}skill list {{0}} to see more" + +#: ..\..\Command.cs:110 +#, csharp-format +msgid "无法溯源的技能序号: {0}" +msgstr "" + +#: ..\..\Utils.cs:20 +msgid "这是一个主动技能,请手持一个有效武器!" +msgstr "Unable to trace the skill serial number: {0}" + diff --git a/src/Economics.Task/i18n/en-US.po b/src/Economics.Task/i18n/en-US.po new file mode 100644 index 000000000..ec077f943 --- /dev/null +++ b/src/Economics.Task/i18n/en-US.po @@ -0,0 +1,174 @@ +msgid "" +msgstr "" +"Project-Id-Version: Economics.Task\n" +"POT-Creation-Date: 2024-09-30 15:29:59+0800\n" +"PO-Revision-Date: 2024-09-30 15:30:00+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: GetText.NET Extractor\n" + +#: ..\..\Utils.cs:83 +msgid "(未完成)" +msgstr "(Not completed)" + +#: ..\..\Utils.cs:83 +msgid "(已完成)" +msgstr "(Completed)" + +#: ..\..\Command.cs:49 +#, csharp-format +msgid "{0}介绍: {1}" +msgstr "{0} Introduction: {1}" + +#: ..\..\Utils.cs:80 +#, csharp-format +msgid "{0}完成进度" +msgstr "{0} Completion Progress" + +#: ..\..\Command.cs:173 +msgid "/task del 移除任务" +msgstr "/task del Remove task" + +#: ..\..\Command.cs:169 +msgid "/task info <序号> 查看任务详情" +msgstr "/task info Check task details" + +#: ..\..\Command.cs:168 +msgid "/task list 查看任务列表" +msgstr "/task list Check task list" + +#: ..\..\Command.cs:170 +msgid "/task pick <序号> 接取一个任务" +msgstr "/task pick Pick up a task" + +#: ..\..\Command.cs:172 +msgid "/task pr 提交任务" +msgstr "/task pr Submit task" + +#: ..\..\Command.cs:171 +msgid "/task prog 查看任务完成进度" +msgstr "/task prog Check task completion progress" + +#: ..\..\Command.cs:174 +msgid "/task reset 清空完成任务" +msgstr "/task reset Clear completed tasks" + +#: ..\..\Command.cs:77 +#, csharp-format +msgid "必须完成任务 {0} 才能接此任务" +msgstr "Must complete task {0} to pick up this task" + +#: ..\..\Command.cs:45 +msgid "不存在此任务!" +msgstr "Task does not exist!" + +#: ..\..\Plugin.cs:84 +msgid "查询成功" +msgstr "Query successful" + +#: ..\..\Command.cs:72 +msgid "此任务你已经完成过了!" +msgstr "You have already completed this task!" + +#: ..\..\Command.cs:54 +msgid "错误的技能序号!" +msgstr "Incorrect skill number!" + +#: ..\..\Command.cs:27 +msgid "当前没有任务" +msgstr "No current tasks" + +#: ..\..\Plugin.cs:79 +msgid "非法的任务ID" +msgstr "Illegal task ID" + +#: ..\..\Utils.cs:89 +#, csharp-format +msgid "击杀怪物 {0} ({1}/{2})" +msgstr "Kill monster {0} ({1}/{2})" + +#: ..\..\Plugin.cs:74 +msgid "没有检测到任务ID" +msgstr "No task ID detected" + +#: ..\..\Plugin.cs:69 +msgid "没有检测到玩家名称" +msgstr "No player name detected" + +#: ..\..\Command.cs:145 +msgid "你当前的任务还没有完成!" +msgstr "Your current task is not completed!" + +#: ..\..\Command.cs:150 +msgid "你还没有接一个任务!" +msgstr "You haven't picked up a task yet!" + +#: ..\..\Command.cs:117 +msgid "你没有接取一个任务!" +msgstr "You have not picked up a task!" + +#: ..\..\Command.cs:157 +msgid "你没有使用该指令的权限!" +msgstr "You do not have permission to use this command!" + +#: ..\..\Command.cs:61 +msgid "您还有一个任务正在进行,不能接多个任务!" +msgstr "You have an ongoing task, cannot pick up multiple tasks!" + +#: ..\..\Command.cs:99 +msgid "任务不存在!" +msgstr "Task does not exist!" + +#: ..\..\Command.cs:93 +msgid "任务接取成功!" +msgstr "Task picked up successfully!" + +#: ..\..\Command.cs:95 +#, csharp-format +msgid "任务介绍:{0}" +msgstr "Task introduction:{0}" + +#: ..\..\Command.cs:28 +msgid "任务列表 ({0}/{1}):" +msgstr "Task list ({0}/{1}):" + +#: ..\..\Command.cs:94 +#, csharp-format +msgid "任务名称:{0}" +msgstr "Task name:{0}" + +#: ..\..\Command.cs:29 +msgid "输入 {0}task list {{0}} 查看更多" +msgstr "Enter {0}task list {0} to view more" + +#: ..\..\Command.cs:104 +msgid "输入了一个错误的序号!" +msgstr "An incorrect number has been entered!" + +#: ..\..\Command.cs:87 +#, csharp-format +msgid "需要满足进度{0}才能接取此任务" +msgstr "Need to meet progress {0} to pick up this task" + +#: ..\..\Utils.cs:105 +#, csharp-format +msgid "拥有{0} ({1}/{2})" +msgstr "Have {0} ({1}/{2})" + +#: ..\..\Utils.cs:115 +#, csharp-format +msgid "拥有{0}{1} ({2}/{3})" +msgstr "Have {0}{1} ({2}/{3})" + +#: ..\..\Utils.cs:84 +#, csharp-format +msgid "与{0}进行对话{1}" +msgstr "Dialogue with {0}{1}" + +#: ..\..\Command.cs:82 +#, csharp-format +msgid "只有在{0} 以及符等级才能接取此任务" +msgstr "Only in {0} and with the level of talisman can you pick up this task" \ No newline at end of file diff --git a/src/Economics.WeaponPlus/i18n/en-US.po b/src/Economics.WeaponPlus/i18n/en-US.po index b2b4e3199..35d1c0fe8 100644 --- a/src/Economics.WeaponPlus/i18n/en-US.po +++ b/src/Economics.WeaponPlus/i18n/en-US.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: Economics.WeaponPlus\n" -"POT-Creation-Date: 2024-09-30 17:35:21+0800\n" -"PO-Revision-Date: 2024-09-30 17:35:22+0800\n" +"POT-Creation-Date: 2024-09-30 18:24:33+0800\n" +"PO-Revision-Date: 2024-09-30 18:24:34+0800\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -11,7 +11,7 @@ msgstr "" "X-Generator: GetText.NET Extractor\n" #: ..\..\WeaponPlus.cs:76 msgid "[武器强化EC版]重新加载配置完毕。" -msgstr "[Weapon Enhancement EC Edition] Configuration reloaded." +msgstr "[Weapon Enhancement EC Version] Configuration reloaded." #: ..\..\WeaponPlus.cs:246 #: ..\..\WeaponPlus.cs:277 @@ -20,7 +20,7 @@ msgstr "[Weapon Enhancement EC Edition] Configuration reloaded." #: ..\..\WeaponPlus.cs:370 #, csharp-format msgid "[i:{0}] 降级成功 共计消耗:{1}\n{2}" -msgstr "[i:{0}] Downgrade successful, total consumed: {1}\n{2}" +msgstr "[i:{0}] Downgrade successful, total cost: {1}\n{2}" #: ..\..\WeaponPlus.cs:233 #: ..\..\WeaponPlus.cs:264 @@ -29,7 +29,7 @@ msgstr "[i:{0}] Downgrade successful, total consumed: {1}\n{2}" #: ..\..\WeaponPlus.cs:357 #, csharp-format msgid "[i:{0}] 升级成功 共计消耗:{1}\n{2}" -msgstr "[i:{0}] Upgrade successful, total consumed: {1}\n{2}" +msgstr "[i:{0}] Upgrade successful, total cost: {1}\n{2}" #: ..\..\WeaponPlus.cs:159 #, csharp-format @@ -54,7 +54,7 @@ msgstr "Size Level:" #: ..\..\WItem.cs:183 msgid "大小升至下一级需:" -msgstr "To upgrade to the next size level, you need:" +msgstr "Required to upgrade size to the next level:" #: ..\..\WeaponPlus.cs:573 msgid "当前该类型升级已达到上限,无法升级" @@ -66,7 +66,7 @@ msgstr "Remaining:" #: ..\..\WeaponPlus.cs:175 msgid "当前武器没有任何等级,不用回炉重做" -msgstr "The current weapon has no levels and does not need to be reworked." +msgstr "The current weapon has no levels and does not need to be remade." #: ..\..\WItem.cs:178 #: ..\..\WItem.cs:184 @@ -74,7 +74,7 @@ msgstr "The current weapon has no levels and does not need to be reworked." #: ..\..\WItem.cs:196 #: ..\..\WItem.cs:202 msgid "当前已满级" -msgstr "Currently at maximum level." +msgstr "Already at max level" #: ..\..\WItem.cs:146 msgid "当前状态:" @@ -94,7 +94,7 @@ msgstr "Level too low" #: ..\..\WeaponPlus.cs:141 msgid "该指令必须在游戏内使用" -msgstr "This command must be used in-game." +msgstr "This command must be used in-game" #: ..\..\WItem.cs:164 msgid "攻速" @@ -106,7 +106,7 @@ msgstr "Attack Speed Level:" #: ..\..\WItem.cs:195 msgid "攻速升至下一级需:" -msgstr "To upgrade to the next attack speed level, you need:" +msgstr "Required to upgrade attack speed to the next level:" #: ..\..\WItem.cs:155 msgid "击退" @@ -118,7 +118,7 @@ msgstr "Knockback Level:" #: ..\..\WItem.cs:189 msgid "击退升至下一级需:" -msgstr "To upgrade to the next knockback level, you need:" +msgstr "Required to upgrade knockback to the next level:" #: ..\..\WeaponPlus.cs:126 msgid "" @@ -128,11 +128,11 @@ msgid "" "重新获取时重给的物品是单独给予,不会被其他玩家捡走,每次进入服务器时会默认强制重新获取。\n" "第一个物品栏是强化栏,指令只对该物品栏内的物品起效,强化完即可将武器拿走换至其他栏位,功能类似于哥布林的重铸槽。" msgstr "" -"Almost all weapons and ammunition can be enhanced, but the enhancement will invalidate affixes. As compensation, the cost of the first three enhancements is reduced by 80%.\n" -"Enhancement is bound to a type of weapon, i.e., weapons with the same ID, not individual items. Enhancements are character-bound, non-transferable, and become invalid if thrown out. They only work within personal inventories such as the backpack or piggy bank.\n" -"If you accidentally throw out an item or for other reasons the enhancement becomes invalid, use the command /plus load to retrieve it. Each retrieval will forcibly take the item from your current inventory, so please pick it up to avoid losing it.\n" -"When retrieving, the item is given separately and cannot be picked up by other players. The system will force a retrieval every time you enter the server.\n" -"The first slot in the inventory is the enhancement slot, and commands only apply to items in this slot. Once enhanced, the weapon can be moved to another slot, similar to the Goblin Tinkerer's reforging function." +"Almost all weapons and ammunition can be enhanced, but the enhancement will invalidate any modifiers. As compensation, the cost of the first three enhancements is reduced by 80%.\n" +"Enhancement is bound to a category of weapons with the same ID, not just a single item. Enhancements are character-bound, non-transferable, and become invalid if thrown out. They only work in personal inventories like your backpack or piggy bank.\n" +"If you accidentally throw out an enhanced item or for other reasons it becomes invalid, use the command /plus load to retrieve it. Each retrieval will force the item from your current inventory, so make sure to pick it up to avoid losing it.\n" +"The retrieved item is given individually and cannot be picked up by other players. It is automatically retrieved each time you enter the server.\n" +"The first inventory slot is the enhancement slot, and commands only affect items within that slot. Once enhanced, the weapon can be moved to another slot, similar to the goblin's reforging slot." #: ..\..\WeaponPlus.cs:579 msgid "扣除:" @@ -140,19 +140,19 @@ msgstr "Deducted:" #: ..\..\WeaponPlus.cs:169 msgid "您当前的升级武器已重新读取" -msgstr "Your currently upgraded weapon has been reloaded." +msgstr "Your currently upgraded weapon has been reloaded" #: ..\..\WeaponPlus.cs:410 msgid "强化数据清理失败!!!" -msgstr "Enhancement data cleanup failed!!!" +msgstr "Failed to clear enhancement data!!!" #: ..\..\WeaponPlus.cs:202 msgid "请输入正整数" -msgstr "Please enter a positive integer." +msgstr "Please enter a positive integer" #: ..\..\WeaponPlus.cs:155 msgid "请在第一个物品栏内放入武器而不是其他什么东西或空" -msgstr "Please place a weapon in the first inventory slot, not something else or leave it empty." +msgstr "Please place a weapon in the first inventory slot, not something else or leave it empty" #: ..\..\WItem.cs:147 msgid "伤害" @@ -164,7 +164,7 @@ msgstr "Damage Level:" #: ..\..\WItem.cs:177 msgid "伤害升至下一级需:" -msgstr "To upgrade to the next damage level, you need:" +msgstr "Required to upgrade damage to the next level:" #: ..\..\WItem.cs:168 msgid "射弹飞速" @@ -172,7 +172,7 @@ msgstr "Projectile Speed" #: ..\..\WItem.cs:201 msgid "射弹飞速升至下一级需:" -msgstr "To upgrade to the next projectile speed level, you need:" +msgstr "Required to upgrade projectile speed to the next level:" #: ..\..\WItem.cs:129 msgid "射弹飞行速度等级:" @@ -184,15 +184,15 @@ msgstr "Remaining Enhancement Times:" #: ..\..\WeaponPlus.cs:53 msgid "输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属" -msgstr "Enter /clearallplayersplus to clear all enhanced items for all players in the database. Admin only." +msgstr "Enter /clearallplayersplus to clear all enhanced items for all players in the database. Admin only" #: ..\..\WeaponPlus.cs:415 msgid "输入 /clearallplayersplus 将数据库中强化物品全部清理" -msgstr "Enter /clearallplayersplus to clear all enhanced items in the database." +msgstr "Enter /clearallplayersplus to clear all enhanced items in the database" #: ..\..\WeaponPlus.cs:49 msgid "输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料" -msgstr "Enter /plus to view the current weapon's level status and the materials needed to reach the next level." +msgstr "Enter /plus to check the current level status of the weapon and how many materials are needed to upgrade to the next level" #: ..\..\WeaponPlus.cs:127 msgid "" @@ -206,15 +206,15 @@ msgid "" "输入 /plus clear 清理当前武器的所有等级,可以回收一点消耗物\n" "输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属" msgstr "" -"Enter /plus to view the current weapon's level status and the materials needed to reach the next level.\n" -"Enter /plus load to re-obtain all currently upgraded weapons on your person.\n" -"Enter /plus to upgrade/downgrade the current weapon's damage level.\n" -"Enter /plus to upgrade/downgrade the current weapon or projectile's size level by ±5%.\n" -"Enter /plus to upgrade/downgrade the current weapon's knockback level by ±5%.\n" -"Enter /plus to upgrade/downgrade the current weapon's use speed level.\n" -"Enter /plus to upgrade/downgrade the current weapon's projectile speed level, affecting the range of whip-like weapons by ±5%.\n" -"Enter /plus clear to clear all levels of the current weapon, allowing for some material recovery.\n" -"Enter /clearallplayersplus to clear all enhanced items for all players in the database. Admin only." +"Enter /plus to check the current level status of the weapon and how many materials are needed to upgrade to the next level\n" +"Enter /plus load to reacquire all currently upgraded weapons\n" +"Enter /plus to upgrade/downgrade the damage level of the current weapon\n" +"Enter /plus to upgrade/downgrade the size level of the current weapon or projectile by ±5%\n" +"Enter /plus to upgrade/downgrade the knockback level of the current weapon by ±5%\n" +"Enter /plus to upgrade/downgrade the use speed level of the current weapon\n" +"Enter /plus to upgrade/downgrade the projectile speed level of the current weapon, affecting whip range by ±5%\n" +"Enter /plus clear to clear all levels of the current weapon, allowing some material recovery\n" +"Enter /clearallplayersplus to clear all enhanced items for all players in the database. Admin only" #: ..\..\WeaponPlus.cs:187 #: ..\..\WeaponPlus.cs:197 @@ -222,11 +222,11 @@ msgstr "" #: ..\..\WeaponPlus.cs:376 #: ..\..\WeaponPlus.cs:381 msgid "输入 /plus help 查看 plus 系列指令帮助" -msgstr "Enter /plus help to view the help for the plus series of commands." +msgstr "Enter /plus help to view help for the plus series of commands" #: ..\..\WeaponPlus.cs:406 msgid "所有玩家的所有强化数据全部清理成功!" -msgstr "All enhancement data for all players has been successfully cleared!" +msgstr "All enhancement data for all players successfully cleared!" #: ..\..\WeaponPlus.cs:183 msgid "完全重置成功!回收:" @@ -234,12 +234,12 @@ msgstr "Complete reset successful! Recovered:" #: ..\..\WItem.cs:135 msgid "未升级过,无任何加成" -msgstr "Not upgraded, no bonuses." +msgstr "Not upgraded, no bonuses" #: ..\..\WItem.cs:207 msgid "已达到最大武器总等级" -msgstr "Maximum total weapon level reached." +msgstr "Reached maximum total weapon level" #: ..\..\WeaponPlus.cs:146 msgid "SSC 未开启" -msgstr "SSC is not enabled." \ No newline at end of file +msgstr "SSC not enabled" \ No newline at end of file diff --git a/src/Economics.WeaponPlus/i18n/template.pot b/src/Economics.WeaponPlus/i18n/template.pot index b2b4e3199..75870a6d3 100644 --- a/src/Economics.WeaponPlus/i18n/template.pot +++ b/src/Economics.WeaponPlus/i18n/template.pot @@ -1,17 +1,18 @@ msgid "" msgstr "" "Project-Id-Version: Economics.WeaponPlus\n" -"POT-Creation-Date: 2024-09-30 17:35:21+0800\n" -"PO-Revision-Date: 2024-09-30 17:35:22+0800\n" +"POT-Creation-Date: 2024-09-30 18:24:33+0800\n" +"PO-Revision-Date: 2024-09-30 18:24:34+0800\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: GetText.NET Extractor\n" + #: ..\..\WeaponPlus.cs:76 msgid "[武器强化EC版]重新加载配置完毕。" -msgstr "[Weapon Enhancement EC Edition] Configuration reloaded." +msgstr "" #: ..\..\WeaponPlus.cs:246 #: ..\..\WeaponPlus.cs:277 @@ -19,8 +20,10 @@ msgstr "[Weapon Enhancement EC Edition] Configuration reloaded." #: ..\..\WeaponPlus.cs:339 #: ..\..\WeaponPlus.cs:370 #, csharp-format -msgid "[i:{0}] 降级成功 共计消耗:{1}\n{2}" -msgstr "[i:{0}] Downgrade successful, total consumed: {1}\n{2}" +msgid "" +"[i:{0}] 降级成功 共计消耗:{1}\n" +"{2}" +msgstr "" #: ..\..\WeaponPlus.cs:233 #: ..\..\WeaponPlus.cs:264 @@ -28,45 +31,49 @@ msgstr "[i:{0}] Downgrade successful, total consumed: {1}\n{2}" #: ..\..\WeaponPlus.cs:326 #: ..\..\WeaponPlus.cs:357 #, csharp-format -msgid "[i:{0}] 升级成功 共计消耗:{1}\n{2}" -msgstr "[i:{0}] Upgrade successful, total consumed: {1}\n{2}" +msgid "" +"[i:{0}] 升级成功 共计消耗:{1}\n" +"{2}" +msgstr "" #: ..\..\WeaponPlus.cs:159 #, csharp-format -msgid "{0}[i:{1}] {2}{3}\n{4}" -msgstr "{0}[i:{1}] {2}{3}\n{4}" +msgid "" +"{0}[i:{1}] {2}{3}\n" +"{4}" +msgstr "" #: ..\..\WeaponPlus.cs:582 msgid "不足!" -msgstr "Insufficient!" +msgstr "" #: ..\..\WItem.cs:115 msgid "次" -msgstr "times" +msgstr "" #: ..\..\WItem.cs:151 msgid "大小" -msgstr "Size" +msgstr "" #: ..\..\WItem.cs:120 msgid "大小等级:" -msgstr "Size Level:" +msgstr "" #: ..\..\WItem.cs:183 msgid "大小升至下一级需:" -msgstr "To upgrade to the next size level, you need:" +msgstr "" #: ..\..\WeaponPlus.cs:573 msgid "当前该类型升级已达到上限,无法升级" -msgstr "The current type has reached its upgrade limit and cannot be upgraded further." +msgstr "" #: ..\..\WeaponPlus.cs:579 msgid "当前剩余:" -msgstr "Remaining:" +msgstr "" #: ..\..\WeaponPlus.cs:175 msgid "当前武器没有任何等级,不用回炉重做" -msgstr "The current weapon has no levels and does not need to be reworked." +msgstr "" #: ..\..\WItem.cs:178 #: ..\..\WItem.cs:184 @@ -74,15 +81,15 @@ msgstr "The current weapon has no levels and does not need to be reworked." #: ..\..\WItem.cs:196 #: ..\..\WItem.cs:202 msgid "当前已满级" -msgstr "Currently at maximum level." +msgstr "" #: ..\..\WItem.cs:146 msgid "当前状态:" -msgstr "Current Status:" +msgstr "" #: ..\..\WItem.cs:109 msgid "当前总等级:" -msgstr "Current Total Level:" +msgstr "" #: ..\..\WeaponPlus.cs:239 #: ..\..\WeaponPlus.cs:270 @@ -90,156 +97,144 @@ msgstr "Current Total Level:" #: ..\..\WeaponPlus.cs:332 #: ..\..\WeaponPlus.cs:363 msgid "等级过低" -msgstr "Level too low" +msgstr "" #: ..\..\WeaponPlus.cs:141 msgid "该指令必须在游戏内使用" -msgstr "This command must be used in-game." +msgstr "" #: ..\..\WItem.cs:164 msgid "攻速" -msgstr "Attack Speed" +msgstr "" #: ..\..\WItem.cs:126 msgid "攻速等级:" -msgstr "Attack Speed Level:" +msgstr "" #: ..\..\WItem.cs:195 msgid "攻速升至下一级需:" -msgstr "To upgrade to the next attack speed level, you need:" +msgstr "" #: ..\..\WItem.cs:155 msgid "击退" -msgstr "Knockback" +msgstr "" #: ..\..\WItem.cs:123 msgid "击退等级:" -msgstr "Knockback Level:" +msgstr "" #: ..\..\WItem.cs:189 msgid "击退升至下一级需:" -msgstr "To upgrade to the next knockback level, you need:" +msgstr "" #: ..\..\WeaponPlus.cs:126 msgid "" "几乎所有的武器和弹药都能强化,但是强化结果会无效化词缀,作为补偿,前三次强化价格降低 80%\n" "强化绑定一类武器,即同 ID 武器,而不是单独的一个物品。强化与人物绑定,不可分享,扔出即失效,只在背包,猪猪等个人私有库存内起效。\n" -"当你不小心扔出或其他原因导致强化无效,请使用指令 /plus load 来重新获取。每次重新获取都会从当前背包中查找并强制拿出来重给,请注意捡取避免丢失。\n" +"当你不小心扔出或其他原因导致强化无效,请使用指令 /plus load " +"来重新获取。每次重新获取都会从当前背包中查找并强制拿出来重给,请注意捡取避免丢失。\n" "重新获取时重给的物品是单独给予,不会被其他玩家捡走,每次进入服务器时会默认强制重新获取。\n" "第一个物品栏是强化栏,指令只对该物品栏内的物品起效,强化完即可将武器拿走换至其他栏位,功能类似于哥布林的重铸槽。" msgstr "" -"Almost all weapons and ammunition can be enhanced, but the enhancement will invalidate affixes. As compensation, the cost of the first three enhancements is reduced by 80%.\n" -"Enhancement is bound to a type of weapon, i.e., weapons with the same ID, not individual items. Enhancements are character-bound, non-transferable, and become invalid if thrown out. They only work within personal inventories such as the backpack or piggy bank.\n" -"If you accidentally throw out an item or for other reasons the enhancement becomes invalid, use the command /plus load to retrieve it. Each retrieval will forcibly take the item from your current inventory, so please pick it up to avoid losing it.\n" -"When retrieving, the item is given separately and cannot be picked up by other players. The system will force a retrieval every time you enter the server.\n" -"The first slot in the inventory is the enhancement slot, and commands only apply to items in this slot. Once enhanced, the weapon can be moved to another slot, similar to the Goblin Tinkerer's reforging function." #: ..\..\WeaponPlus.cs:579 msgid "扣除:" -msgstr "Deducted:" +msgstr "" #: ..\..\WeaponPlus.cs:169 msgid "您当前的升级武器已重新读取" -msgstr "Your currently upgraded weapon has been reloaded." +msgstr "" #: ..\..\WeaponPlus.cs:410 msgid "强化数据清理失败!!!" -msgstr "Enhancement data cleanup failed!!!" +msgstr "" #: ..\..\WeaponPlus.cs:202 msgid "请输入正整数" -msgstr "Please enter a positive integer." +msgstr "" #: ..\..\WeaponPlus.cs:155 msgid "请在第一个物品栏内放入武器而不是其他什么东西或空" -msgstr "Please place a weapon in the first inventory slot, not something else or leave it empty." +msgstr "" #: ..\..\WItem.cs:147 msgid "伤害" -msgstr "Damage" +msgstr "" #: ..\..\WItem.cs:117 msgid "伤害等级:" -msgstr "Damage Level:" +msgstr "" #: ..\..\WItem.cs:177 msgid "伤害升至下一级需:" -msgstr "To upgrade to the next damage level, you need:" +msgstr "" #: ..\..\WItem.cs:168 msgid "射弹飞速" -msgstr "Projectile Speed" +msgstr "" #: ..\..\WItem.cs:201 msgid "射弹飞速升至下一级需:" -msgstr "To upgrade to the next projectile speed level, you need:" +msgstr "" #: ..\..\WItem.cs:129 msgid "射弹飞行速度等级:" -msgstr "Projectile Speed Level:" +msgstr "" #: ..\..\WItem.cs:112 msgid "剩余强化次数:" -msgstr "Remaining Enhancement Times:" +msgstr "" #: ..\..\WeaponPlus.cs:53 -msgid "输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属" -msgstr "Enter /clearallplayersplus to clear all enhanced items for all players in the database. Admin only." +msgid "输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属" +msgstr "" #: ..\..\WeaponPlus.cs:415 -msgid "输入 /clearallplayersplus 将数据库中强化物品全部清理" -msgstr "Enter /clearallplayersplus to clear all enhanced items in the database." +msgid "输入 /clearallplayersplus 将数据库中强化物品全部清理" +msgstr "" #: ..\..\WeaponPlus.cs:49 -msgid "输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料" -msgstr "Enter /plus to view the current weapon's level status and the materials needed to reach the next level." +msgid "输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料" +msgstr "" #: ..\..\WeaponPlus.cs:127 msgid "" -"输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料\n" -"输入 /plus load 将当前身上所有已升级的武器重新获取\n" -"输入 /plus 升级/降级当前武器的伤害等级\n" -"输入 /plus 升级/降级当前武器或射弹的体积等级 ±5%\n" -"输入 /plus 升级/降级当前武器的击退等级 ±5%\n" -"输入 /plus 升级/降级当前武器的使用速度等级\n" -"输入 /plus 升级/降级当前武器的射弹飞行速度等级,影响鞭类武器范围±5%\n" -"输入 /plus clear 清理当前武器的所有等级,可以回收一点消耗物\n" -"输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属" -msgstr "" -"Enter /plus to view the current weapon's level status and the materials needed to reach the next level.\n" -"Enter /plus load to re-obtain all currently upgraded weapons on your person.\n" -"Enter /plus to upgrade/downgrade the current weapon's damage level.\n" -"Enter /plus to upgrade/downgrade the current weapon or projectile's size level by ±5%.\n" -"Enter /plus to upgrade/downgrade the current weapon's knockback level by ±5%.\n" -"Enter /plus to upgrade/downgrade the current weapon's use speed level.\n" -"Enter /plus to upgrade/downgrade the current weapon's projectile speed level, affecting the range of whip-like weapons by ±5%.\n" -"Enter /plus clear to clear all levels of the current weapon, allowing for some material recovery.\n" -"Enter /clearallplayersplus to clear all enhanced items for all players in the database. Admin only." +"输入 /plus 查看当前该武器的等级状态和升至下一级需要多少材料\n" +"输入 /plus load 将当前身上所有已升级的武器重新获取\n" +"输入 /plus 升级/降级当前武器的伤害等级\n" +"输入 /plus 升级/降级当前武器或射弹的体积等级 ±5%\n" +"输入 /plus 升级/降级当前武器的击退等级 ±5%\n" +"输入 /plus 升级/降级当前武器的使用速度等级\n" +"输入 /plus 升级/降级当前武器的射弹飞行速度等级,影响鞭类武器范围±5%\n" +"输入 /plus clear 清理当前武器的所有等级,可以回收一点消耗物\n" +"输入 /clearallplayersplus 将数据库中所有玩家的所有强化物品全部清理,管理员专属" +msgstr "" #: ..\..\WeaponPlus.cs:187 #: ..\..\WeaponPlus.cs:197 #: ..\..\WeaponPlus.cs:217 #: ..\..\WeaponPlus.cs:376 #: ..\..\WeaponPlus.cs:381 -msgid "输入 /plus help 查看 plus 系列指令帮助" -msgstr "Enter /plus help to view the help for the plus series of commands." +msgid "输入 /plus help 查看 plus 系列指令帮助" +msgstr "" #: ..\..\WeaponPlus.cs:406 msgid "所有玩家的所有强化数据全部清理成功!" -msgstr "All enhancement data for all players has been successfully cleared!" +msgstr "" #: ..\..\WeaponPlus.cs:183 msgid "完全重置成功!回收:" -msgstr "Complete reset successful! Recovered:" +msgstr "" #: ..\..\WItem.cs:135 msgid "未升级过,无任何加成" -msgstr "Not upgraded, no bonuses." +msgstr "" #: ..\..\WItem.cs:207 msgid "已达到最大武器总等级" -msgstr "Maximum total weapon level reached." +msgstr "" #: ..\..\WeaponPlus.cs:146 msgid "SSC 未开启" -msgstr "SSC is not enabled." \ No newline at end of file +msgstr "" +