私はサンプルプロジェクトを作成しました。私はあなたの質問に答えを出しました。私は完全に解決策を得ました。私の下のサンプルで
私はこのために、「タイにようこそ」を「ยินดีต้อนรับสู่ประเทศไทย」.I利用ローカリゼーション概念を変更したいです。ステップに行く前に
、私はあなたが私のストーリーボードが
を設計見たいと思って、以下の手順に従ってください。
はSTEP 1:プロジェクト - > info-> Localization-> +
をクリックして今では言語のドロップダウンリストを表示]をクリックします。私たちが選択するか、ドロップダウンリストから言語を選択したら、それは窓の下に表示され、私たちは、[完了]ボタンを
をクリックする必要があります。それから、我々はタイ
STEP 2を選択する必要があります
今では
以下のようになります。 ステップ3:ローカリゼーション用の文字列ファイルを作成し、名前を設定します。また、ローカライズInspector.ClickファイルをクリックしLocalizationThai.stringsをクリックしてください:STEP 4
LocalizationThai
として、私は文字列のファイル名を設定の上
ファイルインスペクタの内側に表示されます。次に、以下のポップアップボックスが表示されます。
STEP 5:3つのチェックボックスをクリックして
:あなたがローカライズLocalize.Onceをクリックして、それがこの
STEP 6のように下に示します
は今の束に、私たちはLocalizationThai.strings
STEP 7の下の3つのファイルがあります:文字列ファイルにあなたの必要な変更のテキストを書きます。
私はテキストの下に書く i.In LocalizationThai.strings(タイ)ファイル
私はテキスト下に書く
ii.In LocalizationThai.strings(英語)ファイル
iii.In LocalizationThai。文字列は、(ベース)ファイルには、私は
テキスト STEP 8の下に書く:複数言語のヘッダーファイルを作成します。
ステップ9:(IはLocalizationHeaderとしてヘッダ名を設定)ヘッダー名を設定し、以下
ようなヘッダファイルで言語を定義LocalizationHeader.h
#ifndef LocalizationHeader_h
#define LocalizationHeader_h
#define ENGLISH 0
#define THAI 1
#endif /* LocalizationHeader_h */
ステップ10:符号化部以下
Localization.h
#import <Foundation/Foundation.h>
#import "LocalizationHeader.h"
@interface Localization : NSObject
+(Localization *)sharedInstance;
+(NSString*) strSelectLanguage:(int)curLang;
+(NSString*) languageSelectedStringForKey:(NSString*) key;
@end
Localization.m
#import "Localization.h"
int currentLanguage,selectedrow;
@implementation Localization
+(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==THAI){
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"th", 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"
if([strSelectedLanguage hasPrefix:@"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=THAI;
selectedrow=THAI;
path = [[NSBundle mainBundle] pathForResource:@"th" ofType:@"lproj"];
}
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
NSString* str=[languageBundle localizedStringForKey:key value:@"" table:@"LocalizationThai"];
return str;
}
@end
ViewController.h
#import <UIKit/UIKit.h>
#import "Localization.h"
@interface ViewController : UIViewController{
Localization *localization;
}
@property (strong, nonatomic) IBOutlet UILabel *lblWelcome;
- (IBAction)actionChangeLanToThai:(id)sender;
- (IBAction)actionChangeLangToEng:(id)sender;
@end
を実装ViewController.m
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
@synthesize lblWelcome;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
localization = [Localization sharedInstance];
lblWelcome.text = [Localization languageSelectedStringForKey:@"Welcome to Thailand"];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)actionChangeLanToThai:(id)sender {
[Localization strSelectLanguage:THAI];
lblWelcome.text = [Localization languageSelectedStringForKey:@"Welcome to Thailand"];
}
- (IBAction)actionChangeLangToEng:(id)sender {
[Localization strSelectLanguage:ENGLISH];
lblWelcome.text = [Localization languageSelectedStringForKey:@"Welcome to Thailand"];
}
@end
私は英語
に変更したときに、私は再びタイ
に
を英語から言語を変更すると、私はその後、最初の
アプリを実行します
あなたはXIB
以下 のために同じ手順を実行する必要があり、私はXIB.ViewController名でのViewControllerが
今設計部分
を参照RootViewController で作成 XIBのためであります
AppDelegate.h
#import <UIKit/UIKit.h>
#import "RootViewController.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong,nonatomic) RootViewController *viewController;
@end
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController = navController;
[navController setNavigationBarHidden:YES];
[self.window makeKeyAndVisible];
return YES;
}
RootViewController。時間
#import <UIKit/UIKit.h>
#import "Localization.h"
@interface RootViewController : UIViewController{
Localization *localization;
}
@property (strong, nonatomic) IBOutlet UILabel *lblWelcomeThaiLang;
- (IBAction)actionChangeLangToThai:(id)sender;
- (IBAction)actionChangeLangToEng:(id)sender;
@end
RootViewController.m
#import "RootViewController.h"
@interface RootViewController()
@end
@implementation RootViewController
@synthesize lblWelcomeThaiLang;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)actionChangeLangToThai:(id)sender {
[Localization strSelectLanguage:THAI];
lblWelcomeThaiLang.text = [Localization languageSelectedStringForKey:@"Welcome to Thailand"];
}
- (IBAction)actionChangeLangToEng:(id)sender {
[Localization strSelectLanguage:ENGLISH];
lblWelcomeThaiLang.text = [Localization languageSelectedStringForKey:@"Welcome to Thailand"];
}
@end
は今、あなたはアプリの流れを説明することができ
結果を参照してください?誰が言語を切り替えるかを選択します。 –
このコードをapp-delegateに入れた場合、アプリを再起動すると1回だけ実行されます。 – holex