mozilla
您的搜索结果

    属性文件

     

        在脚本中,不能使用实体,用属性文件代替。

     

    属性

    Edit section

        当你在XUL文件中使用DTD文件是恰当的。然而,脚本不解析实体。也就是说,如果你希望在脚本中显示信息而且你不知道到底要显示什么,请使用属性文件

        一个属性文件包含一系列字符串。你可以在DTD文件旁边找到属性文件(.properties后缀)。属性按照以下语法定义 name=value。实例如下。

    notFoundAlert=No files were found matching the criteria.
    deleteAlert=Click OK to have all your files deleted.
    resultMessage=%2$S files found in the %1$S directory.
    

        上例中,属性文件包含桑属性,可以由脚本读取显示给用户。

    Stringbundles

    Edit section

       你可以写一段代码手动来读取属性,而在XUL中有一个 stringbundle 元素来帮你做。这个元素有一系列函数有属性文件中获取属性并得到本地化信息。这个元素有属性文件读取内容并为你建立一个属性列表。你可以通过名字来查找属性。

    <stringbundleset id="strbundles">
    <stringbundle id="strings" src="strings.properties"/>
    </stringbundleset>
    

        这个元素会从与该XUL文件系统的目录中读取名为 'strings.properties'的文件。像其他非显示元素一样你可以使用一个 stringbundleset 来包含所以的stringbundle

    stringbundle获取字符串

    Edit section

         stringbundle 元素有一系列方法。首先是 getString 用于脚本读取字符串。

    var strbundle = document.getElementById("strings");
    var nofilesfound=strbundle.getString("notFoundAlert");
    
    alert(nofilesfound);
    
    • 本例首先使用 id 获得字符串束的一个引用
    • 然后在属性文件中查找 'notFoundAlert' 字符串 getString() 函数返回字符串的值或 null (字符串不存在)。
    • 最后把职工文本显示在提示框里。

    文本格式

    Edit section

        getFormattedString()方法也根据名字从文本束中查找字符串,此外会按照格式控制代码 (如 %S) 将其后给出的数组内容替换入字符串。

    var dir = "/usr/local/document";
    var count = 10;
    
    var strbundle = document.getElementById("strings");
    var result = strbundle.getFormattedString("resultMessage", [ dir, count ]);
    
    alert(result);
    

        本例显示如下。

    10 files found in the /usr/local/document directory.

        你会注意到格式化代码 %1$S%2$S被使用,替换顺序也和在数组中的不同。格式化代码 %n$S 直接描述替换参数的位置。尽管在不同语言中词序可能不同通过 getFormattedString()描述的顺序可以被写入属性文件。

    非ASCII码的换码符

    Edit section

        (这可能不再正确:在 Localizing extension descriptions中说 “使用 UTF-8 编码(而非 BOM) 保证外文正确显示。” UTF-8 编码文本有效, 换码符同样有用。一些新想法的引入会更有用。)

        尽管大多数语言使用非ASCII字符集。属性文件只能使用ASCII字符集编制。然而,属性文件支持其他字符的换码形式: \uXXXX 这里的 XXXX 是字符码,因此,你的属性文件可以包含非ASCII字符,不过你需要把他们转换为换码形式。你可以使用 Sun's Java Development Kit (JDK)的 native2ascii 命令来完成它。

    Gecko 1.8.x (or later) 支持属性文件以 UTF-8编码。你可以直接写入非ASCII字符。


    下一章,我们将讨论 XBL,它用于定义元素的行为( behavior of an element.)

     

    « Previous Next »

      

     

     

    文档标签和贡献者

    此页面的贡献者有: ziyunfei, alzhu
    最后编辑者: ziyunfei,