swift - File.Strings 中的 SWIFT 5 语言本地化对我不起作用
问题描述
我尝试编写我的第一个应用程序,但在运行本地化时遇到了一些问题。
我得到了所有这些文件,但它根本没有发生。(我在 main.Storyboard 文件中所做的所有更改都很好)。但我也需要更改一些变量。
if editTaskMode == 0 {
let saveTest = NSLocalizedString("Save", comment: "Save")
takeOverButton.setTitle(saveTest, for: .normal)
} else if editTaskMode == 1 {
takeOverButton.setTitle("Save changes", for: .normal)
loadTask()
}
那么为什么 File.strings 没有出现在我的 XCode 浏览器中?为什么它不将字符串“Save”与“Speichern”交换?
/*
File.strings
TheGame2
Created by Stefan Wahrendorff on 18.03.20.
Copyright © 2020 Stefan Wahrendorff. All rights reserved.
*/
"Save" = "Speichern";
解决方案
您需要创建一个字符串文件,并本地化单词
利用:
extension String {
func localized() -> String {
return localized(withComment: "")
}
func localized(withComment: String) -> String {
var localized = Bundle.main.localizedString(forKey: self, value: withComment, table: "Default")
if localized == self {
localized = Bundle.main.localizedString(forKey: self, value: withComment, table: nil)
}
return localized
}
}
只需致电:
"Save".localized()
推荐阅读
- salesforce - 表列调整大小 Salesforce 闪电 slds
- linux - 如何在 shell “find” cmd 中指定 2 个文件名条件?
- vue.js - Vue 应用程序部署和在没有项目文件的情况下进行更改
- java - 在 Spring Boot Rest api 中使用 @embeded 时在 db 中获取空值?java新手帮帮我
- awk - 在 awk 和 echo 之后删除额外的空间
- python - 我该怎么做才能安装 Open-CV 库?如图所示,我遇到了冲突问题
- pyspark - org.apache.spark.sql.AnalysisException:无法解析 '`sub_tot`' 给定 pyspark 中的输入列
- three.js - 未应用 ThreeJS 面部颜色
- influxdb-2 - 调用通过 InfluxDB Java 2.0 客户端创建存储桶后反序列化响应时出错?
- arrays - 如何在 SwiftUI 中计算数组的总计、小计和平均值