Wiktionary:Scripts


 * This page is about writing systems. For information about programming in Lua, see Scribunto.
 * For a list of all script codes, see List of scripts.

Scripts, or writing systems, are groups of characters.

Conventions
In Wiktionary, each script is recognized by a code and a name. The script codes are usually, but not always, ISO 15924 codes (appendix, unicode.org). For example:
 * : Arabic script
 * : Cyrillic script
 * : Latin script

Some Wiktionary script codes (used for particular languages' varieties of scripts) are named by combining an ISO script code and a Wiktionary language code.
 * : Arabic script (of Persian language)
 * : Arabic script (of Kashmiri language)
 * : Arabic script (of Ottoman Turkish language)
 * : Arabic script (of Punjabi language)
 * : Latin script (of Pitjantjatjara language)
 * : Arabic script (of Urdu language)

There are also some exceptionally-named codes:
 * : Meant for no formatting at all. This is used as a kind of "blank" or "unknown" script, by languages that don't have a script specified yet in Module:languages.
 * : Meant for Ancient (as opposed to modern) Greek text, which uses polytonic diacritics.
 * : Meant for musical notation symbols.
 * : Meant for Morse code symbols.
 * : Meant for flag semaphore symbols.
 * : Meant for characters from the International Phonetic Alphabet (IPA).
 * : Meant for Rumi numerals (see ).

Functions
These scripts serve a number of functions.

Organization
According to our CFI, Wiktionary—as a dictionary of all words in all languages—includes definitions for individual characters. We therefore need to know which scripts the characters are part of; this knowledge also helps us organize them by means of categorization and further explanation in appendices.

Scripts are defined in Module:scripts/data.

Formatting
Additionally, pieces of text may be formatted according to which script they are in by HTML spans wrapped around them. In theory browsers should handle formatting automatically, but in practice they do not do a good job. Therefore, formatting (text-direction, font-family, or font-size formatting) is controlled by applying an HTML class attribute (which can be used to format the text using Wiktionary's central Cascading Style Sheet (CSS), a registered editor's user style sheet, or a web browser's user style sheet) or an inline style attribute.

Applying scripts to text
For the purpose of formatting text, there is the template, which serves as a wrapper for predetermined formatting conventions. It is a "base" template that applies only the language and script-specific formatting, but does not do anything else. It can be used in situations when it is desirable to write non-Latin text in general. This template takes a required language code parameter, and the text to be wrapped. The optional sc parameter is used to override the autodetected script, if necessary. The face parameter can be used to apply a specific style to the text, and can be,  ,  , or empty for normal text. This allows italic and bold effects to be implemented in a script-specific way, with formatting that is appropriate for the conventions of that script, as well as to enhance readability.

Most other templates that show non-English text also have a language parameter, and a sc parameter to override the autodetected script. This includes widely-used templates like, , , and :


 * displays вријеме (the Wikipedia language code for Serbo-Croatian is )
 * displays
 * displays
 * displays вријеме

Most templates, including all of those listed above, perform automatic detection of scripts. They will look at the text that was provided, and try to judge which of the language's scripts (specified in the Module:languages data submodules) is being used. Therefore, the sc parameter is almost never needed. However, it is necessary to provide it if the text is written in a script that is not one of the recognised scripts for that language.


 * displays (the default script of Serbo-Croatian is "Latn"...)
 * displays (...but the template will also recognise text written in any other possible scripts listed for Serbo-Croatian, which is Cyrillic in this case)
 * displays (however, if you want to write Greek letters in Serbo-Croatian, you need to provide the script code, since Greek is not one of the normal scripts for Serbo-Croatian)

Where script parameter is needed
In the vast majority of cases, sc is not needed. Some examples of where it is:
 * — in Greek when the term contains no Greek characters but is used in Greek-script text
 * — in Chinese neologisms (borrowed chiefly from English), when a word in Latin script is used in Han-script text, and is not a romanization so should not be tagged as  (Latin script)
 * — neutral-tone pinyin syllable, automatically detected as Latin script
 * in Romanian which uses  (Cyrillic) and   (Old Cyrillic), which have the same characters, but where   represents modern Moldovan and   represents an older Cyrillic orthography

List of script codes
As of April 2023, Wiktionary has incorporated all ISO 15924 codes (see Appendix:ISO 15924) except these:. (The ISO also reserved several [spaces for] codes; these have not been incorporated.)

Wiktionary also uses several codes which are not listed in ISO 15924. These are included in the central list of scripts, and include codes for varieties of Arabic (, etc), varieties of Latin , polytonic Greek and some other things (such as  ), as well as codes for musical notation  and the IPA. The code  functions like a script code in some ways.