iOS开发--语言国际化-最新使用方法

iOS 国际化如何指定默认语言 iOS的国际化来说一直都感觉处理起来非常麻烦,也一直想找找到一个比较完美的解决方案来解决国际化问题。之前分享过一篇过于国际化的文章,现再深入分析一下。 因为文章之前写的。原文章已经被更新啦。会在最后更新出来。一.存在问题1.官方没有给出一套关于国际化的完美的处理方式。 2.没有适配这种语言的时候不能指定显示其他语言。它会默认选择上一次的语言。 3.大版本更新后,数据更新不兼容之前的版本。 4 阅读详情

前言
我这篇文章主要介绍,如何实现APP的语言随着iOS系统语言的改变而改变,包括以下三部分:

1)通过代码实现文本国际化
2) APP名字的国际化
3)storyboard(xib类似)上文本国际化实现

实现步骤
第一步:首先在项目下找到info里面的Localizations,添加相对应的语言strings文件
这里写图片描述
第二步:根据自己的需要选择上面所显示的四个文件。如果一个不选择,那么本地化语言也不会增加。当本地化语言时也只会有base和默认的English两个选项。
点击finish之后,会生成对应的strings文件。
第三步:看下面分情况介绍。
分情况介绍
1. 通过代码实现文本国际化+APP名字的国际化
看到上面的可选择的四个文件,你一定比较纳闷最后两个选项:InfoPlist.strings+Localizable.strings。先说下创建方法:第一可以直接创建strings文件,注意名字不要错了,第二,也可以直接创建空文件名字写上后缀.strings生成。
之后选择文件,在右边选项你会看到Localization选项,点击之后,你就可以选择你前面已经在info里面设置的几种语言的strings文件的生成。
这里写图片描述
 这里写图片描述]![这里写图片描述
那么这两个都有什么用途呢?
第一、InfoPlist.strings主要用于实现APPName的语言国际化,主要通过CFBundleDisplayName来实现,具体实现如下图:
这里写图片描述
细心的同学应该可以看到我生成了5个文件,base+两种汉文+两种英文。base的文件主要用于当系统没有找到对应语言的strings文件而默认的值,如果不用base文件,这个情况就会显示默认的English-develop设置的APPName名。其他主要用于对应语言的APPName的设置。
第二、Localizable.strings主要用于实现APP内部文本的语言国际化,主要在对应的strings文件里设置文本的key值以及对应的语言value值,然后在对控件设置文本时使用NSLocalizedString(key, comment)宏定义方法实现。但是这个如果没有base文件和对应语言的strings文件,默认的文本就是key值。
具体实现如下图:
这里写图片描述
说明:我自己试了以下,要想实现中英文的实现,必须要有两种英文和两种汉文,否则没法实现,英文一个是默认的English-develop(不需要添加),一个是en-AS或者en-US这两个都能实现(这两个都可以,不过其他的我也没试,不过具体哪个还的看你系统设置的语言,这个可以根据公司需求设置,当时我们公司就要求了澳大利亚欧洲等,不过如果系统选择的那个最简单的English语言的,应该只能两个吧,即美国英语),汉文选择的是Chinese-Simplied和Chinese-Traditional(因为我系统语言设置的是简体中文)。
具体实现效果图如下:
这里写图片描述

  1. storyboard(xib类似)上文本国际化实现
    storyboard一般有两种实现方法:
    1)一种是通过生成的strings文件,修改文件里面的对应的文本值
    这里写图片描述
    2)一种是通过生成对应语言的storyboard。
    这里写图片描述
    不过我感觉如果你的项目每个语言版本控件布局一样,那么适合第一种方法,如果布局不一样(例如英文太长而应该有不同布局),那么适合第二种。
    具体实现效果如下图:
    这里写图片描述

注:如果只是通过代码实现的话,如果先去info添加本地化语言的话,就没有可选择的文件,那么就没法添加成功,所以应该先创InfoPlist.strings+Localizable.strings文件。

如果有更好的方法或建议望大神指教。

iOS开发:获取手机等设备当前的语言和地区的方法 在iOS开发过程,尤其是开发有需要做国际化的项目的时候,如果需要做本地语言国际化,需要获取到手机本地语言设置,然后向服务器请求数据的时候,需要把获取到的手机本地语言参数传给后台,然后后台根据具体的语言参数来返回不同语言类型的数据。那么本篇博文就来介绍一下在iOS开发中,获取手机本地设置的语言和地区。 一、获取设备当前语言和地区 //方法一: NSString *localeLanguageC... 阅读详情

相关推荐

iOS应用国际化及语言动态切换更新指南

iOS开发中的国际化流程主要包括几个关键步骤:创建本地化资源文件、配置InfoPlist文件、Storyboard和XIB的本地化处理,以及代码层面的字符串本地化处理。每个步骤都要求开发者有条不紊地进行,以确保应用程序的国际版能够无缝运行。

weixin_28235889的博客 1441

iOS 国际化(多语言)

