1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
---
title: Plik własności
slug: Mozilla/Tech/XUL/Kurs_XUL/Plik_własności
tags:
- Kurs_XUL
- Lokalizacja
- Przewodniki
- Strony_wymagające_dopracowania
- Wszystkie_kategorie
- XUL
translation_of: Archive/Mozilla/XUL/Tutorial/Property_Files
---
<p></p><div class="prevnext" style="text-align: right;">
<p><a href="/pl/docs/Kurs_XUL:Lokalizacja" style="float: left;">« Poprzedni</a><a href="/pl/docs/Kurs_XUL:Wprowadzenie_do_XBL">Następny »</a></p>
</div> W skryptach nie można używać encji. Zamiast nich stosuje się pliki własności.<p></p>
<h3 id="W.C5.82asno.C5.9Bci" name="W.C5.82asno.C5.9Bci">Własności</h3>
<p>Z plików DTD korzysta się przy tekstach wyświetlanych z pliku XUL. Skrypty nie są jednak parsowane pod względem encji. Dodatkowo, może zajść potrzeba wyświetlenia wiadomości wygenerowanej ze skryptu, jeśli np. nie znamy dokładnego tekstu, jaki ma zostać wyświetlony. W tym celu stosuje się właśnie pliki własności.</p>
<p>Plik własności zawiera zestaw ciągów znaków. Pliki własności znajdują się obok plików DTD, mają rozszerzenie .properties. Własności w plikach deklaruje się za pomocą składni <strong>nazwa=wartość</strong>. Przykład przedstawiono poniżej.</p>
<pre>notFoundAlert=Nie znaleziono plików wg wskazanych kryteriów.
deleteAlert=Kliknij OK, aby usunąć wszystkie pliki.
resultMessage=%2$S plików znaleziono w katalogu %1$S.
</pre>
<p>Powyższy przykładowy plik zawiera dwie własności. Skrypt może je odczytać i wyświetlić użytkownikowi.</p>
<h3 id="Paczki_.C5.82a.C5.84cuch.C3.B3w_znak.C3.B3w" name="Paczki_.C5.82a.C5.84cuch.C3.B3w_znak.C3.B3w">Paczki łańcuchów znaków</h3>
<p>Kod do odczytania własności można napisać samodzielnie albo skorzystać z dostarczonego przez XUL elementu <code><code><a href="/pl/docs/Mozilla/Tech/XUL/stringbundle" title="stringbundle">stringbundle</a></code></code>. Element ten zawiera szereg funkcji, które można wykorzystać do wydobycia ciągów znaków z pliku własności oraz do pobrania innych informacji lokalizacyjnych. Element ten czyta zawartość pliku własności i tworzy listę własności. Dostęp do tych własności możliwy jest po ich nazwie.</p>
<pre><stringbundleset id="strbundles">
<stringbundle id="strings" src="strings.properties"/>
</stringbundleset>
</pre>
<p>Dołączenie tego elementu spowoduje odczytanie własności z pliku 'strings.properties' znajdującego się w tym samym katalogu, co plik XUL. Do odczytu plików zlokalizowanych należy korzystać z adresów URL<em>chrome</em>.</p>
<h4 id="Pobieranie_.C5.82a.C5.84cucha_znak.C3.B3w_z_paczki" name="Pobieranie_.C5.82a.C5.84cucha_znak.C3.B3w_z_paczki">Pobieranie łańcucha znaków z paczki</h4>
<p>Element <code><code><a href="/pl/docs/Mozilla/Tech/XUL/stringbundle" title="stringbundle">stringbundle</a></code></code> posiada szereg metod. Jedną z nich jest <code>getString</code>, której można użyć do odczytania z poziomu skryptu ciągu znaków z zestawu.</p>
<pre>var strbundle=document.getElementById("strings");
var nofilesfound=strbundle.getString("notFoundAlert");
alert(nofilesfound);
</pre>
<ul>
<li>W powyższym przykładzie pobieramy najpierw referencję do zestawu ciągów za pomocą jego <code>id</code>.</li>
<li>Następnie odszukujemy w pliku własności ciąg 'notFoundAlert'. Funkcja <code>getString()</code> zwraca wartość ciągu lub null, jeśli ciąg nie istnieje.</li>
<li>Na końcu wyświetlamy odszukany ciąg w oknie powiadomienia.</li>
</ul>
<h4 id="Formatowanie_tekstu" name="Formatowanie_tekstu">Formatowanie tekstu</h4>
<p>Kolejną metodą jest <code>getFormattedString()</code>. Ta metoda także pobiera łańcuch znaków nazwy danego klucza z paczki. Dodatkowo każde wystąpienie formatowania code (np. <code>%S</code>) jest zastępowane przez następny element z paczki.</p>
<pre>var dir = "/usr/local/document";
var count = 10;
var strbundle = document.getElementById("strings");
var result = strbundle.getFormattedString("resultMessage", [ dir, count ]);
alert(result);
</pre>
<p>Ten przykład wyświetli następującą wiadomość w okienku ostrzeżenia.</p>
<pre>10 files found in the /usr/local/document directory.
</pre>
<p>You will notice the formatting codes <code>%1$S</code> and <code>%2$S</code> is used, and replaced different order in the array. Formatting code %<em>n</em>$S is specify the position of corresponding parameter directly. Although the word order is not the same in all the languages, by using <code>getFormattedString()</code> the specification of the order can be put out the property files.</p>
<h3 id="Znaki_ucieczki_non-ASCII" name="Znaki_ucieczki_non-ASCII">Znaki ucieczki non-ASCII</h3>
<p>Although many languages need non-ASCII characters, property files should be written using only ASCII characters. However, property files support other characters using escape sequences of the form: <code>\uXXXX</code> where XXXX is a character code. Therefore, if your property files contain non-ASCII characters, you should convert these to 'escaped-unicode' format. To do this, you can use native2ascii command line utility bundled with Sun's Java Development Kit (JDK).</p>
<p>W następnym artykule <a href="pl/Kurs_XUL/Wprowadzenie_do_XBL">przyjrzymy się językowi XBL</a>, którego możemy użyć do zdefiniowania zachowania elementu.</p>
<p></p><div class="prevnext" style="text-align: right;">
<p><a href="/pl/docs/Kurs_XUL:Lokalizacja" style="float: left;">« Poprzedni</a><a href="/pl/docs/Kurs_XUL:Wprowadzenie_do_XBL">Następny »</a></p>
</div><p></p>
|