top: finalized top nls support (or so he thought)

summary of changes:
. adopted relative paths to 'include' and 'proc'
  dirs so that stand alone compiles are made
  easier and no one need guess their locations

. corrected several names for enums and macro
  usage reflecting fmt vs. txt

. expanded all octal escape sequences to a full
  3 digits since one already required 3 digits

. finalized translator hints (for now)

programming note:
  as an aside, by not including an argument for
  the gettext --add-comments, any preceeding c
  style comment will be propagated to the .pot
  file, if the gettext macro isn't empty.

  /* Need Not Say 'TRANSLATORS' ...
  snprintf(buf, sizeof(buf), "%s", _(   // unseen
  /* Translator Hint: ...
  snprintf(buf, sizeof(buf), "%s", _("" // seen
This commit is contained in:
Jim Warner 2011-10-14 11:45:44 -05:00 committed by Craig Small
parent 32a9adbc13
commit 3f7468082a
4 changed files with 178 additions and 161 deletions

View File

@ -40,14 +40,14 @@
#include <unistd.h> #include <unistd.h>
#include <values.h> #include <values.h>
#include "devname.h" #include "../proc/devname.h"
#include "procps.h" #include "../proc/procps.h"
#include "readproc.h" #include "../proc/readproc.h"
#include "sig.h" #include "../proc/sig.h"
#include "sysinfo.h" #include "../proc/sysinfo.h"
#include "version.h" #include "../proc/version.h"
#include "wchan.h" #include "../proc/wchan.h"
#include "whattime.h" #include "../proc/whattime.h"
#include "top.h" #include "top.h"
#include "top_nls.h" #include "top_nls.h"
@ -1993,7 +1993,7 @@ static void procs_refresh (void) {
prochlp(NULL); // prep for a new frame prochlp(NULL); // prep for a new frame
if (NULL == (PT = openproc(Frames_libflags, Monpids))) if (NULL == (PT = openproc(Frames_libflags, Monpids)))
error_exit(fmtmk(N_fmt(FAIL_openlib_txt), strerror(errno))); error_exit(fmtmk(N_fmt(FAIL_openlib_fmt), strerror(errno)));
read_something = Thread_mode ? readeither : readproc; read_something = Thread_mode ? readeither : readproc;
for (;;) { for (;;) {
@ -2289,14 +2289,14 @@ static void parse_args (char **args) {
else if (*args) cp = *args++; else if (*args) cp = *args++;
else error_exit(fmtmk(N_fmt(MISSING_args_fmt), ch)); else error_exit(fmtmk(N_fmt(MISSING_args_fmt), ch));
if (1 != sscanf(cp, "%d", &Loops) || 1 > Loops) if (1 != sscanf(cp, "%d", &Loops) || 1 > Loops)
error_exit(fmtmk(N_fmt(BAD_niterate_arg), cp)); error_exit(fmtmk(N_fmt(BAD_niterate_fmt), cp));
break; break;
case 'p': case 'p':
if (Curwin->usrseltyp) error_exit(N_txt(SELECT_clash_txt)); if (Curwin->usrseltyp) error_exit(N_txt(SELECT_clash_txt));
do { do {
if (cp[1]) cp++; if (cp[1]) cp++;
else if (*args) cp = *args++; else if (*args) cp = *args++;
else error_exit(fmtmk(N_txt(MISSING_args_fmt), ch)); else error_exit(fmtmk(N_fmt(MISSING_args_fmt), ch));
if (Monpidsidx >= MONPIDMAX) if (Monpidsidx >= MONPIDMAX)
error_exit(fmtmk(N_fmt(LIMIT_exceed_fmt), MONPIDMAX)); error_exit(fmtmk(N_fmt(LIMIT_exceed_fmt), MONPIDMAX));
if (1 != sscanf(cp, "%d", &Monpids[Monpidsidx]) if (1 != sscanf(cp, "%d", &Monpids[Monpidsidx])
@ -2322,7 +2322,7 @@ static void parse_args (char **args) {
if (Monpidsidx || Curwin->usrseltyp) error_exit(N_txt(SELECT_clash_txt)); if (Monpidsidx || Curwin->usrseltyp) error_exit(N_txt(SELECT_clash_txt));
if (cp[1]) cp++; if (cp[1]) cp++;
else if (*args) cp = *args++; else if (*args) cp = *args++;
else error_exit(fmtmk(N_txt(MISSING_args_fmt), ch)); else error_exit(fmtmk(N_fmt(MISSING_args_fmt), ch));
if ((err = user_certify(Curwin, cp, ch))) error_exit(err); if ((err = user_certify(Curwin, cp, ch))) error_exit(err);
cp += strlen(cp); cp += strlen(cp);
break; break;
@ -2463,7 +2463,7 @@ static WIN_t *win_select (char ch) {
static int win_warn (int what) { static int win_warn (int what) {
switch (what) { switch (what) {
case Warn_ALT: case Warn_ALT:
show_msg(N_txt(DISABLED_cmd_fmt)); show_msg(N_txt(DISABLED_cmd_txt));
break; break;
case Warn_VIZ: case Warn_VIZ:
show_msg(fmtmk(N_fmt(DISABLED_win_fmt), Curwin->grpname)); show_msg(fmtmk(N_fmt(DISABLED_win_fmt), Curwin->grpname));

View File

@ -20,7 +20,7 @@
#ifndef _Itop #ifndef _Itop
#define _Itop #define _Itop
#include "proc/readproc.h" #include "../proc/readproc.h"
/* Development/Debugging defines ----------------------------------- */ /* Development/Debugging defines ----------------------------------- */
//#define ATEOJ_RPTHSH /* report on hash specifics, at end-of-job */ //#define ATEOJ_RPTHSH /* report on hash specifics, at end-of-job */

