2011-03-18 28 views
66

我剛剛更新到的Xcode 4如何使用Xcode 4本地化我的應用程序?

通常本地化的應用程序當我們添加「Localizable.String」文件的項目,然後導航至「獲取信息」菜單,然後單擊「做它本地化」按鈕。

但是,在Xcode 4中,沒有「獲取信息」菜單。

當我嘗試添加一種語言時,它只會影響「InfoPlist.String」文件(只能本地化應用程序的名稱)。

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

+1

只需閱讀本教程:http://www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial。希望這可以幫助。 – SNR 2011-09-28 09:28:34

+0

檢查[在iOS 6中使用單一故事板文件進行基本國際化](http://forums.macrumors.com/showthread.php?t=1467446) – mikezang 2012-10-13 13:55:43

回答

13

選擇您想要本地化的文件,並點擊公用程序部分的文件檢查器。 有一節本地化

8

當您選擇文件並通過主菜單的「查看」 - >「實用程序」 - >「文件檢查器打開」文件檢查器「時,您可以查看文件信息」。

+0

我似乎無法從文件檢查器中刪除現有的本地化版本。它詢問「你想刪除...」,但是當用'刪除'按鈕確認時......沒有任何反應。該文件仍然存在。大。 – DefenestrationDay 2011-03-31 07:20:41

4

首先你需要添加新的Localizable.string文件並選擇它並轉到查看「 - >」實用工具「 - >」文件檢查器點擊+按鈕在本地化部分添加語言。 也檢查它XCode 4, Adding localization

1

xcode4中的本地化的方式已經改變!右鍵單擊localizable.strings並添加對其他語言的支持,只需單擊右側「本地化」窗格中的「+」即可。

209

一旦你明白它就很簡單。

如果你想在Xcode做到這一點 .X和的iOS 7或Xcode的 .X和的iOS 8,退房 「How to localize my app with Xcode 5?」 代替。

我喜歡SNRlink,但他的回答有點短。

此外,我看到這個問題有點老,我的答案可能不同於舊版本的Xcode。 (我用的Xcode訴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

創建文件時,選擇它並打開File Inspector。

The Localizable File File Inspector

EDIT:觀光已經改變(比特)與新的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)]; 

完事,只需連接我們testLabel在 「Interface Builder中」。現在

Connect IBOutlet

,你應該能夠運行該項目,並看到了本地化的字符串。 如果你改變語言,你也應該看到本地化的字符串更改。

English ResultChange the languageGerman Result

+4

關於Xcode 4.5的真正有用的注意事項(需要從項目屬性頁面添加本地化) – buskila 2013-01-08 10:24:50

+1

Aleksandar Azizi關於Xcode 4.5及更高版本的評論實際上適用於Xcode 4.4及更高版本。 – 2013-01-10 08:46:30

+1

這是一個很棒的答案!它是否以與圖像相同的方式工作? – 2013-03-20 10:33:57

0

或者你可以使用TraductoPro爲您自動完成這一過程,節省了大量oftime。這是一款與Xcode完美集成的Mac應用程序。

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(@ 「TEST」,無)];

0

如果你想切換語言的應用程式中,並使用基於莢解決方案以動態的方式檢查:

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的項目,包括展示幾個例子示例項目。

+0

此外,我使用Aleksander Azizi的答案在項目內部構建標準的本地化文件,但需要一種在語言之間輕鬆切換應用程序的方法。 – 2014-09-19 03:33:49

相關問題