2009/8/25 Remigiusz Dybka <remigiusz.dy...@googlemail.com>: > Hello,
Hi :) > Honestly I am at the moment concentrating on getting this thing to run > properly > as it is. Gettextizing the project shouldn't be a problem and yes, it sounds > like > a nice feature for a fully grown, finished project. I can promise I will > look into it > as soon as bug reports stop flowing in and when the levels are done (planned > to have at least 23 of them). That, I hope, will happen in a couple of > weeks. > I will check out quesoglc (i didn't even know it existed when I picked > FTGL). > The game is not too text-rendering orientated, so switching the engine > (if it turns out necessary) shouldn't be a big problem. > > I am very happy that you packaged Zaz for Debian. I wasn't expecting > something > like that before months after first release. > Guess Open Source really works > Keep up the good work, > Greetings, > Rem I'm attaching my gettext patches, pot file and initial translation into Spanish in case you're interested :) Greetings, Miry
# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <em...@address>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-08-25 01:08+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <em...@address>\n" "Language-Team: LANGUAGE <l...@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/mainmenu.cpp:31 msgid "Start game" msgstr "" #: src/mainmenu.cpp:33 msgid "Options" msgstr "" #: src/mainmenu.cpp:34 msgid "Credits" msgstr "" #: src/mainmenu.cpp:35 msgid "Exit" msgstr "" #: src/mainmenu.cpp:49 msgid "Resolution" msgstr "" #: src/mainmenu.cpp:50 msgid "Fullscreen" msgstr "" #: src/mainmenu.cpp:51 msgid "Show FPS" msgstr "" #: src/mainmenu.cpp:52 msgid "Mouse sensivity" msgstr "" #: src/mainmenu.cpp:53 msgid "SFX volume" msgstr "" #: src/mainmenu.cpp:54 msgid "Music volume" msgstr "" #: src/mainmenu.cpp:55 src/gameloop.cpp:68 msgid "Back to main menu" msgstr "" #: src/mainmenu.cpp:59 msgid "Back" msgstr "" #: src/mainmenu.cpp:242 msgid "Hall of Fame" msgstr "" #: src/mainmenu.cpp:268 msgid "code, gfx, snd & design:" msgstr "" #: src/mainmenu.cpp:269 msgid "Remigiusz Dybka" msgstr "" #: src/mainmenu.cpp:270 msgid "[remigiusz.dy...@gmail.com]" msgstr "" #: src/mainmenu.cpp:272 msgid "music:" msgstr "" #: src/mainmenu.cpp:273 msgid "Nine Inch Nails" msgstr "" #: src/mainmenu.cpp:274 msgid "" "[http://nin.com] Released under Creative Commons Attribution Non-Commercial " "Share Alike License" msgstr "" #: src/gameloop.cpp:56 src/gameloop.cpp:62 msgid "End game" msgstr "" #: src/gameloop.cpp:57 msgid "Continue" msgstr "" #: src/gameloop.cpp:61 msgid "Next level" msgstr "" #: src/gameloop.cpp:63 src/gameloop.cpp:70 msgid "View replay" msgstr "" #: src/gameloop.cpp:64 src/gameloop.cpp:71 msgid "Export video" msgstr "" #: src/gameloop.cpp:69 msgid "Restart game" msgstr "" #: src/gameloop.cpp:445 msgid "Game paused" msgstr "" #: src/gameloop.cpp:458 msgid "Level cleared" msgstr "" #: src/gameloop.cpp:461 #, c-format msgid "Current score: %05d" msgstr "" #: src/gameloop.cpp:472 msgid "Game Over" msgstr "" #: src/gameloop.cpp:478 #, c-format msgid "Score: %05d" msgstr "" #: src/gameloop.cpp:486 msgid "Congratulations !!! You just pwned" msgstr "" #: src/gameloop.cpp:511 msgid "You have a new hi score" msgstr "" #: src/gameloop.cpp:512 msgid "please enter your name" msgstr "" #: data/data/level1.lvl:1 msgid "Zatlantiz" msgstr "" #: data/data/level2.lvl:1 msgid "Zuza" msgstr "" #: data/data/level3.lvl:1 msgid "Bendlantiz" msgstr "" #: data/data/level4.lvl:1 msgid "You have been warned" msgstr "" #: data/data/level5.lvl:1 msgid "Double D" msgstr "" #: data/data/level6.lvl:1 msgid "SuperZaz" msgstr ""
--- zaz-0.2.6.orig/src/Makefile.am +++ zaz-0.2.6/src/Makefile.am @@ -58,7 +58,9 @@ hiscores.h \ hiscores.cpp \ lineeditor.h \ - lineeditor.cpp + lineeditor.cpp \ + i18n.h \ + i18n.cpp zaz_LDFLAGS = --- /dev/null +++ zaz-0.2.6/src/i18n.cpp @@ -0,0 +1,31 @@ +// (c) 2009 Miriam Ruiz <little_m...@yahoo.es> +// +// This code is free software; you can redistribute it and/or +// modify it under the terms of the GNU Library General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This code is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Library General Public License for more details. + +#include "i18n.h" + +#include <libintl.h> +#include <locale.h> + +GetTextInit::GetTextInit() +{ + if (!IsInit) + { + IsInit = true; + setlocale (LC_MESSAGES, ""); + setlocale (LC_CTYPE, ""); + setlocale (LC_COLLATE, ""); + textdomain ("zaz"); + bindtextdomain ("zaz", NULL); + } +} + +bool GetTextInit::IsInit = false; --- /dev/null +++ zaz-0.2.6/src/i18n.h @@ -0,0 +1,29 @@ +// (c) 2009 Miriam Ruiz <little_m...@yahoo.es> +// +// This code is free software; you can redistribute it and/or +// modify it under the terms of the GNU Library General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This code is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Library General Public License for more details. + +#ifndef __I18N_H__ +#define __I18N_H__ + +#include <libintl.h> +#define _(String) gettext (String) + +class GetTextInit +{ + protected: + static bool IsInit; + public: + GetTextInit(); +}; + +static GetTextInit gettext_init; + +#endif // __I18N_H__ --- zaz-0.2.6.orig/src/common.h +++ zaz-0.2.6/src/common.h @@ -40,6 +40,7 @@ #include <FTGL/ftgl.h> #include <GL/gl.h> +#include "i18n.h" #include "error.h" #include "settings.h" #include "hiscores.h" --- zaz-0.2.6.orig/src/mainmenu.cpp +++ zaz-0.2.6/src/mainmenu.cpp @@ -28,11 +28,11 @@ renderHiscores(true), showCredits(false), oldFullscreen(settings->getb("fullscreen", false)), oldRes(settings->get("resolution", "")), logoGpl(LoadTexture ("gpl3.png")) { - startMenu.Add(new GenericMenuItem("Start game", startMenuStartHandler, this)); + startMenu.Add(new GenericMenuItem(_("Start game"), startMenuStartHandler, this)); // startMenu.Add("Practice"); - startMenu.Add(new GenericMenuItem("Options", startMenuOptionsHandler, this)); - startMenu.Add(new GenericMenuItem("Credits", startMenuCreditsHandler, this)); - startMenu.Add(new GenericMenuItem("Exit", startMenuExitHandler, this)); + startMenu.Add(new GenericMenuItem(_("Options"), startMenuOptionsHandler, this)); + startMenu.Add(new GenericMenuItem(_("Credits"), startMenuCreditsHandler, this)); + startMenu.Add(new GenericMenuItem(_("Exit"), startMenuExitHandler, this)); startMenu.SetDimensions(60, 40, 40); @@ -46,17 +46,17 @@ resolutions.push_back(sm.str()); } - optionsMenu.Add(new OptionMenuItem("Resolution", resolutions, settings, "resolution")); - optionsMenu.Add(new BooleanMenuItem("Fullscreen", settings, "fullscreen")); - optionsMenu.Add(new BooleanMenuItem("Show FPS", settings, "showFps")); - optionsMenu.Add(new ValueMenuItem("Mouse sensivity", 1, 10, settings, "mouseSensivity")); - optionsMenu.Add(new ValueMenuItem("SFX volume", 0, 100, settings, "sfxVolume")); - optionsMenu.Add(new ValueMenuItem("Music volume", 0, 100, settings, "musicVolume")); - optionsMenu.Add(new GenericMenuItem("Back to main menu", optionsMenuBackHandler, this)); + optionsMenu.Add(new OptionMenuItem(_("Resolution"), resolutions, settings, "resolution")); + optionsMenu.Add(new BooleanMenuItem(_("Fullscreen"), settings, "fullscreen")); + optionsMenu.Add(new BooleanMenuItem(_("Show FPS"), settings, "showFps")); + optionsMenu.Add(new ValueMenuItem(_("Mouse sensivity"), 1, 10, settings, "mouseSensivity")); + optionsMenu.Add(new ValueMenuItem(_("SFX volume"), 0, 100, settings, "sfxVolume")); + optionsMenu.Add(new ValueMenuItem(_("Music volume"), 0, 100, settings, "musicVolume")); + optionsMenu.Add(new GenericMenuItem(_("Back to main menu"), optionsMenuBackHandler, this)); optionsMenu.SetDimensions(55, 45, 60); - creditsMenu.Add(new GenericMenuItem("Back", optionsMenuBackHandler, this)); + creditsMenu.Add(new GenericMenuItem(_("Back"), optionsMenuBackHandler, this)); creditsMenu.SetDimensions(30, 10, 40); // load the textures @@ -239,7 +239,7 @@ glScalef(0.15f, 0.15f, 0.15f); glColor4d(1.0, 1.0, 1.0, 1.0); - font3->Render("Hall of Fame", -1); + font3->Render(_("Hall of Fame"), -1); glPopMatrix(); float y = 35; @@ -265,13 +265,13 @@ if (showCredits) { glColor4f(1.0, 1.0, 1.0, 1.0); - CenterMsg("code, gfx, snd & design:", 46, font, 0.08); - CenterMsg("Remigiusz Dybka", 43.5, font, 0.1); - CenterMsg("[remigiusz.dy...@gmail.com]", 41.5, font, 0.08); - - CenterMsg("music:", 37, font, 0.08); - CenterMsg("Nine Inch Nails", 34.5, font, 0.1); - CenterMsg("[http://nin.com] Released under Creative Commons Attribution Non-Commercial Share Alike License", 32.5, font, 0.08); + CenterMsg(_("code, gfx, snd & design:"), 46, font, 0.08); + CenterMsg(_("Remigiusz Dybka"), 43.5, font, 0.1); + CenterMsg(_("[remigiusz.dy...@gmail.com]"), 41.5, font, 0.08); + + CenterMsg(_("music:"), 37, font, 0.08); + CenterMsg(_("Nine Inch Nails"), 34.5, font, 0.1); + CenterMsg(_("[http://nin.com] Released under Creative Commons Attribution Non-Commercial Share Alike License"), 32.5, font, 0.08); glLoadIdentity(); glEnable(GL_TEXTURE_2D); --- zaz-0.2.6.orig/src/gameloop.cpp +++ zaz-0.2.6/src/gameloop.cpp @@ -53,22 +53,22 @@ } }; - pauseMenu.Add(new GenericMenuItem("End game", pauseMenuEndGameHandler, this)); - pauseMenu.Add(new GenericMenuItem("Continue", pauseMenuContinueHandler, this)); + pauseMenu.Add(new GenericMenuItem(_("End game"), pauseMenuEndGameHandler, this)); + pauseMenu.Add(new GenericMenuItem(_("Continue"), pauseMenuContinueHandler, this)); pauseMenu.SetDimensions(30, 40, 40); - nextLevelMenu.Add(new GenericMenuItem("Next level", nextLevelMenuNextLevelHandler, this)); - nextLevelMenu.Add(new GenericMenuItem("End game", pauseMenuEndGameHandler, this)); - nextLevelMenu.Add(new GenericMenuItem("View replay", nextLevelMenuViewReplayHandler, this)); - nextLevelMenu.Add(new GenericMenuItem("Export video", nextLevelMenuExportVideoHandler, this)); + nextLevelMenu.Add(new GenericMenuItem(_("Next level"), nextLevelMenuNextLevelHandler, this)); + nextLevelMenu.Add(new GenericMenuItem(_("End game"), pauseMenuEndGameHandler, this)); + nextLevelMenu.Add(new GenericMenuItem(_("View replay"), nextLevelMenuViewReplayHandler, this)); + nextLevelMenu.Add(new GenericMenuItem(_("Export video"), nextLevelMenuExportVideoHandler, this)); nextLevelMenu.SetDimensions(30, 40, 40); - gameOverMenu.Add(new GenericMenuItem("Back to main menu", pauseMenuEndGameHandler, this)); - gameOverMenu.Add(new GenericMenuItem("Restart game", gameOverMenuRestartHandler, this)); - gameOverMenu.Add(new GenericMenuItem("View replay", nextLevelMenuViewReplayHandler, this)); - gameOverMenu.Add(new GenericMenuItem("Export video", nextLevelMenuExportVideoHandler, this)); + gameOverMenu.Add(new GenericMenuItem(_("Back to main menu"), pauseMenuEndGameHandler, this)); + gameOverMenu.Add(new GenericMenuItem(_("Restart game"), gameOverMenuRestartHandler, this)); + gameOverMenu.Add(new GenericMenuItem(_("View replay"), nextLevelMenuViewReplayHandler, this)); + gameOverMenu.Add(new GenericMenuItem(_("Export video"), nextLevelMenuExportVideoHandler, this)); gameOverMenu.SetDimensions(30, 40, 40); @@ -442,7 +442,7 @@ if (showPauseMenu) { pauseMenu.Render(); - string msg = "Game paused"; + string msg = _("Game paused"); glColor3d(1.0, 0.0, 0.0); CenterMsg(msg, 45, font); @@ -455,10 +455,10 @@ glLoadIdentity( ); glColor3d(1.0, 1.0, 1.0); - CenterMsg("Level cleared", 50, font); + CenterMsg(_("Level cleared"), 50, font); char msgscore[256]; - sprintf(msgscore, "Current score: %05d", score); + sprintf(msgscore, _("Current score: %05d"), score); CenterMsg(msgscore, 45, font); } @@ -469,13 +469,13 @@ gameOverMenu.Render(); glLoadIdentity( ); - string msg = "Game Over"; + string msg = _("Game Over"); glColor3d(1.0, 0.0, 0.0); CenterMsg(msg, 50, font); char msgscore[256]; - sprintf(msgscore, "Score: %05d", score); + sprintf(msgscore, _("Score: %05d"), score); glColor3d(1.0, 1.0, 1.0); CenterMsg(msgscore, 45, font); } @@ -483,7 +483,7 @@ if (pwned && !hiScore) { glColor3d(1.0, 1.0, 1.0); - CenterMsg("Congratulations !!! You just pwned", 90, font3); + CenterMsg(_("Congratulations !!! You just pwned"), 90, font3); // logo glLoadIdentity(); @@ -508,8 +508,8 @@ if (hiScore) { glColor3d(1.0, 1.0, 1.0); - CenterMsg("You have a new hi score", 65, font); - CenterMsg("please enter your name", 60, font); + CenterMsg(_("You have a new hi score"), 65, font); + CenterMsg(_("please enter your name"), 60, font); editor.Render(); } } --- zaz-0.2.6.orig/src/game.cpp +++ zaz-0.2.6/src/game.cpp @@ -487,7 +487,7 @@ glLoadIdentity( ); glPushMatrix(); - FTBBox b = font3->BBox(level.name.c_str()); + FTBBox b = font3->BBox(gettext(level.name.c_str())); double tw = b.Upper().X() / 5; glTranslated((100 - tw) / 2, 50, 5); @@ -502,7 +502,7 @@ glColor4d(1.0, 1.0, 1.0, alpha); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - font3->Render(level.name.c_str()); + font3->Render(gettext(level.name.c_str())); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glPopMatrix();
# translation of es.po to español # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Miriam Ruiz <mir...@debian.org>, 2009. msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-08-25 01:01+0200\n" "PO-Revision-Date: 2009-08-25 01:04+0200\n" "Last-Translator: Miriam Ruiz <mir...@debian.org>\n" "Language-Team: español <e...@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/mainmenu.cpp:31 msgid "Start game" msgstr "Comenzar el juego" #: src/mainmenu.cpp:33 msgid "Options" msgstr "Opciones" #: src/mainmenu.cpp:34 msgid "Credits" msgstr "Créditos" #: src/mainmenu.cpp:35 msgid "Exit" msgstr "Salir" #: src/mainmenu.cpp:49 msgid "Resolution" msgstr "Resolución" #: src/mainmenu.cpp:50 msgid "Fullscreen" msgstr "Pantalla completa" #: src/mainmenu.cpp:51 msgid "Show FPS" msgstr "Mostrar FPS" #: src/mainmenu.cpp:52 msgid "Mouse sensivity" msgstr "Sensib. ratón" #: src/mainmenu.cpp:53 msgid "SFX volume" msgstr "Vol. de sonidos" #: src/mainmenu.cpp:54 msgid "Music volume" msgstr "Vol. de música" #: src/mainmenu.cpp:55 src/gameloop.cpp:68 msgid "Back to main menu" msgstr "Volver al menú principal" #: src/mainmenu.cpp:59 msgid "Back" msgstr "Volver" #: src/mainmenu.cpp:242 msgid "Hall of Fame" msgstr "Mejores" #: src/mainmenu.cpp:268 msgid "code, gfx, snd & design:" msgstr "código, gráficos, sonido y diseño" #: src/mainmenu.cpp:269 msgid "Remigiusz Dybka" msgstr "" #: src/mainmenu.cpp:270 msgid "[remigiusz.dy...@gmail.com]" msgstr "" #: src/mainmenu.cpp:272 msgid "music:" msgstr "música" #: src/mainmenu.cpp:273 msgid "Nine Inch Nails" msgstr "" #: src/mainmenu.cpp:274 msgid "" "[http://nin.com] Released under Creative Commons Attribution Non-Commercial " "Share Alike License" msgstr "[http://nin.com] Publicado bajo la licencia Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia" #: src/gameloop.cpp:56 src/gameloop.cpp:62 msgid "End game" msgstr "Terminar el juego" #: src/gameloop.cpp:57 msgid "Continue" msgstr "Continuar" #: src/gameloop.cpp:61 msgid "Next level" msgstr "Siguiente nivel" #: src/gameloop.cpp:63 src/gameloop.cpp:70 msgid "View replay" msgstr "Ver repetición" #: src/gameloop.cpp:64 src/gameloop.cpp:71 msgid "Export video" msgstr "Exportar vídeo" #: src/gameloop.cpp:69 msgid "Restart game" msgstr "Volver a empezar" #: src/gameloop.cpp:445 msgid "Game paused" msgstr "Juego parado" #: src/gameloop.cpp:458 msgid "Level cleared" msgstr "Nivel superado" #: src/gameloop.cpp:461 #, c-format msgid "Current score: %05d" msgstr "Puntuación actual: %05d" #: src/gameloop.cpp:472 msgid "Game Over" msgstr "Fin del juego" #: src/gameloop.cpp:478 #, c-format msgid "Score: %05d" msgstr "Puntuación: %05d" #: src/gameloop.cpp:486 msgid "Congratulations !!! You just pwned" msgstr "¡¡Enhorabuena!! ¡¡Has triunfado!!" #: src/gameloop.cpp:511 #, fuzzy msgid "You have a new hi score" msgstr "¡Cuidado! ¡ojo!" #: src/gameloop.cpp:512 msgid "please enter your name" msgstr "por favor, introduce tu nombre" #: data/data/level1.lvl:1 msgid "Zatlantiz" msgstr "Zatlántida" #: data/data/level2.lvl:1 msgid "Zuza" msgstr "" #: data/data/level3.lvl:1 msgid "Bendlantiz" msgstr "Torzlántida" #: data/data/level4.lvl:1 msgid "You have been warned" msgstr "¡Cuidado! ¡ojo!" #: data/data/level5.lvl:1 msgid "Double D" msgstr "Doble D" #: data/data/level6.lvl:1 msgid "SuperZaz" msgstr "Super Zaz"
_______________________________________________ Games mailing list Games@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/games