Extension:通用語言選擇器

This page is a translated version of the page Extension:UniversalLanguageSelector and the translation is 99% complete.
MediaWiki扩展手冊
OOjs UI icon advanced-invert.svg
UniversalLanguageSelector
發布狀態: 穩定版本
ULS-Display-Settings.png
实现 用户界面, 皮肤 , 测试功能
描述 一个允许用户选择不同语言且容易配置的工具。 允许用户选择语言并容易配置它的工具。
作者 wikimedia语言小组
最新版本 2022-04-26
兼容性政策 master分支向後兼容。
MediaWiki >= 1.36.0
Composer mediawiki/universal-language-selector
许可协议
下載 包含于:Language Extension Bundle
  • $wgULSWebfontsEnabled
  • $wgULSGeoService
  • $wgULSLanguageDetection
  • $wgULSAnonCanChangeLanguage
  • $wgULSEnable
  • $wgULSImeSelectors
  • $wgULSIMEEnabled
  • $wgULSCompactLanguageLinksBetaFeature
  • $wgULSNoWebfontsSelectors
  • $wgULSFontRepositoryBasePath
  • $wgULSMobileWebfontsEnabled
  • $wgULSNoImeSelectors
  • $wgULSPosition
不兼容IE8及以下版本.
翻譯UniversalLanguageSelector扩展,若在translatewiki.net可用

检查使用和版本矩阵。

問題 尚未完成的工作 · 报告錯誤

通用语言选择器(Universal Language Selector)是一个允许用户选择语言,并以更容易的方式配置其支持的工具。在使用的地方,它还附带了WebFonts Narayam 扩展的功能(不推荐使用这两种扩展,而推荐使用Universal Language Selector)。 参见通用语言选择器 以了解背景及额外信息。

用法

主要目的是让用户以一种简单的方法选择并配置支持用户语言。

该扩展提供了以下功能:

  1. 从众多语言中选择一种语言的灵活便捷的方法。
    1. 可根据地理区域进行选择浏览、搜索。
    2. 搜索可以基于ISO语言代码、以当前用户界面语言编写的语言名称或其自己的脚本(自动命名)
    3. 跨语言搜索-使用任何脚本搜索任意的语言
    4. 语言名称的自动补全
    5. 自动更正搜索字符串中的拼写错误
    6. 基于地理位置的语言建议
    7. 基于用户浏览器/操作系统语言的语言选择
  2. 输入法
    有关完整说明,请参阅 Help:扩展:通用语言选择器/输入法
    1. 一个易于选择的输入法集合,在每个可编辑字段中随时可用
    2. 为各种语言提供一系列输入法
    3. 每种语言的输入法首选项
  3. 网络字体
    1. 为每种语言选择不同字体以用作页面的嵌入字体
    2. 每种语言的字体首选项
 
通用语言选择器,为来自西班牙的用户提供基于geoip的语言建议
 
语言设置允许注册用户在访问英文维基百科的时候将UI语言改变为自己的母语。
 
孟加拉语用户即使缺乏需要的电脑字体,仍能够读取孟加拉维基百科的内容。系统自动提供一个开放源码的非拉丁脚本的Web字体。在每一个语言的基础上,用户可以决定使用他们的系统字体。
 
没有印地语键盘的情况下,可以使用印地语语音识别来输入印地语。
 
搜索时用户可以在英语和印地语间切换。

添加字体

支持更多语言只需在代码中包含正确的字体。 但是,请注意,我们将仅添加对免费许可字体的支持,例如在 GNU GPL、SIL OFL 等下许可的字体。此类免费字体的示例目录是 Google Fonts [1](不是 但已被此扩展程序的作者充分检查/利用); 另见 开源字体库

首先,你需要找到或制作这样一个免费的字体(这是最重要的部分,你必须自己做); 然后,必须将其转换为所需的格式,即eot、ttf、woff; 最后,您可以在 Phabricatorfile a request 将字体添加到扩展中。

网络字体 下面解释了如何转换字体:需要有基于 GNU/Linux 操作系统的基本知识; 如果您在执行此操作时遇到困难,您可以跳过此步骤并在同一个 Phabricator 请求中请其他人为您执行此操作(当然这会减慢该过程)。

