Extension:UniversalLanguageSelector/th

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

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

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


 * 1) วิธีที่ยืดหยุ่นและง่ายในการเลือกภาษาจากชุดภาษาขนาดใหญ่
 * 2) การเลือกขึ้นอยู่กับภูมิภาคตามการสืบค้น การค้นหา
 * 3) การค้นหาขึ้นอยู่กับรหัสภาษา ISO ชื่อภาษาที่เขียนในภาษาอินเทอร์เฟซผู้ใช้ปัจจุบันหรือในสคริปต์ของตัวเอง (autoonym)
 * 4) ค้นหาข้ามภาษา - ค้นหาชื่อภาษาโดยใช้สคริปต์ใดก็ได้
 * 5) การเติมชื่อภาษาอัตโนมัติ
 * 6) การแก้ไขข้อผิดพลาดการสะกดคำในสตริงการค้นหาโดยอัตโนมัติ
 * 7) คำแนะนำภาษาตามภูมิศาสตร์ IP
 * 8) การเลือกภาษาตามเบราว์เซอร์ของผู้ใช้/ภาษาระบบปฏิบัติการ
 * 9) วิธีการป้อนข้อมูล
 * ดู สำหรับคำแนะนำที่สมบูรณ์
 * 1) คอลเล็กชันวิธีการป้อนข้อมูลที่เลือกได้ง่าย พร้อมให้ใช้งานในทุกช่องที่แก้ไขได้
 * 2) จัดเตรียมวิธีการป้อนข้อมูลจำนวนมากสำหรับภาษาต่าง ๆ มากมาย
 * 3) * รายการที่ล้าสมัยสามารถดูได้ที่ ส่วนขยาย:Narayam#แผนงานที่รองรับ
 * 4) การตั้งค่าวิธีการป้อนข้อมูลตามภาษา
 * 5) เว็บฟอนต์
 * 6) คอลเลกชั่นฟอนต์ขนาดใหญ่ให้เลือกสำหรับแต่ละภาษาเพื่อใช้เป็นฟอนต์แบบฝังสำหรับเพจ
 * 7) * สามารถดูรายการที่ล้าสมัยได้ที่ Extension:WebFonts#Supported languages
 * 8) * คุณสามารถเรียกดู รวมฟอนต์ทั้งหมด
 * 9) การตั้งค่าแบบอักษรตามภาษา



กำลังเพิ่มแบบอักษร
การสนับสนุนภาษาอื่น ๆ เป็นเพียงเรื่องของการรวมแบบอักษรที่เหมาะสมในโค้ดเท่านั้น อย่างไรก็ตาม โปรดทราบว่าเราจะเพิ่มการรองรับเฉพาะฟอนต์ freely licensed เท่านั้น ตัวอย่างเช่น ฟอนต์ที่ได้รับอนุญาตภายใต้ GNU GPL, SIL OFL เป็นต้น ไดเร็กทอรีตัวอย่างของฟอนต์ฟรีดังกล่าวคือ Google Fonts (ไม่ใช่ ยังตรวจสอบ/ใช้ประโยชน์อย่างเต็มที่โดยผู้เขียนส่วนขยายนี้) โปรดดูที่ 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 นี่คือตัวอย่าง:

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

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


 * 1) สร้างไดเร็กทอรีสำหรับฟอนต์ภายใต้ data/fontrepo/fonts
 * 2) ใส่ไฟล์ ttf, woff, eot และ font.ini ลงในไดเร็กทอรีนั้นแล้วเพิ่มลงในที่เก็บซอร์ส
 * 3) ไปที่ไดเรกทอรี   และเรียกใช้
 * 4) ยอมรับการเปลี่ยนแปลงไปยังที่เก็บ  และส่งตาม เวิร์กโฟลว์ Git

เพิ่มการรองรับการแมปคีย์ใหม่ (วิธีการป้อนข้อมูล)
ทำตาม instructions on the jquery.ime github wiki แต่ยื่นคำขอในผลิตภัณฑ์ Wikimedia-extensions-UniversalLanguageSelector Phabricator

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

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

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


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

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

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

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


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

Position of ULS trigger

 * - The location and the form of the language selection trigger. The possible values are: : as a link near the username or the log in link in the personal toolbar (default).  : as an icon near the header of the list of interlanguage links in the sidebar.

It is also possible to have ULS trigger anywhere in the screen. An element with  will act as a ULS trigger.

Overriding default fonts
ULS has a large font repository to serve as webfonts. 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):

Caching configuration
To ensure that the web fonts files are cached on the clients' machines, font file types must be added to the web server configuration. In Apache2 this consists of:


 * Adding font file extensions to the FileTimes regex at FilesMatch for the relevant directory, example:
 * Adding ExpiresByType values to the relevant MIME types, similarly to image MIME types.
 * Note that there's no standard MIME type for TTF. application/x-font-ttf is used for Wikimedia.
 * Adding the MIME types:

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

For a full example see the caching configuration update done for the Wikimedia cluster.

Page translation
UniversalLanguageSelector is one of the dependencies of the extension, which uses it for several language selection features. One of it is the MyLanguage system for links, which depends on the interface language of the user, but more can be configured: see Page translation feature.

Using Webfonts
User can choose webfonts for a language from the Language settings -> Display settings. By default, the first font in that menu will be applied to the wiki. A user can change the font and it will be remembered across the pages. Optionally user can disable the font embedding too by selecting system font.

If the font is available in user's local system, font will not be downloaded from the mediawiki server. It will be taken from the user's computer. Otherwise, font will be downloaded from the server only once. ie when the user selects the font first time. Next time onwards, font will be taken from the local cache.

By specifying font-family
Inside the wiki text YourText, webfonts extension will check whether the font is available with the extension, if so it will download it to the client. So the reader will not face any difficulty in reading the text even if the font specified is not available in their computer.

By specifying language
Inside the wiki text YourText, webfonts extension will check whether any font is available for the given language with the extension, if so it will download it to the client. So the reader will not face any difficulty in reading the text even if the font specified is not available in their computer. If there are multiple fonts for the language, the default font will be used. If 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 get precedence.

Example:

𒄖𒉈𒅁𒌨𒅎

gives the text rendered in Cuneiform using Akkadian font

𒄖𒉈𒅁𒌨𒅎