blob: 11584d5b75b7baa668e3da3bd6c4ea27e87846d3 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim tutor support file
2" Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
Bram Moolenaare37d50a2008-08-06 17:06:04 +00003" Maintainer: Bram Moolenaar
4" Last Change: 2008 Jul 21
Bram Moolenaar071d4272004-06-13 20:20:40 +00005
Bram Moolenaare37d50a2008-08-06 17:06:04 +00006" This Vim script is used for detecting if a translation of the
Bram Moolenaar071d4272004-06-13 20:20:40 +00007" 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 = ""
Bram Moolenaar97b2ad32006-03-18 21:40:56 +000019 " Check that a potential value has at least two letters.
20 " Ignore "1043" and "C".
21 if exists("v:lang") && v:lang =~ '\a\a'
Bram Moolenaar071d4272004-06-13 20:20:40 +000022 let s:lang = v:lang
Bram Moolenaar97b2ad32006-03-18 21:40:56 +000023 elseif $LC_ALL =~ '\a\a'
Bram Moolenaare2cc9702005-03-15 22:43:58 +000024 let s:lang = $LC_ALL
Bram Moolenaar97b2ad32006-03-18 21:40:56 +000025 elseif $LANG =~ '\a\a'
Bram Moolenaar071d4272004-06-13 20:20:40 +000026 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"
Bram Moolenaard7afed32007-05-06 13:26:41 +000039 elseif s:lang =~ "Czech"
40 let s:ext = ".cs"
Bram Moolenaar97b2ad32006-03-18 21:40:56 +000041 elseif s:lang =~ "Dutch"
42 let s:ext = ".nl"
Bram Moolenaar071d4272004-06-13 20:20:40 +000043 else
44 let s:ext = "." . strpart(s:lang, 0, 2)
45 endif
46 endif
47endif
48
Bram Moolenaar446cb832008-06-24 21:56:24 +000049" 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000058" 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"
Bram Moolenaar446cb832008-06-24 21:56:24 +000063 elseif &enc != "utf-8"
Bram Moolenaar071d4272004-06-13 20:20:40 +000064 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'
Bram Moolenaar446cb832008-06-24 21:56:24 +000070 if &enc != "utf-8"
Bram Moolenaar071d4272004-06-13 20:20:40 +000071 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"
Bram Moolenaar446cb832008-06-24 21:56:24 +000081 elseif &enc != 'utf-8'
Bram Moolenaar071d4272004-06-13 20:20:40 +000082 let s:ext = ".zh.euc"
83 endif
84endif
85
86" The Polish tutor is available in two encodings, guess which one to use.
Bram Moolenaarc0197e22004-09-13 20:26:32 +000087if s:ext =~? '\.pl'
88 if &enc =~ 1250
89 let s:ext = ".pl.cp1250"
Bram Moolenaarc0197e22004-09-13 20:26:32 +000090 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000091endif
92
Bram Moolenaara5792f52005-11-23 21:25:05 +000093" The Turkish tutor is available in two encodings, guess which one to use
94if s:ext =~? '\.tr'
Bram Moolenaar446cb832008-06-24 21:56:24 +000095 if &enc == "iso-8859-9"
Bram Moolenaara5792f52005-11-23 21:25:05 +000096 let s:ext = ".tr.iso9"
97 endif
98endif
99
Bram Moolenaar45125092006-09-10 11:24:31 +0000100" 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"
Bram Moolenaar446cb832008-06-24 21:56:24 +0000104 let s:ext = ".el"
Bram Moolenaar45125092006-09-10 11:24:31 +0000105 elseif &enc == "utf-8"
Bram Moolenaar446cb832008-06-24 21:56:24 +0000106 let s:ext = ".el.utf-8"
Bram Moolenaar45125092006-09-10 11:24:31 +0000107 elseif &enc =~ 737
Bram Moolenaar446cb832008-06-24 21:56:24 +0000108 let s:ext = ".el.cp737"
Bram Moolenaar45125092006-09-10 11:24:31 +0000109 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000110endif
111
Bram Moolenaard7afed32007-05-06 13:26:41 +0000112" The Slovak tutor is available in three encodings, guess which one to use
113if s:ext =~? '\.sk'
Bram Moolenaar446cb832008-06-24 21:56:24 +0000114 if &enc =~ 1250
Bram Moolenaard7afed32007-05-06 13:26:41 +0000115 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'
Bram Moolenaar446cb832008-06-24 21:56:24 +0000121 if &enc =~ 1250
Bram Moolenaard7afed32007-05-06 13:26:41 +0000122 let s:ext = ".cs.cp1250"
123 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000124endif
125
Bram Moolenaard9380f52006-09-02 12:50:52 +0000126" The Russian tutor is available in three encodings, guess which one to use.
127if s:ext =~? '\.ru'
Bram Moolenaar446cb832008-06-24 21:56:24 +0000128 if &enc =~ '1251'
Bram Moolenaard9380f52006-09-02 12:50:52 +0000129 let s:ext = '.ru.cp1251'
130 elseif &enc =~ 'koi8'
131 let s:ext = '.ru'
132 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000133endif
134
Bram Moolenaar446cb832008-06-24 21:56:24 +0000135" The Hungarian tutor is available in three encodings, guess which one to use.
Bram Moolenaard7afed32007-05-06 13:26:41 +0000136if s:ext =~? '\.hu'
Bram Moolenaar446cb832008-06-24 21:56:24 +0000137 if &enc =~ 1250
138 let s:ext = ".hu.cp1250"
Bram Moolenaard7afed32007-05-06 13:26:41 +0000139 elseif &enc =~ 'iso-8859-2'
140 let s:ext = '.hu'
141 endif
142endif
143
Bram Moolenaar446cb832008-06-24 21:56:24 +0000144" 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000151endif
152
Bram Moolenaar446cb832008-06-24 21:56:24 +0000153" 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'
Bram Moolenaare37d50a2008-08-06 17:06:04 +0000164 let s:ext .= '.utf-8'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000165endif
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