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

2024-01-19 23:12

本文主要是介绍转换海盗王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")
}

这篇关于转换海盗王lua脚本ICU多语言的golang代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/624023

相关文章

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

golang版本升级如何实现

《golang版本升级如何实现》:本文主要介绍golang版本升级如何实现问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录golanwww.chinasem.cng版本升级linux上golang版本升级删除golang旧版本安装golang最新版本总结gola

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的