Outils pour utilisateurs

Outils du site


public:bug_changement_langue_64bits

Bug de changement de langue 64bits

Cette page décrit le bug de changement de langue de TXM en version 64bits, et sa méthode de résolution. Le bug est corrigé pour la version 0.7.5. Ticket #203

Objectif

  • Déterminer comment l'application gère les préférences linguistiques
  • Analyser le mécanisme de changement de langue au redémarrage de l'application
  • Découvrir pourquoi le changement n'est pas effectif sous architecture 64 bits
  • Corriger le problème

Diagnostic

Le changement de langue s'effectue depuis le menu “Fichier”/“Changer la langue”. Une liste déroulante permet de choisir la langue (anglais, français ou russe) et de valider le changement. Lors de la validation, l'application redémarre mais la nouvelle langue n'est pas appliquée. Pour l'obtenir il est alors nécessaire de fermer l'application et de la rouvrir.

Paramètres de l'application

TXM utilise des paramètres qui lui sont passés:

  • par ligne de commande
  • par le fichier de configuration TXM.ini

La ligne de commande fournit l'emplacement du fichier TXM.ini et des répertoires propres à TXM créés à l'installation. Ses arguments sont prioritaires sur le fichier TXM.ini

Le fichier TXM.ini contient les paramètres de l'application RCP et contenait avant la résolution du bug la valeur de la langue sous la forme: “-nl XX” avec XX la valeur de la locale (fr, en…).

Changement de langue

La classe concernée est “LanguageSwitchHandler” issue du package “org.txm.rcpapplication.utils”.

Lors d'un changement de langue, la valeur de la locale de TXM.ini est modifiée en conséquence. L'application est redémarré par la suite.

Problème en 64bits

On constate que le fichier TXM.ini est bien modifié mais il n'est pas pris en compte au redémarrage de l'application.

Résolution

Passage de l'argument locale en ligne de commande (échec)

Cette méthode est basée sur sur ce ticket Eclipse. Elle consiste à modifier les paramètres de l'application RCP à son redémarrage. On fournit en plus la valeur de la locale.

Elle ne permet cependant pas de résoudre le problème, la modification n'est pas prise en compte.

Utilisation du fichier de configuration de l'application RCP

TXM utilise un fichier config.ini interne à Eclipse RCP. Il est automatiquement chargé au démarrage et redémarrage de l'application.

La solution est d'y ajouter un champ “osgi.nl=XX” avec XX la valeur de la locale. Cette méthode est fonctionnelle.

En conséquence le fichier TXM.ini (contenant les arguments passés à l'application) ne contient plus “-nl XX”.

Recette

NK: afin de valider la méthode de résolution, elle a été testée avec succès sur ces différents systèmes:

  • Windows XP x32
  • Linux x64
public/bug_changement_langue_64bits.txt · Dernière modification : 20/12/2013 09:55 de matthieu.decorde@ens-lyon.fr