Jump to content

Rozšíření:UniversalLanguageSelector

From mediawiki.org
This page is a translated version of the page Extension:UniversalLanguageSelector and the translation is 98% complete.
Outdated translations are marked like this.
Příručka k rozšířením MediaWiki
UniversalLanguageSelector
Stav rozšíření: stabilní
Implementace Uživatelské rozhraní, Vzhled , Funkce Beta
Popis Nástroj umožňující uživatelům snadný výběr jazyka a konfiguraci jeho podpory.
Autoři Jazykový tým Wikimedie
Nejnovější verze 2024-07-16
Zásady kompatibility Větev master zachovává zpětnou kompatibilitu.
MediaWiki >= 1.41.0
Composer mediawiki/universal-language-selector
Licence
Stáhnout Zahrnuto v balíčku jazykových rozšíření
  • $wgULSWebfontsEnabled
  • $wgULSGeoService
  • $wgULSLanguageDetection
  • $wgULSAnonCanChangeLanguage
  • $wgULSEnable
  • $wgULSImeSelectors
  • $wgULSIMEEnabled
  • $wgULSNoWebfontsSelectors
  • $wgULSFontRepositoryBasePath
  • $wgULSCompactLanguageLinksBetaFeature
  • $wgULSNoImeSelectors
  • $wgULSPosition
Není kompatibilní s aplikací Internet Explorer 8 nebo nižší.
Čtvrtletní stahování 241 (Ranked 26th)
Veřejné wiki používající rozšíření 1,237 (Ranked 214th)
Přeložte rozšíření UniversalLanguageSelector, používá-li lokalizaci z translatewiki.net
Problémy Otevřené úkoly · Nahlásit chybu

Universal Language Selector je nástroj, který uživatelům umožňuje vybrat jazyk a snadno nakonfigurovat jeho podporu. Pokud se používá, dodává také funkce dřívějších rozšíření WebFonts a Narayam (obě byla zastaralá ve prospěch Universal Language Selector). Podklady a další informace najdete na stránce Univerzální výběr jazyka .

Použití

Primárním cílem je umožnit uživatelům vybrat si jazyk a snadno nakonfigurovat jeho podporu.

Rozšíření poskytuje následující funkce:

  1. Přizpůsobitelný a snadný způsob výběru jazyka z velké sady jazyků.
    1. Výběr může být založen na procházení a vyhledávání podle geografické oblasti.
    2. Hledání může být založeno na kódu jazyka ISO, názvu jazyka napsaném v aktuálním jazyce uživatelského rozhraní nebo ve vlastním skriptu (autonym)
    3. Křížové jazykové vyhledávání - vyhledání názvů jazyků pomocí libovolného skriptu
    4. Automatické doplňování názvů jazyků
    5. Automatická oprava pravopisných chyb ve vyhledávacích řetězcích
    6. Geo IP návrhy jazyků
    7. Výběr jazyka podle jazyka prohlížeče nebo operačního systému uživatele
  2. Metody zadávání
    Kompletní pokyny najdete na stránce Help:Extension:UniversalLanguageSelector/Input methods .
    1. Snadno volitelná kolekce metod vstupu, jednoduše dostupná v každém editovatelném poli
    2. Poskytuje velkou sadu vstupních metod pro širokou škálu jazyků
    3. Předvolby metody zadávání podle jazyka
  3. Webfonty
    1. Velká sbírka typů písma, která si můžete pro každý jazyk vybrat jako vložené písmo pro stránku
    2. Předvolby písma podle jazyka
