IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Faire une application multilangage avec C++Builder [Tutoriel]


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut Faire une application multilangage avec C++Builder
    Bonjour,

    J'ai publi� un article pr�sentant une m�thode pour faire une application multilangage avec C++ Builder.

    Voici le synopsis de l'article.
    Cet article montre comment faire une application multilingue sous C++ Builder. Une m�thode est utilis� ici, il en existe autant que de d�veloppeur et ne peuvent donc pas toute �tre montr�.
    Lien vers l'article : http://pottiez.developpez.com/tutori.../multilangage/

    de vos �ventuels commentaires & remarques

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Merci pottiez de partager tes connaissances

    Dans mon cas je pr�f�re utiliser un fichier ressource (.rc) pour enregistrer mon texte. C'est un peu plus classique comme fa�on de proc�der.

    Pour mon prochain projet je m'embarque dans l'ITE et l'ETM disponible depuis C++Builder 2009:

    The Integrated Translation Environment (ITE) is a part of the IDE that simplifies localizing your projects. ITE can create a new localized project from an existing project. ITE does not automatically translate text, but provides a dialog listing all text that needs to be localized and fields in which to enter the corresponding translated text. Once you have entered the translated text and built the localized project, you can set another language active and display a form in the localized text; you don't have to switch locales and reboot your system. This allows you to perform localization without requiring a localized system.

    The External Translation Manager (ETM) is a standalone application that works with DFM files and text strings in the source code. Although ETM does not allow you to create a new localized project, it does provide a dialog listing localized text and the translated text, similarly to ITE.
    J'ai fait quelques test et sa fonctionne tr�s bien, par contre je n'ai pas trouver moyen de changer le texte en temps r�el dans mon application. Un red�marrage est n�cessaire pour charger la langue dans le registre.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    74
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 74
    Par d�faut
    belle encapsulation !

    Pour ma part, je pr�f�re g�rer les libell�s en base de donn�es.
    �a offre de grandes possibilit�s pour les traductions et les personnalisations des libell�s.
    Au lancement du programme, les libelles de la langue courante sont r�cup�r�s dans un fichier csv, pour �viter les acc�s � la bdd par la suite.
    Cela dit, votre solution n'est pas incompatible avec des traductions en BDD car votre fichier xml pourrait tr�s bien �tre construit apr�s interrogation d'une BDD.


    La surcharge d'une fonction du genre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    MajLibelle(TBitBtn * btn,  const AnsiString & CodeComposant);
    MajLibelle(TLabel * label, const AnsiString & CodeComposant);
    etc...
    permet une initialisation simple du libell� des composants dans l'�v�nement OnActivate des fiches.

    Mais votre solution est nettement plus jolie.

    Merci !

  4. #4
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Bonjour,
    tout as fait, ici j'utilise un fichier XML mais la solution est adaptable � tout support d'enregistrement de donn�es


    Merci � vous pour vos retours .

  5. #5
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Je suis pottiez le XML peut �tre enregistr� en ressource et du coup les deux solutions combin�es.

    Bien et complet.
    Merci

  6. #6
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Par contre, si tu utilises un fichier rc l'overhead est plus petit. Voici un exemple:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #ifdef _WIN32
    LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT
    #endif //_WIN32
     
    STRINGTABLE
    {
        // Buttons
        1000,   "OK"
        1001,   "Annuler"
    }
    Dans mon code j'affecte la propri�t� Tag du composant au chiffre correspondant � mon texte.

    J'utilise un fichier ressource par langue, donc le traducteur ne re�oit que la langue qu'il a besoin de modifier.

    Je ne dit pas que ma m�thode est meilleure, je dit juste qu'elle convient plus au logiciel que je d�veloppe. Je pense aussi que je me suis habitu� � cette fa�on de faire avec le temps

    De plus, mon prochain programme va utiliser l'ITE et l'ETM. Ce qui est tr�s pratique car sa permet de modifier d'autres attributs que seulement le texte. Comme la police de caract�re, le charset, le Hint et plusieurs autres. De plus, tout les messages standards pourront �tre traduit, par exemple: "Access violation at address %p. %s of address %p". Il y a m�me moyen d'utiliser le Translation Repository pour les termes qui reviennent dans plusieurs projets.

Discussions similaires

  1. R�ponses: 41
    Dernier message: 27/10/2009, 14h13
  2. R�ponses: 6
    Dernier message: 21/11/2008, 21h20
  3. R�ponses: 1
    Dernier message: 03/05/2006, 10h49
  4. Comment faire une API Win32 avec C++ Builder
    Par Zerocool003 dans le forum C++Builder
    R�ponses: 2
    Dernier message: 31/01/2006, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo