Aller au contenu

multilangue


dargone

Recommended Posts

normallement dragon on peux faire sa,mais j'ai pas vu pour dans un menu

http://developer.android.com/guide/topics/resources/resources-i18n.html

il y a sa aussi qui peut servir

http://developer.android.com/guide/tutorials/localization/index.html

la traduction devrai venir mais faut attendre encore un peu

Modifié par feust
Lien vers le commentaire
Partager sur d’autres sites

Merci pour ces réponses

Androc:

oui je cherche un moyen simple de passe d'une langue à l'autre

feust:

par menu je voulais dire qu'on arrive dans les paramètres et on peut changer la langue passer de FR => EN.

le 2eme lien à l'air d'être intéressant

Merci

Lien vers le commentaire
Partager sur d’autres sites

Juste un petit mot pour dire mercià Feust! J'avais aussi besoin de ces renseignements.

Je plussoie la question de dargone qui demande comment switcher d'une langue à l'autre via un menu? Car je suppose que la technique utilisant les repertoires values-fr, values-nl, values-en se base sur la langue du telephone....

J'aimerais tant mettre mon appli en francais, anglais, neerlandais sur mon tel qui est en anglais et switcher facilement de l'un à l'autre!

PS: oui, je sais c'est tordu! mais je n'ai pas envie de faire une boucle if/else à chacune de mes textviews!

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres sites

je pense que le plus simple serai via un menu de choix de forcer une location pour l'activity

enfin je c pas trop sinon

à mon avis ca pue un peu pour faire ce que l'on a envie... :mad: :mad: :mad:

the SDK does not expose methods to let you specify which alternate resource set to load. Android detects the proper set for the hardware and location, and loads them as appropriate. Users can select alternate language settings using the settings panel on the device.

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres sites

nan mais c'est super simple.

dans ton repertoire values tu a un fichier string.xml

tu crée un values-nl pour le néerlandais et hop tu y mets le string.xml dans lequel tu traduit les chaines.

idem pour values-en, values-fr, values-it....

bon du coup tu switch pas c est automatique

Lien vers le commentaire
Partager sur d’autres sites

nan mais c'est super simple.

dans ton repertoire values tu a un fichier string.xml

tu crée un values-nl pour le néerlandais et hop tu y mets le string.xml dans lequel tu traduit les chaines.

idem pour values-en, values-fr, values-it....

Cette partie là, c'était clair et limpide pour tout le mode, je pense!

bon du coup tu switch pas c est automatique

C'était juste cela qu'on voudrait savoir! Car mon téléphone est en anglais, mais je voudrais que les applis que je developpe ne soient pas forcément en anglais

Enfin bon, tout le monde s'accorde à dire que ce n'est pas possible, donc je laisse tomber à moins d'un nouvel avis!

Lien vers le commentaire
Partager sur d’autres sites

Autre question: est-il facile de changer de la même maniere des array de 500 strings?

Je les ai defini en dur dans le soft: array1={a,b,c,d,...} mais je n'ai pas encore vu que l'on pouvait les mettre dans strings.xml.

Des idées?

Tu peux pas les sérialiser et les sauver en tant que raw data ( ie dans res/raw ).

Dans ce cas, tu dois pouvoir aussi les localiser !!

J'avais essayé de le faire pour le dico de mon jeu, mais 300 000 mots string dans un array, ca mettait du temps à se lire :)

Mais pour 500 ca ne doit pas poser de problemes...

Emmanuel / Alocaly

Lien vers le commentaire
Partager sur d’autres sites

profete,je suppose que tu a mis avant dans ton code:

String a = "coucou";
String b= "lool";

je te conseil donc de faire ainsi,tu prend toute tes variavles,tu les copie et les met dans notepad

tu remplace tout(ya la fonction)"String " par

et enfin le "; par

il ne te reste plus qu'a crée ton fichier XML de cette facon

<?xml version="1.0" encoding="utf-8"?>

Hallo, Lokalisierung

   ce que tu a fait plus haut

