ส่วนขยาย:UniversalLanguageSelector
![]() Release status: stable |
|
---|---|
![]() |
|
Implementation | User interface, Skin , Beta Feature |
Description | เครื่องมือที่อนุญาตให้ผู้ใช้เลือกภาษาและกำหนดค่าการสนับสนุนในวิธีที่ง่าย |
Author(s) | ทีมภาษาวิกิมีเดีย |
Latest version | 2023-12-01 |
Compatibility policy | Master maintains backward compatibility. |
MediaWiki | >= 1.39.0 |
Composer | mediawiki/universal-language-selector |
License | |
Download | รวมอยู่ในชุดส่วนขยายภาษา |
|
|
เข้ากันไม่ได้กับ Internet Explorer 8 หรือต่ำกว่า. | |
Quarterly downloads | 204 (Ranked 42nd) |
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 สำหรับประวัติและข้อมูลเพิ่มเติม
การใช้งาน
จุดมุ่งหมายหลักคือ การอนุญาตให้ผู้ใช้เลือกภาษาและกำหนดค่าการสนับสนุนในวิธีที่ง่าย
ส่วนขยายมีคุณสมบัติดังต่อไปนี้:
- วิธีที่ยืดหยุ่นและง่ายในการเลือกภาษาจากชุดภาษาขนาดใหญ่
- การเลือกขึ้นอยู่กับภูมิภาคตามการสืบค้น การค้นหา
- การค้นหาขึ้นอยู่กับรหัสภาษา ISO ชื่อภาษาที่เขียนในภาษาอินเทอร์เฟซผู้ใช้ปัจจุบันหรือในสคริปต์ของตัวเอง (autoonym)
- ค้นหาข้ามภาษา - ค้นหาชื่อภาษาโดยใช้สคริปต์ใดก็ได้
- การเติมชื่อภาษาอัตโนมัติ
- การแก้ไขข้อผิดพลาดการสะกดคำในสตริงการค้นหาโดยอัตโนมัติ
- คำแนะนำภาษาตามภูมิศาสตร์ IP
- การเลือกภาษาตามเบราว์เซอร์ของผู้ใช้/ภาษาระบบปฏิบัติการ
- วิธีการป้อนข้อมูล
- ดู Help:Extension:UniversalLanguageSelector/Input methods สำหรับคำแนะนำที่สมบูรณ์
- คอลเล็กชันวิธีการป้อนข้อมูลที่เลือกได้ง่าย พร้อมให้ใช้งานในทุกช่องที่แก้ไขได้
- จัดเตรียมวิธีการป้อนข้อมูลจำนวนมากสำหรับภาษาต่าง ๆ มากมาย
- รายการที่ล้าสมัยสามารถดูได้ที่ ส่วนขยาย:Narayam#แผนงานที่รองรับ
- การตั้งค่าวิธีการป้อนข้อมูลตามภาษา
- เว็บฟอนต์
- คอลเลกชั่นฟอนต์ขนาดใหญ่ให้เลือกสำหรับแต่ละภาษาเพื่อใช้เป็นฟอนต์แบบฝังสำหรับเพจ
- คุณสามารถเรียกดู รวมฟอนต์ทั้งหมด
- การตั้งค่าแบบอักษรตามภาษา
- คอลเลกชั่นฟอนต์ขนาดใหญ่ให้เลือกสำหรับแต่ละภาษาเพื่อใช้เป็นฟอนต์แบบฝังสำหรับเพจ





กำลังเพิ่มแบบอักษร
การสนับสนุนภาษาอื่น ๆ เป็นเพียงเรื่องของการรวมแบบอักษรที่เหมาะสมในโค้ดเท่านั้น อย่างไรก็ตาม โปรดทราบว่าเราจะเพิ่มการรองรับเฉพาะฟอนต์ 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
เครื่องหมายดอกจัน (*
) หลังรหัสภาษาหมายความว่าแบบอักษรนี้จะเป็นแบบอักษรเริ่มต้นสำหรับภาษานั้น หากคุณต้องการตัวเลือกให้ใช้แบบอักษรนี้สำหรับภาษานั้นเท่านั้น อย่าใช้เครื่องหมายดอกจัน
หลังจากสร้างไฟล์แล้ว ให้ทำดังนี้:
- สร้างไดเร็กทอรีสำหรับฟอนต์ภายใต้ data/fontrepo/fonts
- ใส่ไฟล์ ttf, woff, eot และ font.ini ลงในไดเร็กทอรีนั้นแล้วเพิ่มลงในที่เก็บซอร์ส (
git add
) - ไปที่ไดเรกทอรี
scripts/
และเรียกใช้php compile-font-repo.php
- ยอมรับการเปลี่ยนแปลงไปยังที่เก็บ (
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 โดยใช้แบบอักษรอัคคาเดียน
𒄖𒉈𒅁𒌨𒅎
ดูเพิ่มเติม
- Universal Language Selector
- กรอบตัวเลือกภาษาสากล/การออกแบบการโต้ตอบ
- ตัวเลือกภาษาสากล/การออกแบบทางเทคนิค
- รายละเอียดทางเทคนิคของคุณสมบัติ Webfonts ของ Universal Language Selector
- Extension:Google Translator
![]() | ส่วนขยายมีเดียวิกินี้ถูกใช้ในหนึ่งหรือหลายที่ในโครงการของวิกิมีเดีย นั่นควรจะหมายถึงว่าส่วนขยายนี้มีความเสถียรสูงและทำงานได้ดีพอในเว็ปไซต์ที่มีการเยี่ยมชมมาก ลองดูที่ชื่อของส่วนขยายนี้ในไฟล์การตั้งค่า CommonSettings.php และ InitialiseSettings.php เพื่อดูการติดตั้งว่าอยู่ที่ใด รายการฉบับสมบูรณ์ของส่วนขยายที่ติดตั้งแล้วได้ที่หน้า Special:Version ของวิกิ |
![]() | This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |
- Stable extensions/th
- User interface extensions/th
- Skin extensions/th
- Beta Feature extensions/th
- Extensions supporting Composer/th
- GPL licensed extensions/th
- MIT licensed extensions/th
- Extensions with unknown license/th
- Extensions in Wikimedia version control/th
- BeforePageDisplay extensions/th
- GetBetaFeaturePreferences extensions/th
- GetPreferences extensions/th
- MakeGlobalVariablesScript extensions/th
- ResourceLoaderGetConfigVars extensions/th
- SkinAfterPortlet extensions/th
- SkinTemplateNavigation::Universal extensions/th
- UserGetLanguageObject extensions/th
- All extensions/th
- Extensions used on Wikimedia/th
- Extensions included in Canasta/th
- Extensions included in Miraheze/th
- Extensions included in MyWikis/th
- Extensions included in ProWiki/th
- Extensions included in WikiForge/th
- Extensions included in WikiTide/th
- Localisation extensions/th
- Universal Language Selector/th