Univerzální výběr jazyka s návrhem jazyka založeného na geoipu pro uživatele z Indie
Jazyková nastavení umožňují registrovanému uživateli přístup na cizojazyčné Wikipedii ke změně uživatelského prostředí do jeho rodného jazyka.
Bengálský uživatel je schopen číst obsah z bengálské Wikipedie i přes nedostatek typů písma ve svém počítači. Webová písma jsou poskytována automaticky pro nelatinské skripty, pro které je k dispozici písmo s otevřeným zdrojovým kódem. Uživatel se může rozhodnout používat svá systémová písma na základě jazyka.
Mluvčí hindštiny bez hindské klávesnice konfiguruje metody zadávání, aby mohl psát v jejich jazyce.
Když vyhledávání uživatele může přepnout mezi latinkou a hindštinou.

Přidávání typů písma

Podpora více jazyků je pouze otázkou zahrnutí správných písem do kódu. Upozorňujeme však, že přidáme podporu pouze pro open-source licencované fonty, jako jsou fonty licencované pod GNU GPL, SIL OFL atd. Příklad adresáře takových open-source fontů je Google Fonts [1] (ne dosud plně prozkoumány/využity autory tohoto rozšíření); viz také Open Font Library.

Nejprve musíte najít nebo vyrobit takové open-source písmo (toto je nejpodstatnější část a musíte to udělat sami). Poté je nutné jej převést do formátu woff2, můžete odeslat žádost v Phabricatoru, aby bylo písmo přidáno do přípony.

#Preparing webfonty níže vysvětluje, jak převést písma: Jsou vyžadovány základní znalosti o operačním systému založeném na GNU/Linuxu. Pokud vám to dělá potíže, můžete tento krok přeskočit a požádat někoho jiného, aby to udělal za vás na stejný požadavek Phabricatoru (samozřejmě to proces zpomalí).

Příprava webfontů

Vytváření .woff2:

Použijte https://github.com/google/woff2 ke generování woff2 z ttf. Tím se vytvoří komprimovaný soubor woff2. Moderní prohlížeče tento formát podporují.

Vytvořte soubor font.ini. Zde je příklad:

[AbyssinicaSIL]
languages=am*, ti*
version=1.200
license=OFL 1.1
licensefile=OFL.txt
url=http://scripts.sil.org/AbyssinicaSIL
request-url=https://phabricator.wikimedia.org/[Task Number]
woff2=AbyssinicaSIL.woff2
bold=AbyssinicaSIL Bold

[AbyssinicaSIL Bold]
woff2=AbyssinicaSIL-Bold.woff2
fontweight=bold

Hvězdička (*) za kódem jazyka znamená, že toto písmo bude výchozí písmo pro daný jazyk. Pokud chcete mít možnost používat toto písmo pro daný jazyk, hvězdičku nepoužívejte.

Po vytvoření souborů proveďte následující:

  1. Vytvořte adresář pro typ písma pod data/fontrepo/fonts.
  2. Vložte soubory woff2 a font.ini do tohoto adresáře a přidejte je do zdrojového úložiště (git add).
  3. Přejděte do adresáře scripts/ a spusťte php compile-font-repo.php.
  4. Uložte změny do úložiště (git commit -a) a odešlete je podle Git workflow.

Přidání podpory pro nové mapování klíčů (metoda zadávání)

Postupujte podle $jquery, ale žádosti o soubor řešte v produktu Wikimedia-extensions-UniversalLanguageSelector Phabricator.

Instalace

  • Stáhněte soubor/y a vložte je do adresáře pojmenovaného UniversalLanguageSelector ve vaší složce extensions/.
    Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/UniversalLanguageSelector
  • Na konec vašeho souboru LocalSettings.php přidejte následující kód:
    wfLoadExtension( 'UniversalLanguageSelector' );
    
  • Yes Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.


Instalace Vagrant:

  • Pokud používáte Vagrant , instalujte s těmito parametry vagrant roles enable uls --provision

Aktualizace LanguageNameIndex

Chcete-li provádět křížové jazykové vyhledávání, autonyms, je třeba vyplnit jazyková data. ULS je dodáván s předvyplněným indexem názvů jazyků (data/langnames.ser). V případě, že jej chcete aktualizovat, nainstalujte Rozšíření:CLDR a aktualizujte data pomocí následujícího příkazu.

