Gestionnaire de langues

Avatar de l’utilisateur
Ambrosios
Messages : 149
Inscription : 07 Jan 2010 10:13

Gestionnaire de langues

Message par Ambrosios » 12 Nov 2010 23:12

Bonsoir,

Suite à une demande sur le forum pour un script permettant de gérer le multi-langages, je vous propose ma première version d'un gestionnaire de langues personnalisable par l'utilisateur.

Vous trouverez dans l'archive une petite notice explicative au format PDF (que je referai surement pour la rendre plus claire :lol: ) ainsi qu'un package et le dossier Assets. Libre à vous d'utiliser soit l'un soit l'autre.

Lisez-bien la note explicative et examiner les dossiers déjà présents dans le dossier "lang". Si vous rencontrez des problèmes ou que certains points sont à améliorer, n'hésitez pas à m'en faire part.

Le système est loin d'être parfait mais il conviendra pour fournir un début de gestion multi-langues.

Caractéristiques :
  • Gestion dynamique des langues
  • Possibilité de rajouter des langues facilement, que ce soit pour l'utilisateur comme pour le développeur
  • Possibilité de changer rapidement de langues dans une application
Lien : LangManager
A3G - WarGround
DevBlog

seb7000
Messages : 140
Inscription : 05 Mars 2010 17:51

Re: Gestionnaire de langues

Message par seb7000 » 15 Nov 2010 10:40

Merci pour la source.
C'est exactement ce dont j'avais besoin, génial !

Petite question (je chipote là ;) ), serait-il possible d'appeler ceci à partir d'un script en .js ?

Code : Tout sélectionner

LangManager.GetInstance().getString("str_menu_yes",0); 
Par avance merci

Avatar de l’utilisateur
Ambrosios
Messages : 149
Inscription : 07 Jan 2010 10:13

Re: Gestionnaire de langues

Message par Ambrosios » 16 Nov 2010 09:49

Je n'ai jamais utilisé le js dans unity donc je ne peux pas affirmer que ça fonctionne depuis javascript.

Mais je pense que sa reste possible de faire du simple appel de fonction.
A3G - WarGround
DevBlog

Avatar de l’utilisateur
jeanfabre
Messages : 62
Inscription : 12 Nov 2010 13:04
Localisation : France-Russie
Contact :

Re: Gestionnaire de langues

Message par jeanfabre » 17 Nov 2010 10:15

Bonjour,

c'est pas mal du tout.

Lorsque que je créer des gestionnaires de langue, je trouve tres pratique de pouvoir montrer la clefs plutot que la traduction relative à la clefs, cela permets de bien situer le contexte lorsque les traducteurs travaille sur l'application. Bien sur, cette fonction ne doit etre accessible que par les admins et traducteurs.

Autrement, c'est aussi interressant d'avoir les differentes sections de traductions ( ici "menus" et "actions") dans un dictionnaire et non pas coder en dur dans le script lui meme, cela permet plus de flexibilité lorsque l'appli evolue.

Egalement, avoir la possibilité de definir un image ou texture pour chaque langue est necessaire la plupart du temps.

Bonne journee,

Jean

Avatar de l’utilisateur
Ambrosios
Messages : 149
Inscription : 07 Jan 2010 10:13

Re: Gestionnaire de langues

Message par Ambrosios » 17 Nov 2010 13:42

Merci pour les retours !

En effet il faut que j'automatise le processus d'initialisation des dictionnaires, je le ferai dans la prochaine version ;)

En ce qui concerne les images associées à la langue.... c'est tout bête mais j'avoue ne pas y avoir pensé ! Je pense aussi étendre le système aux fichiers multimédias.
A3G - WarGround
DevBlog

Avatar de l’utilisateur
Lion
Messages : 39
Inscription : 15 Août 2010 00:18
Localisation : Strasbourg
Contact :

Re: Gestionnaire de langues

Message par Lion » 21 Nov 2010 21:38

Il serait super de pouvoir ajouter des sauts de ligne et des lignes commentées à l'intérieur de chaque dico, histoire de pouvoir faire encore des "catégories" dans chaque fichier.

Pourquoi utiliser le signe | et non = ? C'est à priori (un poil) plus logique et rapide.


Je n'ai pas regardé mais on doit certainement pouvoir supprimer le getInstance() et le nom du fichier lors de l'appel, quitte à ce que je dev ait à rajouter quelque part quelque lignes de code.
Du genre : LangManager.getString( [indentifiant] ) c'est déjà beaucoup plus court

