這裏確實不是一個簡單的解決方法。 NIB需要爲每種語言單獨佈局。在某種程度上,這改善了整體用戶界面,因爲不同的語言實際上通常需要不同的佈局來尋求最佳效果。俄羅斯和德國在屏幕房地產上比英語更「大」的語言。中文通常會更小,而且中文字體的佈局看起來更好。阿拉伯語和希伯來語是從右到左,可能需要根本改變佈局。自動佈局很容易,但是通過在所有語言中使用不同級別的醜陋來實現這一點。當給予開發者容易的選擇和開發者的難看與醜陋之間的選擇與美麗之間的選擇時,蘋果幾乎總是選擇後者。儘管如此,蘋果仍然沒有盡其所能。
因此,這裏的第一課是保持您的NIBs 簡單。這在iPhone上比在Mac上更容易,因爲iPhone沒有綁定,而iPhone NIB通常更簡單。你也可以使用文本注入的非常少量的文字(如標題)的NIB。 「文本注入」是一種奇特的說法,「在標籤上使用插座並在加載視圖時將其設置爲本地化文本」。
ibtool能夠將字符串拉出NIB並將其推回,這可能會有所幫助。我已經使用了iLocalize,這對於使用合同本地化工具很有幫助,但對於您所談論的問題並沒有什麼幫助。
我試圖擺脫NIB,只是使用代碼,認爲它會讓事情變得更容易,但它確實沒有。在NIB中佈置每種語言要比提出在所有語言中看起來不錯的佈局邏輯要容易(見第一段)。文本注入僅在少數幾個地方有用。如果你可以將你的NIB分成需要本地化和不需要的NIB,這可能會有所幫助。在iPhone上,我發現只有不到一半的NIB實際上有文本或本地化的圖像。
當然,您應該閱讀Internationalization Programming Topics,但我很抱歉地說,您的問題確實沒有簡單的答案。航運產品本地化爲19種語言,我感到你的痛苦。