IOS:iOS项目的版本国际化的完整流程

1:项目,右键-project-info-Localizations,里面选择自己要添加 的语言

=============

2:新建InfoPlist.string文件,名字不能错,strings类型在sources里面

选中InfoPlist文件,右侧菜单栏,Localization里选择语言版本,打勾,最基本的开发语言english选不选都行,选中后,会发现InfoPlist文件有附属文件生成,对应你选择的语言版本

在生成的文件里添加

CFBundleDisplayName=“XXXX”

比如中文简体里 

CFBundleDisplayName=“测试”

英文 里填

CFBundleDisplayName=“Test”

这个名字是你的软件在不同电脑语言环境下的名字

================

3:接着新建一个

Localizable的strings,名字不能错。同样在右侧菜单选择你要的语言版本,这里面填写你的项目代码里的字符串的国际化

注意引号,分号不要错

================

4:整个项目的全部批量替换

xcode 左侧全局搜索框, 切换成replace -> Regular Expression

搜索条件中输入 (swift 去掉@)
(@"[^"]*[\u4E00-\u9FA5]+[^"\n]*?")
替换成
NSLocalizedString($1, nil)

 

全部替换后,你会发现你的代码发生了变化,有字符串的地方都会带上NSLocalizedString

==================

5:xib页面的国际化

选择xi b页面,右侧localizable选择语言打勾,注意一定要选中Base.

从上面几条做下来,这里面也是一样的,很好理解

 

6:排除BUG,因为替换字符串用的是全局替换,所以有些不该替换的地方替换掉了

 比如:你用了某个图,imageName:@"图一",这里面是图的名称,但是你替换掉后,它就找不到叫这个名称的图了

所以把代码大致扫一遍,看看哪些不能用NSLocalizedString的,再改回来

 

7:基本没啥问题了,国际化到这里结束,改自己的电脑的语言,再重启项目,发现会自动变为其他语言版本

 

 

posted @   DDD-SagerKing  阅读(250)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示
主题色彩