diff --git a/squirrelbattle/display/display.py b/squirrelbattle/display/display.py index f6dd6db..d1bea1b 100644 --- a/squirrelbattle/display/display.py +++ b/squirrelbattle/display/display.py @@ -222,6 +222,10 @@ class HorizontalSplit(Display): class Box(Display): + title: str = "" + + def update_title(self, title: str) -> None: + self.title = title def __init__(self, *args, fg_border_color: Optional[int] = None, **kwargs): super().__init__(*args, **kwargs) @@ -236,5 +240,11 @@ class Box(Display): self.addstr(self.pad, i, self.width - 1, "┃", self.fg_border_color) self.addstr(self.pad, self.height - 1, 0, "┗" + "━" * (self.width - 2) + "┛", self.fg_border_color) + + if self.title: + self.addstr(self.pad, 0, (self.width - len(self.title) - 8) // 2, + f" == {self.title} == ", curses.COLOR_GREEN, + italic=True, bold=True) + self.refresh_pad(self.pad, 0, 0, self.y, self.x, self.y + self.height - 1, self.x + self.width - 1) diff --git a/squirrelbattle/display/menudisplay.py b/squirrelbattle/display/menudisplay.py index d067547..135abda 100644 --- a/squirrelbattle/display/menudisplay.py +++ b/squirrelbattle/display/menudisplay.py @@ -6,7 +6,7 @@ from random import randint from typing import List from squirrelbattle.menus import Menu, MainMenu -from .display import Display, Box +from .display import Box, Display from ..enums import KeyValues from ..game import Game from ..resources import ResourceManager @@ -135,15 +135,12 @@ class MainMenuDisplay(Display): class PlayerInventoryDisplay(MenuDisplay): - message = _("== INVENTORY ==") - def update_pad(self) -> None: - self.addstr(self.pad, 0, (self.width - len(self.message)) // 2, - self.message, bold=True, italic=True) + self.menubox.update_title(_("INVENTORY")) for i, item in enumerate(self.menu.values): rep = self.pack[item.name.upper()] selection = f"[{rep}]" if i == self.menu.position else f" {rep} " - self.addstr(self.pad, 2 + i, 0, selection + self.addstr(self.pad, i + 1, 0, selection + " " + item.translated_name.capitalize()) @property @@ -163,15 +160,12 @@ class PlayerInventoryDisplay(MenuDisplay): class StoreInventoryDisplay(MenuDisplay): - message = _("== STALL ==") - def update_pad(self) -> None: - self.addstr(self.pad, 0, (self.width - len(self.message)) // 2, - self.message, bold=True, italic=True) + self.menubox.update_title(_("STALL")) for i, item in enumerate(self.menu.values): rep = self.pack[item.name.upper()] selection = f"[{rep}]" if i == self.menu.position else f" {rep} " - self.addstr(self.pad, 2 + i, 0, selection + self.addstr(self.pad, i + 1, 0, selection + " " + item.translated_name.capitalize() + ": " + str(item.price) + " Hazels") diff --git a/squirrelbattle/locale/de/LC_MESSAGES/squirrelbattle.po b/squirrelbattle/locale/de/LC_MESSAGES/squirrelbattle.po index b5e8225..9405951 100644 --- a/squirrelbattle/locale/de/LC_MESSAGES/squirrelbattle.po +++ b/squirrelbattle/locale/de/LC_MESSAGES/squirrelbattle.po @@ -1,12 +1,14 @@ -# German translation of Squirrel Battle -# Copyright (C) YEAR ÿnérant, eichhornchen, nicomarg, charlse +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ÿnérant, eichhornchen, nicomarg, charlse, ifugao # This file is distributed under the same license as the squirrelbattle package. +# FIRST AUTHOR , YEAR. # +#, fuzzy msgid "" msgstr "" "Project-Id-Version: squirrelbattle 3.14.1\n" "Report-Msgid-Bugs-To: squirrel-battle@crans.org\n" -"POT-Creation-Date: 2020-12-11 18:06+0100\n" +"POT-Creation-Date: 2020-12-12 17:07+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,19 +17,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: squirrelbattle/display/menudisplay.py:113 -msgid "== INVENTORY ==" -msgstr "== BESTAND ==" +#: squirrelbattle/display/menudisplay.py:139 +msgid "INVENTORY" +msgstr "BESTAND" -#: squirrelbattle/display/menudisplay.py:134 -msgid "== STALL ==" -msgstr "== STAND ==" +#: squirrelbattle/display/menudisplay.py:164 +msgid "STALL" +msgstr "STAND" -#: squirrelbattle/display/statsdisplay.py:34 +#: squirrelbattle/display/statsdisplay.py:33 msgid "Inventory:" msgstr "Bestand:" -#: squirrelbattle/display/statsdisplay.py:53 +#: squirrelbattle/display/statsdisplay.py:52 msgid "YOU ARE DEAD" msgstr "SIE WURDEN GESTORBEN" @@ -51,16 +53,16 @@ msgstr "Die Sonne ist warm heute" msgid "Bomb is exploding." msgstr "Die Bombe explodiert." -#: squirrelbattle/entities/items.py:224 +#: squirrelbattle/entities/items.py:248 #, python-brace-format msgid "{player} exchanged its body with {entity}." msgstr "{player} täuscht seinem Körper mit {entity} aus." -#: squirrelbattle/game.py:199 squirrelbattle/tests/game_test.py:537 +#: squirrelbattle/game.py:203 squirrelbattle/tests/game_test.py:573 msgid "You do not have enough money" -msgstr "" +msgstr "Sie haben nicht genug Geld" -#: squirrelbattle/game.py:243 +#: squirrelbattle/game.py:247 msgid "" "Some keys are missing in your save file.\n" "Your save seems to be corrupt. It got deleted." @@ -68,7 +70,7 @@ msgstr "" "In Ihrer Speicherdatei fehlen einige Schlüssel.\n" "Ihre Speicherung scheint korrupt zu sein. Es wird gelöscht." -#: squirrelbattle/game.py:251 +#: squirrelbattle/game.py:255 msgid "" "No player was found on this map!\n" "Maybe you died?" @@ -76,7 +78,7 @@ msgstr "" "Auf dieser Karte wurde kein Spieler gefunden!\n" "Vielleicht sind Sie gestorben?" -#: squirrelbattle/game.py:271 +#: squirrelbattle/game.py:275 msgid "" "The JSON file is not correct.\n" "Your save seems corrupted. It got deleted." @@ -103,8 +105,8 @@ msgstr "{name} stirbt." msgid "Back" msgstr "Zurück" -#: squirrelbattle/tests/game_test.py:314 squirrelbattle/tests/game_test.py:317 -#: squirrelbattle/tests/game_test.py:320 +#: squirrelbattle/tests/game_test.py:344 squirrelbattle/tests/game_test.py:347 +#: squirrelbattle/tests/game_test.py:350 squirrelbattle/tests/game_test.py:353 #: squirrelbattle/tests/translations_test.py:16 msgid "New game" msgstr "Neu Spiel" diff --git a/squirrelbattle/locale/es/LC_MESSAGES/squirrelbattle.po b/squirrelbattle/locale/es/LC_MESSAGES/squirrelbattle.po index acbfb5a..3f67e3a 100644 --- a/squirrelbattle/locale/es/LC_MESSAGES/squirrelbattle.po +++ b/squirrelbattle/locale/es/LC_MESSAGES/squirrelbattle.po @@ -1,49 +1,67 @@ -# Spanish translation of Squirrel Battle -# Copyright (C) YEAR ÿnérant, eichhornchen, nicomarg, charlse +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ÿnérant, eichhornchen, nicomarg, charlse, ifugao # This file is distributed under the same license as the squirrelbattle package. -# Translation by ifugaao +# FIRST AUTHOR , YEAR. # +#, fuzzy msgid "" msgstr "" "Project-Id-Version: squirrelbattle 3.14.1\n" "Report-Msgid-Bugs-To: squirrel-battle@crans.org\n" -"POT-Creation-Date: 2020-12-05 14:46+0100\n" +"POT-Creation-Date: 2020-12-12 17:07+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: ifugao\n" +"Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -# Suggested in Weblate: == INVENTORIO == -#: squirrelbattle/display/menudisplay.py:105 -msgid "== INVENTORY ==" -msgstr "== INVENTORIO ==" +#: squirrelbattle/display/menudisplay.py:139 +msgid "INVENTORY" +msgstr "INVENTORIO" -# Suggested in Weblate: Inventorio : -#: squirrelbattle/display/statsdisplay.py:34 +#: squirrelbattle/display/menudisplay.py:164 +msgid "STALL" +msgstr "PUESTO" + +#: squirrelbattle/display/statsdisplay.py:33 msgid "Inventory:" msgstr "Inventorio :" -# Suggested in Weblate: ERES MUERTO -#: squirrelbattle/display/statsdisplay.py:50 +#: squirrelbattle/display/statsdisplay.py:52 msgid "YOU ARE DEAD" msgstr "ERES MUERTO" +#: squirrelbattle/entities/friendly.py:33 +msgid "I don't sell any squirrel" +msgstr "No vendo ninguna ardilla" + +#: squirrelbattle/entities/friendly.py:46 +msgid "Flower power!!" +msgstr "Poder de las flores!!" + +#: squirrelbattle/entities/friendly.py:46 +msgid "The sun is warm today" +msgstr "El sol está caliente hoy" + #. The bomb is exploding. #. Each entity that is close to the bomb takes damages. #. The player earn XP if the entity was killed. -#: squirrelbattle/entities/items.py:128 +#: squirrelbattle/entities/items.py:151 msgid "Bomb is exploding." msgstr "La bomba está explotando." -#: squirrelbattle/entities/items.py:172 +#: squirrelbattle/entities/items.py:248 #, python-brace-format msgid "{player} exchanged its body with {entity}." msgstr "{player} intercambió su cuerpo con {entity}." -#: squirrelbattle/game.py:177 +#: squirrelbattle/game.py:203 squirrelbattle/tests/game_test.py:573 +msgid "You do not have enough money" +msgstr "No tienes suficiente dinero" + +#: squirrelbattle/game.py:247 msgid "" "Some keys are missing in your save file.\n" "Your save seems to be corrupt. It got deleted." @@ -51,7 +69,7 @@ msgstr "" "Algunas claves faltan en su archivo de guarda.\n" "Su guarda parece a ser corruptido. Fue eliminado." -#: squirrelbattle/game.py:185 +#: squirrelbattle/game.py:255 msgid "" "No player was found on this map!\n" "Maybe you died?" @@ -59,7 +77,7 @@ msgstr "" "No jugador encontrado sobre la carta !\n" "¿ Quizas murió ?" -#: squirrelbattle/game.py:205 +#: squirrelbattle/game.py:275 msgid "" "The JSON file is not correct.\n" "Your save seems corrupted. It got deleted." @@ -67,28 +85,27 @@ msgstr "" "El JSON archivo no es correcto.\n" "Su guarda parece corrupta. Fue eliminada." -#: squirrelbattle/interfaces.py:400 +#: squirrelbattle/interfaces.py:429 #, python-brace-format msgid "{name} hits {opponent}." msgstr "{name} golpea a {opponent}." -#: squirrelbattle/interfaces.py:412 +#: squirrelbattle/interfaces.py:441 #, python-brace-format msgid "{name} takes {amount} damage." msgstr "{name} recibe {amount} daño." -#: squirrelbattle/interfaces.py:414 +#: squirrelbattle/interfaces.py:443 #, python-brace-format msgid "{name} dies." msgstr "{name} se muere." -#: squirrelbattle/menus.py:72 +#: squirrelbattle/menus.py:73 msgid "Back" msgstr "Volver" -#: squirrelbattle/tests/game_test.py:300, -#: squirrelbattle/tests/game_test.py:303, -#: squirrelbattle/tests/game_test.py:306, +#: squirrelbattle/tests/game_test.py:344 squirrelbattle/tests/game_test.py:347 +#: squirrelbattle/tests/game_test.py:350 squirrelbattle/tests/game_test.py:353 #: squirrelbattle/tests/translations_test.py:16 msgid "New game" msgstr "Nuevo partido" @@ -166,41 +183,49 @@ msgid "Key used to drop an item in the inventory" msgstr "Tecla para dejar un objeto del inventorio" #: squirrelbattle/tests/translations_test.py:53 +msgid "Key used to talk to a friendly entity" +msgstr "Tecla para hablar con una entidad amiga" + +#: squirrelbattle/tests/translations_test.py:55 msgid "Texture pack" msgstr "Paquete de texturas" -#: squirrelbattle/tests/translations_test.py:54 +#: squirrelbattle/tests/translations_test.py:56 msgid "Language" msgstr "Languaje" -#: squirrelbattle/tests/translations_test.py:57 +#: squirrelbattle/tests/translations_test.py:59 msgid "player" msgstr "jugador" -#: squirrelbattle/tests/translations_test.py:59 +#: squirrelbattle/tests/translations_test.py:61 msgid "tiger" msgstr "tigre" -#: squirrelbattle/tests/translations_test.py:60 +#: squirrelbattle/tests/translations_test.py:62 msgid "hedgehog" msgstr "erizo" -#: squirrelbattle/tests/translations_test.py:61 +#: squirrelbattle/tests/translations_test.py:63 msgid "rabbit" msgstr "conejo" -#: squirrelbattle/tests/translations_test.py:62 +#: squirrelbattle/tests/translations_test.py:64 msgid "teddy bear" msgstr "osito de peluche" -#: squirrelbattle/tests/translations_test.py:64 +#: squirrelbattle/tests/translations_test.py:66 msgid "body snatch potion" msgstr "poción de intercambio" -#: squirrelbattle/tests/translations_test.py:65 +#: squirrelbattle/tests/translations_test.py:67 msgid "bomb" msgstr "bomba" -#: squirrelbattle/tests/translations_test.py:66 +#: squirrelbattle/tests/translations_test.py:68 msgid "heart" msgstr "corazón" + +#: squirrelbattle/tests/translations_test.py:69 +msgid "sword" +msgstr "espada" diff --git a/squirrelbattle/locale/fr/LC_MESSAGES/squirrelbattle.po b/squirrelbattle/locale/fr/LC_MESSAGES/squirrelbattle.po index 9c9f5b0..0669940 100644 --- a/squirrelbattle/locale/fr/LC_MESSAGES/squirrelbattle.po +++ b/squirrelbattle/locale/fr/LC_MESSAGES/squirrelbattle.po @@ -1,34 +1,35 @@ -# French translation of Squirrel Battle -# Copyright (C) YEAR ÿnérant, eichhornchen, nicomarg, charlse +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ÿnérant, eichhornchen, nicomarg, charlse, ifugao # This file is distributed under the same license as the squirrelbattle package. +# FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: squirrelbattle 3.14.1\n" "Report-Msgid-Bugs-To: squirrel-battle@crans.org\n" -"POT-Creation-Date: 2020-12-11 18:06+0100\n" +"POT-Creation-Date: 2020-12-12 17:07+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -"Language: fr\n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: squirrelbattle/display/menudisplay.py:113 -msgid "== INVENTORY ==" -msgstr "== INVENTAIRE ==" +#: squirrelbattle/display/menudisplay.py:139 +msgid "INVENTORY" +msgstr "INVENTAIRE" -#: squirrelbattle/display/menudisplay.py:134 -msgid "== STALL ==" -msgstr "== STAND ==" +#: squirrelbattle/display/menudisplay.py:164 +msgid "STALL" +msgstr "STAND" -#: squirrelbattle/display/statsdisplay.py:34 +#: squirrelbattle/display/statsdisplay.py:33 msgid "Inventory:" msgstr "Inventaire :" -#: squirrelbattle/display/statsdisplay.py:53 +#: squirrelbattle/display/statsdisplay.py:52 msgid "YOU ARE DEAD" msgstr "VOUS ÊTES MORT" @@ -52,16 +53,16 @@ msgstr "Le soleil est chaud aujourd'hui" msgid "Bomb is exploding." msgstr "La bombe explose." -#: squirrelbattle/entities/items.py:224 +#: squirrelbattle/entities/items.py:248 #, python-brace-format msgid "{player} exchanged its body with {entity}." msgstr "{player} a échangé son corps avec {entity}." -#: squirrelbattle/game.py:199 squirrelbattle/tests/game_test.py:537 +#: squirrelbattle/game.py:203 squirrelbattle/tests/game_test.py:573 msgid "You do not have enough money" -msgstr "" +msgstr "Vous n'avez pas assez d'argent" -#: squirrelbattle/game.py:243 +#: squirrelbattle/game.py:247 msgid "" "Some keys are missing in your save file.\n" "Your save seems to be corrupt. It got deleted." @@ -69,7 +70,7 @@ msgstr "" "Certaines clés de votre ficher de sauvegarde sont manquantes.\n" "Votre sauvegarde semble corrompue. Elle a été supprimée." -#: squirrelbattle/game.py:251 +#: squirrelbattle/game.py:255 msgid "" "No player was found on this map!\n" "Maybe you died?" @@ -77,7 +78,7 @@ msgstr "" "Aucun joueur n'a été trouvé sur la carte !\n" "Peut-être êtes-vous mort ?" -#: squirrelbattle/game.py:271 +#: squirrelbattle/game.py:275 msgid "" "The JSON file is not correct.\n" "Your save seems corrupted. It got deleted." @@ -104,8 +105,8 @@ msgstr "{name} meurt." msgid "Back" msgstr "Retour" -#: squirrelbattle/tests/game_test.py:314 squirrelbattle/tests/game_test.py:317 -#: squirrelbattle/tests/game_test.py:320 +#: squirrelbattle/tests/game_test.py:344 squirrelbattle/tests/game_test.py:347 +#: squirrelbattle/tests/game_test.py:350 squirrelbattle/tests/game_test.py:353 #: squirrelbattle/tests/translations_test.py:16 msgid "New game" msgstr "Nouvelle partie"