xref: /vim-8.2.3635/runtime/tutor/tutor.vim (revision dee2e315)
1" Vim tutor support file
2" Author: Eduardo F. Amatria <[email protected]>
3" Maintainer: Bram Moolenaar
4" Last Change:	2012 Sep 21
5
6" This Vim script is used for detecting if a translation of the
7" tutor file exist, i.e., a tutor.xx file, where xx is the language.
8" If the translation does not exist, or no extension is given,
9" it defaults to the english version.
10
11" It is invoked by the vimtutor shell script.
12
13" 1. Build the extension of the file, if any:
14let s:ext = ""
15if strlen($xx) > 1
16  let s:ext = "." . $xx
17else
18  let s:lang = ""
19  " Check that a potential value has at least two letters.
20  " Ignore "1043" and "C".
21  if exists("v:lang") && v:lang =~ '\a\a'
22    let s:lang = v:lang
23  elseif $LC_ALL =~ '\a\a'
24    let s:lang = $LC_ALL
25  elseif $LANG =~ '\a\a'
26    let s:lang = $LANG
27  endif
28  if s:lang != ""
29    " Remove "@euro" (ignoring case), it may be at the end
30    let s:lang = substitute(s:lang, '\c@euro', '', '')
31    " On MS-Windows it may be German_Germany.1252 or Polish_Poland.1250.  How
32    " about other languages?
33    if s:lang =~ "German"
34      let s:ext = ".de"
35    elseif s:lang =~ "Polish"
36      let s:ext = ".pl"
37    elseif s:lang =~ "Slovak"
38      let s:ext = ".sk"
39    elseif s:lang =~ "Czech"
40      let s:ext = ".cs"
41    elseif s:lang =~ "Dutch"
42      let s:ext = ".nl"
43    else
44      let s:ext = "." . strpart(s:lang, 0, 2)
45    endif
46  endif
47endif
48
49" Somehow ".ge" (Germany) is sometimes used for ".de" (Deutsch).
50if s:ext =~? '\.ge'
51  let s:ext = ".de"
52endif
53
54if s:ext =~? '\.en'
55  let s:ext = ""
56endif
57
58" The japanese tutor is available in two encodings, guess which one to use
59" The "sjis" one is actually "cp932", it doesn't matter for this text.
60if s:ext =~? '\.ja'
61  if &enc =~ "euc"
62    let s:ext = ".ja.euc"
63  elseif &enc != "utf-8"
64    let s:ext = ".ja.sjis"
65  endif
66endif
67
68" The korean tutor is available in two encodings, guess which one to use
69if s:ext =~? '\.ko'
70  if &enc != "utf-8"
71    let s:ext = ".ko.euc"
72  endif
73endif
74
75" The Chinese tutor is available in three encodings, guess which one to use
76" This segment is from the above lines and modified by
77" Mendel L Chan <[email protected]> for Chinese vim tutorial
78" When 'encoding' is utf-8, choose between China (simplified) and Taiwan
79" (traditional) based on the language, suggested by Alick Zhao.
80if s:ext =~? '\.zh'
81  if &enc =~ 'big5\|cp950'
82    let s:ext = ".zh.big5"
83  elseif &enc != 'utf-8'
84    let s:ext = ".zh.euc"
85  elseif s:ext =~? 'zh_tw' || (exists("s:lang") && s:lang =~? 'zh_tw')
86    let s:ext = ".zh_tw"
87  else
88    let s:ext = ".zh_cn"
89  endif
90endif
91
92" The Polish tutor is available in two encodings, guess which one to use.
93if s:ext =~? '\.pl'
94  if &enc =~ 1250
95    let s:ext = ".pl.cp1250"
96  endif
97endif
98
99" The Turkish tutor is available in two encodings, guess which one to use
100if s:ext =~? '\.tr'
101  if &enc == "iso-8859-9"
102    let s:ext = ".tr.iso9"
103  endif
104endif
105
106" The Greek tutor is available in three encodings, guess what to use.
107" We used ".gr" (Greece) instead of ".el" (Greek); accept both.
108if s:ext =~? '\.gr\|\.el'
109  if &enc == "iso-8859-7"
110    let s:ext = ".el"
111  elseif &enc == "utf-8"
112    let s:ext = ".el.utf-8"
113  elseif &enc =~ 737
114    let s:ext = ".el.cp737"
115  endif
116endif
117
118" The Slovak tutor is available in three encodings, guess which one to use
119if s:ext =~? '\.sk'
120  if &enc =~ 1250
121    let s:ext = ".sk.cp1250"
122  endif
123endif
124
125" The Czech tutor is available in three encodings, guess which one to use
126if s:ext =~? '\.cs'
127  if &enc =~ 1250
128    let s:ext = ".cs.cp1250"
129  endif
130endif
131
132" The Russian tutor is available in three encodings, guess which one to use.
133if s:ext =~? '\.ru'
134  if &enc =~ '1251'
135    let s:ext = '.ru.cp1251'
136  elseif &enc =~ 'koi8'
137    let s:ext = '.ru'
138  endif
139endif
140
141" The Hungarian tutor is available in three encodings, guess which one to use.
142if s:ext =~? '\.hu'
143  if &enc =~ 1250
144    let s:ext = ".hu.cp1250"
145  elseif &enc =~ 'iso-8859-2'
146    let s:ext = '.hu'
147  endif
148endif
149
150" The Croatian tutor is available in three encodings, guess which one to use.
151if s:ext =~? '\.hr'
152  if &enc =~ 1250
153    let s:ext = ".hr.cp1250"
154  elseif &enc =~ 'iso-8859-2'
155    let s:ext = '.hr'
156  endif
157endif
158
159" Esperanto is only available in utf-8
160if s:ext =~? '\.eo'
161  let s:ext = ".eo.utf-8"
162endif
163" Vietnamese is only available in utf-8
164if s:ext =~? '\.vi'
165  let s:ext = ".vi.utf-8"
166endif
167
168" If 'encoding' is utf-8 s:ext must end in utf-8.
169if &enc == 'utf-8' && s:ext !~ '\.utf-8'
170  let s:ext .= '.utf-8'
171endif
172
173" 2. Build the name of the file:
174let s:tutorfile = "/tutor/tutor"
175let s:tutorxx = $VIMRUNTIME . s:tutorfile . s:ext
176
177" 3. Finding the file:
178if filereadable(s:tutorxx)
179  let $TUTOR = s:tutorxx
180else
181  let $TUTOR = $VIMRUNTIME . s:tutorfile
182  echo "The file " . s:tutorxx . " does not exist.\n"
183  echo "Copying English version: " . $TUTOR
184  4sleep
185endif
186
187" 4. Making the copy and exiting Vim:
188e $TUTOR
189wq! $TUTORCOPY
190