diff options
| author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
|---|---|---|
| committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
| commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
| tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/pl/mozilla/tech/xul/kurs_xul/lokalizacja | |
| parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
| download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip | |
initial commit
Diffstat (limited to 'files/pl/mozilla/tech/xul/kurs_xul/lokalizacja')
| -rw-r--r-- | files/pl/mozilla/tech/xul/kurs_xul/lokalizacja/index.html | 310 |
1 files changed, 310 insertions, 0 deletions
diff --git a/files/pl/mozilla/tech/xul/kurs_xul/lokalizacja/index.html b/files/pl/mozilla/tech/xul/kurs_xul/lokalizacja/index.html new file mode 100644 index 0000000000..f94a45e141 --- /dev/null +++ b/files/pl/mozilla/tech/xul/kurs_xul/lokalizacja/index.html @@ -0,0 +1,310 @@ +--- +title: Lokalizacja +slug: Mozilla/Tech/XUL/Kurs_XUL/Lokalizacja +tags: + - Kurs_XUL + - Lokalizacja + - Przewodniki + - XUL +translation_of: Archive/Mozilla/XUL/Tutorial/Localization +--- +<p></p><div class="prevnext" style="text-align: right;"> + <p><a href="/pl/docs/Kurs_XUL:Tworzenie_motywów" style="float: left;">« Poprzedni</a><a href="/pl/docs/Kurs_XUL:Plik_własności">Następny »</a></p> +</div><p></p> + +<p>XUL i XML dostarczają encje, które są wygodnym sposobem stosowanym w plikach lokalizacji.</p> + +<h2 id="Encje" name="Encje">Encje</h2> + +<p>Wiele aplikacji jest budowana w sposób określony i umożliwiający łatwe przetłumaczenie interfejsu aplikacji na inny język. Zazwyczaj, tabele wraz ze stringami są tworzone dla każdego języka. Zamiast trudnego tekstu kodu, w każdej części tekstu aplikacji, jest referencja do tabeli typu string. <a href="pl/XML">XML</a> dostarcza encje, które możemy zastosować dla wspomnianego celu.</p> + +<p>Powinieneś już dobrze znać encje, jeśli piszesz w <a href="pl/HTML">HTML</a>. Kody <code>&lt;</code> i <code>&gt;</code> są przykładami encji, które możemy użyć w miejsce znaku mniejszości (<) lub większości (>), zamiast jego formy w postaci tekstowej. Składnia języka XML, pozwala nam na deklaracje własnych encji. Możemy ich użyć, w taki sposób, że encja jest zamieniana z tą wartością, która jest prostym tekstem. Encje możemy używać zawsze, kiedy są tekstem, który zawiera wartość atrybutów. Przykład poniżej demonstruje użycie encji w przycisku.</p> + +<pre><button label="&findLabel;"/> +</pre> + +<p>Tekst, który pojawi się jako etykieta (<code>label</code>), będzie wyświetlała wartość, jaka jest zawarta w encji <code>&findLabel</code>. Plik jest tworzony z powstrzymanej encji zadeklarowanej dla każdego obsługiwanego języka. W języku angielskim zadeklarowanej encji <code>&findLabel</code> będzie przydzielony tekst <code>Znajdź</code>.</p> + +<h2 id="Pliki_DTD" name="Pliki_DTD">Pliki DTD</h2> + +<p>Encje są zadeklarowane w plikach DTD ( + <i>Document Type Declaration</i> + ). Zazwyczaj tego typu pliki są używane do deklaracji składni i semantyki poszczególnych plików XML, lecz także umożliwiają deklarację encji. W Mozilli w systemie chrome, możesz zmaleźć pliki DTD są umieszczone w podkatalogu <tt>locales</tt>. Normalnie będzie tam jeden plik DTD (z rozszerzeniem <tt>.dtd</tt>) na jeden plik XUL.</p> + +<p>Jeśli widzisz katalog chrome, powinieneś się przyjrzeć archiwum w Twoim języku (en-US.jar jest domyślnym językiem dla angielskiego). Mamy pliki lokalizacji w kilku językach (jak w przykładzie) m.in. w angielskim (en-US) i francuskim (fr). Wewnątrz tych archiwów, będą się znajdowały pliki, które trzymają zlokalizowany tekst dla każdego okna. Struktura archiwów jest bardzo podobna do struktury katalogów dla <a href="pl/Kurs_XUL/Tworzenie_motyw%c3%b3w">motywu</a>.</p> + +<p>Wewnątrz archiwów, połóż swój plik DTD, w którym zadeklarujesz encje. Zazwyczaj tworzymy jeden plik DTD dla każdego pliku XUL. Posiadają one taką samą nazwę pliku, jedynie rozszerzenie pliku jest inne (<code>.dtd</code>), czyli w naszym przykładowym oknie <code>Znajdź pliki</code>, będzie potrzebny plik o nazwie <code>findfile.dtd</code>.</p> + +<p>Dla plików nieinstalowanych w chrome, możemy tylko umieścić plik DTD do tego samego katalogu co plik XUL.</p> + +<p>Raz możesz utworzyć plik DTD dla twojego XUL, będziesz potrzebował dodać do plik XUL, który sygnalizuje, co chcesz do użycia pliku DTD. W przeciwnym razie błędy będą się zdarzać jako, że nie można znaleźć encji. Zrób to, dodaj linię pochodzącą z najbliższego miejsca pliku XUL:</p> + +<pre><!DOCTYPE window SYSTEM "chrome://findfile/locale/findfile.dtd"> +</pre> + +<p>Linia określa, co mamy zasygnalizować w użyciu DTD dla pliku. W tym przypadku, deklarujemy co chcemy użyć w pliku DTD <code>findfile.dtd</code>. Linię tą umieszczamy zawsze za elementem <code><code><a href="/pl/docs/Mozilla/Tech/XUL/window" title="window">window</a></code></code>.</p> + +<h2 id="Deklaracja_encji" name="Deklaracja_encji">Deklaracja encji</h2> + +<p>Encję możemy zadeklarować przy użyciu prostej składni, przykład znajduje się poniżej:</p> + +<pre><!ENTITY findLabel "Znajdź"> +</pre> + +<p>Przykład tworzy encję o nazwie <code>findLabel</code> i wartości <code>Znajdź</code>. Oznacza to, że gdziekolwiek zawarty zostanie tekst <code>&findLabel</code> w pliku XUL, to będzie on zastąpiony tekstem <code>Znajdź</code>. W pliku DTD dla innych wersji językowych, możemy określić wpis w naszym języku, co pozwoli na użycie go zamiast tu zdefiniowanego. Uwaga, jest to deklaracja encji, w której nie ma kończącego znaku slash.</p> + +<p>Na przykład, następny tekst:</p> + +<pre><description value="&findLabel;"/> +</pre> + +<p>Jest tłumaczony jako:</p> + +<pre><description value="Znajdź"/> +</pre> + +<p>Możesz zadeklarować encje dla każdej etykiety (<code>label</code>) lub łańcucha znakowego, które zostaną zadeklarowane w Twoim interfejsie. Powinieneś nie mieć bezpośrednio wyświetlonego tekstu w pliku XUL dla wszystkich.</p> + +<p>Nadając encji użycie tekstu etykiety, powinieneś użyć dla niej wartość, która byłaby inna w innym języku. Przykład <a href="pl/Kurs_XUL/Skr%c3%b3ty_klawiaturowe">kluczy dostępu i skrótów klawiaturowych</a>.</p> + +<pre class="eval"> <b>XUL</b> + <menuitem label="&undo.label;" accesskey="&undo.key;"/> + <b>DTD</b> + <!ENTITY undo.label "Undo"> + <!ENTITY undo.key "u"> +</pre> + +<p>W przykładzie powyżej użyto dwóch encji, jednej dla etykiety 'Undo' dla pozycji znajdującej się w menu i drugiej dla klucza dostępu.</p> + +<div class="highlight"> +<h2 id="Zmieniamy_przyk.C5.82ad_.22Znajd.C5.BA_pliki.22" name="Zmieniamy_przyk.C5.82ad_.22Znajd.C5.BA_pliki.22">Zmieniamy przykład "<code>Znajdź pliki</code>"</h2> + +<p>Zastanówmy się w jaki sposób możemy wszystko ułożyć w oknie dialogowym <code>Znajdź pliki</code>, tak aby został zastosowany plik DTD dla wszystkich łańcuchów znakowych. Encje w pliku XUL są pokazane poniżej w kolorze czerwonym.</p> + +<pre class="eval"><?xml version="1.0"?> + +<?xml-stylesheet href="<a class="external" rel="freelink">chrome://global/skin/</a>" type="text/css"?> +<?xml-stylesheet href="findfile.css" type="text/css"?> + +<span class="highlightred"><!DOCTYPE window SYSTEM "<a class="external" rel="freelink">chrome://findfile/locale/findfile.dtd</a>"></span> + +<window + id="findfile-window" + title="<span class="highlightred">&findWindow.title;</span>" + persist="screenX screenY width height" + orient="horizontal" + onload="initSearchList()" + xmlns="<span class="nowiki">http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul</span>"> + +<script src="findfile.js"/> + +<popupset> + <menupopup id="editpopup"> + <menuitem label="<span class="highlightred">&cutCmd.label;</span>" accesskey="<span class="highlightred">&cutCmd.accesskey;</span>"/> + <menuitem label="<span class="highlightred">&copyCmd.label;</span>" accesskey="<span class="highlightred">&copyCmd.accesskey;</span>"/> + <menuitem label="<span class="highlightred">&pasteCmd.label;</span>" accesskey="<span class="highlightred">&pasteCmd.accesskey;</span>" disabled="true"/> + </menupopup> +</popupset> + +<keyset> + <key id="cut_cmd" modifiers="accel" key="<span class="highlightred">&cutCmd.commandkey;</span>"/> + <key id="copy_cmd" modifiers="accel" key="<span class="highlightred">&copyCmd.commandkey;</span>"/> + <key id="paste_cmd" modifiers="accel" key="<span class="highlightred">&pasteCmd.commandkey;</span>"/> + <key id="close_cmd" keycode="VK_ESCAPE" oncommand="window.close();"/> +</keyset> + +<vbox flex="1"> + + <toolbox> + + <menubar id="findfiles-menubar"> + <menu id="file-menu" label="<span class="highlightred">&fileMenu.label;</span>" + accesskey="<span class="highlightred">&fileMenu.accesskey;</span>"> + <menupopup id="file-popup"> + <menuitem label="<span class="highlightred">&openCmd.label;</span>" + accesskey="<span class="highlightred">&openCmd.accesskey;</span>"/> + <menuitem label="<span class="highlightred">&saveCmd.label;</span>" + accesskey="<span class="highlightred">&saveCmd.accesskey;</span>"/> + <menuseparator/> + <menuitem label="<span class="highlightred">&closeCmd.label;</span>" + accesskey="<span class="highlightred">&closeCmd.accesskey;" key="close_cmd" oncommand="window.close();</span>"/> + </menupopup> + </menu> + <menu id="edit-menu" label="<span class="highlightred">&editMenu.label;</span>" + accesskey="<span class="highlightred">&editMenu.accesskey;</span>"> + <menupopup id="edit-popup"> + <menuitem label="<span class="highlightred">&cutCmd.label;</span>" + accesskey="<span class="highlightred">&cutCmd.accesskey;</span>" key="cut_cmd"/> + <menuitem label="<span class="highlightred">&copyCmd.label;</span>" + accesskey="<span class="highlightred">&copyCmd.accesskey;</span>" key="copy_cmd"/> + <menuitem label="<span class="highlightred">&pasteCmd.label;</span>" + accesskey="<span class="highlightred">&pasteCmd.accesskey;</span>" key="paste_cmd" disabled="true"/> + </menupopup> + </menu> + </menubar> + + <toolbar id="findfiles-toolbar"> + <toolbarbutton id="opensearch" label="<span class="highlightred">&openCmdToolbar.label;</span>"/> + <toolbarbutton id="savesearch" label="<span class="highlightred">&saveCmdToolbar.label;</span>"/> + </toolbar> + </toolbox> + + <tabbox> + <tabs> + <tab label="<span class="highlightred">&searchTab;</span>" selected="true"/> + <tab label="<span class="highlightred">&optionsTab;</span>"/> + </tabs> + + <tabpanels> + + <tabpanel id="searchpanel" orient="vertical" context="editpopup"> + + <description> + <span class="highlightred">&findDescription;</span> + </description> + + <spacer class="titlespace"/> + + <groupbox orient="horizontal"> + <caption label="<span class="highlightred">&findCriteria;</span>"/> + + <menulist id="searchtype"> + <menupopup> + <menuitem label="<span class="highlightred">&type.name;</span>"/> + <menuitem label="<span class="highlightred">&type.size;</span>"/> + <menuitem label="<span class="highlightred">&type.date;</span>"/> + </menupopup> + </menulist> + <spacer class="springspace"/> + <menulist id="searchmode"> + <menupopup> + <menuitem label="<span class="highlightred">&mode.is;</span>"/> + <menuitem label="<span class="highlightred">&mode.isnot;</span>"/> + </menupopup> + </menulist> + <spacer class="springspace"/> + + <menulist id="find-text" flex="1" + editable="true" + datasources="<a class="external" rel="freelink">file:///mozilla/recents.rdf</a>" + ref="<span class="nowiki">http://www.xulplanet.com/rdf/recent/all</span>"> + <template> + <menupopup> + <menuitem label="<span class="nowiki">rdf:http://www.xulplanet.com/rdf/recent#Label</span>" uri="rdf:*"/> + </menupopup> + </template> + </menulist> + + </groupbox> + + </tabpanel> + + <tabpanel id="optionspanel" orient="vertical"> + <checkbox id="casecheck" label="<span class="highlightred">&casesensitive;</span>"/> + <checkbox id="wordscheck" label="<span class="highlightred">&matchfilename;</span>"/> + </tabpanel> + + </tabpanels> + </tabbox> + + <tree id="results" style="display: none;" flex="1"> + <treecols> + <treecol id="name" label="<span class="highlightred">&results.filename;</span>" flex="1"/> + <treecol id="location" label="<span class="highlightred">&results.location;</span>" flex="2"/> + <treecol id="size" label="<span class="highlightred">&results.size;</span>" flex="1"/> + </treecols> + + <treechildren> + <treeitem> + <treerow> + <treecell label="mozilla"/> + <treecell label="/usr/local"/> + <treecell label="<span class="highlightred">&bytes.before;</span>2520<span class="highlightred">&bytes.after;</span>"/> + </treerow> + </treeitem> + </treechildren> + </tree> + + <splitter id="splitbar" resizeafter="grow" style="display: none;"/> + + <spacer class="titlespace"/> + + <hbox> + <progressmeter id="progmeter" value="50%" style="display: none;"/> + <spacer flex="1"/> + <button id="find-button" label="<span class="highlightred">&button.find;</span>" + oncommand="doFind()"/> + <button id="cancel-button" label="<span class="highlightred">&button.cancel;</span>" + oncommand="window.close();"/> + </hbox> +</vbox> + +</window> +</pre> + +<p>Każdy łańcuch tekstowy został zastąpiony poprzez odwołanie się do odpowiedniej encji. Plik DTD został umieszczony zaraz na początku pliku XUL. Każdą encję, którą dodamy, powinniśmy zadeklarować w pliku DTD. Okno nie powinno zostać wyświetlone, jeśli encja będzie umieszczona w pliku XUL, a nie została zadeklarowana.</p> + +<p>Uwaga: nazwa encji nie jest ważna. W przykładzie powyżej, słowa w encjach zostały oddzielone kropką. Nie musimy tego robić. Nazwy encji tutaj, są podobne do przyjętej konwencji kodu jakiej używa Mozilla.</p> + +<p>Zwróć uwagę, że tekst o rozmiarze '2520 bajtów' zastąpiliśmy poprzez dwie encje. Dzieje się tak, ponieważ struktura wyrażenia może być inna w następnym miejscu. Na przykład, numer może potrzebować stać się równoważnym ilości bajtów, przed zamiast po. Oczywiście może to być bardziej skomplikowane do zrealizowania, aby wyświetlać rozmiar w KB lub potrzebne bardziej będą już Ci MB.</p> + +<p>Klucze dostępu, jak i skróty klawiaturowe także będziemy tłumaczyli jako encje, ponieważ będą one prawdopodobnie inne oraz w innych miejscach będą się znajdowały.</p> + +<p>Następnie, plik DTD (findfile.dtd):</p> + +<pre><!ENTITY findWindow.title "Find Files"> +<!ENTITY fileMenu.label "File"> +<!ENTITY editMenu.label "Edit"> +<!ENTITY fileMenu.accesskey "f"> +<!ENTITY editMenu.accesskey "e"> +<!ENTITY openCmd.label "Open Search..."> +<!ENTITY saveCmd.label "Save Search..."> +<!ENTITY closeCmd.label "Close"> +<!ENTITY openCmd.accesskey "o"> +<!ENTITY saveCmd.accesskey "s"> +<!ENTITY closeCmd.accesskey "c"> +<!ENTITY cutCmd.label "Cut"> +<!ENTITY copyCmd.label "Copy"> +<!ENTITY pasteCmd.label "Paste"> +<!ENTITY cutCmd.accesskey "t"> +<!ENTITY copyCmd.accesskey "c"> +<!ENTITY pasteCmd.accesskey "p"> +<!ENTITY cutCmd.commandkey "X"> +<!ENTITY copyCmd.commandkey "C"> +<!ENTITY pasteCmd.commandkey "V"> +<!ENTITY openCmdToolbar.label "Open"> +<!ENTITY saveCmdToolbar.label "Save"> +<!ENTITY searchTab "Search"> +<!ENTITY optionsTab "Options"> +<!ENTITY findDescription "Enter your search criteria below and select the Find button to begin the search."> +<!ENTITY findCriteria "Search Criteria"> +<!ENTITY type.name "Name"> +<!ENTITY type.size "Size"> +<!ENTITY type.date "Date Modified"> +<!ENTITY mode.is "Is"> +<!ENTITY mode.isnot "Is Not"> +<!ENTITY casesensitive "Case Sensitive Search"> +<!ENTITY matchfilename "Match Entire Filename"> +<!ENTITY results.filename "Filename"> +<!ENTITY results.location "Location"> +<!ENTITY results.size "Size"> +<!ENTITY bytes.before ""> +<!ENTITY bytes.after "bytes"> +<!ENTITY button.find "Find"> +<!ENTITY button.cancel "Cancel"> +</pre> + +<p>Wszystko czego potrzeba do zmiany wersji językowej, to utworzenie następnego pliku DTD. Używając systemu chrome dodaj plik DTD dla innych lokalizacji, ten sam plik możemy zastosować w każdym języku.</p> + +<p>Przykład <code>Znajdź pliki</code>: <a href="https://developer.mozilla.org/samples/xultu/examples//findfile/findfile-locale.xul.txt">Źródła</a></p> +</div> + +<p>W następnym artykule, zobaczymy jak wyglądają <a href="pl/Kurs_XUL/Plik_w%c5%82asno%c5%9bci">pliki własności</a>.</p> + +<p></p><div class="prevnext" style="text-align: right;"> + <p><a href="/pl/docs/Kurs_XUL:Tworzenie_motywów" style="float: left;">« Poprzedni</a><a href="/pl/docs/Kurs_XUL:Plik_własności">Następny »</a></p> +</div><p></p> + +<div class="noinclude"> </div> + +<p> </p> |
