83 lines
2.5 KiB
Objective-C
83 lines
2.5 KiB
Objective-C
//
|
|
// NSBundle+Localizable.m
|
|
// YuMi
|
|
//
|
|
// Created by YuMi on 2023/6/19.
|
|
//
|
|
|
|
#import "NSBundle+Localizable.h"
|
|
#import <objc/runtime.h>
|
|
@implementation NSBundle (Localizable)
|
|
|
|
+(void)load{
|
|
Method oldMethod = class_getClassMethod(self, @selector(mj_localizedStringForKey:));
|
|
Method newMethod = class_getClassMethod(self, @selector(ms_localizedStringForKey:));
|
|
method_exchangeImplementations(oldMethod, newMethod);
|
|
}
|
|
+ (NSString *)ms_localizedStringForKey:(NSString *)key{
|
|
return YMLocalizedString(key);
|
|
}
|
|
+(NSString *)ymLocalizedStringForKey:(NSString *)key
|
|
{
|
|
return [self ymLocalizedStringForKey:key value:nil];
|
|
}
|
|
|
|
+(NSString *)ymLocalizedStringForKey:(NSString *)key value:(NSString *)value
|
|
{
|
|
|
|
|
|
NSString *language = [NSBundle getLanguageText];
|
|
NSBundle * bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:language ofType:@"lproj"]];
|
|
value = [bundle localizedStringForKey:key value:value table:nil];
|
|
|
|
return value;
|
|
}
|
|
+(NSString *)getLanguageText{
|
|
NSString *saveLanguage = [[NSUserDefaults standardUserDefaults]valueForKey:@"kSaveCurLanguage"];
|
|
if (saveLanguage){
|
|
return saveLanguage;
|
|
}
|
|
NSString *language = [NSLocale preferredLanguages].firstObject;
|
|
if ([language hasPrefix:@"zh"]) {
|
|
if ([language rangeOfString:@"Hans"].location != NSNotFound) {
|
|
language = @"zh-Hans"; // 简体中文
|
|
} else {
|
|
language = @"zh-Hant"; // 繁體中文
|
|
}
|
|
}else if([language hasPrefix:@"ar"]){///阿拉伯语
|
|
language = @"ar";
|
|
}else{///英文
|
|
language = @"en";
|
|
}
|
|
|
|
return language;
|
|
}
|
|
+(NSString *)uploadLanguageText{
|
|
NSString *saveLanguage = [[NSUserDefaults standardUserDefaults]valueForKey:@"kSaveCurLanguage"];
|
|
if (saveLanguage){
|
|
if ([saveLanguage hasPrefix:@"zh"]) {
|
|
return @"zh";
|
|
}else if([saveLanguage hasPrefix:@"ar"]){///阿拉伯语
|
|
saveLanguage = @"ar";
|
|
}else{///英文
|
|
saveLanguage = @"en";
|
|
}
|
|
return saveLanguage;
|
|
}
|
|
NSString *language = [NSLocale preferredLanguages].firstObject;
|
|
if ([language hasPrefix:@"zh"]) {
|
|
return @"zh";
|
|
}else if([language hasPrefix:@"ar"]){///阿拉伯语
|
|
language = @"ar";
|
|
}else{///英文
|
|
language = @"en";
|
|
}
|
|
|
|
return language;
|
|
}
|
|
+(void)setLanguageText:(NSString *)language{
|
|
[[NSUserDefaults standardUserDefaults]setValue:language forKey:@"kSaveCurLanguage"];
|
|
[[NSUserDefaults standardUserDefaults]synchronize];
|
|
}
|
|
@end
|