如何根据不同语言调整 xul 首选项对话框的尺寸?
问题分析
在 Bugzilla #122345 里面有提到选项对话框用户是无法调整其大小的,因此有时候会出现在英语中对话框的大小很正常,但在翻译之后的其他语言中却不正常 的情况。举个简单的例子:
这是原来 en-US 下面的对话框 |
这是法语下面具有一样大小的对话框。图中红色方框内的句子比较长,因此右侧超出对话框右边界的最后一个单词被不幸的截断了.. |
简单的解决办法
重要提示:除了下面谈到的方法之外还有一个 teo 提出的针对高级编程人员的方法,有兴趣的朋友请参见这个帖子 http://www.babelzilla.org/forum/index.php?showtopic=3229
您只要在 pref.xul 文件中为 prefwindow 标签添加一个 style 属性并设置 width 属性值为可以本地化的实体名。翻译人员则需要在他们的语言包内为该实体设定一个最佳值,并通过测试以便检查该大小值是否完全适合他们的语言。请看下面例子中的代码:
在 prefs.xul 文件中
<!DOCTYPE prefwindow SYSTEM "chrome://attachmentextractor/locale/attachmentextractor-prefs.dtd" >在 en-US 语言包的 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;">
<!ENTITY attachmentextractor.settings.width "80ex">
从第一个例子可以看出 "80ex" 的值对于法语的显示来说是不够的,我们需要在 fr-FR 语言包内将值设为 "100ex" 才能完全显示整个句子。