序言:IOS中,如果系统的语言或者地区变化了,我们怎样让App中显示的语言, 日期,数字,货币单位的格式随着变化呢?下面将介绍IOS中简单的国际化的方法:
然后点开StoryBoard,你会发现里面的控件都非常简单。为了国际话,我们需要往项目中再添加一门语言。添加语言的方式是,Project--->Info--->Localizations点击"+"来添加相应语言,这里我们选择Chinese(simplified)简体中文。然后将弹出的对话框中的LaunchScreen.strings和main.storyBoard都勾选了。这样我们的基本工作就完成了,下面正式开始
1 "I write %@ lines every day." = "I write %@ lines every day."; 2 "Do you like coding ?" = "Do you like coding ?";
在Localizable.strings(Chinese simplified)中添加
"I write %@ lines every day." = "我每天写%@行代码。"; "Do you like coding ?" = "你喜欢编程吗?";
1 _viewControllerNumLabel.text = @"I write 1000000000 lines every day."; 2 [_viewControllerLikeButotn setTitle:@"Do you like coding ?" forState:UIControlStateNormal];
替换为:
1 _viewControllerNumLabel.text = [NSString stringWithFormat:NSLocalizedString(@"I write %@ lines every day.", nil),@1000000000]; 2 [_viewControllerLikeButotn setTitle:NSLocalizedString(@"Do you like coding ?", nil) forState:UIControlStateNormal];
这时候将系统的语言设置成简体中文,General -> International -> Language -> Chinese,然后再重新运行App,你会发现变其中的一个Label和一个Button上的文字改变了。
1 "imageName" = "english";
我们在Chinese中加入:
1 "imageName" = "chinese";
其中english和chinese都是图片的文字,然后在ViewControlelr中添加如下代码
1 _viewControllerImageView.image = [UIImage imageNamed:NSLocalizedString(@"imageName",nil)];
这时,修改相应的语言就将会出现不同的图片。
1 /* Class = "UILabel"; text = "Hello I am a Lable"; ObjectID = "zki-n6-dit"; */ 2 "zki-n6-dit.text" = "Hello I am a Lable";
修改为:
/* Class = "UILabel"; text = "Hello I am a Lable"; ObjectID = "zki-n6-dit"; */ "zki-n6-dit.text" = "您好,我是一个Label";
再次运行代码,你会发现这个时候没有用代码修改的Lable显示的内容也变了。
1 NSNumberFormatter *numberFormatter = [NSNumberFormatter new]; 2 numberFormatter.numberStyle =NSNumberFormatterDecimalStyle; 3 NSString *numberString = [numberFormatter stringFromNumber:@1000000000]; 4 5 _viewControllerNumLabel.text = [NSString stringWithFormat:NSLocalizedString(@"I write %@ lines every day.", nil),numberString];
这里利用NSNumberFormatter来进行对数字格式的转化,这里需要注意,再运行App的时候需要将相应的地区也设置成相应的 General -> International -> Region Format -> China
原文:http://www.cnblogs.com/Mike-Fighting/p/5249190.html