chore: Initial clean commit

- Removed YuMi/Library/ (138 MB, not tracked)
- Removed YuMi/Resources/ (23 MB, not tracked)
- Removed old version assets (566 files, not tracked)
- Excluded Pods/, xcuserdata/ and other build artifacts
- Clean repository optimized for company server deployment
This commit is contained in:
edwinQQQ
2025-10-09 16:19:14 +08:00
commit a35a711be6
5582 changed files with 408913 additions and 0 deletions

View File

@@ -0,0 +1,96 @@
//
// NSBundle+Localizable.m
// YuMi
//
// Created by YuMi on 2023/6/19.
//
#import "NSBundle+Localizable.h"
#import "YMLanguageConfig.h"
#import <objc/runtime.h>
// key
static NSString * const kSaveCurLanguageKey = @"kSaveCurLanguage";
static NSString * const kResourceType = @"lproj";
@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 [self ymLocalizedStringForKey:key];
}
+(NSString *)ymLocalizedStringForKey:(NSString *)key
{
return [self ymLocalizedStringForKey:key value:@""];
}
+(NSString *)ymLocalizedStringForKey:(NSString *)key value:(NSString *)value
{
NSString *language = [NSBundle getLanguageText];
NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:language
ofType:kResourceType]];
value = [bundle localizedStringForKey:key
value:value
table:nil];
return value;
}
+(NSString *)getLanguageText{
NSString *saveLanguage = [[NSUserDefaults standardUserDefaults] valueForKey:kSaveCurLanguageKey];
if (saveLanguage){
return saveLanguage;
}
NSString *preferredLanguage = [NSLocale preferredLanguages].firstObject;
return [self mapLanguageForLocalization:preferredLanguage];
}
+(NSString *)uploadLanguageText{
NSString *saveLanguage = [[NSUserDefaults standardUserDefaults]valueForKey:kSaveCurLanguageKey];
if (saveLanguage){
return [self mapLanguageForLocalization:saveLanguage];
}
NSString *preferredLanguage = [NSLocale preferredLanguages].firstObject;
return [self mapLanguageForLocalization:preferredLanguage];
}
+(void)setLanguageText:(NSString *)language{
[[NSUserDefaults standardUserDefaults]setValue:language forKey:kSaveCurLanguageKey];
[[NSUserDefaults standardUserDefaults]synchronize];
}
// - 使
+ (NSString *)mapLanguageForLocalization:(NSString *)language {
//
for (NSDictionary *langConfig in [YMLanguageConfig supportedLanguages]) {
NSString *code = langConfig[@"code"];
NSString *localizationCode = langConfig[@"localizationCode"];
if ([language isEqualToString:code] || [language isEqualToString:localizationCode]) {
return localizationCode;
}
}
//
for (NSDictionary *langConfig in [YMLanguageConfig supportedLanguages]) {
NSString *code = langConfig[@"code"];
if ([language hasPrefix:code]) {
return langConfig[@"localizationCode"];
}
}
// pt-BR pt
if ([language hasPrefix:@"pt"]) {
return @"pt-BR";
}
//
return [YMLanguageConfig defaultLanguage];
}
@end