我刚刚更新到Xcode 4。
通常在本地化应用时,我们会将“Localizable.String”文件添加到项目中,然后导航到“获取信息”菜单并单击“使其本地化”按钮。
但是,在Xcode 4中,没有“获取信息”菜单。
当我尝试添加语言时,它只影响“InfoPlist.String”文件(只能本地化应用程序的名称)。
如何在Xcode 4中为我的应用添加本地化?
答案 0 :(得分:210)
一旦你理解它就很简单。
如果您想通过Xcode 5 .x和 iOS 7 或Xcode 6 .x和 iOS 8 <来完成此操作/ strong>,请查看“How to localize my app with Xcode 5?”。
另外,我看到这个问题有点陈旧,我的答案可能与旧版本的Xcode有所不同。 (我使用Xcode v.4.3.3)
然而,我已更新我的答案,使用 Xcode 4.3.5 及以下+ 4.4 及以上(以及Xcode 5.x和6.x:How to localize my app with Xcode 5?)。
首先,您应该在iOS资源类别中添加新的“字符串文件”。
接下来,将文件创建为“Localizable.strings”。
创建文件后,选择它并打开文件检查器。
编辑:使用新的Xcode 4.4,4.5(及更高版本)(支持iOS 6),情况发生了变化(有点)。 如果您不使用Xcode 4.4或以上,请跳过此步骤。
{ Xcode 4.4,4.5(及以上)方式:
点击“制作本地化”按钮
现在转到主项目页面。
然后单击“本地化”下的“+”按钮,并选择要支持的语言。
(我会选择德语/德语)
现在会出现一个窗口,询问您要本地化的文件,确保选择仅“Localizable.strings”文件,然后单击“完成”。
<强>} 强>
{ Xcode 4.3.5 及以下方式:
单击“本地化”下的“+”按钮,然后选择要支持的语言。
(我会选择德语/德语)
<强>} 强>
您现在应该看到“Localizable.strings”文件下有两个文件。
接下来,在两个本地化文件中添加本地化字符串。
现在是编码部分。
在这里,我只需声明一个UILabel
并将其文本设置为Localizable文件字符串。
宣告:
IBOutlet UILabel *testLabel;
在ViewDidLoad内部,我将使用NSLocalizedString
设置文字:
[testLabel setText:NSLocalizedString(@"TEST", nil)];
要完成,只需在“Interface Builder”中连接我们的testLabel
。
现在您应该能够运行Project并查看本地化字符串。 如果您更改语言,您应该也会看到本地化字符串更改。
答案 1 :(得分:13)
选择要本地化的文件,然后单击实用程序部分中的文件检查器。 有一个部分本地化
答案 2 :(得分:8)
您可以在选择文件时查看文件信息(并添加本地化),然后通过主菜单的“查看”打开“文件检查器” - &gt; “公用事业” - &gt; “文件检查员”。
答案 3 :(得分:4)
首先,您需要添加新的Localizable.string文件并选择它,然后转到查看“ - &gt;”实用程序“ - &gt;”文件检查器单击+按钮以在本地化部分添加语言。 还要检查XCode 4, Adding localization
答案 4 :(得分:1)
xcode4中的本地化方式已经改变了!右键单击localizable.strings,并添加对另一种语言的支持,只需单击右侧“Localization”窗格中的“+”即可。
答案 5 :(得分:1)
您可以使用用户定义的运行时属性的高级:
http://cupobjc.blogspot.com.es/2014/04/interfaz-builder-localization.html
首先为UILabel定义一个新类别:
#import "UILabel+Localized.h"
@implementation UILabel (Localized)
-(void) setTextLocalized:(NSString *)aText{
[self setText:NSLocalizedString(aText, nil)];
}
@end
然后在界面构建器中,用户定义的运行时属性:
textLocalized将字符串字符串化为本地化
你不需要宣布IBOutlet, 并且不需要在ViewDidLoad中编写代码[testLabel setText:NSLocalizedString(@&#34; TEST&#34;,nil)];
答案 6 :(得分:0)
或者您可以使用 TraductoPro 为您自动执行此过程并节省大量时间。它是一款与Xcode完美集成的Mac应用程序。
答案 7 :(得分:0)
如果您想要一种动态的方式在您的应用内部切换语言并使用基于Pods的解决方案,请查看:
https://github.com/nullic/DPLocalizationManager
安装时使用:pod 'DPLocalization', '~> 1.2'
它支持相同的标准本地化文件,但也使用User Defined runtime attributes
以及viewDidLoad
内部代码进行动态链接。
示例项目中的一些示例:
self.startup.text = DPLocalizedString(@"TITLE", nil);
self.label.autolocalizationKey = @"LABEL_TEXT";
[self.label updateAutolocalizationArguments:@[@"Hello", @1234567890, [NSDate date]]];
self.autolocalizationKey = @"TITLE";
下载包含示例项目的git项目,其中显示了几个示例。