XCode:显示一种语言的所有本地化文件(IOS 项目)

Posted

技术标签:

【中文标题】XCode:显示一种语言的所有本地化文件(IOS 项目)【英文标题】:XCode: Show all localized files for one language (IOS project) 【发布时间】:2013-09-27 07:35:27 【问题描述】:

我一直在搜索 XCode 和 Google,但我就是不知道该怎么做:

我正在使用 Base 本地化,它显示 4 个文件已本地化为英语。我不知道为什么它是 4,我想知道为什么。 但是如何?如何获取所有本地化文件的列表(以及这些文件的位置)?

这是一个我找不到任何答案的罕见任务吗?还是这么明显,我就是找不到?

我意识到,当我尝试添加另一种语言(如 Japanase)时,我会看到有 4x InfoPlist.strings-files for English and 1x file for Base Localization (Storyboard),但我仍然不知道为什么这些文件在哪里以及如何删除它们。

检查en.lproj 文件夹,只有1 个InfoPlist.strings 文件。为什么 XCode 告诉我我有 4 个?

【问题讨论】:

【参考方案1】:

有一种方法可以删除本地化文件。如果您使用版本控制,则可以确保您的工作已提交并且您的树是干净的。然后,当您删除本地化文件时,您只需检查树的状态并查看它们是什么文件,然后恢复它们并确定您需要从那里做什么。

我同意这是一个非常糟糕的开发人员体验。只需将其添加到移动开发人员被滥用的方式列表中即可。

【讨论】:

这真是一个绝妙的主意。我同意这是一个糟糕的解决方案,但似乎是唯一的解决方案。【参考方案2】:

Xcode 正在从您的项目文件中获取此信息。所以如果你不能通过查看你的 lproj 文件夹来推断它,你可以打开 pbxproj 文件(在你的 .xcodeproj 文件夹下)并在那里搜索语言环境。

【讨论】:

有趣的建议,谢谢!虽然 .pbxproj 文件可能很大,但我仍然认为 ***.com/a/30602950/968099 是目前最可行的解决方案。【参考方案3】:

刚刚遇到同样的问题。通过添加新语言(和取消)的动作,这是获取所有本地化文件列表的一种非常简单的方法:

    项目 -> 本地化 点击加号按钮添加新语言。 选择任何语言。 将出现“选择文件和参考语言以创建...本地化”对话框。 这是所有本地化文件的列表。 点击取消(不要添加新语言)。

【讨论】:

这实际上显示了 Xcode 10.2 中的文件列表和事件“文件路径”。【参考方案4】:

使用这个答案manual language selection in an ios-App (iPhone and iPad)

你可以设置任何你想要的语言,记住“Localizable.strings”包含语言文本

【讨论】:

感谢您的回答,不过我正在寻找 XCode 中的本地化文件。【参考方案5】:

最简单的方法是在项目的根目录中打开 een finder 屏幕。之后在搜索栏中输入en.lproj(或您的主要语言)。

选择只在文件夹中搜索

现在您有了一个包含所有已本地化文件的列表。

【讨论】:

感谢您的建议,这其实是个好主意。问题是,使用这种方法我找到了 1 个文件(Localizable.strings),但 Xcode 告诉我有 2 个文件已本地化。但第二个是哪个?【参考方案6】:

您可以在 Project Navigator 中选择它们来检查您的文件,然后查看 Xcode 右侧的 File Inspector。

在这里,如果您的文件已本地化,您可以查看存在哪些语言并选择/取消选择它们。

您也可以使用 Finder:进入您的项目文件夹,有一些文件夹命名为 ja.lprojit.lproj(实际名称根据 Xcode 版本更改)。在这些文件夹中,您会找到针对该语言进行了本地化的所有文件(例如,在ja.lproj 中,您会看到所有文件都本地化为日语)。

【讨论】:

感谢您的快速回答。确实,如果启用了本地化,我可以检查项目中的每个文件。由于它很大,我想找到另一种方法。您提到的第二个选项:是的,我已经尝试过了。有趣的是,里面只有 1 个文件,尽管 XCode 说“本地化 4 个文件”。【参考方案7】:

我自己也有同样的疑惑。我还没有开始本地化过程,Xcode 已经告诉我我已经“本地化了 2 个文件”。

您可能想要检查项目中的目标。我的主要目标有一个 InfoPlist.strings 文件,我的单元测试目标有第二个 InfoPlist.strings 文件。

通过尝试添加新的本地化,会显示一个确认屏幕,其中包含一个列出所有资源文件的表格以及与这些资源文件关联的每种参考语言的下拉列表。

资源文件!= 本地化文件。

参考语言 = 本地化文件。

对于您在“参考语言”下拉菜单中看到的每种语言,“文件本地化”计数器都会增加一个。

在我的例子中,这个确认屏幕显示了两个相同的条目,对应于每个目标中的 InfoPlit.strings 资源文件,英语是每个目标引用的唯一语言,使其成为“2 个本地化文件”。

有趣的是,“资源文件”在技术上并不存在于文件系统中,只有本地化文件存在于那些 .lproj 文件夹中。

据我所知,“资源文件”是 Xcode 的废话。

【讨论】:

以上是关于XCode:显示一种语言的所有本地化文件(IOS 项目)的主要内容,如果未能解决你的问题,请参考以下文章

尝试本地化 LaunchScreen.storyboard 以在 iOS 10 中使用 xcode 8.3.3 支持语言时出现问题

iOS:本地化间歇性中断

iOS 在 Xcode UITest 中测试本地文件导入/打开

iOS Xcode 本地化不匹配导出临时与调试

本地化情节提要 iOS xcode 6

Xcode 在 Info.plist Localizations 设置中显示有限的语言列表