1 ##########################################################################
3 # Languages supported by LyX.
9 # HasGuiSupport <true|false>
10 # BabelName <babelname>
11 # PolyglossiaName <polyglossianame>
12 # PolyglossiaOpts "<language-specific options>"
13 # QuoteStyle <british|danish|english|french|frenchin|
14 # german|polish|russian|swedish|swedishg|swiss|plain>
16 # FontEncoding <font encoding|font encoding|...]>
17 # InternalEncoding <true|false>
19 # AsBabelOptions <true|false>
20 # LangCode <language_code>
21 # LangVariety <language_variety>
23 # <extra latex code inserted before babel>
26 # <extra latex code inserted after babel>
27 # EndPostBabelPreamble
28 # Requires <requirement>
29 # Provides <babel language feature>
35 # * If we provide Polyglossia languages with different options, the default
36 # options (such as "variant=american", "spelling=modern") should be
37 # explicitely spelled out (in order to provide mixing of such variants).
38 # * Omitted elements will be treated as empty (if string) or "false"
40 # * When HasGuiSupport is true, the language is candidate to appear in
41 # the list of possible GUI languages in the Preferences dialog. It
42 # will actually appear there only if a corresponding .mo file can be
43 # found among the translations. When several languages correspond to
44 # the same translation -- like English, English (US) and English
45 # (UK) -- try to select the entry that is most generic -- here
47 # * The QuoteStyle arguments correspond to the following styles:
49 # - british: `text' ``text'' (6_9 -- 66_99)
50 # - cjk: corner brackets white corner br.
51 # - cjk-angle: double angle br. angle br.
52 # - danish: >>text<< >text< (inward guillemets)
53 # - english: ``text'' `text' (66_99 -- 6_9)
54 # - french: <<text>> ``text'' (outward guillemets -- 66_99)
55 # - frenchin: <<text>> <<text>> (French Imprimerie Nationale style)
56 # - german: ,,text`` ,text` (99/66 -- 9/6)
57 # - polish: ,,text'' ,text' (99/99 -- 9/9)
58 # - russian: <<text>> ,,text`` (outward guillemets -- 99/66)
59 # - swedish: ''text'' 'text' (99_99 -- 9_9)
60 # - swedishg: >>text>> 'text' (Swedish Guillemets)
61 # - swiss: <<text>> <text> (outward guillemets)
62 # - plain: "text" 'text' (non-typographical quotes)
63 # Note that the option names have been selected (rather arbitrarily)
64 # because the respective styles are common in the respective countries.
65 # Of course this does not imply any fixed relation to those countries.
66 # * Encoding is the default encoding used with TeX fonts.
67 # It is only used if Document > Settings > Language > Encoding
68 # is set to "Language Default" and "use non-TeX fonts" is FALSE.
69 # Encoding "inherit" means: keep encoding of the context (used by
71 # * FontEncoding is a bar-separated list of font encodings.
72 # The first value is the required font encoding for correct hyphenation with
73 # 8-bit TeX (http://www.hyphenation.org). Eventually following values may be
74 # used if the selected font is unavailable in FontEncoding. They provide all
75 # letters used in the language, but some only as "surrogate pairs" with
76 # possible problems for hyphenation and drag-and-drop from the generated
78 # If not given, all standard text encodings (T<n>) as well as OT1 work.
79 # * "FontEncoding none" tells LyX that fontenc should not be loaded with this
81 # * "FontEncoding ASCII" means: "works with any standard text encoding
83 # * InternalEncoding is used to tell LyX that babel internally sets a
84 # non-standard font encoding (such as hebrew to LHE or greek to LGR).
85 # If True, LyX takes care for characters/macros that do not exist in
86 # some font encodings ("<", ">", "|" and straight quote).
87 # It is not required for standard encodings like T2A. See bug #5091.
88 # * AsBabelOptions advices LyX to pass the languages locally to babel, not
89 # globally to the class. Some languages (basically those not directly
90 # supported by babel) need this.
91 # FIXME: in this case, we might still need to pass the other languages
92 # globally, for the use of other packages (such as varioref).
93 # * LangCode is also used for spellchecking and thesaurus, where the
94 # dictionaries are named accordingly. Thus, check this when introducing/
95 # changing language codes (especially aspell, thesaurus).
96 # TODO: maybe use Best Current Practice (BCP 47) codes for LangCode
97 # http://www.rfc-editor.org/rfc/bcp/bcp47.txt
98 # http://www.w3.org/International/articles/language-tags/
99 # http://www.iana.org/assignments/language-subtag-registry
100 # * LangVariety is used by the aspell spellchecker to differentiate
101 # dictionaries for different varieties of a given language (e.g. German
102 # pre-1998 and post-1998 spelling). The aspell dictionaries are named
103 # language[_REGION][-variety].multi, e.g. de-alt.multi for "German (old
104 # spelling)" (see http://aspell.net/man-html/Dictionary-Naming.html)
105 # * Provides lists features that are provided by specific Babel languages,
106 # but are available globally if this language is used (not only for this
107 # language. Examples are \textgreek (Greek) and \textcyrillic (Russian).
109 ##########################################################################
112 # LyX-internal languages
118 PolyglossiaName ignore
133 # not yet supported by polyglossia
143 # FontEncoding: no hyphenation, but uses Ç/ç und Ë/ë
147 PolyglossiaName albanian
155 GuiName "English (USA)"
157 PolyglossiaName english
158 PolyglossiaOpts "variant=american"
165 # not supported by babel
168 PolyglossiaName amharic
173 # In Babel, this is supported since v. 1.8a of babel-greek (2013-12-03)
174 # We introduce it with LyX 2.2 to give the support time to settle.
175 Language ancientgreek
176 GuiName "Greek (ancient)"
179 \languageattribute{greek}{ancient}
181 PolyglossiaName greek
182 PolyglossiaOpts "variant=ancient"
185 InternalEncoding true
191 # FIXME: dummy babel language for arabic_arabtex to be able
192 # to switch the language the way of the ArabTeX-package
193 Language arabic_arabtex
194 GuiName "Arabic (ArabTeX)"
203 # polyglossia uses "Arabic" for the lang environment
204 Language arabic_arabi
205 GuiName "Arabic (Arabi)"
207 PolyglossiaName arabic
216 # not supported by babel
219 PolyglossiaName armenian
225 # not supported by babel
228 PolyglossiaName asturian
236 GuiName "English (Australia)"
238 PolyglossiaName english
239 PolyglossiaOpts "variant=australian"
246 # In polyglossia, this is supported since release 1.33.4 (May 2014)
247 # We introduce it with LyX 2.2 to give the support time to settle.
248 # Due to the variety, we use no country code.
250 GuiName "German (Austria, old spelling)"
252 PolyglossiaName german
253 PolyglossiaOpts "variant=austrian,spelling=old,babelshorthands=true"
261 # In polyglossia, this is supported since release 1.33.4 (May 2014)
262 # We introduce it with LyX 2.2 to give the support time to settle.
264 GuiName "German (Austria)"
266 PolyglossiaName german
267 PolyglossiaOpts "variant=austrian,spelling=new,babelshorthands=true"
278 PolyglossiaName bahasai
288 PolyglossiaName bahasam
298 PolyglossiaName basque
304 \addto\extrasbasque{\bbl@deactivate{~}}
308 # not yet supported by polyglossia
319 # not yet supported by polyglossia
330 GuiName "Portuguese (Brazil)"
333 PolyglossiaName brazil
340 # FontEncoding: # ? no hyphenation, but uses ñ
344 PolyglossiaName breton
352 GuiName "English (UK)"
354 PolyglossiaName english
355 PolyglossiaOpts "variant=british"
365 PolyglossiaName bulgarian
370 Provides textcyrillic
373 # not yet supported by polyglossia
375 GuiName "English (Canada)"
377 # PolyglossiaName english
378 # PolyglossiaOpts "variant=canadian"
385 # not yet supported by polyglossia
386 # Note: If polyglossia support gets implemented, french needs
387 # PolyglossiaOpts "variant=french"
389 GuiName "French (Canada)"
391 # PolyglossiaName french
392 # PolyglossiaOpts "variant=canadien"
403 PolyglossiaName catalan
404 PolyglossiaOpts "babelshorthands=true"
412 Language chinese-simplified
413 GuiName "Chinese (simplified)"
422 Language chinese-traditional
423 GuiName "Chinese (traditional)"
431 # not supported by babel
434 PolyglossiaName coptic
442 PolyglossiaName croatian
453 PolyglossiaName czech
464 PolyglossiaName danish
471 # not supported by babel
473 GuiName "Divehi (Maldivian)"
474 PolyglossiaName divehi
483 PolyglossiaName dutch
484 PolyglossiaOpts "babelshorthands=true"
495 PolyglossiaName english
496 PolyglossiaOpts "variant=american"
503 # Esperanto has no country code because it is an auxiliary language.
504 # We therefore the name of its hunspell dictionary.
508 PolyglossiaName esperanto
511 FontEncoding IL3|T1|OT1
518 PolyglossiaName estonian
524 \addto\extrasestonian{\bbl@deactivate{~}}
528 # the preamble definitions are only used due to bugs in the
529 # arabi-package -- remove them if they become unnecessary!
533 PolyglossiaName farsi
540 \DeclareTextSymbol{\guillemotright}{LFE}{62}
541 \DeclareTextSymbol{\guillemotleft}{LFE}{60}
549 PolyglossiaName finnish
556 # We redefine \og and \fg (guillemets) for older french language definitions
561 PolyglossiaName french
567 \addto\extrasfrench{%
568 \providecommand{\og}{\leavevmode\flqq~}%
569 \providecommand{\fg}{\ifdim\lastskip>\z@\unskip\fi~\frqq}%
578 PolyglossiaName friulan
589 PolyglossiaName galician
595 \addto\shorthandsgalician{\galiciandeactivate{~}}
608 # german does not use a country code (due to the variety)
610 GuiName "German (old spelling)"
612 PolyglossiaName german
613 PolyglossiaOpts "variant=german,spelling=old,babelshorthands=true"
625 PolyglossiaName german
626 PolyglossiaOpts "variant=german,spelling=new,babelshorthands=true"
633 # In Babel, this is supported since release 2.7 of babel-german (Dec 2013)
634 # We introduce it with LyX 2.2 to give the support time to settle.
635 # In polyglossia, this is supported since release 1.33.6 (May 2015)
636 # We introduce it with LyX 2.3 to give the support time to settle.
638 GuiName "German (Switzerland)"
639 BabelName nswissgerman
640 PolyglossiaName german
641 PolyglossiaOpts "variant=swiss,spelling=new,babelshorthands=true"
648 # In Babel, this is supported since release 2.7 of babel-german (Dec 2013)
649 # In polyglossia, this is supported since release 1.33.6 (May 2015)
650 # We introduce it with LyX 2.3 to give the support time to settle.
651 Language german-ch-old
652 GuiName "German (Switzerland, old spelling)"
653 BabelName swissgerman
654 PolyglossiaName german
655 PolyglossiaOpts "variant=swiss,spelling=old,babelshorthands=true"
666 PolyglossiaName greek
667 PolyglossiaOpts "variant=monotonic"
670 InternalEncoding true
676 Language polutonikogreek
677 GuiName "Greek (polytonic)"
678 BabelName polutonikogreek
679 PolyglossiaName greek
680 PolyglossiaOpts "variant=polytonic"
683 InternalEncoding true
693 PolyglossiaName hebrew
696 InternalEncoding true
697 # Hebrew babel loads the font encodings
698 # itself in the appropriate order
704 # not supported by babel
707 PolyglossiaName hindi
712 # Currently not supported (file format change!)
713 # "hungarian" is a synonym for the "magyar" babel language option
714 # "hungarian" might be used for special purposes,
715 # see http://www.math.bme.hu/latex/magyar_pre_tug2004.pdf
717 # GuiName "Hungarian"
718 # BabelName hungarian
724 # FontEncoding: OT1 misses ð and Þ
728 PolyglossiaName icelandic
735 # Interlingua has no official country code because it is an auxiliary
736 # language. We therefore the name of its hunspell dictionary.
738 GuiName "Interlingua"
740 BabelName interlingua
741 PolyglossiaName interlingua
751 PolyglossiaName irish
762 PolyglossiaName italian
769 # japanese must be loaded locally with babel options,
770 # not globally via class options
771 # http://www.lyx.org/trac/ticket/4597#c4
772 # Since japanese does not load fontenc, we set
773 # InternalEncoding to true.
782 InternalEncoding true
788 Language japanese-cjk
789 GuiName "Japanese (CJK)"
796 # not supported by babel
799 PolyglossiaName kannada
804 # not yet supported by polyglossia
805 # not supported by babel
813 \AtBeginDocument{\fontencoding{T2A}\selectfont}
817 # not supported by babel
820 PolyglossiaName khmer
833 # not yet supported by polyglossia
843 # not supported by babel
851 # There is no country code for Latin because it is a dead language.
852 # We therefore the name of its hunspell dictionary.
856 PolyglossiaName latin
862 # latvian must be loaded locally with babel options,
863 # not globally via class options
864 # FontEncoding: L7x required for hyphenation but not set by Babel
868 PolyglossiaName latvian
871 FontEncoding L7x|T1|OT1
876 # lithuanian must be loaded locally with babel options,
877 # not globally via class options
878 # FontEncoding: L7x set by Babel
882 PolyglossiaName lithuanian
890 Language lowersorbian
891 GuiName "Lower Sorbian"
892 BabelName lowersorbian
893 PolyglossiaName lsorbian
904 PolyglossiaName magyar
911 # not yet supported by polyglossia
919 Provides textcyrillic
922 # not supported by babel
925 PolyglossiaName marathi
930 # mongolian must be loaded locally with babel options,
931 # not globally via class options
932 # not yet supported by polyglossia
940 Provides textcyrillic
944 GuiName "English (New Zealand)"
946 PolyglossiaName english
947 PolyglossiaOpts "variant=newzealand"
955 GuiName "Norwegian (Bokmaal)"
958 PolyglossiaName norsk
966 GuiName "Norwegian (Nynorsk)"
969 PolyglossiaName nynorsk
976 # not supported by babel
979 PolyglossiaName occitan
985 # Currently not supported (file format change!)
986 # Russian orthography from the Petrine orthographic reforms of
987 # 1708 to the 1917 orthographic reform
988 # Note: If this is enabled, russian needs to get
989 # PolyglossiaOpts "spelling=modern"
990 # Language oldrussian
991 # GuiName "Russian (Petrine orthography)"
992 # PolyglossiaName russian
993 # PolyglossiaOpts "spelling=old"
994 # LangCode ru_petr1708
999 GuiName "Piedmontese"
1001 BabelName piedmontese
1002 PolyglossiaName piedmontese
1009 # FontEncoding: QX required for hyphenation but not set by babel
1014 PolyglossiaName polish
1017 FontEncoding QX|T1|OT1
1022 GuiName "Portuguese"
1025 PolyglossiaName portuges
1036 PolyglossiaName romanian
1047 PolyglossiaName romansh
1058 PolyglossiaName russian
1063 Provides textcyrillic
1066 # FontEncoding: no hyphenation, but diacritics
1068 GuiName "North Sami"
1070 PolyglossiaName samin
1076 # not supported by babel
1079 PolyglossiaName sanskrit
1084 # Gaidhlig (Scottish Gaelic)
1085 # FontEncoding: no hyphenation, grave accent (à, è, ì, ò, ù)
1089 PolyglossiaName scottish
1096 # Note: script option is uppercase, even if the polyglossia
1097 # manual states otherwise.
1102 PolyglossiaName serbian
1103 PolyglossiaOpts "script=Cyrillic"
1111 # Note: script option is uppercase, even if the polyglossia
1112 # manual states otherwise.
1113 Language serbian-latin
1114 GuiName "Serbian (Latin)"
1116 PolyglossiaName serbian
1117 PolyglossiaOpts "script=Latin"
1121 LangCode sr_RS-Latin
1128 PolyglossiaName slovak
1138 PolyglossiaName slovenian
1149 PolyglossiaName spanish
1155 \addto\shorthandsspanish{\spanishdeactivate{~<>}}
1156 EndPostBabelPreamble
1159 # there are no spanish shorthands in polyglossia
1160 Language spanish-mexico
1161 GuiName "Spanish (Mexico)"
1163 PolyglossiaName spanish
1169 \addto\shorthandsspanish{\spanishdeactivate{~<>.}}
1170 EndPostBabelPreamble
1177 PolyglossiaName swedish
1184 # not supported by babel
1187 PolyglossiaName syriac
1193 # not supported by babel
1196 PolyglossiaName tamil
1201 # not supported by babel
1204 PolyglossiaName telugu
1212 PolyglossiaName thai
1218 \usepackage{thswitch}
1219 EndPostBabelPreamble
1222 # not supported by babel
1225 PolyglossiaName tibetan
1234 PolyglossiaName turkish
1240 \usepackage{xkeyval}
1241 EndPostBabelPreamble
1244 # turkmen must be loaded locally with babel options,
1245 # not globally via class options
1249 PolyglossiaName turkmen
1261 PolyglossiaName ukrainian
1266 Provides textcyrillic
1269 Language uppersorbian
1270 GuiName "Upper Sorbian"
1271 BabelName uppersorbian
1272 PolyglossiaName usorbian
1279 # not supported by babel
1282 PolyglossiaName urdu
1289 GuiName "Vietnamese"
1290 BabelName vietnamese
1291 PolyglossiaName vietnamese
1301 PolyglossiaName welsh