diff --git a/set_color.c b/set_color.c index 0e723a027..977b2b259 100644 --- a/set_color.c +++ b/set_color.c @@ -7,6 +7,7 @@ #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> +#include <locale.h> #if HAVE_NCURSES_H #include <ncurses.h> @@ -30,6 +31,10 @@ #include <getopt.h> #endif +#if HAVE_LIBINTL_H +#include <libintl.h> +#endif + /* Small utility for setting the color. Usage: set_color COLOR @@ -38,6 +43,17 @@ #define COLORS (sizeof(col)/sizeof(char *)) +/** + Program name +*/ +#define SET_COLOR "set_color" + +#if HAVE_GETTEXT +#define _(string) gettext(string) +#else +#define _(string) (string) +#endif + char *col[]= { "black", @@ -109,12 +125,25 @@ void print_colors() } } +static void locale_init() +{ + setlocale( LC_ALL, "" ); +#if HAVE_GETTEXT + bindtextdomain( PACKAGE_NAME, LOCALEDIR ); + textdomain( PACKAGE_NAME ); +#endif +} + + int main( int argc, char **argv ) { char *bgcolor=0; char *fgcolor=0; int fg, bg; int bold=0; + + locale_init(); + while( 1 ) { @@ -180,7 +209,7 @@ int main( int argc, char **argv ) break; case 'v': - fprintf( stderr, "set_color, version %s\n", PACKAGE_VERSION ); + fprintf( stderr, _("%s, version %s\n"), SET_COLOR, PACKAGE_VERSION ); exit( 0 ); case 'c': @@ -206,13 +235,13 @@ int main( int argc, char **argv ) break; default: - printf( "set_color: Too many arguments\n" ); + printf( _("%s: Too many arguments\n"), SET_COLOR ); return 1; } if( !fgcolor && !bgcolor && !bold ) { - fprintf( stderr, "set_color: Expected an argument\n" ); + fprintf( stderr, _("%s: Expected an argument\n"), SET_COLOR ); print_help(); return 1; } @@ -220,14 +249,14 @@ int main( int argc, char **argv ) fg = translate_color(fgcolor); if( fgcolor && (fg==-1)) { - fprintf( stderr, "set_color: Unknown color %s\n", fgcolor ); + fprintf( stderr, _("%s: Unknown color '%s'\n"), SET_COLOR, fgcolor ); return 1; } bg = translate_color(bgcolor); if( bgcolor && (bg==-1)) { - fprintf( stderr, "set_color: Unknown color %s\n", bgcolor ); + fprintf( stderr, _("%s: Unknown color '%s'\n"), SET_COLOR, bgcolor ); return 1; }