gpt4 book ai didi

iphone - iPhone应用程序语言的问题即时更改

转载 作者:行者123 更新时间:2023-12-01 16:58:49 25 4
gpt4 key购买 nike

我在我的项目中添加了这个文件,代码如下:

语言.h:

@interface Language : UIViewController

@end

@implementation Language

static NSBundle *bundle = nil;

+(void)setLanguage:(NSString *)l {
NSLog(@"preferredLang: %@", l);
NSString *path = [[ NSBundle mainBundle ] pathForResource:l ofType:@"lproj" ];
bundle = [[NSBundle bundleWithPath:path] retain];
}

+(void)initialize {
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString *current = [[languages objectAtIndex:0] retain];
[self setLanguage:current];

}

这里这个方法 +(NSString *)get:没有被叫到
+(NSString *)get:(NSString *)key alter:(NSString *)alternate {
NSLog(@"Bundle path: %@", [bundle bundlePath]);

return [bundle localizedStringForKey:key value:alternate table:nil];
}

@end

在我的 viewController.m 文件中,我有两个用于更改语言土耳其语和英语的按钮:
-(IBAction)englishLang:(id)sender{

[Language setLanguage:@"en"];
NSLog(@"language to english");

}

-(IBAction)turkishLang:(id)sender{

[Language setLanguage:@"tr"];
NSLog(@"language to turkish");
}

问题是当我点击 turkish lang 按钮时,应该更改语言并且下一个 nib 文件应该是土耳其本地化的,由应用程序拾取。但我没有从我的应用程序中得到这种行为。

它只加载英文本地化的 nib 文件。

可能是什么问题?

最佳答案

如果您想使用不基于手机语言的应用程序语言,您需要做几件事:

  • 制作您自己的 NSLocalizedString 版本,它将返回
    基于您的语言而不是手机的字符串(听起来这是主要问题,如果您通过应用程序拥有 NSLocalizedStrings,则返回的值将永远与手机的语言相同)
  • 更改语言时发布通知,以便您的 View 可以用新内容刷新
  • 关于iphone - iPhone应用程序语言的问题即时更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9080909/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com