diff --git a/src/Luban.Job.Cfg/Source/Defs/DefField.cs b/src/Luban.Job.Cfg/Source/Defs/DefField.cs index c87bf1a..46d8e1b 100644 --- a/src/Luban.Job.Cfg/Source/Defs/DefField.cs +++ b/src/Luban.Job.Cfg/Source/Defs/DefField.cs @@ -67,7 +67,7 @@ namespace Luban.Job.Cfg.Defs get { var table = Assembly.GetCfgTable(Ref.FirstTable); - return $"{table.ValueTType.Apply(CsDefineTypeName.Ins)} {CsRefVarName};"; + return $"{table.ValueTType.Apply(CsDefineTypeName.Ins)} {CsRefVarName} {{get; private set;}}"; } } diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/CsJsonDeserialize.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/CsJsonDeserialize.cs index 0059e5f..a108c7a 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/CsJsonDeserialize.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/CsJsonDeserialize.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}.GetString();"; + return $"{x}{TText.L10N_FIELD_SUFFIX} = {json}.GetProperty(\"{DText.KEY_NAME}\").GetString();{x} = {json}.GetProperty(\"{DText.TEXT_NAME}\").GetString();"; } public string Accept(TBean type, string json, string x) diff --git a/src/Luban.Server/Templates/config/cs_json/bean.tpl b/src/Luban.Server/Templates/config/cs_json/bean.tpl index 65583b0..4e4ed21 100644 --- a/src/Luban.Server/Templates/config/cs_json/bean.tpl +++ b/src/Luban.Server/Templates/config/cs_json/bean.tpl @@ -18,7 +18,7 @@ namespace {{x.namespace_with_top_module}} /// {{x.comment}} /// {{~end~}} -public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} {{parent}} {{else}} Bright.Config.BeanBase {{end}} +public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}} {{else}} Bright.Config.BeanBase {{end}} { public {{name}}(JsonElement _json) {{if parent_def_type}} : base(_json) {{end}} { @@ -61,13 +61,16 @@ public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} { /// {{field.comment}} /// {{~end~}} - public readonly {{cs_define_type field.ctype}} {{field.cs_style_name}}; + public {{cs_define_type field.ctype}} {{field.cs_style_name}} {get; private set; } {{~if field.index_field~}} public readonly Dictionary<{{cs_define_type field.index_field.ctype}}, {{cs_define_type field.ctype.element_type}}> {{field.cs_style_name}}_Index = new Dictionary<{{cs_define_type field.index_field.ctype}}, {{cs_define_type field.ctype.element_type}}>(); {{~end~}} {{~if field.gen_ref~}} public {{field.cs_ref_validator_define}} {{~end~}} + {{~if field.gen_text_key~}} + public {{cs_define_text_key_field field}} {get;} + {{~end~}} {{~end~}} {{~if !x.is_abstract_type~}} @@ -87,10 +90,21 @@ public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} { {{cs_recursive_resolve field '_tables'}} {{~end~}} {{~end~}} - OnResolveFinish(_tables); } - partial void OnResolveFinish(Dictionary _tables); + public {{x.cs_method_modifier}} void TranslateText(System.Func translator) + { + {{~if parent_def_type~}} + base.TranslateText(translator); + {{~end~}} + {{~ for field in export_fields ~}} + {{~if field.gen_text_key~}} + {{cs_translate_text field 'translator'}} + {{~else if field.has_recursive_text~}} + {{cs_recursive_translate_text field 'translator'}} + {{~end~}} + {{~end~}} + } public override string ToString() { diff --git a/src/Luban.Server/Templates/config/cs_json/table.tpl b/src/Luban.Server/Templates/config/cs_json/table.tpl index 7ba4e15..dcbe626 100644 --- a/src/Luban.Server/Templates/config/cs_json/table.tpl +++ b/src/Luban.Server/Templates/config/cs_json/table.tpl @@ -18,7 +18,7 @@ namespace {{x.namespace_with_top_module}} /// {{x.comment}} /// {{~end~}} -public sealed partial class {{name}} +public sealed class {{name}} { {{~if x.is_map_table ~}} private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap; @@ -54,7 +54,14 @@ public sealed partial class {{name}} { v.Resolve(_tables); } - OnResolveFinish(_tables); + } + + public void TranslateText(System.Func translator) + { + foreach(var v in _dataList) + { + v.TranslateText(translator); + } } {{~else~}} @@ -83,12 +90,14 @@ public sealed partial class {{name}} public void Resolve(Dictionary _tables) { _data.Resolve(_tables); - OnResolveFinish(_tables); + } + + public void TranslateText(System.Func translator) + { + _data.TranslateText(translator); } {{~end~}} - - partial void OnResolveFinish(Dictionary _tables); } } \ No newline at end of file diff --git a/src/Luban.Server/Templates/config/cs_json/tables.tpl b/src/Luban.Server/Templates/config/cs_json/tables.tpl index ea4c12c..43636bf 100644 --- a/src/Luban.Server/Templates/config/cs_json/tables.tpl +++ b/src/Luban.Server/Templates/config/cs_json/tables.tpl @@ -31,6 +31,13 @@ public sealed partial class {{name}} {{table.name}}.Resolve(tables); {{~end~}} } + + public void TranslateText(System.Func translator) + { + {{~for table in tables ~}} + {{table.name}}.TranslateText(translator); + {{~end~}} + } } }