Szablon:Localization
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:
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ą: Hint: No hint provided.
|