Xcode13不使用genstrings如何生成英语版Localizable.strings文件
Xcode 13 无genstrings依赖生成开发语言Localizable.strings操作方案
Xcode 13默认将开发语言的字符串视为源代码中的原始值,因此不会主动为开发语言生成本地化文件,导入对应.xcloc时会默认跳过写入流程,这是系统的默认处理逻辑,不是操作错误。
方案一:手动创建+批量导入内容
- 右键项目导航栏,选择「New File...」,搜索
Strings File类型,命名为Localizable.strings后保存到项目目录 - 选中刚创建的
Localizable.strings文件,打开右侧文件检查器,点击「Localize...」按钮,在弹出选项中选择English (Development Language),点击确认后即可在en.lproj目录下生成空的英语版本地化文件 - 找到之前导出的en.xcloc文件,右键选择「显示包内容」,依次进入
Contents > Resources目录,打开其中的.xliff格式文件 - 提取所有
<source>标签中的文本,按照"待本地化key" = "对应英文值";的格式批量整理到刚创建的Localizable.strings中即可(作为开发语言,key和value为同一值,可直接复制使用)
方案二:临时切换开发语言自动生成
如果不想手动整理xliff内容,可通过临时修改开发语言的方式触发Xcode自动生成:
- 选中项目根目录,进入「Info」标签页,在Localizations区域点击「Development Language」下拉框,临时切换为其他已添加的非开发语言(如你测试用的法语),确认修改
- 选择「Product -> Import Localisations...」导入之前导出的en.xcloc文件,此时Xcode会将英语识别为非开发语言,自动生成对应
Localizable.strings文件 - 文件生成完成后,再将开发语言改回英语即可,该操作不会影响现有其他语言的本地化内容
注意事项
- 后续更新开发语言的本地化字符串时,导出en.xcloc后直接提取内容更新对应
Localizable.strings即可,无需重复修改开发语言 - 不要通过文件检查器在已有其他语言的strings文件上直接添加英语版本,Xcode会默认复制当前选中语言的内容,引发翻译内容错乱问题
内容的提问来源于stack exchange,提问作者Philip Pegden
相关产品推荐
相关产品推荐

