Files
peko-ios/YuMi/Tools/Bundle/NSBundle+Localizable.m
2024-04-12 15:55:09 +08:00

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