转换海盗王lua脚本ICU多语言的golang代码

这是一个很好用的golang代码文件,可以帮助将ICU这种多语言的替代符号,直接转换成中文原版的文字。前提是已经从语言res文件中将中文预先提取出来。

在这里插入图片描述
这是替换后的样子,简洁明了,修改也非常容易。

注意:因为golang默认是uft8的,需要将文件另存为utf8编码,替换后的文件,还需要手动转存为gb2312编码才能正确使用。

下面是实现这个功能的golang代码文件:

package mainimport ("fmt""io""os""strings"
)func main() {spath := "E:/HDW2/hdw21-4/Tools/hdwgo/luaicu/files/NpcScript05.lua"spath2 := "E:/HDW2/hdw21-4/Tools/hdwgo/luaicu/files/new/NpcScript05.lua"file, err := os.Open(spath)if err != nil {fmt.Println("无法打开文件:", err)return}defer file.Close()filedata, err := io.ReadAll(file)if err != nil {fmt.Println("file error")return}filestr := string(filedata)strlt := strings.Split(filestr, "\r\n")strlen := len(strlt)lualt := make([]string, 0)for i := 0; i < strlen; i++ {linestr := strlt[i]linestr2 := strings.TrimSpace(linestr)linestr2 = strings.ReplaceAll(linestr2, " ", "")linestr2 = strings.ReplaceAll(linestr2, "\t", "")if (strings.HasPrefix(linestr2, "--MISSCRIPT_") || strings.HasPrefix(linestr2, "MISSCRIPT_") || strings.HasPrefix(linestr2, "BIRTH_BIRTH") || strings.HasPrefix(linestr2, "CALCULATE_") || strings.HasPrefix(linestr2, "HELP_MONSTERHELP")) && strings.Contains(linestr2, "_LUA_") && strings.Contains(linestr2, "=") {lualt = append(lualt, linestr)}}xinlt := make(map[string]string, 0)lualen := len(lualt)for i := 0; i < lualen; i++ {luastr := lualt[i]luastr2 := strings.TrimSpace(luastr)lt2 := strings.Split(luastr2, "=")keystr := strings.TrimSpace(lt2[0])valstr := strings.TrimSpace(lt2[1])if strings.HasPrefix(keystr, "--") {keystr = strings.Replace(keystr, "--", "", 1)keystr = strings.TrimSpace(keystr)}xinlt[keystr] = valstrrtstr := luastr + "\r\n"filestr = strings.Replace(filestr, rtstr, "", -1)}for k, v := range xinlt {filestr = strings.Replace(filestr, k, v, -1)}fileName := spath2dstFile, err := os.Create(fileName)if err != nil {fmt.Println(err.Error())return}defer dstFile.Close()dstFile.WriteString(filestr)fmt.Println("run ok")
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/415357.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习:holdout法(Python)

import pandas as pd import numpy as np from sklearn.preprocessing import LabelEncoder, StandardScaler # 类别标签编码&#xff0c;标准化处理 from sklearn.decomposition import PCA # 主成分分析 import matplotlib.pyplot as plt from sklearn.model_selection impor…

【方法】如何合并多个PDF文件?

多个PDF文件&#xff0c;想合并成一个文件&#xff0c;要怎么操作呢&#xff1f; 如果PDF文件的数量少&#xff0c;并且页数也不多&#xff0c;可以试试将内容复制黏贴到Word文档&#xff0c;再转为PDF格式&#xff1b;如果文件数量多&#xff0c;页数也多&#xff0c;就不太合…

Failed at the node sass@4.14.1 postinstall script.

首先&#xff0c;查看node和 npm版本 #用于列出已安装的 Node.js 版本。 nvm ls #切换node版本 nvm use 12.17.0 #换国内镜像源&#xff1a;&#xff08;单独设置sass的安装源。&#xff09; npm config set sass_binary_sitehttps://npm.taobao.org/mirrors/node-sass …

基于Java开发的智慧养老管理系统详细设计和实现【附源码】

基于Java开发的智慧养老管理系统详细设计和实现【附源码】 &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制…

数据库防水坝是什么?有什么作用?有哪些优势?

数据库是公司重要IT资产&#xff0c;是公司数据存储、数据整合、数据备份等重要载体。所以保障数据库安全至关重要。目前保障数据库安全产品较多&#xff0c;例如堡垒机、防火墙、数据库防水坝等等。今天我们就先来简单了解一下数据库防水坝是什么&#xff1f;有什么作用&#…

关于运维·关于Zabbix监控平台的面试点

目录 引言&#xff1a;明人不说暗话&#xff0c;今天分享几个在面试的时候常被问到关于Zabbix监控平台的面试点 1、zabbix的优点 2、zabbix的缺点 3、zabbix的监控模式 4、zabbix自定义监控怎么做 5、zabbix的自动发现功能 6、zabbix分布式监控有什么特点 引言&#xff1…

OpenSource - 基于 DFA 算法实现的高性能 java 敏感词过滤工具框架

文章目录 sensitive-word创作目的特性变更日志更多资料敏感词控台敏感词标签文件 快速开始准备Maven 引入核心方法判断是否包含敏感词返回第一个敏感词返回所有敏感词默认的替换策略指定替换的内容自定义替换策略 IWordResultHandler 结果处理类使用实例 更多特性样式处理忽略大…

浅谈智慧路灯安全智能供电方案设计

摘要: 智慧路灯&#xff0c;作为智慧城市、新基建、城市更新的主要组成部分&#xff0c;近些年在各大城市已得到很好的落地和 应用&#xff0c;但其与传统路灯相比集成大量异元异构电子设备&#xff0c;这些设备的供电电压、接口形式、权属单位各不相同&#xff0c; 如何设计一…

搭建知识付费小程序平台:如何避免被坑,选择最佳方案?

随着知识经济的兴起&#xff0c;知识付费已经成为一种趋势。越来越多的人开始将自己的知识和技能进行变现&#xff0c;而知识付费小程序平台则成为了一个重要的渠道。然而&#xff0c;市面上的知识付费小程序平台琳琅满目&#xff0c;其中不乏一些不良平台&#xff0c;让老实人…

空间计算时代催生新一波巨大算力市场需求

什么是空间计算&#xff1f; 空间计算是一种整合虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;、混合现实&#xff08;MR&#xff09;等技术的计算模式&#xff0c;旨在将数字信息与真实世界融合在一起。这种融合创造了一个全新的计算环境&#xff…

a-range-picker获取开始和结束时间

效果图 代码块 <a-range-picker change"onChangeRangeDate" format"YYYY-MM-DD"/>onChangeRangeDate(value,dateString){this.startDatedateString[0]this.endDatedateString[1]}

蓝桥杯回文日期判断

思想&#xff1a;对于回文数的判断方法&#xff0c;最快的就是取其中一半的字符串长度&#xff0c;为s&#xff0c;然后将其进行翻转为s’ &#xff0c;再把两者进行拼接即可保证是回文数&#xff0c;这样子就解决了枚举所有回文数的问题。 注意点&#xff1a; 要求必须是有效…