首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实现模块化应用本地化

前言 已经有一段时间没有从头开始一个需要支持多种语言新项目了。当然不是从头开始,而是在代码库中通过使用 Swift 包将代码分成不同模块。...支持本地化 可能与你想法正好相反,把设备系统语言设置加泰罗尼亚语或西班牙语并且运行 app 内容仍然用英文展示。...同样,如果 app 不支持该语言,同样会回退到相同值。这也是为什么将 defaultLocalization 设置与主目标基础语言相同,以确保所有页面上一致性是非常重要。...当用户修改区域,如果你资源包存在该语言包或默认提供 Package.swift ,软件包也会展示该区域语言内容。 2.支持多少个区域就会有多少个本地化资源。...www.polpiella.dev/assets/posts/modularised-app-localisation/mixed-localisations.mp4 第二点如上面的视频中所示,当用户把设备语言设置法语

86420

WWDC 2021新Formatter API:新老比较及如何自定义

个人测试数据来看,新API效率相较于仅使用一次Formatter实例来说,提升还是比较明显(30% —— 300%),不过同可复用Formatter实例比较,仍有数量级上差距。...新API充分体现了Swift作为面向协议语言特点,使用两个协议(FormatStyle、ParseStrategy),分别定义了格式化数据和从格式化转换两个方向实现。...func format(_ value: Self.FormatInput) -> Self.FormatOutput是必须实现方法,locale用来Formatter设置区域信息,其返回值中format...因此,尽管Formatter会针对不同区域提供不同语言返回结果,但为了兼容性,返回结果仍String。 FormatStyle协议同时约定了必须满足Codable和Hashable。...Red:";"UIColorGreenMark" = " Green:";"UIColorBlueMark" = " Blue:";"UIColorAlphaMark" = " Alpha:"; 至此,当系统切换到拥有对应语言地区

1.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

对iOS应用中文本进行本地化

对iOS应用中文本进行本地化 原文发表在博客 www.fatbobman.com[1] 当我使用一个英文app,很多人第一间会去查看是否有对应中文版本。...文本本地化原理 作为一个程序员,如果让你考虑设计一套逻辑对原始文本针对不同语言进行本地化转换,想大多数人都会考虑使用字典(键值对)解决方案。...代码中,order.totalQuantity对应是Int(Swift在64位系统上Int对应Int64),因此我们需要在键值对中使用%lld来将其进行替换。...当你尝试添加或减少饮料数量,文本中数量都会跟随变化。 请插值选择正确对应格式说明符,比如上面的例子如果设置%d的话将被系统认为是另一个键而无法完成转换。...} Demo中仅提供两种货币价格,当系统区域设置不是中国大陆的话,则将货币设置美元。

2.1K20

iOS小技能:本地化(Internationalization & Localization)

引言 本地化(l10n)是应用程序在对两个或两个以上不同语言适配,使用本地化功能,可以轻松地将应用程序翻译成多种语言,甚至可以翻译成同一语言多种方言。...在这里插入图片描述 当本地化应用程序需要载入某一资源,如图像、属性列表、nib文件,应用程序会检查用户语言和地区,并查找相匹配本地化文件夹。...(采用) 2、通过发通知,到各个控制器更新文字(不采用) 效果 1.3 数字和时间格式本地化 使用NSDateFormatter和NSNumberFormatter需要设置 NSLocale,这样做能确保日期.../z929118967/article/details/92388239 II 本地化切换 2.1 一个语言对应多个字符串资源文件方案 应用场景:解决部分英文国际化没有生效问题 思路:存储国际化英文字符串...一个 .strings 文件用于应用程序不同语言作本地化。

3.2K30

【LFS 系列】从零开始 DIY Linux 系统:(七)基本系统配置 - 系统区域设置

默认纸张尺寸 货币、时间和日期值格式 /etc/locale.conf 中 使用语言代码代替(比如中文是 zh,英文是 en), 使用国家代码代替(比如中国是 CN,中国香港是 HK,中国台湾是 TW...可以通过以下命令,查询在特定区域 字符映射表标准名称, 运行 locale -a 输 出首选区域设置(这里以 zh_CN.utf8 例)。...例如,需要更改 “de_DE.ISO-8859-15@euro” de_DE@euro” 以便 Xlib 能识别区域。...以下示例中,LANG 设置 en_US.UTF-8,但 LC_CTYPE 设置 en_US: localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US...“C” (默认)和 “en_US” (推荐美国英语用户使用)这两种区域设置有所不同。 “C” 使用 US-ASCII 7 位字符集,并把设置了最高位字节作为无效字符。

70310

低成本搭建一台 Unraid 家庭存储服务器:中篇

当然,如果你不希望使用固定 IP,也可以使用 arp -a 在每次使用 Unraid 设备,先扫描一遍局域网,获取下设备 IP 地址。...3.单一数据盘缺少冗余,只能靠外部设备、云环境备份来提升数据安全。没办法,设备就这么几个硬盘位,帕累托最优就是上面的分配方案啦。...踩坑:软件没有“中文语言包” 制作启动盘语言”选项仅影响启动盘制作工具界面展示,默认系统中是不带多语言,只有英语一种语言。...”、“显示设置”、“语言”中选择语言“简体中文”,保存设置,就能切换界面语言熟悉中文了。...解决问题方法很简单,在安装完系统之后,完成中文语言安装,调整系统语言中文。

4K40

数据库PostrageSQL-排序规则支持

只有在构建PostgreSQL配置了对ICU支持,才能使用ICU区域设置。...预定义排序规则 如果操作系统支持在一个程序中使用多个区域(newlocale和相关函数), 或者配置了ICU支持,那么在一个数据集簇被初始化时,initdb 将以它在操作系统中能找到所有区域基础在系统目录...initdb则会创建一个用于编码UTF8名为de_DE.utf8排序规则,在其中LC_COLLATE和LC_CTYPE都被设置de_DE.utf8。...ICU语言环境使用特定命名系统,但命名语言环境方法多于实际上不同语言环境。 initdb使用ICU API提取一组不同语言环境以填充初始排序规则集合。...ICU区域命名系统方式,根区域设置由空字符串选择。

1.4K20

iOS面试资料参考答案总结

这也是为什么上篇面试总结,会加了一些面试技巧,整理面试题,也没提他们是出自哪家公司,就是不希望大家把题目区别看待。...3、为什么当我们在使用block外面是weak 声明一个weakSelf,还要在block内部使用strong再持有一下?...它内部数据结构是什么样当我提到哨兵对象,会继续问哨兵对象作用是什么,为什么要设计它? Autoreleasepool原理是一个双向列表,它会对加入其中对象实现延迟释放。...利用Runloop,实时计算 kCFRunLoopBeforeSources 和 kCFRunLoopAfterWaiting 两个状态区域之间耗时是否超过某个阀值 子线程检测,每次检测时设置标记位...YES,然后派发任务到主线程中将标记位设置NO。

1.5K40

将模型添加到场景中 - 在您环境中显示3D内容

约束 然后,单击Storyboard编辑器左下角第四个图标,将新约束添加到场景视图中。定义约束以确保您用户界面适应不同屏幕尺寸或设备方向。设置0顶部,左,右和底部。...当我们触摸它,让按钮执行某些操作。现在,打开Assistant编辑器并控制将故事板中按钮拖到ViewController类。代码中顺序并不重要,因为我们稍后会移动此函数。...{} 与飞船场景类似,我们将使用我们指定名称调用场景。然后,检索该场景SketchUp父节点。我们递归设置false以返回具有该名称直接子节点。...在我们情况下,使用[switch]控制流来匹配我们设置许多条件是完美的。switch语句必须是详尽,这就是为什么有一个默认情况来涵盖所有其他方案。...焦点方块隐藏/显示选项 当我们在屏幕上显示模型,我们仍然看到焦点方块干扰了我们漂亮模型。如果我们在安置后隐藏它,你怎么说?

5.4K20

强烈推荐 10 款免费 Mac 软件!

如果你正好在学习 Swift 编程语言,那么 IINA 源码是一个不错学习对象。...另外界面看起来非常专业,当我要搜索一个词时候,结果中不仅有单词汉语词义,还有图片;接下来是近义词、词组和常用例句库,完美匹配审美需求。 ?...下载地址: https://www.mowglii.com/itsycal/ 07、Amphetamine Amphetamine 是一款可以防止电脑休眠工具,系统设置里面节能选项设置也可以达到相同效果...08、Snip Snip 是一款简单高效截图工具,当浏览页面很长,Snip 依然可轻松截取到整个页面。可以在【偏好设置】中启动滚动截屏,截屏选定窗口区域后只需单击鼠标,整个页面便可完美呈现。...平常会使用微信自带截图工具,但当我写作时候,微信肯定是会关闭,这时候就用 Snip。

1.2K20

从零玩转后端接口数据交互国际化

一、前言 当我项目涉及到多语言支持,身为后端开发我们,接口数据国际化便是我们必须攻克问题。...重点:我们在项目中会创建 MessageSource接口,但不管使用哪个实现类或者我们自定义类,都要将Bean名称设置messageSource 加载ApplicationContext,自动搜索上下文中定义...Local信息,当系统找不到时候会使用这个默认 message_cn_ZH.properties:中文【中国】 name=姓名 text=文本 message_en_GB.properties:英文...它是一个支持“配置文件”方式抽象类,内部提供一个与区域设置无关公共消息配置文件,消息代码关键字。...而这两个方法已经被我们重写,它数据都从我们自定义MyMessageSource类LOCAL_CACHE(map对象)中获取, ⚾ 4.4 国际化区域解析器 LocaleResolver:用来设置当前会话默认国际化语言

2.2K1613

2020年6月最新iOS面试题总结(答案篇)

这也是为什么上篇面试总结,会加了一些面试技巧,整理面试题,也没提他们是出自哪家公司,就是不希望大家把题目区别看待。...3、为什么当我们在使用block外面是weak 声明一个weakSelf,还要在block内部使用strong再持有一下?...它内部数据结构是什么样当我提到哨兵对象,会继续问哨兵对象作用是什么,为什么要设计它? Autoreleasepool原理是一个双向列表,它会对加入其中对象实现延迟释放。...利用Runloop,实时计算 kCFRunLoopBeforeSources 和 kCFRunLoopAfterWaiting 两个状态区域之间耗时是否超过某个阀值 子线程检测,每次检测时设置标记位...静态库:链接被完整复制到可执行文件中,多次使用就多份拷贝。 动态库:链接不复制,而是由系统动态加载到内存,内存中只会有一份该动态库。 5、了解Flutter吗?它有没有使用UIKit?

9.1K41

python时间日期格式化和反格式化

无论平台如何,1900年前都无法使用。 指示 含义 例 笔记 %a 工作日作为语言环境缩写名称。 太阳,周一,......,周六(en_US); 所以,Mo,......,Sa(de_DE) (1) %A 平日作为语言环境全名。 星期日,星期一,......,星期六(en_US); Sonntag,Montag,..........,31 %b 月份区域设置缩写名称。 Jan,Feb,...,Dec(en_US); Jan,Feb,...,Dez(de_DE) (1) %B 月份区域设置全名。...21:30:00(zh_); 21:30:00(de_DE) (1) %% 文字'%'字符。 % 笔记: 由于格式取决于当前区域设置,因此在对输出值进行假设应小心。...字段顺序会有所不同(例如,“月/日/年”与“日/月/年”),输出可能包含使用区域设置默认编码编码Unicode字符(例如,如果当前区域设置ja_JP,则为默认值编码可以是中任一项eucJP,SJIS

2.2K20

前端实现多语言切换_等红灯频繁D到N档切换

在已收到Android NOTA更新设备中,Android系统WebView被禁用: 此外,引入了多语言支持,设备具有多种默认语言: 如果应用中包含WebView,那么使用Chrome应用呈现这些内容...因为Chrome 本身就是一个Android应用程序,运行在自己沙盒过程中,所以它不会被绑定到您应用程序设置区域设置。相反,Chrome将恢复到主设备区域设置。...例如,假设您应用程序语言环境设置ar-AE,而设备主要语言环境en-US。...在这种情况下,Activity包含a 语言环境WebView将从中更改ar-AEen-US,并且将显示相应语言环境文件夹中字符串和资源。...该locale参数应该是Locale希望设置默认值。例如,如果您希望将Arabic / UAE设置默认语言环境,则应该通过new Locale("ar", "AE")。

48030

Swift 书面 ToDo App

大家好,又见面了,是全栈君。 下面的代码是使用全部Xcode Version 6.0.1 (6A317)书面。...因为当使用团队开发stroyboard在并购诸多不便时间,所有或使用.xib该文件准备ToDo App. 想要实现功能:TableView 够添加待做选项。并依照时间先后排序,能够实现删除。...一个用于展示todo list tableView,然后关联一个 tableView 变量到 Main.swift文件 2、接下来设置 Mian rootViewController,在AppDelegate.swift...把你须要用到头文件统统写在里面,然后 Build Settings 中 Object-C Bridging Header 写入 .h 文件路径就可以。接着就能够正常使用 OC 写接口了。...完整项目代码发在github上来。须要到这里拿。 版权声明:本文博客原创文章,博客,未经同意,不得转载。

1.5K20

iOS之深入解析Xcode 13正式版发布40个新特性

大家好,又见面了,是你们朋友全栈君。...文件传递给 xcodebuild ,Xcode 会使用 New Build System 语义解析它们,该语义也支持条件参数; 通过将 SUPPORTED_PLATFORMS 构建设置设置您支持平台列表并将...ALLOW_TARGET_PLATFORM_SPECIALIZATION 设置 YES,将框架配置在单个构建操作中多个平台构建; 可以在构建阶段使用平台过滤器,并为所有支持平台定位依赖项; 当发生构建失败...发送默认 Accept-Language 标头具有更新格式和多个区域设置更正值。...除了首选语言之外,如果当前系统语言与首选语言不同,标头还包括作为后备的当前系统语言。此行为会影响链接到 macOS 12、iOS 15、tvOS 15 和 watchOS 8 SDK 应用程序。

8.7K40
领券