Extension:UniversalLanguageSelector/cs

Universal Language Selector (univerzální výběr jazyka) (ULS) je nástroj umožňující uživatelům snadný výběr jazyka a konfiguraci jeho podpory. Pokud se používá, dodává také funkčnosti rozšíření a  (obě byla zastaralá oproti Universal Language Selector). Podklady a další informace najdete na stránce.

Použití
Hlavním cílem je umožnit uživatelům snadný výběr jazyka a konfiguraci jeho podpory.

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


 * 1) Přizpůsobitelný a snadný způsob výběru jazyka z velké sady jazyků.
 * 2) Výběr může být založen na procházení a vyhledávání podle geografických oblastí.
 * 3) 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)
 * 4) Křížové jazykové vyhledávání - vyhledání názvů jazyků pomocí libovolného skriptu
 * 5) Automatické doplňování názvů jazyků
 * 6) Automatická oprava pravopisných chyb ve vyhledávacích řetězcích
 * 7) Geo IP návrhy jazyků
 * 8) Výběr jazyka podle jazyka prohlížeče nebo operačního systému uživatele
 * 9) Metody zadávání
 * Kompletní pokyny najdete v.
 * 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) * Zastaralý seznam je k dispozici na Rozšíření:Narayam#Podporovaná schémata
 * 4) Předvolby metody zadávání podle jazyka
 * 5) Webfonty
 * 6) Velká sbírka typů písma, která si můžete pro každý jazyk vybrat jako vložené písmo pro stránku
 * 7) * Zastaralý seznam je k dispozici na Rozšíření:WebFonts#Podporované jazyky
 * 8) * Můžete procházet všechna zahrnutá písma
 * 9) Předvolby písma podle jazyka



Přidávání typů písma
Podpora více jazyků je pouze otázkou zahrnutí správných typů písma do kódu. Mějte však na paměti, že přidáme podporu pouze pro volně licencovaná písma, například pro písma licencovaná pod GNU GPL, SIL OFL atd. Příklad adresáře takových bezplatných typů písma je Google Fonts (nikoli přesto plně prozkoumáno nebo využíváno autory tohoto rozšíření); viz také Otevřená knihovna typů písma.

Nejprve musíte najít nebo vyrobit takové volné písmo (to je nejdůležitější část a musíte to udělat sami). Poté musí být převedeno do požadovaných formátů, kterými jsou eot, ttf, woff. Konečně můžete podat žádost v Phabricatoru, aby bylo písmo přidáno do rozšíření.

#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:

Hvězdička za jazykovým kódem znamená, že tento kód písma bude výchozím písmem pro daný jazyk. Pokud chcete pouze možnost používat tento kód písma pro daný jazyk, nepoužívejte hvězdičku.

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


 * 1) Vytvořte adresář pro typ písma pod data/fontrepo/fonty.
 * 2) Vložte soubory ttf, woff, eot a font.ini do tohoto adresáře a přidejte je do zdrojového úložiště.
 * 3) Přejděte do adresáře   a spusťte.
 * 4) Uložte změny do úložiště  a odešlete je podle Git workflow.

Přidání podpory pro nové mapování klíčů (metoda zadávání)
Postupujte podle instructions on the jquery.ime github wiki, ale žádosti o soubor řešte v produktu Wikimedia-extensions-UniversalLanguageSelector Phabricator.

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 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 ):


 * - asociativní pole, kde klíče jsou kódy jazyků a hodnoty jsou názvy jazyků v angličtině.
 * - ř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.

 application/x-font-woff .woff application/vnd.ms-fontobject .eot application/x-font-ttf .ttf

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


 * - 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.
 * - 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á.
 * - 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ď  nebo   nastaveno na hodnotu false.
 * - Ve výchozím nastavení deaktivujte funkci metod zadávání pro všechny uživatele. Uživatel je stále může povolit ručně.
 * - Umístění a forma spouštěče výběru jazyka. Možné hodnoty jsou: : jako odkaz v blízkosti uživatelského jména nebo odkaz pro přihlášení na osobním panelu nástrojů (výchozí).  : jako ikona poblíž záhlaví seznamu mezijazykových odkazů na postranním panelu.
 * - Pole výběrů jQuery prvků, na kterých nesmí být povoleno IME. např.:
 * - Zda automaticky detekovat jazyk uživatele z hlavičky Accept-Language.

Poloha spouštěče ULS

 * - umístění a forma spouštěče výběru jazyka. Možné hodnoty jsou: : jako odkaz v blízkosti uživatelského jména nebo odkaz pro přihlášení na osobním panelu nástrojů (výchozí).  : jako 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  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):

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:


 * Adding font file extensions to the FileTimes regex at FilesMatch for the relevant directory, example:
 * Adding ExpiresByType values to the relevant MIME types, similarly to image MIME types.
 * Note that there's no standard MIME type for TTF. application/x-font-ttf is used for Wikimedia.
 * Adding the MIME types:

 AddType application/x-woff .woff AddType application/vnd.ms-fontobject .eot AddType application/x-font-ttf .ttf

For a full example see the caching configuration update done for the Wikimedia cluster.

Page translation
UniversalLanguageSelector is one of the dependencies of the extension, which uses it for several language selection features. One of it is the MyLanguage system for links, which depends on the interface language of the user, but more can be configured: see Page translation feature.

Using Webfonts
User can choose webfonts for a language from the Language settings -> Display settings. By default, the first font in that menu will be applied to the wiki. A user can change the font and it will be remembered across the pages. Optionally user can disable the font embedding too by selecting system font.

If the font is available in user's local system, font will not be downloaded from the mediawiki server. It will be taken from the user's computer. Otherwise, font will be downloaded from the server only once. ie when the user selects the font first time. Next time onwards, font will be taken from the local cache.

By specifying font-family
Inside the wiki text YourText, webfonts extension will check whether the font is available with the extension, if so it will download it to the client. So the reader will not face any difficulty in reading the text even if the font specified is not available in their computer.

By specifying language
Inside the wiki text YourText, webfonts extension will check whether any font is available for the given language with the extension, if so it will download it to the client. So the reader will not face any difficulty in reading the text even if the font specified is not available in their computer. If there are multiple fonts for the language, the default font will be used. If default font is not preferred, use the font-family approach to specify the font. If the tag has both lang and font-family definitions, font-family get precedence.

Example:

𒄖𒉈𒅁𒌨𒅎

gives the text rendered in Cuneiform using Akkadian font

𒄖𒉈𒅁𒌨𒅎