begin process at 2010 02 09 22:58:22
  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é :5 962 / 234

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 CHAT SERVER-CLIENT par abderrahmenbilog
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMULATION DE CONSOLE POUR WINDOWS MOBILE par originalcompo
Source avec Zip Source .NET (Dotnet) BASE DE DONNÉES EN XML par DanMor498
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMPLECONV - APPLICATION DE CONVERSION MONÉTAIRE AVEC TAUX E... par Jeffrey_
Source avec Zip Source .NET (Dotnet) TRAITEUR D'IMAGE (MINI) par ycyril

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) EXEMPLE LIÉ AU TUTO "CRÉER SES PROPRES CLASSES GÉNÉRIQUES" par rm50
Source avec Zip Source avec une capture Source .NET (Dotnet) SUBTITLE REVERSE .SRT par Zaltez
Source avec Zip Source .NET (Dotnet) TRADUCTION D'ÉVENEMENT SOURIS EN TOUCHE par iow4
Source avec Zip Source .NET (Dotnet) CLASSE DE POINT PRÉCIS par damned3
Source avec Zip Source .NET (Dotnet) PORTÉE DE LA VALEUR D'UN CHAMP STATIC par coq

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 Persistance [ par rabli ] Salut;je veux creer une classe persistance pour acceder a ma BD mais je ne dispose d'aucun exemple pour le faire.y a t il qlq un qui pourrais me passe bindingsource et datagridview [ par herakles66 ] Bonjour !Voilà j'aurais besoin d'un petit avis sur le problème que je me pose ...Dans mon code je fais le lien entre mes listes que je souhaite affich Traduction en utilisant dotnetnuke [ par ddove53 ] Bonjour,quelqu'un a t-il déjà travaillé sur un module de traduction en utilisant DotnetNuke (open source pour .NET)? Pouvez-vous me guider?Merci. application struts [ par deutch1 ] bonjour à tous    j'ai une application web développé avec struts, j'utilise une formulaire une classe actionform  et une classe action et applet ,les Récupérer le [ ] args dans une autre classe de mon programme [ par Nixeus ] Bonjour à tous,J'ai développé un petit programme en C#,en ligne de commande . J'utilise pas mal d'arguments.Je souhaiterai, dans une de mes classe pou Accé à la methode de ma classe [ par Souliabdo ] Bonjours à tous,   <p cl


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,546 sec (3)

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