博客> iOS 国际本地化
iOS 国际本地化
2019-11-10 03:06 评论:0 阅读:20 914345202
ios 国际化 多语言配置 本地化

本地化:

  1. project - info - localizas: 添加语言
  2. InfoPlist.Strings: iOS - resources - Strings
  3. Localizable.strings

  4. 文件属性(右侧)-file inspector- localization

Xib/Storyboard 本地化 1.创建xib/storyboard 2.同上面步骤4

  1. 更新:将.storyBoard/ .xib文件 中的文字提取,另存为 .strings文件
 1)cd到storyboard的同级目录下, ibtool --generate-strings-file MainViewController.strings MainViewController.xib

    2)将 MainViewController.strings 拷贝到 zh-Hans.lproj 目录下,然后汉化该文件中的文字 3)执行命令,根据英文的 .storyBoard/ .xib文件 和 .strings汉化文件 生成一个汉化后的 .storyBoard/ .xib 文件 ibtool --strings-file zh-Hans.lproj/MainViewController.strings --write zh-Hans.lproj/MainViewController.xib en.lproj/MainViewController.xib

    4)将生成的这个.storyBoard/ .xib 文件添加到项目中的 zh-Hans.lproj 分组下,注意要选择 Add to targets 5)选择 File -> Info -> Localization 为对应的语言 至此,storyBoard/xib文件的汉化已经完成

本地化优化(将本地化的key,转化成变量) 1.创建“LocalizedUtils.swift”,“Localizable.strings” 2.target - Build Phases - Run Script (editor - Add Build Phases)

Localizable.strings文件路径

localizableFile="${SRCROOT}/${PROJECT_NAME}/en.lproj/Localizable.strings"

生成的swift文件路径(根据个人习惯修改)

localizedFile="${SRCROOT}/${PROJECT_NAME}/LocalizedUtils.swift"

touch $localizedFile

将localizable.strings中的文本转为swift格式的常量,存入一个临时文件

sed "s/\" = \".$/;/g" ${localizableFile} | sed "s/./& &/" | sed "s/^\"/ static var localized_/g" | sed "s/; \"/: String { return \"/g" | sed "s/;/\".localized }/g" > "${localizedFile}.tmp"

先将localized作为计算属性输出到目标文件

echo "import Foundation\n\nextension String {\n var localized: String { return NSLocalizedString(self, comment: self) }" > "${localizedFile}"

再将临时文件中的常量增量输出到目标文件

cat "${localizedFile}.tmp" >> "${localizedFile}"

最后增量输出一个"}"到目标文件,完成输出

echo "\n}" >> "${localizedFile}"

删除临时文件

rm "${localizedFile}.tmp"

收藏
0
sina weixin mail 回到顶部