Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone XCode:显示一种语言的所有本地化文件(IOS项目)_Iphone_Ios_Objective C_Xcode_Localization - Fatal编程技术网

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

Iphone XCode:显示一种语言的所有本地化文件(IOS项目),iphone,ios,objective-c,xcode,localization,Iphone,Ios,Objective C,Xcode,Localization,我一直在搜索XCode和Google,但我就是不知道怎么做: 我使用的是基本本地化,它显示了4个英语本地化文件。我不知道为什么是4,我想知道为什么。 但是怎么做呢?如何获取所有本地化文件的列表(以及这些文件的位置)? 这是一项如此不寻常的任务以至于我找不到任何答案吗?或者它是如此明显,而我只是无法找到它 我意识到,当我尝试添加另一种语言(如日语)时,我会看到英语有4个InfoPlist.strings文件,基本本地化(故事板)有1个文件,但我仍然不知道这些文件的原因、位置以及如何删除它们 检查e

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

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

这是一项如此不寻常的任务以至于我找不到任何答案吗?或者它是如此明显,而我只是无法找到它

我意识到,当我尝试添加另一种语言(如日语)时,我会看到英语有4个InfoPlist.strings文件,基本本地化(故事板)有1个文件,但我仍然不知道这些文件的原因、位置以及如何删除它们


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

您可以在Project Navigator中选择文件,然后查看XCode右侧的文件检查器

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

您也可以使用Finder:转到您的项目文件夹,其中有一些文件夹名为
ja.lproj
it.lproj
(实际名称根据Xcode版本而更改)。在这些文件夹中,您可以找到该语言本地化的所有文件(例如,在
ja.lproj
中,您将看到所有文件都是日语本地化的)。

使用此答案


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

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

选择仅在文件夹中搜索

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


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

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


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

您可能希望检查项目中的目标。我有一个InfoPlist.strings文件用于我的主要目标,另一个InfoPlist.strings文件用于我的单元测试目标

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

资源文件!=本地化文件

引用语言=本地化文件

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

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

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


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

Xcode是从您的项目文件中获取这些信息的。因此,如果您无法通过查看lproj文件夹来推断,您可以打开pbxproj文件(在.xcodeproj文件夹下)并在其中搜索区域设置。

也有同样的问题。下面是一个非常简单的方法,可以通过添加新语言(和取消)来获取所有本地化文件的列表:

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

  • 谢谢你的快速回答。的确,如果启用了本地化,我可以检查项目中的每个文件。因为这是一个相当大的问题,我想找到另一种方法。你提到的第二个选择:是的,我试过了。有趣的是,里面只有一个文件,尽管XCode说“4个本地化文件”。谢谢你的回答,我正在寻找一个关于XCode中本地化文件的解决方案。谢谢你的建议,这实际上是个好主意。问题是,使用这个方法我找到了1个文件(Localizable.strings),但是Xcode告诉我有2个文件是本地化的。但第二个是哪一个?这真是个好主意。我同意这是一个糟糕的解决方案,但似乎是唯一的一个。有趣的建议,谢谢!虽然.pbxproj文件可能相当大,但我仍然认为这是目前最可行的解决方案。这实际上显示了Xcode 10.2中的文件列表和事件“文件路径”。