Xcode使用带有 “.strings” 扩展名的文件来存储和检索 程序中使用的所有字符串,以及支持的每种语言。创建完“InfoPlist.strings”(命名随意~),工程目录结构文件如下,单击“InfoPlist.strings”,查看右边的属性,在Localizable栏添加语言。”,选择“iOS”对应的“Resource”中的“Strings File”)。这个时候就可以在对应语言的“InfoPlist.strings”文件中,添加所支持的字符串了。创建一个 “.strings” 扩展名的文件。

长沙火山 1万+

MFC 修改CheckBox的文本颜色方法

设置主题 这一步是必须的,不可省略。 BOOL CMFCApplication1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 // 设置主题 HWND

Kim的博客 2249

iOS开发之国际化

前言 语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这就要求应用程序所展示的文字、图片等信息,能够让讲不同语言的用户读懂、看懂。进而提出为同一个应用程序适配多种语言,也即是国际化。语言国际化之所以又叫做语言本地化,这是站在每个用户的角度而言的,是指能够

坤宇的博客 750

交换机救命命令手册:华为 & 思科平台最全运维指令速查表

很多时候,真正拉你一把的不是“高深理论”,而是你手里有没有一份靠得住的命令速查表。这篇文章,希望能成为你“进可调试,退可排障”的一份救命卡片。

HuaweiLab_Peach的博客 1515

Keysight ADS新手必看:3分钟搞定TDR模拟的保姆级教程(附差分信号设置技巧)

本文为Keysight ADS新手提供TDR模拟的保姆级教程,详细介绍了从基础环境准备到差分信号设置的全流程。通过内置模板调用、待测器件连接和仿真结果解读,帮助用户快速掌握TDR模拟技术,特别包含差分信号配置技巧,提升信号完整性分析效率。

weixin_30872157的博客 195

iOS开发 语言国际化

前言 语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这就要求应用程序所展示的文字、图片等信息,能够让讲不同语言的用户读懂、看懂。进而提出为同一个应用程序适配多种语言,也即是国际化。语言国际化之所以又叫做语言本地化,这是站在每个用户的角度而言的,是指能够让用...

weixin_42256432的博客 658

LLC谐振电路增益公式推导

LLC谐振电路增益公式理解

金凯*博客 1万+

国际化脚本-iOS:打造全球化的App利器

国际化脚本-iOS:打造全球化的App利器 是一个由Alex Feng开发的开源工具,旨在简化iOS应用的国际化过程,让开发者能够更高效地管理多语言内容。在本文中,我们将深入探讨该项目的核心功能、技术实现和应用场景,以期帮助更多开发者充分利用这一资源。 项目简介 国际化的应用程序需要支持多种语言,而这通常涉及到大量的文件管理和文本翻译工作。InternationalizationScript-iO...

gitblog_00014的博客 554

基于非接触式微波雷达设计的睡眠监控系统_323

本项目设计了一种基于非接触式微波雷达的睡眠监控系统,通过高精度的生理信号采集与分析,帮助用户全面了解自身的睡眠状态和健康状况。系统采用60GHz频段的R60ABD1毫米波雷达模块,实现对人体呼吸频率、心率、活动状态、体动幅度等参数的非接触式测量;结合MLX90614红外体温传感器,能够实时监测人体体温。此外,系统通过蜂鸣器报警和数据上云功能,及时向用户反馈异常生理指标,确保健康风险早期预警。数据通过ESP8266-WIFI模块上传至华为云物联网平台,用户可通过Android手机APP和Windows上位机远

499

NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]

NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]

丨汀、的博客 5420

iOS开发 国际化/多语言适配

iOS中,国际化适配,大概有下面几种情况需要适配。 1,App名称/图标本地化 2,启动页本地化 3,代码中字符串本地化 4,xib/storyboard本地化 5,图片的本地化 这些都比较简单,网上搜一下,有很多可以参考的好文章。接下来,分享一下,在项目中遇到的一些问题。 一,启动页的本地化, 关于启动页的本地化,网上也有很多说法,作者在项目中用的是多storyboard,如图。 在设置中切换系统语言,启动页并不会跟随切换。 二, 关于一些第三方库的多语言适配 ..

weixin_38934440的博客 8240

Ubuntu-22.04安装VMware虚拟机并安装Windows10

最近在研究虚拟机,主要集中在KVM、Virtualbox和VMware这三种虚拟机上。前面我已经研究了前两种虚拟机的安装和使用方式,这篇文章介绍3兄弟中最后一个虚拟机安装和使用方式。Virtualbox虚拟机安装和使用KVM虚拟机安装和使用相比于前两种,VMware的安装方式最麻烦,但是综合体验下来我感觉流畅度最好。如果你确实有在Linux上使用VMware虚拟机的需求,那不妨跟着我看下去吧。1、gcc版本和内核版本一定要匹配上,否则会出各种错误。

jiexijihe945的博客 4115

iOS国际化

