1" Vim tutor support file
2" Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
3" Maintainer: Bram Moolenaar
4" Last Change:	2008 Jul 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 two encodings, guess which one to use
76" This segment is from the above lines and modified by
77" Mendel L Chan <beos@turbolinux.com.cn> for Chinese vim tutorial
78if s:ext =~? '\.zh'
79  if &enc =~ 'big5\|cp950'
80    let s:ext = ".zh.big5"
81  elseif &enc != 'utf-8'
82    let s:ext = ".zh.euc"
83  endif
84endif
85
86" The Polish tutor is available in two encodings, guess which one to use.
87if s:ext =~? '\.pl'
88  if &enc =~ 1250
89    let s:ext = ".pl.cp1250"
90  endif
91endif
92
93" The Turkish tutor is available in two encodings, guess which one to use
94if s:ext =~? '\.tr'
95  if &enc == "iso-8859-9"
96    let s:ext = ".tr.iso9"
97  endif
98endif
99
100" The Greek tutor is available in three encodings, guess what to use.
101" We used ".gr" (Greece) instead of ".el" (Greek); accept both.
102if s:ext =~? '\.gr\|\.el'
103  if &enc == "iso-8859-7"
104    let s:ext = ".el"
105  elseif &enc == "utf-8"
106    let s:ext = ".el.utf-8"
107  elseif &enc =~ 737
108    let s:ext = ".el.cp737"
109  endif
110endif
111
112" The Slovak tutor is available in three encodings, guess which one to use
113if s:ext =~? '\.sk'
114  if &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 =~ 1250
122    let s:ext = ".cs.cp1250"
123  endif
124endif
125
126" The Russian tutor is available in three encodings, guess which one to use.
127if s:ext =~? '\.ru'
128  if &enc =~ '1251'
129    let s:ext = '.ru.cp1251'
130  elseif &enc =~ 'koi8'
131    let s:ext = '.ru'
132  endif
133endif
134
135" The Hungarian tutor is available in three encodings, guess which one to use.
136if s:ext =~? '\.hu'
137  if &enc =~ 1250
138    let s:ext = ".hu.cp1250"
139  elseif &enc =~ 'iso-8859-2'
140    let s:ext = '.hu'
141  endif
142endif
143
144" The Croatian tutor is available in three encodings, guess which one to use.
145if s:ext =~? '\.hr'
146  if &enc =~ 1250
147    let s:ext = ".hr.cp1250"
148  elseif &enc =~ 'iso-8859-2'
149    let s:ext = '.hr'
150  endif
151endif
152
153" Esperanto is only available in utf-8
154if s:ext =~? '\.eo'
155  let s:ext = ".eo.utf-8"
156endif
157" Vietnamese is only available in utf-8
158if s:ext =~? '\.vi'
159  let s:ext = ".vi.utf-8"
160endif
161
162" If 'encoding' is utf-8 s:ext must end in utf-8.
163if &enc == 'utf-8' && s:ext !~ '\.utf-8'
164  let s:ext .= '.utf-8'
165endif
166
167" 2. Build the name of the file:
168let s:tutorfile = "/tutor/tutor"
169let s:tutorxx = $VIMRUNTIME . s:tutorfile . s:ext
170
171" 3. Finding the file:
172if filereadable(s:tutorxx)
173  let $TUTOR = s:tutorxx
174else
175  let $TUTOR = $VIMRUNTIME . s:tutorfile
176  echo "The file " . s:tutorxx . " does not exist.\n"
177  echo "Copying English version: " . $TUTOR
178  4sleep
179endif
180
181" 4. Making the copy and exiting Vim:
182e $TUTOR
183wq! $TUTORCOPY
184