diff options
Diffstat (limited to 'src/pacman/pacman.c')
-rw-r--r-- | src/pacman/pacman.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 3678f628..381053a3 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -28,6 +28,7 @@ #include <signal.h> #include <unistd.h> #include <libintl.h> +#include <locale.h> #ifndef CYGWIN #include <mcheck.h> /* debug */ #else @@ -379,7 +380,7 @@ static void cleanup(int signum) int main(int argc, char *argv[]) { int ret = 0; - char *cenv = NULL; + char *cenv = NULL, *lang = NULL; #ifndef CYGWIN uid_t myuid; #endif @@ -399,6 +400,17 @@ int main(int argc, char *argv[]) signal(SIGINT, cleanup); signal(SIGTERM, cleanup); + /* i18n init */ + lang=getenv("LC_ALL"); + if(lang==NULL || lang[0]=='\0') + lang=getenv("LC_MESSAGES"); + if (lang==NULL || lang[0]=='\0') + lang=getenv("LANG"); + + setlocale(LC_ALL, lang); + bindtextdomain("pacman", "/usr/share/locale"); + textdomain("pacman"); + /* init config data */ config = config_new(); config->op = PM_OP_MAIN; |