Su-siá thé-hē
This page gives basic information on support for various aspects of writing systems: languages written in multiple scripts; writing direction; font rendering and input.
Tó-tsióng bûn-jī, Tó-tsióng hong-giân
Many languages are written with multiple scripts. Often this is possible but lacks support in the software, and sometimes it is difficult if not impossible to implement. Some languages do have a LanguageConverter that adds support for multiple writing systems.
Some languages have very similar dialects that are written in the same script(s) and can—on a technical level—be treated in the same way as different scripts.
LanguageConverter
For documentation on how to use LanguageConverter, see Su-siá hē-thóng/Kù-huat
LanguageConverter (LC) is a system based on language variants that automatically converts the content of a page into a different variant. A variant is mostly the same language in a different script. To use the LanguageConverter, go to your Internationalisation preferences. If you are on a wiki that supports conversion, you'll see an extra option for choosing the script.
Phab:T21044 -- this needs more documentation!
It is implemented for the following languages (as of July 2023; see languagesWithVariants for the latest list):
- 峇里文 (ban): Balinese (ban-bali), Latin (ban-latn) [1.36+]
- 土耳其文(克里米亞半島) (crh): Latin (crh-latn), Cyrillic (crh-cyrl)
- 英文 (en): Normal (en), Pig Latin (en-x-piglatin) (for testing, only when $wgUsePigLatinVariant is enabled)
- 贛語 (gan): Simplified (gan-hans), Traditional (gan-hant)
- 因紐特文 (iu): Latin (ike-latn), Syllabics (ike-cans) [1.18+]
哈薩克文 (kk): Cyrillic (kk-cyrl), Latin (kk-latn), Arabic (kk-arab)Discontinued in 2023, see reasons at phab:T268143 and phab:T350684.- 庫德文 (ku): Latin (ku-latn), Arabic (ku-arab) [1.11+]
- 塞爾維亞克羅埃西亞文 (sh): Cyrillic (sh-cyrl), Latin (sh-latn) [1.40+]
- 希爾哈文 (shi): Tifinagh (shi-tfng), Latin (shi-latn) [1.19+]
- 塞爾維亞文 (sr): Cyrillic (sr-ec), Latin (sr-el)
- 塔吉克文 (tg): Cyrillic (tg-cyrl), Latin (tg-latn)
- 塔里什文 (tly): Cyrillic (tly-cyrl), Latin (tly-latn) [1.36+]
- 烏茲別克文 (uz): Cyrillic (uz-cyrl), Latin (uz-latin) [1.20+]
- 吳語 (wuu): Simplified (wuu-hans), Traditional (wuu-hant) [1.41+]
- 標準摩洛哥塔馬塞特文 (zgh): Tamazigh (zgh-tfng), Latin (zgh-latn) [1.42+]
- 中文 (zh):
- 簡體中文 (zh-hans): China (zh-cn), Singapore (zh-sg), Malaysia (zh-my)
- 繁體中文 (zh-hant): Taiwan (zh-tw), Hong Kong (zh-hk),[1] Macau (zh-mo)
And it is needed for many more languages!
Language code tags for scripts should follow the ISO 15924 standard.
However, for legacy reasons, 塞爾維亞文 is an exception, with sr-ec
instead of sr-cyrl
and sr-el
instead of sr-latn
. This is in disscusion in phab:T117845.
A current limitation of this system is that it may be particularly bad at dealing with multiple writing systems based on the same underlying script.
Chinese Wikipedians occasionally use =>
(unidirectional) for failing cases.
As LC always tries to eat up the largest chunks of words using strtr
in PHP, -{}-
(breaking up words) can be often useful too.
Tsi-tshî phuè-tī
The wgULS/wgUVS functions in zhwp's sitelib (now deprecated, see zh:Wikipedia:HanAssist for the current version) allows for easy variant selection in userscript UIs.
This can help scriptwriters produce a variant-aware interface for users.
For other places unreachable by LC, {{int:Conversionname}}
can be used to fetch the current UI language/variant.
The PreviewWithVariant gadget allows Wikipedians to check conversion results in the editor preview. You can configure it for your own wiki.
"Foreign language marker" templates like {{lang}} should add "disable conversion" markers -{ text }-
around the quoted foreign text to avoid mis-conversion.
On Hans/Hant wikipedias this becomes a concern for Japanese Kanji and Vietnamese Han Nom, while on Wikipedias with Latin text marked for conversion this concern should be immediate.
The WikitextLC module allows for easily inserting LC commands to Lua output. The NoteTA and CGroup system allow for accessing pre-defined sets of subject-specific conversions. Module:地区用词 allows for an adaptive output of the form "foo, known in PLACE and PLACE as bar, and PLACE as baz".
Automated title redirection on URLs may cause apparent inconvenience for interfaces without this feature. See T49725 for the Lua task and T160952 for the section-anchor task.
URL Redirection
In some installations of MediaWiki, a short URL is employed.
For example, in Chinese Wikipedia, instead of https://zh.wikipedia.org/wiki/维基百科
(if no variant is specified) or https://zh.wikipedia.org/w/index.php?title=维基百科&variant=zh-cn
(if the variant is specified without rewrite rules), a shortened URL such as https://zh.wikipedia.org/zh-cn/维基百科
can be used as a temporary link to the specified script variant (zh-cn
in this case).
This behaviour can be seen several language Wikipedia such as Chinese Wikipedia, Serbian Wikipedia, etc.
However, others like Gan Chinese Wikipedia and Balinese Wikipedia often keeps the long url with index.php&variant=
.
This is controlled by $wgVariantArticlePath and web server rewrite rules (see manuals for short URL in Apache and nginx ).
Tsham-ua̍t
- m:Automatic conversion between simplified and traditional Chinese
- m:Wikipedias in multiple writing systems
- Specs/HTML#Language conversion blocks
- Parsoid/Language conversion
Hong-hiòng-sìng
Most writing systems operate as characters written left-to-right (LTR), with lines stacked from top-to-bottom (TtB).
A few common scripts (Arabic and Hebrew in particular) write characters right-to-left (RTL) -- see directionality support for more details on how we handle right-to-left and mixed bidirectional text with HTML output and CSS styles.
Note that an individual language can be used with scripts that have different directionalities, such as Kazakh and Kurdish which support Latin and Arabic variants.
Note also that the World Wide Web Consortium has defined more directionalities for the use in web pages, such as North East Asian top-to-bottom ones, with lines stacked either from left to right or right to left.[2]
Jī-thé sán-sing ham su-ji̍p
Many scripts do not have proper fonts easily available to users. This may be because operating systems do not ship these fonts, or users don't know how to install them or don't have enough permissions to do this. The UniversalLanguageSelector extension tries to solve this by embedding the fonts in the wiki itself. Fonts will be served from the server and the user's system would not need to have the fonts installed.
UniversalLanguageSelector adds support to be able to type a certain script, so users do not have to rely on external tools or support on their systems.
Tsham-khó bûn-hiàn
- ↑ Taiwan and Hong Kong are two major variants written in the same Traditional script with significant differences in phrase usage due to market separation and influence from local
zho
languages, so you likely want to at least keep CN, TW, and HK in your list of variants. If you insist on flattening the scope of Chinese variants to a script-based Simp/Trad separation, follow what the reporter did in phab:T149278. - ↑ CSS Writing Modes Level 3