ios - iPhone 中设置的其他语言无法读取 Localizable.strings (Base) 文件字符串?
问题描述
我在我的应用程序中实现了多语言并Localizable.strings
创建了多个文件。
我在文件中有所有字符串键和值,Localizable.strings (Base)
如果特定语言字符串文件中缺少特定字符串,则作为从所有其他语言读取的默认文件,例如文件Localizable.strings (Japanese)
中缺少某些字符串,Japanese
所以我希望从Base
.
但它不会发生,那是我的问题。
解决方案
我遇到了同样的问题并应用了这个解决方案:
- 为英语 ( ) 创建新的默认字符串本地化文件
DefaultEnglish.strings
例如:"hello_key" = "Hello"
- 向文件添加其他语言支持
Localizable.strings
例如:日语字符串:"hello_key" = "こんにちは"
创建字符串
extension
extension String { func localizedStringKey(bundle _: Bundle = .main, tableName: String = "Localizable") -> String { return NSLocalizedString(self, tableName: tableName, value: "\(NSLocalizedString(self, tableName: "DefaultEnglish", bundle: .main, value: self, comment: ""))", comment: "") } }
并设置字符串
"hello_key".localizedStringKey()
推荐阅读
- javascript - Highcharts:打开新组件角度时如何停止函数setTimeout?
- mongodb - MongoError:服务器不支持排序规则
- javascript - 将 HTML 集合输出为列表 JavaScript
- visual-studio - Visual Studio 2017 Winforms Designer 缓存在哪里?
- laravel - Laravel 返回错误后如何显示 Bootstrap 通知/toast (MDBootstrap)
- hibernate - 如何修复“:意外元素(”URI:“http://www.hibernate.org/xsd/orm/cfg”,本地“休眠配置”)
- ios - 在具有最大高度的动态高度的 UITableViewCell 中添加 UITextView
- angular - IONIC 4空项目android apk文件大小大
- python - 一起循环多个生成器
- c++ - 为什么我在这里得到垃圾(不需要的)输出?