最近要對一款遊戲進行多語言本地化,在網上找了一些方案,加上自己的一點點想法整理
出一套方案和大家分享!
多語言在應用程序中一般有兩種做法:
一、程序中提供给用戶自己選擇的機會;
二、根據當前用戶當前移動設備的語言自動將我們的
app 切換對應語言。
第一種做法比較簡單完全靠自己的發揮了,這裏主要講第二種做法,主要分一下幾點:
1.本地化應用程序名稱
2.本地化字符串
3.本地化圖片
4.本地化其他文件
1.本地化應用程序名稱
(
1)點擊“new file”然後在彈出窗口左側選擇 IOS 的 resource 項,在右側就可以看到“String
File”的圖標。創建這個文件,命名为“InfoPlist”(一定是這個文件名) 就生成一個
InfoPlist.strings 文件;
(
2)選中 InfoPlist.strings 點擊 XCode-> View-> Utilities -> File Inspector,在 Localization 中
點
“+”,添加 chinese (zh-Hans)類型的为簡體中文,english 應該會自動添加上。然後在
InfoPlish.strings 左邊會多出一個三角形,點擊展開後可以看到 InfoPlish.strings(english)和
InfoPlish.strings(chinese)兩個版本的文件;
(
3)在 InfoPlish.strings(english)文件中加入:
1
CFBundleDisplayName =
"Program"
;
其中
“Program”为英文應用程序名稱,同理在 InfoPlish.strings(chinese)文件中加入:
2
CFBundleDisplayName =
"應用程序"
;
其中“應用程序”为中文名稱,
注意:
CFBundleDisplayName 加不加雙引號都行
(
4)編輯 Info.plist,添加一個新的屬性 Application has localized display name, 設置其類型
为
boolean,並將其 value 設置为 YES 即可
2.本地化字符串
(
1)類似“本地化應用程序名稱”第一步,點擊“new file”然後在彈出窗口左側選擇 IOS 的
resource 項,在右側就可以看到“String File”的圖標。創建這個文件,命名为“Localizable”
(一定是這個文件名否則後面調用會有一些區別)就生成一個
Localizable.strings 文件;
(
2)類似“本地化應用程序名稱”第二第三步,在 Localizable.strings(english)文件中加入:
3
"welcome"
=
"Click on the screen to continue..."
;
同理在 Localizable.strings(chinese)文件中加入:
4
"welcome"
=
"點擊屏幕繼續..."
;
(
3)在代碼中使用 NSLocalizedString(<#key#>, <#comment#>)來讀取本地化字符串,代碼
如下: