begin process at 2012 02 07 08:12:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

.NET

 > CLASSE DE TRADUCTION

CLASSE DE TRADUCTION


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :.NET Source .NET ( DotNet ) Classé sous :classe traduction, traduction, classe, static Niveau :Initié Date de création :10/02/2008 Vu / téléchargé :7 357 / 294

Auteur : oximoron

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
J'ai développé une classe de traduction. Alors oui ça existe dans visual studio, mais ça n'est pas très flexibles d'avoir des dll pour des traductions classées et nommées dans des dossiers sans avoir le choix. De plus pour l'ajout d'une langue ou même un simple correction il faut recompiler le projet et redéployer les dlls c'est un peu lourd.
J'ai donc développé une classe dont la majorité des fonctions sont statics. La classe va chercher les fichiers trads.xx.xml (le nom et l'ext sont modifiables dans les constantes) et charge les traductions dans des HashTables. L'utilisation est très simple, un seul appel de fonction pour traduire la feuille. Une autre fonction pour récupérer la trad qui correspond au code, changement de langue sans redémarrer l'appli, etc.
Je l'ai déjà utilisé sans soucis majeurs, elle n'est pas parfaite, mais je la trouve vraiment très pratique.

Source

  • //Pour choisir une langue
  • CTrad.ChoixLangue(lsCodeLangue, false);//lsCodeLangue="fr" ou ="us" ou un autre code langue
  • //Voir le zip il y a une très petite appli de test
  • //pour traduire une feuille ou un UserControl
  • CTraduction.TraduireFeuille(this);
  • //pour changer la langue en execution
  • CTraduction.TraduireFeuille(this, true);
  • CTraduction.ChoixLangue(lsCodeLangue); //lsCodeLangue="fr" ou ="us" ou un autre code langue
  • CTraduction.TraduireFeuille(this, false);
  • //Pour récupérer une traduction
  • CTraduction.Donne("MATRADUCTION")
//Pour choisir une langue
CTrad.ChoixLangue(lsCodeLangue, false);//lsCodeLangue="fr" ou ="us" ou un autre code langue

//Voir le zip il y a une très petite appli de test

//pour traduire une feuille ou un UserControl
CTraduction.TraduireFeuille(this);

//pour changer la langue en execution
CTraduction.TraduireFeuille(this, true);
CTraduction.ChoixLangue(lsCodeLangue); //lsCodeLangue="fr" ou ="us" ou un autre code langue
CTraduction.TraduireFeuille(this, false);

//Pour récupérer une traduction
CTraduction.Donne("MATRADUCTION")

 Conclusion

vous pouvez aussi visiter mon site internet : http://www.oximoron.fr

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) RÈGLE POUR EFFECTUER DES MESURES SUR SON ÉCRAN
Source avec Zip Source avec une capture Source .NET (Dotnet) TRACKBAR / SLIDERBAR : USERCONTROL ENTIÈREMENT PERSONNALISAB...
Source avec Zip Source avec une capture Source .NET (Dotnet) PROTÉGER UN FICHIER XML CONTRE LES MODIFICATIONS FAITES PAR ...
Source avec Zip Source avec une capture Source .NET (Dotnet) RÉSOLUTION DE GRILLE DE SUDOKU (AVEC CONTRÔLES DYNAMIQUES)

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) ORIONBANQUE par toutphp
Source avec Zip Source avec une capture Source .NET (Dotnet) ORIONAPPLICATION par toutphp
Source avec Zip SOCKET CONNEXION CLIENT & SERVEUR par ziedto83
Source avec Zip Source .NET (Dotnet) FFMPEG.NET : WRAPPER .NET DE FFMPEG par MasterShadows
Source avec Zip Source .NET (Dotnet) ATTACHER, CRÉER ET SAUVEGARDER UNE BASE DE DONNÉES SQL SERVE... par Alvepinai

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) PETITE LIBRAIRIE MATHÉMATIQUE par dodo7263
Source .NET (Dotnet) CONNECTION SIMPLIFIER A LA BASE DE DONNÉE par audain
Source avec Zip Source avec une capture Source .NET (Dotnet) [SILVERLIGHT] UN GÉNÉRATEUR INTERACTIF D'ARBRES DE HUFFMAN par loudadyassine
Source avec Zip Source avec une capture Source .NET (Dotnet) TENNIS STATISTIQUES par thebigboss
Source avec Zip Source .NET (Dotnet) EXEMPLE LIÉ AU TUTO "CRÉER SES PROPRES CLASSES GÉNÉRIQUES" par rm50

Commentaires et avis

Commentaire de tmcuh le 12/02/2008 11:27:15 10/10

Class très intéressante, bon boulot

Commentaire de tmcuh le 13/02/2008 12:00:29

En regardant un peu plus en profondeur, je trouve bizzar que tu utilise la propriété Text pour faire tes opérations, si pour une raison ou une autre, l'information devait être dynamique et donc dépendre d'un string.format("Button {0}", "123") le système ne marcherait plus car l'information devient dynamique. Tu devrais baser ton code plutôt sur un champs de type libre tel que "Tag", mais là encore certains programmeur l'utilise pour leur programmation. Il serait donc plus "intelligent" de travailler avec le nom du contrôle, qui lui si l'on programme correctement, doit être unique. Car le problème est qu'à chaque fois tu prend l'existant, tu fais des opération et puis tu refait la traduction... 2 opérations -> perte de performance.
Mais l'idée semble très simpa quand même :)

Amicalement,
Laurent

Commentaire de oximoron le 13/02/2008 20:32:47

