From a194228ec0d5eaef50e0dec2096557274d95a806 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Tue, 18 Jan 2011 15:38:41 +0100 Subject: [PATCH] badwords support for translations now compiles --- qcsrc/menu/i18n-badwords.txt | 20 +++++++-- qcsrc/menu/xonotic/dialog_hudpanel_weapons.c | 4 +- qcsrc/menu/xonotic/dialog_hudsetup_exit.c | 8 ++-- .../dialog_multiplayer_create_mutators.c | 2 +- qcsrc/menu/xonotic/dialog_multiplayer_join.c | 4 +- .../xonotic/dialog_multiplayer_playersetup.c | 16 +++---- qcsrc/menu/xonotic/dialog_settings_audio.c | 20 ++++----- qcsrc/menu/xonotic/dialog_settings_effects.c | 44 +++++++++---------- qcsrc/menu/xonotic/dialog_settings_video.c | 26 +++++------ qcsrc/menu/xonotic/slider_decibels.c | 4 +- qcsrc/menu/xonotic/util.qc | 7 +++ qcsrc/menu/xonotic/util.qh | 2 + 12 files changed, 90 insertions(+), 67 deletions(-) diff --git a/qcsrc/menu/i18n-badwords.txt b/qcsrc/menu/i18n-badwords.txt index 5fd0186068..8e50836562 100644 --- a/qcsrc/menu/i18n-badwords.txt +++ b/qcsrc/menu/i18n-badwords.txt @@ -1,7 +1,9 @@ # list of words that must not be used in the source as a single string; -# use stripctx(_("CONTEXT^string")) instead +# use ZCTX(_("CONTEXT^string")) instead +# vi macro to do it: +# :s/_("\([^"]*\)")/ZCTX(_("CONTEXT^\1"))/g # test by: -# grep -v ^# i18n-badwords.txt | while IFS= read -r W; do grep -r "_(\"$W\")" .; done +# grep -v ^# i18n-badwords.txt | while IFS= read -r W; do grep -nri "_(\"$W\")" xonotic; done | sort -n # this is done to help with languages like Russian where these words may need # different grammatical gender in different instances All @@ -15,5 +17,17 @@ Lowest Medium Normal Off -OFF Ultra +Small +Large +Custom +Very short +Short +Long +Full +Empty +None +Few +Many +Lots +Both diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_weapons.c b/qcsrc/menu/xonotic/dialog_hudpanel_weapons.c index b426a75c25..a008f84af7 100644 --- a/qcsrc/menu/xonotic/dialog_hudpanel_weapons.c +++ b/qcsrc/menu/xonotic/dialog_hudpanel_weapons.c @@ -30,7 +30,7 @@ void XonoticHUDWeaponsDialog_fill(entity me) me.TR(me); me.TDempty(me, 0.2); me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Fade effect:"))); - me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "0", _("None"))); + me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "0", ZCTX(_("EFFECT^None")))); setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0"); me.TD(me, 1, 0.8, e = makeXonoticRadioButton(3, "hud_panel_weapons_timeout_effect", "1", _("Slide"))); setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_timeout")), "0"); @@ -41,7 +41,7 @@ void XonoticHUDWeaponsDialog_fill(entity me) me.TR(me); me.TDempty(me, 0.2); me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Show weapon ID as:"))); - me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "0", _("None"))); + me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "0", ZCTX(_("EFFECT^None")))); me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "1", _("Number"))); me.TD(me, 1, 0.8, e = makeXonoticRadioButton(2, "hud_panel_weapons_label", "2", _("Bind"))); me.TR(me); diff --git a/qcsrc/menu/xonotic/dialog_hudsetup_exit.c b/qcsrc/menu/xonotic/dialog_hudsetup_exit.c index dcffb1fe41..e449fa5d48 100644 --- a/qcsrc/menu/xonotic/dialog_hudsetup_exit.c +++ b/qcsrc/menu/xonotic/dialog_hudsetup_exit.c @@ -67,10 +67,10 @@ void XonoticHUDExitDialog_fill(entity me) me.TR(me); me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("HUD Dock:"))); me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_dock")); - e.addValue(e, _("Disable"), "0"); - e.addValue(e, _("Small"), "dock_small"); - e.addValue(e, _("Medium"), "dock_medium"); - e.addValue(e, _("Large"), "dock_large"); + e.addValue(e, ZCTX(_("DOCK^Disabled")), "0"); + e.addValue(e, ZCTX(_("DOCK^Small")), "dock_small"); + e.addValue(e, ZCTX(_("DOCK^Medium")), "dock_medium"); + e.addValue(e, ZCTX(_("DOCK^Large")), "dock_large"); e.configureXonoticTextSliderValues(e); me.TR(me); me.TDempty(me, 0.2); diff --git a/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c b/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c index 15541377a0..cd86e8aa6d 100644 --- a/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c +++ b/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c @@ -95,7 +95,7 @@ string XonoticMutatorsDialog_toString(entity me) if(cvar("g_jetpack")) s = strcat(s, ", ", _("Jet pack")); if(s == "") - return _("None"); + return ZCTX(_("MUTATOR^None")); else return substring(s, 2, strlen(s) - 2); } diff --git a/qcsrc/menu/xonotic/dialog_multiplayer_join.c b/qcsrc/menu/xonotic/dialog_multiplayer_join.c index c2836e72a7..625bb89279 100644 --- a/qcsrc/menu/xonotic/dialog_multiplayer_join.c +++ b/qcsrc/menu/xonotic/dialog_multiplayer_join.c @@ -33,11 +33,11 @@ void XonoticServerListTab_fill(entity me) e.onChangeEntity = slist; btn.onClickEntity = e; slist.controlledTextbox = e; - me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "menu_slist_showempty", _("Empty"))); + me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "menu_slist_showempty", ZCTX(_("SERVERS^Empty")))); slist.filterShowEmpty = e.checked; e.onClickEntity = slist; e.onClick = ServerList_ShowEmpty_Click; - me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "menu_slist_showfull", _("Full"))); + me.TD(me, 1, 0.6, e = makeXonoticCheckBox(0, "menu_slist_showfull", ZCTX(_("SERVERS^Full")))); slist.filterShowFull = e.checked; e.onClickEntity = slist; e.onClick = ServerList_ShowFull_Click; diff --git a/qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c b/qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c index adddf2fd11..87fecd400a 100644 --- a/qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c +++ b/qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c @@ -153,7 +153,7 @@ void XonoticPlayerSettingsTab_fill(entity me) setDependent(e, "crosshair_dot", 1, 1); me.TR(me); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Hit test:"))); - me.TD(me, 1, 2/3, e = makeXonoticRadioButton(5, "crosshair_hittest", "0", _("None"))); + me.TD(me, 1, 2/3, e = makeXonoticRadioButton(5, "crosshair_hittest", "0", ZCTX(_("HITTEST^None")))); me.TD(me, 1, 2/3, e = makeXonoticRadioButton(5, "crosshair_hittest", "1", _("TrueAim"))); me.TD(me, 1, 2/3, e = makeXonoticRadioButton(5, "crosshair_hittest", "1.25", _("Enemies"))); me.TR(me); @@ -172,18 +172,18 @@ void XonoticPlayerSettingsTab_fill(entity me) me.TR(me); #ifdef ALLOW_FORCEMODELS me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Force models:"))); - me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, string_null, string_null, _("None"))); - me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, "cl_forceplayermodelsfromxonotic", string_null, _("Custom"))); - me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, "cl_forceplayermodels", string_null, _("All"))); + me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, string_null, string_null, ZCTX(_("MODELS^None"))); + me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, "cl_forceplayermodelsfromxonotic", string_null, ZCTX(_("MODELS^Custom")))); + me.TD(me, 1, 2/3, e = makeXonoticRadioButton(6, "cl_forceplayermodels", string_null, ZCTX(_("MODELS^All")))); #endif me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_gentle", _("Disable gore effects"))); me.TR(me); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gibs:"))); me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_nogibs")); - e.addValue(e, _("None"), "1"); - e.addValue(e, _("Few"), "0.75"); - e.addValue(e, _("Many"), "0.5"); - e.addValue(e, _("Lots"), "0"); + e.addValue(e, ZCTX(_("GIBS^None")), "1"); + e.addValue(e, ZCTX(_("GIBS^Few")), "0.75"); + e.addValue(e, ZCTX(_("GIBS^Many")), "0.5"); + e.addValue(e, ZCTX(_("GIBS^Lots")), "0"); e.configureXonoticTextSliderValues(e); setDependent(e, "cl_gentle", 0, 0); me.TR(me); diff --git a/qcsrc/menu/xonotic/dialog_settings_audio.c b/qcsrc/menu/xonotic/dialog_settings_audio.c index 81ee056675..b459c2e0e9 100644 --- a/qcsrc/menu/xonotic/dialog_settings_audio.c +++ b/qcsrc/menu/xonotic/dialog_settings_audio.c @@ -134,19 +134,19 @@ void XonoticAudioSettingsTab_fill(entity me) me.TR(me); me.TR(me); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Spatial voices:"))); - me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "0", _("None"))); - me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "2", _("Taunts"))); - me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "1", _("All"))); + me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "0", ZCTX(_("VOICES^None")))); + me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "2", ZCTX(_("VOICES^Taunts")))); + me.TD(me, 1, 2/3, e = makeXonoticRadioButton(1, "cl_voice_directional", "1", ZCTX(_("VOICES^All")))); me.TR(me); me.TDempty(me, 0.2); me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Taunt range:"))); setDependent(e, "cl_voice_directional", 0.5, -0.5); me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_voice_directional_taunt_attenuation")); - e.addValue(e, _("Very short"), "3"); - e.addValue(e, _("Short"), "2"); - e.addValue(e, _("Normal"), "0.5"); - e.addValue(e, _("Long"), "0.25"); - e.addValue(e, _("Full"), "0.015625"); + e.addValue(e, ZCTX(_("RANGE^Very short")), "3"); + e.addValue(e, ZCTX(_("RANGE^Short")), "2"); + e.addValue(e, ZCTX(_("RANGE^Normal")), "0.5"); + e.addValue(e, ZCTX(_("RANGE^Long")), "0.25"); + e.addValue(e, ZCTX(_("RANGE^Full")), "0.015625"); e.configureXonoticTextSliderValues(e); setDependent(e, "cl_voice_directional", 0.5, -0.5); me.TR(me); @@ -164,10 +164,10 @@ void XonoticAudioSettingsTab_fill(entity me) me.TR(me); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Time warning:"))); me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_sound_maptime_warning")); - e.addValue(e, _("None"), "0"); + e.addValue(e, ZCTX(_("WARNING^None")), "0"); e.addValue(e, _("1 minute"), "1"); e.addValue(e, _("5 minutes"), "2"); - e.addValue(e, _("Both"), "3"); + e.addValue(e, ZCTX(_("WARNING^Both")), "3"); e.configureXonoticTextSliderValues(e); me.TR(me); me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_hitsound", _("Hit indicator"))); diff --git a/qcsrc/menu/xonotic/dialog_settings_effects.c b/qcsrc/menu/xonotic/dialog_settings_effects.c index 40ad9f6a1e..29c94fd45d 100644 --- a/qcsrc/menu/xonotic/dialog_settings_effects.c +++ b/qcsrc/menu/xonotic/dialog_settings_effects.c @@ -38,30 +38,30 @@ void XonoticEffectsSettingsTab_fill(entity me) me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Quality preset:"))); n = 5 + 2 * !!cvar("developer"); if(cvar("developer")) - me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(_("OMG!"), '1 0 1', "exec effects-omg.cfg", 0)); - me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(_("Low"), '0 0 0', "exec effects-low.cfg", 0)); - me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(_("Medium"), '0 0 0', "exec effects-med.cfg", 0)); - me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(_("Normal"), '0 0 0', "exec effects-normal.cfg", 0)); - me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(_("High"), '0 0 0', "exec effects-high.cfg", 0)); - me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(_("Ultra"), '0 0 0', "exec effects-ultra.cfg", 0)); + me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRESET^OMG!")), '1 0 1', "exec effects-omg.cfg", 0)); + me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRESET^Low")), '0 0 0', "exec effects-low.cfg", 0)); + me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRESET^Medium")), '0 0 0', "exec effects-med.cfg", 0)); + me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRESET^Normal")), '0 0 0', "exec effects-normal.cfg", 0)); + me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRESET^High")), '0 0 0', "exec effects-high.cfg", 0)); + me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRESET^Ultra")), '0 0 0', "exec effects-ultra.cfg", 0)); if(cvar("developer")) - me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(_("Ultimate"), '0 0 0', "exec effects-ultimate.cfg", 0)); + me.TD(me, 1, 5.5 / n, e = makeXonoticCommandButton(ZCTX(_("PRESET^Ultimate")), '0 0 0', "exec effects-ultimate.cfg", 0)); me.TR(me); me.TR(me); me.TD(me, 1, 1.1, e = makeXonoticTextLabel(0, _("Geometry detail:"))); me.TD(me, 1, 2, e = makeXonoticTextSlider("r_subdivisions_tolerance")); - e.addValue(e, _("Lowest"), "16"); - e.addValue(e, _("Low"), "8"); - e.addValue(e, _("Normal"), "4"); - e.addValue(e, _("Good"), "3"); - e.addValue(e, _("Best"), "2"); - e.addValue(e, _("Insane"), "1"); + e.addValue(e, ZCTX(_("DETAIL^Lowest")), "16"); + e.addValue(e, ZCTX(_("DETAIL^Low")), "8"); + e.addValue(e, ZCTX(_("DETAIL^Normal")), "4"); + e.addValue(e, ZCTX(_("DETAIL^Good")), "3"); + e.addValue(e, ZCTX(_("DETAIL^Best")), "2"); + e.addValue(e, ZCTX(_("DETAIL^Insane")), "1"); e.configureXonoticTextSliderValues(e); me.TR(me); me.TD(me, 1, 1.1, e = makeXonoticTextLabel(0, _("Antialiasing:"))); me.TD(me, 1, 2, e = makeXonoticTextSlider("vid_samples")); - e.addValue(e, _("Disabled"), "1"); + e.addValue(e, ZCTX(_("ANTIALIASING^Disabled")), "1"); e.addValue(e, _("2x"), "2"); e.addValue(e, _("4x"), "4"); e.configureXonoticTextSliderValues(e); @@ -70,12 +70,12 @@ void XonoticEffectsSettingsTab_fill(entity me) me.TD(me, 1, 1.1, e = makeXonoticTextLabel(0, _("Texture resolution:"))); me.TD(me, 1, 2, e = makeXonoticPicmipSlider()); if(cvar("developer")) - e.addValue(e, _("Leet"), "1337"); - e.addValue(e, _("Lowest"), "2"); - e.addValue(e, _("Low"), "1"); - e.addValue(e, _("Normal"), "0"); - e.addValue(e, _("Good"), "-1"); - e.addValue(e, _("Best"), "-2"); + e.addValue(e, ZCTX(_("RESOLUTION^Leet")), "1337"); + e.addValue(e, ZCTX(_("RESOLUTION^Lowest")), "2"); + e.addValue(e, ZCTX(_("RESOLUTION^Low")), "1"); + e.addValue(e, ZCTX(_("RESOLUTION^Normal")), "0"); + e.addValue(e, ZCTX(_("RESOLUTION^Good")), "-1"); + e.addValue(e, ZCTX(_("RESOLUTION^Best")), "-2"); e.configureXonoticTextSliderValues(e); me.TR(me); me.TDempty(me, 0.2); @@ -99,7 +99,7 @@ void XonoticEffectsSettingsTab_fill(entity me) me.TR(me); me.TD(me, 1, 1.1, e = makeXonoticTextLabel(0, _("Anisotropy:"))); me.TD(me, 1, 2, e = makeXonoticTextSlider("gl_texture_anisotropy")); - e.addValue(e, _("Disabled"), "1"); + e.addValue(e, ZCTX(_("ANISOTROPY^Disabled")), "1"); e.addValue(e, _("2x"), "2"); e.addValue(e, _("4x"), "4"); e.addValue(e, _("8x"), "8"); @@ -144,7 +144,7 @@ void XonoticEffectsSettingsTab_fill(entity me) setDependent(e, "vid_gl20", 1, 1); me.TD(me, 1, 2, e = makeXonoticTextSlider("r_water_resolutionmultiplier")); e.addValue(e, _("Blurred"), "0.25"); - e.addValue(e, _("Good"), "0.5"); + e.addValue(e, ZCTX(_("REFLECTIONS^Good")), "0.5"); e.addValue(e, _("Sharp"), "1"); e.configureXonoticTextSliderValues(e); setDependentAND(e, "vid_gl20", 1, 1, "r_water", 1, 1); diff --git a/qcsrc/menu/xonotic/dialog_settings_video.c b/qcsrc/menu/xonotic/dialog_settings_video.c index d7aeef5cbb..ef50e3f2ba 100644 --- a/qcsrc/menu/xonotic/dialog_settings_video.c +++ b/qcsrc/menu/xonotic/dialog_settings_video.c @@ -28,15 +28,15 @@ void XonoticVideoSettingsTab_fill(entity me) me.TR(me); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Font/UI size:"))); me.TD(me, 1, 2, e = makeXonoticTextSlider("menu_vid_scale")); - e.addValue(e, _("Unreadable"), "-1"); - e.addValue(e, _("Tiny"), "-0.75"); - e.addValue(e, _("Little"), "-0.5"); - e.addValue(e, _("Small"), "-0.25"); - e.addValue(e, _("Medium"), "0"); - e.addValue(e, _("Large"), "0.25"); - e.addValue(e, _("Huge"), "0.5"); - e.addValue(e, _("Gigantic"), "0.75"); - e.addValue(e, _("Colossal"), "1"); + e.addValue(e, ZCTX(_("SIZE^Unreadable")), "-1"); + e.addValue(e, ZCTX(_("SIZE^Tiny")), "-0.75"); + e.addValue(e, ZCTX(_("SIZE^Little")), "-0.5"); + e.addValue(e, ZCTX(_("SIZE^Small")), "-0.25"); + e.addValue(e, ZCTX(_("SIZE^Medium")), "0"); + e.addValue(e, ZCTX(_("SIZE^Large")), "0.25"); + e.addValue(e, ZCTX(_("SIZE^Huge")), "0.5"); + e.addValue(e, ZCTX(_("SIZE^Gigantic")), "0.75"); + e.addValue(e, ZCTX(_("SIZE^Colossal")), "1"); e.configureXonoticTextSliderValues(e); me.TR(me); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Color depth:"))); @@ -55,7 +55,7 @@ void XonoticVideoSettingsTab_fill(entity me) me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Vertex Buffer Objects (VBOs)"))); me.TR(me); me.TDempty(me, 0.2); - me.TD(me, 1, 0.9, e = makeXonoticRadioButton(1, "gl_vbo", "0", _("Off"))); + me.TD(me, 1, 0.9, e = makeXonoticRadioButton(1, "gl_vbo", "0", ZCTX(_("VBO^Off")))); me.TD(me, 1, 2.1, e = makeXonoticRadioButton(1, "gl_vbo", "3", _("Vertices, some Tris (compatible)"))); me.TR(me); me.TDempty(me, 0.2); @@ -64,9 +64,9 @@ void XonoticVideoSettingsTab_fill(entity me) me.TR(me); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Depth first:"))); me.TD(me, 1, 2, e = makeXonoticTextSlider("r_depthfirst")); - e.addValue(e, _("Disabled"), "0"); - e.addValue(e, _("World"), "1"); - e.addValue(e, _("All"), "2"); + e.addValue(e, ZCTX(_("DEPTHFIRST^Disabled")), "0"); + e.addValue(e, ZCTX(_("DEPTHFIRST^World")), "1"); + e.addValue(e, ZCTX(_("DEPTHFIRST^All")), "2"); e.configureXonoticTextSliderValues(e); me.TR(me); if(cvar_type("apple_multithreadedgl") & CVAR_TYPEFLAG_ENGINE) diff --git a/qcsrc/menu/xonotic/slider_decibels.c b/qcsrc/menu/xonotic/slider_decibels.c index 6ee8ca7c4d..e18d2daf7c 100644 --- a/qcsrc/menu/xonotic/slider_decibels.c +++ b/qcsrc/menu/xonotic/slider_decibels.c @@ -47,9 +47,9 @@ void XonoticDecibelsSlider_saveCvars(entity me) string XonoticDecibelsSlider_valueToText(entity me, float v) { if(v < -33) - return _("OFF"); + return ZCTX(_("VOLUME^OFF")); else if(v >= -0.1) - return _("MAX"); + return ZCTX(_("VOLUME^MAX")); return sprintf(_("%s dB"), SUPER(XonoticDecibelsSlider).valueToText(me, v)); } diff --git a/qcsrc/menu/xonotic/util.qc b/qcsrc/menu/xonotic/util.qc index 42825019e8..358570d63e 100644 --- a/qcsrc/menu/xonotic/util.qc +++ b/qcsrc/menu/xonotic/util.qc @@ -582,6 +582,13 @@ string language_filename(string s) } return s; } +string CTX(string s) +{ + float p = strstrofs(s, "^", 0); + if(p < 0) + return s; + return substring(s, p+1, -1); +} void dialog_hudpanel_common_notoggle(entity me, string panelname) { diff --git a/qcsrc/menu/xonotic/util.qh b/qcsrc/menu/xonotic/util.qh index 414c443140..70fb1a11c2 100644 --- a/qcsrc/menu/xonotic/util.qh +++ b/qcsrc/menu/xonotic/util.qh @@ -50,3 +50,5 @@ void dialog_hudpanel_common_notoggle(entity me, string panelname); DIALOG_HUDPANEL_COMMON_NOTOGGLE() string language_filename(string s); +string CTX(string s); +#define ZCTX(s) strzone(CTX(s)) -- 2.39.2