Préciser le dico permet qu'un même identifiant ait plusieurs sens dans la même langue, mais perso je ne trouve pas ça utile du tout.
Autrement, c'est aussi interressant d'avoir les differentes sections de traductions ( ici "menus" et "actions") dans un dictionnaire et non pas coder en dur dans le script lui meme, cela permet plus de flexibilité lorsque l'appli evolue.
Ça devrait même pouvoir se faire automatiquement en lisant les fichier dans le dossier, non ?
Amicalement, Lion :)
Mon Site
Convertisseur C# vers UnityScript (extension Unity3D).

Avatar de l’utilisateur
Ambrosios
Messages : 149
Inscription : 07 Jan 2010 10:13

Re: Gestionnaire de langues

Message par Ambrosios » 21 Nov 2010 21:56

Il serait super de pouvoir ajouter des sauts de ligne et des lignes commentées à l'intérieur de chaque dico, histoire de pouvoir faire encore des "catégories" dans chaque fichier.
C'est pas bête, je n'y avais pas pensé ! Je rajoute ça à la liste des améliorations à apporter ;)
Pourquoi utiliser le signe | et non = ? C'est à priori (un poil) plus logique et rapide.
C'est une question de fréquence d'usage du caractère. Quand j'ai choisi le caractère séparateur, il a fallu faire un choix parmi les caractères les moins utilisés et j'ai opté pour | même si c'est, en effet, plus long qu'un simple =.
Si j'aurai utilisé un =, il aurait été difficile de l'utiliser dans les traductions étant donné qu'il aurait fait office de séparateur. Or, à ma connaissance, le caractère | n'est quasiment jamais utilisé dans des phrases.
Je n'ai pas regardé mais on doit certainement pouvoir supprimer le getInstance() et le nom du fichier lors de l'appel, quitte à ce que je dev ait à rajouter quelque part quelque lignes de code.
Du genre : LangManager.getString( [indentifiant] ) c'est déjà beaucoup plus court
En fait, on peut se contenter de faire un seul appel à getInstance() en créant une variable de type LangManager dans son script et en l'initialisant avec cette fonction. Il suffira ensuite d'appeler getString() avec cette nouvelle variable.
Préciser le dico permet qu'un même identifiant ait plusieurs sens dans la même langue, mais perso je ne trouve pas ça utile du tout.
C'était plutôt pour éviter d'avoir un seul dictionnaire et de pouvoir mieux organiser ses identifiants. A charge du développeur de bien s'organiser. Avoir plusieurs traductions pour un même identifiant peut être utile suivant le contexte.
Exemple : si le développeur souhaite décliner ses phrases suivant les différents niveaux de langues français (petit rappel : familier, commun et soutenu :lol: ), il pourra utiliser le même identifiant pour ses phrases et passer en paramètre de la fonction, le dictionnaire correspondant au niveau de langage souhaité.
Il pourrait tout aussi bien faire des identifiants de phrases différents pour chaque niveaux de langages, mais là encore c'est plus une question d'organisation.
Ça devrait même pouvoir se faire automatiquement en lisant les fichier dans le dossier, non ?
Il faut que je me renseigne plus sur ce point, il est clair que le système actuel n'est pas très flexible car il nécessite un changement du code à chaque ajout/suppression du dictionnaire.

J'espère avoir répondu à tes questions et je prends note des améliorations à apporter ! Si vous avez d'autres critiques ou remarques, n'hésitez pas à les faire partager.
A3G - WarGround
DevBlog

Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

Re: Gestionnaire de langues

Message par Freelax » 22 Nov 2010 16:20

Salut!

trop pratique :D merci bien
Image

Avatar de l’utilisateur
Lion
Messages : 39
Inscription : 15 Août 2010 00:18
Localisation : Strasbourg
Contact :

Re: Gestionnaire de langues

Message par Lion » 22 Jan 2011 14:50

Hey, ça faisait longtemps.

Je vais avoir du temps dans les prochains mois -après avoir été licencié récemment-, bref est-ce que tu as pu avancer sur les ajouts, Ambrosios, ou est-ce que je peux m'en occuper par exemple ?
Amicalement, Lion :)
Mon Site
Convertisseur C# vers UnityScript (extension Unity3D).

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Gestionnaire de langues

Message par ZJP » 22 Jan 2011 21:25

:cry: pour le boulot. Bon courage. :)
Sinon, j'ai essayé Z-type http://www.phoboslab.org/ztype/. Tu en parle sur ton blog. Marrant, y'a encore de bonnes idées de développement.

JP

Répondre

Revenir vers « Vos créations, jeux, démos... »