ios8+swift app多语言——国际化和本土化

iOS 多国语言本地化与App内语言切换(Swift) 一个好的心态和一个坚持的心很重要,很多冲着高薪的人想学习前端,但是能学到最后的没有几个,遇到困难就放弃了,这种人到处都是,就是因为有的东西难,所以他的回报才很大,我们评判一个前端开发者是什么水平,就是他解决问题的能力有多强。分享一些简单的前端面试题以及学习路线给大家,狂戳这里即可获取!!!就放弃了,这种人到处都是,就是因为有的东西难,所以他的回报才很大,我们评判一个前端开发者是什么水平,就是他解决问题的能力有多强。分享一些简单的前端面试题以及学习路线给大家,狂戳这里即可获取!!! 阅读详情

iOS初学者可以关注我的iOS开发相关的视频课程。

开发一款国际化的iOS App,则必须考虑支持多国家语言,如何实现呢?

第一、国际化——多国家语言;第二、本土化——数据、时间、货币格式等。

DEMO环境:mac osx 10.10+/ios8+/xcode6.1+

一、新建工程MultiLanguage


二、Main.storyboard设计界面


如上图所示,默认语言是中文。为了国际化设计,要求不同国家的用户所见界面是适合当地文化(本土化),图片表示用户所在国家的不同,商品名称描述、数据格式、金额币种、日期时间。

三、增加多语言。(中、英文)

1、点击工程名-->右侧选中project名称-->点击左下角localizations下面的“+”,选择语言chinese(简体中文)


2.弹窗口中勾选main.storyboard和luanchscreen,该操作的目的是实现界面设计时(非程序运行)相对固定的描述性文字的多语言,如“商品:”、“销量:”,等等。


3.点击finish完成后,点击main.storyboard,Xcode右侧的属性监视窗口即可看到增加了chinese语言,同时我们把english语言也勾选。对launchscreen.xib执行同样操作。


4.接下来,用main.storyboard界面举例,launchscreen.xib是类似操作。

三、设置界面标签描述文字的多语言

1.点击main.storyboard下的main.strings(中文),

右侧文件的内容是xcode自动生成的,“=”等号左侧的是对应界面元素的ID,右侧是对应的文本值,我们只需要修改=右侧内容,这里我们只需要设计标签文本的中文,“商品”、“销量”、“利润”、“时间”,其对应的右侧值稍后在代码中动态修改后显示。为了简单起见,可删除该部分内容,完成后如下图所示:


2.点击main.storyboard下的main.strings(english),设置标签文字的英文,并删除多余部分,如下图所示:


3.标签文字多语言设置完成,我们看看界面效果,点击main.storyboard-->右侧点击-->再点击如下图所示:



然后点击视图右下加的语言,切换成english,在界面设计时(程序未运行)即可看见多语言效果:



四、设计标签右侧对应值的多语言,这个在程序运行时动态设置。

1.界面上的值标签与viewcontroller代码关联,即对象抽象定义


2.向工程中添加新文件——多语言字符串文件,并命名文件为Localizable.strings



3.设置Localizable.strings文件支持多语言中、英文,点击该文件,在xcode右侧属性监视窗口,点击localize...按钮


同时勾选english和chinese,


完成后,工程目录中的localizable.strings文件下面包含中英文的文件


4.分别在localizable.strings(chinese)和localizable.strings(english)文件中设置商品值标签“苹果手机”的多语言文本:key=value



5.在viewcontroller代码文件中,视图加载完时设置商品名称,使用

NSLocalizedString方法



6.设置数据,货币,日期时间格式本土化,不同地区数字格式不同,币种不同,日期时间格式不一样。我们分别自定义数字格式器、货币格式器和日期时间格式器:

    // 数字格式

   var numberFormatter:NSNumberFormatter{

       let formatter=NSNumberFormatter()

        formatter.numberStyle=NSNumberFormatterStyle.DecimalStyle

       return formatter

    }

    // 货币格式

   var currencyFormatter:NSNumberFormatter{

       let formatter=NSNumberFormatter()

        formatter.numberStyle=NSNumberFormatterStyle.CurrencyStyle

       return formatter

    }

    

    // 日期时间格式

   var dateFormatter:NSDateFormatter{

       let formatter=NSDateFormatter()

        formatter.dateStyle=NSDateFormatterStyle.MediumStyle

        formatter.timeStyle=NSDateFormatterStyle.MediumStyle

       return formatter

    }