php UniversalLanguageSelector/data/LanguageNameIndexer.php

a ověřte, že se ve složce ULS/data/ vygeneruje soubor langnames.ser.

Konfigurace

Následující proměnné se vytvářejí automaticky během inicializace a lze je použít z JavaScriptu pomocí mw.config.get( NAME ):

  • wgULSLanguages - asociativní pole, kde klíče jsou kódy jazyků a hodnoty jsou názvy jazyků v angličtině.
  • wgULSAcceptLanguageList - řada jazykových kódů z Accept-Language uživatele. Toto jsou jazyky vybrané v předvolbách prohlížeče uživatele.

Pro zobrazování typů písma možná budete chtít do svého webového serveru přidat následující typy mime, pokud tam ještě nejsou. Zde vám může pomoci tento průvodce.

AddType font/woff2 .woff2

Také lze konfigurovat následující proměnné:

  • $wgULSGeoService - ULS může pomocí služeb zeměpisného zaměření navrhovat jazyky podle země, ze které je uživatel. Nastavení na hodnotu false zabrání použití vestavěného zeměpisného zaměření. Nastavením okna můžete poskytnout vlastní zeměpisné zaměření. Na objekt, který má klíč 'country_code' nebo 'country'. Pokud je nastavena na hodnotu true, bude se dotazovat na geoip službu Wikimedie. Služba by měla vrátit jsonp, který používá zadaný parametr zpětného volání. Výchozí nastavení je http://freegeoip.net/json/ (varování: tento web vypnul své API) a očekává stejný formát.
  • $wgULSEnable - Povolení výběru jazyka, kompaktní jazykové odkazy, metody zadávání a webfonty všeobecně, pokud chování není přepsáno níže uvedenými konfiguračními proměnnými. I když jsou false, moduly a moduly zavaděče jsou registrovány pro použití jiných rozšíření. Změna jazyka pomocí souboru cookie nebo parametru dotazu setlang není možná.
  • $wgULSAnonCanChangeLanguage - Umožňuje nezaregistrovaným uživatelům změnit jazyk pomocí parametru cookie a dotazu setlang. Nepoužívejte, pokud ukládáte do mezipaměti anonymní zobrazení stránek, aniž byste brali v úvahu soubory cookie. Nemá žádný účinek, pokud je buď $wgULSEnable nebo $wgULSEnableAnon nastaveno na hodnotu false.
  • $wgULSIMEEnabled - Ve výchozím nastavení zakáže metodu zadávání pro všechny uživatele. Uživatel jej stále může povolit ručně.
  • $wgULSPosition - Umístění a forma spouštěče výběru jazyka. Možné hodnoty jsou: personal: jako odkaz v blízkosti uživatelského jména nebo odkaz pro přihlášení na osobním panelu nástrojů (výchozí). interlanguage: jako ikona poblíž záhlaví seznamu mezijazykových odkazů na postranním panelu.
  • $wgULSNoImeSelectors - Pole výběrů jQuery prvků, na kterých nesmí být povoleno IME. např.: [ '#wpCaptchaWord' ];
  • $wgULSLanguageDetection - Zda automaticky detekovat jazyk uživatele z hlavičky Accept-Language.

Poloha spouštěče ULS

  • $wgULSPosition - umístění a forma spouštěče výběru jazyka. Možné hodnoty jsou: personal: jako odkaz v blízkosti uživatelského jména nebo odkaz pro přihlášení na osobním panelu nástrojů (výchozí). interlanguage: ako ikona poblíž záhlaví seznamu mezijazykových odkazů na postranním panelu.

Je také možné mít spouštěč ULS kdekoli na obrazovce. Prvek s uls-settings-trigger bude fungovat jako spoušť ULS.

Přepsání výchozích typů písma

