ส่วนขยาย: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 | รวมอยู่ในชุดส่วนขยายภาษา |
|
|
เข้ากันไม่ได้กับ Internet Explorer 8 หรือต่ำกว่า. | |
Quarterly downloads | 221 (Ranked 30th) |
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 หากคุณมีปัญหาในการทำเช่นนี้ คุณสามารถข้ามขั้นตอนนี้และขอให้คนอื่นทำเพื่อคุณในคำขอฟาบริเคเตอร์เดียวกัน (แน่นอนว่าขั้นตอนนี้จะทำให้กระบวนการช้าลง)
การเตรียมเว็บฟอนต์
กำลังสร้าง .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
เครื่องหมายดอกจัน (*
) หลังรหัสภาษาหมายความว่าแบบอักษรนี้จะเป็นแบบอักษรเริ่มต้นสำหรับภาษานั้น หากคุณต้องการตัวเลือกให้ใช้แบบอักษรนี้สำหรับภาษานั้นเท่านั้น อย่าใช้เครื่องหมายดอกจัน
หลังจากสร้างไฟล์แล้ว ให้ทำดังนี้:
- สร้างไดเร็กทอรีสำหรับฟอนต์ภายใต้ 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 ต่อไปนี้ในเว็บเซิร์ฟเวอร์ของคุณ หากยังไม่มี คู่มือนี้ อาจช่วยได้
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 tofalse
.$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"];
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.
การกำหนดค่าแคช
เพื่อให้แน่ใจว่าไฟล์ฟอนต์ของเว็บถูกแคชในเครื่องของไคลเอ็นต์ จะต้องเพิ่มประเภทไฟล์ฟอนต์ในการกำหนดค่าเว็บเซิร์ฟเวอร์ ใน 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 โดยใช้แบบอักษรอัคคาเดียน
𒄖𒉈𒅁𒌨𒅎
ดูเพิ่มเติม
- 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. |