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

Lazarus Pascal Discussion :

[0.9.29] Réactualiser la langue (fr/us) d'une Form


Sujet :

Lazarus Pascal

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [0.9.29] Réactualiser la langue (fr/us) d'une Form
    Bonjour,

    J'ai besoin d'utiliser une Form bilingue. Classiquement, j'emploie les fichiers project1.fr.po et project1.en.po. Je peux donc afficher ma Form1 en anglais ou en français.

    Voici un extrait du project1.fr.po généré [i18n activé]
    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
    msgid ""
    msgstr "Content-Type: text/plain; charset=UTF-8"
     
    #: form1.rsbtvalidcaption
    msgctxt "form1.rsbtvalidcaption"
    msgid "Yes"
    msgstr "Oui"
     
     
    #: TFORM1.BUTTON1.CAPTION
    msgctxt "TFORM1.BUTTON1.CAPTION"
    msgid "Yes"
    msgstr "Oui"
     
    #: TFORM1.BUTTON2.CAPTION
    msgctxt "TFORM1.BUTTON2.CAPTION"
    msgid "Language"
    msgstr "Langue"
    Dans le code d'unit1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    implementation
    ResourceString
     rsBTvalidCaption = 'Yes';
    Mon problème est le suivant : je veux changer la langue de ma Form1 sans "la fermer puis la réouvrir" afin de ne pas être obligé de sauver les données "actives".

    Ce code fonctionne correctement...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      gsFallbackLang :='en';
      gsLang:='en_US';
      Change_Language(); //Fonction Perso
      Button1.Caption:= rsBTvalidCaption;
    end;
    ... mais m'oblige à déclarer rsBTvalidCaption alors que #: TFORM1.BUTTON1.CAPTION est généré automatiquement par défaut sans déclaration de ResourceString.

    Mais comment l'appelle-t-on ?
    Button1.Caption:= TFORM1.BUTTON1.CAPTION ne fonctionne évidemment pas.

    A moins que quelqu'un(e) ne connaisse la méthode pour réaffecter dynamiquement les "variables" du fichier .po (une fois relu) dans les Forms ouvertes... ce qui serait très pratique notamment pour les traductions des Dialogs à partir de lazarus\lcl\languages\lclstrconsts.xx.po (toujours sans fermer les Forms ouvertes).

    Merci. Cordialement.
    Gilles
    Dernière modification par Invité ; 01/07/2010 à 11h23. Motif: Correction de nom de fichiers

Discussions similaires

  1. Détecter langue ou encodage d'une variable
    Par voyageurdumonde dans le forum Langage
    Réponses: 2
    Dernier message: 18/09/2010, 18h09
  2. langue de clavier pour une application
    Par khadija24 dans le forum Windows XP
    Réponses: 1
    Dernier message: 03/09/2010, 22h04
  3. Réponses: 2
    Dernier message: 14/05/2009, 17h20
  4. Réponses: 2
    Dernier message: 01/06/2007, 17h24
  5. Réponses: 2
    Dernier message: 29/03/2006, 14h29

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