Manuel:LocalisationCache.php

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

The LocalisationCache class handles caching of PHP source code messages (as mentioned above, only the MessageCache layer handles database-overridden messages). This class is not called directly; rather the MessageCache class calls Language::getMessage(), which then calls this class to get the message. Cette couche traite la logique suivante :

  • Chargement partiel des messages à partir du cache du serveur
  • Remise en cache des messages
  • Résolution de la séquence de repli de la langue

Fichiers JSON

Avant MediaWiki 1.23, on utilisait un tableau associatif PHP pour stocker les messages. A global configuration in $wgExtensionMessagesFiles contains the mapping extension name to the filename where messages can be found.

Depuis MediaWiki 1.23, l'utilisation de cette variable pour définir les messages n'est pas recommandée; remplacez-la par le stockage des messages au format JSON et utilisez $wgMessagesDirs . Pour déclarer d'autres variables que $messages, $wgExtensionMessagesFiles doit encore être utilisé.

$wgMessagesDirs est un tableau associatif établissant le lien entre le nom des extensions et le chemin du répertoire où se trouvent les fichiers de messages. Il est attendu que les fichiers de messages soient des fichiers JSON nommés en fonction du code de langue comme en.json, de.json, etc. Les extensions qui ont leur messages à plusieurs endroits peuvent spécifier un tableau de répertoires de messages.

LocalisationCache lit les messages de localisation dans les fichiers selon la configuration ci-dessus pour la remise en cache.

Résoudre le repli des langues

How this class resolves language fallbacks is that when searching for a specific message key, it will look for the message in all the languages, and then cache the value as if it were from the original language. La raison pour cela est que chaque langue possède son propre cache sur le serveur. For a fallback sequence, if a message doesn't exist, it would normally mean having to load and query each cache individually every time the message is accessed. To avoid this, the fallback chain is resolved once when the messages are re-cached from the original PHP files, and the final value is stored in the cache for the top-level language.

Elle utilise par défaut la table l10n_cache de la base de données. Initialisez $wgCacheDirectory dans LocalSettings.php avec un chemin valide pour utiliser à la place, un cache local.

Liens externes