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