zoukankan      html  css  js  c++  java
  • 本地化

    本地化

    1. 本地化(国际化)

       为解决同一app在设备的不同语言下显示对应语言的内容。

       实现本地化可分为“可视化”,“纯代码”两种方式。

       可视化方式:

        > 点击工程名,在Info(注意是Project下,而不是Targets下) 下,在Localizations 栏目下,添加语言

        > 点击xib或storyboard ,在最右侧中选择File Inspector(第一个选项卡),在Localization 栏目下,选择语言,会发现原来的xib,storyboard 文件会自动创建对应语言下的文件

        > 在不同语言下的xib,storyboard的文件中,设置视图的文字。

       纯代码方式

       > 在工程目录下添加 Localizable.strings 文件,注意名字必须是Localizable,否则无法实现本地化。 

       > 将此文件设置本地化,选中文件,在File Inspector ->Localization 下添加语言

       > 在此文件不同语言版本中分别添加如下格式的内容:"a1"="abc"; 注意要带着分号,否则解析错误 ,并且名字a1在两个文件中要一样。

       > 在代码里 lb.text = NSLocalizedString(@"a1", nil)

       实际开发过程中,两种方式配合使用,因为不同语言因为文字的不同,所占据的空间不同而导致控件的大小会有差异,有时需要在界面文件调整。

    2. 应用程序名字本地化

        > 在Info.plist中添加 Bundle display name 

        > 在Info.plist文件空白处右键 选择 Show Raw Keys/Values (原生底层键值)

        > 将CFBundleDisplayName(对应 Bundle display name ) 拷贝

        > 新建 InfoPlist.strings文件,[注意名字,否则也无法本地化],并将此文件本地化,选中文件,在File Inspector ->Localization 下添加语言

        > 在此文件不同语言版本中分别添加如下格式的内容 :CFBundleDisplayName ="myapp";

    3. 应用程序动态获取的数据本地化,因为这些内容一般是由网络访问获取,不同语言的内容由服务器提供,app只需要提供当前设备的语言给服务器,由服务器返回给定语言的内容。

       > 获取设备的语言

        [NSLocale preferredLanguages]  // 语言偏好列表,第一个就是设备当前的语言

  • 相关阅读:
    错误C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
    为什么DW的可视化下看到的效果与浏览器的效果有所区别?
    font-family:黑体;导致css定义全部不起作用
    web标准中定义id与class有什么区别吗
    网页尺寸规范
    SEO为什么要求网页设计师用DIV+CSS布局网页?
    去掉CSS赘余代码,CSS可以更简洁
    解决IE6、IE7、Firefox兼容最简单的CSS Hack
    实战中总结出来的CSS常见问题及解决办法
    高效整洁CSS代码原则 (下)
  • 原文地址:https://www.cnblogs.com/GJ-ios/p/5738654.html
Copyright © 2011-2022 走看看