最近几天公司要求对一个项目进行国际化的操作,然后一想到那么多页面,那么多文字要替换,头都大了,如果一个一个得去替换,虽然时间上可能不会花太久,但是作为一个有理想的程序员,怎能做如此重复的单一的东西。
然后开始分析问题:怎么样进行语言国际化操作会更加简单,快捷。
一般来说,文字都是在label上的,而进行国际化操作的代码一般是NSLocalizedString(key, comment),如果能在每个label setText的方法里面加进去的话就可以一次性地解决所有label的文字国际化了,然后我突然想到:用iOS的runtime的特性来重写UILabel的setText:的方法,然后在替换的方法里面进行国际化的操作就好了,一步到位。
当然事先还是要先在app内配置好国际化的环境
然后准备好runtime替换系统方法
然后就可以了,当然还有一些其他的东西的国际化,但是这已经可以替换相当多的情况了,其余的情况你可以自己手动替换,当然也可以像我这样通过runtime的特性来进行快速替换
网友评论