On Mon, Mar 16, 2009 at 09:23:50PM +0100, Wolfgang Schuster wrote:
>
> Am 16.03.2009 um 17:17 schrieb Bill Long:
>
>> The pinyin has 5 kind of tone for one pronunciation. As it's hard to
>> input, and in CJK 1,2,3,4 are use to represent the tone, (the fifth
>> is no special tone mark).
>>
>> In the book for children, the pinyin always show above the Chinese
>> like the picture I upload.
>
> A solution like can be easy integrated in a ruby command because
> you need only a command parameter for the ruby text,
> e.g. \setupruby[command=\pinyin] but you're looking for something
> like the translate module.
In fact, 2 features I need,
1. the easy way to support PinYin, both input and the format, As I
mentioned, I hope the pinyin can be placed over the Chinese
character it represented automatically with some environment or
so.
2. automatic convert/add pinyin to Chinese Character , now I use
sed to make, but I still hope there are some more easy way.
>
>> To make it show correctly is an good start, but if there are some
>> tools to automatic add PinYin , it will be more attractive. In Chinese
>> they do have the character which have multi pronunciation, but most of
>> them only has single pronunciation, I can try to find out some dict to
>> translate Chinese Character into PinYin if anyone can help integrate
>> this convert tool into context.
>
> If you can provide such a list Hans can add the information to char-
> def.lua,
> for the moment you have to rely on my \pinyin command, I have now
> written
> a new version on a word macro I found.
>
> Wolfgang
>
> \startluacode
>
> function commands.pinyin(str)
> str = string.gsub(str,"r1","1r")
> str = string.gsub(str,"r2","2r")
> str = string.gsub(str,"r3","3r")
> str = string.gsub(str,"r4","4r")
> str = string.gsub(str,"r5","5r")
> str = string.gsub(str,"ng1","1ng")
> str = string.gsub(str,"ng2","2ng")
> str = string.gsub(str,"ng3","3ng")
> str = string.gsub(str,"ng4","4ng")
> str = string.gsub(str,"ng5","5ng")
> str = string.gsub(str,"n1","1n")
> str = string.gsub(str,"n2","2n")
> str = string.gsub(str,"n3","3n")
> str = string.gsub(str,"n4","4n")
> str = string.gsub(str,"n1","5n")
> str = string.gsub(str,"ai1","a1i")
> str = string.gsub(str,"ai2","a2i")
> str = string.gsub(str,"ai3","a3i")
> str = string.gsub(str,"ai4","a4i")
> str = string.gsub(str,"ai5","a5i")
> str = string.gsub(str,"ei1","e1i")
> str = string.gsub(str,"ei2","e2i")
> str = string.gsub(str,"ei3","e3i")
> str = string.gsub(str,"ei4","e4i")
> str = string.gsub(str,"ei5","e5i")
> str = string.gsub(str,"ao1","a1o")
> str = string.gsub(str,"ao2","a2o")
> str = string.gsub(str,"ao3","a3o")
> str = string.gsub(str,"ao4","a4o")
> str = string.gsub(str,"ao5","a5o")
> str = string.gsub(str,"ou1","o1u")
> str = string.gsub(str,"ou2","o2u")
> str = string.gsub(str,"ou3","o3u")
> str = string.gsub(str,"ou4","o4u")
> str = string.gsub(str,"ou5","o5u")
> str = string.gsub(str,"uu1","v1")
> str = string.gsub(str,"uu2","v2")
> str = string.gsub(str,"uu3","v3")
> str = string.gsub(str,"uu4","v4")
> str = string.gsub(str,"uu","ü") -- is this correct?
it's correct, although this character maybe rarely/never been used
with this tone.
> str = string.gsub(str,"o1","ō")
> str = string.gsub(str,"o2","ó")
> str = string.gsub(str,"o3","ǒ")
> str = string.gsub(str,"o4","ò")
> str = string.gsub(str,"e1","ē")
> str = string.gsub(str,"e2","é")
> str = string.gsub(str,"e3","ě")
> str = string.gsub(str,"e4","è")
> str = string.gsub(str,"i1","ī")
> str = string.gsub(str,"i2","í")
> str = string.gsub(str,"i3","ǐ")
> str = string.gsub(str,"i4","ì")
> str = string.gsub(str,"u1","ū")
> str = string.gsub(str,"u2","ú")
> str = string.gsub(str,"u3","ǔ")
> str = string.gsub(str,"u4","ù")
> str = string.gsub(str,"v1","ǖ")
> str = string.gsub(str,"v2","ǘ")
> str = string.gsub(str,"v3","ǚ")
> str = string.gsub(str,"v4","ǜ")
> str = string.gsub(str,"a1","ā")
> str = string.gsub(str,"a2","á")
> str = string.gsub(str,"a3","ǎ")
> str = string.gsub(str,"a4","à")
> tex.sprint(tex.ctxcatcodes,str)
> end
>
> \stopluacode
>
> \def\pinyin#1{\ctxlua{commands.pinyin([[#1]])}}
>
> \starttext
>
> \definedfont[name:arialunicodems*default]
>
> \pinyin{ni2hao3}
> \pinyin{huai4}
>
> \stoptext
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the
> Wiki!
>
> maillist : [email protected] / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive : https://foundry.supelec.fr/projects/contextrev/
> wiki : http://contextgarden.net
> ___________________________________________________________________________________
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : [email protected] / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________