准备网页字体(webfonts)

创建.woff2:

使用 https://github.com/google/woff2 从 ttf 生成 woff2, 这将生成一个压缩的 woff2 文件。 主流的浏览器支持这种格式。

创建一个font.ini文件,这里有个例子:

[AbyssinicaSIL]
languages=am*, ti*
version=1.200
license=OFL 1.1
licensefile=OFL.txt
url=http://scripts.sil.org/AbyssinicaSIL

语言代码后的星号 (*) 表示该字体将是该语言的默认字体。 如果您只想选择将此字体用于该语言,请不要使用星号。

创建文件后,执行以下操作:

  1. 在 data/fontrepo/fonts 下为字体创建一个目录。
  2. 将 ttf、woff、eot 和 font.ini 文件放在该目录中,并将它们添加到源存储库(git add)。
  3. 进入scripts/目录并运行php compile-font-repo.php
  4. 将更改提交到存储库 (git commit -a) 并根据 Git 工作流程 提交。

添加对新键映射(输入法)的支持

遵循 instructions on the jquery.ime github wiki,但文件请求在 Wikimedia-拓展-UniversalLanguageSelector Phabricator 产品中。

下载

此扩展可直接从Git检索到 [?]:

  • 浏览代码
  • 部分扩展有稳定版本标签。
  • 每个分支与过去的MediaWiki发布版本相关联。 这里也有一个“主线”分支,包含最新alpha版本(可能需要MediaWiki的alpha版本)。

提取快照,并将它放置在您的MediaWiki安装副本的extensions/UniversalLanguageSelector/目录中。

如果您对git熟悉,并且拥有您服务器的shell访问权,您也可以通过以下方法获得扩展:

cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/UniversalLanguageSelector.git

安装

  • 下载文件,并将其放置在您extensions/文件夹中的UniversalLanguageSelector目录内。
  • 将下列代码放置在您的LocalSettings.php 的底部:
    wfLoadExtension( 'UniversalLanguageSelector' );
    
  •   完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。


Vagrant installation:

  • 如果使用Vagrant ,请通过vagrant roles enable uls --provision安装

更新语言名称索引

为了执行跨语言搜索,搜索 autonyms,需要填充语言数据。 ULS 带有预填充的语言名称索引 (data/langnames.ser)。 如果您想更新它,请安装 拓展:CLDR 并使用以下命令更新数据。

php UniversalLanguageSelector/data/LanguageNameIndexer.php

并验证在 ULS/data/ 文件夹中生成了 langnames.ser 文件。

配置

以下变量是在初始化期间自动创建的,可以使用 mw.config.get( NAME ) 从 JavaScript 中使用:

  • wgULSLanguages - 一个关联数组,其中键是语言代码,值是英语语言名称。
  • wgULSAcceptLanguageList - 来自用户 Accept-Language 值的语言代码数组。 这些是在用户浏览器首选项中选择的语言。

对于提供字体,您可能希望将以下 mime 类型添加到您的网络服务器(如果还没有的话)。 本指南 可能会有所帮助。

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

还可以配置以下变量:

  • $wgULSGeoService - ULS 可以使用地理定位服务根据用户访问的国家/地区建议语言。 将此设置为 false 将禁止使用内置地理定位。 您可以通过设置窗口提供自己的地理位置信息。 具有键'country_code'或'country_code'的对象的地理位置。 如果设置为 true,它将查询 Wikimedia 的 geoip 服务。 该服务应返回使用提供的回调参数的 jsonp。 Defaults to http://freegeoip.net/json/ (warning: this website has shut down its API) and expects the same format.
  • $wgULSEnable - 为每个人启用语言选择、紧凑的语言链接、输入法和网络字体,除非行为被下面的配置变量覆盖。 即使为 false,类和资源加载器模块也已注册以供其他扩展使用。 无法通过 cookie 或 setlang 查询参数更改语言。
  • $wgULSAnonCanChangeLanguage - 允许匿名用户使用 cookie 和 setlang 查询参数更改语言。 如果您在不考虑 cookie 的情况下缓存匿名页面视图,请不要使用。 如果 $wgULSEnable$wgULSEnableAnon 中的任何一个设置为 false,则不会产生任何影响。
  • $wgULSIMEEnabled - 默认禁用所有用户的输入法功能。 可以手动启用。
  • $wgULSPosition - 语言选择触发器的位置和形式。 可能的值为: personal:作为用户名附近的链接或个人工具栏中的登录链接(默认)。 interlanguage:作为侧边栏中的interlanguage 链接列表标题附近的图标。
  • $wgULSNoImeSelectors - 不得启用 IME 的元素的 jQuery 选择器数组。 例如:['#wpCaptchaWord'];
  • $wgULSLanguageDetection - 是否从 Accept-Language 标头中自动检测用户的语言。

