zoukankan      html  css  js  c++  java
  • 应用程序本地化之文本本地化

    一、概念

        本地化就是使应用适合与本地区用户习惯的过程。本地化涉及多方面内容,包括文字、货币、日期和图片,甚至语音都需要本地化。

    二、本地化分类

        1、文本信息本地化

           文本信息本地化占有很大的比例,其中包括应用名称本地化、系统按钮和信息本地化以及静态文本信息本地化。

        2、nib和故事板文件本地化

        3、资源文件本地化

    三、下面我们就用genstrings和NSLocalizedString实现应用程序文本本地化。文本本地化就是使文本适合本地区用户习惯的过程。例如当你的iphone或者ipad设置语言为简体中文时,应用程序中的文本显示的是中文,而当你的设备设置语言为english时,那么你的应用程序将会显示英文。

       第一步: 比如你设置一个按钮显示的文字实现本地化。原来你可能写成

     [self.testBtn setTitle:@"我的按钮" forState:UIControlStateNormal];

        但是现在你需要设置成

       [self.testBtn setTitle:NSLocalizedString(@"BTN_TITLE", nil) forState:UIControlStateNormal];

            其中NSLocalizedString是一个定义在NSBundle中的宏,其用途就是寻找当前系统语言对应的Localizable.strings文件中某一个key的值,其中BTN_TITLE就是key,按钮显示的内容就是该key的value.第二个参数是对这个键值对的注释,再用genstrings工具生成Localizable.strings文件时会自动加上去。

        第二步:生成strings文件。

            a、打开终端然后进入工程所在目录。

            b、新建两个目录,最好放在资源目录下。

            然后创建两个文件夹。这里不能写错了,zh-Hans指的是简体中文,en是英文。

      mkdir zh-Hans.lproj
    
      mkdir en.lproj

            c、然后生成Localizable.string文件

       genstrings -o zh-Hans.lproj *.m
       genstrings -o en.lproj *.m

            -o <文件夹>作用是制定生成的Localizable.strings文件放置的目录。

            *.m作用是扫描所有的.m文件。

            d、然后把生成的两个文件夹从工程中拖到xcode打开的项目中的Resource目录下。

            e、最后再Localizable.strings文件中,修改key对应的内容就可以了。

    注:你可以自己设置设备的语言来检测一下是否成功。如果不成功随时评论提出。

  • 相关阅读:
    Java 截取目标长度英文单词字符串 要求避免截断单词
    mysql报Fatal error encountered during command execution的解决办法
    PostgreSQL 学习01 Centos7.6安装PostgreSQL10
    Ubuntu14.04 + KinectV2驱动安装 以及 Ros接口(基于网上方法试错 改进版)
    传统定位方法简介--------里程计、IMU惯性传感器以及光电编码器等
    Vue.js 动态绑定class
    MongoDB数据导入导出成csv或者json
    exception 'yiiaseErrorException' with message 'Class 'MongoClient' not found'
    exception 'DOMException' with message 'Invalid Character Error' Php + Mongodb
    浅谈Angular的 $q, defer, promise
  • 原文地址:https://www.cnblogs.com/zhanggui/p/4638766.html
Copyright © 2011-2022 走看看