/* * This invokes the translation code (e.g. gettext(3)). */ static void translate_option_strings( void ) { /* * Guard against re-translation. It won't work. The strings will have * been changed by the first pass through this code. One shot only. */ if (option_usage_text.field_ct != 0) { /* * Do the translations. The first pointer follows the field count * field. The field count field is the size of a pointer. */ tOptDesc* pOD = genshelloptOptions.pOptDesc; char** ppz = (char**)(void*)&(option_usage_text); int ix = option_usage_text.field_ct; do { ppz++; *ppz = AO_gettext(*ppz); } while (--ix > 0); COERSION(pzCopyright); COERSION(pzCopyNotice); COERSION(pzFullVersion); COERSION(pzUsageTitle); COERSION(pzExplain); COERSION(pzDetail); option_usage_text.field_ct = 0; for (ix = genshelloptOptions.optCt; ix > 0; ix--, pOD++) coerce_it((void*)&(pOD->pzText)); } if ((genshelloptOptions.fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) { tOptDesc* pOD = genshelloptOptions.pOptDesc; int ix; for (ix = genshelloptOptions.optCt; ix > 0; ix--, pOD++) { coerce_it((void*)&(pOD->pz_Name)); coerce_it((void*)&(pOD->pz_DisableName)); coerce_it((void*)&(pOD->pz_DisablePfx)); } /* prevent re-translation */ genshelloptOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT; } }
/** * Translate all the translatable strings in the ntpqOptions * structure defined above. This is done only once. */ static void translate_option_strings(void) { tOptions * const opts = &ntpqOptions; /* * Guard against re-translation. It won't work. The strings will have * been changed by the first pass through this code. One shot only. */ if (option_xlateable_txt.field_ct != 0) { /* * Do the translations. The first pointer follows the field count * field. The field count field is the size of a pointer. */ char ** ppz = (char**)VOIDP(&(option_xlateable_txt)); int ix = option_xlateable_txt.field_ct; do { ppz++; /* skip over field_ct */ *ppz = AO_gettext(*ppz); } while (--ix > 0); /* prevent re-translation and disable "libopts" domain lookup */ option_xlateable_txt.field_ct = 0; coerce_it(VOIDP(&(opts->pzCopyright))); coerce_it(VOIDP(&(opts->pzCopyNotice))); coerce_it(VOIDP(&(opts->pzFullVersion))); coerce_it(VOIDP(&(opts->pzUsageTitle))); coerce_it(VOIDP(&(opts->pzExplain))); coerce_it(VOIDP(&(opts->pzDetail))); { tOptDesc * od = opts->pOptDesc; for (ix = opts->optCt; ix > 0; ix--, od++) coerce_it(VOIDP(&(od->pzText))); } } }