et enfin de recup ta array1 dans le bloc note encore

et de remplacer les , par ,@string/

je pense que [color=red][b]sa[/b][/color] va marché

je fait un test quand j'ai un peux de temps et jte dit

sinon go msn et on tente ensemble sur une wave

Lien vers le commentaire
Partager sur d’autres sites

Tu peux pas les sérialiser et les sauver en tant que raw data ( ie dans res/raw ).

Je ne comprends pas tres bien ce que tu veux dire par "sérialiser" et le raw que je n'ai jamais utilisé...

En pratique, comment utiliser:

serieA={"one","two","three",....."five hundred"};

serieF={"un","deux","trois",....."cinq cents"};

serieN={"een","twee","drie",....."vijf honderd"};

Lien vers le commentaire
Partager sur d’autres sites

Solution trouvée avec l'aide de Feust:

//values-en
one*two*three*....*five hundreds

//values-fr
un*deux*trois*....*cinq cents

et ensuite:

on reprend la valeur et on fait un split("*")

Cela nous fait donc des tableaux dépendant de la langue.

EDIT: en fait, non, ca ne fonctionne pas!

RE- EDIT: PUTAIN - une nuit blanche pour se rendre compte que si je parse avec des "," au lieu des étoiles, ca fonctionne... snif snif snif

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres sites

Par contre je vois au défaut au moins dans ce système.

C'est que si tu veux rajouter un mot tu dois le faire à la fin (pas trop grave) mais surtout tes listes doivent être parfaitement synchronisées et tu ne peux pas te permettre de ne pas traduire un mot.

Avec une solution basée sur des defines (ou mécanisme équivalent) ou sur un fichier xml avec un node par mot, tu peux te permettre d'avoir une langue très complète et de basculer sur cette langue lorsqu'il y a un mot que tu n'as pas eu le temps de traduire.

Lien vers le commentaire
Partager sur d’autres sites

Par contre je vois au défaut au moins dans ce système.

C'est que si tu veux rajouter un mot tu dois le faire à la fin (pas trop grave) mais surtout tes listes doivent être parfaitement synchronisées et tu ne peux pas te permettre de ne pas traduire un mot.

Avec une solution basée sur des defines (ou mécanisme équivalent) ou sur un fichier xml avec un node par mot, tu peux te permettre d'avoir une langue très complète et de basculer sur cette langue lorsqu'il y a un mot que tu n'as pas eu le temps de traduire.

pourquoi je comprend pas quand tu parle

lol

Lien vers le commentaire
Partager sur d’autres sites

pourquoi je comprend pas quand tu parle

lol

Tu veux vraiment mon opinion ? :)

Exemple concret :

Selon votre méthode on aurait ça :

//values-en
one*two*three*....*five hundreds

//values-fr
un*deux*trois*....*cinq cents

Si pour une raison ou une autre tu veux rajouter une langue ou rajouter des messages tu es obligé d'avoir tout traduit dans cette nouvelle langue ou de retoucher à toutes tes chaînes.

uno*dos*tres*...

Avec une méthode de ce genre :

Bonjour
Quitter
Hello

Si tu n'as pas le msgQuit en anglais, ce n'est pas grave tu peux toujours afficher le msgQuit de ta langue par défaut.

Tu n'as peut être pas non plus compris cette fois-ci ce que je voulais exprimer mais ce n'est pas grave, faites votre méthode :)

Lien vers le commentaire
Partager sur d’autres sites

Pas forcément 500 variables (après tout dépend de ce que tu entends par "variable" et puis surtout je ne sais pas trop comment Android le gère).

Tu as un fichier xml de profondeur 1 par langue et tu charges la langue par défaut et celle choisie par le user qui "écrase" les valeurs par défaut.

Après dès que tu as besoin d'un texte tu vas chercher le noeud qui va bien et pouf :)

Mais bon, si c'est pas lui qui gère ses ID ... même si je ne comprends pas pourquoi il ne pourrait pas le faire, c'est tant pis, il va utiliser la méthode du parsing :)

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...