iOS,本地化字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS,本地化字符相关的知识,希望对你有一定的参考价值。
ios字符本地化(国际化)
1.本地化资源库
1.1.新建Bundle作为本地化资源库
1.2.将本地化资源库改成如下
1.3.配置各个语言的本地字符(Localizable.strings)资源
//只能在顶部注释,不要在每一列后面注释,会读取失败导致app崩溃
//英语 "Group" = "Group"; "Name" = "Name";
//简体中文 "Group" = "群组"; "Name" = "一线天";
//繁体中文 "Group" = "群組"; "Name" = "壹線天";
2.处理本地转换扩展
2.1.新建Bundle扩展类
2.2.实现NSBundle分类方法
//NSBundle+LocalizationString.h文件
// // NSBundle+LocalizationString.h // LocalizationStringTest // // Created by Vie on 2017/1/20. // Copyright © 2017年 Vie. All rights reserved. // #import <Foundation/Foundation.h> @interface NSBundle (LocalizationString) /** 根据系统语言返回本地化字符 @param key 字符key @return 本地化字符 */ +(NSString *)localizationStringForKey:(NSString *)key; @end
// NSBundle+LocalizationString.m文件
// // NSBundle+LocalizationString.m // LocalizationStringTest // // Created by Vie on 2017/1/20. // Copyright © 2017年 Vie. All rights reserved. // #import "NSBundle+LocalizationString.h" @implementation NSBundle (LocalizationString) /** 根据系统语言返回本地化字符 @param key 字符key @return 本地化字符 */ +(NSString *)localizationStringForKey:(NSString *)key{ static NSBundle const *bundle=nil; if (bundle==nil) { // (iOS获取的语言字符串比较不稳定)目前框架只处理en、zh-Hans、zh-Hant三种情况,其他按照系统默认处理 NSString *language = [NSLocale preferredLanguages].firstObject; if ([language hasPrefix:@"en"]) { language = @"en"; } else if ([language hasPrefix:@"zh"]) { if ([language rangeOfString:@"Hans"].location != NSNotFound) { language = @"zh-Hans"; // 简体中文 } else { // zh-Hant\\zh-HK\\zh-TW language = @"zh-Hant"; // 繁體中文 } } else { language = @"zh-Hans"; } //初始化资源 bundle=[NSBundle bundleWithPath:[[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"LocalizationString" ofType:@"bundle"]] pathForResource:language ofType:@"lproj"]]; } return [bundle localizedStringForKey:key value:nil table:nil]; } @end
3.本地化字符key
3.1.本地化字符key实现
// LocalizationKey.h文件
// // LocalizationKey.h // LocalizationStringTest // 本地化字符key列表 // Created by Vie on 2017/1/20. // Copyright © 2017年 Vie. All rights reserved. // #define Group @"Group" #define Name @"Name"
4.使用
#import "NSBundle+LocalizationString.h" #import "LocalizationKey.h" NSLog(@"%@|%@",[NSBundle localizationStringForKey:Group],[NSBundle localizationStringForKey:Name]);
//运行结果
2017-02-16 11:18:48.589 LocalizationStringTest[11190:1861472] 群组|一线天
以上是关于iOS,本地化字符的主要内容,如果未能解决你的问题,请参考以下文章
java内存流:java.io.ByteArrayInputStreamjava.io.ByteArrayOutputStreamjava.io.CharArrayReaderjava.io(代码片段