2017-05-31 115 views
1

有沒有人熟悉Zendesk iOS SDK?我正在嘗試將這個SDK集成到我的iOS應用程序中,並且集成完成了真正的問題,目前唯一的問題是多語言支持。我的應用程序有一個觀點時,你可以改變使用此代碼動態語言:Zendesk iOS SDK多語言支持

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

它改變了郎應用成功,但不改的Zendesk查看。如何更改Zendesk聊天視圖的語言?

謝謝!

回答

-1

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

轉到您的項目支持文件。有ZDCChatStrings.bundle和ZDCChat.bundle在那裏。打開ZDCChatStrings.bundle。在這裏你可以看到所有語言的Localizable.strings。

See Screens

右鍵單擊您要開放爲ASCII屬性列表字符串的文件。相應更改字符串。

enter image description here

+0

謝謝您的回覆,是的,我知道如何改變這種狀況,我如何改變在運行過程中的語言問題。因此,我可以到達該ZDCChatStrings捆綁軟件並將其設置爲其他語言,而不受iPhone全球語言選擇限制。 –

1

答案將覆蓋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];