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

时间:2011-03-18 07:09:56

标签: xcode localization internationalization xcode4

我刚刚更新到Xcode 4。

通常在本地化应用时,我们会将“Localizable.String”文件添加到项目中,然后导航到“获取信息”菜单并单击“使其本地化”按钮。

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

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

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

8 个答案:

答案 0 :(得分:210)

一旦你理解它就很简单。

如果您想通过Xcode 5 .x和 iOS 7 或Xcode 6 .x和 iOS 8 <来完成此操作/ strong>,请查看“How to localize my app with Xcode 5?”。

我喜欢SNRlink,但他的回答有点短。

另外,我看到这个问题有点陈旧,我的答案可能与旧版本的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资源类别中添加新的“字符串文件”。

Strings File

接下来,将文件创建为“Localizable.strings”。 Create As

创建文件后,选择它并打开文件检查器。

The Localizable File File Inspector

编辑:使用新的Xcode 4.4,4.5(及更高版本)(支持iOS 6),情况发生了变化(有点)。 如果您使用Xcode 4.4或以上,请跳过此步骤。

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

点击“制作本地化”按钮Make localized button

现在转到主项目页面。 Main Project page

然后单击“本地化”下的“+”按钮,并选择要支持的语言。

(我会选择德语/德语)

List of languages

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

Only the "Localizable.strings" file is selected

<强>}

{ Xcode 4.3.5 及以下方式:

单击“本地化”下的“+”按钮,然后选择要支持的语言。

(我会选择德语/德语)

List of languages

<强>}

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

Localizable Files

接下来,在两个本地化文件中添加本地化字符串。

English

German

现在是编码部分。

在这里,我只需声明一个UILabel并将其文本设置为Localizable文件字符串。

宣告:

IBOutlet UILabel *testLabel;

在ViewDidLoad内部,我将使用NSLocalizedString设置文字:

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

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

Connect IBOutlet

现在您应该能够运行Project并查看本地化字符串。 如果您更改语言,您应该也会看到本地化字符串更改。

English Result Change the language German Result

答案 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将字符串字符串化为本地化

enter image description here

你不需要宣布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项目,其中显示了几个示例。