有没有人熟悉Zendesk iOS SDK?我正在尝试将此SDK集成到我的iOS应用程序中并且集成完成了问题,我目前唯一的问题是多语言支持。当您可以使用以下代码动态更改语言时,我的应用程序有了一个视图:
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:lang forKey:@"lang"];
[defaults synchronize];
它成功更改了应用程序中的lang,但Zendesk View没有更改。如何更改Zendesk Chat View的语言?
谢谢!
答案 0 :(得分:3)
答案是用自定义类覆盖ZDCChatStrings包,并且每当它调用localizedStringForKey方法时,都会从内部翻译列表返回翻译。代码:
#import "NSBundle+Language.h"
#import <UIKit/UIKit.h>
#import <objc/runtime.h>
@interface CustomBundle : NSBundle
@end
@implementation CustomBundle
- (NSString *)localizedStringForKey:(NSString *)key value:(NSString *)value
table:(NSString *)tableName
{
return NSLocalizedStringFromTable(key, g_appDelegate.lang, key);
}
@end
@implementation NSBundle (Language)
+ (void)registerBundle
{
static dispatch_once_t tempToken;
dispatch_once(&tempToken, ^{
NSBundle *bundle = [NSBundle bundleWithPath: [[NSBundle mainBundle] pathForResource: @"ZDCChatStrings" ofType: @"bundle"]];
object_setClass(bundle, [CustomBundle class]);
});
}
@end
在AppDelegate中的某处初始化:
[NSBundle registerBundle];
答案 1 :(得分:-1)