[RFC] Cream i18n
Cream is a free, easy-to-use configuration of the Vim text editor
Brought to you by:
digitect
From: Thomas de G. de L. <deg...@ea...> - 2004-11-14 21:17:22
|
Hi Steve et al., I've started working on Cream internationalisation, and i think it's time to share what i've done so far. Actually, i've seen too late that it was a post 1.0 item on the TODO... I hope you won't mind starting a bit sooner :) I won't give you a long and boring detailed explanation of how things work so far. Instead, i've tried to comment the code, i think (hope) it is easy to understand. Here is just a quick description of the files attached to this email: * cream-0.31--i18n.diff is a patch that: - integrates the i18n code into Cream - makes toolbar tooltips strings translatable - makes cream-spell.vim strings translatable (that's the only module that i've modified so far, as an example of what should be done everywhere) * cream-i18n.vim contains all the functions for: - managing the translated string - selecting the language and sourcing a translation file - reseting the GUI to switch its language * cream-i18_fr_fr.{latin1,utf-8}.vim are two french translation files, for the menu items, toolbar tooltips and cream-spell.vim strings. They must be installed in an "i18n" $CREAM subdir. * cream-i18n_lang.enc.vim is a template file to start other translations. What i would like now is mainly some comments/critics about how it works and if i can continue on that direction. The big work that remains is to go through all the Cream source code and replace hardcoded string with some Cream_i18_string(...) calls (and sure to complete the template file accordingly). Steve, if you agree on the principle, I'm willing to do it (it will probably takes some time, so i would submit a patch from time to time that make a few more modules translatable). Oh, and also, i would need a fresh look on the g:CREAM_I18N_LANG setting. This variable was meant to permit using a language that is different from the one of locales. This var is stored in the .viminfo, but the problem is that it is not yet defined when i need it the first time (just before creating the menus). I don't really understand how all this .viminfo works, so a few advices would be welcome. Thanks, -- TGL. |