Unity多语言插件I2 Localization国际化应用

news2024/9/27 15:31:50

【就不收费了,要个关注不过分吧】

【图片来自插件官网,侵删】

前言

目前游戏往往都不会仅局限于国内语言,为了适应产品都要做国际化适配,因此会用到这个插件,这个插件要付费,因此请前往unity官网进行下载,支持正版,这里就不提供了。

先来注意事项:

1、一般为了性能考虑要结合Tmp使用,但是这里会有个小问题,就是字库问题,有些字库并不全都兼容所有语言字体,这点要特别注意比如这段日文:

中文:本地化语言

日文:ローカライズ言語

但出来后就变成这样:

出现这种问题就是字库的问题,请开发者联系美术组进行处理。

2、格式一般我们会用utf-8这种国际通用的标准格式,但是总会有几个国家特殊,那就得考虑做个定制版,鄙人有幸见过这种情形,甚至有的国家网络传输方式传输编码,传输包尺寸等用的不是国际通行的格式,都需要重做。

3、关于这个插件,我们一般不使用谷歌的技术方案。【国际化那妖蛾子】当然要是适配xbox这些单机,主机,还有switch这种设备就还好,至少他们基本都遵循国际化标准,唯一可能有问题的需要考虑的就是网络,这点与本文无关,就不展开了。

【暂时就这么多,进入正文】

因此我们用的都是本地读取csv的技术方案,不管是小游戏,还是大型产品,包括但不限于工业仿真系统【ps:国内这类产品基本上没人考虑过国际化】

首先安装软件:

window->Package Manager->Packages:My Assets->I2 Localization

然后Import导入即可

然后是Tools这里

 先点下Force Detection,如果报错就说明这是初次初始化,如果没有报错就说明已经有生成好的配置了,一般在Resources下有个配置好的文件,直接点下进去配置就行了,如果有请跳过生成步骤,到配置

生成:

1、如果没有的话,一般open下也可以自动生成

2、不行的话也可手动

在Resources文件夹下,如图操作建立配置文件

配置:

然后侧边就会出现个空的这个

 【这个操作步骤是官网建议,实践中似乎可以自动生成...,以防万一,没试过】

这里打开添加你要用的语言,我这里选了中文和英文

 选择完,记得Add,添加下,然后就是这样

 选择完后,来到Spreadsheets选项卡,选择Local

然后来到你的热更新文件夹下,建个utf-8格式的csv文件,我这里不需要热更,就在Resources文件夹下,不要用中文。

 然后返回到这里,选择File,目录指定到这个csv文件,注意不要直接输入,选择这个,再选

他会卡一下,然后读取文件生成,你的csv表格内容如下图

重点就是绿色部分,一般国内key是中文,默认Description,为默认语言【添加个描述】,后面两个绿块,设置为你想要的语言,生成完后如下:

这里还没完,再来到Tools->Script 

选个All,接着Build生成下,这样配置就好了

 如何使用:

新建一个TMP,关于TMP生成部分这里就略,因为不是本文重点

先选择好你TMP的Font Asset

然后添加脚本【l2 Localize】

一般他会自己自动指定好Target,如果不行请手动切换 ,您也可通过代码进行添加

然后我在这里加了个测试代码,Localize textLocalize 是获取的TMP

 //声明要多加
using I2.Loc;
using TMPro;

public Button btn_ch, btn_en;
public TextMeshPro text;
//获取的TMP
 public Localize textLocalize;
 //切换英文
 void ChangeLanguageEnglish()
 {
     if (LocalizationManager.HasLanguage("Chinese"))
     {
         LocalizationManager.CurrentLanguage = "English";
     }
 }
 //切换中文
 void ChangeLanguageChinese()
 {
     if (LocalizationManager.HasLanguage("English"))
     {
         LocalizationManager.CurrentLanguage = "Chinese";
     }
 }

 // Start is called before the first frame update
 void Start()
 {
     btn_ch.onClick.AddListener(ChangeLanguageChinese);
     btn_en.onClick.AddListener(ChangeLanguageEnglish);
     //括号里填的是你文字表中的key
     textLocalize.SetTerm("语言");
 }

