ios国际化配置
① 如何在ios开发中切换显示语言实现国际化
1.在Project设置,添加中英两种语言:
3.添加一个字段,
在English中,添加:SUBMIT_BTN_TITLE = Go;
在Chinese中,添加:SUBMIT_BTN_TITLE = 开始;
4.一个工具类GDLocalizableController,用来切换本地语言:
//
// GDLocalizableController.h
// guide-book
//
// Created by why on 7/16/14.
// Copyright (c) 2014 why. All rights reserved.
//
#import
@interface GDLocalizableController : NSObject
+(NSBundle *)bundle;//获取当前资源文件
+(void)initUserLanguage;//初始化语言文件
+(NSString *)userLanguage;//获取应用当前语言
+(void)setUserlanguage:(NSString *)language;//设置当前语言
@end
//
// GDLocalizableController.m
// guide-book
//
// Created by why on 7/16/14.
// Copyright (c) 2014 why. All rights reserved.
//
#import GDLocalizableController.h
@implementation GDLocalizableController
static NSBundle *bundle = nil;
+ ( NSBundle * )bundle{
return bundle;
}
+(void)initUserLanguage{
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
NSString *string = [def valueForKey:@userLanguage];
if(string.length == 0){
//获取系统当前语言版本
NSArray* languages = [def objectForKey:@AppleLanguages];
NSString *current = [languages objectAtIndex:0];
string = current;
[def setValue:current forKey:@userLanguage];
[def synchronize];//持久化,不加的话不会保存
}
//获取文件路径
NSString *path = [[NSBundle mainBundle] pathForResource:string ofType:@lproj];
bundle = [NSBundle bundleWithPath:path];//生成bundle
}
+(NSString *)userLanguage{
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
NSString *language = [def valueForKey:@userLanguage];
return language;
}
+(void)setUserlanguage:(NSString *)language{
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
//1.第一步改变bundle的值
NSString *path = [[NSBundle mainBundle] pathForResource:language ofType:@lproj ];
bundle = [NSBundle bundleWithPath:path];
//2.持久化
[def setValue:language forKey:@userLanguage];
[def synchronize];
}
@end
5. 自定义一个宏方便处理:
// ----- 多语言设置
#define CHINESE @zh-Hans
#define ENGLISH @en
#define GDLocalizedString(key) [[GDLocalizableController bundle] localizedStringForKey:(key) value:@ table:nil]
6.使用:
[GDLocalizableController setUserlanguage:CHINESE];
NSLog(GDLocalizedString(@SUBMIT_BTN_TITLE));
[GDLocalizableController setUserlanguage:ENGLISH];
NSLog(GDLocalizedString(@SUBMIT_BTN_TITLE));
② ios 国际化文本怎样把文本里面的文字全部导出
1、点击软件上方的“插入”选项卡。 2、下方的“插图”工具栏组,选择工具栏组中的“形状”按钮。 3、在弹出的下拉列表中找到“基本形状”栏,找到“文本框”工具,如果要插入“竖向的文本框”,找到边上的”垂直文本框”用鼠标左键单击该工具即可。 4、回到word编辑区,光标变成十字形,在空白处单击,按钮鼠标左键不放,拖动,释放鼠标,可以绘制出一个“文本框”。 5、通过调节形状周边的控制点,可以改变形状的大小。此时系统自动切换到形状格式选项卡,可以设置形状的线条颜色,粗细,样式,填充颜色等进行设置。 6、单击文本框,就会出现光标在里面,就可以编辑输入文字了。
③ iOS项目中的SDK怎么国际化
设置方法: 点击xcode工程左侧项目名称->点击右侧TARGETS下项目名称->右侧点击Building Settings,搜索内栏中输入:容 Base SDK 或iOS Deployment Target,设置即可
④ 如何在iOS开发中切换显示语言实现国际化
国际化就是将标签、提示信息等信息放到资源文件中,随着程序需要的语言提供对应的资源文件。以key/value对存储,每个资源的key值不变,value随着需求改变。
添加多语言:
新建工程(国际化)——> 国际化——>project——>info——>Localizations——> "+"Chinese(Simplified)——> finish
创建InfoPlist.strings:修改工程名语言cmd+N(新建)——>Resource——> Strings File ——>Next——>命名为InfoPlist.strings ——> creates ——>Finish
添加属性:
点击InfoPlist.strings——>右侧Locatize ——> Locatize——>取消Base,勾选English, Chinses(Simplified)
点击左侧InfoPlist.strings下三角添加属性:
InfoPlist.string(English)里面输入:CFBundleDisplayName = "Localizable";
InfoPlist.string(Chinese(Simplified))里面输入:CFBundleDisplayName ="国际化";
此时:工程的名字改为国际化(中文下),对应的英文下变为:Localizable
同理创建Localizable.strings(步骤同3):修改标签显示语言,在Localizable.strings(Simplified)下写:"labelText" = "简体中文";在Localizable.strings(English)下写:"labelText"="Now is English";在VC中创建一个labelText(label的对象)