現在我們正在考慮將應用程序本地化爲多種語言,現在應用程序的一般概念已經確定。這是我想確保從一開始就做的正確,以降低未來頭痛的風險。iOS應用程序本地化最佳實踐和佔位符
該應用程序的目標iOS 7及以上,使用故事板,並寫在Swift中。
故事板
當一個故事板(或廈門國際銀行)工作的,什麼是標記UI元素爲「不被翻譯成」最好的方法是什麼?例如,我有一個用戶顯示名稱的佔位符字符串(Display Name
),在運行時將被用戶顯示名稱替換。此顯示名稱不會本地化,但字符串「顯示名稱」也不會。有沒有一種方法不會自動將UI元素的值放入strings
文件中?如果沒有,是進入該文件並手動刪除字符串我不想本地化可持續的選項?
字符串代碼
我使用的是斯威夫特功能NSLocalizedString
與key
和comment
參數。我見過的一些地方說基於上下文將密鑰設置爲唯一的ID(例如,intro.login-button-text
),而其他人似乎只是將整個字符串置於默認語言(例如Login
)。我喜歡這個關鍵的獨特ID的想法,但這不會違背「基礎」語言的想法嗎?
導出
的Xcode 6的「導出本地化」的選擇似乎用於獲取文件的正確格式發送給翻譯非常有用的。但是,如前所述,佔位符文本不需要翻譯。在導出之前,是否應將這些佔位符從導出的xliff
或strings
文件中刪除?
另一個問題是格式。例如。 「%1 $ @ is online!」''%1 $ @'是用戶的名字還是格式是''%1 $ @%2 $ @''' 1 $ @'是用戶的名字,'%2 $ @'是本地化的字符串'「在線!」'。我認爲第一個對定位者更具描述性。但是本地化格式似乎有點過分,特別是如果您正在開發跨平臺應用程序。 – Reggian 2015-03-20 17:53:18
@Reggian你需要使用第一個選擇。在很多語言中,這個名字可能會在最後或在句子的中間。翻譯者需要能夠移動文本的名稱部分。 – Pylinux 2016-03-04 14:50:53