ส่วนขยาย:UniversalLanguageSelector

This page is a translated version of the page Extension:UniversalLanguageSelector and the translation is 96% complete.
Outdated translations are marked like this.
MediaWiki extensions manual
UniversalLanguageSelector
Release status: stable
Implementation User interface, Skin , Beta Feature
Description เครื่องมือที่อนุญาตให้ผู้ใช้เลือกภาษาและกำหนดค่าการสนับสนุนในวิธีที่ง่าย
Author(s) ทีมภาษาวิกิมีเดีย
Latest version 2024-01-22
Compatibility policy Master maintains backward compatibility.
MediaWiki >= 1.40.0
Composer mediawiki/universal-language-selector
License
Download รวมอยู่ในชุดส่วนขยายภาษา
  • $wgULSWebfontsEnabled
  • $wgULSGeoService
  • $wgULSLanguageDetection
  • $wgULSAnonCanChangeLanguage
  • $wgULSEnable
  • $wgULSImeSelectors
  • $wgULSIMEEnabled
  • $wgULSNoWebfontsSelectors
  • $wgULSFontRepositoryBasePath
  • $wgULSCompactLanguageLinksBetaFeature
  • $wgULSNoImeSelectors
  • $wgULSPosition
เข้ากันไม่ได้กับ Internet Explorer 8 หรือต่ำกว่า.
Quarterly downloads 175 (Ranked 37th)
Public wikis using 1,237 (Ranked 214th)
Translate the UniversalLanguageSelector extension if it is available at translatewiki.net
Issues Open tasks · Report a bug

'ตัวเลือกภาษาสากล' เป็นเครื่องมือที่ช่วยให้ผู้ใช้สามารถเลือกภาษาและกำหนดค่าการสนับสนุนในวิธีที่ง่าย เมื่อใช้ มันยังจัดส่งฟังก์ชันการทำงานของส่วนขยายทั้ง WebFonts และ Narayam (ซึ่งทั้งคู่เลิกใช้งานแล้วเพื่อสนับสนุน Universal Language Selector) ดู Universal Language Selector สำหรับประวัติและข้อมูลเพิ่มเติม

การใช้งาน

จุดมุ่งหมายหลักคือ การอนุญาตให้ผู้ใช้เลือกภาษาและกำหนดค่าการสนับสนุนในวิธีที่ง่าย

ส่วนขยายมีคุณสมบัติดังต่อไปนี้:

  1. วิธีที่ยืดหยุ่นและง่ายในการเลือกภาษาจากชุดภาษาขนาดใหญ่
    1. การเลือกขึ้นอยู่กับภูมิภาคตามการสืบค้น การค้นหา
    2. การค้นหาขึ้นอยู่กับรหัสภาษา ISO ชื่อภาษาที่เขียนในภาษาอินเทอร์เฟซผู้ใช้ปัจจุบันหรือในสคริปต์ของตัวเอง (autoonym)
    3. ค้นหาข้ามภาษา - ค้นหาชื่อภาษาโดยใช้สคริปต์ใดก็ได้
    4. การเติมชื่อภาษาอัตโนมัติ
    5. การแก้ไขข้อผิดพลาดการสะกดคำในสตริงการค้นหาโดยอัตโนมัติ
    6. คำแนะนำภาษาตามภูมิศาสตร์ IP
    7. การเลือกภาษาตามเบราว์เซอร์ของผู้ใช้/ภาษาระบบปฏิบัติการ
  2. วิธีการป้อนข้อมูล
    ดู Help:Extension:UniversalLanguageSelector/Input methods สำหรับคำแนะนำที่สมบูรณ์
    1. คอลเล็กชันวิธีการป้อนข้อมูลที่เลือกได้ง่าย พร้อมให้ใช้งานในทุกช่องที่แก้ไขได้
    2. จัดเตรียมวิธีการป้อนข้อมูลจำนวนมากสำหรับภาษาต่าง ๆ มากมาย
    3. การตั้งค่าวิธีการป้อนข้อมูลตามภาษา
  3. เว็บฟอนต์
    1. คอลเลกชั่นฟอนต์ขนาดใหญ่ให้เลือกสำหรับแต่ละภาษาเพื่อใช้เป็นฟอนต์แบบฝังสำหรับเพจ
    2. การตั้งค่าแบบอักษรตามภาษา
 
Universal Language Selector พร้อมคำแนะนำภาษาตาม geoip สำหรับผู้ใช้จากสเปน
 
การตั้งค่าภาษาทำให้ผู้ใช้ที่ลงทะเบียนเข้าใช้วิกิพีเดียภาษาอังกฤษเพื่อเปลี่ยน UI เป็นภาษาแม่ของตนได้
 
ผู้ใช้ชาวเบงกาลีสามารถอ่านเนื้อหาจากวิกิพีเดียภาษาเบงกาลีได้แม้จะไม่มีแบบอักษรในคอมพิวเตอร์ก็ตาม แบบอักษรของเว็บมีให้โดยอัตโนมัติสำหรับสคริปต์ที่ไม่ใช่ภาษาละตินซึ่งมีแบบอักษรโอเพนซอร์ซให้ใช้งานได้ ผู้ใช้สามารถตัดสินใจใช้แบบอักษรของระบบตามแต่ละภาษา
 
ผู้พูดภาษาฮินดีที่ไม่มีแป้นพิมพ์ภาษาฮินดีจะกำหนดค่าวิธีการป้อนข้อมูลเพื่อให้เขาพิมพ์ในภาษาของพวกเขาได้
 
เมื่อค้นหาผู้ใช้สามารถสลับระหว่างภาษาอังกฤษและภาษาฮินดี

กำลังเพิ่มแบบอักษร

การสนับสนุนภาษาอื่น ๆ เป็นเพียงเรื่องของการรวมแบบอักษรที่เหมาะสมในโค้ดเท่านั้น อย่างไรก็ตาม โปรดทราบว่าเราจะเพิ่มการรองรับเฉพาะฟอนต์ freely licensed เท่านั้น ตัวอย่างเช่น ฟอนต์ที่ได้รับอนุญาตภายใต้ GNU GPL, SIL OFL เป็นต้น ไดเร็กทอรีตัวอย่างของฟอนต์ฟรีดังกล่าวคือ Google Fonts [1] (ไม่ใช่ ยังตรวจสอบ/ใช้ประโยชน์อย่างเต็มที่โดยผู้เขียนส่วนขยายนี้) โปรดดูที่ Open Font Library

ก่อนอื่น คุณต้องค้นหาหรือผลิตแบบอักษรฟรีดังกล่าว (ส่วนที่สำคัญที่สุดและคุณต้องทำเอง) จากนั้นจะต้องแปลงเป็นรูปแบบที่ต้องการ ได้แก่ eot, ttf, woff; สุดท้าย คุณสามารถ file a request ใน Phabricator เพื่อให้แบบอักษรที่จะเพิ่มในส่วนขยาย

#Preparing webfonts ด้านล่างจะอธิบายวิธีการแปลงแบบอักษร: จำเป็นต้องมีความรู้พื้นฐานเกี่ยวกับระบบปฏิบัติการที่ใช้ GNU/Linux หากคุณมีปัญหาในการทำเช่นนี้ คุณสามารถข้ามขั้นตอนนี้และขอให้คนอื่นทำเพื่อคุณในคำขอฟาบริเคเตอร์เดียวกัน (แน่นอนว่าขั้นตอนนี้จะทำให้กระบวนการช้าลง)

การเตรียมเว็บฟอนต์

Creating .woff:

Use https://github.com/bramstein/sfnt2woff-zopfli to generate woff from ttf file. This will produce a compressed woff file.

กำลังสร้าง .woff2:

ใช้ https://github.com/google/woff2 เพื่อสร้าง woff2 จาก ttf สิ่งนี้จะสร้างไฟล์ woff2 ที่ถูกบีบอัด เบราว์เซอร์สมัยใหม่รองรับรูปแบบนี้

สร้างไฟล์ font.ini นี่คือตัวอย่าง:

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

[AbyssinicaSIL Bold]
ttf=AbyssinicaSIL-Bold.ttf
woff=AbyssinicaSIL-Bold.woff
woff2=AbyssinicaSIL-Bold.woff2

เครื่องหมายดอกจัน (*) หลังรหัสภาษาหมายความว่าแบบอักษรนี้จะเป็นแบบอักษรเริ่มต้นสำหรับภาษานั้น หากคุณต้องการตัวเลือกให้ใช้แบบอักษรนี้สำหรับภาษานั้นเท่านั้น อย่าใช้เครื่องหมายดอกจัน

หลังจากสร้างไฟล์แล้ว ให้ทำดังนี้:

  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-extensions-UniversalLanguageSelector Phabricator

การติดตั้ง

  • ดาวน์โหลดและวางไฟล์ลงในไดเร็กทอรีที่ชื่อ UniversalLanguageSelector ในโฟลเดอร์ extensions/ ของคุณ
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/UniversalLanguageSelector
  • เพิ่มโค้ดต่อไปนี้ไว้ที่ด้านล่างของ LocalSettings.php ของคุณ:
    wfLoadExtension( 'UniversalLanguageSelector' );
    
  •   สำเร็จ – ตรวจสอบที่ Special:Version บนวิกิของคุณเพื่อตรวจการติดตั้งส่วนขยาย


การติดตั้งโดยใช้ Vagrant:

  • หากคุณใช้ Vagrant สามารถติดตั้งได้โดยใช้ vagrant roles enable uls --provision

กำลังอัปเดต LanguageNameIndex

สำหรับการค้นหาแบบข้ามภาษา การค้นหา autonyms จะต้องเติมข้อมูลภาษา ULS มาพร้อมกับดัชนีชื่อภาษาที่เติมไว้ล่วงหน้า (data/langnames.ser) ในกรณีที่คุณต้องการอัปเดต ให้ติดตั้ง Extension:CLDR และอัปเดตข้อมูลด้วยคำสั่งต่อไปนี้

php UniversalLanguageSelector/data/LanguageNameIndexer.php

และตรวจสอบว่าไฟล์ 'langnames.ser ถูกสร้างขึ้นในโฟลเดอร์ ULS/data/

การกำหนดค่า

ตัวแปรต่อไปนี้ถูกสร้างขึ้นโดยอัตโนมัติในระหว่างการเริ่มต้นและสามารถใช้ได้จาก JavaScript โดยใช้ mw.config.get( NAME ):

  • wgULSLanguages - อาเรย์ที่คีย์เป็นรหัสภาษา และค่าเป็นชื่อภาษาในภาษาอังกฤษ
  • wgULSAacceptLanguageList - อาร์เรย์ของรหัสภาษาจากค่า Accept-Language ของผู้ใช้ นี่คือภาษาที่เลือกในการตั้งค่าเบราว์เซอร์ของผู้ใช้

สำหรับการแสดงแบบอักษร คุณอาจต้องการเพิ่มประเภท mime ต่อไปนี้ในเว็บเซิร์ฟเวอร์ของคุณ หากยังไม่มี คู่มือนี้ อาจช่วยได้

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

ตัวแปรต่อไปนี้สามารถกำหนดค่าได้:

  • $wgULSGeoService - ULS สามารถใช้บริการระบุตำแหน่งทางภูมิศาสตร์เพื่อแนะนำภาษาตามประเทศที่ผู้ใช้เข้ามา การตั้งค่านี้เป็นเท็จจะป้องกันไม่ให้มีการใช้ตำแหน่งทางภูมิศาสตร์ในตัว คุณสามารถระบุตำแหน่งทางภูมิศาสตร์ของคุณเองได้โดยการตั้งค่าหน้าต่าง ภูมิศาสตร์ไปยังวัตถุที่มีคีย์ 'country_code' หรือ 'country' หากตั้งค่าเป็น true จะสอบถามบริการ geoip ของ Wikimedia บริการควรส่งคืน jsonp ที่ใช้พารามิเตอร์การโทรกลับที่ให้มา ค่าเริ่มต้นเป็น http://freegeoip.net/json/ ( คำเตือน: เว็บไซต์นี้ปิดตัวลง API) และคาดว่าจะมีรูปแบบเดียวกัน
  • $wgULSEnable - เปิดใช้งานการเลือกภาษา ลิงก์ภาษาแบบย่อ วิธีการป้อนข้อมูล และแบบอักษรเว็บสำหรับทุกคน เว้นแต่พฤติกรรมจะถูกแทนที่โดยตัวแปรการกำหนดค่าด้านล่าง แม้ว่าคลาสและโมดูลตัวโหลดทรัพยากรจะเป็นเท็จสำหรับการใช้ส่วนขยายอื่น ๆ ไม่สามารถเปลี่ยนภาษาผ่านคุกกี้หรือพารามิเตอร์การค้นหา setlang
  • $wgULSAnonCanChangeLanguage - อนุญาตให้ผู้ใช้ที่ไม่ระบุชื่อเปลี่ยนภาษาด้วยคุกกี้และพารามิเตอร์การค้นหา setlang อย่าใช้หากคุณแคชการดูหน้าเว็บที่ไม่ระบุตัวตนโดยไม่ได้คำนึงถึงคุกกี้ ไม่มีผลใด ๆ หากตั้งค่า $wgULSEnable หรือ $wgULSEnableAnon เป็น false
  • $wgULSIMEEnabled - ปิดใช้งานคุณลักษณะวิธีการป้อนข้อมูลสำหรับผู้ใช้ทั้งหมดโดยค่าเริ่มต้น ผู้ใช้ยังสามารถเปิดใช้งานได้ด้วยตนเอง
  • $wgULSPosition - ตำแหน่งและรูปแบบของทริกเกอร์การเลือกภาษา ค่าที่เป็นไปได้คือ: ส่วนบุคคล: เป็นลิงก์ใกล้กับชื่อผู้ใช้หรือลิงก์เข้าสู่ระบบในแถบเครื่องมือส่วนบุคคล (ค่าเริ่มต้น) ภาษาต่าง ๆ: เป็นไอคอนใกล้กับส่วนหัวของรายการลิงก์ระหว่างภาษาในแถบด้านข้าง
  • $wgULSNoImeSelectors - อาร์เรย์ของตัวเลือก jQuery ขององค์ประกอบที่ต้องไม่เปิดใช้งาน IME เช่น [ '#wpCaptchaWord' ];
  • $wgULSLanguageDetection - จะตรวจหาภาษาของผู้ใช้โดยอัตโนมัติจากส่วนหัว Accept-Language หรือไม่

ตำแหน่งของทริกเกอร์ ULS

  • $wgULSPosition - ตำแหน่งและรูปแบบของทริกเกอร์การเลือกภาษา ค่าที่เป็นไปได้คือ: ส่วนบุคคล: เป็นลิงก์ใกล้กับชื่อผู้ใช้หรือลิงก์เข้าสู่ระบบในแถบเครื่องมือส่วนบุคคล (ค่าเริ่มต้น) ภาษาต่าง ๆ: เป็นไอคอนใกล้กับส่วนหัวของรายการลิงก์ระหว่างภาษาในแถบด้านข้าง

นอกจากนี้ยังสามารถเรียกใช้ ULS ได้ทุกที่ในหน้าจอ องค์ประกอบที่มี uls-settings-trigger จะทำหน้าที่เป็นทริกเกอร์ ULS

การแทนที่แบบอักษรเริ่มต้น

ULS มีที่เก็บแบบอักษรขนาดใหญ่เพื่อใช้เป็นแบบอักษรเว็บ บางครั้งมีหลายฟอนต์สำหรับภาษาหนึ่ง และมีฟอนต์เริ่มต้นสำหรับแต่ละภาษา/สคริปต์ ลำดับของแบบอักษรหรือแบบอักษรเริ่มต้นสามารถแทนที่ได้ดังนี้โดยใช้สคริปต์ส่วนกลาง (MediaWiki:Common.js) หรือสคริปต์ส่วนบุคคล (พิเศษ:MyPage/common.js):

การกำหนดค่าแคช

เพื่อให้แน่ใจว่าไฟล์ฟอนต์ของเว็บถูกแคชในเครื่องของไคลเอ็นต์ จะต้องเพิ่มประเภทไฟล์ฟอนต์ในการกำหนดค่าเว็บเซิร์ฟเวอร์ ใน Apache2 ประกอบด้วย:

  • การเพิ่มนามสกุลไฟล์ฟอนต์ให้กับ FileTimes regex ที่ FilesMatch สำหรับไดเร็กทอรีที่เกี่ยวข้อง เช่น

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

  • การเพิ่มค่า ExpiresByType ให้กับประเภท MIME ที่เกี่ยวข้อง เช่นเดียวกับประเภท MIME ของรูปภาพ
    • โปรดทราบว่าไม่มีประเภท MIME มาตรฐานสำหรับ TTF application/x-font-ttf ใช้สำหรับ Wikimedia
  • การเพิ่มประเภท MIME:
AddType font/woff .woff
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf

สำหรับตัวอย่างแบบเต็ม โปรดดูที่ caching configuration update done for Wikimedia cluster

การแปลหน้า

UniversalLanguageSelector เป็นหนึ่งในการขึ้นต่อกันของส่วนขยาย ส่วนขยาย:การแปล ซึ่งใช้สำหรับคุณสมบัติการเลือกภาษาต่าง ๆ หนึ่งในนั้นคือระบบ MyLanguage สำหรับลิงก์ ซึ่งขึ้นอยู่กับภาษาอินเทอร์เฟซของผู้ใช้ แต่สามารถกำหนดค่าได้มากกว่านั้น: ดู คุณสมบัติการแปลหน้า

การใช้เว็บฟอนต์

ผู้ใช้สามารถเลือกเว็บฟอนต์สำหรับภาษาจากการตั้งค่าภาษา -> การตั้งค่าการแสดงผล ตามค่าเริ่มต้น ฟอนต์แรกในเมนูนั้นจะถูกนำไปใช้กับวิกิ ผู้ใช้สามารถเปลี่ยนแบบอักษรและจะจดจำไว้ทั่วทั้งหน้า ผู้ใช้สามารถปิดใช้งานการฝังแบบอักษรด้วยการเลือกแบบอักษรของระบบ

หากแบบอักษรพร้อมใช้งานในระบบภายในของผู้ใช้ แบบอักษรจะไม่ถูกดาวน์โหลด จากเซิร์ฟเวอร์มีเดียวิกิ มันจะถูกนำมาจากคอมพิวเตอร์ของผู้ใช้ มิฉะนั้น ฟอนต์จะถูกดาวน์โหลดจากเซิร์ฟเวอร์เพียงครั้งเดียว คือเมื่อผู้ใช้เลือกแบบอักษรครั้งแรก ครั้งหน้าเป็นต้นไป แบบอักษรจะถูกนำออกจากแคชในเครื่อง

วิธีอื่นในการโหลดแบบอักษร

โดยระบุ font-family

ภายในข้อความวิกิ <span style="font-family:'YourFontName';">YourText</span> ส่วนขยายเว็บฟอนต์จะตรวจสอบว่าฟอนต์นั้นใช้ได้กับส่วนขยายหรือไม่ ถ้าใช่ จะเป็นการดาวน์โหลด ให้กับลูกค้า ดังนั้นผู้อ่านจะไม่ประสบปัญหาในการอ่านข้อความแม้ว่าแบบอักษรที่ระบุจะไม่พร้อมใช้งานในคอมพิวเตอร์ก็ตาม

โดยระบุภาษา

ภายในข้อความวิกิ <span lang="my">YourText</span> ส่วนขยายเว็บฟอนต์จะตรวจสอบว่าฟอนต์ใดๆ พร้อมใช้งานสำหรับภาษาที่กำหนดพร้อมกับส่วนขยายหรือไม่ หากมี จะเป็นการดาวน์โหลดลงใน ลูกค้า. ดังนั้นผู้อ่านจะไม่ประสบปัญหาในการอ่านข้อความแม้ว่าแบบอักษรที่ระบุจะไม่พร้อมใช้งานในคอมพิวเตอร์ก็ตาม หากมีหลายฟอนต์สำหรับภาษานั้น ฟอนต์เริ่มต้นจะถูกใช้ หากไม่ต้องการใช้ฟอนต์เริ่มต้น ให้ใช้วิธีตระกูลฟอนต์เพื่อระบุฟอนต์ หากแท็กมีทั้งคำจำกัดความของ lang และ font-family ตระกูล font-family จะมีความสำคัญ

ตัวอย่าง:

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

ให้ข้อความที่แสดงผลในรูปแบบ Cuneiform โดยใช้แบบอักษรอัคคาเดียน

𒄖𒉈𒅁𒌨𒅎

ดูเพิ่มเติม