2009-04-29 6 views
2

Nous développons une application iphone qui sera distribuée en Espagne. Il contient une barre d'onglets, mais nous ne savons pas trop comment changer More et Edit en espagnol. Je suis sûr qu'il existe une solution simple ... quelqu'un sait-il un moyen de le faire?Modification du langage des éléments de la barre d'onglets

==== ==== 1 Modifier

Voici comment nous ajoutons la barre d'onglets. Comme vous le voyez, nous créons un tabBarItem pour chaque bouton, mais le bouton More vient automatiquement lorsqu'il y en a plus de 5 (comme il se doit).

for (int i = 0; i < [buttonNames count]; i++) { 
    switch (i) { 
     case 1: 
     viewController = [[fotos alloc] init]; 
     break; 
     case 2: 
     viewController =[[videos alloc] init]; 
     break; 
     case 3: 
     viewController =[[deportes alloc] init]; 
     break; 
     default: 
     viewController = [[MyAppViewController alloc] initWithCategory:i strCategory:[tempNames objectAtIndex:i]]; 
     break; 
    } 

    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController]; 
    UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithTitle:[buttonNames objectAtIndex:i] image:[UIImage imageNamed:[imgNames objectAtIndex:i]] tag:i]; 
    nav.tabBarItem = tabBarItem; 
    [controllers addObject:nav]; 
    [viewController release]; 
    [nav release]; 
    [tabBarItem release]; 
} 

// Create the toolbar and add the view controllers 
tabBarController = [[UITabBarController alloc] init]; 
[tabBarController setViewControllers:controllers animated:YES]; 
tabBarController.customizableViewControllers = controllers; 
tabBarController.delegate = self; 

// Set up the window 
[window addSubview:tabBarController.view]; 
[window makeKeyAndVisible]; 

==== ==== Résolu

Tout ce que je avais besoin était un répertoire es.lproj dans mon projet. Je crée un nouveau fichier dans XCode (Fichier> Nouveau Fichier ...> Mac OS X/Autre> Fichier de Chaînes), je le nomme Localizable.strings et le sauvegarde dans es.lproj. Toutes les chaînes qui doivent être localisées doivent être définies dans ce fichier, mais toutes les autres chaînes générées par le système d'exploitation (les boutons More, Edit et Done dans le tabBar, les commandes vidéo, etc.) seront automatiquement traduites.

Répondre

3

Si vous utilisez les types définis intégrés, ils devraient fonctionner automatiquement. S'il s'agit de votre propre texte, vous devrez utiliser NSLocalizedString à partir du code, exécuter des chaînes de connexion à partir de Terminal, puis fournir un lproj espagnol dans votre bundle.

+0

Salut, merci pour votre réponse. C'est ce que je pensais, mais pour une raison quelconque, toutes ces étiquettes sont en anglais, même si mon iPhone est configuré en espagnol. Comment puis-je savoir si nous utilisons un «type défini intégré»? Voir ma modification, cela pourrait aider! merci! – Antonio

+0

Vous n'utilisez pas les types prédéfinis du constructeur d'interface car vous remplacez les valeurs par votre tableau 'buttonnames'. Regardez ça: http://www.stone.com/The_Cocoa_Files/Internationalize_Your_App.html C'est un peu dépassé mais ça s'applique toujours. – slf

+0

hmm, en fait, je n'utilise pas IB du tout ... toutes les sections sont créées par programmation, mais le bouton More ne change pas en espagnol équivalent, même si j'obtiens Current Locale: es_ES. J'ai remarqué que lorsque je charge une vidéo avec \t MPMoviePlayerController * theMovie = [[MPMoviePlayerController alloc] initWithContentURL: [NSURL URLWithString: urlAddress]]; tous les contrôles sont en anglais ... Des idées? merci – Antonio

0

Ajoutez une chaîne localisée à votre projet et un texte donné dans NSLOCalizedString();

également modifier le texte localisé.

Questions connexes