Jump to content

Erweiterung:UniversalLanguageSelector

From mediawiki.org
This page is a translated version of the page Extension:UniversalLanguageSelector and the translation is 21% complete.
Outdated translations are marked like this.
MediaWiki-Erweiterungen
UniversalLanguageSelector
Freigabestatus: stabil
Einbindung Benutzer-Schnittstelle, Benutzeroberfläche , Beta-Funktion
Beschreibung Werkzeug zur einfachen Sprachauswahl und zur Konfiguration ihrer Unterstützung.
Autor(en) Wikimedia Sprachenteam
Letzte Version 2024-07-16
Kompatibilitätspolitik Der Master behält die Abwärtskompatibilität bei.
MediaWiki >= 1.42.0
Composer mediawiki/universal-language-selector
Lizenz
Herunterladen Im „Language Extension Bundle“ enthalten
  • $wgULSWebfontsEnabled
  • $wgULSGeoService
  • $wgULSLanguageDetection
  • $wgULSAnonCanChangeLanguage
  • $wgULSEnable
  • $wgULSImeSelectors
  • $wgULSIMEEnabled
  • $wgULSNoWebfontsSelectors
  • $wgULSFontRepositoryBasePath
  • $wgULSCompactLanguageLinksBetaFeature
  • $wgULSNoImeSelectors
  • $wgULSPosition
Nicht kompatibel mit Internet Explorer 8 oder niedriger..
Quarterly downloads 222 (Ranked 26th)
Public wikis using 1,237 (Ranked 214th)
Übersetze die UniversalLanguageSelector-Erweiterung, wenn sie auf translatewiki.net verfügbar ist
Probleme Offene Aufgaben · Einen Fehler melden

Die Universal Language Selector-Erweiterung ist ein Benutzer-Werkzeug zur einfachen Sprachauswahl und zur Konfiguration ihrer Unterstützung. Überall dort, wo sie eingesetzt wird, bringt sie auch die Funktionalität der beiden Erweiterungen WebFonts and Narayam mit, weshalb sich beide auch überholt haben. Für Hintergrund- und weitere Informationen siehe Universelle Sprachauswahl (ULS) .

Verwendung

Das Hauptziel ist dem Bnutzer eine einfachen Sprachauswahl und Konfiguration ihrer Unterstützung zu ermöglichen.

Die Erweiterung bietet die folgenden Funktionen:

  1. Flexible and easy way to select a language from a large set of languages.
    1. Selection can be based on geographical region-based browsing, and searching.
    1. Search can be based on ISO language code, language name written in current user interface language or in its own script(autonym)
    1. Cross-language search - search language names using any script
    1. Autocompletion of language names
    1. Auto correction of spelling mistakes in search strings
    1. Geo IP based language suggestions
    1. Language selection based on users browser/OS language
  1. Input methods
    1. An easily selectable input method collection, readily available in every editable field
    1. Provides a large set of input methods for a wide range of languages
    1. Per-language input method preferences
  1. Webfonts
    1. A large collection of fonts to choose for each language to use as an embedded font for the page
    1. Per-language font preferences
Universal Language Selector mit GeoIP-basiertem Sprach-Vorschlag für einen Benutzer aus Indien
Spracheeinstellungen erlauben einem registrierten Benutzer beim Zugriff auf die englische Wikipedia die Anzeigesprache auf seine Muttersprache umzuschalten.
Ein bengalischer Benutzer kann die Inhalte der bengalischen Wikipedia lesen, obwohl auf seinem Rechner keine entsprechende Schrift installiert ist. Für nicht-lateinische Schriften wird, wenn eine passende Opensource Schrift verfügbar ist, automatisch ein Webfont verwendet. Für jede Sprache kann ein Benutzer entscheiden, dass statt dessen eine seiner lokal installierten Schriften verwendet wird.
Ein Hindi schreibender Benutzer ohne Hindi Tastatur stellt sich seine Eingabemethoden so ein, dass er trotzdem seine Schrift eingeben kann.
Ein Benutzer kann für die Suche zwichen Englisch und Hindi wechseln.

Schriften hinzufügen

Die Unterstützung weiterer Sprachen bedeutet lediglich die prassende Schriftart in den Quelletext aufzunehmen. Allerdings bitten wir zu beachten, dass wir nur frei verfügbare Schriften hinzunehmen. Zum Beispiel Schriften, die unter GNU GPL, SIL OFL oder anderen lizensiert sind. Ein Beispielverzeichnis solcher freien Schriftarten ist Google Fonts [1] (bis jetzt noch nicht voll vom Autor der Erweiterung untersucht); siehe auch Open Font Library.

First of all, you need to find or produce such a open-source font (this is the most essential part, and you have to do it yourself); then, it has to be converted to the woff2 format, you can file a request in Phabricator for the font to be added to the extension.

#Preparing webfonts below explains how to convert the fonts: basic knowledge about GNU/Linux-based operating system is required; if you have difficulty in doing this, you can skip this step and ask someone else to do it for you on the same Phabricator request (of course this will slow down the process).

Preparing webfonts

.woff2-Dateien erstellen:

Use https://github.com/google/woff2 to generate woff2 from ttf. This will produce a compressed woff2 file. Modern browsers support this format.

Erstelle eine font.ini-Datei. Hier ist ein Beispiel:

