]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
more preparations
authorRudolf Polzer <divverent@alientrap.org>
Sun, 16 Jan 2011 21:21:41 +0000 (22:21 +0100)
committerRudolf Polzer <divverent@alientrap.org>
Sun, 16 Jan 2011 21:21:41 +0000 (22:21 +0100)
14 files changed:
qcsrc/menu/menu.qc
qcsrc/menu/stringfilelist.txt
qcsrc/menu/xonotic/credits.c
qcsrc/menu/xonotic/keybinder.c
qcsrc/menu/xonotic/mainwindow.c
qcsrc/menu/xonotic/maplist.c
qcsrc/menu/xonotic/playermodel.c
qcsrc/menu/xonotic/rootdialog.c
qcsrc/menu/xonotic/serverlist.c
qcsrc/menu/xonotic/skinlist.c
qcsrc/menu/xonotic/slider_decibels.c
qcsrc/menu/xonotic/slider_resolution.c
qcsrc/menu/xonotic/util.qc
qcsrc/menu/xonotic/util.qh

index c4797019fbec89a3ae60f3b7133f2bac8c717915..2a8a7a11ffbb2976d01dee351f1c94ac68050c77 100644 (file)
@@ -115,18 +115,18 @@ void() m_init_delayed =
        if(cvar_string("menu_skin") != "")
        {
                draw_currentSkin = strcat("gfx/menu/", cvar_string("menu_skin"));
-               fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
+               fh = fopen(language_file(strcat(draw_currentSkin, "/skinvalues.txt")), FILE_READ);
        }
        if(fh < 0)
        if(cvar_defstring("menu_skin") != "")
        {
                draw_currentSkin = strcat("gfx/menu/", cvar_defstring("menu_skin"));
-               fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
+               fh = fopen(language_file(strcat(draw_currentSkin, "/skinvalues.txt")), FILE_READ);
        }
        if(fh < 0)
        {
                draw_currentSkin = "gfx/menu/default";
-               fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
+               fh = fopen(language_file(strcat(draw_currentSkin, "/skinvalues.txt")), FILE_READ);
        }
        draw_currentSkin = strzone(draw_currentSkin);
        while((s = fgets(fh)))
index a33e2ac22b024ad71e7b3bd6e35df35e646fbcae..f04fe0568498caa4a65215c9563a72a0c745d5c4 100644 (file)
@@ -5,8 +5,7 @@ Guideline:
   unless in developer-only functions (e.g. *dumptree*)
 - mark translatable strings with _()
 - if a translatable string is a strcat monster, change it to sprintf
-- if code loads files with text, allow loading
-  <filename>.cvar_string("prvm_language") in preference
+- if code loads files with text, use language_filename()
 - test by:
   find . -type f -not -name \*.po | xgettext -LC -k_ -f- gamecommand.qc
 - interesting vi macros:
@@ -15,16 +14,6 @@ Guideline:
 
 List of files to do:
 
-./xonotic/inputbox.c
-./xonotic/keybinder.c
-./xonotic/mainwindow.c
-./xonotic/maplist.c
-./xonotic/playerlist.c
-./xonotic/playermodel.c
-./xonotic/radiobutton.c
-./xonotic/rootdialog.c
-./xonotic/serverlist.c
-./xonotic/skinlist.c
 ./xonotic/slider_decibels.c
 ./xonotic/slider_picmip.c
 ./xonotic/slider_resolution.c
