• 1:在project info中的locations添加需要的语言 2:创建Localizable.strings文件 点击右边的localization勾选需要的语言 ...4:创建LanguageHelper.swift import UIKit let UserLanguage = "UserLa...

    1:在project info中的locations添加需要的语言

    2:创建Localizable.strings文件 点击右边的localization勾选需要的语言

    3:创建InfoPlist.strings翻译Info.plist中的提示文字和应用名称

    4:创建LanguageHelper.swift

    import UIKit
    
    let UserLanguage = "UserLanguage"
    
    let AppleLanguages = "AppleLanguages"
    
    class LanguageHelper: NSObject {
    
       static let shareInstance = LanguageHelper()
    
        let def = UserDefaults.standard
    
        var bundle : Bundle?
    
    
    
        class func getString(key:String) -> String{
    
            let bundle = LanguageHelper.shareInstance.bundle
    
            let str = bundle?.localizedString(forKey: key, value: nil, table: nil)
    
            return str!
    
        }
    
    
        func initUserLanguage() {
    
            var string:String = def.value(forKey: UserLanguage) as! String? ?? ""
    
            if string == "" {
    
                let languages = def.object(forKey: AppleLanguages) as? NSArray
    
                if languages?.count != 0 {
    
                    let current = languages?.object(at: 0) as? String
    
                    if current != nil {
    
                        string = current!
    
    //                    def.set(current, forKey: UserLanguage)
    
    //                    def.synchronize()
    
                    }
    
                }
    
            }
    
            string = string.replacingOccurrences(of: "-CN", with: "")
    
            string = string.replacingOccurrences(of: "-US", with: "")
    
            var path = Bundle.main.path(forResource:string , ofType: "lproj")
    
            if path == nil {
    
                 path = Bundle.main.path(forResource:"en" , ofType: "lproj")
    
            }
    
            bundle = Bundle(path: path!)
    
        }
    
    
        func setLanguage(langeuage:String) {
    
    
            let path = Bundle.main.path(forResource:langeuage , ofType: "lproj")
    
            bundle = Bundle(path: path!)
    
            def.set(langeuage, forKey: UserLanguage)
    
            def.synchronize()
    
    
        }
    
    }

    5:在appdelegate中的

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool

    中初始化语言

     LanguageHelper.shareInstance.initUserLanguage()

    6:在设置里面增加按钮来切换语言

    func changelangage2En() -> Void {
    
            LanguageHelper.shareInstance.setLanguage(langeuage: "en")
    
            NotificationCenter.default.post(name: NSNotification.Name(rawValue: "LanguageChanged"), object: nil)
    
            reStart()
    
        }
    
        func changelangage2Cn() -> Void {
    
            LanguageHelper.shareInstance.setLanguage(langeuage: "zh-Hans")
    
            NotificationCenter.default.post(name: NSNotification.Name(rawValue: "LanguageChanged"), object: nil)
    
            reStart()
    
        }

    7:切换之后重启应用

    func reStart()->Void {
    
            if let _ = UserService().currentUserSeed() {
    
                self.navigationController = UINavigationController(rootViewController: HomeViewController(viewModel: HomeViewModel()))
    
            } else {
    
                self.navigationController = UINavigationController(rootViewController: WelcomeViewController())
    
            }
    
    
            DispatchQueue.main.async(execute: {
    
    
                UIApplication.shared.keyWindow?.rootViewController = self.navigationController
    
    
            })
    
    
        }

     

    展开全文
  • swift3.0来配置iOS APP内部语言环境
  • Swift中的本地化实现 2017-07-15 20:44:19
    Swift中的本地化实现
  • Swift iOS macOS 如何 Localize StoryBoard,StoryBoard 本地化,添加多语言支持,基于 String 本地化主要包含两个部分:代码中文本的本地化 和 StoryBoard 中文本的本地化 iOS 和 macOS 是一样的 这里只介绍 ...
  • 最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享! 多语言在应用程序中一般有两种做法: 一、程序中提供给用户自己选择的机会; 二、根据当前用户当前移动...
  • 在工程文件中创建新的文件右键New File -> Resource -> Strings File,取名为Localizable.strings选中工程在Localizations选项下选择“+”即可选择想要适配的语言,如上图选择了英文和简体中文。选中后去掉...
  • swift实现App名,字符串资源,图片资源实现国际(支持中文,英文,马来文,其它自己添加),Demo里面实现了语言切换功能!
  • 3步实现iOS本地化swift 2020-02-22 12:31:33
    1. 导入 Localisation.swift 到项目 文件github下载地址:https://github.com/kmyhy/Localisation/tree/master/LocalizedSwift 2. 实现 LocalisationProtocol 新建扩展,实现 LocalisationProtocol协议,比如: ...
  • 前言语言本地化 大家肯定都多少都听过,今天我要分享的是快速实现语言本地化,与App内语言切换核心内容主要是三个部分storyboard/xib本地化纯代码本地化语言切换准备工作项目中添加语言storyboard/xib本地化...
  • 一、系统中宏定义的NSLocalizedString,如图: 第一个参数key是从Localizable.strings这个文件中读取对应...二、NSLocalizedString本地化字符串使用步骤 1、新建一个Strings File文件,命名为“Localizable”(...
  • 国际化语言配置 总体流程就是本地配置文件Localizable.strings,然后使用Localizable.strings读取本地配置文件对应的内容】 具体流程: 1.本地配置 2.文件创建 3.文件名建议使用:Localizable.strings 4...
  • iOS实现语言本地化 2016-03-30 23:41:51
    iOS实现语言本地化很简单,这里只是为了简单的记录一下过程。
  • 支持系统静态的控件,一句代码实现应用内语言的切换
  • 1. 创建Single View Application 2.增加语言,点击项目... ...3.添加Localizable.strings, 新建String文件,并命名为Localizable.strings。...4.在Localizable.strings,文件右侧添加语言支持, ...之后开始写本地化
  • macOS APP 本地化swift实现 2020-03-29 01:20:32
    在我对 macos App 进行本地化的过程中,遇到不少坑。不过最后还是搞定了,在这里记录下来结果,供参考。 开始之前,我想先说说NSString,看到很多人似乎更愿意使用NSString的localizedStringWithFormat 函数。但在我...
  • 如何把Pod本地化(Localize) 2017-04-24 02:43:40
    公司 app 进行本地化,发现 pod 本地化与直接在 project 本地化还是有差异的,这里以英文和简体中文本地化作为例子。文章最后提供了 pod 本地化的工具类。一、添加多语言文字1、创建多语言文件夹多语言文件夹采用...
  • swift3-app国际 2017-04-07 16:03:51
    本文主要介绍了应用程序名称的国际和storyboard中的国际,以English和简体中文为例。
  • 完成一个项目之后,如果你想让全世界的人都能使用这个 app,字符串国际化、本地化是一步必不可少的步骤。 具体看这里,懒得再翻译一遍了,一个学习 iOS macOS Swift 很好的国外网站,内容为英文 Internationalizing ...
1 2 3 4 5 ... 20
收藏数 5,567
精华内容 2,226