2010-08-21 15 views
0

Existe-t-il un moyen de définir un chemin personnalisé d'où sont extraites les chaînes de NSLocalizedString? Je suis conscient que vous pouvez définir le nom du fichier à lire, mais j'essaie de créer un système modifiable par l'utilisateur qui sera stocké dans le dossier Support de l'application. S'il n'y a aucun moyen de changer le chemin à partir duquel il lit, alors existe-t-il une classe de bas niveau construite en cacao pour lire les fichiers de chaînes localisées?NSLocalizedString Path

+0

Indice: Vous obtiendrez peut-être plus de réponses si vous spécifiez (peut-être via des balises) ce dont il s'agit. Quel langage de programmation/environnement? Quelle bibliothèque/bibliothèques? – Timwi

Répondre

0

Une chose que vous pouvez faire est Redéfinir NSLocalizedString dans votre tête pré-compilé (.pch) fichier pour pointer vers une classe de votre propre comme MyLocalizationHandler, comme tel:

#undef NSLocalizedString 
#define NSLocalizedString(key,comment) [[MyLocalizationHandler sharedLocalizationHandler] localizedString:key] 

puis dans MyLocalizationHandler .m faire quelque chose comme:

- (NSString *)localizedString:(NSString *)key { 
    // lookup the key however we want... 
    NSString *value = [self lookupLocalizedKey:key]; 
    if (value) 
     return value; 
    // and maybe fall-back to the default localized string loading 
    return [[NSBundle mainBundle] localizedStringForKey:key value:key table:nil]; 
}