本地化 UIAlertController (IOS)

Posted

技术标签:

【中文标题】本地化 UIAlertController (IOS)【英文标题】:Localization UIAlertController (IOS) 【发布时间】:2017-08-26 07:09:30 【问题描述】:

我有 ActionSheet 的代码,因为我可以翻译“复制”、“过去”、“发送”、“取消”等词。如何将它们翻译成其他语言?

我有一个文件 Localized.strings 可以这样使用吗?

actionSheetController.title = NSLocalizedString("Words", comment: "")

@IBAction func showActionSheetButtonAction(_ sender: Any) 
    let actionSheetController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)

    actionSheetController.addAction(
        UIAlertAction(title: "Copy", style: .default, handler:  [weak self] _ in
            guard let strongSelf = self else  return 

            UIPasteboard.general.string = strongSelf.displayResultLabel.text
            print ("Copy")

            let alert = UIAlertController(title: "Copied", message: "", preferredStyle: .alert)

            let when = DispatchTime.now() + 0.6
            DispatchQueue.main.asyncAfter(deadline: when)
                // your code with delay
                alert.dismiss(animated: true, completion: nil)
            

            self?.present(alert, animated: true, completion:nil)
        )
    )

    actionSheetController.addAction(
        UIAlertAction(title: "Paste", style: .default, handler:  [weak self] _ in
            guard let strongSelf = self else  return 

            strongSelf.displayResultLabel.text = UIPasteboard.general.string
            print ("Past")

        )
    )

    actionSheetController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))

    present(actionSheetController, animated: true, completion: nil)

【问题讨论】:

【参考方案1】:

当您需要向用户显示本地化文本时,您应该只使用本地化字符串宏:

let actionSheetController = UIAlertController(title: NSLocalizedString("Words", comment: "Title for Alert Sheet"), message: nil, preferredStyle: .actionSheet)

【讨论】:

以上是关于本地化 UIAlertController (IOS)的主要内容,如果未能解决你的问题,请参考以下文章

iOS核心笔记——UIAlertController

从第一个 UIAlertController 打开第二个 UIAlertController

swift UIAlertController使用 UIAlertController的宽度 为270

从 AppDelegate 到 PresentedViewController 的警报:“尝试在...上呈现 UIAlertController 已经在呈现 UIAlertController”

禁止UIAlertController的dimiss

UIAlertController的popover变形