我careated樣本之一,目的CI嘗試:
在我的代碼
得到它了。
我設置 「標題」= 「خطأ」 一詞在阿拉伯語本地化文件
「稱號」= 「عنوان」;
現在我必須將英文換成阿拉伯文。
首先,我設置故事板
設計然後點擊Project.Choose本地化信息
如果您單擊+(以下本地化),它顯示彈出up view
現在選擇阿拉伯語。當點擊阿拉伯語時,它會顯示窗口。您應該點擊完成。
我們需要創建本地化now.I設置字符串的文件名字符串文件LocalizationArabic
一旦你創建的字符串文件,它看起來像下面。
然後按LocalizationArabic字符串時file.Now點擊Localization.It單擊文件檢查器顯示空的複選框阿拉伯語和英語像下面。
在這裏,我們必須選中該複選框。此外,當我們選中複選框LocalizationArabic文件夾中有三個文件創建像下面
然後我進,我想從英語翻譯成阿拉伯語字符串文件的語言。
最後,我創建的頭文件的本地化語言
頭文件名是LanguageHeader.It看起來像下面。
現在的代碼部分從這裏開始
本地化類NSObject類的第一
Localization.h
#import <Foundation/Foundation.h>
#import "LanguageHeader.h"
@interface Localization : NSObject
+(Localization *)sharedInstance;
+(NSString*) strSelectLanguage:(int)curLang;
+(NSString*) languageSelectedStringForKey:(NSString*) key;
@end
Localization.m
#進口「 Localization.h「 int currentLanguage,selectedrow; @implementation本地化
+(Localization *)sharedInstance
{
static Localization *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[Localization alloc] init];
});
return sharedInstance;
}
+(NSString*) strSelectLanguage:(int)curLang{
if(curLang==ARABIC){
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"ar", nil]forKey:@"AppleLanguages"];
}
else{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil]forKey:@"AppleLanguages"];
}
[[NSUserDefaults standardUserDefaults] synchronize];
currentLanguage=curLang;
NSString *strLangSelect = [[[NSUserDefaults standardUserDefaults]objectForKey:@"AppleLanguages"] objectAtIndex:0];
return strLangSelect;
}
+(NSString*) languageSelectedStringForKey:(NSString*) key
{
NSString *path;
NSString *strSelectedLanguage = [[[NSUserDefaults standardUserDefaults]objectForKey:@"AppleLanguages"] objectAtIndex:0];
//When we check with iPhone,iPad device it shows "en-US".So we need to change it to "en"
strSelectedLanguage = [strSelectedLanguage stringByReplacingOccurrencesOfString:@"en-US" withString:@"en"];
if([strSelectedLanguage isEqualToString:[NSString stringWithFormat: @"en"]]){
currentLanguage=ENGLISH;
selectedrow=ENGLISH;
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
}
else{
currentLanguage=ARABIC;
selectedrow=ARABIC;
path = [[NSBundle mainBundle] pathForResource:@"ar" ofType:@"lproj"];
}
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
NSString* str=[languageBundle localizedStringForKey:key value:@"" table:@"LocalizationArabic"];
return str;
}
@end
然後ViewController.h
#import <UIKit/UIKit.h>
#import "Localization.h"
@interface ViewController : UIViewController{
Localization *localization;
}
@property (strong, nonatomic) IBOutlet UILabel *lblTitle;
- (IBAction)actionChangeLanguageToArabic:(id)sender;
@end
ViewController.m
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
@synthesize lblTitle;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
localization = [Localization sharedInstance];
lblTitle.text = [Localization languageSelectedStringForKey:@"title"];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)actionChangeLanguageToArabic:(id)sender {
[Localization strSelectLanguage:ARABIC];
lblTitle.text = [Localization languageSelectedStringForKey:@"title"];
}
@end
上面的代碼工作完美。
輸出屏幕截圖低於
當運行應用程序第一
點擊按鈕
後你喜歡objctive C或迅速? – user3182143