index d0131b3fa7fd9b5e0643bc9cfbc0d7aa8e7d6d18..daf4d22f9c8dd95b221fdaf7c4134b628c4ccfc2 100644 (file)
@@ -30,7 +30,7 @@ void XonoticCreditsList_configureXonoticCreditsList(entity me)
 {
        me.configureXonoticListBox(me);
        // load the file
-       me.bufferIndex = buf_load(strcat("xonotic-credits.txt.", cvar_string("prvm_language")));
+       me.bufferIndex = buf_load(language_filename("xonotic-credits.txt"));
        if(me.bufferIndex < 0)
                me.bufferIndex = buf_load("xonotic-credits.txt");
        me.nItems = buf_getsize(me.bufferIndex);
index 87273b24c653eb5c7c89e2635bce336341f544d9..f4a6c5a3e3dc40adbefdaf5d4eb1f7a75b94be4a 100644 (file)
@@ -47,7 +47,7 @@ void Xonotic_KeyBinds_Read()
        string s;
 
        Xonotic_KeyBinds_Count = 0;
-       fh = fopen("keybinds.txt", FILE_READ);
+       fh = fopen(language_filename("keybinds.txt"), FILE_READ);
        if(fh < 0)
                return;
        while((s = fgets(fh)))
index 72e5faac36fa62d140a0d52b95e55853b2b24252..18fdcf5c087240599ec62cb516e1b04e3dbc11db 100644 (file)
@@ -19,10 +19,10 @@ ENDCLASS(MainWindow)
 
 void DemoButton_Click(entity me, entity other)
 {
-       if(me.text == "Do not press this button again!")
+       if(me.text == _("Do not press this button again!"))
                DialogOpenButton_Click(me, other);
        else
-               me.setText(me, "Do not press this button again!");
+               me.setText(me, _("Do not press this button again!"));
 }
 
 void MainWindow_configureMainWindow(entity me)
index 8b5ce6d6a7b46a3a9c58f0e1b090b47ee71c52c0..1390ff3b1a1c22abd115612719341a3ac234b0f1 100644 (file)
@@ -275,20 +275,22 @@ void MapList_LoadMap(entity btn, entity me)
        m = MapInfo_BSPName_ByID(i);
        if not(m)
        {
-               print("Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n");
+               print(_("Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"));
+               me.refilter(me);
                return;
        }
        if(MapInfo_CheckMap(m))
        {
                localcmd("\nmenu_loadmap_prepare\n");
                if(cvar("menu_use_default_hostname"))
-                       localcmd("hostname \"", strdecolorize(cvar_string("_cl_name")), "'s Xonotic server\"\n");
+                       localcmd("hostname \"", sprintf(_("%s's Xonotic Server"), strdecolorize(cvar_string("_cl_name"))), "\"\n");
                MapInfo_LoadMap(m);
        }
        else
        {
-               print("Huh? Can't play this (invalid game type). Refiltering so this won't happen again.\n");
+               print(_("Huh? Can't play this (invalid game type). Refiltering so this won't happen again.\n"));
                me.refilter(me);
+               return;
        }
 }
 
index bbef3a6b1c2d6acdeb245a401e18f3d4b1afa00c..ef02224dfaf8bc332b45d4947b78f131fcb33e83 100644 (file)
@@ -47,7 +47,7 @@ void XonoticPlayerModelSelector_configureXonoticPlayerModelSelector(entity me)
        float sortbuf, glob, i;
        string fn;
 
-       glob = search_begin(get_model_datafilename(string_null, -1, "txt"), TRUE, TRUE);
+       glob = search_begin(language_filename(get_model_datafilename(string_null, -1, "txt")), TRUE, TRUE);
        if (glob < 0)
                return;
 
@@ -77,11 +77,11 @@ void XonoticPlayerModelSelector_configureXonoticPlayerModelSelector(entity me)
                bufstr_set(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_SKIN, ftos(get_model_parameters_modelskin));
                get_model_parameters_desc = strcat(get_model_parameters_desc, "\n");
                if(get_model_parameters_sex)
-                       get_model_parameters_desc = strcat(get_model_parameters_desc, "\nSex: ", get_model_parameters_sex);
+                       get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\nSex: %s", get_model_parameters_sex));
                if(get_model_parameters_weight)
-                       get_model_parameters_desc = strcat(get_model_parameters_desc, "\nWeight: ", ftos(get_model_parameters_weight), " kg");
+                       get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\nWeight: %g kg", get_model_parameters_weight));
                if(get_model_parameters_age)
-                       get_model_parameters_desc = strcat(get_model_parameters_desc, "\nAge: ", ftos(get_model_parameters_age));
+                       get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\nAge: %g", get_model_parameters_age));
                while(substring(get_model_parameters_desc, -1, 1) == "\n")
                        get_model_parameters_desc = substring(get_model_parameters_desc, 0, -2);
                bufstr_set(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_DESC, get_model_parameters_desc);
