iOS 設定App的國際化和本地化

2021-09-08 18:12:23 字數 2798 閱讀 3555

前言

1.bundle display name

先看此方法的具體設定步驟:

這裡提一下bundle name和bundle display name:

2.infoplist.strings->cfbundledisplayname

這種方法較為繁瑣,但是可以支援多語言版本名稱的設定,即localization,也先看具體步驟:

可以選擇支援英文

"cfbundledisplayname" = "中文名字";

"cfbundledisplayname" = "englishname";

名字字串自己填寫就好,這裡只是示範

3.關於預設語言的設定:localization native development region

xcode建立工程時,預設語言環境是英文,所以在呼叫一些系統空間時(例如相機相簿),其控制按鍵的標題都是英文顯示的狀態,快速的設定方法就是設定localization native development region的值,具體步驟可以參考此文:localization native development region 更改語言無效 中的第一段內容。

4. localizations版本國際化

同新增infoplist.strings的做法相同,新增乙個localizable.strings檔案

對應中英文(其他語言自行新增),分別新增下列語句:

"

alerttitle

" = "標題"

;"alertmessage

" = "資訊"

;"alertok

" = "確認"

;"alertother

" = "其他"

; "alerttitle

" = "

title";

"alertmessage

" = "

message";

"alertok

" = "

confirm";

"alertother

" = "

other

";

關於上述的key和value,只是示範,可自行定義,呼叫這些key-value需要利用nslocalizedstring(, )系統巨集,例如:nslocalizedstring(@"alerttitle", @"這是一句註解,根據情況寫"),第乙個引數即在strings檔案中自定義的key,根據不同的語言環境,系統會自動檢測這個key對應的value(中文還是英文),第二個引數是注釋,為了便於理解,可以為nil。

實際用例:

- (void)createalertviewwithtitle:(nsstring *)title message:(nsstring *)message delegate:(id)delegate cancel:(nsstring *)cancel andother:(nsstring *)other

//呼叫

[self createalertviewwithtitle:nslocalizedstring(@"

alerttitle

", @"

這是一句註解,根據情況寫

") message:nslocalizedstring(@"

alertmessage

", @"") delegate:nil cancel:nslocalizedstring(@"

alertok

", nil) andother:nslocalizedstring(@"

alertother

", nil)];

分別設定系統的語言環境至中英文模式,效果如下:

上面的寫法看起來比習慣上直接寫string去設定標題要麻煩許多,但是常用的標題可以進行二次巨集定義管理,那樣不僅使用方便,還便於統一管理。

看一下環信demo中的示範:

本文只是簡單介紹相關的用法,至於詳細的說明,可以參考文章最後列出的參考文章,裡面有不少不錯的詳細講義。

參考文章:

iOS應用國際化 app 名字國際化的坑

然後我就準備給 info.plist 也新增上圖的檔案 選擇完成以後你發現,專案已經報錯了,你的專案已經找不到你的 info.plist 檔案。這該怎麼辦啊,專案馬上就要提交測試版本了,時間迫在眉急啊。此處心裡只想,媽的先趕緊把專案先能跑起來,這個做不做再說了 看到報錯內容,是說我的 info.pl...

iOS 國際化支援 設定

主要步驟 1.本地化應用程式名稱 2.本地化字串 3.本地化 4.本地化其他檔案.1.本地化應用程式名稱 a.為應用程式新增本地化支援語言檔案 在專案中按 command n 鍵撥出新建檔案介面 選擇 ios 下的 resource裡面的 strings file 點選 next 輸入檔名稱 在xc...

iOS開發之本地化 國際化語言設定

1.1 增加所需的語言 1.2 建立string檔案。需要特別注意 檔名必須為 infoplist.strings 2.1 設定語言,在1.1中設定過就不再需要再次設定。如果沒有進行1.1中的設定,那就按1.1步驟設定一次 2.2 建立string檔案。需要特別注意 檔名必須為 localizabl...