Friday, 10 April 2020
 
 
Comment adapter la taille d'une fenêtre de préférences à toutes les langues Print
Written by Goofy   
Monday, 04 June 2007

Comment adapter la taille d'une fenêtre de préférences à toutes les langues


Le problème

Les fenêtres de dialogue de type prefwindow ne sont pas redimensionnnables (voir Bugzilla #122345), il arrive donc fréquemment que la taille fixée pour la fenêtre soit impeccable pour la langue anglaise mais pas  fameuse Undecidedpour d'autres langues, une fois la traduction effectuée.
Voici un exemple :

Voici la fenêtre de dialogue d'origine pour en-US

English language pref dialog
Voici la même en version française. Une des phrases est plus longue que sa source, si bien que le dernier mot et le cadre sont tristement coupés...French pref dialog trimmed

Une solution simple

Il vous suffit d'ajouter à votre prefwindow un attribut style et de transformer la valeur de largeur (width) en entité localisée . Les traducteurs détermineront l avaleur optimale à donner à l'entité dans leur fichier de locale, après quelques tests ils ajusteront la taille à la longueur de la phrase traduite dans leur langue.

Voici un exemple de code :

dans prefs.xul
<!DOCTYPE prefwindow SYSTEM "chrome://attachmentextractor/locale/attachmentextractor-prefs.dtd" >
<prefwindow type="prefwindow"
id="attachmentextractorPreferences"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
windowtype="attachmentextractor:preferences"
title="&attachmentextractor.settings.windowtitle;"
style = "width:&attachmentextractor.settings.width;; height: 55em;">

dans attachmentextractor-prefs.dtd de la locale en-US
<!ENTITY attachmentextractor.settings.width "80ex">
80 ex ne suffisent pas pour la langue française, en mettant  "100ex" dans la locale fr-FR, la phrase est maintenant complète Cool

French size OK

Note à propos des unités

La largeur (ou la hauteur) peut être précisée en diverses unités, généralement en px ou em, mais il semble qu'il soit recommandé d'utiliser des ex. Voir cet article de Mozilla Knowledge Base


sgoof
un minituto de Goofy

 
 
Top! Top!