gpt4 book ai didi

Xcode\Swift 中的 iOS 应用程序本地化

转载 作者:行者123 更新时间:2023-11-28 21:46:20 27 4
gpt4 key购买 nike

我有一个应用程序,我想在其中本地化界面。只有一个要翻译的 View 字符串。

我将本地化文件添加到 Storyboard 中,因此我的结构类似于此屏幕截图:

enter image description here

现在我已将等式右侧的字符串值翻译成它们所代表的语言。

但是,如果我在模拟器中运行该应用程序并将方案设置为使用该语言,或者甚至在模拟器本身中设置语言 - 我仍然无法将标签翻译成该语言。

我可能遗漏了哪些步骤?

最佳答案

在ios中进行本地化非常简单,请按照以下步骤操作。

  1. 创建一个 xcode 项目,如:LocalizationDemo

  2. 设计 Storyboard,标签如下图所示。

enter image description here

  1. 单击项目,在导航下选择项目。在本地化下单击 +(加号)按钮并选择首选语言。如下所示。

enter image description here

  1. 通过右键单击项目文件夹创建“Localizable.strings”,单击“新建文件”,选择模板 IOS,在“资源”下选择“字符串文件”并命名为“Localizable”。

    <
  2. 从project navigator中选择Localizable.strings文件,在最右上角使用可以看到如下,

    enter image description here

  3. 点击localize,然后你会看到一个弹出窗口,选择Base。稍后单击右侧的 Localization.strings 文件,选择如下首选语言。

enter image description here

  1. 在 Localization.strings 下,选择首选的 .strings 文件并声明 Storyboard标签的键和值,如下所示

enter image description here

  1. 从 goole 或您的客户处获取翻译后的文本。

  2. 创建一个 swift 文件,例如: StringExtension.swift ,在该文件下写入如下代码。

    import Foundation

    let LANGUAGE = "te-IN"

    extension String {

    //code for swift 2.3

    func localized() -> String {

    let path = NSBundle.mainBundle().pathForResource(LANGUAGE, ofType: "lproj")

    let bundle = NSBundle(path: path!)

    return NSLocalizedString(self, tableName: nil, bundle: bundle!, value: "", comment: "")

    }


    //Code for Swift 3.0

    func localized() -> String{

    let path = Bundle.main.path(forResource: LANGUAGE, ofType: "lproj")
    let bundle = Bundle(path: path!)

    return NSLocalizedString(self, tableName: nil, bundle: bundle!, value: "", comment: "")
    }
    }
  3. 当您单击特定于语言的 localization.strings 文件时,在右侧您可以看到如下所示的“te-IN”,

enter image description here

  1. 在viewcontroller中创建labels的outlets,在viewdidload中编写如下代码,

    welcomeLbl.text = "Welcome".localized()

    haiLbl.text = "Hai how are you?".localized()
  2. 最后语言和图片仅供引用。

关于Xcode\Swift 中的 iOS 应用程序本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30029993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com