7.在viewcontroller代码文件中

viewDidLoad()方法体内给相应的标签赋值,代码如下:

    overridefunc viewDidLoad() {

       super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        

        // 标签初始化值

       //商品

       lblProduct.text=NSLocalizedString("PRODUCT_NAME",comment:"商品名称");

       //销量

        lblSales.text=numberFormatter.stringFromNumber(99999);

       //利润

        lblProfit.text=currencyFormatter.stringFromNumber(2347898)

       //日期

        lblDateTime.text=dateFormatter.stringFromDate(NSDate())

    }

8.设置模拟器语言为英文,运行后界面显示如下:


设置模拟器语言为中文,运行后界面显示如下:



五、设置图片适应多语言。

不同语言时,图片需相应显示不同国家的国旗。比如,中文时,显示中国国旗;英文时显示美国国旗。

点击工程目录中的图片flag.png文件,再在右侧属性监视窗口点击localiza...同时勾选english/chinese,完成后,如下图所示:


在磁盘finder中打开flag图片所在的目录,打开en.lproj目录和zh-Hans.lproj目录,可见同时存在相同的flag图片,


此时用相同命名的美国国旗flag替换en.lproj目录中的同名图片文件(已存在的中国国旗flag)。

六、设置xcode调试环境或切换iOS模拟器语言(中文、英文),运行app后可见效果。




*大家可关注我的优快云学院的iOS开发视频课程。






用数学建模与AI识别庞氏骗局的实战方法论 庞氏骗局本质上是违背复利规律与实体经济产出约束的数学异常,其核心特征表现为资金流不可持续、收益曲线严重偏离市场基准、兑付行为丧失弹性。基于公开可得数据构建现金流斜率突变率(CSR)、收益-时间偏离度(RTD)和兑付刚性指数(RI)三大数学指纹,可绕过传统依赖标签数据的风控模型局限,实现对伪装型金融欺诈的早期预警。该方法强调可解释性、轻量化部署与基层实操性,适用于金融监管、经侦办案及普通投资者自主筛查等多元场景,将高维AI能力锚定在坚实可验证的数学原理之上。 阅读详情

相关推荐

ios-Swift多国语言本地切换方法升级Swift4.0.zip

简单实现APP内的语言切换方式!

swift5 ios的国际化(本地化,全球化,多语言)(最主要博客)

swift ios的国际化(本地化) 我主要参考的是这位大神的博客 链接: hangge 要注意的地方1 要注意的地方2 在APP内切换语言的几篇博客 链接: 博客1 链接: 博客2 链接: 博客3 ...

baidu_40537062的博客 6378

swift4.0 彻底实现国际化,支持程序内切换语言

用swift实现App名,字符串资源,图片资源实现国际化(支持中文,英文,马来文,其它自己添加),Demo里面实现了语言切换功能!

Swift实现应用的多语言

