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

Outils Delphi Discussion :

[Internationalisation] DKLang avec FMX - Berlin update 1


Sujet :

Outils Delphi

  1. #1
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    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 : 931
    Points : 1 909
    Points
    1 909
    Par défaut [Internationalisation] DKLang avec FMX - Berlin update 1
    Bonjour,

    Je n'arrive pas à utiliser DKLang, j'ai bien installé le package sans problème ( avec dklang240.dproj et dcldklang240.dproj ).

    Je crée un programme FMX tout simple, un bouton, un label sur la fiche principale et une combobox pour changer la langue. Je suis parti de leur exemple 'LocalFileStorage_FireMonkey_Mobile'

    Je pose le composant DKLanguageController sur la fiche principale et je sauvegarde le projet pour générer le fichier dklang. A partir de ce fichier dklang, je traduis les 3 textes du programme ( texte du label et bouton et le le titre de la fiche ) avec le programme DKLang Transaltion Editor et je sauvegarde la traduction dans le fichier French.lng que je mets dans le dossier 'Mes Documents'

    J'ai repris leur code d'exemple que voici :
    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
     
    procedure TForm1.cbLanguageChange(Sender: TObject);
      var iIndex: Integer;
      begin
        iIndex := cbLanguage.ItemIndex;
        if iIndex<0 then iIndex := 0; // When there's no valid selection in cbLanguage we use the default language (Index=0)
        LangManager.LanguageID := LangManager.LanguageIDs[iIndex];
      end;
     
     
    procedure TForm1.FormCreate(Sender: TObject);
      var i: Integer;
      begin
         // Scan for language files in the local documents directory and register them in the LangManager object
        LangManager.ScanForLangFiles(TPath.GetDocumentsPath, '*.lng', False);
     
         // Fill cbLanguage with available languages
        for i := 0 to LangManager.LanguageCount-1 do cbLanguage.Items.Add(LangManager.LanguageNativeNames[i]);
         // Index=0 always means the default language
        cbLanguage.ItemIndex := 0;
    end;
    J’exécute le programme et je retrouve bien la langue English ( par défaut ) et la langue 'français' dans la combobox, je choisis 'Français' et malheureusement, rien ne se passe... Aucun des 3 textes de la fiche n'est traduit en français...

    J'en perds mon latin, DKLang a l'air tout simple d'utilisation mais je n'arrive pas à voir pourquoi cela ne fonctionne pas... J'ai du certainement oublié quelque chose...

    Voici le contenu de french.lng :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SourceLANGID=1033
    LANGID=1036
    Generator=DKLang Translation Editor v3.0
    LastModified=2016-11-07 14:56:53
     
    [Form1]
    00000001=Fiche Principale
    00000002=Ceci est un essai
    00000003=Démarrer
     
    [$CONSTANTS]
    Merci pour votre aide !

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    pourquoi mettre le fichier lng dans mes documents ?

    Je le mets au niveau de l'exe et ça fonctionne très bien ici

  3. #3
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    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 : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Citation Envoyé par Papy214 Voir le message
    pourquoi mettre le fichier lng dans mes documents ?

    Je le mets au niveau de l'exe et ça fonctionne très bien ici
    Pour les applications mobiles, en règle général, on mets les documents dans le dossier Documents du paquet.

    J'ai fais un essai en mettant le fichier .lng dans le dossier de l’exécutable et ça fonctionne... Apparemment, il n'est pas prévu d'utiliser les fichiers lng en dehors du chemin de l'exe.

    Merci !

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    J'ai fais un essai en mettant le fichier .lng dans le dossier de l’exécutable et ça fonctionne... Apparemment, il n'est pas prévu d'utiliser les fichiers lng en dehors du chemin de l'exe.
    il y a longtemps que je n'ai pas eu à traduire d'application mais à ma souvenance on peut mettre les fichiers lng ailleurs que dans le même répertoire que l'exécutable Bon, comme cela fait longtemps c'est peut être une question de version. Si j'ai le temps j'essaierai de retrouver mes manips et ferai un test Berlin, comme cela a été fait sur un autre poste avec XE5, cela demande plus qu'un peu de temps

    Citation Envoyé par free07 Voir le message
    Pour les applications mobiles, en règle général, on mets les documents dans le dossier Documents du paquet.
    on peut aussi mettre les traductions en ressources
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    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 : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,


    il y a longtemps que je n'ai pas eu à traduire d'application mais à ma souvenance on peut mettre les fichiers lng ailleurs que dans le même répertoire que l'exécutable Bon, comme cela fait longtemps c'est peut être une question de version. Si j'ai le temps j'essaierai de retrouver mes manips et ferai un test Berlin, comme cela a été fait sur un autre poste avec XE5, cela demande plus qu'un peu de temps
    Oui, je suis aussi étonné que cela ne fonctionne pas, c'est d'ailleurs pour cela que je n'ai pas pensé à ce genre de problème, en fait, si on met le fichier lng ailleurs, il le trouve bien car les langues sont bien affichées dans la combobox, par contre, la traduction ne se fait pas, pour la traduction, il ne trouve pas le fichier s'il n'est pas dans le chemin de l'exe, c'est du moins ce que j'ai constaté.

    Citation Envoyé par SergioMaster Voir le message
    on peut aussi mettre les traductions en ressources
    Oui, c'est vrai mais pour les applications mobiles, je préfère le choix du fichier, c'est juste pour ne pas surcharger l’exécutable, je crains que le lancement du programme sur un mobile soit plus long avec la traduction en ressource, il faudrait que je fasse l'essai pour vérifier.

  6. #6
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    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 : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    En fait, cela fonctionne très bien sous iOS en déployant les fichiers langues dans Startup\Documents\ et dans assets\internal\ pour Android

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    ce qui voudrait dire qu'il n'y a aucune raison que cela ne fonctionne pas avec des répertoires autres que le répertoire de l'application pour windows, sauf bien sûr si c'est codé comme cela dans DKLang , il faudrait étudier ça dans le source
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Problème avec la fonction UPDATE
    Par JohanProg dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 16/10/2006, 12h56
  2. Requête et sous requête avec SELECT et UPDATE
    Par Véronique75ca dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 29/06/2006, 21h25
  3. [SQL] problème avec ma requête UPDATE
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/04/2006, 11h26
  4. Pb avec ON DELETE/UPDATE CASCADE
    Par trotters213 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 09/03/2005, 11h55
  5. tri avec l'ordre UPDATE et incrementation d'une colonne
    Par Staron dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/02/2004, 08h48

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