1
0
Fork 0
mirror of https://github.com/EDeev/pixel_gamble.git synced 2026-10-07 23:49:29 +03:00
pixel_gamble/game/pixelgamble/i18n.py
Egor Deev 4ecb9257c8 Pixel Gamble 2.0: законченная игра на ресурсах Ninja Adventure
- 10 волн, 5 видов врагов со своим поведением и босс в три фазы
- меч, копьё и посох, 11 улучшений между волнами, опыт и уровни
- меню, пауза, настройки, итоги партии и рекорд, русский и английский
- мир 480×270 с масштабированием, интерфейс в 960×540, скорости от dt
- асинхронный цикл: та же игра в браузере через pygbag
- тесты без окна, автоигрок, CI, релизы exe/Linux, GitHub Pages
- README на двух языках; исходная версия — релиз v1.0.0
2026-10-07 12:29:41 +00:00

148 lines
5.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Тексты интерфейса на русском и английском."""
TEXTS = {
"ru": {
"play": "Играть",
"controls": "Управление",
"settings": "Настройки",
"quit": "Выход",
"back": "Назад",
"resume": "Продолжить",
"to_menu": "В меню",
"again": "Ещё раз",
"best": "Рекорд: {score}",
"subtitle": "выживи 10 волн и победи самурая",
"music": "Музыка: {value}%",
"sounds": "Звуки: {value}%",
"language": "Язык: русский",
"fullscreen": "Полный экран: {value}",
"on": "вкл",
"off": "выкл",
"pause": "Пауза",
"wave": "Волна {n}/{total}",
"wave_big": "Волна {n}",
"boss_wave": "Финальная волна",
"enemies_left": "Врагов: {n}",
"wave_clear": "Волна пройдена!",
"choose": "Выбери улучшение",
"choose_hint": "1, 2, 3 или клик",
"level": "Ур. {n}",
"level_up": "Новый уровень!",
"game_over": "Вы погибли",
"victory": "Победа!",
"new_record": "Новый рекорд!",
"stat_wave": "Волна",
"stat_kills": "Врагов побеждено",
"stat_time": "Время",
"stat_level": "Уровень",
"stat_score": "Очки",
"boss_name": "Красный самурай",
"controls_text": [
"WASD / стрелки — движение",
"ЛКМ / пробел / J — удар",
"Q / колесо / 1-3 — сменить оружие",
"Удар мышью — в сторону курсора",
"Esc / P — пауза",
"F11 — полный экран",
"",
"Сердечки из врагов и камней лечат.",
"Опыт за врагов повышает уровень,",
"а между волнами — выбор улучшения.",
],
"credits": "Графика и звук: Ninja Adventure (pixel-boy, CC0)",
},
"en": {
"play": "Play",
"controls": "Controls",
"settings": "Settings",
"quit": "Quit",
"back": "Back",
"resume": "Resume",
"to_menu": "Main menu",
"again": "Play again",
"best": "Best: {score}",
"subtitle": "survive 10 waves and defeat the samurai",
"music": "Music: {value}%",
"sounds": "Sounds: {value}%",
"language": "Language: English",
"fullscreen": "Fullscreen: {value}",
"on": "on",
"off": "off",
"pause": "Paused",
"wave": "Wave {n}/{total}",
"wave_big": "Wave {n}",
"boss_wave": "Final wave",
"enemies_left": "Enemies: {n}",
"wave_clear": "Wave cleared!",
"choose": "Choose an upgrade",
"choose_hint": "1, 2, 3 or click",
"level": "Lv {n}",
"level_up": "Level up!",
"game_over": "You died",
"victory": "Victory!",
"new_record": "New record!",
"stat_wave": "Wave",
"stat_kills": "Enemies defeated",
"stat_time": "Time",
"stat_level": "Level",
"stat_score": "Score",
"boss_name": "Red Samurai",
"controls_text": [
"WASD / arrows — move",
"LMB / Space / J — attack",
"Q / wheel / 1-3 — switch weapon",
"Mouse attacks aim at the cursor",
"Esc / P — pause",
"F11 — fullscreen",
"",
"Hearts from enemies and rocks heal.",
"Enemies give XP to level up,",
"and you pick an upgrade between waves.",
],
"credits": "Art & sound: Ninja Adventure (pixel-boy, CC0)",
},
}
UPGRADES = {
"ru": {
"heart": ("Крепкое сердце", "+1 сердце и лечение"),
"damage": ("Острое оружие", "+15% урона"),
"speed": ("Лёгкие ноги", "+12% скорости"),
"haste": ("Быстрые руки", "удары на 12% чаще"),
"heal": ("Перевязка", "полное лечение"),
"reach": ("Длинный замах", "+20% дальности удара"),
"lance": ("Копьё", "бьёт дальше и насквозь"),
"wand": ("Магический посох", "стреляет по курсору"),
"multishot": ("Тройной заряд", "посох бьёт веером"),
"vampire": ("Жажда боя", "шанс вылечиться за победу"),
"knockback": ("Тяжёлая рука", "враги отлетают дальше"),
},
"en": {
"heart": ("Strong heart", "+1 heart and heal"),
"damage": ("Sharp weapons", "+15% damage"),
"speed": ("Light feet", "+12% speed"),
"haste": ("Quick hands", "attack 12% faster"),
"heal": ("Bandage", "full heal"),
"reach": ("Long swing", "+20% melee reach"),
"lance": ("Lance", "longer, pierces enemies"),
"wand": ("Magic staff", "shoots at the cursor"),
"multishot": ("Triple shot", "staff fires a fan"),
"vampire": ("Battle thirst", "chance to heal on kill"),
"knockback": ("Heavy hand", "enemies fly further"),
},
}
class Lang:
def __init__(self, code="ru"):
self.code = code if code in TEXTS else "ru"
def toggle(self):
self.code = "en" if self.code == "ru" else "ru"
def __call__(self, key, **kwargs):
text = TEXTS[self.code].get(key, key)
return text.format(**kwargs) if kwargs and isinstance(text, str) else text
def upgrade(self, key):
return UPGRADES[self.code][key]