import Foundation enum Language { case english case chinese } class LocalizationTool { static let shared = LocalizationTool() let defaults = UserDefaults.standard var b...

冰凉的枷锁的博客 3431

ios-Swift版本的多国语言本地化--实现应用内切换.zip

支持系统静态的控件,一句代码实现应用内语言的切换

swift-Sketch的多语言简体中文繁体中文日语显示插件

Sketch 的多语言(简体中文、繁体中文、日语)显示插件,让 Sketch 显示中文界面。

ios swift 多语言_Swift iOS CLLocationManager多合一

ios swift 多语言Apple provides many good services to clients. One of the most useful and famous function is her location detection technology. With the help of GPS and cell tower signal, iOS can manipula...

weixin_26638123的博客 741

解决屏幕不亮难题:慷智SerDes DE信号极性配置避坑指南

本文深入探讨了基于慷智AIM95x系列SerDes芯片的嵌入式显示系统开发中,因DE信号极性配置不匹配导致屏幕不亮的典型故障。文章详细解析了DE信号的核心作用与极性定义,提供了慷智SerDes芯片中DE极性寄存器的具体配置方法与调试记录,并给出了从隔离问题、对比时序到波形验证的系统性排查流程,帮助工程师快速定位并解决此类隐蔽问题。

weixin_29185493的博客 139

将Swift和ObjectiveC用于多语言应用程序:掌握开发最佳实践

作者:禅与计算机程序设计艺术 将Swift和Objective-C用于多语言应用程序:掌握开发最佳实践 作为人工智能专家,程序员和软件架构师,CTO,我旨在这篇文章中向读者介绍将Swift和Objective-C用于多语言应用程序的最佳实

AI天才研究院 6132

深入解析DisplayPort(DP)接口:从主链路到辅助通道的全方位技术剖析

本文深入解析DisplayPort(DP)接口的核心技术架构,重点剖析了其三大功能模块:承载视频/音频数据洪流的Main-Link主链路、负责链路训练与设备控制的AUX CH辅助通道,以及实现智能交互的HPD热插拔检测。文章详细阐述了主链路的可伸缩Lane配置、嵌入式时钟与数据成帧机制,以及辅助通道在设备发现、动态优化信号质量(链路训练)中的关键作用,揭示了DP接口实现高效率与灵活性的设计哲学。

weixin_29267307的博客 485

不止是回退SDK:深入解读UE5.2编译时那个烦人的C4756警告与INFINITY宏的变迁

本文深入解析了UE5.2源码编译时出现的C4756警告及其背后的技术原因,探讨了Windows SDK中INFINITY宏的变迁对Unreal Engine的影响。文章详细介绍了微软修改INFINITY定义的技术考量,并提供了UE5.2应对此类问题的灵活解决方案,包括通过BuildConfiguration.xml文件精确控制工具链版本,确保构建系统的可重复性和可配置性。

weixin_27180827的博客 310

swiftUI开发如何修改应用名称

在实际的项目开发中,我们在创建项目写下第一行代码的时候,应用的名称一般会直接引用项目名称。然而这个时个应用的名称往往是未确定的,也未必是合适的,所以往往需要在后期更改应用名称,以达到上架等各种目的。所以,在Xcode中如何正确地修改应用名称,下面介绍四种方法, 其中最后一种直接修改项目名称将是最为稳妥的方法。

Doooooooony的博客 2177

ANSYS Twin Builder实战:5步搞定数字孪生模型部署(附ROM配置技巧)

本文详细解析了ANSYS Twin Builder在数字孪生模型部署中的实战应用,重点介绍了ROM(降阶模型)配置技巧。通过5个关键步骤,从环境搭建到工业部署,帮助工程师高效实现高精度三维仿真到轻量化数字孪生的转化,提升预测性维护和系统仿真效率。

weixin_27330481的博客 658

swift 国际化,app内部中英语言切换

重点是app 内部切换 1.配置languege.strings.infoPist.Strings 2.LocalizationTool.swift,实现内部切换 // // LocalizationTool.swift // IFXY // // Created by LiuXing on

aa654403231的专栏 4621

西门子200SMART PID温控实战:从配置到避坑(附加热棒控制案例)

本文详细介绍了西门子200SMART PLC在PID温控系统中的实战应用,涵盖硬件配置、PID参数整定及工程避坑技巧。通过加热棒控制案例,重点解析了信号处理、固态继电器选型、断电保持和无扰切换等关键问题,为工业自动化领域的温度控制提供可靠解决方案。

weixin_28727975的博客 356

APM水下机器人实战:从零搭建高精度自主航行系统

本文详细介绍了如何基于开源APM飞控及其水下分支ArduSub,从零搭建高精度自主水下航行器。核心在于集成双天线RTK模块实现厘米级定位与精确航向,并配合MAVROS与ROS构建自主控制系统。文章涵盖了硬件选型、软件配置、自主逻辑开发及水池调试的全流程实战经验,为水下机器人爱好者与研究者提供了一套完整的自主航行系统解决方案。

app77的博客 512

终极指南:awesome-swift实现iOS多语言与本地化的完整方案

在移动应用开发中,国际化与本地化是拓展全球用户的关键步骤。awesome-swift作为Swift生态中最全面的资源集合,提供了从基础翻译到高级动态本地化的完整解决方案。本文将系统介绍如何利用awesome-swift中的精选工具,快速实现iOS应用的多语言支持,让你的应用轻松跨越语言障碍。 ## 为什么选择awesome-swift进行本地化? awesome-swift项目收录了数十个经过

gitblog_00950的博客 815

【数据集】中国陆地生态系统通量观测网 ChinaFLUX

【数据集】中国陆地生态系统通量观测网 ChinaFLUX

WW、forever的博客 187

Swift 多范式编程语言(对象,函数,协议)

Swift 的编程范式 编程范式是程序语言背后的思想。代表了程序语言的设计者认为程序应该如何被构建和执行的看法。常见的编程范式有:过程式,面向对象,函数式,泛型编程等。 一些编程语言是专门为某种特定范式设计的,例如,C 语言是过程式编程语言;Smalltalk 和 Java 是较纯粹的面向对象编程语言;Haskell,Scheme,Clojure 是函数式编程语言。 另外一些编程语言和编...

不积跬步 无以至千里 不积小流 无以成江海 526

把核心变干净的代价与回报:为什么推动 Clean Core,几乎绕不开 SAP Integration Suite 与 API Management

Clean Core的核心价值在于构建可持续升级的ERP系统架构,其关键不在于减少代码或限制扩展,而是通过解耦和治理实现系统边界的清晰划分。这一理念将推动企业从传统的"私搭乱建"式集成向平台化工程转型,而SAP Integration Suite和API Management正是实现这一转型的核心组件。 Integration Suite作为集成中枢,通过统一平台、可复用内容库和事件驱动架构,将碎片化连接转变为标准化能力;API Management则负责建立接口治理体系,通过统一入口、

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 241

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

如何通过ms-swift实现多语言翻译模型优化?

通过ms-swift框架,开发者可在低资源环境下高效微调多语言翻译模型,支持QLoRA、4-bit量化与混合并行训练,并一键部署至vLLM等高性能推理引擎,实现高吞吐、低延迟的翻译服务,适用于全球化应用场景。

weixin_29496633的博客 594

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【小白向导】全面掌握“Localize-Swift”:轻松实现iOS应用国际化

“Localize-Swift”是一个专为Swift编写的iOS应用程序设计的轻量级框架。它简化了国际化(i18n)和本地化的过程,让开发者能够以更加简洁的语法处理多语言支持,并且允许用户在应用内部切换语言,无需调整设备的系统设置。此项目由Swift主导,同时涉及少量Shell脚本和Ruby用于辅助工具。 ## 二、关键技术与框架 ### 关键技术: 1. **Swift友好语法**:通过`l...

gitblog_01204的博客 971

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

swift如何实现语言国际化,适应各国语言

在工程文件中创建新的文件右键New File -> Resource -> Strings File,取名为Localizable.strings选中工程在Localizations选项下选择“+”即可选择想要适配的语言,如上图选择了英文和简体中文。选中后去掉stroyboard的勾选去掉此时在文件Localizable.strings下会多出两个字文件,分别对应英文和中问的Strings。在str

大黑 5113

iOS Swift项目国际化(本地化,全球化,多语言)

包含:Java | 安卓 | 前端 | Flutter | iOS | 小程序 | 鸿蒙。专注《零基础学编程系列》 http://lblbc.cn/blog。厦门大学计算机专业|华为八年高级工程师。

蓝不蓝编程 2025

ios LaunchScreen启动页国际化(本地化)

1.像下面这样拖线会出现黑屏 2.参考下面的博客也会出现黑屏 启动页面国际化(Launch Screen Localized Image)

baidu_40537062的博客 3762

【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

IOS 应用开发简介 简单介绍了 IOS 工程文件, 界面设计文件, 按钮事件响应, 代码控制界面, 不同屏幕的图片适配

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 4847
上一篇: iOS开发介绍-陈辉辉-专题视频课程
下一篇: B2B2C商城产品原型设计(Web版本)-陈辉辉-专题视频课程
鸿花粉
博客等级 码龄20年 321粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿花粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值