static void AppendSupportedLocale(char *fullspec) { /* KANOU has provided a japanese translation of the docs */ /* Edward Lee is working on traditional chinese */ const char *loc = getenv("LC_ALL"); char buffer[40], *pt; if ( loc==NULL ) loc = getenv("LC_MESSAGES"); if ( loc==NULL ) loc = getenv("LANG"); if ( loc==NULL ) return; strncpy(buffer,loc,sizeof(buffer)); if ( SupportedLocale(fullspec,buffer)) return; pt = strchr(buffer,'.'); if ( pt!=NULL ) { *pt = '\0'; if ( SupportedLocale(fullspec,buffer)) return; } pt = strchr(buffer,'_'); if ( pt!=NULL ) { *pt = '\0'; if ( SupportedLocale(fullspec,buffer)) return; } }
static void AppendSupportedLocale(char *fullspec) { /* Add Browser HELP for this local if there's more html docs for this local */ /* KANOU has provided a japanese translation of the docs */ /* Edward Lee is working on traditional chinese docs */ const char *loc = getenv("LC_ALL"); char buffer[40], *pt; if ( loc==NULL ) loc = getenv("LC_CTYPE"); if ( loc==NULL ) loc = getenv("LANG"); if ( loc==NULL ) loc = getenv("LC_MESSAGES"); if ( loc==NULL ) return; /* first, try checking entire string */ strncpy(buffer,loc,sizeof(buffer)); buffer[sizeof(buffer)-1] = '\0'; if ( SupportedLocale(fullspec,buffer) ) return; /* parse possible suffixes, such as .UTF-8, then try again */ if ( (pt=strchr(buffer,'.'))!=NULL ) { *pt = '\0'; if ( SupportedLocale(fullspec,buffer) ) return; } /* parse possible suffixes such as _CA, _GB, and try again */ if ( (pt=strchr(buffer,'_'))!=NULL ) { *pt = '\0'; if ( SupportedLocale(fullspec,buffer) ) return; } }