Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios localizable.strings无法使用阿拉伯语字符串_Ios_Localization_Arabic - Fatal编程技术网

Ios localizable.strings无法使用阿拉伯语字符串

Ios localizable.strings无法使用阿拉伯语字符串,ios,localization,arabic,Ios,Localization,Arabic,我在XCode中创建了一个本地化的.strings文件,然后在其中创建了两种语言。(英语+阿拉伯语) 我用语言翻译填充了这些文件,但只显示英语翻译,当我用阿拉伯语开始时,键出现了 在我的代码中: NSLocalizedString("title", comment: "") 可本地化.字符串(英文) 可本地化.字符串(阿拉伯语) 我仔细检查了样本一,并尝试了目标C。我得到了它 我在阿拉伯语本地化文件中设置了“title”=“خ1591;أ” “头衔”=“头衔” 现在我必须把英语改成阿拉伯语 首

我在XCode中创建了一个本地化的.strings文件,然后在其中创建了两种语言。(英语+阿拉伯语)

我用语言翻译填充了这些文件,但只显示英语翻译,当我用阿拉伯语开始时,键出现了

在我的代码中:

NSLocalizedString("title", comment: "")
可本地化.字符串(英文)

可本地化.字符串(阿拉伯语)


我仔细检查了样本一,并尝试了目标C。我得到了它

我在阿拉伯语本地化文件中设置了“title”=“خ1591;أ”

“头衔”=“头衔”

现在我必须把英语改成阿拉伯语

首先,我在故事板中设置了设计

然后单击项目。在信息中选择本地化

如果单击+(本地化下方),将显示弹出视图

现在选择阿拉伯文。单击阿拉伯文将显示窗口。您应该单击完成

我们现在需要为本地化创建字符串文件。我将字符串文件名设置为LocalizationArabic

创建字符串文件后,如下所示

然后在按本地化阿拉伯语字符串文件时单击文件检查器。现在单击本地化。它显示空复选框阿拉伯语和英语,如下所示

这里我们必须勾选这个复选框。当我们勾选这个复选框时,LocalizationArabic文件夹会创建三个字符串文件,如下所示

然后我在字符串文件中输入了我想从英语翻译成阿拉伯语的语言

最后,我为本地化语言创建了头文件

头文件名为LanguageHeader。如下所示

现在代码部分从这里开始

首先是NSObject类的本地化类

本地化.h

#import <Foundation/Foundation.h>
#import "LanguageHeader.h"

@interface Localization : NSObject
+(Localization *)sharedInstance;
+(NSString*) strSelectLanguage:(int)curLang;
+(NSString*) languageSelectedStringForKey:(NSString*) key;

@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
上面的代码工作得很好

下面是输出屏幕截图

什么时候先运行应用程序

点击按钮后


您喜欢objctive c还是swift?
#import <Foundation/Foundation.h>
#import "LanguageHeader.h"

@interface Localization : NSObject
+(Localization *)sharedInstance;
+(NSString*) strSelectLanguage:(int)curLang;
+(NSString*) languageSelectedStringForKey:(NSString*) key;

@end
+(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
#import <UIKit/UIKit.h>
#import "Localization.h"

@interface ViewController : UIViewController{
    Localization *localization;
}

@property (strong, nonatomic) IBOutlet UILabel *lblTitle;

- (IBAction)actionChangeLanguageToArabic:(id)sender;

@end
#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