@@ -171,7 +171,7 @@ void XonoticPlayerModelSelector_draw(entity me)
 
        if (me.numModels <= 0)
        {
-               draw_CenterText('0.5 0.5 0', "<no model found>", me.realFontSize, '1 1 1', 0.6, FALSE);
+               draw_CenterText('0.5 0.5 0', _("<no model found>"), me.realFontSize, '1 1 1', 0.6, FALSE);
                return;
        }
 
index efc00822d8f72456979fd721890afcfe4798e3af..e8c9db364e9d3caaa31f4ee904b82ebc08c33523 100644 (file)
@@ -3,7 +3,7 @@ CLASS(XonoticRootDialog) EXTENDS(XonoticDialog)
        // still to be customized by user
        /*
        ATTRIB(XonoticDialog, closable, float, 1)
-       ATTRIB(XonoticDialog, title, string, "Form1") // ;)
+       ATTRIB(XonoticDialog, title, string, _("Form1")) // ;)
        ATTRIB(XonoticDialog, color, vector, '1 0.5 1')
        ATTRIB(XonoticDialog, intendedWidth, float, 0)
        ATTRIB(XonoticDialog, rows, float, 3)
index 4128935795eb24d285b1730f0db8f199936d5792..3cd3338bc74f5541e31383cf11c09b7f23ee24ae 100644 (file)
@@ -354,9 +354,9 @@ void XonoticServerList_draw(entity me)
                if(me.ipAddressBox.focused || me.ipAddressBoxFocused < 0)
                {
                        if(IsFavorite(me.ipAddressBox.text))
-                               me.favoriteButton.setText(me.favoriteButton, "Remove");
+                               me.favoriteButton.setText(me.favoriteButton, _("Remove"));
                        else
-                               me.favoriteButton.setText(me.favoriteButton, "Bookmark");
+                               me.favoriteButton.setText(me.favoriteButton, _("Bookmark"));
                }
                me.ipAddressBoxFocused = me.ipAddressBox.focused;
        }
@@ -512,11 +512,11 @@ void XonoticServerList_resizeNotify(entity me, vector relOrigin, vector relSize,
        me.columnTypeOrigin = me.columnMapOrigin + me.columnMapSize + me.realFontSize_x;
        me.columnPlayersOrigin = me.columnTypeOrigin + me.columnTypeSize + me.realFontSize_x;
 
-       me.positionSortButton(me, me.sortButton1, me.columnPingOrigin, me.columnPingSize, "Ping", ServerList_PingSort_Click);
-       me.positionSortButton(me, me.sortButton2, me.columnNameOrigin, me.columnNameSize, "Host name", ServerList_NameSort_Click);
-       me.positionSortButton(me, me.sortButton3, me.columnMapOrigin, me.columnMapSize, "Map", ServerList_MapSort_Click);
-       me.positionSortButton(me, me.sortButton4, me.columnTypeOrigin, me.columnTypeSize, "Type", ServerList_TypeSort_Click);
-       me.positionSortButton(me, me.sortButton5, me.columnPlayersOrigin, me.columnPlayersSize, "Players", ServerList_PlayerSort_Click);
+       me.positionSortButton(me, me.sortButton1, me.columnPingOrigin, me.columnPingSize, _("Ping"), ServerList_PingSort_Click);
+       me.positionSortButton(me, me.sortButton2, me.columnNameOrigin, me.columnNameSize, _("Host name"), ServerList_NameSort_Click);
+       me.positionSortButton(me, me.sortButton3, me.columnMapOrigin, me.columnMapSize, _("Map"), ServerList_MapSort_Click);
+       me.positionSortButton(me, me.sortButton4, me.columnTypeOrigin, me.columnTypeSize, _("Type"), ServerList_TypeSort_Click);
+       me.positionSortButton(me, me.sortButton5, me.columnPlayersOrigin, me.columnPlayersSize, _("Players"), ServerList_PlayerSort_Click);
 
        float f;
        f = me.currentSortField;
index 864b3054a5bb85dccbabb3b538ecf76bc0b8fb82..a4f733cf581b8bcd2e6df6b23b4b698a9c501665 100644 (file)
@@ -102,10 +102,10 @@ void XonoticSkinList_getSkins(entity me)
        {
                s = search_getfilename(glob, i);
                bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_NAME, substring(s, 9, strlen(s) - 24)); // the * part
-               bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_TITLE, "<TITLE>");
-               bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_AUTHOR, "<AUTHOR>");
+               bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_TITLE, _("<TITLE>"));
+               bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_AUTHOR, _("<AUTHOR>"));
                bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_PREVIEW, strcat("/gfx/menu/", substring(s, 9, strlen(s) - 24), "/skinpreview"));
-               fh = fopen(s, FILE_READ);
+               fh = fopen(language_file(s), FILE_READ);
                if(fh < 0)
                {
                        print("Warning: can't open skinvalues.txt file\n");
@@ -160,7 +160,7 @@ void XonoticSkinList_drawListBoxItem(entity me, float i, vector absSize, float i
        draw_Picture(me.columnPreviewOrigin * eX, s, me.columnPreviewSize * eX + eY, '1 1 1', 1);
        
        s = me.skinParameter(me, i, SKINPARM_NAME);
-       s = strcat(s, ": ", me.skinParameter(me, i, SKINPARM_TITLE));
+       s = sprintf(_("%s: %s"), s, me.skinParameter(me, i, SKINPARM_TITLE));
        s = draw_TextShortenToWidth(s, me.columnNameSize, 0, me.realFontSize);
        draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 0.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, SKINCOLOR_SKINLIST_TITLE, SKINALPHA_TEXT, 0);
 
index 0e4b4e3720e8c0bece5fe57d26cf79620c6428ce..6ee8ca7c4d87d3a0081c27efdda456b82f91d85c 100644 (file)
@@ -47,10 +47,10 @@ void XonoticDecibelsSlider_saveCvars(entity me)
 string XonoticDecibelsSlider_valueToText(entity me, float v)
 {
        if(v < -33)
-               return "OFF";
+               return _("OFF");
        else if(v >= -0.1)
-               return "MAX";
-       return strcat(SUPER(XonoticDecibelsSlider).valueToText(me, v), " dB");
+               return _("MAX");
+       return sprintf(_("%s dB"), SUPER(XonoticDecibelsSlider).valueToText(me, v));
 }
 
 #endif
index 0cfa6ad2a641880ffc916eb2113e27d9f1373fab..7049f0f3cb8b311549a5d108d28bdf74f785b773 100644 (file)
@@ -62,7 +62,7 @@ entity makeXonoticResolutionSlider()
 }
 void XonoticResolutionSlider_addResolution(entity me, float w, float h, float pixelheight)
 {
-       me.addValue(me, strzone(strcat(ftos(w), "x", ftos(h))), strzone(strcat(ftos(w), " ", ftos(h), " ", ftos(pixelheight))));
+       me.addValue(me, strzone(sprintf(_("%dx%d"), w, h)), strzone(strcat(ftos(w), " ", ftos(h), " ", ftos(pixelheight))));
        // FIXME (in case you ever want to dynamically instantiate this): THIS IS NEVER FREED
 }
 void XonoticResolutionSlider_configureXonoticResolutionSlider(entity me)
index 91572fdf9d3904eccdcbfcb7de8d8f801ef250d2..1bb9a0132fa1dae2ed8323c7b8d9fa24a5c86b90 100644 (file)
@@ -567,3 +567,18 @@ float GameType_GetCount()
        return i;
 }
 
+string language_filename(string s)
+{
+       string fn;
+       float fh;
+       fn = cvar_string("prvm_language");
+       if(fn == "" || fn == "dump")
+               return s;
+       fn = strcat(s, ".", fn);
+       if((fh = fopen(fn, FILE_READ)) >= 0)
+       {
+               fclose(fh);
+               return fn;
+       }
+       return s;
+}
index df1287ac0a96e2fadf2cba9b180cbc3cb0efce7a..fea001f1d422e2b64dbdeeef480ac0d08c658f9d 100644 (file)
@@ -98,3 +98,5 @@ float GameType_GetCount();
        me.TR(me); \
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, strzone(strcat("hud_panel_", hudpanel)), _("Enable panel"))); \
        DIALOG_HUDPANEL_COMMON_NOTOGGLE()
+
+string language_filename(string s);