GRASS Programmer's Manual  6.5.svn(2014)-r66266
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
locale.c
Go to the documentation of this file.
1 
17 #include <grass/config.h>
18 #include <stdlib.h>
19 #include <string.h>
20 #include <locale.h>
21 #include <grass/glocale.h>
22 
23 
24 #if defined(HAVE_LIBINTL_H) && defined(USE_NLS)
25 static char *locale_dir(void)
26 {
27  static char localedir[4096];
28  const char *gisbase;
29 
30  if (*localedir)
31  return localedir;
32 
33  gisbase = getenv("GISBASE");
34  if (!gisbase || !*gisbase)
35  return "";
36 
37  strcpy(localedir, gisbase);
38  strcat(localedir, "/locale");
39 
40  return localedir;
41 }
42 #endif
43 
44 
53 char *G_gettext(const char *package, const char *msgid)
54 {
55 #if defined(HAVE_LIBINTL_H) && defined(USE_NLS)
56  static char now_bound[4096];
57  static int initialized;
58 
59  if (!initialized) {
60  setlocale(LC_CTYPE, "");
61  setlocale(LC_MESSAGES, "");
62  initialized = 1;
63  }
64 
65  if (strcmp(now_bound, package) != 0) {
66  strcpy(now_bound, package);
67  bindtextdomain(package, locale_dir());
68  }
69 
70  return dgettext(package, msgid);
71 #else
72  return (char *)msgid;
73 #endif
74 }
char * G_gettext(const char *package, const char *msgid)
Gets localized text.
Definition: locale.c:53
tuple gisbase
Definition: forms.py:59
char * getenv()