Zendesk iOS SDK多语言支持

时间:2017-05-31 15:56:08

标签: ios objective-c zendesk

有没有人熟悉Zendesk iOS SDK?我正在尝试将此SDK集成到我的iOS应用程序中并且集成完成了问题,我目前唯一的问题是多语言支持。当您可以使用以下代码动态更改语言时,我的应用程序有了一个视图:

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:lang forKey:@"lang"]; 
[defaults synchronize];

它成功更改了应用程序中的lang,但Zendesk View没有更改。如何更改Zendesk Chat View的语言?

谢谢!

2 个答案:

答案 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)

您需要更改ZenDesk Api Files中的Localizable字符串,而不是您的自定义文件。但这是国际化。根据您的手机语言更改语言。

转到支持文件的项目。有ZDCChatStrings.bundle和ZDCChat.bundle。打开ZDCChatStrings.bundle。在这里,您可以看到适用于所有语言的Localizable.strings。

See Screens

右键单击所需的字符串文件并打开为Ascii Property List。相应地更改字符串。

enter image description here