r421 - in trunk: . scripts

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Jan 14 20:16:32 EST 2008


Author: icculus
Date: 2008-01-14 20:16:32 -0500 (Mon, 14 Jan 2008)
New Revision: 421

Modified:
   trunk/fileio.c
   trunk/gui_gtkplus2.c
   trunk/gui_stdio.c
   trunk/gui_www.c
   trunk/scripts/localization.lua
   trunk/scripts/mojosetup_init.lua
   trunk/scripts/mojosetup_mainline.lua
Log:
Added German translation (thanks, Dennis Schridde!), improved comments in
 localization.lua, and cleaned up some more localization mistakes and
 inconsistencies that Dennis pointed out.


Modified: trunk/fileio.c
===================================================================
--- trunk/fileio.c	2008-01-14 21:34:19 UTC (rev 420)
+++ trunk/fileio.c	2008-01-15 01:16:32 UTC (rev 421)
@@ -692,7 +692,7 @@
 #if !SUPPORT_URL_HTTP && !SUPPORT_URL_FTP
 MojoInput *MojoInput_fromURL(const char *url)
 {
-    logError(_("No networking support in this build."));
+    logError("No networking support in this build.");
     return NULL;
 } // MojoInput_fromURL
 #endif

Modified: trunk/gui_gtkplus2.c
===================================================================
--- trunk/gui_gtkplus2.c	2008-01-14 21:34:19 UTC (rev 420)
+++ trunk/gui_gtkplus2.c	2008-01-15 01:16:32 UTC (rev 421)
@@ -160,7 +160,7 @@
 static void signal_browse_clicked(GtkButton *_button, gpointer data)
 {
     GtkWidget *dialog = gtk_file_chooser_dialog_new (
-        entry->_("Installation location"),
+        entry->_("Destination"),
         NULL,
         GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
         GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -735,7 +735,6 @@
 
     build_options(opts, box, TRUE);
 
-    // !!! FIXME: better text.
     retval = run_wizard(entry->_("Options"), PAGE_OPTIONS, can_back, can_fwd);
     gtk_widget_destroy(box);
     return retval;

Modified: trunk/gui_stdio.c
===================================================================
--- trunk/gui_stdio.c	2008-01-14 21:34:19 UTC (rev 420)
+++ trunk/gui_stdio.c	2008-01-15 01:16:32 UTC (rev 421)
@@ -485,8 +485,8 @@
 static int MojoGui_stdio_options(MojoGuiSetupOptions *opts,
                                  boolean can_back, boolean can_fwd)
 {
+    const char *inst_opts_str = entry->xstrdup(entry->_("Options"));
     const char *prompt = entry->xstrdup(entry->_("Choose number to change."));
-    const char *inst_opts_str = entry->xstrdup(entry->_("Install options:"));
     int retval = -1;
     boolean getout = false;
     char buf[128];
@@ -591,6 +591,7 @@
     char buf[32];
     char *fmt = entry->xstrdup(entry->_("Please insert '%0'"));
     char *msg = entry->format(fmt, medianame);
+    printf("%s\n", entry->_("Media change"));
     printf("%s\n", msg);
     free(msg);
     free(fmt);
@@ -625,7 +626,7 @@
             printf("%s\n", item);
         else
         {
-            fmt = entry->xstrdup(entry->_("%0 (total progress: %1%%)\n"));
+            fmt = entry->xstrdup(entry->_("%0 (total progress: %1%%)"));
             msg = entry->format(fmt, item, entry->numstr(percent));
             printf("%s\n", msg);
             free(msg);

Modified: trunk/gui_www.c
===================================================================
--- trunk/gui_www.c	2008-01-14 21:34:19 UTC (rev 420)
+++ trunk/gui_www.c	2008-01-15 01:16:32 UTC (rev 421)
@@ -624,8 +624,7 @@
 {
     // Catch any waiting browser connections...and tell them to buzz off!  :)
     char *donetitle = htmlescape(entry->_("Shutting down..."));
-    char *donetext = htmlescape(entry->_(
-          "Setup program is shutting down. You can close this browser now."));
+    char *donetext = htmlescape(entry->_("You can close this browser now."));
     size_t len = 0, alloc = 0;
     char *html = NULL;
 
@@ -862,6 +861,8 @@
 static int MojoGui_www_options(MojoGuiSetupOptions *opts,
                                boolean can_back, boolean can_fwd)
 {
+    // !!! FIXME: write me.
+    STUBBED("www options");
     return 1;
 } // MojoGui_www_options
 

Modified: trunk/scripts/localization.lua
===================================================================
--- trunk/scripts/localization.lua	2008-01-14 21:34:19 UTC (rev 420)
+++ trunk/scripts/localization.lua	2008-01-15 01:16:32 UTC (rev 421)
@@ -44,6 +44,9 @@
 --  in all reasonable tests, then finding out that one guy in Ghana has a
 --  crashing installer because his localization forgot to add a %1 somewhere.
 --
+-- Occasionally you might see a "\n" ... that's a newline character. "\t" is
+--  a tab character, and "\\" turns into a single "\" character.
+--
 -- You should leave the existing strings here. They aren't hurting anything,
 --  and most are used by MojoSetup itself. Add your own, if needed, though.
 --
@@ -57,503 +60,756 @@
 MojoSetup.localization = {
     -- zlib error message
     ["need dictionary"] = {
-      nb = "trenger ordbok",
+        de = "Wörterbuch benötigt",
+        nb = "trenger ordbok",
     };
 
     -- zlib error message
     ["data error"] = {
-      nb = "datafeil",
+        de = "Datenfehler",
+        nb = "datafeil",
     };
 
     -- zlib error message
     ["memory error"] = {
-      nb = "minnefeil",
+        de = "Speicherfehler",
+        nb = "minnefeil",
     };
 
     -- zlib error message
     ["buffer error"] = {
-      nb = "bufferfeil",
+        de = "Pufferfehler",
+        nb = "bufferfeil",
     };
 
     -- zlib error message
     ["version error"] = {
-      nb = "versjonsfeil",
+        de = "Versionsfehler",
+        nb = "versjonsfeil",
     };
 
     -- zlib error message
     ["unknown error"] = {
-      nb = "ukjent feil",
+        de = "Unbekannter Fehler",
+        nb = "ukjent feil",
     };
 
-    -- stdio GUI plugin says this for msgboxes.
+    -- stdio UI plugin says this for "OK"-only msgboxes. "%0" is the message
+    --  box's text content.
     ["NOTICE: %0\n[hit enter]"] = {
-      nb = "NB: %0\n[trykk enter]",
+        de = "HINWEIS: %0\n[Drücken Sie Enter]",
+        nb = "NB: %0\n[trykk enter]",
     };
 
-    -- stdio GUI plugin says this for yes/no prompts that default to yes.
+    -- stdio UI plugin says this for yes/no prompts that default to yes.
+    -- "%0" is the question the user is being asked to respond to.
     ["%0\n[Y/n]: "] = {
-      nb = "%0\n[J/n]: ",
+        de = "%0\n[J/n]",
+        nb = "%0\n[J/n]: ",
     };
 
-    -- stdio GUI plugin says this for yes/no prompts that default to no.
+    -- stdio UI plugin says this for yes/no prompts that default to no.
+    -- "%0" is the question the user is being asked to respond to.
     ["%0\n[y/N]: "] = {
-      nb = "%0\n[j/N]: ",
+        de = "%0\n[j/N]",
+        nb = "%0\n[j/N]: ",
     };
 
-    -- stdio GUI plugin says this for yes/no/always/never prompts.
+    -- stdio UI plugin says this for yes/no/always/never prompts.
+    -- "%0" is the question the user is being asked to respond to.
     ["%0\n[y/n/Always/Never]: "] = {
-      nb = "%0\n[j/n/Alltid/Aldri]: ",
+        de = "%0\n[j/n/Immer/Niemals]",
+        nb = "%0\n[j/n/Alltid/Aldri]: ",
     };
 
-    -- This is utf8casecmp()'d for "yes" answers in stdio GUI's promptyn().
+    -- This is used for "yes" in stdio UI's yes/no prompts (case insensitive).
     ["Y"] = {
-      nb = "J",
+        de = "J",
+        nb = "J",
     };
 
-    -- This is utf8casecmp()'d for "no" answers in stdio GUI's promptyn().
+    -- This is used for "no" in stdio UI's yes/no prompts (case insensitive).
     ["N"] = {
-      nb = "N",
+        de = "N",
+        nb = "N",
     };
 
-    -- This is shown when using stdio GUI's built-in README pager (printf format).
-    ["(%0-%1 of %2 lines, see more?)"] = {
-      nb = "(%0-%1 av %2 linjer, se mer?)",
-    };
-
-    -- This is utf8casecmp()'d for "always" answers in stdio GUI's promptyn().
+    -- This is used for "always" in stdio UI's yes/no/always/never prompts
+    --  (case insensitive).
     ["Always"] = {
-      nb = "Alltid",
+        de = "Immer",
+        nb = "Alltid",
     };
 
-    -- This is utf8casecmp()'d for "never" answers in stdio GUI's promptyn().
+    -- This is used for "never" in stdio UI's yes/no/always/never prompts
+    --  (case insensitive).
     ["Never"] = {
-      nb = "Aldri",
+        de = "Niemals",
+        nb = "Aldri",
     };
 
+    -- This is shown when using stdio UI's built-in README pager, to
+    --  show what range of lines of text are being displayed (%0 is first
+    --  line, %1 is last line, %2 is the total number of lines of text).
+    ["(%0-%1 of %2 lines, see more?)"] = {
+        de = "(%0-%1 von %2 Zeilen, mehr anschauen?)",
+        nb = "(%0-%1 av %2 linjer, se mer?)",
+    };
+
+    -- The stdio UI uses this sentence in the prompt if the user is able
+    --  to return to a previous stage of installation (from the options
+    --  section to the "choose installation destination" section, etc).
     ["Type '%0' to go back."] = {
-      nb = "Skriv '%0' for å gå tilbake.",
+        de = "Drücken Sie '%0' um zurückzugehen.",
+        nb = "Skriv '%0' for å gå tilbake.",
     };
 
     -- This is the string used for the '%0' in the above string.
+    --  This is only for the stdio UI, so choose something easy and
+    --  reasonable for the user to manually type. The UIs use a different
+    --  string for their button ("Back" vs "back" specifically).
     ["back"] = {
-      nb = "tilbake",
+        de = "zurück", -- FIXME Does this name a button? Which one???
+        nb = "tilbake",
     };
 
     -- This is the prompt in the stdio driver when user input is expected.
     ["> "] = {
+        de = "> ",
+        nb = "> ",
     };
 
-    ["NOTICE: %0\n[hit enter]"] = {
-      nb = "NB: %0\n[trykk enter]", --DUP?
-    };
-
     -- That's meant to be the name of an item (%0) and the percent done (%1).
     ["%0: %1%%"] = {
-      nb = "%0: %1%%",
+        de = "%0: %1%%",
+        nb = "%0: %1%%",
     };
 
-    ["%0 (total progress: %1%%)\n"] = {
-      nb = "%0 (totalt: %1%%)\n",
+    -- The stdio UI uses this to show current status (%0),
+    --  and overall progress as percentage of work complete (%1).
+    ["%0 (total progress: %1%%)"] = {
+        de = "%0 (Gesamtfortschritt: %1%%)",
+        nb = "%0 (totalt: %1%%)",
     };
 
+    -- This prompt is shown to the end-user after an End User License Agreement
+    --  has been displayed, asking them if the license text is acceptable to
+    --  them. It's a yes/no question.
     ["Accept this license?"] = {
-      nb = "Akseptere denne lisensen?",
+        de = "Nehmen Sie die Lizenzbedingungen an?",
+        nb = "Akseptere denne lisensen?",
     };
 
-    -- This is a GTK+ button label. The '_' comes after the hotkey character.
+    -- This is a GTK+ button label for yes/no/always/never questions.
+    --  The '_' comes before the hotkey character.
     ["_Always"] = {
-      nb = "_Alltid",
+        de = "_Immer",
+        nb = "_Alltid",
     };
 
-    ["Archive not found."] = {
-      nb = "Fant ikke arkiv.",
+    -- This is an error message reported when a .zip file (or whatever) that
+    --  we need can't be located.
+    ["Archive not found"] = {
+        de = "Archiv nicht gefunden",
+        nb = "Fant ikke arkiv",
     };
 
+    -- This prompt is shown to the user when they click the "Cancel" button,
+    --  to confirm they really want to stop. It's a yes/no question.
     ["Are you sure you want to cancel installation?"] = {
-      nb = "Er du sikker på at du vil avbryte installasjonen?",
+        de = "Sind Sie sicher, dass Sie die Installation abbrechen wollen?",
+        nb = "Er du sikker på at du vil avbryte installasjonen?",
     };
 
+    -- The opposite of "next", used as a UI button label.
     ["Back"] = {
-      nb = "Tilbake",
+        de = "Zurück",
+        nb = "Tilbake",
     };
 
-    -- This is a GTK+ button label. The '_' comes after the hotkey character.
+    -- This is a GTK+ button label. The '_' comes before the hotkey character.
+    --  "Back" might be using 'B' in English. This button brings up a file
+    --  dialog where the end-user can navigate to and select files.
     ["B_rowse..."] = {
-      nb = "B_la gjennom...",
+        de = "D_urchsuchen",
+        nb = "B_la gjennom...",
     };
 
-    -- "bytes per second"
-    ["B/s"] = {
+
+    --  All the "BUG:" strings are generally meant to be seen by developers,
+    --   not end users. They represent programming errors and configuration
+    --   file problems.
+
+    -- This is shown if the configuration file has specified two cd-roms (or
+    --  whatever) with the same media id, which is a bug the developer must
+    --  fix before shipping her installer.
+    -- "media id" refers to Setup.Media.id in the config file. It's not meant
+    --  to be a proper name, in this case.
+    ["BUG: duplicate media id"] = {
+        de = "FEHLER: Doppelte Medien ID",
+        nb = "FEIL: duplisert media-id",
     };
 
+    -- This is shown if the configuration file has no installable options,
+    --  either because none are listed or they've all become disabled, which
+    --  is a bug the developer must fix before shipping her installer.
+    ["BUG: no options"] = {
+        de = "FEHLER: Keine Optionen",
+        nb = "FEIL: ingen valg",
+    };
+
+    -- This is a file's permissions. Programmers give these as strings, and
+    --  if one isn't valid, the program will report this. So, on Unix, they
+    --  might specify "0600" as a valid string, but "sdfksjdfk" wouldn't be
+    --  and cause this error.
     ["BUG: '%0' is not a valid permission string"] = {
-      nb = "FEIL: '%0' er ikke en gyldig rettighetsstreng",
+        de = "FEHLER: '%0' ist keine zulässige Berechtigungs-Zeichenkette", -- FIXME Better word for "Berechtigungs-Zeichenkette" needed
+        nb = "FEIL: '%0' er ikke en gyldig rettighetsstreng",
     };
 
+    -- If there's a string in the program that needs be formatted with
+    --  %0, %1, etc, and it specifies an invalid sequence like "%'", this
+    --  error pops up to inform the programmer/translator.
+    -- "format()" is a proper name in this case (program function name)
     ["BUG: Invalid format() string"] = {
-      nb = "FEIL: Ugyldig format()-streng",
+        de = "FEHLER: Unzulässige format() Zeichenkette",
+        nb = "FEIL: Ugyldig format()-streng",
     };
 
-    ["BUG: stage returned wrong type."] = {
-      nb = "FEIL: nivå returnerte feil type.",
+    -- The program runs in "stages" and as it transitions from one stage to
+    --  another, it has to report some data about what happened during the
+    --  stage. A programming bug may cause unexpected type of data to be
+    --  reported, causing this error to pop up.
+    ["BUG: stage returned wrong type"] = {
+        de = "FEHLER: Phase gab falschen Typ zurück", -- FIXME "stage"?
+        nb = "FEIL: nivå returnerte feil type",
     };
 
-    ["BUG: stage returned wrong value."] = {
-      nb = "FEIL: nivå returnerte feil verdi.",
+    -- The program runs in "stages" and as it transitions from one stage to
+    --  another, it has to report some data about what happened during the
+    --  stage. A programming bug may cause unexpected information to be
+    --  reported, causing this error to pop up.
+    ["BUG: stage returned wrong value"] = {
+        de = "FEHLER: Phase gab falschen Wert zurück", -- FIXME "stage"?
+        nb = "FEIL: nivå returnerte feil verdi",
     };
 
+    -- The program runs in "stages", which can in many cases be revisited
+    --  by the user clicking the "Back" button. If the program has a bug
+    --  that allows the user to click "Back" on the initial stage, this
+    --  error pops up.
     ["BUG: stepped back over start of stages"] = {
-      nb = "FEIL: Gikk tilbake forbi startnivå",
+        de = "FEHLER: Über die Startphase hinaus zurückgegangen", -- FIXME "stage"?
+        nb = "FEIL: Gikk tilbake forbi startnivå",
     };
 
+    -- This happens if there's an unusual case when writing out Lua scripts
+    --  to disk. This should never be seen by an end-user.
     ["BUG: Unhandled data type"] = {
-      nb = "FEIL: Uhåndtert datatype",
+        de = "FEHLER: Unbehandelter Datentyp",
+        nb = "FEIL: Uhåndtert datatype",
     };
 
-    -- "tar" is a proper name in this case.
+    -- This is triggered by a logic bug in the i/o subsystem.
+    --  This should never be seen by an end-user.
+    --  "tar" is a proper name in this case (it's a file format).
     ["BUG: Can't duplicate tar inputs"] = {
-      nb = "FEIL: Kan ikke duplisere innfiler for tar",
+        de = "FEHLER: Tar-Eingaben können nicht dupliziert werden",
+        nb = "FEIL: Kan ikke duplisere innfiler for tar",
     };
 
     -- Buggy config elements:
-    -- This is supposed to be a config element ($0) and something that's wrong
-    --  with it ($1), such as "BUG: Config Package::description not a string"
+    -- This is supposed to be a config element (%0) and something that's wrong
+    --  with it (%1), such as "BUG: Config Package::description not a string"
     -- The grammar can be imperfect here; this is a developer error, not an
     --  end-user error, so we haven't made this very flexible.
-    ["BUG: Config $0 $1."] = {
-      nb = "FEIL: Konfigurasjon $0 $1.",
+    ["BUG: Config %0 %1"] = {
+        de = "FEHLER: Konfiguration %0 %1",
+        nb = "FEIL: Konfigurasjon %0 %1",
     };
 
     -- This is an error string for a buggy config element. See notes above.
     ["must be explicitly specified"] = {
-      nb = "må gis eksplisitt",
+        de = "muss explizit angegeben werden",
+        nb = "må gis eksplisitt",
     };
 
     -- This is an error string for a buggy config element. See notes above.
     ["must be string or table of strings"] = {
-      nb = "må være streng eller tabell av strenger",
+        de = "muss ein String oder eine Tabelle von Strings sein",
+        nb = "må være streng eller tabell av strenger",
     };
 
     -- This is an error string for a buggy config element. See notes above.
     ["must be a string or number"] = {
-      nb = "må være streng eller nummer",
+        de = "muss ein String oder eine Zahl sein",
+        nb = "må være streng eller nummer",
     };
 
     -- This is an error string for a buggy config element. See notes above.
     ["can't be empty string"] = {
-      nb = "kan ikke være tom streng",
+        de = "darf kein leerer String sein",
+        nb = "kan ikke være tom streng",
     };
 
     -- This is an error string for a buggy config element. See notes above.
     ["URL doesn't have protocol"] = {
-      nb = "URL har ikke protokoll",
+        de = "URL hat kein Protokoll",
+        nb = "URL har ikke protokoll",
     };
 
     -- This is an error string for a buggy config element. See notes above.
     ["URL doesn't have host"] = {
-      nb = "URL har ikke vert",
+        de = "URL hat keinen Host",
+        nb = "URL har ikke vert",
     };
 
     -- This is an error string for a buggy config element. See notes above.
     ["URL doesn't have path"] = {
-      nb = "URL har ikke sti",
+        de = "URL hat keinen Pfad",
+        nb = "URL har ikke sti",
     };
 
     -- This is an error string for a buggy config element. See notes above.
     ["URL protocol is unsupported"] = {
-      nb = "URL-protokoll er ikke støttet",
+        de = "URL Protokoll wird nicht unterstützt",
+        nb = "URL-protokoll er ikke støttet",
     };
 
     -- This is an error string for a buggy config element. See notes above.
+    --  "Permission string" is text representing a file's permissions,
+    --  such as "0644" on Unix.
     ["Permission string is invalid"] = {
-      nb = "Rettighetsstreng er ugyldig",
+        de = "Berechtigungs-String ist ungültig", -- FIXME "Berechtigungs-Zeichenkette"... s.a.
+        nb = "Rettighetsstreng er ugyldig",
     };
 
     -- This is an error string for a buggy config element. See notes above.
+    --  "property" means attribute, not something owned, in this case.
     ["is not a valid property"] = {
-      nb = "er ikke en gyldig egenskap",
+        de = "ist keine gültige Eigenschaft",
+        nb = "er ikke en gyldig egenskap",
     };
 
     -- This is an error string for a buggy config element. See notes above.
-    --  $0 is a data type name (string, number, table, etc).
-    ["must be $0"] = {
-      nb = "må være $0",
+    --  %0 is a data type name (string, number, table, etc).
+    ["must be %0"] = {
+        de = "muss vom Typ %0 sein",
+        nb = "må være %0",
     };
 
-    -- Data types for "must be $0" above...
+    -- Data type for "must be %0" above...
     ["string"] = {
-      nb = "streng",
+        de = "String",
+        nb = "streng",
     };
 
+    -- Data type for "must be %0" above...
     ["boolean"] = {
-      nb = "boolsk verdi",
+        de = "Bool",
+        nb = "boolsk verdi",
     };
 
+    -- Data type for "must be %0" above...
     ["number"] = {
-      nb = "nummer",
+        de = "Zahl",
+        nb = "nummer",
     };
 
+    -- Data type for "must be %0" above...
     ["function"] = {
-      nb = "funksjon",
+        de = "Funktion",
+        nb = "funksjon",
     };
 
+    -- Data type for "must be %0" above...
     ["table"] = {
-      nb = "tabell",
+        de = "Tabelle",
+        nb = "tabell",
     };
 
 
-
+    -- bzlib is a proper name. The error message (%0) may not be localized,
+    --  it's meant to be a developer error and not an end-user message.
     ["bzlib triggered an internal error: %0"] = {
-      nb = "intern feil i bzlib: %0",
+        de = "bzlib hat einen internen Fehler ausgelöst: %0",
+        nb = "intern feil i bzlib: %0",
     };
 
+    -- This is a UI button label, usually paired with "OK", but also usually
+    --  present as a generic "stop the program" button.
     ["Cancel"] = {
-      nb = "Avbryt",
+        de = "Abbrechen",
+        nb = "Avbryt",
     };
 
+    -- This is a message box title when prompting for confirmation when the
+    --  the user clicks the Cancel button.
     ["Cancel installation"] = {
-      nb = "Avbryt installasjonen",
+        de = "Installation abbrechen",
+        nb = "Avbryt installasjonen",
     };
 
-    ["Can't enumerate archive"] = {
-      nb = "Kan ikke enumerere arkiv",
+    -- This error is reported for i/o failures while listing files contained
+    --  in a .zip (or whatever) file.
+    ["Couldn't enumerate archive"] = {
+        de = "Konnte Archiv nicht auflisten.",
+        nb = "Kunne ikke enumerere arkiv.",
     };
 
-    ["Can't open archive."] = {
-      nb = "Kan ikke åpne arkiv.",
+    -- This error is reported for i/o failures while opening a .zip
+    --  (or whatever) file.
+    ["Couldn't open archive."] = {
+        de = "Konnte Archiv nicht öffnen",
+        nb = "Kunne ikke åpne arkiv.",
     };
 
+    -- This is used by the stdio UI to choose a location to write files.
+    --  A numbered list of options is printed, and the user may choose one by
+    --  its number (default is number one), or enter their own text instead of
+    --  choosing a default. This string is the instructions printed for the
+    --  user before the prompt.
     ["Choose install destination by number (hit enter for #1), or enter your own."] = {
-      nb = "Velg installasjonssti etter nummer (trykk enter for #1), eller skriv din egen.",
+        de = "Wählen Sie eine Nummer für das Installationsziel (drücken Sie Enter für #1), oder geben Sie ein eigenes an.",
+        nb = "Velg installasjonssti etter nummer (trykk enter for #1), eller skriv din egen.",
     };
 
+    -- This is used by the stdio UI to toggle options. A numbered list is
+    --  printed, and the user can enter one of those numbers to toggle that
+    --  option on or off. This string is the instructions printed for the
+    --  user before the prompt.
     ["Choose number to change."] = {
-      nb = "Velg nummer som skal endres.",
+        de = "Wählen Sie eine Nummer zum Ändern.",
+        nb = "Velg nummer som skal endres.",
     };
 
-    ["Config bug: duplicate media id"] = {
-      nb = "Konfigurasjonsfeil: duplisert media-id",
-    };
-
-    ["Config bug: no options"] = {
-      nb = "Konfigurasjonsfeil: ingen valg",
-    };
-
-    -- As in "two different files want to use the same name"
+    -- As in "two different files want to use the same name." This is a title
+    --  on a message box.
     ["Conflict!"] = {
-      nb = "Konflikt!",
+        de = "Namenskonflikt!", -- FIXME Translated as "Name conflict!"
+        nb = "Konflikt!",
     };
 
+    -- This is an error message shown to the user. When a file is to be
+    --  overwritten, we move it out of the way instead, so we can restore it
+    --  ("roll the file back") in case of problems, with the goal of having
+    --  an installation that fails halfway through reverse any changes it made.
+    -- This error is shown if we can't move a file out of the way.
     ["Couldn't backup file for rollback"] = {
-      nb = "Kunne ikke sikkerhetskopiere fil for tilbakerulling",
+        de = "Konnte Datei nicht zum Zurücknehmen sichern",
+        nb = "Kunne ikke sikkerhetskopiere fil for tilbakerulling",
     };
 
+    -- This error is shown if we aren't able to write the list of files
+    --  that were installed (the "manifest") to disk.
     ["Couldn't create manifest"] = {
-      nb = "Kunne ikke lage manifest",
+        de = "Konnte Manifest nicht erstellen",
+        nb = "Kunne ikke lage manifest",
     };
 
-    ["Couldn't enumerate archive."] = {
-      nb = "Kunne ikke enumerere arkiv.",
-    };
-
-    ["Couldn't open archive."] = {
-      nb = "Kunne ikke åpne arkiv.",
-    };
-
+    -- This is an error message. It speaks for itself.   :)
     ["Couldn't restore some files. Your existing installation is likely damaged."] = {
-      nb = "Noen filer kunne ikke tilbakestilles. Den eksisterende installasjonen er sannsynligvis skadet.",
+        de = "Konnte einige Dateien nicht widerherstellen. Ihre Installation ist wahrscheinlich beschädigt.",
+        nb = "Noen filer kunne ikke tilbakestilles. Den eksisterende installasjonen er sannsynligvis skadet.",
     };
 
+    -- Error message when deleting a file fails.
     ["Deletion failed!"] = {
-      nb = "Kunne ikke slette!",
+        de = "Löschung fehlgeschlagen!",
+        nb = "Kunne ikke slette!",
     };
 
+    -- This is a window title when user is selecting a path to install files.
     ["Destination"] = {
-      nb = "Destinasjon",
+        de = "Ziel",
+        nb = "Destinasjon",
     };
 
+    -- This is a window title while the program is downloading external files
+    --  it needs from the network.
     ["Downloading"] = {
-      nb = "Laster ned",
+        de = "Herunterladen",
+        nb = "Laster ned",
     };
 
+    -- Several UIs use this string as a prompt to the end-user when selecting
+    --  a destination for newly-installed files.
     ["Enter path where files will be installed."] = {
-      nb = "Skriv inn destinasjonssti for installasjonen.",
+        de = "Geben Sie den Pfad an, wo Dateien installiert werden sollen.",
+        nb = "Skriv inn destinasjonssti for installasjonen.",
     };
 
+    -- Error message when a file we expect to load can't be read from disk.
     ["failed to load file '%0'"] = {
-      nb = "kunne ikke laste fil '%0'",
+        de = "Laden von Datei '%0' fehlgeschlagen",
+        nb = "kunne ikke laste fil '%0'",
     };
 
+    -- This is a window title when something goes very wrong.
     ["Fatal error"] = {
-      nb = "Fatal feil",
+        de = "Schwerer Fehler",
+        nb = "Fatal feil",
     };
 
+    -- This is an error message when failing to write a file to disk.
     ["File creation failed!"] = {
-      nb = "Kunne ikke lage fil!",
+        de = "Dateierstellung fehlgeschlagen!",
+        nb = "Kunne ikke lage fil!",
     };
 
+    -- This is an error message when failing to get a file from the network.
     ["File download failed!"] = {
-      nb = "Kunne ikke laste ned fil!",
+        de = "Dateidownload fehlgeschlagen!",
+        nb = "Kunne ikke laste ned fil!",
     };
 
-    ["File '$0' already exists! Replace?"] = {
-      nb = "Filen '$0' eksisterer allerede! Skrive over?",
+    -- This prompt is shown to users when we may overwrite an existing file.
+    --  "%0" is the filename.
+    ["File '%0' already exists! Replace?"] = {
+        de = "Datei '%0' existiert bereits! Ersetzen?",
+        nb = "Filen '%0' eksisterer allerede! Skrive over?",
     };
 
+    -- This is a button in the UI. It replaces "Next" when there are no more
+    --  stages to move forward to.
     ["Finish"] = {
-      nb = "Ferdig",
+        de = "Fertigstellen",
+        nb = "Ferdig",
     };
 
+    -- This error message is (hopefully) shown to the user if the UI
+    --  subsystem can't create the main application window.
     ["GUI failed to start"] = {
-      nb = "Kunne ikke starte grafisk grensesnitt",
+        de = "GUI konnte nicht gestartet werden",
+        nb = "Kunne ikke starte grafisk grensesnitt",
     };
 
+    -- This message is shown to the user if an installation encounters a fatal
+    --  problem (or the user clicked "cancel"), telling them that we'll try
+    --  to put everything back how it was before we started.
     ["Incomplete installation. We will revert any changes we made."] = {
-      nb = "Installasjonen ble ikke ferdig. Vi vil tilbakestille alle endringer som ble gjort.",
+        de = "Unvollständige Installation. Vollzogene Veränderungen werden zurückgenommen.",
+        nb = "Installasjonen ble ikke ferdig. Vi vil tilbakestille alle endringer som ble gjort.",
     };
 
-    ["Installation location"] = {
-      nb = "Installasjonssti",
-    };
-
+    -- Reported to the user if everything worked out.
     ["Installation was successful."] = {
-      nb = "Installasjonen var en suksess.",
+        de = "Installation war erfolgreich.",
+        nb = "Installasjonen var en suksess.",
     };
 
+    -- This is a window title, shown while the actual installation to disk
+    --  is in process and a progress meter is being shown.
     ["Installing"] = {
-      nb = "Installerer",
+        de = "Installieren",
+        nb = "Installerer",
     };
 
-    ["Install options:"] = {
-      nb = "Installasjonsvalg:",
+    -- This is a window title, shown while the user is choosing
+    --  installation-specific options.
+    ["Options"] = {
+        de = "Optionen",
+        nb = "Valg",
     };
 
+    -- Shown as an option in the ncurses UI as the final element in a list of
+    --  default filesystem paths where a user may install files. They can
+    --  choose this to enter a filesystem path manually.
     ["(I want to specify a path.)"] = {
-      nb = "(Jeg vil skrive min egen sti.)",
+        de = "(Ich möchte einen Pfad angeben.)",
+        nb = "(Jeg vil skrive min egen sti.)",
     };
 
-    -- "kilobytes per second"
+    -- "kilobytes per second" ... download rate.
     ["KB/s"] = {
+        de = "KB/s",
+        nb = "KB/s",
     };
 
+    -- "bytes per second" ... download rate.
+    ["B/s"] = {
+        de = "B/s",
+        nb = "B/s",
+    };
+
     -- Download rate when we don't know the goal (can't report time left).
-    -- This is a number ($0) followed by the localized "KB/s" or "B/s" ($1).
-    ["$0 $1"] = {
+    -- This is a number (%0) followed by the localized "KB/s" or "B/s" (%1).
+    ["%0 %1"] = {
+        de = "%0 %1",
+        nb = "%0 %1",
     };
 
     -- Download rate when we know the goal (can report time left).
-    -- This is a number ($0) followed by the localized "KB/s" or "B/s" ($1),
-    --  then the hours ($2), minutes ($3), and seconds ($4) remaining
-    ["$0 $1, $2:$3:$4 remaining"] = {
-      nb = "$0 $1, $2:$3:$4 igjen",
+    -- This is a number (%0) followed by the localized "KB/s" or "B/s" (%1),
+    --  then the hours (%2), minutes (%3), and seconds (%4) remaining
+    ["%0 %1, %2:%3:%4 remaining"] = {
+        de = "%0 %1, %2:%3:%4 verbleibend",
+        nb = "%0 %1, %2:%3:%4 igjen",
     };
 
     -- download rate when download isn't progressing at all.
     ["stalled"] = {
-      nb = "står fast",
+        de = "Stillstand", -- FIXME Translated as "halt" or "standstill"
+        nb = "står fast",
     };
 
-    -- Download progress string: filename ($0), percent downloaded ($1),
-    --  download rate determined in one of the above strings ($2).
-    ["$0: $1%% ($2)"] = {
+    -- Download progress string: filename (%0), percent downloaded (%1),
+    --  download rate determined in one of the above strings (%2).
+    ["%0: %1%% (%2)"] = {
+        de = "%0: %1%% (%2)",
+        nb = "%0: %1%% (%2)",
     };
 
+    -- This is a window title when prompting the user to insert a new disc.
     ["Media change"] = {
-      nb = "Mediaendring",
+        de = "Medienwechsel",
+        nb = "Mediaendring",
     };
 
+    -- This error message is shown to the end-user when we can't make a new
+    --  folder/directory in the filesystem.
     ["Directory creation failed"] = {
-      nb = "Kunne ikke lage katalog",
+        de = "Erstellung eines Verzeichnisses fehlgeschlagen",
+        nb = "Kunne ikke lage katalog",
     };
 
-    ["need dictionary"] = {
-      nb = "trenger ordbok",
-    };
-
-    -- This is a GTK+ button label. The '_' comes after the hotkey character.
+    -- This is a GTK+ button label. The '_' comes before the hotkey character.
+    --  "No" would take the 'N' hotkey in English.
     ["N_ever"] = {
-      nb = "Al_dri",
+        de = "N_iemals",
+        nb = "Al_dri",
     };
 
+    -- This is a GUI button label, to move forward to the next stage of
+    --  installation. It's opposite is "Back" in this case.
     ["Next"] = {
-      nb = "Neste",
+        de = "Weiter",
+        nb = "Neste",
     };
 
+    -- This is a GUI button label, indicating a negative response.
     ["No"] = {
-      nb = "Nei",
+        de = "Nein",
+        nb = "Nei",
     };
 
-    ["No networking support in this build."] = {
-      nb = "Nettverksstøtte er ikke aktivert i denne versjonen.",
+    -- This is a GUI button label, indicating a positive response.
+    ["Yes"] = {
+        de = "Ja",
+        nb = "Ja",
     };
 
+    -- HTTP error message in the www UI, as in "404 Not Found" ... requested
+    --  file is missing.
     ["Not Found"] = {
-      nb = "Ikke funnet",
+        de = "Nicht gefunden",
+        nb = "Ikke funnet",
     };
 
+    -- This is reported to the user when there are no files to install, and
+    --  thus no installation to go forward.
     ["Nothing to do!"] = {
-      nb = "Ingenting å gjøre!",
+        de = "Nichts zu tun!",
+        nb = "Ingenting å gjøre!",
     };
 
+    -- This is a GUI button label, sometimes paired with "Cancel"
     ["OK"] = {
-      nb = "OK",
+        de = "OK",
+        nb = "OK",
     };
 
-    ["Options"] = {
-      nb = "Valg",
-    };
-
+    -- This is displayed when the application has a serious problem, such as
+    --  crashing again in the crash handler, or being unable to find basic
+    --  files it needs to get started. It may be a window title, or written
+    --  to stdout, or whatever, but it's basically meant to be a title or
+    --  header, with more information to follow later.
     ["PANIC"] = {
-      nb = "PANIKK",
+        de = "PANIK",
+        nb = "PANIKK",
     };
 
+    -- Prompt shown to user when we need her to insert a new disc.
     ["Please insert '%0'"] = {
-      nb = "Sett inn '%0'",
+        de = "Bitte fügen Sie '%0' ein",
+        nb = "Sett inn '%0'",
     };
 
+    -- Prompt shown to user in the stdio UI when we need to pause before
+    --  continuing, usually to let them read the outputted text that is
+    --  scrolling by.
     ["Press enter to continue."] = {
-      nb = "Trykk enter for å fortsette.",
+        de = "Drücken Sie Enter um fortzufahren",
+        nb = "Trykk enter for å fortsette.",
     };
 
+    -- This is a window title when informing the user that something
+    --  important has gone wrong (such as being unable to revert changes
+    --  during a rollback).
     ["Serious problem"] = {
-      nb = "Alvorlig problem",
+        de = "Ernstes Problem",
+        nb = "Alvorlig problem",
     };
 
+    -- The www UI uses this as a page title when the program is terminating.
     ["Shutting down..."] = {
-      nb = "Avslutter...",
+        de = "Schließe...",
+        nb = "Avslutter...",
     };
 
+    -- The www UI uses this as page text when the program is terminating.
+    ["You can close this browser now."] = {
+    };
+
+    -- Error message shown to end-user when we can't write a symbolic link
+    --  to the filesystem.
     ["Symlink creation failed!"] = {
-      nb = "Kunne likke lage symbolsk lenke!",
+        de = "Erzeugung einer Verknüpfung fehlgeschlagen!",
+        nb = "Kunne likke lage symbolsk lenke!",
     };
 
+    -- Error message shown to the end-user when the OS has requested
+    --  termination of the program (SIGINT/ctrl-c on Unix, etc).
     ["The installer has been stopped by the system."] = {
-      nb = "Installasjonsprogrammet ble stoppet av systemet.",
+        de = "Das Installationsprogramm wurde vom System gestoppt.",
+        nb = "Installasjonsprogrammet ble stoppet av systemet.",
     };
 
+    -- Error message shown to the end-user when the program crashes with a
+    --  bad memory access (segfault on Unix, GPF on Windows, etc).
     ["The installer has crashed due to a bug."] = {
-      nb = "Installasjonsprogrammet kræsjet pga. en feil.",
+        de = "Das Installationsprogramm ist aufgrund eines Fehlers abgestürzt.",
+        nb = "Installasjonsprogrammet kræsjet pga. en feil.",
     };
 
-    -- This is a button label in the ncurses ui.
+    -- This is a button label in the ncurses ui to flip an option on/off.
     ["Toggle"] = {
-      nb = "Inverter valg",
+        de = "Umschalten",
+        nb = "Inverter valg",
     };
 
+    -- This is an error message shown to the end-user when there is an
+    --  unexpected entry in a .zip (or whatever) file that we didn't know
+    --  how to handle.
     ["Unknown file type in archive"] = {
-      nb = "Ukjent filtype i arkivet",
+        de = "Unbekannter Dateityp im Archiv",
+        nb = "Ukjent filtype i arkivet",
     };
 
-    ["Yes"] = {
-      nb = "Ja",
-    };
-
+    -- This is an error message shown to the end-user if they refuse to
+    --  agree to the license of the software they are try to install.
     ["You must accept the license before you may install"] = {
-      nb = "Lisensen må godkjennes før du kan installere",
+        de = "Sie müssen den Lizenzbedingungen zustimmen, bevor sie installieren können",
+        nb = "Lisensen må godkjennes før du kan installere",
     };
 
+    -- Installations display the currently-installing component, such as
+    --  "Base game" or "Bonus pack content" or whatnot. The installer lists
+    --  the current component as "Metadata" when writing out its own
+    --  information, such as file manifests, uninstall support, etc.
     ["Metadata"] = {
-      nb ="Metadata",
+        de = "Metadaten",
+        nb ="Metadata",
     };
 };
 

Modified: trunk/scripts/mojosetup_init.lua
===================================================================
--- trunk/scripts/mojosetup_init.lua	2008-01-14 21:34:19 UTC (rev 420)
+++ trunk/scripts/mojosetup_init.lua	2008-01-15 01:16:32 UTC (rev 421)
@@ -177,7 +177,7 @@
 
 local function schema_assert(test, fnname, elem, errstr)
     if not test then
-        local msg = MojoSetup.format(_("BUG: Config $0 $1."),
+        local msg = MojoSetup.format(_("BUG: Config %0 %1"),
                                      fnname .. "::" .. elem, errstr)
         MojoSetup.fatal(msg)
     end
@@ -191,7 +191,7 @@
     -- Can be nil...please use mustExist if this is a problem!
     if val ~= nil then
         if type(val) ~= elemtype then
-            local msg = MojoSetup.format(_("must be $0"),
+            local msg = MojoSetup.format(_("must be %0"),
                                          MojoSetup.translate(elemtype))
             schema_assert(false, fnname, elem, msg)
         end

Modified: trunk/scripts/mojosetup_mainline.lua
===================================================================
--- trunk/scripts/mojosetup_mainline.lua	2008-01-14 21:34:19 UTC (rev 420)
+++ trunk/scripts/mojosetup_mainline.lua	2008-01-15 01:16:32 UTC (rev 421)
@@ -165,11 +165,11 @@
                 hoursleft = tostring(hoursleft)
             end
 
-            retval = MojoSetup.format(_("$0 $1, $2:$3:$4 remaining"),
+            retval = MojoSetup.format(_("%0 %1, %2:%3:%4 remaining"),
                                       rate, ratetype,
                                       hoursleft, minsleft, secsleft)
         else
-            retval = MojoSetup.format(_("$0 $1"), rate, ratetype)
+            retval = MojoSetup.format(_("%0 %1"), rate, ratetype)
         end
     end
 
@@ -243,7 +243,7 @@
         ent = MojoSetup.archive.enumnext(archive)
     end
 
-    MojoSetup.fatal(_("Archive not found."))
+    MojoSetup.fatal(_("Archive not found"))
 end
 
 
@@ -394,7 +394,7 @@
                 allowoverwrite = file.allowoverwrite
                 if not allowoverwrite then
                     MojoSetup.loginfo("File '" .. dest .. "' already exists.")
-                    local text = MojoSetup.format(_("File '$0' already exists! Replace?"), dest);
+                    local text = MojoSetup.format(_("File '%0' already exists! Replace?"), dest);
                     local ynan = MojoSetup.promptynan(_("Conflict!"), text, true)
                     if ynan == "always" then
                         MojoSetup.forceoverwrite = true
@@ -472,7 +472,7 @@
 
 local function install_archive(archive, file, option)
     if not MojoSetup.archive.enumerate(archive) then
-        MojoSetup.fatal(_("Can't enumerate archive"))
+        MojoSetup.fatal(_("Couldn't enumerate archive"))
     end
 
     local isbase = (archive == MojoSetup.archive.base)
@@ -551,7 +551,7 @@
         if archive == nil then
             archive = MojoSetup.archive.fromfile(path)
             if archive == nil then
-                MojoSetup.fatal(_("Can't open archive."))
+                MojoSetup.fatal(_("Couldn't open archive"))
             end
         end
         return archive
@@ -1103,7 +1103,7 @@
                         percent = calc_percent(MojoSetup.downloaded,
                                                MojoSetup.totaldownload)
 
-                        item = MojoSetup.format(_("$0: $1%% ($2)"),
+                        item = MojoSetup.format(_("%0: %1%% (%2)"),
                                                 fname,
                                                 calc_percent(bw, total),
                                                 ratestr);
@@ -1228,7 +1228,7 @@
 
         -- Too many times I forgot to return something.   :)
         if type(rc) ~= "number" then
-            MojoSetup.fatal(_("BUG: stage returned wrong type."))
+            MojoSetup.fatal(_("BUG: stage returned wrong type"))
         end
 
         if rc == 1 then
@@ -1242,7 +1242,7 @@
         elseif rc == 0 then
             MojoSetup.fatal()
         else
-            MojoSetup.fatal(_("BUG: stage returned wrong value."))
+            MojoSetup.fatal(_("BUG: stage returned wrong value"))
         end
     end
 




More information about the mojosetup-commits mailing list