目前我正忙於爲我的朋友寫一個應用程序。它適用於各種翻譯。我試圖找出的是如何實現'自定義'本地化。作爲一個例子,假設我們有en_US和en_US_Slang,我將如何將後者添加到本地化列表或NSLocalisedString下?可可NIB:自定義EN本地化
爲了解釋這種情況,這個人正在運行2個獨立的應用程序來保存他的樂隊的信息。一個是基於MS Access的,另一個是基於Filemaker Pro的(去圖?!)
該樂隊的各個成員或者在其上使用,或者在另一個上使用。他是唯一一個同時使用兩者的人。
目前,當您啓動應用程序(Mac App不是iOS)時,它會詢問您以前是否是FMP或Access用戶。
基於此,本地化的字符串還原爲各種應用程序中使用的術語。
即在MSAccess中,樂隊演出位置被稱爲「功能前提」,而在FMP中被稱爲「演出位置」。爲了避免必須重新培訓所有人(因爲他們爲我免費贈送生日演出免費),我認爲最快的方法是保留他們習慣的標籤,都是一樣的。
從我可以計算出它的:
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en_Access"] forKey:@"AppleLanguages"];
和
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en_FMP"] forKey:@"AppleLanguages"];
有人可以證實這一點還是有可能,我會指出我在正確的方向(也許有些蘋果文檔?)在我深入研究這個問題之前我更願意找出:)
謝謝
A
另一種解決方法是什麼?我試圖避免在整個演出中使用if語句對所有內容進行雙重編碼:D –
有多種選擇。沒有if語句遍佈整個地方,而是用自己的實現替換NSLocalizedString調用。它可以是一個帶有額外參數或兩種不同方法或OO方法的新方法(例如,定義一個LocalizedStringProvider類並有兩個不同的實例,一個用於舊術語,一個用於新術語) – Clafou