在真正将国际化实践前,只知道通过NSLocalizedString方法将相应语言的字符串加载进来即可。但最近公司项目的新需求增加英文版本,并支持应用内无死角切换~,这才跳过各种坑实现了应用内切换语言,并记录至此。

mokai 7339

JEDEC 标准半导体功率循环热阻测试(JESD51 系列)

【代码】JEDEC 标准半导体功率循环热阻测试(JESD51 系列)

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 467

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

iOS 国际化 支持app多种语言

bug虐我千百度,我待bug如初恋。

TF_Man的博客 3169

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ios 国际化及默认语言设置

1、iOS程序名称国际化 1.1 新建一个Single View app模版项目,命名为Localization。 1.2 新建后,可以看到工作目录结构文件如下,单击InfoPlist.strings,查看右边的属性,在Localization栏添加语言。      1.3 添加完成后打开对应语言文件,比如English的添加 CFBundleDisplayN

£渚∮薰£ 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

iOS开发:国际化之app支持多种语言切换

iOS国际化:如何切换语言 1、国际化就是将标签、提示信息等信息放到资源文件中,随着程序需要的语言提供对应的资源文件。以key/value对存储,每个资源的key值不变,value随着需求改变。 一般改变的都是写“死”的东西,网络请求的不能改变。 2、添加多语言: 新建工程(国际化)——> 国际化——>project——>info——>Localizations——> "+"Chi

Dongxk的博客 7026

iOS 应用程序内部国际化,不跟随系统语言

类似于微信的程序内部国际化解决方案。(程序内部切换语言版本) 网络上关于iOS国际化的文章很多,但基本上都是基于跟随系统语言的国际化,笔者就不赘述了-0 – 本文主讲不跟随系统的切换语言版本方案,即程序内部的切换语言版本方案。

Coding & Music & Fitness 8727

iOS 开发中实现国际化语言切换

在开发过程中,有时会需要支持国际化,需要根据系统语言去改变应用内的语言,下面就为实现步骤。 1. 配置语言包等配置 1.1 创建一个后缀.strings的文件,作为你的多语言包 1.2 在这个文件的右边面板,有个 Localizations 点击后,去选择要添加进去的语言,一开始默认是有英语的 1.3 添加其他需要支持的语言 在 PROJECT 中的 Localizations

ITcc_的博客 790

[iOS]如何在iOS开发中切换显示语言实现国际化

1.在Project设置,添加中英两种语言:2.新建Localizable.strings文件,作为多语言对应的词典,存储多种语言,点击右侧Localization,勾选中英:3.添加一个字段,在English中,添加:"SUBMIT_BTN_TITLE" = "Go";在Chinese中,添加:"SUBMIT_BTN_TITLE" = "开始";4.一个工具类GDLocalizableContr

汪海的实验室 3832

ios 语言适配默认语言_iOS开发——iOS国际化 APP内语言切换

最近一个一直在迭代的老项目收到一份新的开发需求,项目需要做国际化适配,简体中文+英文。由于项目中采用了storyboard和纯代码两种布局方式,所以国际化也要同时实现。上网查了些资料,实现了更改系统语言后,修改app内语言的问题。具体国际化方式可以参考下文:这篇文章讲的比较详细,很容易实现。这个需求实现后不久,产品又给我提了一个需求,让我要在app内实现语言切换。还好之前的国际化也做了些准备,不慌...

weixin_42514930的博客 941

iOS开发之程序的国际化

有时候, 我们的一款应用, 要面向各个领域, 各个国度的用户。而这个时候, 就涉及到了应用的国际化开发。 国际化开发, 通俗来讲, 就是应用能根据用户当前设备使用的语言(本地化)来自动调整应用的语言, 使得每个用户都能正常使用应用。 国际化开发的重要性不言而喻。

sky_2016的专栏 1115

ios 语言适配默认语言_iOS多语言国际化

前言iOS的国际化,即多语言的实现,主要有两种:跟随系统语言的自动切换显示的语言手动设置语言,由用户选择,可以和系统语言不同本文将主要从这两种方法来讲解多语言的具体实现和一些其他的语言配置,例如显示名称(displayname)的多语言化、xib和storyboard的多语言、多语言上架等,本文使用Xcode9.1,以及swift4.0,具体操作见下文跟随系统语言首先我新建了一个名为Interna...

weixin_39633976的博客 591

iOS国际化(多语言)App名称国际化

iOS开发中,有些APP是面向世界或者海外市场的,需要用到国际化的多语言配置。下面介绍下中英文配置 新建多语言文件,Localizable.strings 添加需要的语言,比如英语,然后勾选上 配置上双语言,记得带上分好,oc swift都需要,不然报错 使用方法需要使用NSLocalizedString类去获取字符串,坐着给Sring添加了个分类方法 extension String { var W: String { return NSLocalize

qq_30356665的博客 7011
上一篇: iOS 属性修饰符的区别
下一篇: Xcode7.3以上安装VVDocumenter-Xcode插件遇见的坑
铃昕之光
博客等级 码龄11年 882粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值