Jump to content

ส่วนขยาย:UniversalLanguageSelector

From mediawiki.org
This page is a translated version of the page Extension:UniversalLanguageSelector and the translation is 66% 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-07-16
Compatibility policy Master maintains backward compatibility.
MediaWiki >= 1.41.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 241 (Ranked 26th)
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. การเลือกขึ้นอยู่กับภูมิภาคตามการสืบค้น การค้นหา
    1. การค้นหาขึ้นอยู่กับรหัสภาษา ISO ชื่อภาษาที่เขียนในภาษาอินเทอร์เฟซผู้ใช้ปัจจุบันหรือในสคริปต์ของตัวเอง (autoonym)
    1. ค้นหาข้ามภาษา - ค้นหาชื่อภาษาโดยใช้สคริปต์ใดก็ได้
    1. การเติมชื่อภาษาอัตโนมัติ
    2. การแก้ไขข้อผิดพลาดการสะกดคำในสตริงการค้นหาโดยอัตโนมัติ
    3. คำแนะนำภาษาตามภูมิศาสตร์ IP
    4. การเลือกภาษาตามเบราว์เซอร์ของผู้ใช้/ภาษาระบบปฏิบัติการ
  1. วิธีการป้อนข้อมูล
    ดู Help:Extension:UniversalLanguageSelector/Input methods สำหรับคำแนะนำที่สมบูรณ์
    1. คอลเล็กชันวิธีการป้อนข้อมูลที่เลือกได้ง่าย พร้อมให้ใช้งานในทุกช่องที่แก้ไขได้
    1. จัดเตรียมวิธีการป้อนข้อมูลจำนวนมากสำหรับภาษาต่าง ๆ มากมาย
    1. การตั้งค่าวิธีการป้อนข้อมูลตามภาษา
  1. เว็บฟอนต์
    1. คอลเลกชั่นฟอนต์ขนาดใหญ่ให้เลือกสำหรับแต่ละภาษาเพื่อใช้เป็นฟอนต์แบบฝังสำหรับเพจ
    1. การตั้งค่าแบบอักษรตามภาษา
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 หากคุณมีปัญหาในการทำเช่นนี้ คุณสามารถข้ามขั้นตอนนี้และขอให้คนอื่นทำเพื่อคุณในคำขอฟาบริเคเตอร์เดียวกัน (แน่นอนว่าขั้นตอนนี้จะทำให้กระบวนการช้าลง)

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

กำลังสร้าง .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
request-url=https://phabricator.wikimedia.org/[Task Number]
woff2=AbyssinicaSIL.woff2
bold=AbyssinicaSIL Bold

[AbyssinicaSIL Bold]
woff2=AbyssinicaSIL-Bold.woff2
fontweight=bold

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

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

  1. สร้างไดเร็กทอรีสำหรับฟอนต์ภายใต้ data/fontrepo/fonts
  1. ใส่ไฟล์ ttf, woff, eot และ font.ini ลงในไดเร็กทอรีนั้นแล้วเพิ่มลงในที่เก็บซอร์ส (git add)
  1. ไปที่ไดเรกทอรี scripts/ และเรียกใช้ php compile-font-repo.php
  1. ยอมรับการเปลี่ยนแปลงไปยังที่เก็บ (git commit -a) และส่งตาม เวิร์กโฟลว์ Git

เพิ่มการรองรับการแมปคีย์ใหม่ (วิธีการป้อนข้อมูล)

ทำตาม $jquery แต่ยื่นคำขอในผลิตภัณฑ์ 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' );
    
  • Yes สำเร็จ – ตรวจสอบที่ 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 ต่อไปนี้ในเว็บเซิร์ฟเวอร์ของคุณ หากยังไม่มี คู่มือนี้ อาจช่วยได้

AddType font/woff2 .woff2

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

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

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

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

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

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

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

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

ในกรณีนี้ LanguageCode ควรเป็นโค้ดภาษาที่ใช้ได้ (เช่น en, hi, nl) FontA และ FontB เป็นฟอนต์ที่สามารถใช้ได้ในสํานักเก็บตัวอักษร ในตัวอย่างด้านบนสําหรับ languageCode เราตั้ง font ที่มีในคอมพิวเตอร์ท้องถิ่นเป็น font แอนด์เทพ คือ ไม่มีเว็บฟอนต์ตามปกติ

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

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

  • การเพิ่มนามสกุลไฟล์ฟอนต์ให้กับ FileTimes regex ที่ FilesMatch สำหรับไดเร็กทอรีที่เกี่ยวข้อง เช่น
<FilesMatch "\.(gif|jpe?g|png|css|js|woff2|svg)$">
  • การเพิ่มค่า ExpiresByType ให้กับประเภท MIME ที่เกี่ยวข้อง เช่นเดียวกับประเภท MIME ของรูปภาพ
    • โปรดทราบว่าไม่มีประเภท MIME มาตรฐานสำหรับ TTF application/x-font-ttf ใช้สำหรับ Wikimedia
  • การเพิ่มประเภท MIME:
AddType font/woff2 .woff2

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

การแปลหน้า

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

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

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

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

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

โดยระบุ font-family

ภายในข้อความวิกิ <span style="font-family:'YourFontName';">YourText</span> ส่วนขยายเว็บฟอนต์จะตรวจสอบว่าฟอนต์นั้นใช้ได้กับส่วนขยายหรือไม่ ถ้าใช่ จะเป็นการดาวน์โหลด ให้กับลูกค้า ดังนั้นผู้อ่านจะไม่ประสบปัญหาในการอ่านข้อความแม้ว่าแบบอักษรที่ระบุจะไม่พร้อมใช้งานในคอมพิวเตอร์ก็ตาม So the reader will not face any difficulty reading the text even if the specified font is not available on their computer.

โดยระบุภาษา

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

ตัวอย่าง:

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

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

𒄖𒉈𒅁𒌨𒅎

ดูเพิ่มเติม