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

Composants FMX Delphi Discussion :

FMX et internationalisation de projet


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut FMX et internationalisation de projet
    Bonjour,

    Avec la VCL et le développement sous windows, il y a des méthodes pour internationaliser ses projets mais avec FireMonkey, comment cela se passe ?

    Déjà, si on utilises les DLL pour traduire ses programmes ( une DLL par langue utilisée ), sous windows cela ne pose pas de problèmes mais avec Mac OSX, comment cela se passe ?

    En bref, est ce qu'il éxiste de bonnes méthodes pour développer un programme sous plusieurs langues sans tenir compte de l'os cible, pour que cela fonctionne sous windows, sous osx, sous ios et android ?

    Thierry

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    J'ignore ce qui a été prévu mais j'opterais pour un fichier type INI
    Verifier si le TIniFile fait parti de la RTL
    Si RTL, alors, le code a été doublé, l'un par API Windows, l'autre par ce que fourni MAC ou alors manuel, à l'époque de la CLX, le doublement était présent
    Si TInifile fait parti de la VCL, oublie alors !

    Sinon, tu peux utiliser un TStringList qui contiendra ta table de conversion genre
    Code ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Form1.Edit1.Caption=Salut
    Form1.Button1.Caption=Hello
    Form2.Memo1.Lines.Count = 2
    Form2.Memo1.Lines[0]=Salut
    Form2.Memo1.Lines[0]=Hello
    A toi de voir, combien de fichier, un par langue évidemment
    un par langue et par écran (plus de fichier mais plus rapide à lire)

    Ou un Fichier XML
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Ok, merci Shai pour ces idées.
    Jusqu'à présent, avec la VCL, j'utilisais un fichier ressource ( .rc ) par langue avec les STRINGTABLE que je récupérai par un LoadString().

    Sur mac, il me semble que les ressources sont aussi utilisées mais il y a tellement longtemps que je n'ai plus développé pour mac que je ne me souviens bien plus comme c'est géré et j'ai du mal à trouver des infos sur le sujet...

    Thierry

  4. #4
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    Salut,
    j'ai pas personnellement essayé, mais tu peux peut être jeter un coup d'oeil sur le composant FMX.Types.TLang (http://docwiki.embarcadero.com/Libra...MX.Types.TLang) il me semble bien que ça pourrait résoudre ton problème de façon "élégante"...

    Sinon effectivement la solution proposée par Shai est rapide et simple...

  5. #5
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Salut
    et merci arkhamon mais je vais m'en tenir aux fichiers ini.
    En travaillant sur des fichiers, c'est + simple pour faire faire la traduction ( vu que c'est pas moi qui vais m'en charger ).
    J'ai quant même essayé le composant TLang pour voir ce qu'il était possible de faire, malheureusement, il faut en gérer un par dialogue, en plus, malgré son apparente facilité d'utilisation, cela ne fonctionnait pas vraiment, normalement on change la langue utilisée en modifiant la propriété Lang, mais ce n'était pas le cas, le français fonctionnait mais pas l'anglais j'ai essayé avec LoadFromFile, même combat mais à l'inverse, l'anglais fonctionnait mais pas le français.
    Il y a surement quelques chose qui m'a échappé mais je n'insiste pas vu que je ne trouve pas cela très pratique.
    Je ne vois qu'un avantage à utiliser TLang, c'est la facilité pour traduire les Textes des composants visuels, cela se fait trés rapidement et facilement avec le concepteur
    Je vais avoir beaucoup de messages à traduire, hors composants visuels, TLang ne sera pas vraiment pratique pour cela et c'est bien dommage.
    Thierry

  6. #6
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    ok je comprends.
    Il semble en effet que TLang ait une portée dnas la fiche où il est posé.
    Par contre, je te propose de regarder le fiormat XML comme le proposait Shai, ça offre plusieurs avantages :
    • c'est cross plateforme. Pas comme les INI qui sont spécifiques à Windows. Si un jour tu passes sous FMX pour MAC OS, tu devras tout recommencer (je le sais, je suis en plein dedans...)
    • le format XML est vachement structuré et les types TXMLDocumetn et IXMLNode sont assez simples à utiliser, et sont cross plateforme
    C'est peut être une piste assez intéressante à creuser...
    D'autant que comme les fichiers XML sont structurés ca facilite la lecture. Il y a la contrainte des balises, maeis tu peux adapter l'architecture de ton fichier XML à tes fenetres et tes objets en utilisant la méthode ClassName (je crois) qui te renvoie le nom de ton objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?xml version="1.0" encoding="UTF-8"?>
    <ListeFenetres>
      <Fenetre1>
        <Bouton1>
    		<FR>Ceci est el texte du bouton1</FR>
    		<EN>This is bouton1 s Caption</EN>
    		<DE>Es ist das bouton1 text<DE>
    	</Bouton1>
    	<Bouton2>
    		<FR>Ceci est le texte du bouton2</FR>
    		<EN>This is bouton2 s Caption</EN>
    		<DE>Es ist das bouton2 text<DE>
    	</Bouton2>
      </Fenetre1>
      <Fenetre2>
        <Label1>
    		<FR>Ceci est le texte du Label1</FR>
    		<EN>This is Label1 s Caption</EN>
    		<DE>Es ist das Label1 text<DE>
    	</Label1>
     
      </Fenetre2>
    </ListeFenetres>
    ou un truc de ce genre...

Discussions similaires

  1. Qu'est ce qu'un grand projet ?
    Par Geronimo dans le forum Débats sur le développement - Le Best Of
    Réponses: 62
    Dernier message: 04/04/2013, 14h52
  2. Aider un projet open source C++ à l'internationalisation
    Par DavidLord dans le forum wxWidgets
    Réponses: 2
    Dernier message: 03/01/2011, 21h59
  3. Réponses: 2
    Dernier message: 30/10/2009, 13h44
  4. Problème internationalisation projet Django
    Par jacquesdx dans le forum Django
    Réponses: 6
    Dernier message: 06/01/2009, 21h52
  5. Les fichiers d'un projet
    Par Manolo dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2002, 17h51

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