Alors je vais expliquer mon choix du .text :
c'est pour moi le meilleur compromis, c'est peut être pas la meilleur technique, mais elle à démontrer ces preuves dans de moyennes et petites applications.
- On voit ce qui est traduit ou pas dans le designer de visual.
- Le point tag est à bannir de toute programmation, il peut dépanner mais c'est tout. Je travaille sur du code ou ils ont tous mis dans les .tag en fonction de la cellule, de la ligne, d'une case à cocher et de la colonne ... résultat ca plante dans tous les sens, bref en plus au niveau des perf ca doit être encore pire car il y a le test pour savoir si c'est un string et le cast en stirng...
- Avec du texte dynamique ca marche très bien au mais tu utilise String.Format(CTraduction.Donne("BTN_X"), i); et dans le trad à la balise BTN_X tu mets "Button {0}".
- Et encore une fois niveau perf, rien de dramatique, pour avoir fait des tests, c'est pas les .text qui prennent du temps... Même avec 500 contrôles c'est pas 1000 .text qui vont ralentir le tout pour avoir fait quelques tests. après si tu recherche de la performence pure, c'est peut être pas le mieux... mais dans ce cas autent faire du c++ natif... ca dépendde l'appli.
- Par contre il y a priori un petit bug avec les user control, visual veut absolument en mode designer un fichier trad.xx.xml dans son répértoire (pour une raison inconnue) sinon il râle. Suffit de crer un fichier vide avec ce nom dans le répértoire et ca passe. Etant donné que ca ne gène qu'à ce moment, c'est une solution de bricolage mais acceptable :p

Voilà pourquoi j'ai fait ce choix, il a été choisi de manière "intéligente" ;)

Commentaire de Warny le 15/02/2008 08:36:48

Il y a une solution à cette problématique de champs.
Il est possible à partir du .NET 2.0 un mécanisme qui permet à un objet d'ajouter à des contrôle des propriétés virtuelle supplémentaires.
Ce mécanisme est mis en oeuvre dans les contrôles infobulles.

Commentaire de oximoron le 15/02/2008 10:53:38

Warny, c'est interessant, tu aurait un peu plus d'info genre quelques liens ?

Commentaire de Warny le 15/02/2008 11:01:37

malheureusement non, je n'ai pas plus d'infos.
Mais tu peux regarder comment ça fonctionne grâce à décompilateur gratuit reflector.

Commentaire de Warny le 16/02/2008 18:59:32

J'ai retrouvé, il s'agit des propriété d'extensions.
Ce code permettrait (mais je n'ai pas véréifié) de produire le résultat souhaité : http://www.dotnet-news.com/lien.aspx?ID=30487
Sinon, il faut chercher des exemples reprenant l'interface IExtender et la classe d'attribut ProvidePropertyAttribute.

J'ai trouvé aussi cet autre exemple : http://files.codes-sources.com/fichier.aspx?id=33786&f=AutoCompletionTextBox%5cAutoCompleteExtender.cs

Commentaire de oximoron le 16/02/2008 19:11:48

Merci beaucoup, je vais regarder ca mais je ne vais pas l'adapter à ma classe de traduction, car ca nécéssite le framework 3.0, ce qui est un peu pénalisant. Beaucoup d'application en sont encore au 2.0 voir au 1.1... Donc c'est sera pour la prochaine ;)

Commentaire de Warny le 18/02/2008 06:23:13

En fait, malgré ce qui peut être indiqué dans les sources, ça marche dès le framework 2.0. Mais pas en 1.1 effectivement.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Conseil sur l'utilisation de la mémoire :utilisation de static [ par taoetc ] Bonjour , voila, j'ai besoin d'avoir une liste de constante accessible par plusieurs classes.J'ai donc décidé de créer une classe qui contiendrait t ref de classe [ par otavioreis ] Bonjour,Me voilà encore une fois dans le forum.. heheheheheh J'ai crée une bibliothèque de classes en C# avec 18 classes. Chaque classe a un certain g classe static dans classe static [ par linx20 ] Voila en gros je veux inclure une classe static ds mon autre classe static : public abstract class MaClasseStatic1{public static MaClasseStatic2 st2;/ this et static [ par mastereur ] Bonjour,Ma question doit avoir une réponse toute bête mais je n'arrive pas à la trouver...Voila mon problème:J'ai plusieurs classe (on va dire pour ic Erreur name space et type introuvable sur ma classe [ par Karibot ] Salut à tous, j'essaye de traiter (lire) un document XML, pour cela j'utilise XPath. j'ai crée une classe qui me permet de le lire et de renvoyer dans Heritage : Empecher le partage d'une variable static [ par vincnet68 ] Bonjour, J'utilise une classe static pour effectuer des Logs dans toute mon application. Je souhaite ajouter une classe dérivée pour faire un deuxiè classe listviewItem ET form, structure de programme [ par Hermios ] Salut à tous, Mon problème ne concerne pas tant une méthode plutôt qu'une autre, mais vraisemblablement un problème d'architecture: J'ai des objects, changer une propriété d'une instance de classe a partir d'une autre classe [ par xoco ] Bonjour, je suis un peu débutant en c# et j'ai un gros pb, c que a moins de définir dans ma classe principale une variable ou une fonction en "public Declaration dynamique d'une classe [ par Barz ] Comment par code peut-on executer une méthode d'une classe en dynamique, c'est à dire en ayant que une chaine correspondant au nom de la classe et une Probleme d'IP [ par MorpionMx ] Bonjour,Voila, je développe un tout petit chat sans prétention, le probleme c'est que avec ce bout de code :private static Socket s = new Socket (addr


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales