| ADDING LANGUAGES TO WINE |
| |
| This file documents the necessary procedure for adding a new language |
| to the list of languages that Wine can display system menus and forms |
| in. Currently at least the following languages are still missing: |
| Bulgarian, Chinese, Greek, Icelandic, Japanese, Romanian, |
| Croatian, Slovak, Turkish, and Slovanian. |
| |
| To add a new language you need to be able to translate the relatively |
| few texts, of course. You will need very little knowledge of |
| programming, so you have almost no excuses for not adding your language, |
| right? We should easily be able to support 20 languages within a few |
| months, get going! Apart from re-compilation it'll take you about an |
| hour or two. |
| |
| To add a new language to the list of languages that Wine can handle |
| you must... |
| |
| 0. Find the language ID in include/winnls.h . |
| |
| 1. Look in ole/ole2nls.c if your language is already incorporated in |
| the "static const struct NLS_langlocale". If not: find the |
| appropriate entries in include/winnls.h and add them to the list. |
| |
| 2. Edit the parameters defined in ole/nls/*.nls to fit your local |
| habits and language. |
| |
| 3. Edit documentation/wine.man.in (search for -language) to show the new |
| language abbreviation. |
| |
| 4. Edit misc/main.c variable "Languages" to contain the new language |
| abbreviation and language ID. Also edit struct "option_table" in |
| misc/options.c to show the new abbreviation. |
| |
| 5. Edit include/options.h enum "WINE_LANGUAGE" to have a member called |
| LANG_XX where XX is the new abbreviation. |
| |
| 6. Create a new file dlls/commdlg/cdlg_XX.rc (where XX is your language |
| abbreviation) containing all menus. |
| Your best bet is to copy cdlg_En.rc and start translating. |
| There is no real need to know how the internal structure of the file, |
| as you only need to translate the text within quotes. |
| |
| In menus, the character "&" means that the next character will |
| be highlighted and that pressing that letter will select the item. |
| You should place these "&"s suitably for your language, not just |
| copy the positions from (say) English. In particular, items within |
| one menu should have different highlighted letters. |
| |
| 7. Edit dlls/commdlg/rsrc.rc to contain an include statement for your |
| cdlg_XX.rc file. |
| |
| 8. Repeat steps 6 and 7 again for: |
| - dlls/shell32/shell32_XX.rc and shres.rc |
| - resources/sysres_XX.rc and user32.rc |
| |
| 9. Re-configure, re-make dependencies, and re-make Wine. |
| |
| 10. Check your new menus and forms; when they're not ok, |
| go back to 6) and adapt the sizes, etc. |
| |
| 11. Several of the winelib based programs in the subdirectory programs |
| also have internationalisation support. See the appropriate files |
| there for reference. |
| |
| 12. Edit /documentation/internationalisation to show the new status. |
| |
| 13. Submit patches for inclusion in the next Wine release, |
| see file ./ANNOUNCE for details about where to submit. |
| |
| |
| January 1996 |
| Morten Welinder |
| |
| [I hope I got all the places where changes are needed. If you see any |
| place missing from the above list, submit a patch to this file please. |
| Also note that re-organization of the source code might change the list |
| of places.] |
| |
| Therefore revised Februari 1999 by Klaas van Gend |
| Revised again May 23, 1999, Klaas van Gend |
| Updated May 26, 2000, Zoran Dzelajlija |