如何根据不同语言调整 xul 首选项对话框的尺寸?

如何根据不同语言调整 xul 首选项对话框的尺寸?

问题分析

  在 Bugzilla #122345 里面有提到选项对话框用户是无法调整其大小的,因此有时候会出现在英语中对话框的大小很正常,但在翻译之后的其他语言中却不正常 的情况。Undecided
  举个简单的例子:

这是原来 en-US 下面的对话框

English language pref dialog
这是法语下面具有一样大小的对话框。图中红色方框内的句子比较长,因此右侧超出对话框右边界的最后一个单词被不幸的截断了..French pref dialog trimmed

简单的解决办法

  重要提示:除了下面谈到的方法之外还有一个 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" >
<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;">

在 en-US 语言包的 attachmentextractor-prefs.dtd 文件中
<!ENTITY attachmentextractor.settings.width "80ex">
  从第一个例子可以看出 "80ex" 的值对于法语的显示来说是不够的,我们需要在 fr-FR 语言包内将值设为 "100ex" 才能完全显示整个句子。 Cool

French size OK

关于单位

  Width 或 height 值可以设为其他不同的单位,如 pxem,但我们推荐您使用 ex关于这点请参见 Mozilla Knowledge Base 的相关文章


posted @ 2011-04-11 11:49  许明吉博客  阅读(517)  评论(0编辑  收藏  举报