ULS má velké úložiště typů písma, které slouží jako webfonty. Někdy existuje pro určitý jazyk více typů písma a pro každý jazyk/skript existuje výchozí písmo. Pořadí typů písem nebo výchozí písmo lze přepsat následujícím způsobem pomocí globálních skriptů (MediaWiki:Common.js) nebo osobních skriptů (Special:MyPage/common.js):

$.webfonts.repository.languages.languageCode = ["system", "FontA", "FontB"];

Jazykový kód by zde měl být platný kód jazyka (např.: en, hi, nl). FontA a FontB jsou písma dostupná v úložišti písem. Ve výše uvedeném příkladu pro languageCode jsme nastavili písmo dostupné v místním počítači jako výchozí písmo. tj. Žádný výchozí webf

Konfigurace ukládání do mezipaměti

Pro zajištění ukládání souborů webových typů písem do mezipaměti na počítačích klientů, je nutné do konfigurace webového serveru přidat typy souborů písem. V Apache2 to je takto:

  • Přidání přípon souborů písma do regexu FileTimes ve FilesMatch pro příslušný adresář, příklad:
<FilesMatch "\.(gif|jpe?g|png|css|js|woff2|svg)$">
  • Přidání hodnot ExpiresByType k příslušným typům MIME, podobně jako u typů obrázků MIME.
    • Všimněte si, že neexistuje žádný standardní typ MIME pro TTF. application/x-font-ttf se používá pro Wikimedii.
  • Přidání typů MIME:
AddType font/woff2 .woff2

Úplný příklad najdete v [aktualizaci konfigurace mezipaměti https://gerrit.wikimedia.org/r/c/operations/puppet/+/137883/2/files/apache/apache2.conf.appserver pro skupinu Wikimedie].

Překlad stránky

UniversalLanguageSelector je jednou z možností rozšíření Translate , které jej používá pro několik funkcí při výběru jazyka. Jednou z nich je systém MyLanguage pro odkazy, které závisí na jazyce rozhraní uživatele, ale lze jich konfigurovat i více: viz Funkce překladu stránky.

Používání webfontů

Uživatelé si mohou vybrat webová písma pro jazyk z Nastavení jazyka -> Nastavení zobrazení. První písmo v této nabídce bude ve výchozím nastavení použito na wiki. Uživatel může změnit písmo, které si stránky zapamatují. Volitelně může uživatel zakázat vkládání písem výběrem systémového písma.

Pokud je písmo dostupné v lokálním systému uživatele, font nebude stažen ze serveru MediaWiki. Bude převzat z počítače uživatele. V opačném případě bude písmo staženo ze serveru pouze jednou, když uživatel písmo vybere poprvé. Od této chvíle bude písmo převzato z místní mezipaměti.

Alternativní způsoby načítání typů písma

Zadáním rodiny typů písma

Uvnitř wiki textu <span style="font-family:'YourFontName';">YourText</span> rozšíření webfonts zkontroluje, zda je písmo dostupné s rozšířením, pokud ano, stáhne ho do klienta. Čtenář tak nebude čelit žádným potížím se čtením textu, i když zadané písmo nebude na jeho počítači dostupné.

Zadáním jazyka

Uvnitř wiki textu <span lang="my">YourText</span> rozšíření webových písem zkontroluje, zda je pro daný jazyk s rozšířením dostupné nějaké písmo, a pokud ano, stáhne jej do klienta. Čtenář tak nebude čelit žádným potížím se čtením textu, i když zadané písmo nebude na jeho počítači dostupné. Pokud je pro daný jazyk více písem, použije se výchozí písmo. Pokud výchozí písmo není upřednostňováno, zadejte písmo pomocí přístupu rodiny písem. Pokud značka obsahuje definice jazyka i font-family, font-family má přednost.

Příklad:

<span lang=sux>𒄖𒉈𒅁𒌨𒅎</span>

dává text vykreslený v klínovém písmu pomocí akkadského písma

𒄖𒉈𒅁𒌨𒅎

Související odkazy