首页 > 解决方案 > File.Strings 中的 SWIFT 5 语言本地化对我不起作用

问题描述

我尝试编写我的第一个应用程序,但在运行本地化时遇到了一些问题。

我得到了所有这些文件,但它根本没有发生。(我在 main.Storyboard 文件中所做的所有更改都很好)。但我也需要更改一些变量。

Xcode

在此处输入图像描述

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";

在此处输入图像描述

标签: swiftlocalization

解决方案


您需要创建一个字符串文件,并本地化单词

利用:

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()

推荐阅读