美文网首页
IOS多语言切换1-文字与图片

IOS多语言切换1-文字与图片

作者: 肆点壹陆 | 来源:发表于2019-03-10 17:35 被阅读0次

    开发语言:Swift 4.2
    开发环境:Xcode 10.1

    在项目中,我们常常需要制作多种语言的资源,现在我们就来了解一下文字和图片资源

    1、准备工作

    在project->Info->Localizations中增加使用的语言,下图是增加了简体中文的示例

    完成此步骤后,我们就可以进行接下来的操作,创建多语言资源了

    2、创建多语言文字

    增加一个String File文件,文件名为Localizable 到项目中


    然后选择此文件,在右侧选择Localize,再把所有的语言全部钩上

    此时我们发现,增加的strings文件多出来了各种语言的版本

    至此,我们可以在strings文件中增加一个文字的多个版本
    例如在英文文件下增加:
    test="test";
    

    然后在中文文件下增加:

    test="测试";
    

    这样就完成了文字test的中英文两个版本。

    3、创建多语言图片

    将我们需要创建多语言的图片增加到项目中,与创建多语言文字类似,选择此文件,在右侧选择Localize,再把所有的语言全部钩上。
    注意,图片会有一个base语言,表示如果设备选择的语言并不在我们所提供的语言列表中时,所使用的默认语言。完成选择后,Localize应该呈现如下的状态


    然后,右键我们增加的图片资源,选择Show in Finder,我们可以看到如下目录
    此时,将我们准备的不同语言的图片放在在不同语言的.lproj文件夹下,注意名字要和我们增加到项目中的文件名保持一致。

    至此,我们文字多语言与图片多语言的资源全部创建完成,接下来我们需要使用它们。

    4、加载系统语言文字和图片

    使用系统语言加载文字和图片非常简单,只需要使用以下代码分别加载文字和图片资源即可

    lTest.text = NSLocalizedString("test", tableName: "Localizable", comment: "")
    iNext.image = UIImage.init(named: "next.png")
    
    • 注意,strings文件的名字如果不是Localizable的话,则tableName参数需要传递strings文件的名字。
    • 反之,我们可以省略这个参数,系统会默认的读取Localizable.strings文件

    模拟器默认的语言为英文,加载效果如下。

    然后我们在模拟器的系统设置中,修改语言为中文,重新开启app,加载效果如下。


    5、加载指定语言文字和图片

    在加载指定语言的文字和图片之前,我们可以先了解下,我们的多语言资源分保存在哪里。
    首先我们找到模拟器的在mac上的路径,并且找到我们的app

    然后右键我们的app,选择显示包内容,我们可以看到包中有en.lproj与zh-Hans.lproj文件夹。

    这两个文件夹保存着我们添加到项目中的多语言资源,如果我们要指定加载某种语言,则我们需要通过指定以上的路径,用来创建自定义的Bundle,然后加载这个Bundle中的资源即可

    //构建英文Bundle
    let path1 = Bundle.main.path(forResource:"en" , ofType: "lproj")
    let enBundle = Bundle.init(path: path1!)
            
    //构建中文Bundle
    let path2 = Bundle.main.path(forResource:"zh-Hans" , ofType: "lproj")
    let znBundle = Bundle.init(path: path2!)
            
    //使用中文Bundle加载文字
    lTest.text = NSLocalizedString("test", tableName: "Localizable", bundle: znBundle!, comment: "")
    //使用英文Bundle加载图片
    iNext.image = UIImage.init(named: "next.png", in: enBundle!, compatibleWith: nil)
    
    

    加载后的效果图下

    相关文章

      网友评论

          本文标题:IOS多语言切换1-文字与图片

          本文链接:https://www.haomeiwen.com/subject/xlhppqtx.html