[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

An asterisk (*) after a language code means that this font will be the default font for that language. Don't use the asterisk if you want the option to use this font for that language.

After creating the files, do the following:

  1. Create a directory for the font under data/fontrepo/fonts.
  1. Put the woff2 and font.ini files in that directory and add them to the source repository (git add).
  1. Go to the scripts/ directory and run php compile-font-repo.php.
  1. Commit the changes to the repository (git commit -a) and submit them according to the Git workflow.

Adding support for a new key mapping (input method)

Follow the instructions on the jquery.ime github wiki, but file requests in the Wikimedia-extensions-UniversalLanguageSelector Phabricator product.

Installation

  • Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens UniversalLanguageSelector im Ordner extensions/ ablegen.
    Entwickler und Code-Beitragende sollten stattdessen die Erweiterung von Git installieren, mit:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/UniversalLanguageSelector
  • Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
    wfLoadExtension( 'UniversalLanguageSelector' );
    
  • Yes Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.


Vagrant-Installation:

  • Wird Vagrant benutzt, ist mit vagrant roles enable uls --provision zu installieren

LanguageNameIndex aktualisieren

For performing cross language search, searching autonyms, language data needs to be populated. ULS comes with a pre-populated language name index(data/langnames.ser). In case you want to update it, install Erweiterung:CLDR and update the data with the following command.

php UniversalLanguageSelector/data/LanguageNameIndexer.php

and verify that langnames.ser file gets generated in ULS/data/ folder.

Konfiguration

The following variables are created automatically during initialization and can be used from JavaScript using mw.config.get( NAME ):

  • wgULSLanguages - an associative array where the keys are language codes and the values are language names in English.
  • wgULSAcceptLanguageList - an array of language codes from the user's Accept-Language value. These are the languages selected in the user's browser preferences.

For serving fonts, you might want to add the following MIME types to your webserver if not already there. This guide might help.

AddType font/woff2 .woff2

Die folgenden Variablen können auch konfiguriert werden:

  • $wgULSGeoService - ULS can use geolocation services to suggest languages based on the country the user is visiting from. Setting this to false will prevent built-in geolocation from being used. You can provide your own geolocation by setting window. Geo to object which has key 'country_code' or 'country'. If set to true, it will query Wikimedia's geoip service. The service should return jsonp that uses the supplied callback parameter. Defaults to http://freegeoip.net/json/ (warning: this website has shut down its API) and expects the same format.
  • $wgULSEnable - Enable language selection, compact language links, input methods, and web fonts for everyone unless the behavior is overridden by the configuration variables below. Even if false, the classes and resource loader modules are registered for using other extensions. Language changing via cookie or setlang query parameter is not possible.
  • $wgULSAnonCanChangeLanguage - Allow anonymous users to change the language with cookie and setlang query param. Do not use it if you are caching anonymous page views without taking cookies into account. It does not have any effect if either $wgULSEnable or $wgULSEnableAnon is set to false.
  • $wgULSIMEEnabled - Disable the input methods feature for all users by default. The user can still enable it manually.
  • $wgULSPosition - The location and the form of the language selection trigger. The possible values are: personal: as a link near the username or the login link in the personal toolbar (default). interlanguage: as an icon near the header of the list of interlanguage links in the sidebar.
  • $wgULSNoImeSelectors - Array of jQuery selectors of elements on which IME must not be enabled. eg: [ '#wpCaptchaWord' ];
  • $wgULSLanguageDetection - Whether to automatically detect the user's language from the Accept-Language header.

Position of ULS trigger

  • $wgULSPosition - The location and the form of the language selection trigger. The possible values are: personal: as a link near the username or the login link in the personal toolbar (default).

interlanguage: as an icon near the header of the list of interlanguage links in the sidebar.

It is also possible to have a ULS trigger anywhere on the screen. An element with uls-settings-trigger will act as a ULS trigger.

Overriding default fonts

ULS has a large font repository to serve as webfonts. Sometimes, there are multiple fonts for a language, and there is a default font for each language/script. The order of fonts or default font can be overridden as follows using global scripts (MediaWiki:Common.js) or personal scripts (Special:MyPage/common.js):

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

Here, languageCode should be a valid langauge code(eg: en, hi, nl). FontA and FontB are fonts available in font repository. In the above example for languageCode, we set a font available in local computer as default font. ie No default webfont.

Caching-Konfiguration

To ensure that the web fonts files are cached on the clients' machines, font file types must be added to the web server configuration. In Apache2 this consists of:

  • Adding font file extensions to the FileTimes regex at FilesMatch for the relevant directory, example:
<FilesMatch "\.(gif|jpe?g|png|css|js|woff2|svg)$">
  • 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 font/woff2 .woff2

Seitenübersetzung

UniversalLanguageSelector is one of the dependencies of the Übersetzen 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

Users can choose web fonts for a language from the Language settings -> Display settings. The first font in that menu will be applied to the wiki by default. A user can change the font to be remembered across the pages. Optionally, the user can disable the font embedding by selecting the system font.

If the font is available in the user's local system, the font will not be downloaded from the MediaWiki server. It will be taken from the user's computer. Otherwise, the font will be downloaded from the server only once, when the user selects the font the first time. From then on, the font will be taken from the local cache.

Alternativwege, um Schriftarten zu laden

By specifying font-family

Inside the wiki text <span style="font-family:'YourFontName';">YourText</span>, 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 reading the text even if the specified font is not available on their computer.

By specifying language

Inside the wiki text <span lang="my">YourText</span>, the web fonts extension will check whether any font is available for the given language with the extension and if so, it will download it to the client. So the reader will not face any difficulty reading the text even if the specified font is not available on their computer. The default font will be used if there are multiple fonts for the language. If the 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 gets precedence.

Beispiel:

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

gives the text rendered in Cuneiform using Akkadian font

𒄖𒉈𒅁𒌨𒅎

Siehe auch