View File

@ -23,6 +23,18 @@
#include "top.h" #include "top.h"
#include "top_nls.h" #include "top_nls.h"
/* Programmer Note: Unless you have *something* following the gettext
. macro, gettext will refuse to see any TRANSLATORS
. comments. Thus empty strings have been added for
. potential future comment additions.
.
. /* TRANSLATORS: ...
. snprintf(buf, sizeof(buf), "%s", _( // unseen comment
.
. /* TRANSLATORS: ...
. snprintf(buf, sizeof(buf), "%s", _("" // now it's seen!
*/
/* /*
* These are our three string tables with the following contents: * These are our three string tables with the following contents:
@ -30,7 +42,7 @@
* Norm : regular text possibly also containing c-format specifiers * Norm : regular text possibly also containing c-format specifiers
* Uniq : show_special specially formatted strings * Uniq : show_special specially formatted strings
* *
* The latter table presents the greates translation challenge ! * The latter table presents the greatest translation challenge !
*/ */
const char *Desc_nlstab[P_MAXPFLGS]; const char *Desc_nlstab[P_MAXPFLGS];
const char *Norm_nlstab[norm_MAX]; const char *Norm_nlstab[norm_MAX];
@ -44,15 +56,14 @@ const char *Uniq_nlstab[uniq_MAX];
static void build_desc_nlstab (void) { static void build_desc_nlstab (void) {
char buf[SMLBUFSIZ]; char buf[SMLBUFSIZ];
snprintf(buf, sizeof(buf), "%s", _( /* -----------------------------------------------------------------------
"-------------------------------------------------------------------------------\n" . Note for Translators:
"Note for Translators:\n" . The following single lines contain only plain text used as
" This group of single lines contains plain text only used as the\n" . the descriptions under Field Management when the 'f' key is typed.
" field descriptions. Each translated line MUST be kept to a length\n" .
" of 20 characters or less.\n" . To avoid truncation, each translated line MUST be kept to a length
"\n" . of 20 characters or less.\n"
"( this text is for information only and need never be translated )\n" . */
""));
snprintf(buf, sizeof(buf), "%s", _("Process Id")); snprintf(buf, sizeof(buf), "%s", _("Process Id"));
Desc_nlstab[P_PID] = strdup(buf); Desc_nlstab[P_PID] = strdup(buf);
@ -147,31 +158,28 @@ static void build_desc_nlstab (void) {
static void build_norm_nlstab (void) { static void build_norm_nlstab (void) {
char buf[MEDBUFSIZ]; char buf[MEDBUFSIZ];
snprintf(buf, sizeof(buf), "%s", _( /* -----------------------------------------------------------------------
"-------------------------------------------------------------------------------\n" . Note for Translators:
"Note for Translators:\n" . This group of lines contains both plain text and c-format strings.
" This group of lines contains both plain text and c-format strings.\n" .
" Some strings reflect switches used to affect the running program\n" . Some strings reflect switches used to affect the running program
" and should not be translated without also making corresponding\n" . and should not be translated without also making corresponding
" c-code logic changes.\n" . c-code logic changes.
"\n" . */
"( this text is for information only and need never be translated )\n"
""));
snprintf(buf, sizeof(buf), "%s", _( snprintf(buf, sizeof(buf), "%s", _(""
"\n"
"\tsignal %d (%s) was caught by %s, please\n" "\tsignal %d (%s) was caught by %s, please\n"
"\tsee http://www.debian.org/Bugs/Reporting\n" "\tsee http://www.debian.org/Bugs/Reporting\n"
"")); ""));
Norm_nlstab[EXIT_signals_fmt] = strdup(buf); Norm_nlstab[EXIT_signals_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _( snprintf(buf, sizeof(buf), "%s", _(""
"inappropriate '%s'\n" "inappropriate '%s'\n"
"usage:\t%s%s" "usage:\t%s%s"
"")); ""));
Norm_nlstab[WRONG_switch_fmt] = strdup(buf); Norm_nlstab[WRONG_switch_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _( snprintf(buf, sizeof(buf), "%s", _(""
"\t%s\n" "\t%s\n"
"usage:\t%s%s" "usage:\t%s%s"
"")); ""));
@ -181,13 +189,13 @@ static void build_norm_nlstab (void) {
Norm_nlstab[FAIL_statopn_fmt] = strdup(buf); Norm_nlstab[FAIL_statopn_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _("failed openproc: %s")); snprintf(buf, sizeof(buf), "%s", _("failed openproc: %s"));
Norm_nlstab[FAIL_openlib_txt] = strdup(buf); Norm_nlstab[FAIL_openlib_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _("bad delay interval '%s'")); snprintf(buf, sizeof(buf), "%s", _("bad delay interval '%s'"));
Norm_nlstab[BAD_delayint_fmt] = strdup(buf); Norm_nlstab[BAD_delayint_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _("bad iterations argument '%s'")); snprintf(buf, sizeof(buf), "%s", _("bad iterations argument '%s'"));
Norm_nlstab[BAD_niterate_arg] = strdup(buf); Norm_nlstab[BAD_niterate_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _("pid limit (%d) exceeded")); snprintf(buf, sizeof(buf), "%s", _("pid limit (%d) exceeded"));
Norm_nlstab[LIMIT_exceed_fmt] = strdup(buf); Norm_nlstab[LIMIT_exceed_fmt] = strdup(buf);
@ -201,7 +209,7 @@ static void build_norm_nlstab (void) {
snprintf(buf, sizeof(buf), "%s", _("bad width arg '%s', must > %d")); snprintf(buf, sizeof(buf), "%s", _("bad width arg '%s', must > %d"));
Norm_nlstab[BAD_widtharg_fmt] = strdup(buf); Norm_nlstab[BAD_widtharg_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _( snprintf(buf, sizeof(buf), "%s", _(""
"unknown option '%c'\n" "unknown option '%c'\n"
"usage:\t%s%s" "usage:\t%s%s"
"")); ""));
@ -219,6 +227,8 @@ static void build_norm_nlstab (void) {
snprintf(buf, sizeof(buf), "%s", _("Off")); snprintf(buf, sizeof(buf), "%s", _("Off"));
Norm_nlstab[OFF_one_word_txt] = strdup(buf); Norm_nlstab[OFF_one_word_txt] = strdup(buf);
/* Translation Hint: Only the following words should be translated
. delay, limit, user, cols */
snprintf(buf, sizeof(buf), "%s", _(" -hv | -bcHiSs -d delay -n limit -u|U user | -p pid[,pid] -w [cols]")); snprintf(buf, sizeof(buf), "%s", _(" -hv | -bcHiSs -d delay -n limit -u|U user | -p pid[,pid] -w [cols]"));
Norm_nlstab[USAGE_abbrev_txt] = strdup(buf); Norm_nlstab[USAGE_abbrev_txt] = strdup(buf);
@ -241,7 +251,7 @@ static void build_norm_nlstab (void) {
Norm_nlstab[CHOOSE_group_txt] = strdup(buf); Norm_nlstab[CHOOSE_group_txt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _("Command disabled, 'A' mode required")); snprintf(buf, sizeof(buf), "%s", _("Command disabled, 'A' mode required"));
Norm_nlstab[DISABLED_cmd_fmt] = strdup(buf); Norm_nlstab[DISABLED_cmd_txt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _("Command disabled, activate %s with '-' or '_'")); snprintf(buf, sizeof(buf), "%s", _("Command disabled, activate %s with '-' or '_'"));
Norm_nlstab[DISABLED_win_fmt] = strdup(buf); Norm_nlstab[DISABLED_win_fmt] = strdup(buf);
@ -377,173 +387,181 @@ static void build_norm_nlstab (void) {
static void build_uniq_nsltab (void) { static void build_uniq_nsltab (void) {
char buf[BIGBUFSIZ]; char buf[BIGBUFSIZ];
snprintf(buf, sizeof(buf), "%s", _( /* -----------------------------------------------------------------------
"-------------------------------------------------------------------------------\n" . Note for Translators:
"Note for Translators:\n" . The next several text groups contain special escape sequences
" The next 11 text groups contain unprintable characters used to\n" . representing values used to index a table at run-time.
" index a capabilities table at run-time. You may need a special\n" .
" editor which can accomodate such data without altering it.\n" . Each such sequence consists of a slash and exactly 3 numbers.
"\n" . Examples would be '\002', '\020', etc. In at least one case,
" Please see the comments in the source file for additional\n" . another number follows those 3 numbers, making it appear as
" information and guidance regarding these strings.\n" . though the escape sequence is \0011.
"\n" .
"( this text is for information only and need never be translated )\n" . If you remove those escape sequences, it would make translation
"")); . easier. However, the ability to display colors and bold text at
. run-time will have been lost.
.
. Additionally, each of these text groups was designed to display
. in a 80x24 terminal window. Hopefully, any translations will
. adhere to that goal lest the translated text be truncated.
.
. If you would like additional information regarding these strings,
. please see the prolog to the show_special function in the top.c
. source file.
. */
/* snprintf(buf, sizeof(buf), "%s", _(""
* These lines contain special formatting elements and are very "Help for Interactive Commands\002 - %s\n"
* carefully designed to fit within a 80x24 terminal window. "Window \001%s\006: \001Cumulative mode \003%s\002. \001System\006: \001Delay \003%.1f secs\002; \001Secure mode \003%s\002.\n"
* The special formatting consists of:
* "some text <_delimiter_> some more text <_delimiter_>...\n"
* Where <_delimiter_> is a single byte in the range of:
* \01 through \10 (in decimalizee, 1 - 8)
* and is used to select an 'attribute' from a capabilities table
* which is then applied to the *preceding* substring.
* Once recognized, the delimiter is replaced with a null character
* and viola, we've got a substring ready to output! Strings or
* substrings without delimiters will receive the Cap_norm attribute.
*
* note: the following is an example of the capabilities
* table for which the unprintable characters are
* used as an index.
* +------------------------------------------------------+
* | char *captab[] = { : Cap's/Delim's |
* | Cap_norm, Cap_norm, = \00, \01, |
* | cap_bold, capclr_sum, = \02, \03, |
* | capclr_msg, capclr_pmt, = \04, \05, |
* | capclr_hdr, = \06, |
* | capclr_rowhigh, = \07, |
* | capclr_rownorm }; = \10 [octal!] |
* +------------------------------------------------------+ */
snprintf(buf, sizeof(buf), "%s", _(
"Help for Interactive Commands\02 - %s\n"
"Window \01%s\06: \01Cumulative mode \03%s\02. \01System\06: \01Delay \03%.1f secs\02; \01Secure mode \03%s\02.\n"
"\n" "\n"
" Z\05,\01B\05 Global: '\01Z\02' change color mappings; '\01B\02' disable/enable bold\n" " Z\005,\001B\005 Global: '\001Z\002' change color mappings; '\001B\002' disable/enable bold\n"
" l,t,m Toggle Summaries: '\01l\02' load avg; '\01t\02' task/cpu stats; '\01m\02' mem info\n" " l,t,m Toggle Summaries: '\001l\002' load avg; '\001t\002' task/cpu stats; '\001m\002' mem info\n"
" 1,I Toggle SMP view: '\0011\02' single/separate states; '\01I\02' Irix/Solaris mode\n" " 1,I Toggle SMP view: '\0011\002' single/separate states; '\001I\002' Irix/Solaris mode\n"
" f,F Manage Fields: add/remove; change order; select sort field\n" " f,F Manage Fields: add/remove; change order; select sort field\n"
"\n" "\n"
" <,> . Move sort field: '\01<\02' next col left; '\01>\02' next col right\n" " <,> . Move sort field: '\001<\002' next col left; '\001>\002' next col right\n"
" R,H,V . Toggle: '\01R\02' norm/rev sort; '\01H\02' show threads; '\01V\02' forest view\n" " R,H,V . Toggle: '\001R\002' norm/rev sort; '\001H\002' show threads; '\001V\002' forest view\n"
" c,i,S . Toggle: '\01c\02' cmd name/line; '\01i\02' idle tasks; '\01S\02' cumulative time\n" " c,i,S . Toggle: '\001c\002' cmd name/line; '\001i\002' idle tasks; '\001S\002' cumulative time\n"
" x\05,\01y\05 . Toggle highlights: '\01x\02' sort field; '\01y\02' running tasks\n" " x\005,\001y\005 . Toggle highlights: '\001x\002' sort field; '\001y\002' running tasks\n"
" z\05,\01b\05 . Toggle: '\01z\02' color/mono; '\01b\02' bold/reverse (only if 'x' or 'y')\n" " z\005,\001b\005 . Toggle: '\001z\002' color/mono; '\001b\002' bold/reverse (only if 'x' or 'y')\n"
" u,U . Show: '\01u\02' effective user; '\01U\02' real, saved, file or effective user\n" " u,U . Show: '\001u\002' effective user; '\001U\002' real, saved, file or effective user\n"
" n or # . Set maximum tasks displayed\n" " n or # . Set maximum tasks displayed\n"
" C,... . Toggle scroll coordinates msg for: \01up\02,\01down\02,\01left\02,right\02,\01home\02,\01end\02\n" " C,... . Toggle scroll coordinates msg for: \001up\002,\001down\002,\001left\002,right\002,\001home\002,\001end\002\n"
"\n" "\n"
"%s" "%s"
" W Write configuration file\n" " W Write configuration file\n"
" q Quit\n" " q Quit\n"
" ( commands shown with '.' require a \01visible\02 task display \01window\02 ) \n" " ( commands shown with '.' require a \001visible\002 task display \001window\002 ) \n"
"Press '\01h\02' or '\01?\02' for help with \01Windows\02,\n" "Press '\001h\002' or '\001?\002' for help with \001Windows\002,\n"
"any other key to continue " "any other key to continue "
"")); ""));
Uniq_nlstab[KEYS_helpbas_fmt] = strdup(buf); Uniq_nlstab[KEYS_helpbas_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _( /* Translation Hint: As is true for the text above, the "keys" shown to the left and
" k,r Manipulate tasks: '\01k\02' kill; '\01r\02' renice\n" . also imbedded in the translatable text (along with escape seqs)
. should never themselves be translated. */
snprintf(buf, sizeof(buf), "%s", _(""
" k,r Manipulate tasks: '\001k\002' kill; '\001r\002' renice\n"
" d or s Set update interval\n" " d or s Set update interval\n"
"")); ""));
Uniq_nlstab[KEYS_helpext_fmt] = strdup(buf); Uniq_nlstab[KEYS_helpext_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _( snprintf(buf, sizeof(buf), "%s", _(""
"Help for Windows / Field Groups\02 - \"Current Window\" = \01 %s \06\n" "Help for Windows / Field Groups\002 - \"Current Window\" = \001 %s \006\n"
"\n" "\n"
". Use multiple \01windows\02, each with separate config opts (color,fields,sort,etc)\n" ". Use multiple \001windows\002, each with separate config opts (color,fields,sort,etc)\n"
". The 'current' window controls the \01Summary Area\02 and responds to your \01Commands\02\n" ". The 'current' window controls the \001Summary Area\002 and responds to your \001Commands\002\n"
" . that window's \01task display\02 can be turned \01Off\02 & \01On\02, growing/shrinking others\n" " . that window's \001task display\002 can be turned \001Off\002 & \001On\002, growing/shrinking others\n"
" . with \01NO\02 task display, some commands will be \01disabled\02 ('i','R','n','c', etc)\n" " . with \001NO\002 task display, some commands will be \001disabled\002 ('i','R','n','c', etc)\n"
" until a \01different window\02 has been activated, making it the 'current' window\n" " until a \001different window\002 has been activated, making it the 'current' window\n"
". You \01change\02 the 'current' window by: \01 1\02) cycling forward/backward;\01 2\02) choosing\n" ". You \001change\002 the 'current' window by: \001 1\002) cycling forward/backward;\001 2\002) choosing\n"
" a specific field group; or\01 3\02) exiting the color mapping or fields screens\n" " a specific field group; or\001 3\002) exiting the color mapping or fields screens\n"
". Commands \01available anytime -------------\02\n" ". Commands \001available anytime -------------\002\n"
" A . Alternate display mode toggle, show \01Single\02 / \01Multiple\02 windows\n" " A . Alternate display mode toggle, show \001Single\002 / \001Multiple\002 windows\n"
" g . Choose another field group and make it 'current', or change now\n" " g . Choose another field group and make it 'current', or change now\n"
" by selecting a number from: \01 1\02 =%s;\01 2\02 =%s;\01 3\02 =%s; or\01 4\02 =%s\n" " by selecting a number from: \001 1\002 =%s;\001 2\002 =%s;\001 3\002 =%s; or\001 4\002 =%s\n"
". Commands \01requiring\02 '\01A\02' mode\01 -------------\02\n" ". Commands \001requiring\002 '\001A\002' mode\001 -------------\002\n"
" G . Change the \01Name\05 of the 'current' window/field group\n" " G . Change the \001Name\005 of the 'current' window/field group\n"
" \01*\04 a , w . Cycle through all four windows: '\01a\05' Forward; '\01w\05' Backward\n" " \001*\004 a , w . Cycle through all four windows: '\001a\005' Forward; '\001w\005' Backward\n"
" \01*\04 - , _ . Show/Hide: '\01-\05' \01Current\02 window; '\01_\05' all \01Visible\02/\01Invisible\02\n" " \001*\004 - , _ . Show/Hide: '\001-\005' \001Current\002 window; '\001_\005' all \001Visible\002/\001Invisible\002\n"
" The screen will be divided evenly between task displays. But you can make\n" " The screen will be divided evenly between task displays. But you can make\n"
" some \01larger\02 or \01smaller\02, using '\01n\02' and '\01i\02' commands. Then later you could:\n" " some \001larger\002 or \001smaller\002, using '\001n\002' and '\001i\002' commands. Then later you could:\n"
" \01*\04 = , + . Rebalance tasks: '\01=\05' \01Current\02 window; '\01+\05' \01Every\02 window\n" " \001*\004 = , + . Rebalance tasks: '\001=\005' \001Current\002 window; '\001+\005' \001Every\002 window\n"
" (this also forces the \01current\02 or \01every\02 window to become visible)\n" " (this also forces the \001current\002 or \001every\002 window to become visible)\n"
"\n" "\n"
"In '\01A\02' mode, '\01*\04' keys are your \01essential\02 commands. Please try the '\01a\02' and '\01w\02'\n" "In '\001A\002' mode, '\001*\004' keys are your \001essential\002 commands. Please try the '\001a\002' and '\001w\002'\n"
"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' " "commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
"")); ""));
Uniq_nlstab[WINDOWS_help_fmt] = strdup(buf); Uniq_nlstab[WINDOWS_help_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _( /* -----------------------------------------------------------------------
"Help for color mapping\02 - %s\n" . Note for Translators:
"current window: \01%s\06\n" . The following 'Help for color mapping' simulated screen should
. probably NOT be translated due to complications caused by the
. xgettext program.
.
. Some escape sequences will be converted as follows and there is
. unfortunately NO way to prevent it.
. \007 --> \a
. \010 --> \b
.
. This means they will be lost in the clutter of other text. Besides,
. the simulated screen is terribly hard to follow in this form and any
. translation will likely produce extremly unpleasing results that are
. unlikely to parallel the running top program.
. */
snprintf(buf, sizeof(buf), "%s", _(""
"Help for color mapping\002 - %s\n"
"current window: \001%s\006\n"
"\n" "\n"
" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n" " color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
" Tasks:\03 64 \02total,\03 2 \03running,\03 62 \02sleeping,\03 0 \02stopped,\03\n" " Tasks:\003 64 \002total,\003 2 \003running,\003 62 \002sleeping,\003 0 \002stopped,\003\n"
" %%Cpu(s):\03 76.5 \02user,\03 11.2 \02system,\03 0.0 \02nice,\03 12.3 \02idle\03\n" " %%Cpu(s):\003 76.5 \002user,\003 11.2 \002system,\003 0.0 \002nice,\003 12.3 \002idle\003\n"
" \01 Nasty Message! \04 -or- \01Input Prompt\05\n" " \001 Nasty Message! \004 -or- \001Input Prompt\005\n"
" \01 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND \06\n" " \001 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND \006\n"
" 17284 \10pts/2 \07 8 0 0.0 0:00.75 1380 0 S /bin/bash \10\n" " 17284 \010pts/2 \007 8 0 0.0 0:00.75 1380 0 S /bin/bash \010\n"
" \01 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z\07\n" " \001 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z\007\n"
" 11005 \10? \07 9 0 0.0 0:02.50 2852 1008 S amor -sessi\10\n" " 11005 \010? \007 9 0 0.0 0:02.50 2852 1008 S amor -sessi\010\n"
" available toggles: \01B\02 =disable bold globally (\01%s\02),\n" " available toggles: \001B\002 =disable bold globally (\001%s\002),\n"
" \01z\02 =color/mono (\01%s\02), \01b\02 =tasks \"bold\"/reverse (\01%s\02)\n" " \001z\002 =color/mono (\001%s\002), \001b\002 =tasks \"bold\"/reverse (\001%s\002)\n"
"\n" "\n"
"Select \01target\02 as upper case letter:\n" "Select \001target\002 as upper case letter:\n"
" S\02 = Summary Data,\01 M\02 = Messages/Prompts,\n" " S\002 = Summary Data,\001 M\002 = Messages/Prompts,\n"
" H\02 = Column Heads,\01 T\02 = Task Information\n" " H\002 = Column Heads,\001 T\002 = Task Information\n"
"Select \01color\02 as number:\n" "Select \001color\002 as number:\n"
" 0\02 = black,\01 1\02 = red, \01 2\02 = green,\01 3\02 = yellow,\n" " 0\002 = black,\001 1\002 = red, \001 2\002 = green,\001 3\002 = yellow,\n"
" 4\02 = blue, \01 5\02 = magenta,\01 6\02 = cyan, \01 7\02 = white\n" " 4\002 = blue, \001 5\002 = magenta,\001 6\002 = cyan, \001 7\002 = white\n"
"\n" "\n"
"Selected: \01target\02 \01 %c \04; \01color\02 \01 %d \04\n" "Selected: \001target\002 \001 %c \004; \001color\002 \001 %d \004\n"
" press 'q' to abort changes to window '\01%s\02'\n" " press 'q' to abort changes to window '\001%s\002'\n"
" press 'a' or 'w' to commit & change another, <Enter> to commit and end " " press 'a' or 'w' to commit & change another, <Enter> to commit and end "
"")); ""));
Uniq_nlstab[COLOR_custom_fmt] = strdup(buf); Uniq_nlstab[COLOR_custom_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _( snprintf(buf, sizeof(buf), "%s", _(""
"Fields Management\02 for window \01%s\06, whose current sort field is \01%s\02\n" "Fields Management\002 for window \001%s\006, whose current sort field is \001%s\002\n"
" Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,\n" " Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,\n"
" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end! " " 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end! "
"")); ""));
Uniq_nlstab[FIELD_header_fmt] = strdup(buf); Uniq_nlstab[FIELD_header_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _("%s:\03" snprintf(buf, sizeof(buf), "%s", _("%s:\003"
" %3u \02total,\03 %3u \02running,\03 %3u \02sleeping,\03 %3u \02stopped,\03 %3u \02zombie\03\n" " %3u \002total,\003 %3u \002running,\003 %3u \002sleeping,\003 %3u \002stopped,\003 %3u \002zombie\003\n"
"")); ""));
Uniq_nlstab[STATE_line_1_fmt] = strdup(buf); Uniq_nlstab[STATE_line_1_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _("%%%s\03" snprintf(buf, sizeof(buf), "%s", _("%%%s\003"
" %#5.1f \02user,\03 %#5.1f \02system,\03 %#5.1f \02nice,\03 %#5.1f \02idle\03\n" " %#5.1f \002user,\003 %#5.1f \002system,\003 %#5.1f \002nice,\003 %#5.1f \002idle\003\n"
"")); ""));
Uniq_nlstab[STATE_lin2x4_fmt] = strdup(buf); Uniq_nlstab[STATE_lin2x4_fmt] = strdup(buf);
/* These are the meanings for abbreviations used below: snprintf(buf, sizeof(buf), "%s", _("%%%s\003"
* lnx 2.5.x, procps-3.0.5 : IO-wait = i/o wait time " %#5.1f \002user,\003 %#5.1f \002system,\003 %#5.1f \002nice,\003 %#5.1f \002idle,\003 %#5.1f \002IO-wait\003\n"
* lnx 2.6.x, procps-3.1.12 : IO-wait now wa, hi = hard irq, si = soft irq
* lnx 2.7.x, procps-3.2.7 : st = steal time */
snprintf(buf, sizeof(buf), "%s", _("%%%s\03"
" %#5.1f \02user,\03 %#5.1f \02system,\03 %#5.1f \02nice,\03 %#5.1f \02idle,\03 %#5.1f \02IO-wait\03\n"
"")); ""));
Uniq_nlstab[STATE_lin2x5_fmt] = strdup(buf); Uniq_nlstab[STATE_lin2x5_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _("%%%s\03" /* Translation Hint: Only the following abbreviations need be translated
" %#5.1f \02us,\03 %#5.1f \02sy,\03 %#5.1f \02ni,\03 %#5.1f \02id,\03 %#5.1f \02wa,\03 %#5.1f \02hi,\03 %#5.1f \02si\03\n" . us = user, sy = system, ni = nice, id = idle, wa = wait,
. hi hardware interrupt, si = software interrupt */
snprintf(buf, sizeof(buf), "%s", _("%%%s\003"
" %#5.1f \002us,\003 %#5.1f \002sy,\003 %#5.1f \002ni,\003 %#5.1f \002id,\003 %#5.1f \002wa,\003 %#5.1f \002hi,\003 %#5.1f \002si\003\n"
"")); ""));
Uniq_nlstab[STATE_lin2x6_fmt] = strdup(buf); Uniq_nlstab[STATE_lin2x6_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _("%%%s\03" /* Translation Hint: Only the following abbreviations need be translated
"%#5.1f \02us,\03%#5.1f \02sy,\03%#5.1f \02ni,\03%#5.1f \02id,\03%#5.1f \02wa,\03%#5.1f \02hi,\03%#5.1f \02si,\03%#5.1f \02st\03\n" . us = user, sy = system, ni = nice, id = idle, wa = wait,
. hi hardware interrupt, si = software interrupt, st = steal time */
snprintf(buf, sizeof(buf), "%s", _("%%%s\003"
"%#5.1f \002us,\003%#5.1f \002sy,\003%#5.1f \002ni,\003%#5.1f \002id,\003%#5.1f \002wa,\003%#5.1f \002hi,\003%#5.1f \002si,\003%#5.1f \002st\003\n"
"")); ""));
Uniq_nlstab[STATE_lin2x7_fmt] = strdup(buf); Uniq_nlstab[STATE_lin2x7_fmt] = strdup(buf);
snprintf(buf, sizeof(buf), "%s", _( /* Translation Hint: Only the following need be translated
"%s Mem: \03 %8lu \02total,\03 %8lu \02used,\03 %8lu \02free,\03 %8lu \02buffers\03\n" . abbreviations: Mem = physical memory/ram, Swap = the linux swap file
"%s Swap:\03 %8lu \02total,\03 %8lu \02used,\03 %8lu \02free,\03 %8lu \02cached\03\n" . words: total, used, free, buffers, cached */
snprintf(buf, sizeof(buf), "%s", _(""
"%s Mem: \003 %8lu \002total,\003 %8lu \002used,\003 %8lu \002free,\003 %8lu \002buffers\003\n"
"%s Swap:\003 %8lu \002total,\003 %8lu \002used,\003 %8lu \002free,\003 %8lu \002cached\003\n"
"")); ""));
Uniq_nlstab[MEMORY_lines_fmt] = strdup(buf); Uniq_nlstab[MEMORY_lines_fmt] = strdup(buf);
} }

View File

@ -19,8 +19,7 @@
#ifndef _Itop_nls #ifndef _Itop_nls
#define _Itop_nls #define _Itop_nls
//#include "../include/c.h" #include "../include/nls.h"
#include "nls.h"
/* /*
* These are our three string tables with the following contents: * These are our three string tables with the following contents:
@ -52,11 +51,11 @@ extern const char *Uniq_nlstab[];
*/ */
enum norm_nls { enum norm_nls {
AMT_kilobyte_txt, AMT_megabyte_txt, AMT_gigabyte_txt, BAD_delayint_fmt, AMT_kilobyte_txt, AMT_megabyte_txt, AMT_gigabyte_txt, BAD_delayint_fmt,
BAD_integers_txt, BAD_max_task_txt, BAD_mon_pids_fmt, BAD_niterate_arg, BAD_integers_txt, BAD_max_task_txt, BAD_mon_pids_fmt, BAD_niterate_fmt,
BAD_numfloat_txt, BAD_signalid_txt, BAD_username_txt, BAD_widtharg_fmt, BAD_numfloat_txt, BAD_signalid_txt, BAD_username_txt, BAD_widtharg_fmt,
CHOOSE_group_txt, COLORS_nomap_txt, DELAY_badarg_txt, DELAY_change_fmt, CHOOSE_group_txt, COLORS_nomap_txt, DELAY_badarg_txt, DELAY_change_fmt,
DELAY_secure_txt, DISABLED_cmd_fmt, DISABLED_win_fmt, EXIT_signals_fmt, DELAY_secure_txt, DISABLED_cmd_txt, DISABLED_win_fmt, EXIT_signals_fmt,
FAIL_alloc_c_txt, FAIL_alloc_r_txt, FAIL_openlib_txt, FAIL_rc_open_fmt, FAIL_alloc_c_txt, FAIL_alloc_r_txt, FAIL_openlib_fmt, FAIL_rc_open_fmt,
FAIL_re_nice_fmt, FAIL_sigmask_fmt, FAIL_signals_fmt, FAIL_sigstop_fmt, FAIL_re_nice_fmt, FAIL_sigmask_fmt, FAIL_signals_fmt, FAIL_sigstop_fmt,
FAIL_statget_txt, FAIL_statopn_fmt, FAIL_tty_get_txt, FAIL_tty_mod_fmt, FAIL_statget_txt, FAIL_statopn_fmt, FAIL_tty_get_txt, FAIL_tty_mod_fmt,
FAIL_tty_raw_fmt, FAIL_widecpu_txt, FAIL_widepid_txt, FOREST_modes_fmt, FAIL_tty_raw_fmt, FAIL_widecpu_txt, FAIL_widepid_txt, FOREST_modes_fmt,