如果項(xiàng)目中需要根據(jù)不同的地區(qū)顯示不同的語(yǔ)言胳徽,那么就需要app能夠支持多種語(yǔ)系习劫,也叫國(guó)際化處理。
首先在項(xiàng)目的Supporting Files 中 右鍵 new file
當(dāng)?shù)氐恼Z(yǔ)言是默認(rèn)支持的乏盐,額外需要支持的語(yǔ)言可以自己配置什乙,但是一般都是需要支持英語(yǔ)
如果除了英語(yǔ)之外還需要支持其他的語(yǔ)言,那么就需要到info當(dāng)中做配置了
之后就是選擇需要支持多語(yǔ)系的文件了
成功之后項(xiàng)目的Supporting File 多一個(gè)這樣的文件
重復(fù)上面的步驟創(chuàng)建一個(gè)中文的文件
"test" = "測(cè)試" ;
"test" = "test" ;
左邊是key 右邊是對(duì)應(yīng)語(yǔ)言的文字.
當(dāng)項(xiàng)目非常龐大的時(shí)候一般會(huì)遇到下面兩個(gè)問(wèn)題
一個(gè)是key值可能會(huì)重復(fù)
一個(gè)是多個(gè)控件可能具有相同的名稱(chēng)
解決這個(gè)問(wèn)題目前看到有兩套做法:
第一種是 key的命名方式可以采用 控制器名+控件名+意義 這樣的方式
這樣的話看到即使是在 sring文件中閱讀代碼燎悍,也能夠知道這個(gè)key在哪里使用到敬惦。
如果多個(gè)控件公用一個(gè)的話,那么可以在key的命名后面+reuse來(lái)表示這個(gè)key是被重用的谈山。(如果以后其中某個(gè)控件修改了名字仁热,不要忘記新建一對(duì)key value),這套做法的問(wèn)題在于,如果多個(gè)控制器都使用了相同名稱(chēng)的控件抗蠢,如果要修改举哟,那么就要逐個(gè)的分別修改這些,無(wú)法一次性修改迅矛。而且如果多個(gè)界面元素的名稱(chēng)很多重復(fù)妨猩,每一個(gè)都要寫(xiě)一個(gè)key,會(huì)造成很多次的重復(fù)秽褒。
第二種是key值使用中文命名(或者自己的母語(yǔ)),這樣在賦值使用NSLocalizedString時(shí)就能夠知曉空間的名稱(chēng)壶硅。如果有復(fù)用的情況存在也很方便直觀的知道,而不是由于上面那套復(fù)雜做法造成復(fù)用性差的問(wèn)題销斟。但是也帶來(lái)一個(gè)問(wèn)題庐椒,如果希望只修改其中一部分控件的名字,就需要新建key值了蚂踊。上面那一套就只需要更新對(duì)應(yīng)界面的value值就可以了约谈。
但是綜合改動(dòng)量來(lái)看,第二套做法更好犁钟。
參考資料
http://blog.csdn.net/lwjok2007/article/details/46547085