ULS触发位置

  • $wgULSPosition - 语言选择触发器的位置和形式。 可能的值为: personal:作为用户名附近的链接或个人工具栏中的登录链接(默认)。 interlanguage:作为侧边栏中的interlanguage 链接列表标题附近的图标。

也可以在屏幕的任何位置触发 ULS。 具有 uls-settings-trigger 的元素将充当 ULS 触发器。

首要默认字体

ULS 有一个大型字体存储库,可用作网络字体。 有时一种语言有多种字体,每种语言/脚本都有一个默认字体。 可以使用全局脚本 (MediaWiki:Common.js) 或个人脚本 (Special:MyPage/common.js) 覆盖字体顺序或默认字体,如下所示:

缓存配置

为确保 Web 字体文件缓存在客户端计算机上,必须将字体文件类型添加到 Web 服务器配置中。 在 Apache2 中,这包括:

  • 为相关目录的 FilesMatch 中的 FileTimes 正则表达式添加字体文件扩展名,例如:

<FilesMatch "\.(gif|jpe?g|png|css|js|woff|svg|eot|ttf)$">

  • 将 ExpiresByType 值添加到相关的 MIME 类型,类似于图像 MIME 类型。
    • 请注意,TTF 没有标准的 MIME 类型。 application/x-font-ttf 用于维基媒体。
  • 添加 MIME 类型:
AddType font/woff .woff
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf

有关完整示例,请参阅 为 Wikimedia 集群完成缓存配置更新

页面翻译

UniversalLanguageSelector 是 翻譯 扩展的依赖项之一,它将它用于多种语言选择功能。 其中之一是用于链接的 MyLanguage 系统,它取决于用户的界面语言,但可以配置更多:参见 页面翻译功能

使用网页字体

用户可以从语言设置 -> 显示设置中选择一种语言的网络字体。 默认情况下,该菜单中的第一个字体将应用于 wiki。 用户可以更改字体,并且会在整个页面中记住它。 用户也可以通过选择系统字体来禁用字体嵌入。

如果字体在用户的本地系统中可用,字体将不会从 mediawiki 服务器下载。 它将从用户的计算机中获取。 否则,字体只会从服务器下载一次。 即当用户第一次选择字体时。 下一次以后,字体将从本地缓存中获取。

另一种方式来加载字体

通过指定字体系列

在 wiki 文本 <span style="font-family:'YourFontName';">YourText</span> 中,webfonts 扩展程序将检查该字体是否可用于该扩展程序,如果是,它将下载 它给客户。 因此,即使指定的字体在他们的计算机中不可用,读者在阅读文本时也不会遇到任何困难。

通过指定语言

在 wiki 文本 <span lang="my">YourText</span> 中,webfonts 扩展程序将检查是否有任何字体可用于具有扩展名的给定语言,如果是,它将下载到 客户。 因此,即使指定的字体在他们的计算机中不可用,读者在阅读文本时也不会遇到任何困难。 如果该语言有多种字体,则将使用默认字体。 如果默认字体不是首选,请使用 font-family 方法来指定字体。 如果标签同时具有 lang 和 font-family 定义,则 font-family 优先。

例子:

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

使用 Akkadian 字体以楔形文字呈现文本

𒄖𒉈𒅁𒌨𒅎

另见