gpt4 book ai didi

iphone - iPhone 本地化文件夹中的子文件夹

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:26 26 4
gpt4 key购买 nike

我想在我的 iPhone 项目中本地化一些图像。所以我创建了文件:

en.lproj/Images/iPad/btn-check-pressed~ipad.png
en.lproj/Images/iPadRetina/btn-check-pressed@2x~ipad.png
ru.lproj/Images/iPad/btn-check-pressed~ipad.png
ru.lproj/Images/iPadRetina/btn-check-pressed@2x~ipad.png

等等并将它们添加到我的项目中。但是 Xcode 在本地化列表中显示“本地化的英语 0 个文件”、“本地化的俄语 0 个文件”。

它也显示警告

警告:输出文件的多个构建命令/Users/User/Library/Developer/Xcode/DerivedData/TestLocalizationDefaultPNG-ckplzmcjurofxrccjuvyzjaqketc/Build/Products/Debug-iphonesimulator/TestLocalizationDefaultPNG.app/btn-check-pressed~ipad .png

当我尝试构建项目时针对我的每个文件。因此,据我所知,它将所有文件复制到一个文件夹中,并且由于我的文件具有相同的名称 - 只有其中一个可以存活。但是,如果我删除我的子文件夹:

en.lproj/btn-check-pressed~ipad.png
en.lproj/btn-check-pressed@2x~ipad.png
ru.lproj/btn-check-pressed~ipad.png
ru.lproj/btn-check-pressed@2x~ipad.png

一切正常。

有没有办法保留子文件夹?这里http://developer.apple.com/library/ios/#documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html在用于音频文件的 list 2-4 子文件夹中,所以它应该是。

最佳答案

看起来本地化在 iOS 中的唯一工作方式是不同的。你的基本文件夹层次结构应该是倒置的:首先是实际的文件夹结构,在你想要本地化的每个文件夹中,你都将相应的 .lproj 子文件夹与本地化资源放在一起。所以在你的例子中它应该是这样的:

/Images
/iPad
/en.lproj
btn-check-pressed~ipad.png
/ru.lproj
btn-check-pressed~ipad.png
/iPadRetina
/en.lproj
btn-check-pressed@2x~ipad.png
/ru.lproj
btn-check-pressed@2x~ipad.png

如果您打算拥有大层次结构,这可能不是最佳选择,但这是开箱即用的唯一方法。

当然,您总是可以说您不需要 Xcode 支持并使用一些自定义构建规则以您喜欢的方式重新排列项目中的文件,然后在构建过程中将它们复制到正确的结构中,但我怀疑它是否值得麻烦。

更新:看起来 XCode (4.5) 构建脚本是主要的反派。

根据我的实验,构建脚本应该至少为图像展平资源结构。所以本地化应用程序可以在里面的唯一方法是:

/YourApp
YouApp
info.plist
....
/en.lproj
btn-check-pressed~ipad.png
btn-check-pressed@2x~ipad.png
/ru.lproj
btn-check-pressed~ipad.png
btn-check-pressed@2x~ipad.png

诀窍是,默认情况下,XCode(从 4.5 版开始)只有在如上所述的情况下才能展平您的项目结构,而且我没有看到更改此行为的标准方法。

当然,关于自定义构建脚本的原始评论仍然是正确的。

关于iphone - iPhone 本地化文件夹中的子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13750595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com