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

ops/2024/11/15 1:48:49/

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

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

前言

目前游戏往往都不会仅局限于国内语言,为了适应产品都要做国际化适配,因此会用到这个插件,这个插件要付费,因此请前往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;
//获取的TMPpublic 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 updatevoid Start(){btn_ch.onClick.AddListener(ChangeLanguageChinese);btn_en.onClick.AddListener(ChangeLanguageEnglish);//括号里填的是你文字表中的keytextLocalize.SetTerm("语言");}

这样就完成了


http://www.ppmy.cn/ops/113655.html

相关文章

php环境搭建教程(超详细)

要搭建一个PHP环境,你可以通过多种方式来进行配置,下面我将提供一个从零开始的详细教程,适用于想在Windows、Mac或Linux上搭建PHP环境的小白用户。我们会逐步讲解如何搭建PHP环境,使用常见的集成开发环境(如XAMPP、MAM…

Spring Boot-自动配置问题

**### Spring Boot自动配置问题探讨 Spring Boot 是当前 Java 后端开发中非常流行的框架,其核心特性之一便是“自动配置”(Auto-Configuration)。自动配置大大简化了应用开发过程,开发者不需要编写大量的 XML 配置或是繁琐的 Jav…

鸿蒙HarmonyOS之使用ArkTs语言获取应用版本等信息

一、获取BundleInfo 获取的版本号是在app.json里面配置的"versionName"参数值&#xff0c;例如: 1.0.0 1、获取应用版本号方法 import bundleManager from ohos.bundle.bundleManager;/*** 获取应用版本号*/ export async function getAppVersion(): Promise<s…

初学51单片机之IO口上下拉电阻相关

本案本来是描述一下I2C总线的&#xff0c;在此之前推荐一下B站一个UP关于时序图的讲解 I2C入门第一节-I2C的基本工作原理_哔哩哔哩_bilibili 不过在描述I2C前先简单的探讨下51单片机IO口下拉电阻的基本情况&#xff0c;事实上这个问题困扰笔者很长时间了&#xff0c;这次也是一…

计算机毕业设计 基于Python的汽车销售管理系统 Python+Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

Ceph官方文档_02_Ceph初学者指南

初学者 Ceph初学者指南的目的是让Ceph变得容易理解。 Ceph是一个集群和分布式存储管理器。如果这太神秘了,那么就把Ceph看作是一个存储数据并使用网络来确保有数据备份的计算机程序。 存储 Ceph提供了几种“存储接口”,这是“存储数据的方式”的另一种说法。这些存储接口…

window批处理脚本:将本地的三个文件通过SCP传输到Linux设备上

文件名send_file.bat&#xff1a; echo off setlocal:: 提示用户输入远程IP地址 set /p remoteIpAddressplease input IP::: 定义本地文件名 set "localFile1111" set "localFile2222" set "localFile3333":: 获取本地文件的完整路径 set "…

视觉检测中的深度学习应用

引言 视觉检测是计算机视觉的一个重要领域&#xff0c;涉及到对图像或视频流进行分析和理解。随着深度学习技术的迅猛发展&#xff0c;视觉检测领域发生了革命性的变化。深度学习通过使用复杂的神经网络模型&#xff0c;尤其是卷积神经网络&#xff08;CNNs&#xff09;&#…