问题描述 我们 APP 支持几十种语言切换 这就需要一个工具提供分析 CSV 文件自动生成 Localizable.strings 的文件 导致里面有的双引号什么或者翻译人员不准确导致格式化有问题 这就需要一个快速方法查找出格式化问题有问题地方 解决方法 plutil -lint Localizable.strings 我们可以在Localizable.strings所在的文件夹运行上面的命令。 Localizable.strings: Unexpected character " at line 1 那就代表130是有问题的。 如果运行出现下面的提示 Localizable.strings: OK 代表国际化文件格式是正确的。
内的国际化切换】demo源码:https://download.csdn.net/download/u011018979/19089505 I 字符串的本地化 1.1 用法 创建字符串资源文件Localizable.strings 在这里插入图片描述 为Localizable.strings添加多语言支持 选 make Localize代表会将Localizable.strings加入到英语的本地化文件夹en.lproj中去 在这里插入图片描述 Localizable.strings(English)对应en.lproj文件夹中的Localizable.strings文件 Localizable.strings(Chinese )对应zh-Hans.lproj文件夹中的Localizable.strings文件 在资源文件Localizable.strings配置字符串对应的key和value。 en.lproj/Localizable.strings static NSString * const kSystem = @"SystemDefault"; static NSString
移动位置 添加脚本 # Localizable.strings文件路径 localizableFile="${SRCROOT}/${PROJECT_NAME}/Support/en.lproj/Localizable.strings swift文件路径(根据个人习惯修改) localizedFile="${SRCROOT}/${PROJECT_NAME}/Source/Utils/LocalizedUtils.swift" # 将localizable.strings forKey: key) } } 在读取字符串时执行一次 Bundle.main.onLanguage() 我就直接写到了脚本里,将脚本修改如下(几个文件的路径自己注意一下) # Localizable.strings 文件路径 localizableFile="${SRCROOT}/Base.lproj/Localizable.strings" # 生成的swift文件路径(根据个人习惯修改) localizedFile ="${SRCROOT}/Public/LocalizedUtils.swift" # 将localizable.strings中的文本转为swift格式的常量,存入一个临时文件 sed "s/^\"/
在这里插入图片描述 为Localizable.strings添加多语言支持 ? 选 make Localize代表会将Localizable.strings加入到英语的本地化文件夹en.lproj中去 ? 在这里插入图片描述 Localizable.strings(English)对应en.lproj文件夹中的Localizable.strings文件 Localizable.strings(Chinese )对应zh-Hans.lproj文件夹中的Localizable.strings文件 在资源文件Localizable.strings配置字符串对应的key和value。 en.lproj/Localizable.strings static NSString * const kSystem = @"SystemDefault"; static NSString
本文链接:https://blog.csdn.net/Mayxc/article/details/102816307 国际化语言配置 总体流程就是本地配置文件Localizable.strings,然后使用 Localizable.strings读取本地配置文件对应的内容】 具体流程: 1.本地配置 ? 2.文件创建 20191030114539296.png 3.文件名建议使用:Localizable.strings ? 4.Localizable.strings文件配置 ? ? ? ?
如果你的字符串资源文件名不是Localizable.strings,如KN.strings,那么你就得使用NSLocalizedStringFromTable()、NSLocalizedStringFromTableInBundle I 、解决方案 1.1 分开多个文件存储英文key,修改解析key顺序的代码逻辑 修改成为,从另外一个文件找,先从Localizable.strings找,如果找不到就从Localizable1.strings
(⊙﹏⊙)b 整理思路 首先必须得找出一种合适的方法维护这些 Localizable.strings,在 Excel 里做一个总表,增加语言的时候,可以直接把英文的一列发给客户进行翻译。 最大的优势是:随时可以用脚本把 Excel 里的所有语言导出成项目支持的 Localizable.strings 文件,极大提高效率。 1. 补全 使用 genstrings 命令将所有 .m 文件中的 LocalizedString 文本生成 Localizable.strings。 合并去重 我尝试过直接读取 Localizable.strings 文件,但提示编码错误,就暂时 copy 到 txt 文件中进行处理。 /Localizable.strings2Excel-master/python 文件夹 如需将Excel表格转换成Localizable.strings或者strings.xml文件,执行: python
KNLocal(@"FORMAT", nil), @"csdn", @"https://kunnan.blog.csdn.net/article/details/103733872"]; en.lproj/Localizable.strings "FORMAT" = "I am %2$@ from '%1$@'"; zh-Hans.lproj/Localizable.strings "FORMAT" = "我是来自“%1$@”的%2$@";
添加需要支持的语言种类,如下图 1.png ②、新建File文件 2.png ③、按照第②步分别创建2个.strings的文件,文件名必须为InfoPlist.strings和最好为Localizable.strings 分别对InfoPlist.strings和Localizable.strings做上述处理! 6.1.png 6.2.png ⑥忘了说了:InfoPlist.strings文件里面主要存的是配置文件信息的不同语言键值对,如“CFBundleDisplayName”是APP的名字;Localizable.strings
其实字符本地化和App名称本地化过程如出一辙,只是创建的文件名成不一样(连同后缀一起,文件名必须是Localizable.strings),其他步骤完全相同。 Snip20160619_8.png 文件创建成功,查看Xcode左侧导航列表,发现多了一个名为Localizable.strings的文件,如下图: ? 技巧 其实,我们不需要给Localizable.strings(English)文件添加Key-Value。 那么如何让系统加载我们自己命名的本地化文件而非系统默认的Localizable.strings呢? Snip20160619_33.png 如此一来,我们就可以挣脱别人的strings文件和系统默认的Localizable.strings文件,自己另起炉灶。
// 英文App名 "CFBundleName" = "I18N"; // 中文App名 "CFBundleName" = "国际化"; 文本国际化 新建一个Strings File,必须命名为Localizable.strings 选中Localizable.strings,在 Xcode 的右侧文件检查器中找到Localization,点击Localize...,然后勾选配置的国际化语言。 Localizable.strings左侧多了一个箭头,点击箭头展开后可以看见不同语言的Strings File。 在不同语言的Strings File中设置需要国际化的文本键值对。
// 英文名 "CFBundleName" = "I18N"; // 中文名 "CFBundleName" = "国际化"; 文本国际化 新建一个Strings File,必须命名为Localizable.strings 在Localizable.strings的各个国际化版本中写上需要国际化文本的Key = Value对。 NSLocalizedString("message", comment: "") NSLocalizedString("btnTitle", comment: "") 图片国际化 图片和文本国际化的使用方式一样,首先在Localizable.strings
程序中引用多国语言 建立Localizable.strings文件 在项目中点右键,选择Add->New File 在列表中选择Strings File,也可以取别的名字,比如MyApp.strings 如果你使用的是Localizable.strings,那么你在程序中可以这样获取字符串: NSLocalizedString(@"mykey", nil) 如果你使用的是自定义名字的.strings,比如
Xcode创建自定义静态Bundle资源文件 小白教程在工程下 TARGETS 下面点击 + 创建Bundle 文件图片修改其适配iOS系统图片可在文件管理中创建文件夹管理静态文件,比如这里创建一个Localizable.strings (国际化语言选中文件,选中其类型)图片其他地区语言选中PROJECT --->info 在Localization图片图片创建其他的Localizable.strings,之后就会在本地新创建一个本地化文件图片编辑国际化语言对应其他项目中使用的
KNLocal(@"FORMAT", nil), @"csdn", @"https://kunnan.blog.csdn.net/article/details/103733872"]; en.lproj/Localizable.strings "FORMAT" = "I am %2$@ from '%1$@'"; zh-Hans.lproj/Localizable.strings
但是,自己一点小应用含有需要国际化的内容较少,即便是这样做国际化的时候也踩了很多坑: Localizable.strings这个文件名可不能写错了,包括大小写,否则会很困惑为啥没效果。 3、如果我手动在Localizable.strings文件里加了其他内容怎么办? 一样导入导出xliff,不会丢。 4、导出的其他文件干嘛的? 最重要的一点 所有的Localizable.strings等文件,全部会自动生成,忘掉那些需要手动完成的工作吧。 希望大家支持我的应用XliffTool,让我们的应用走向世界吧。
在不特别指明字符串文件名称的情况下,app都将从Localizable.strings中获取对应的本地化文本内容•InfoPlist.strings对应Info.plist的字符串文件。 在Project Navigation中,我们选择新建文件 image-20210624074918275 文件类型选择Strings File,将其命名为Localizable.strings image -20210623202900471 image-20210624075200921 此时的Localizable.strings文件并没有被本地化,当前你的项目中只有一个文件,在该文件中进行文本键值对的定义 ,仅会针对项目的开发语言,通过右侧的Localize...按钮,我们可以选择生成Localizable.strings对应的语言(语言列表为项目中添加语言设定的列表)文件。 按照上面的键值对声明规则,我们在Localizable.Strings(Chinses)文件中添加如下内容: "ITEM" = "种类";"QUANTITY" = "数量";"UNIT PRICE" =
这可以在 Swift 包中完成,通过将所有必需的 .lproj 文件和所有需要本地化的内容(当前例子中只有 Localizable.strings 文件)放在目标文件夹下 - 我的习惯是放在父 Resources 这可以通过进入 Xcode 项目,在项目设置中的 "Info" 一栏,添加本地化支持: 需要注意的是,本地化需要至少一个文件(例如一个空的 Localizable.strings 文件)。 我一直在使用的一款工具 SwiftGen,它可以为各种资源生成 Swift 接口,例如 Localizable.strings 文件。
简体中文 里面的文件名字必须为 Localizable.strings 文件里面写的内容 为 key + 本地值,如下 "name" = "酷走天涯"; "sex" = "25"; "city" = "
这个宏书写起来比较简洁,只能从 main bundle 中对应语言的 Localizable.strings 文件里取到对应 key 的显示语言。 三、在项目中添加本地化文件 项目中可以添加以下本地化文件: 1、App名称本地化(默认文件名为:InfoPlist.strings,且必须是这个名字) 2、代码中字符串本地化(默认文件名为:Localizable.strings