Szablon:Localization

Z Terraria Wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Template-info.svg Dokumentacja Poniższa dokumentacja jest załączona do Szablon:Localization/doc. (edytuj | historia)

Ten szablon służy do dynamicznego wyświetlania predefiniowanego tekstu (który jest przechowywany przez {{localization/register}}), głównie w szablonach, w zależności od wiki języka Terraria, na którym jest używany. Jest to podstawowy szablon polegającego na standaryzacji kodu szablonów w witrynach językowych i zapobieganiu nieaktualnym szablonom. Zobacz Pomoc:I18n & l10n dla szablonów, aby uzyskać więcej informacji.

Użyj {{l10n}} jako skrótu.

Podstawowy zamysł

W szablonie wszystkie teksty w języku angielskim i inne ciągi specyficzne dla języka (np. Nazwy kategorii) są przechowywane w "bazie danych l10n" u góry szablonu, tzn. są zastępowane zmienną wskazującą ich wpis w bazie danych w l10n. Ułatwia to przechowywanie tłumaczeń jednego ciągu w bazie danych i wybieranie między nimi po wywołaniu szablonu, w zależności od języka wiki.

Baza danych jest konfigurowana za pomocą {{l10n/register}}. Przypisuje każdemu ciągowi unikalny dwupoziomowy identyfikator składający się z przestrzeni nazw (Uwaga: nie jest to związane z koncepcją MediaWiki Namespace.) i klucza. Przestrzeń nazw to zwykle nazwa szablonu, a klucz to opisowa "nazwa" ciągu.

Po pobraniu zapisanych ciągów (co odbywa się przy użyciu tego szablonu) należy podać ich przestrzeń nazw i klucz. Rozróżnienie między wyborem tłumaczenia jest obsługiwane przez {{lang}}, co automatycznie określa język wiki. Jeśli nie ma dostępnych ciągów dla określonej kombinacji przestrzeni nazw i kluczy w odpowiednim języku, zostanie użyta wersja angielska.

Sposób użycia

{{ l10n | <namespace> | <key> | <lang> (optional) }}

Parametr 1

Namespace.

Parametr 2

Key.

Parametr 3 (opcjonalny)

Język. Można to wykorzystać do wyświetlenia zapisanej wartości określonego języka. Domyślnie to właśnie zwraca {{lang}}.

Wszystkie nazwane parametry mają przedrostek $

Symbole zastępcze do formatowania. Zostaną one zastąpione w danych wyjściowych ciągiem, który jest taki sam dla każdego języka. Symbole zastępcze można również definiować rekurencyjnie. Zobacz następujący przykład:

{{l10n/register|test|en
|abc=input: $x
|mn=abc$de$fg
|t = zzz
}}
A: {{l10n|test|abc|$x=xyz}}

B: {{l10n|test|mn|$d=kkkk|$f=jjjj}}

C: {{l10n|test|abc|$x={{l10n|test|mn|$d=x|$f=y}} }}

Wynik:

A: input: xyz

B: abckkkkejjjjg

C: input: abcxeyg

Rejestracja informacji o lokalizacji

Baza danych l10n jest deklarowana przez {{l10n/register}}. Możliwe jest automatyczne ładowanie lub rejestracja ręczna. Ostatecznie obie metody wymagają ręcznego zdefiniowania bazy danych - jedyną różnicą jest to, że przy automatycznym ładowaniu nie dzieje się tak w samym kodzie źródłowym szablonu, ale w osobnym szablonie.

Ręczna rejestracja

Użyj w tym samym szablonie. Umieść go przed każdym wywołaniem {{}}, najlepiej na samym początku kodu.

Automatyczne ładowanie

Ponieważ baza danych ustawia tylko zmienne, umieszczenie jej w tym samym szablonie nie jest obowiązkowe. Zamiast tego można go przenieść na oddzielny szablon podrzędny, który następnie zostaje umieszczony na początku szablonu podstawowego. {{}} ma funkcjonalność, która spróbuje automatycznie przetłumaczyć ("autoload") taką zewnętrzną bazę danych l10n poprzez włączenie w razie potrzeby Template:<namespace>/l10n. Na przykład dla {{|foo|bar}}, {{}} spróbuje przetłumaczyć Template:foo/l10n.

Ten sposób jest zalecany, ponieważ zmniejsza liczbę odwołań {{l10n/register}} i poprawia wydajność.

Przykład

Weźmy Szablon:Hint jako przykład:

Najpierw zarejestruj informacje o lokalizacji (baza danych l10n). Można to zrobić albo w Template:Hint/l10n (dla metody autoload) lub w górnej części Template:Hint.

<!-- 
//en version
-->{{l10n/register|hint|en<!--
	-->|hint=Hint:<!-- 
	-->|default=No hint provided.<!-- 
-->}}<!-- 
//it version
-->{{l10n/register|hint|pl<!-- 
	-->|hint=Wskazówka:<!-- 
	-->|default=Brak podpowiedzi.<!-- 
-->}}<!-- 
... w razie potrzeby można dodać więcej języków.
-->

Po prostu dodaj więcej języków w ten sam sposób, jeśli to konieczne. Pamiętaj, aby zachować alfabetyczną kolejność kodów językowych, z angielskim zawsze na górze.

Następnie w kodzie szablonu użyj {{}}, aby pobrać ciąg znaków dla bieżącego języka z bazy danych l10n, np. {{l10n|hint|hint}} (co zwróci Hint: na angielskiej wiki i Wskazówka: na polskiej wiki). Szczegółowe informacje dotyczące tego przykładu można znaleźć w kodzie źródłowym {{hint}}.

Zwrócony wynik:

Kod Wynik
Domyślnie:
{{hint}}
Domyślnie:
Guide.png
Hint: No hint provided.
<!-- ręcznie ustawiony język na PL -->
{{lang/set|pl}}
Teraz zwraca wersję polską:
{{hint}}

Tymczasowo wyłączone

Teraz zwraca wersję polską:

Guide.png
Hint: No hint provided.