diff --git a/README.md b/README.md index be61f22..e2cdbc6 100644 --- a/README.md +++ b/README.md @@ -68,8 +68,8 @@ Luban适合有以下需求的开发者: - **本地化支持** - 支持时间本地化。datetime类型数据会根据指定的timezone,转换为目标地区该时刻的UTC时间,方便程序使用。 - 支持文本静态本地化。导出时所有text类型数据正确替换为最终的本地化字符串。绝大多数的业务功能不再需要运行根据本地化id去查找文本的内容,简化程序员的工作。 + - 支持文本动态本地化。运行时动态切换所有text类型数据为目标本地化字符串。 - 支持 main + patches 数据合并。在基础数据上,施加差分数据,生成最终完整数据,适用于制作有细微不同的多地区的配置数据。 - - [TODO] 支持文本动态本地化。运行时动态切换所有text类型数据为目标本地化字符串。 - [TODO] 【独创】 支持任意粒度和任意类型数据(如int,bean,list,map)的本地化。 - 支持主流的游戏开发语言 - c++ (11+) diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/JavaJsonDeserialize.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/JavaJsonDeserialize.cs index c3016ab..2a8feee 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/JavaJsonDeserialize.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/JavaJsonDeserialize.cs @@ -1,3 +1,4 @@ +using Luban.Job.Cfg.Datas; using Luban.Job.Common.Types; using Luban.Job.Common.TypeVisitors; using System; @@ -75,7 +76,7 @@ namespace Luban.Job.Cfg.TypeVisitors public string Accept(TText type, string json, string x) { - return $"{x} = {json}.getAsString();"; + return $"{json}.getAsJsonObject().get(\"{DText.KEY_NAME}\").getAsString(); {x} = {json}.getAsJsonObject().get(\"{DText.TEXT_NAME}\").getAsString();"; } public string Accept(TBean type, string json, string x) diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/JavaUnderingDeserializeVisitor.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/JavaUnderingDeserializeVisitor.cs index aa78855..8b5ffb3 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/JavaUnderingDeserializeVisitor.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/JavaUnderingDeserializeVisitor.cs @@ -74,7 +74,7 @@ namespace Luban.Job.Cfg.TypeVisitors public string Accept(TText type, string bufName, string fieldName) { - return $"{fieldName} = {bufName}.readString();"; + return $"{bufName}.readString(); {fieldName} = {bufName}.readString();"; } public string Accept(TBean type, string bufName, string fieldName) diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/PyUnderingDeserializeVisitor.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/PyUnderingDeserializeVisitor.cs index adc3fff..e39e738 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/PyUnderingDeserializeVisitor.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/PyUnderingDeserializeVisitor.cs @@ -1,3 +1,4 @@ +using Luban.Job.Cfg.Datas; using Luban.Job.Common.Types; using Luban.Job.Common.TypeVisitors; @@ -74,7 +75,7 @@ namespace Luban.Job.Cfg.TypeVisitors public string Accept(TText type, string jsonVarName, string fieldName) { - return $"{fieldName} = {jsonVarName}"; + return $"{fieldName} = {jsonVarName}['{DText.TEXT_NAME}']"; } public string Accept(TBean type, string jsonVarName, string fieldName) diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptJsonUnderingConstructorVisitor.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptJsonUnderingConstructorVisitor.cs index fdb0296..4493833 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptJsonUnderingConstructorVisitor.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/TypescriptJsonUnderingConstructorVisitor.cs @@ -1,3 +1,4 @@ +using Luban.Job.Cfg.Datas; using Luban.Job.Common.Types; using Luban.Job.Common.TypeVisitors; @@ -74,7 +75,7 @@ namespace Luban.Job.Cfg.TypeVisitors public string Accept(TText type, string jsonVarName, string fieldName) { - return $"{fieldName} = {jsonVarName}"; + return $"{fieldName} = {jsonVarName}['{DText.TEXT_NAME}']"; } public string Accept(TBean type, string jsonVarName, string fieldName) diff --git a/src/Luban.Job.Common/Source/TypeVisitors/LuaUnderingDeserializeVisitor.cs b/src/Luban.Job.Common/Source/TypeVisitors/LuaUnderingDeserializeVisitor.cs index 0b49dcd..0e0a69f 100644 --- a/src/Luban.Job.Common/Source/TypeVisitors/LuaUnderingDeserializeVisitor.cs +++ b/src/Luban.Job.Common/Source/TypeVisitors/LuaUnderingDeserializeVisitor.cs @@ -11,6 +11,11 @@ namespace Luban.Job.Common.TypeVisitors return $"{type.Apply(LuaDeserializeMethodNameVisitor.Ins)}({x})"; } + public override string Accept(TText type, string bufName) + { + return $"readString({bufName}) and readString({bufName})"; + } + public override string Accept(TArray type, string x) { return $"readArray({x}, {type.ElementType.Apply(LuaDeserializeMethodNameVisitor.Ins)})"; diff --git a/src/Luban.Job.Common/Source/TypeVisitors/LuaUnderingSerializeVisitor.cs b/src/Luban.Job.Common/Source/TypeVisitors/LuaUnderingSerializeVisitor.cs index 2cf8639..fea33a7 100644 --- a/src/Luban.Job.Common/Source/TypeVisitors/LuaUnderingSerializeVisitor.cs +++ b/src/Luban.Job.Common/Source/TypeVisitors/LuaUnderingSerializeVisitor.cs @@ -16,6 +16,11 @@ namespace Luban.Job.Common.TypeVisitors return $"{type.Apply(LuaSerializeMethodNameVisitor.Ins)}({bufName}, {fieldName})"; } + public override string Accept(TText type, string bufName, string fieldName) + { + return $"readString({bufName}); {fieldName} = readString({bufName})"; + } + public override string Accept(TArray type, string bufName, string fieldName) { return $"writeArray({bufName}, {fieldName}, {type.ElementType.Apply(LuaSerializeMethodNameVisitor.Ins)})"; diff --git a/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs b/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs index cf2c04c..2c91153 100644 --- a/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs +++ b/src/Luban.Job.Common/Source/TypeVisitors/TypescriptBinUnderingDeserializeVisitorBase.cs @@ -72,7 +72,7 @@ namespace Luban.Job.Common.TypeVisitors public string Accept(TText type, string bufName, string fieldName) { - return $"{fieldName} = {bufName}.ReadString()"; + return $" {bufName}.ReadString(); {fieldName} = {bufName}.ReadString()"; } public abstract string Accept(TBean type, string bufVarName, string fieldName);