最近幾天公司要求對一個項(xiàng)目進(jìn)行國際化的操作,然后一想到那么多頁面,那么多文字要替換,頭都大了,如果一個一個得去替換,雖然時間上可能不會花太久,但是作為一個有理想的程序員,怎能做如此重復(fù)的單一的東西。
然后開始分析問題:怎么樣進(jìn)行語言國際化操作會更加簡單,快捷。
一般來說,文字都是在label上的,而進(jìn)行國際化操作的代碼一般是NSLocalizedString(key, comment),如果能在每個label setText的方法里面加進(jìn)去的話就可以一次性地解決所有l(wèi)abel的文字國際化了,然后我突然想到:用iOS的runtime的特性來重寫UILabel的setText:的方法,然后在替換的方法里面進(jìn)行國際化的操作就好了,一步到位。
當(dāng)然事先還是要先在app內(nèi)配置好國際化的環(huán)境
然后準(zhǔn)備好runtime替換系統(tǒng)方法
然后就可以了,當(dāng)然還有一些其他的東西的國際化,但是這已經(jīng)可以替換相當(dāng)多的情況了,其余的情況你可以自己手動替換,當(dāng)然也可以像我這樣通過runtime的特性來進(jìn)行快速替換