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