2017-05-31 1 views
1

Y at-il quelqu'un qui est familier avec le SDK Zendesk iOS? J'essaie d'intégrer ce SDK à mon application iOS et l'intégration s'est vraiment faite problème, le seul problème que j'ai actuellement est le support multi-langue. Mon application a une vue quand vous pouvez changer la langue à la volée en utilisant ce code:Prise en charge multilingue du SDK Zendesk iOS

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

Il change la lang en application avec succès, mais il ne change pas pour Zendesk View. Comment changer la langue de Zendesk Chat View?

Merci!

Répondre

-1

Vous devez modifier la chaîne Localizable dans les fichiers Api de ZenDesk et non votre fichier personnalisé. Mais c'est l'internationalisation. Changement de langue en fonction de la langue de votre téléphone.

Goto vos fichiers de support de projets. Il y a ZDCChatStrings.bundle et ZDCChat.bundle sont là. Ouvrez ZDCChatStrings.bundle. En cela, vous voyez Localizable.strings pour toutes les langues.

See Screens

Faites un clic droit sur les fichiers de chaînes que vous voulez et Open qu'ASCII Liste des propriétés. Changez les cordes en conséquence.

enter image description here

+0

Merci pour votre réponse, oui je sais comment changer cela, le problème que j'ai comment changer la langue à la volée. Donc, je peux atteindre ce bundle ZDCChatStrings et le définir dans une autre langue sans être lié à la sélection de la langue globale de l'iPhone. –

1

La réponse serait de passer outre bundle ZDCChatStrings avec votre classe personnalisée, et chaque fois qu'il appellera pour la méthode de traduction localizedStringForKey de retour de votre liste de traductions internes. Code:

#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 

Initialiser quelque part dans votre AppDelegate:

[NSBundle registerBundle];