Traduction de langue avec locales et variantes
muqaddar
Administrateur
Salut,
J'essaie de passer mon application en Portugais-brésilien (pt-BR) et non Portugais (pt).
Mon code:
// user language
NSArray *supported_localizations = [[NSBundle mainBundle] localizations]; // get localizations in current bundle
NSString *primary_language = [[NSLocale preferredLanguages] objectAtIndex:0]; // get first prefered language in device settings
if ([supported_localizations containsObject:primary_language]) { [defaults setObject:primary_language forKey:KEY_USER_CURRENT_LANGUAGE]; }
else { [defaults setObject:@en forKey:KEY_USER_CURRENT_LANGUAGE]; }
Je passe mon iPad en pt-BR et j'ai donc:
Printing description of supported_localizations:
<__NSCFArray 0x1702469c0>(
de,
en,
es,
fr,
it,
pt-BR
)
Printing description of primary_language:
pt
Et donc, ça ne colle pas, l'iPad me renvoie pt en primary language, au lieu de pt-BR.
Quand j'ai ajouté la localisation dans Xcode, j'ai ajouté pt-BR et non pt tout court, ce qui me paraà®t logique, car j'aurais une autre variante pour le portugais un jour.
Qu'ai-je loupé ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Yop !
J'ai déjà eu ce problème pour un autre language (si toute fois, c'est le même que le mien).
Est-ce que tu peux faire un test rapide, si tu es sur GIT (ou autre) ?
1 - Enlever la langue pt-BR de ton projet.
2 - Committer.
3 - Remettre la langue pt-BR dans ton projet.
4 - Regarder via un outil (Source Tree ou autre) ce que la modification ta rajouté dans ton .xcodeproj
Si c'est le même problème que moi tu t'aperçois que Xcode te rajoute seulement le pt (pour ton cas). C'est un bug que j'avais noté sur Xcode 5, cela m'étonne donc qu'Apple ne l'ait pas corrigé pour la version suivante.
Correction :
Modifier la valeur rajoutée à la main :-)
K.
Tu manques encore d'expérience avec Apple... Je connais des bugs qui existent depuis Xcode 3, qui sont très ennuyeux mais qui n'ont toujours pas été corrigés.
^^ LOL
muqaddar tiens moi au jus lorsque tu auras fait le test, je suis le sujet ;-)
C'est pas du tout mon bug en fait.
Il m'ajoute bien un pt-BR dès le début.
C'est juste que le réglage sur le device pt-BR (langue) donne en fait du "pt" en sortie. Mais c'est sûrement le comportement normal.
Il faudrait que tu essaies avec une clef bidon pour voir s'il utilise bien la variante brésilienne.
Tu lui demandes d'afficher les preferred languages. Et dans ce terme de "preferred language" je me demande s'il ne prend pas en compte QUE le primary language, autrement dit la langue de base sans considération de variante régionale. Autrement dit, c'est peut-être juste une question de vocabulaire.
Bon j'en suis pas sûr hein ce n'est qu'une hypothèse, mais avec toutes ces façons de faire pour avoir les langues supportées / préférées / etc et les confusions qu'on peut avoir sur les locale, je me dit qu'il faut se méfier.
Je suis sûr que c'est ça.
Mais alors, comment prendre en compte la variate régionale ? Là est la question.
Moi, j'avais la même problème avec "en" (English) (voir Américain) et "en-GB" (English(United Kingdom)).
J'ai créé les deux localisations et j'ai commencé en copiant l'une vers l'autre, puis j'ai modifié l'en-GB pour corriger les fautes d'orthographe qui semblent plaire les Américains ::)
Le problème c'est pas d'avoir les 2 fichiers, mais qu'il aille chercher le bon.
Tu devrais tester !