2013-07-19 40 views
0

我想通過XCode設置一些基本的本地化。OSX本地化 - 我在做什麼錯?

我也做了以下內容:

  1. 增加了一個新的Localize.strings文件。
  2. 添加法語到我的應用程序本地化設置。 French一個本地化文件是Localize.strings文件。
  3. 我已將「打開文件」本地化字符串添加到Localize.strings文件。 Localized Strings
  4. 我已經創建了一個出口,它連接到一個按鈕,添加以下代碼:

代碼(無法弄清楚如何得到這個內嵌子彈):

- (void) awakeFromNib 
{ 
    // Add any code here that needs to be executed once the windowController has loaded the document's window. 
    [openButton setTitle: NSLocalizedString(@"Open File", nil)]; 
} 

我的openButton不爲null。

我已經將法語(法語)移到了語言和文字系統偏好中的首選語言。我啓動應用程序,標題已本地化,但我的按鈕不是!

Screenshot

我失去了一些愚蠢的事?我在這裏做錯了什麼?從我讀過的教程中,這應該能夠做到這一點,但似乎並非如此。有什麼建議麼?

回答

2

看起來您在發佈的屏幕截圖中的「打開文件」行後缺少一個分號。這將使字符串文件無效。

編輯:完整的答案是,除了缺少分號,NSLocalizedString尋找一個名爲「Localizable.strings」的文件,在這種情況下,該文件被命名爲「Localize.strings」。要從不同名稱的文件加載本地化字符串,您需要使用NSLocalizedStringFromTable。在這種情況下,呼叫將是NSLocalizedStringFromTable(@"Open File", @"Localize", nil);

請參閱Apple的Resource Programming Guide以獲取有關NSLocalizedString等的完整文檔。人。在文件中查找字符串。

+0

Hrrm,我已在每個'Localize.strings'中添加了分號,但該應用仍顯示如下:http://imgur.com/NUb0Hr9。我也做了一個'NSLog(@「Test:%@」,NSLocalizedString(@「Open File」,nil));'它仍然以「打開文件」的形式出現。 – Kyle

+1

我只注意到你的文件被命名爲「Localize.strings」。我相信正確的文件名是「Localizable.strings」,我相信文件名很重要。如果您使用的是10.8或更高版本,則應用程序資源目錄中包含的lproj文件夾的名稱也很重要。它需要是「fr.lproj」,而不是「French.lproj」。 –

+0

是的,重命名文件做到了。太瘋狂了。謝謝您的幫助! – Kyle