unity开发安卓app的时候,想要实现应用名称本地化,但是PlayerSettings里面只能填写一个Product Name
所以只好借助安卓的方式实现,研究了下其实还是挺方便的,步骤如下:
在unity项目内的Temp文件夹找到unity自动生成的安卓文件(ps:要先发布apk出来才有),会看到如下图
将values文件夹拷贝到Assets/Plugins/Android/res中,如果Plugins下没有相关目录,自己创建下
因为只要本地化应用名称,所以只需要拷贝values文件夹
复制values目录,然后改成对应语言的名称,如现在要适配中文,那么就把目录名称改为values-zh,简体中文就是values-zh-rCN,繁体就改成values-zh-rTW,对应的名称在文章后面有详细的列出来 复制完的目录进去打开strings.xml文件,修改成想要显示的名称即可
unity中的文件目录大概是这样
如果适配了很多语言的话,目录结构就是这样
切记修改strings.xml时把保存编码另存为UTF-8,否则填写中文就会打包错误
解释一下本地化的原理,values里面的strings.xml的app_name字段对应app名称,每种语言以values-xx(xx代表国家代码)的方式保存,如中国就是values-zh,中国台湾就是values-zh-rTW,大陆就是values-zh-rCN,很多国家如果要区分比如英国英语或者美国英语就是values-en-rGB和values-en-rUS,如果只是英语就是values-en(文章末尾会附上Android各国语言values文件格式)经测试:values的strings.xml里的app_name会被Unity的PlayerSetting的product name覆盖
第二种方式就是使用插件完成:Localized App Name for iOs and Android(不过是要钱的)
附:Android各国语言Values文件夹命名规则 维吾尔文(中国):values-ug-rCN
中文(中国):values-zh-rCN
中文(台湾):values-zh-rTW
中文(香港):values-zh-rHK
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE
英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA
阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亚文: values-bg-rBG
加泰罗尼亚文:values-ca-rES
捷克文:values-cs-rCZ
丹麦文:values-da-rDK
德文(奥地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德国):values-de-rDE
德文(列支敦士登):values-de-rLI
希腊文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美国):values-es-rUS
芬兰文(芬兰):values-fi-rFI
法文(比利时):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法国):values-fr-rFR
希伯来文:values-iw-rIL
印地文:values-hi-rIN
克罗里亚文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亚文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韩文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脱维亚文:values-lv-rLV
挪威博克马尔文:values-nb-rNO
荷兰文(比利时):values-nl-BE
荷兰文(荷兰):values-nl-rNL
波兰文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
罗马尼亚文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亚文:values-sl-rSI
塞尔维亚文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛语:values-tl-rPH
土耳其文:values–r-rTR
乌克兰文:values-uk-rUA
越南文:values-vi-rVN ————————————————
以上部分原文链接:https://blog.csdn.net/egostudio/article/details/50961729
PS:按以上步骤,如果是Unity2021,会遇到打包报错: Exception: OBSOLETE - Providing Android resources in Assets/Plugins/Android/res was removed, please move your resources to an AAR or an Android Library. See "AAR plug-ins and Android Libraries" section of the Manual for more details。可参考以下解决办法。
百度了一下是Unity2021不再支持在安卓Build的时候直接存在Android/res文件夹
解决方案最佳是去自己创建aar插件丢进去, 可惜对于我来说过于麻烦.
找到另一种相对简单的解决方案如下:
在Plugins/Android文件夹下创建CustomAndroidResource.androidlib文件夹
把原来Plugins/Android文件夹下的res文件夹移到CustomAndroidResource.androidlib文件夹下
在CustomAndroidResource.androidlib文件夹下创建两个文件,文件名和内容分别如下
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="custom.android.res"
android:versionCode="1"
android:versionName="1.0">
</manifest>
project.properties
target=android-9
android.library=true
target=android-9 android.library=true 4.最终如下,重新打包完成
————————————————
此部分原文链接:https://blog.csdn.net/qq_28784217/article/details/128863508