Jump to content

Příručka:LocalisationCache.php

From mediawiki.org
This page is a translated version of the page Manual:LocalisationCache.php and the translation is 100% complete.

Třída LocalisationCache se stará o ukládání zpráv zdrojového kódu PHP do mezipaměti (jak bylo uvedeno výše, pouze vrstva MessageCache zpracovává zprávy přepsané databází). Tato třída se nevolá přímo. Spíše třída MessageCache volá třídu Language::getMessage(), která pak volá tuto třídu, aby získala zprávu. Tato vrstva zpracovává následující logiku:

  • Pomalé načítání zpráv z mezipaměti back-endu
  • Opětovné ukládání zpráv do mezipaměti
  • Řešení sekvence záložních jazyků

Soubory JSON

Před MediaWiki 1.23 se pro ukládání zpráv používalo asociativní pole v PHP. Globální konfigurace v $wgExtensionMessagesFiles obsahuje mapování názvu přípony na název souboru, kde lze nalézt zprávy.

Od verze MediaWiki 1.23 se používání této proměnné k definování zpráv nedoporučuje. Místo toho ukládejte zprávy ve formátu JSON a používejte proměnnou $wgMessagesDirs . Pro nastavení jiných proměnných než $messages by se měla stále používat $wgExtensionMessagesFiles .

$wgMessagesDirs je asociativní pole mapující název rozšíření na cestu k adresáři, kde lze nalézt soubory zpráv. Očekává se, že soubory zpráv budou JSON soubory pojmenované podle kódu jazyka, např. en.json, de.json atd. Rozšíření se zprávami na více místech mohou specifikovat pole adresářů zpráv.

LocalisationCache čte lokalizační zprávy ze souborů dle výše uvedené konfigurace pro opětovné ukládání do mezipaměti.

Řešení záložních jazykových řešení

Tato třída řeší záložní jazykové chyby tak, že při hledání konkrétního klíče zprávy vyhledá zprávu ve všech jazycích a poté uloží hodnotu do mezipaměti, jako by pocházela z původního jazyka. Důvodem je, že každý jazyk má svou vlastní back-endovou mezipaměť. V případě záložní sekvence, pokud zpráva neexistuje, by to obvykle znamenalo nutnost načíst a dotazovat každou mezipaměť jednotlivě při každém přístupu ke zprávě. Aby se tomu zabránilo, záložní řetězec se vyřeší jednou, když jsou zprávy znovu uloženy do mezipaměti z původních souborů PHP, a konečná hodnota se uloží do mezipaměti pro jazyk nejvyšší úrovně.

Ve výchozím nastavení používá databázovou tabulku l10n_cache . Nastavte $wgCacheDirectory v LocalSettings.php na platnou cestu pro použití lokální mezipaměti.

Externí odkazy