From a6a02b07fbd36a24bbf1afe353ff40ac71ef9850 Mon Sep 17 00:00:00 2001 From: TimePath Date: Sun, 13 Dec 2015 13:26:27 +1100 Subject: [PATCH] language_filename: deprecate --- qcsrc/lib/i18n.qh | 3 + qcsrc/menu/menu.qc | 6 +- qcsrc/menu/xonotic/credits.qc | 370 ++++++++++++++++++++++++++++++++- qcsrc/menu/xonotic/skinlist.qc | 2 +- xonotic-credits.txt | 343 ------------------------------ 5 files changed, 375 insertions(+), 349 deletions(-) delete mode 100644 xonotic-credits.txt diff --git a/qcsrc/lib/i18n.qh b/qcsrc/lib/i18n.qh index afb38ff95..fd8ec8306 100644 --- a/qcsrc/lib/i18n.qh +++ b/qcsrc/lib/i18n.qh @@ -7,6 +7,9 @@ // translation helpers string prvm_language; +/** + * @deprecated prefer _("translated") + */ string language_filename(string s) { string fn = prvm_language; diff --git a/qcsrc/menu/menu.qc b/qcsrc/menu/menu.qc index 5e98da110..22ab7047c 100644 --- a/qcsrc/menu/menu.qc +++ b/qcsrc/menu/menu.qc @@ -152,18 +152,18 @@ void m_init_delayed() if (cvar_string("menu_skin") != "") { draw_currentSkin = strcat("gfx/menu/", cvar_string("menu_skin")); - fh = fopen(language_filename(strcat(draw_currentSkin, "/skinvalues.txt")), FILE_READ); + fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ); } if (fh < 0 && cvar_defstring("menu_skin") != "") { cvar_set("menu_skin", cvar_defstring("menu_skin")); draw_currentSkin = strcat("gfx/menu/", cvar_string("menu_skin")); - fh = fopen(language_filename(strcat(draw_currentSkin, "/skinvalues.txt")), FILE_READ); + fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ); } if (fh < 0) { draw_currentSkin = "gfx/menu/default"; - fh = fopen(language_filename(strcat(draw_currentSkin, "/skinvalues.txt")), FILE_READ); + fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ); } if (fh < 0) error("cannot load any menu skin\n"); draw_currentSkin = strzone(draw_currentSkin); diff --git a/qcsrc/menu/xonotic/credits.qc b/qcsrc/menu/xonotic/credits.qc index 64fac23d2..e3a8dec9d 100644 --- a/qcsrc/menu/xonotic/credits.qc +++ b/qcsrc/menu/xonotic/credits.qc @@ -1,5 +1,372 @@ #ifndef CREDITS_H #define CREDITS_H + +#define CREDITS(TITLE, FUNCTION, PERSON, PERSON_, NL) \ + TITLE(_("Core Team")) \ + PERSON(Rudolf "divVerent" Polzer) \ + PERSON(Ant "Antibody" Zucaro) \ + PERSON(Marvin "Mirio" Beck) \ + PERSON(Merlijn Hofstra) \ + PERSON(Peter "Morphed" Pielak) \ + PERSON(Ruszkai "CuBe0wL" Ákos) \ + PERSON(Samual "Ares" Lenks) \ + PERSON(TimePath) \ + PERSON(Tyler "-z-" Mulligan) \ + PERSON(Zac "Mario" Jardine) \ + NL() \ + TITLE(_("Extended Team")) \ + PERSON(Antonio "terencehill" Piu) \ + PERSON(Archer) \ + PERSON(BuddyFriendGuy) \ + PERSON(Debugger) \ + PERSON(GATTS) \ + PERSON(Halogene) \ + PERSON(IDWMaster) \ + PERSON(Jan "zykure" Behrens) \ + PERSON(JH0nny) \ + PERSON(Luigi) \ + PERSON(Łukasz "kuniu the frogg" Polek) \ + PERSON(Matthias "matthiaskrgr" Krüger) \ + PERSON(Mattia "Melanosuchus" Basaglia) \ + PERSON(MrBougo) \ + PERSON(Nick "bitbomb" Lucca) \ + PERSON(nilyt/nyov) \ + PERSON(Nitroxis) \ + PERSON(packer) \ + PERSON(Pearce "theShadow" Michal) \ + PERSON(Rasmus "FruitieX" Eskola) \ + PERSON(s1lence) \ + PERSON(Severin "sev" Meyer) \ + PERSON(Soelen) \ + PERSON(Sydes) \ + PERSON(unfa) \ + NL() \ + NL() \ + FUNCTION(_("Website")) \ + PERSON(Ant "Antibody" Zucaro (web)) \ + PERSON(Merlijn Hofstra) \ + PERSON(Tyler "-z-" Mulligan (web / game)) \ + NL() \ + FUNCTION(_("Stats")) \ + PERSON(Ant "Antibody" Zucaro) \ + PERSON(Jan "zykure" Behrens) \ + NL() \ + FUNCTION(_("Art")) \ + PERSON(Severin "sev" Meyer) \ + PERSON(Sahil "DiaboliK" Singhal) \ + PERSON(Peter "Morphed" Pielak) \ + PERSON(Sam "LJFHutch" Hutchinson) \ + PERSON(Pearce "theShadow" Michal) \ + NL() \ + FUNCTION(_("Animation")) \ + PERSON(Sahil "DiaboliK" Singhal) \ + PERSON(nifrek) \ + NL() \ + FUNCTION(_("Level Design")) \ + PERSON(Amadeusz "amade/proraide" Sławiński) \ + PERSON(Ben "MooKow" Banker) \ + PERSON(Calinou) \ + PERSON(Cortez) \ + PERSON(Cuinn "Cuinnton" Herrick) \ + PERSON(Debugger) \ + PERSON(Jakob "tZork" Markström Gröhn) \ + PERSON(Konrad "Justin" Slawinski) \ + PERSON(Maddin) \ + PERSON(L0) \ + PERSON(Łukasz "kuniu the frogg" Polek) \ + PERSON(Maik "SavageX" Merten) \ + PERSON(Marvin "Mirio" Beck) \ + PERSON(MintOX) \ + PERSON(packer) \ + PERSON(Pearce "theShadow" Michal) \ + PERSON(Rasmus "FruitieX" Eskola) \ + PERSON(Ruszkai "CuBe0wL" Ákos) \ + PERSON(Severin "sev" Meyer) \ + PERSON(ShadoW) \ + NL() \ + FUNCTION(_("Music / Sound FX")) \ + PERSON(AquaNova (Archer)) \ + PERSON(blkrbt) \ + PERSON(chooksta) \ + PERSON(Independent.nu) \ + PERSON([master]mind) \ + PERSON(Merlijn Hofstra) \ + PERSON(Mick Rippon) \ + PERSON(Nick "bitbomb" Lucca) \ + PERSON(remaxim) \ + PERSON(Saulo "mand1nga" Gil) \ + PERSON({SC0RP} - Ian "ID" Dorrell) \ + PERSON(Stephan) \ + PERSON(unfa) \ + NL() \ + FUNCTION(_("Game Code")) \ + PERSON(Samual "Ares" Lenks) \ + PERSON(Rudolf "divVerent" Polzer) \ + PERSON(Jakob "tZork" Markström Gröhn) \ + PERSON(Rasmus "FruitieX" Eskola) \ + PERSON(TimePath) \ + PERSON(Zac "Mario" Jardine) \ + NL() \ + FUNCTION(_("Marketing / PR")) \ + PERSON(Tyler "-z-" Mulligan) \ + PERSON(Ruszkai "CuBe0wL" Ákos) \ + PERSON(Samual "Ares" Lenks) \ + PERSON(Saulo "mand1nga" Gil) \ + NL() \ + FUNCTION(_("Legal")) \ + PERSON(Rudolf "divVerent" Polzer) \ + PERSON(Merlijn Hofstra) \ + NL() \ + NL() \ + TITLE(_("Game Engine")) \ + FUNCTION(_("DarkPlaces")) \ + PERSON(Forest "LordHavoc" Hale) \ + NL() \ + FUNCTION(_("Engine Additions")) \ + PERSON(Rudolf "divVerent" Polzer) \ + PERSON(Samual "Ares" Lenks) \ + NL() \ + NL() \ + TITLE(_("Compiler")) \ + FUNCTION(_("GMQCC")) \ + PERSON(Wolfgang "Blub\0" Bumiller) \ + PERSON(Dale "graphitemaster" Weiler) \ + NL() \ + NL() \ + TITLE(_("Other Active Contributors")) \ + PERSON(Erik "Ablu" Schilling) \ + PERSON(Mircea "Taoki" Kitsune) \ + PERSON(Penguinum) \ + NL() \ + NL() \ + TITLE(_("Translators")) \ + NL() \ + FUNCTION(_("Asturian")) \ + PERSON(Llumex03) \ + PERSON(Tornes "Tornes.Llume" Ḷḷume) \ + PERSON(Ximielga) \ + NL() \ + FUNCTION(_("Belarusian")) \ + PERSON(Mihail "meequz" Varantsou) \ + NL() \ + FUNCTION(_("Bulgarian")) \ + PERSON(lokster) \ + PERSON(set_killer) \ + NL() \ + FUNCTION(_("Chinese (China)")) \ + PERSON(Antonidas) \ + PERSON(kalawore) \ + PERSON(sapphireliu) \ + NL() \ + FUNCTION(_("Czech")) \ + PERSON(shogun assassin/woky) \ + PERSON(Superovoce) \ + PERSON(Tomáš "CZHeron" Volavka) \ + NL() \ + FUNCTION(_("Dutch")) \ + PERSON(Alexander "freefang" van Dam) \ + PERSON(PinkRobot) \ + PERSON(vegiburger) \ + NL() \ + FUNCTION(_("English (Australia)")) \ + PERSON(Laurene "sunflowers" Albrand) \ + PERSON(Zac "Mario" Jardine) \ + NL() \ + FUNCTION(_("Finnish")) \ + PERSON(Henry "Exitium" Sanmark) \ + PERSON(Rasmus "FruitieX" Eskola) \ + NL() \ + FUNCTION(_("French")) \ + PERSON(Calinou) \ + PERSON(Maxime "Taximus" Paradis) \ + PERSON(RedGuff) \ + PERSON(Yannick "SpiKe" Le Guen) \ + NL() \ + FUNCTION(_("German")) \ + PERSON(Brot) \ + PERSON(cvcxc) \ + PERSON(Erik "Ablu" Schilling) \ + PERSON(Jope "Sless" Withers) \ + PERSON(Marvin "Mirio" Beck) \ + PERSON(Rudolf "divVerent" Polzer) \ + PERSON(Yepoleb) \ + NL() \ + FUNCTION(_("Greek")) \ + PERSON_("Γιάννης \"Evropi\" Ανθυμίδης") \ + PERSON(Konstantinos "LDinos" Mihalenas) \ + PERSON(Savoritias) \ + PERSON(Vindex) \ + NL() \ + FUNCTION(_("Hungarian")) \ + PERSON(Ruszkai "CuBe0wL" Ákos) \ + PERSON(xaN1C4n3) \ + NL() \ + FUNCTION(_("Italian")) \ + PERSON(Antonio "terencehill" Piu) \ + PERSON(Felice "MaidenBeast" Sallustio) \ + PERSON(stdi) \ + PERSON(XCostaX) \ + NL() \ + FUNCTION(_("Polish")) \ + PERSON(4m) \ + PERSON(Alex "tiprogrammierer.alex" Progger) \ + PERSON(Amadeusz "amade/proraide" Sławiński) \ + NL() \ + FUNCTION(_("Portuguese")) \ + PERSON(Ricardo Manuel "Hellgardia" da Cruz Coelho da Silva) \ + PERSON(xXxCHAOTICxXx) \ + NL() \ + FUNCTION(_("Romanian")) \ + PERSON(Adrian-Ciprian "adrian.tinjala" Tînjală) \ + PERSON(BusterDBK) \ + PERSON(Mircea "Taoki" Kitsune) \ + PERSON(Tudor "TropiKo" Ionel) \ + NL() \ + FUNCTION(_("Russian")) \ + PERSON(Alex "alextalker7" Talker) \ + PERSON(Alexandr "zrg") \ + PERSON(Andrei "adem4ik" Stepanov) \ + PERSON(gravicappa) \ + PERSON(Hot Dog) \ + PERSON(Lord Canistra) \ + PERSON(Nikoli) \ + PERSON(Sergej "Clearness High" Lutsyk) \ + NL() \ + FUNCTION(_("Serbian")) \ + PERSON_("Саша \"salepetronije\" Петровић") \ + PERSON(Pendulla) \ + PERSON(Rafael "Ristovski") \ + NL() \ + FUNCTION(_("Spanish")) \ + PERSON_("0000simon") \ + PERSON(Alan "aagp" Garcia) \ + PERSON(Ari_tent) \ + PERSON(brunodeleo) \ + PERSON(Kammy) \ + PERSON(roader_gentoo) \ + PERSON(Rodrigo Mouton Laudin) \ + PERSON(SouL) \ + NL() \ + FUNCTION(_("Swedish")) \ + PERSON(Karl-Oskar "machine" Rikås) \ + PERSON(marcus256) \ + NL() \ + FUNCTION(_("Ukrainian")) \ + PERSON(Oleh "BlaXpirit" Prypin) \ + PERSON(Vasyl "Harmata" Melnyk) \ + PERSON(Yuriy "herrniemand" Ackermann) \ + NL() \ + NL() \ + TITLE(_("Past Contributors")) \ + PERSON(Akari) \ + PERSON(Alexander "naryl" Suhoverhov) \ + PERSON(Alexander "motorsep" Zubov) \ + PERSON(Amos "torus" Dudley) \ + PERSON(Andreas "Black" Kirsch) \ + PERSON(Attila "WW3" Houtkooper) \ + PERSON(BigMac) \ + PERSON(Braden "meoblast001" Walters) \ + PERSON(Brain Younds) \ + PERSON(Chris "amethyst7" Matz) \ + PERSON(Christian Ice) \ + PERSON(Clinton "Kaziganthe" Freeman) \ + PERSON(Dan "Digger" Korostelev) \ + PERSON(Dan "Wazat" Hale) \ + PERSON(Dokujisan) \ + PERSON(Donkey) \ + PERSON(dstrek) \ + PERSON(Dustin Geeraert) \ + PERSON(Edgenetwork) \ + PERSON(Edward "Ed" Holness) \ + PERSON(Eric "Munyul Verminard" Sambach) \ + PERSON(Fabien "H. Reaper" Tschirhart) \ + PERSON(Florian Paul "lda17h" Schmidt) \ + PERSON(FrikaC) \ + PERSON(Garth "Zombie" Hendy) \ + PERSON(Gerd "Elysis" Raudenbusch) \ + PERSON(Gottfried "Toddd" Hofmann) \ + PERSON(Henning "Tymo" Janssen) \ + PERSON(Innovati) \ + PERSON(Jitspoe) \ + PERSON(Jody Gallagher) \ + PERSON(Jope "Sless" Withers) \ + PERSON(Juergen "LowDragon" Timm) \ + PERSON(KadaverJack) \ + PERSON(Kevin "Tyrann" Shanahan) \ + PERSON(Kristian "morfar" Johansson) \ + PERSON(Kurt Dereli) \ + PERSON(lcatlnx) \ + PERSON(Lee David Ash) \ + PERSON(Lee Vermeulen) \ + PERSON(leileilol) \ + PERSON(magorian) \ + PERSON(Marius "GreEn`mArine" Shekow) \ + PERSON(Marko "Urre" Permanto) \ + PERSON(Mathieu "Elric" Olivier) \ + PERSON(Mattrew "Tronyn" Rye) \ + PERSON(MauveBib) \ + PERSON(Mephisto) \ + PERSON(michaelb) \ + PERSON(Michael "Tenshihan" Quinn) \ + PERSON(Mepper) \ + PERSON(Munyul) \ + PERSON(Netzwerg) \ + PERSON(NoelCower) \ + PERSON(Parapraxis) \ + PERSON(parasti) \ + PERSON(Paul "Strahlemann" Evers) \ + PERSON(Paul Scott) \ + PERSON(Petithomme) \ + PERSON(PlasmaSheep) \ + PERSON(Przemysław "atheros" Grzywacz) \ + PERSON(Q1 Retexturing Project) \ + PERSON(Qantourisc) \ + PERSON(Oleh "BlaXpirit" Prypin) \ + PERSON(Rick "Rat" Kelley) \ + PERSON(Robert "ai" Kuroto) \ + PERSON(Ronan) \ + PERSON(Sajt) \ + PERSON(Saulo "mand1nga" Gil) \ + PERSON(Shaggy) \ + PERSON(Shank) \ + PERSON(Simon O’Callaghan) \ + PERSON(SomeGuy) \ + PERSON(SoulKeeper_p) \ + PERSON(Spike) \ + PERSON(Spirit) \ + PERSON(Stephan "esteel" Stahl) \ + PERSON(Steve Vermeulen) \ + PERSON(Supajoe) \ + PERSON(Tei) \ + PERSON(The player with the unnecessarily long name) \ + PERSON(Tomaz) \ + PERSON(Ulrich Galbraith) \ + PERSON(Vortex) \ + PERSON(William Libert) \ + PERSON(William "Willis" Weilep) \ + PERSON(Yves "EviLair" Allaire) \ + PERSON(Zenex) \ + /**/ + +int credits_get() +{ + int n = buf_create(); + #define CREDITS_TITLE(t) bufstr_add(n, strcat("**", t), 0); + #define CREDITS_FUNCTION(f) bufstr_add(n, strcat("*", f), 0); + #define CREDITS_PERSON(p) bufstr_add(n, p, 0); + #define _CREDITS_PERSON(p) CREDITS_PERSON(#p) + #define CREDITS_NL() bufstr_add(n, "", 0); + CREDITS(CREDITS_TITLE, CREDITS_FUNCTION, _CREDITS_PERSON, CREDITS_PERSON, CREDITS_NL) + #undef CREDITS_TITLE + #undef CREDITS_FUNCTION + #undef CREDITS_PERSON + #undef _CREDITS_PERSON + #undef CREDITS_NL + return n; +} + +#undef CREDITS + #include "listbox.qc" CLASS(XonoticCreditsList, XonoticListBox) METHOD(XonoticCreditsList, configureXonoticCreditsList, void(entity)); @@ -32,8 +399,7 @@ entity makeXonoticCreditsList() void XonoticCreditsList_configureXonoticCreditsList(entity me) { me.configureXonoticListBox(me); - // load the file - me.bufferIndex = buf_load(language_filename("xonotic-credits.txt")); + me.bufferIndex = credits_get(); me.nItems = buf_getsize(me.bufferIndex); } void XonoticCreditsList_destroy(entity me) diff --git a/qcsrc/menu/xonotic/skinlist.qc b/qcsrc/menu/xonotic/skinlist.qc index c849254e8..5c4195351 100644 --- a/qcsrc/menu/xonotic/skinlist.qc +++ b/qcsrc/menu/xonotic/skinlist.qc @@ -108,7 +108,7 @@ void XonoticSkinList_getSkins(entity me) bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_PREVIEW, "nopreview_menuskin"); else bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_PREVIEW, strcat("/gfx/menu/", substring(s, 9, strlen(s) - 24), "/skinpreview")); - fh = fopen(language_filename(s), FILE_READ); + fh = fopen(s, FILE_READ); if(fh < 0) { LOG_INFO("Warning: can't open skinvalues.txt file\n"); diff --git a/xonotic-credits.txt b/xonotic-credits.txt deleted file mode 100644 index deacbcc3b..000000000 --- a/xonotic-credits.txt +++ /dev/null @@ -1,343 +0,0 @@ -**Core Team -Rudolf "divVerent" Polzer -Ant "Antibody" Zucaro -Marvin "Mirio" Beck -Merlijn Hofstra -Peter "Morphed" Pielak -Ruszkai "CuBe0wL" Ákos -Samual "Ares" Lenks -Tyler "-z-" Mulligan -Zac "Mario" Jardine - -**Extended Team -Antonio "terencehill" Piu -Archer -BuddyFriendGuy -Debugger -GATTS -Halogene -IDWMaster -Jan "zykure" Behrens -JH0nny -Luigi -Łukasz "kuniu the frogg" Polek -Matthias "matthiaskrgr" Krüger -Mattia "Melanosuchus" Basaglia -MrBougo -Nick "bitbomb" Lucca -nilyt/nyov -Nitroxis -packer -Pearce "theShadow" Michal -Rasmus "FruitieX" Eskola -s1lence -Severin "sev" Meyer -Soelen -Sydes -unfa -TimePath - - -*Website -Ant "Antibody" Zucaro (web) -Merlijn Hofstra -Tyler "-z-" Mulligan (web / game) - -*Stats -Ant "Antibody" Zucaro -Jan "zykure" Behrens - -*Art -Severin "sev" Meyer -Sahil "DiaboliK" Singhal -Peter "Morphed" Pielak -Sam "LJFHutch" Hutchinson -Pearce "theShadow" Michal - -*Animation -Sahil "DiaboliK" Singhal -nifrek - -*Level Design -Amadeusz "amade/proraide" Sławiński -Ben "MooKow" Banker -Calinou -Cortez -Cuinn "Cuinnton" Herrick -Debugger -Jakob "tZork" Markström Gröhn -Konrad "Justin" Slawinski -Maddin -L0 -Łukasz "kuniu the frogg" Polek -Maik "SavageX" Merten -Marvin "Mirio" Beck -MintOX -packer -Pearce "theShadow" Michal -Rasmus "FruitieX" Eskola -Ruszkai "CuBe0wL" Ákos -Severin "sev" Meyer -ShadoW - -*Music / Sound FX -AquaNova (Archer) -blkrbt -chooksta -Independent.nu -[master]mind -Merlijn Hofstra -Mick Rippon -Nick "bitbomb" Lucca -remaxim -Saulo "mand1nga" Gil -{SC0RP} - Ian "ID" Dorrell -Stephan -unfa - -*Game Code -Samual "Ares" Lenks -Rudolf "divVerent" Polzer -Jakob "tZork" Markström Gröhn -Rasmus "FruitieX" Eskola -Zac "Mario" Jardine - -*Marketing / PR -Tyler "-z-" Mulligan -Ruszkai "CuBe0wL" Ákos -Samual "Ares" Lenks -Saulo "mand1nga" Gil - -*Legal -Rudolf "divVerent" Polzer -Merlijn Hofstra - - -**Game Engine -*DarkPlaces -Forest "LordHavoc" Hale - -*Engine Additions -Rudolf "divVerent" Polzer -Samual "Ares" Lenks - - -**Compiler -*GMQCC -Wolfgang "Blub\0" Bumiller -Dale "graphitemaster" Weiler - - -**Other Active Contributors -Erik "Ablu" Schilling -Mircea "Taoki" Kitsune -Penguinum - - -**Translators - -*Asturian -Llumex03 -Tornes "Tornes.Llume" Ḷḷume -Ximielga - -*Belarusian -Mihail "meequz" Varantsou - -*Bulgarian -lokster -set_killer - -*Chinese (China) -Antonidas -kalawore -sapphireliu - -*Czech -shogun assassin/woky -Superovoce -Tomáš "CZHeron" Volavka - -*Dutch -Alexander "freefang" van Dam -PinkRobot -vegiburger - -*English (Australia) -Laurene "sunflowers" Albrand -Zac "Mario" Jardine - -*Finnish -Henry "Exitium" Sanmark -Rasmus "FruitieX" Eskola - -*French -Calinou -Maxime "Taximus" Paradis -RedGuff -Yannick "SpiKe" Le Guen - -*German -Brot -cvcxc -Erik "Ablu" Schilling -Jope "Sless" Withers -Marvin "Mirio" Beck -Rudolf "divVerent" Polzer -Yepoleb - -*Greek -Γιάννης "Evropi" Ανθυμίδης -Konstantinos "LDinos" Mihalenas -Savoritias -Vindex - -*Hungarian -Ruszkai "CuBe0wL" Ákos -xaN1C4n3 - -*Italian -Antonio "terencehill" Piu -Felice "MaidenBeast" Sallustio -stdi -XCostaX - -*Polish -4m -Alex "tiprogrammierer.alex" Progger -Amadeusz "amade/proraide" Sławiński - -*Portuguese -Ricardo Manuel "Hellgardia" da Cruz Coelho da Silva -xXxCHAOTICxXx - -*Romanian -Adrian-Ciprian "adrian.tinjala" Tînjală -BusterDBK -Mircea "Taoki" Kitsune -Tudor "TropiKo" Ionel - -*Russian -Alex "alextalker7" Talker -Alexandr "zrg" -Andrei "adem4ik" Stepanov -gravicappa -Hot Dog -Lord Canistra -Nikoli -Sergej "Clearness High" Lutsyk - -*Serbian -Саша "salepetronije" Петровић -Pendulla -Rafael "Ristovski" - -*Spanish -0000simon -Alan "aagp" Garcia -Ari_tent -brunodeleo -Kammy -roader_gentoo -Rodrigo Mouton Laudin -SouL - -*Swedish -Karl-Oskar "machine" Rikås -marcus256 - -*Ukrainian -Oleh "BlaXpirit" Prypin -Vasyl "Harmata" Melnyk -Yuriy "herrniemand" Ackermann - - -**Past Contributors -Akari -Alexander "naryl" Suhoverhov -Alexander "motorsep" Zubov -Amos "torus" Dudley -Andreas "Black" Kirsch -Attila "WW3" Houtkooper -BigMac -Braden "meoblast001" Walters -Brain Younds -Chris "amethyst7" Matz -Christian Ice -Clinton "Kaziganthe" Freeman -Dan "Digger" Korostelev -Dan "Wazat" Hale -Dokujisan -Donkey -dstrek -Dustin Geeraert -Edgenetwork -Edward "Ed" Holness -Eric "Munyul Verminard" Sambach -Fabien "H. Reaper" Tschirhart -Florian Paul "lda17h" Schmidt -FrikaC -Garth "Zombie" Hendy -Gerd "Elysis" Raudenbusch -Gottfried "Toddd" Hofmann -Henning "Tymo" Janssen -Innovati -Jitspoe -Jody Gallagher -Jope "Sless" Withers -Juergen "LowDragon" Timm -KadaverJack -Kevin "Tyrann" Shanahan -Kristian "morfar" Johansson -Kurt Dereli -lcatlnx -Lee David Ash -Lee Vermeulen -leileilol -magorian -Marius "GreEn`mArine" Shekow -Marko "Urre" Permanto -Mathieu "Elric" Olivier -Mattrew "Tronyn" Rye -MauveBib -Mephisto -michaelb -Michael "Tenshihan" Quinn -Mepper -Munyul -Netzwerg -NoelCower -Parapraxis -parasti -Paul "Strahlemann" Evers -Paul Scott -Petithomme -PlasmaSheep -Przemysław "atheros" Grzywacz -Q1 Retexturing Project -Qantourisc -Oleh "BlaXpirit" Prypin -Rick "Rat" Kelley -Robert "ai" Kuroto -Ronan -Sajt -Saulo "mand1nga" Gil -Shaggy -Shank -Simon O'Callaghan -SomeGuy -SoulKeeper_p -Spike -Spirit -Stephan "esteel" Stahl -Steve Vermeulen -Supajoe -Tei -The player with the unnecessarily long name -Tomaz -Ulrich Galbraith -Vortex -William Libert -William "Willis" Weilep -Yves "EviLair" Allaire -Zenex -- 2.39.2