Files
peko-ios/YuMi/Tools/Bundle/YMLanguageConfig.m

62 lines
2.1 KiB
Objective-C

//
// YMLanguageConfig.m
// YuMi
//
// Created by Linus on 2024/12/19.
//
#import "YMLanguageConfig.h"
@implementation YMLanguageConfig
+ (NSArray<NSDictionary *> *)supportedLanguages {
static NSArray<NSDictionary *> *languages = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
languages = @[
@{@"code": @"en", @"localizationCode": @"en", @"displayName": @"English", @"isRTL": @NO},
@{@"code": @"zh-Hant", @"localizationCode": @"zh-Hant", @"displayName": @"繁體中文", @"isRTL": @NO},
@{@"code": @"ar", @"localizationCode": @"ar", @"displayName": @"العربية", @"isRTL": @YES},
@{@"code": @"tr", @"localizationCode": @"tr", @"displayName": @"Türkçe", @"isRTL": @NO},
@{@"code": @"pt-BR", @"localizationCode": @"pt-BR", @"displayName": @"Português (Brasil)", @"isRTL": @NO},
@{@"code": @"es", @"localizationCode": @"es", @"displayName": @"Español", @"isRTL": @NO},
@{@"code": @"ru", @"localizationCode": @"ru", @"displayName": @"Русский", @"isRTL": @NO},
@{@"code": @"uz-UZ", @"localizationCode": @"uz-UZ", @"displayName": @"O'zbek", @"isRTL": @NO}
];
});
return languages;
}
+ (NSString *)displayNameForLanguageCode:(NSString *)languageCode {
for (NSDictionary *language in [self supportedLanguages]) {
if ([language[@"code"] isEqualToString:languageCode]) {
return language[@"displayName"];
}
}
return @"English"; // 默认返回英文
}
+ (NSString *)localizationCodeForLanguageCode:(NSString *)languageCode {
for (NSDictionary *language in [self supportedLanguages]) {
if ([language[@"code"] isEqualToString:languageCode]) {
return language[@"localizationCode"];
}
}
return @"en"; // 默认返回英文
}
+ (BOOL)isRTLanguage:(NSString *)languageCode {
for (NSDictionary *language in [self supportedLanguages]) {
if ([language[@"code"] isEqualToString:languageCode]) {
return [language[@"isRTL"] boolValue];
}
}
return NO;
}
+ (NSString *)defaultLanguage {
return @"en";
}
@end