From 96db4b1ba3a48f50b80b2cfbf0b940e073b7843c Mon Sep 17 00:00:00 2001 From: Motonobu Takahashi Date: Mon, 24 Sep 2001 15:55:09 +0000 Subject: Added SWAT i18n feature: TO enable configure with --with-i18n-swat to support this gettext is integrated and a new directories name "po" and "intl" are created. now these languages are supported: en - English (default) ja - Japanese po - Polish tr - Turkish To add your language, to create ${your_language}.po by translating source/po/en.po into your language is needed. some of html and image files of various language version are not included yet, though message catalogue files are installed. you need to copy files manually under ${swatdir}/lang/$ln/{help,images,included,using_samba} And also added a option to intall manual pages: of various lang version To enable configure with --with-manlangs but manual pages themself are not included yet. (This used to be commit 486b79a6fc4ba20a751aab544bd0f7ccff2b3d19) --- source3/web/swat.c | 235 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 137 insertions(+), 98 deletions(-) (limited to 'source3/web/swat.c') diff --git a/source3/web/swat.c b/source3/web/swat.c index 9a7658e94f..664780995e 100644 --- a/source3/web/swat.c +++ b/source3/web/swat.c @@ -25,6 +25,7 @@ #include "includes.h" #include "smb.h" +#include "webintl.h" #define GLOBALS_SNUM -1 @@ -109,12 +110,14 @@ static char *make_parm_name(char *label) ****************************************************************************/ static int include_html(char *fname) { - FILE *f = sys_fopen(fname,"r"); + FILE *f; char buf[1024]; int ret; + f = sys_fopen((char*)LN_(fname), "r"); + if (!f) { - d_printf("ERROR: Can't open %s\n", fname); + d_printf(_("ERROR: Can't open %s\n"), fname); return 0; } @@ -144,6 +147,38 @@ static void print_header(void) } } +/* ******************************************************************* + show parameter label with translated name in the following form + because showing original and translated label in one line looks + too long, and showing translated label only is unusable for + heavy users. + ------------------------------- + HELP security [combo box][button] + SECURITY + ------------------------------- + (capital words are translated by gettext.) + if no translation is available, then same form as original is + used. + "i18n_translated_parm" class is used to change the color of the + translated parameter with CSS. + **************************************************************** */ +static const char* get_parm_translated( + const char* pAnchor, const char* pHelp, const char* pLabel) +{ + const char* pTranslated = _(pLabel); + static pstring output; + if(strcmp(pLabel, pTranslated) != 0) + { + snprintf(output, sizeof(output), + " %s       %s
%s", + pAnchor, pHelp, pLabel, pTranslated); + return output; + } + snprintf(output, sizeof(output), + " %s       %s", + pAnchor, pHelp, pLabel); + return output; +} /**************************************************************************** finish off the page ****************************************************************************/ @@ -167,17 +202,13 @@ static void show_parameter(int snum, struct parm_struct *parm) ptr = lp_local_ptr(snum, ptr); } - str = stripspace(parm->label); - strupper (str); - d_printf("Help       %s", - str, parm->label); - + printf("%s", get_parm_translated(stripspace(parm->label), _("Help"), parm->label)); switch (parm->type) { case P_CHAR: d_printf("", make_parm_name(parm->label), *(char *)ptr); - d_printf("", - make_parm_name(parm->label),(char)(parm->def.cvalue)); + d_printf("", + _("Set Default"), make_parm_name(parm->label),(char)(parm->def.cvalue)); break; case P_LIST: @@ -190,8 +221,8 @@ static void show_parameter(int snum, struct parm_struct *parm) } } d_printf("\">"); - d_printf("label)); + d_printf("label)); if (parm->def.lvalue) { char **list = (char **)(parm->def.lvalue); for (; *list; list++) { @@ -205,16 +236,16 @@ static void show_parameter(int snum, struct parm_struct *parm) case P_USTRING: d_printf("", make_parm_name(parm->label), *(char **)ptr); - d_printf("", - make_parm_name(parm->label),fix_backslash((char *)(parm->def.svalue))); + d_printf("", + _("Set Default"), make_parm_name(parm->label),fix_backslash((char *)(parm->def.svalue))); break; case P_GSTRING: case P_UGSTRING: d_printf("", make_parm_name(parm->label), (char *)ptr); - d_printf("", - make_parm_name(parm->label),fix_backslash((char *)(parm->def.svalue))); + d_printf("", + _("Set Default"), make_parm_name(parm->label),fix_backslash((char *)(parm->def.svalue))); break; case P_BOOL: @@ -222,8 +253,8 @@ static void show_parameter(int snum, struct parm_struct *parm) d_printf("