簡體   English   中英

Zendesk iOS SDK多語言支持

[英]Zendesk iOS SDK multilanguage support

有沒有人熟悉Zendesk iOS SDK? 我正在嘗試將此SDK集成到我的iOS應用程序中,並且集成確實完成了,我目前唯一的問題是多語言支持。 當您可以使用以下代碼即時更改語言時,我的應用程序便具有視圖:

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

它會成功更改應用程序中的語言,但不會更改Zendesk View。 如何同時更改Zendesk聊天視圖的語言?

謝謝!

答案是用您的自定義類覆蓋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];

您需要更改ZenDesk Api文件中的Localizable字符串,而不是自定義文件。 但這就是國際化。 根據您的手機語言更改語言。

轉到您的項目支持文件。 這里有ZDCChatStrings.bundle和ZDCChat.bundle。 打開ZDCChatStrings.bundle。 在這里,您會看到所有語言的Localizable.strings。

查看屏幕

右鍵單擊所需的字符串文件,然后單擊“打開為Ascii屬性列表”。 相應地更改字符串。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM