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

 Delphi Discussion :

ResourceString et fichier INI


Sujet :

Delphi

  1. #1
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Points : 1 935
    Points
    1 935
    Par défaut ResourceString et fichier INI
    Bonjour à Tous,

    Voilà, j'avais un peu perdu de vue la méthode ResourceString.

    Mais je ne pense pas que cette méthode puisse être chargée par exemple depuis un fichier INI ?

    Je précise, c'est au niveau d'une appli en cours de traduction ; alors je souhaitais obtenir un peu plus de précisions en ce sens.

    Car ResourceString c'est en dur au OnCreate...

    Je précise également : je ne souhaite pas passer par des DLL.

    Par contre ce sera via de simples fichiers textes à remettre aux traducteurs.

    Merci d'avance de tout avis et idée

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 737
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 737
    Points : 25 654
    Points
    25 654
    Par défaut
    Pour les traductions, tu peux mettre dans un fichier ini, comme section le nom de classe de la TForm, comme Clé le nom d'un control et comme valeur le libellé (un fichier par langue)
    Ensuite avec les RTTI (GetPropList et IsPublishedProp), tu peux modifer facilement le contenu de ta form avec une boucle (dans une classe partagée par toute l'appli)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [TForm1]
    Label1.Caption=Bonjour
    Button1.Caption=Hello
    LabeledEdit1.Text=Salut
    LabeledEdit.EditLabel.Caption=World
    Plus une section
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [MESSAGE]
    0000=Est-ce bien raisonnable ?
    0001=Voulez-vous modifier ce dossier ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MessageDlg(Translate('Est-ce bien prudent ?', 0), mtConfirmation, ...
    Il cherche le 0 (0000) et si il le trouve pas, il prend la chaine passée en paramètre !
    Avec une TStringList, c'est très rapide (faut juste faire attention à gérer d'éventuel saut d'indice ou doublon)

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Si on parle de gestion des langues, je n'ai jamais optez pour ce genre de pratique.

    Je suis partie d'une Table (d'un quelqueconque base de données MDB, SQL, ...) par langue et chaque enregistrement correspond un composant, et les champs corresponds au critères (type de composant, couleur, style, taille , etc...).
    L'avantage c'est que tu peux donner la possibilité à l'utilisateur de créer sa propre table de langue.
    De plus cela me permet également de changer à la volée (pendant l'execution du osft) n'importe qu'elle critères du composant (son caption, polices taille, ou même position).

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 95
    Points
    95
    Par défaut
    Salut.
    pourquoi ne pas utiliser des bibliothèques toutes prêtent ?!

    DKLang est un ensemble de classes destinées à simplifier la localisation des applications écrites en Delphi et c'est open source .

  5. #5
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Points : 1 935
    Points
    1 935
    Par défaut
    Merci les copains !

    @ Shai : je vais approfondir, car je ne connaissais pas, ça parait très interessant !
    Je t'en donnerai des nouvelles.

    @ BuzzLeclaire : je suis en version perso = no BDD = niet !
    Quoique je vais bientôt investir dans la future mouture de Delphi, alors je ne maitrise rien de ce côté, puisque n'ayant jamais pratiqué.

    @ J_apprenti : au début de mon aventure Delphi, j'étais émerveillé devant les ressources composants. J'ai ai parsemé un peu partout. Désormais je suis prisonnier de certains et certaines bibiothèques, que je ne peux même pas updater sans avoir de gros souci de recompilation. Autrement dit, pourquoi prendre ailleurs pour se compliquer la vie. Sans parler des histoires de licences...

    En plus les traducteurs adorent les fichiers texte, et n'aiment pas trop les DLL et autre choses exotiques.

    @+

    Edit : après survol de la méthode proposée par Shai, whaouuu, utiliser l'introspection sur des instances de classes pour ça
    Je crois je sans en avoir encore mangé, j'en suis déjà dégouté
    En plus ensuite au niveau maintenance du code

    Si l'on me confirme que l'on ne peux pas faire autrement qu'un passage en dur de la méthode ResourceString, je taguerai ce thread en résolu.

    Merci.

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 001
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 001
    Points : 15 490
    Points
    15 490
    Par défaut
    Salustre, JP !
    Citation Envoyé par Droïde Système7 Voir le message
    Si l'on me confirme que l'on ne peux pas faire autrement qu'un passage en dur de la méthode ResourceString, je taguerai ce thread en résolu.
    Tu devrais jeter un oeil à SuperCopier2 (écrit en Delphi, ), à la page de son download, et plus particulièrement aux fichiers de traductions proposés, de bêtes fichiers .lng qui sont en fait des .ini,

    Tchô bye,

  7. #7
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Points : 1 935
    Points
    1 935
    Par défaut
    Salustre, jp (aussi) ! salut à tous,

    Voui voui connais tout ça*, mais je cherche un moyen si-possible optimisé type ResourceString, afin d'éviter la méthode traditionnelle.

    Sinon aucun lézard ; simplement un soucis de bien cibler la bonne méthode.

    En fait je pensais que cette méthode ResourceString permettait de faire autrement que d'écrire en dur les strings.

    @+

    * : à moins que je n'ai pas bien saisi le sens de ta réponse.

  8. #8
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 001
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 001
    Points : 15 490
    Points
    15 490
    Par défaut
    Yop !
    Citation Envoyé par Droïde Système7 Voir le message
    * : à moins que je n'ai pas bien saisi le sens de ta réponse.
    Bah non, c'est moi qui n'ai pas bien saisi le sens de ta question,
    (t'as vu l'heure à laquelle j'ai posté ? J'devais plus avoir les yeux en face des trous, )
    Ah, ça m'aura donné l'occasion de te faire un ch'tit coucou,

  9. #9
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Points : 1 935
    Points
    1 935
    Par défaut
    Yop, ben oui l'intention compte beaucoup également, si tous les grands bipèdes pouvaient s'aider sans toujours avoir l'idée de se cogner




Discussions similaires

  1. Sauvegarde des attributs de texte en fichier ini
    Par Raylemon dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2003, 22h28
  2. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 21h40
  3. Fichiers INI et TlistBox
    Par Philippe01 dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2003, 16h36
  4. [VB6] Api pour supprimer dans un fichier INI
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/02/2003, 09h16
  5. faire un fichier .ini
    Par florent dans le forum C++Builder
    Réponses: 14
    Dernier message: 31/05/2002, 23h06

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