这样就完成了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows系统设置定时任务,周期性执行.bat文件

通过.bat清除注册表项 在 Windows 系统中,.bat 文件(批处理文件)是一个包含一系列命令的文本文件。这些命令会被 Windows 命令解释器 (cmd.exe) 依次执行。 你可以把它想象成一个简单的程序,但它不像 C 或 Python 那样需要编译&a…

Go容器化微服务系统实战

1-1 本课的go微服务有什么不同? 聚焦于容器化可观测的购物微服务系统实战,通过介绍Go语言的应用趋势、容器化优势及微服务适用性,旨在解决学习微服务过程中遇到的难点。课程内容涵盖微服务整体架构、技术工具框架及容器平台等关键技术&#…

Linux文件IO(九)-原子操作与竞争冒险

Linux 是一个多任务、多进程操作系统,系统中往往运行着多个不同的进程、任务,多个不同的进程就有可能对同一个文件进行 IO 操作,此时该文件便是它们的共享资源,它们共同操作着同一份文件;操作系统级编程不同于大家以前…

javase复习day33网络编程

网络编程 常见的软件架构 BS架构 CS架构 网络编程小结 网络编程三要素 三要素小结 IP IPV4 IPV6 IP小结 IPV4的地址分类形式 常用的CMD命令 小结 InetAddress的使用 public class Demo1 {public static void main(String[] args) throws UnknownHostException {//获取IP对象/*…

【EI会议大盘点!涵盖计算机图像视觉、机器学习等众多方向】

EI会议,作为全球知名的学术会议平台,以其广泛的影响力和严格的收录标准著称。 相较于SCI、核心期刊等期刊来说,EI会议的审稿周期更短,最快7天即可录用。 费用上也相对较低,这对于资金和时间双重压力的学生党来说&…

Rpc框架——服务端框架设计

目录 一、Network 二、Protocol 三、Dispatcher 四、RpcRouter 五、Publish-Subscribe 六、Registry-Discovery 七、Server 服务端的功能需求: 基于网络通信接收客户端的请求,提供rpc服务 基于网络通信接收客户端的请求,提供服务注…

【POJ-1061 青蛙的约会】

题目 代码 #include <bits/stdc.h> using namespace std; typedef long long LL; LL ex_gcd(LL a, LL b, LL &x, LL &y) {if (b 0){x 1;y 0;return a;}LL gcd ex_gcd(b, a % b, x, y);LL tmp x;x y;y tmp - a / b * y;return gcd; } int main() {LL x, y…

springboot实战学习(9)(配置mybatis“驼峰命名“和“下划线命名“自动转换)(postman接口测试统一添加请求头)(获取用户详细信息接口)

接着学习。之前的博客的进度&#xff1a;完成用户模块的注册接口的开发以及注册时的参数合法性校验、也基本完成用户模块的登录接口的主逻辑的基础上、JWT令牌"的组成与使用以及完成了"登录认证"&#xff08;生成与验证JWT令牌&#xff09;具体往回看了解的链接…

SpringBoot项目编译运行成功,但有些包名类名仍然下划线标红的解决方法 | Idea

目录 问题解决方案&#xff1a;方法一&#xff1a;方法二【我用这个成功的】 问题 如图&#xff0c;成功运行但有些包名类名仍然下划线标红&#xff0c;强迫症抓狂 成功运行&#xff1a; 有些包导入标红&#xff1a; 解决方案&#xff1a; 方法一&#xff1a; 点击fil…

K8S介绍---搭建集群

Kubernetes介绍 官网&#xff1a;https://kubernetes.io/ 一、应用部署方式演变 1、传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其他技术的参与 缺点&#xff1a;不能为应用程序定义资源使用边界&a…

AXI4-Stream

AXI4-Stream 简介信号握手机制字节类型TKEEP和TSTRBAXI4-Stream Data FIFO正常模式packet模式 AXI4-Stream Interconnect 简介 这是一种连续流接口&#xff0c;不需要地址线&#xff08;很像 FIFO &#xff0c;一直读或一直写就行&#xff09;。对于这类 IP &#xff0c;ARM 不…

WebUI密码被锁定

锁定密码 打开-webui/打开-webui 讨论 #1027 (github.com) 当你忘记WebUI密码了

通信工程学习:什么是VPN虚拟专用网络

VPN:虚拟专用网络 VPN(Virtual Private Network),即虚拟专用网络,是一种通过公共网络(如互联网)建立私有网络连接的技术。以下是关于VPN的详细解释: 一、VPN虚拟专用网络的定义与原理 VPN通过公共网络(通常是互联网)建立一个临时的、安全的连接,形…

一维数组在内存中的存储

在之前的文章中&#xff0c;我已经介绍了一维数组的创建和初始化和一维数组的使用&#xff0c;今天我们来深入了解一下一维数组在内存中的存储形式。 首先我们先用代码打出数组元素的地址。 #include <stdio.h> int main() { int arr[8]{1,2,3,4,5,11,6,7,8}; int i0; …

单词记忆的化境:用思想的流水去淹没坚硬的石块

其实&#xff0c;鹅卵石通常都是很硬的。但是河底的石子&#xff0c;几乎大多都成了鹅卵石&#xff0c;它们被流水淹没&#xff0c;日复一日、夜以继日的冲刷着&#xff0c;没有了棱角。 在单词的记忆过程中&#xff0c;我们有太多的人&#xff0c;都有着不堪回首的往事&#x…

HDFS分布式文件系统01-HDFS JAVA操作与联邦机制

HDFS分布式文件系统 参考学习目标第三课时知识点1-HDFS的Java API介绍知识点2-案例-使用Java API操作HDFS 第四课时知识点1-Federation机制的实现原理知识点2-Federation机制的特点知识点3-Federation机制的实现知识点4-Erasure Coding 参考 maven的setting.xml配置文件详解 …

影刀RPA实战:网页爬虫之天猫商品数据

1.实战目标 1.1 实战目标 在电商行业&#xff0c;我们经常爬取各个平台的商品数据&#xff0c;通过收集和分析这些商品数据&#xff0c;企业可以了解市场趋势、消费者偏好和竞争对手的动态&#xff0c;从而制定更有效的市场策略。爬取商品数据对于企业在市场竞争中把握先机、…

招联金融2025校招内推喇

【投递方式】 直接扫下方二维码&#xff0c;或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus&#xff0c;使用内推码 igcefb 投递&#xff09; 【招聘岗位】 深圳&#xff0c;武汉&#xff1a; 后台开发 前端开发 数据开发 数据运营…

SD卡读写

SD卡 SD卡分类根据存储容量根据性能 SD卡协议简介SPI 模式命令命令格式命令类别CMDACMD 响应R1R2R3R7 寄存器CSD 总线读操作写操作擦除&写保护 初始化流程 SD 模式 IP 设计IP 例化界面IP 接口IP 状态机IP 验证 雷龙贴片式TF卡参考资料 SD卡分类 根据存储容量 Standard Ca…

五星级可视化页面(26):经常被模仿,从未被的超越的大屏界面。

Hello&#xff0c;各位老铁&#xff0c;本期分享的可视化界面&#xff0c;你可能在某些地方见过&#xff0c;或者被某些设计师临摹过&#xff0c;说明它们足够漂亮了&#xff0c; 你如果仔细观看细节&#xff0c;还是会发现很作出彩的地方不是轻易可以模仿的。 只有创新&#x…