Alick Zhao wrote:

> On Mon, 03 Sep 2012 23:14:13 +0200, Bram Moolenaar wrote:
> > 
> > Alick Zhao wrote:
> > 
> >> Also there's an issue about Chinese version of vim tutor file. Nowadays
> >> Simplified Chinese user typically use zh_CN.UTF-8 locale in Linux/Unix
> >> systems. When they(including me) type the command 'vimtutor', they will
> >> get tutor in Traditional Chinese. The reason is that the tutor file
> >> 'tutor.zh.utf-8' is in Traditional Chinese, and there is no Simplified
> >> Chinese UTF-8 version. I see in the manual that language is a two-letter
> >> name, but I don't think *two*-letter is required indeed. Is it so? Can
> >> we have separate tutor files 'tutor.zh_cn.utf-8' and
> >> 'tutor.zh_tw.utf-8', like the case in gui menu translation?
> > 
> > We definitely need two Chinese tutors.  Calling them with the five
> > letter name is appropriate.
> > 
> > This requires changing tutor/tutor.vim.  Currently it cuts off
> > everything after the first two characters in line 44.  That will require
> > some work.  Probably by using s:lang around line 78, where Chinese is
> > handled.  That avoids having to change much in the rest of the file.
> > 
> 
> Use iconv to get a usable (a bit outdated though) 'tutor.zh_cn.utf-8':
> 
>   iconv -f CP936 -t UTF-8 tutor.zh.euc > tutor.zh_cn.utf8
> 
> And rename tutor.zh.utf-8 to tutor.zh_tw.utf-8 (to be more consistent).
> 
> And then with the following patch the issue should be fixed.
> (Last change info at line 4 of tutor.vim should be updated too.)
> 
> --- tutor.vim.bak     2012-09-04 21:15:23.330111701 +0800
> +++ tutor.vim 2012-09-04 21:57:46.597714283 +0800
> @@ -80,6 +80,12 @@
>      let s:ext = ".zh.big5"
>    elseif &enc != 'utf-8'
>      let s:ext = ".zh.euc"
> +  elseif exists("s:lang")
> +    if s:lang =~? 'zh_cn'
> +      let s:ext = ".zh_cn"
> +    else
> +      let s:ext = ".zh_tw"
> +    endif
>    endif
>  endif

If we rename tutor.zh.utf-8 to tutor.zh_tw.utf-8, then we need to have a
fallback for when s:lang is not defined.  Using the zh_cn one is the
best guess, so this should work:

if s:ext =~? '\.zh'
  if &enc =~ 'big5\|cp950'
    let s:ext = ".zh.big5"
  elseif &enc != 'utf-8'
    let s:ext = ".zh.euc"
  elseif exists("s:lang") && s:lang =~? 'zh_tw'
    let s:ext = ".zh_tw"
  else
    let s:ext = ".zh_cn"
  endif
endif

Please check.

-- 
This is the polymorph virus!  Follow these instructions carefully:
1. Send this message to everybody you know.
2. Format your harddisk.
Thank you for your cooperation in spreading the most powerful virus ever!

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to