2014-04-15 20 views
2

我的情況是,從左到右的語言適合我的UIStoryboard,並做了一些小的調整;那沒問題。故事板上處理阿拉伯語(從右到左)的最佳方式是什麼?

但我不知道如何處理從右到左的語言。我們應該爲這些語言有不同的故事板嗎?由於這些語言是從右到左的,所以標籤和按鈕的對齊應該是右對齊的。

處理這些語言的最佳方式是什麼?

感謝您的幫助。

+0

嗯,是的,你使用RTL語言的RTL設置。到目前爲止,您是否遇到過麻煩?請解釋問題。 – Neeku

+0

RTL設置是什麼意思?我仍然在本地化過程中,並沒有本地化的字符串,但開始擔心如何處理RTLs的情況下,如果我必須去單獨的UIStoryboards路線。 –

+0

好的。我現在得到你的問題。我的意思是對齊等。我一直沒有使用RTL和LTR語言的本地化,所以恐怕我不確定答案,我知道一件事情,在Xcode中處理RTL總是很痛苦! – Neeku

回答

-1

我不得不一次使用多個本地化故事板的應用程序,這是一團糟。問題是,如果出現錯誤,而不是1個故事板可以修改,那麼就有多個。兩次工作不好...

當我再次面對相同的問題(但我沒有使用故事板)時,我通過檢測手機語言並應用有關語言的不同選項來應對:

+ (BOOL)isDeviceLocalizationFrench{ 
    NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0]; 
    return [language rangeOfString:@"fr"].location != NSNotFound; 
} 

然後通過製作IBOUlets使您的標籤在您的控制器中「看到」,並根據語言修改標籤的文本對齊。起初這似乎是一個漫長的過程,但從長遠來看管理多個故事板並不困難。

+0

擁有sphagetti代碼來解決這個問題也是一團糟。無法想象當你改變某些事情時需要的測試工作。此外,擁有多個Storyboard可能對我來說並不理想,因爲我在故事板上有30多個UIViews。上帝,我希望有一個更好的解決方案來處理這個問題。本地化,在我看來,並不那麼容易。 –

+0

如果您想更進一步,可以使用自定義UILabel子類,根據語言將每個NSTextAlignmentLeft更改爲NSTextAlignmentRight。邏輯將只在一個地方,你只需要改變你的UILabel到你的自定義類 – Emilie

相關問題