7
votes

Comment utiliser NslocalizedSling dans IB [iPhone SDK]?

Lorsque j'identifie du texte par programme, je peux utiliser NslocalizedSling (....), mais si j'écris le texte directement dans IB (disons à un Uilabel) Comment le localez-moi?


0 commentaires

5 Réponses :


3
votes

Vous pouvez créer plusieurs versions d'un fichier .nib pour chaque localisation. Il existe également des outils pour vous permettre d'éditer les cordes d'eux facilement. Apple a Une très bonne documentation à ce sujet.


0 commentaires

6
votes

C'est un sujet important et complexe. Un bon point de départ est Introduction aux sujets de programmation d'internationalisation et là est également Préparation de vos fichiers NIB pour la localisation


0 commentaires

12
votes

Une solution consiste à créer plusieurs fichiers NIB localisés. Cela fonctionne probablement mieux si vos besoins de localisation sont très simples et que vous allez simplement de remettre vos ressources aux localisateurs de logiciels experts à la fin du développement.

Si vous êtes localisée pendant votre développement et que l'interface utilisateur change rapidement , les fichiers NIB en double peuvent être une grosse douleur, car chaque Tweek UI doit être dupliqué dans chaque version locale de la NIB. Pour éviter cela, vous devrez écrire du code dans vos contrôleurs d'affichage pour gérer le réglage des chaînes localisées, typiquement dans la méthode -ViewDidDload . Assurez-vous que chaque contrôle avec texte localisé est un iboutlet et les câblé jusqu'à votre contrôleur d'affichage dans IB. Ensuite, votre contrôleur d'affichage -ViewDidLoadload ressemblera à ceci comme suit: xxx

Vous faites ce type de configuration de la vue dans -ViewDidLoad Étant donné que les objets de votre NIB ne sont pas entièrement créés jusqu'à après votre -Init méthode fonctionne. -ViewDidLoadload exécute après -Init mais avant que votre vue ne devienne visible.


0 commentaires

2
votes

Je cherchais également une solution, pas nécessairement pour iPhone, mais Xcode / IB en général. Toutes les références ne concernaient pas le fait que vous auriez peut-être besoin d'une clé en interne pour indiquer un état et souhaitez afficher une chaîne forte> for forte> à l'utilisateur dans une étiquette ou une cellule de texte correspondant à cette touche. Je n'ai pas trouvé à la première étape une approche standard sur laquelle stocker E.G. Une valeur clé pour une clé dans les défauts par défaut partagée et affiche la chaîne localisée pour cette valeur de clé dans une étiquette.

J'ai trouvé une solution qui n'a pas besoin de plusieurs codages et est conforme aux liaisons dans IB. P> Tout d'abord, vous fournissez un fichier localizable.strings par exemple avec une ligne contenant p> xxx pré>

maintenant, vous pouvez localiser la valeur clé avec: nslocalistring (Akeyvalue, nil). P>

dans l'étiquette que vous n'avez trouvé aucun Transformateur de valeur traitant de la chaîne nslocalisée. J'ai donc créé une classe KeytolocalizedStransformer pour transformer une valeur de clé en une chaîne localisée: p> xxx pré>

dernière étape de la préparation consiste à enregistrer le transformateur par exemple. Initialiser + Initialiser: p>

NSValueTransformer *transformer = [[KeyToLocalizedStringTransformer alloc] init];
[NSValueTransformer setValueTransformer:transformer forName:@"KeyToLocalizedStringTransformer"];   


0 commentaires

0
votes

de iOS 7 & XCode 5 sur, vous devez éviter d'utiliser Nslocalisdiffing dans la mesure du possible. La méthode préférée est appelée «localisation de base» et fonctionne via le scénario. Cela vous fera économiser beaucoup de travail. Si vous avez Google pour "Localisation de base", vous trouverez suffisamment de tutoriels pour vous faire aller


0 commentaires