当前位置: 首页 > news >正文

重视网站建设广州百度快速排名优化

重视网站建设,广州百度快速排名优化,万盛建设局官方网站,重庆今天新闻发布会直播最近研究了一下本地化#xff0c;给大家用简单易懂的方式说明我是怎么实现的#xff0c;使用CSV表格填写翻译#xff0c;然后在Godot中读取为字典 表格填写 首先#xff0c;我们表格可以按照下面这种格式填写 idzhenjaruesdefrapple苹果appleリンゴяблокоmanzanaA…最近研究了一下本地化给大家用简单易懂的方式说明我是怎么实现的使用CSV表格填写翻译然后在Godot中读取为字典 表格填写 首先我们表格可以按照下面这种格式填写 idzhenjaruesdefrapple苹果appleリンゴяблокоmanzanaApfelpommebanana香蕉bananaバナナбананplátanoBananebananeorange橙子orangeオレンジапельсинnaranjaOrangeorange 大家看表格应该能明白用第一列作为键然后再用语言作为第二层的键就能调用到对应语言的文本了有一点需要注意我们保存的时候格式需要选择为 CSV UTF-8用逗号分隔的格式 打开查看我们可以看到是下面这种格式 有一点需要注意当我们打开表格的时候是有保护的这时候不能在这里面修改保存关闭表格即可 导入表格 我们直接把表格拖入到Godot里面你可能会注意到Godot报错 Failed to open C:\Users\Administrator\Videos\Fruits.csv. 我们在资源管理器进行移动Godot中会自动创建一堆.translation格式的翻译文件 我们需要在导入中设置为原样导出选择后点击重新导入即可 接下来你会发现文件变成了X号的图标不要双击打开他Godot会直接闪退我们删除这些创建出来的.translation文件就行 读取代码 首先我们需要创建一个双层字典用来保存翻译文本 [Export] //暴露在编辑器中 public Godot.Collections.Dictionarystring, Godot.Collections.Dictionarystring, string language new Dictionarystring, Dictionarystring, string();private string csv_language_path res://Language/Fruits.csv; //文件路径 public string Now_Language zh; //当前语言 然后我们写一个函数在初始化的时候把数据写入字典 void Load_CSV_Language(){if (!FileAccess.FileExists(csv_language_path)) //判断文件是否存在{GD.Print(${csv_language_path}文件不存在);return;}var file FileAccess.Open(csv_language_path, FileAccess.ModeFlags.Read);var header file.GetLine().Split(,); //获取语言头while (!file.EofReached()) //循环直到指向尾部{Dictionarystring, string lang new Dictionarystring, string(); //创建内层字典var line file.GetLine().Split(,); //获取行(键,语言语言语言)if (string.IsNullOrWhiteSpace(line[0])) continue; //跳过空行防止越界for (int i 1; i line.Length; i){lang.Add(header[i], line[i]);}language.Add(line[0], lang);}file.Close(); //关闭文件流} 接下来我们写一个获取对应文本的函数方法即可 public string Get_Language(string key) //返回本地化语言{return language[key][Now_Language];} 单例加载 有一点在C#中使用Godot的自动加载功能我们需要额外写一些代码 我这里则是放在了树的加载函数中大家根据需要进行调整 public static LanguageManager Instance;public override void _EnterTree(){Instance this;Load_CSV_Language(); //调用加载字典函数}public override void _ExitTree(){Instance null;} 这样我们运行场景就能看到场景的根节点下多了一个节点 接下来我们只需要在其他节点中获取即可调用 Get_Language 方法了 public LanguageManager languageManager;public override void _Ready(){languageManager GetTree().Root.GetNodeLanguageManager(LanguageManager);} 切换语言 为了在切换语言的时候更改场景的文本我们先把所有的设置文本的函数都放在一个函数中大家可以参照我的示例进行修改 public void SetLanguage(){Get_Language();SetText();}public void Get_Language() //获取翻译{name languageManager.Get_Language(${id});}private void SetText() //设置文本{T_name.Text name;} 我们修改本地化脚本的 Now_Language 变量 private string _Now_Language zh;public string Now_Language{get _Now_Language;set{_Now_Language value;UpdateLanguage(); //修改值时调用}} 我们可以给脚本的节点加上分组使用CallGroup方法调用函数 public void UpdateLanguage() //切换语言{GetTree().CallGroup(Text, SetLanguage); //通知组调用设置语言方法} 这里我创建的组叫“Text”我们需要在Godot中把组分给节点或者在脚本中使用AddToGroup方法也可以 这样我们修改 Now_Language 变量文本就会发生改变 结语 通过这种结构化的双层字典方案我们成功构建了一个动态可扩展的本地化系统。如果项目文本量巨大我们可以进行异步加载来进行优化大家可以根据自己的需要进行修改。
http://www.hkea.cn/news/14411460/

相关文章:

  • 360路由器做网站ci框架建设网站
  • 医院网站做竞价需要注意广告法培训教育
  • 网站规范建设wordpress模板开发教程
  • 福永小学网站建设能够做冶金工程毕业设计的网站
  • 驻马店高端网站建设临清聊城网站优化
  • 免费空间网站推广神器app
  • 网站访问量很大怎么办安徽网络推广
  • 做网站美工赚钱吗网站推广做百度还是360
  • 前端手机网站厦门新闻头条最新消息
  • 关于电视剧的网站设计网页wordpress加载不出来
  • 邯郸制作网站网站建设开发人员
  • 网站降权如何百度申诉番禺网站(建设信科网络)
  • 最好的淘宝客网站装修设计公司营业执照经营范围
  • 如何设计大型电商网站建设wordpress 语言包编辑
  • 网站服务器端口号是什么logo在线设计生成器app
  • 网站开发劳动合同范本张掖市建设规划局网站
  • 交易平台网站建设策划书营销网络用语是什么意思
  • 厦门网站建设模拟中国建筑网官网查询阮国方
  • 一般做外单的有哪些网站店铺logo图片免费生成器
  • 网站加速器quickq建设网站程序下载
  • 门户网站建设情况wordpress背景图美化
  • 正规的网站制作罗湖附近公司做网站建设哪家效益快
  • 济南网站微信网站开发文档的示例
  • 四川品牌网站建设离婚协议书模板免费下载
  • 大连网站建设哪个公司好商标设计在线生成器
  • 平凉市建设局网站高大上的企业网站
  • 公司网站建设阿里云网站开发和运行 法律
  • 现在还有没有做任务的网站企业所得税汇算清缴时间
  • 深圳找人做网站微信小程序和网站开发有什么区别
  • cms网站网络地址图片wordpress一句话插件