Многоязычная поддержка Zendesk iOS SDK

Кто-нибудь знаком с Zendesk iOS SDK? Я пытаюсь интегрировать этот SDK в свое приложение для iOS, и интеграция действительно не удалась, единственная проблема, с которой я столкнулся в настоящее время, — это поддержка нескольких языков. В моем приложении есть представление, когда вы можете изменить язык на лету, используя этот код:

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

Он успешно меняет язык в приложении, но не меняется для Zendesk View. Как также изменить язык для Zendesk Chat View?

Спасибо!


person Tadas Stra    schedule 31.05.2017    source источник


Ответы (2)


Ответом будет переопределение пакета 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];
person Tadas Stra    schedule 01.06.2017

Вам нужно изменить строку Localizable в ZenDesk Api Files, а не в вашем пользовательском файле. Но это интернационализация. Изменение языка в соответствии с вашим языком телефона.

Перейдите к своим проектам, поддерживающим файлы. Есть ZDCChatStrings.bundle и ZDCChat.bundle. Откройте ZDCChatStrings.bundle. Здесь вы видите Localizable.strings для всех языков.

Просмотреть экраны

Щелкните правой кнопкой мыши файлы строк, которые вы хотите, и выберите «Открыть как список свойств Ascii». Измените строки соответственно.

введите здесь описание изображения

person Harshal Shah    schedule 01.06.2017
comment
Спасибо за ответ, да я знаю как это изменить, проблема у меня как поменять язык на лету. Таким образом, я могу получить этот пакет ZDCChatStrings и установить его на другой язык, не привязываясь к глобальному выбору языка iPhone. - person Tadas Stra; 01.06.2017
comment
Я не могу открыть файлы как список свойств ASCII, знаете почему? - person Gabo Ruiz; 09.03.2020
comment
@GaboRuiz Я тоже не могу. Есть еще удача? - person Somal; 30.07.2020