如何使用Xcode 4本地化我的应用程序?

我刚刚更新到Xcode 4。

通常,在本地化应用程序时,我们将“Localizable.String”文件添加到项目中,然后导航到“Get Info”菜单并单击“Make It Localized”button。

但是,在Xcode 4中,没有“获取信息”菜单。

当我尝试添加一种语言时,它只会影响“InfoPlist.String”文件(只能本地化应用程序的名称)。

我如何在Xcode 4中添加本地化到我的应用程序?

一旦你明白这一点很简单。

如果你想用Xcode 5 .x和iOS 7或者Xcode 6 .x和iOS 8来完成这个工作,请查看“ 如何用Xcode 5本地化我的应用程序? ”。

我喜欢SNR的联系 ,但是他的回答有点短。

另外,我看到这个问题有点老了,我的答案可能不同于旧版本的Xcode。 (我用Xcode 4.3.3)

但是 ,我已经更新了我的答案,使用Xcode 4.3.5及以下版本+ 4.4以上(以及Xcode 5.x和6.x这里: 如何使用Xcode 5本地化我的应用程序? )。

首先,你应该在iOS资源类别中添加一个新的“string文件”。

字符串文件

接下来,创build文件为“Localizable.strings”。 创建为

创build文件时,select它并打开File Inspector。

可本地化的文件文件检查器

编辑 :事情已经改变(一点点)与新的Xcode 4.4,4.5(及以上)(iOS 6支持)。 如果您使用Xcode 4.4或更高版本 ,请跳过此步骤。

{ Xcode 4.4,4.5 (及以上)的方式:

点击“Make localized”button 使本地化的按钮

现在转到您的主项目页面。 主项目页面

然后点击“本地化”下的“+”button,然后select您想要支持的语言。

(我会select德语/德语)

语言列表

现在会出现一个窗口,询问您要本地化哪些文件,确保select“Localizable.strings”文件,然后单击完成。

只有“Localizable.strings”文件被选中

}

{ Xcode 4.3.5及以下的方式:

点击本地化下的“+”button,然后select您想要支持的语言。

(我会select德语/德语)

语言列表

}

您现在应该看到“Localizable.strings”文件下有两个文件。

可本地化的文件

接下来,在两个本地化文件中添加您的本地化string。

英语

德语

现在来编码部分。

在这里,我将简单地声明一个UILabel并将其文本设置为Localizable文件string。

宣布:

 IBOutlet UILabel *testLabel; 

和里面的ViewDidLoad我会使用NSLocalizedString设置文本:

 [testLabel setText:NSLocalizedString(@"TEST", nil)]; 

完成后,只需在“Interface Builder”中连接我们的testLabel

连接IBOutlet

现在,您应该能够运行项目并查看本地化的string。 如果你改变语言,你也应该看到本地化的string改变。

英文结果改变语言德国的结果

select您想要本地化的文件,然后点击公用程序部分的文件检查器。 有一个部分本地化

您可以在select文件时查看文件信息(并添加本地化),并通过主菜单的“查看” – >“实用程序” – >“文件检查器”打开“文件检查器”。

首先你需要添加新的Localizable.string文件,并select它并转到查看“ – >”实用工具“ – >”文件检查点击+button在本地化部分添加语言。 也检查它XCode 4,添加本地化

xcode4本地化的方式已经改变! 右键单击localizable.strings并添加对其他语言的支持,只需单击右侧“本地化”窗格中的“+”即可。

您可以使用用户定义的运行属性的高级function:

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将您的string串起来进行本地化

在这里输入图像说明

你不需要声明IBOutlet,也不需要在ViewDidLoad [testLabel setText:NSLocalizedString(@“TEST”,nil)]中编写代码。

或者你可以使用TraductoPro为你自动化这个过程,并节省很多时间。 这是一个与Xcode很好集成的Mac应用程序。

如果您想要在您的应用程序内切换语言的dynamic方式并使用基于Pod的解决scheme,请查看:

https://github.com/nullic/DPLocalizationManager

安装时使用: pod 'DPLocalization', '~> 1.2'

它支持相同的标准本地化文件,但也使用dynamic链接使用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项目,其中显示了几个示例。