iOS 中bundle 和國際化之間的關係

2021-06-27 02:55:37 字數 824 閱讀 8771

[[nsbundle mainbundle] pathforresource:@"

somefilename

" oftype:@"

yourfileextension

"];

[yourviewcontroller initwithnibname:"

yourviewcontroller

" bundle:nil];

可是你知道這裡的bundle到底是個啥玩意呢?!

bundle簡單地講,就是乙個內部結構按照標準規則組織的特殊目錄

現在我們已經知道了,原來我們開發的應用程式,最後都會成為乙個bundle,那麼就不難理解為什麼很多資源檔案載入大多是通過bundle來進行的了,從bundle進行檔案載入實際就是通過應用自己所在的資料夾進行載入。

不過緊接著我們又會產生好幾個疑問:

1 為什麼不直接使用檔案路徑的方式來讀取資源檔案呢?

2 為什麼還會存在pathforresource:oftype:這個方法,難道說我們在開發的時候還不能確定這些檔案在哪兒嗎?

而bundle對ios開發者來講,最大的方便就是可以非常簡單地讓自己的應用國際化,在不同的語言不同的地區,載入不同的資源檔案,顯示不同的語言文字,而實現這些只需要我們嚴格按照bundle的要求進行資源檔案的存放即可,而不需要寫大量**判斷地區語言。遵循的方法也很簡單,只需要我們建立對應的"本地化資料夾"即可,例如我們要同時讓"pic.png"在中文和英文下顯示不同的內容,只需要建立兩個本地化資料夾zh.lproj和en.lproj,分別放入同名但內容不同的"pic.png"即可。

關於如何讓自己的應用國際化的具體方法,將在之後的文章進行描述。 

IOS程式國際化

1.2 新建後,可以看到工作目錄結構檔案如下,單擊infoplist.strings,檢視右邊的屬性,在localization欄新增語言。1.3 新增完成後開啟對應語言檔案,比如english的新增 cfbundledisplayname china chinese檔案新增 cfbundledis...

IOS程式國際化

1.2 新建後,可以看到工作目錄結構檔案如下,單擊infoplist.strings,檢視右邊的屬性,在localization欄新增語言。1.3 新增完成後開啟對應語言檔案,比如english的新增 cfbundledisplayname china chinese檔案新增 cfbundledis...

iOS語言國際化

參考 語言國際化 根據系統不同的語言自動切換 xcode6.2 一.在不同語言下工程名會變成對應的語言名 步驟 新建乙個singleview工程 再新建infoplist檔案 注意檔名不能改變還有大小寫 然後新增語言 經過以上,會出現 在各自的語言資料夾中分別新增 cfbundledisplayna...