Compare commits

23 Commits
docs ... master

Author SHA1 Message Date
9821257b1b update translate notes 2022-12-14 15:28:06 +03:00
ff829c4e30 some updates 2022-12-14 15:19:59 +03:00
ceefef36c9 update inventory labels 2022-12-14 15:11:41 +03:00
f09cba60ee update files to latest 2022-12-14 15:11:24 +03:00
eb8a3e187e remove old docs 2022-12-14 14:44:57 +03:00
68d119180a add mod preview 2022-12-14 14:43:10 +03:00
05ea5fdf64 add files list 2022-12-14 14:41:56 +03:00
c78182c425 update level up card title 2022-12-14 14:38:53 +03:00
209262668d update contribution instruction 2022-12-14 14:07:12 +03:00
0566a967c3 remove old docs website 2022-12-14 13:57:32 +03:00
4f3af45da3 update translate 2022-12-14 13:54:23 +03:00
90ce4178a5 7 changes 2022-09-14 16:54:49 +03:00
e64f23035c contribute utils 2022-09-14 16:43:59 +03:00
c546169b51 update strings.dat from v1.08 2022-09-14 16:40:23 +03:00
2a02c3768a Update translate_guide.md
Игра пиздец кривая стала.
Автор не использует переменные локализаций и тупо пишет описание на инглише, лол
2021-08-08 10:47:57 +03:00
74117b1810 fix uppercase 2021-08-03 11:42:48 +03:00
305a6c24d3 add badges to readme 2021-02-25 21:39:20 +03:00
ddf49655e2 it's one day 2021-02-23 21:30:50 +03:00
264a8d4a08 Очередная порция текстов 2021-02-18 12:49:17 +03:00
c1c9ac1622 update todo 2021-02-18 00:24:20 +03:00
211ef4f1fd Добавил статистику посещения 2021-02-16 22:53:47 +03:00
9e5b3d0a22 Оформил мало-мальски сайт 2021-02-16 22:53:38 +03:00
bac0350d66 Merge pull request #3 from iiiypuk/docs
init docs
2021-02-16 22:18:41 +03:00
43 changed files with 685 additions and 566 deletions

9
.gitignore vendored
View File

@ -1,8 +1,3 @@
.venv/
node_modules/
package-lock.json
*.*~
# original game files dir
delver/
delver.jar
dataSums.new.json

View File

@ -1,31 +1,45 @@
# Оглавление
* [Как переводить и что к чему]()
* [Список файлов](#список-файлов)
* [Непонятно](#непонятно)
* [Строки, которые не переводятся](#строки-которые-не-переводятся)
# Подготовка
## Как переводить и что к чему
Файл `dataSums.json` в репозитории хранит MD5 суммы всех тексторвых файлов.
## Список файлов
**Complete:**
Файл `dataSums.json` актуален для версии игры **1.08**.
Для генерации нового списки MD5 сумм воспользуйся скриптом `generate_md5sum_data.py`.
```sh
python generate_md5sum_data.py > dataSums.new.json
```
Для проверки разницы между двумя файлами, новым `dataSums.new.json`
и старым `dataSums.json` имеется скрипт `check_md5sum_data.py`.
Всё это необходимо для ручного разрешения изменений в новых версиях игры.
# Список файлов
## Переведены:
* camp_note1.dat
* camp_note2.dat
* camp-note3.dat
* campfireguy.dat
* campfireguy2.dat
* headstone.dat
* hoodie.dat
* tuttorial_note1.dat
* jeff.dat
* jeff2.dat
* joff.dat
* joff2.dat
* quietguy.dat
* tutorial_note1.dat
* wizzard.dat
* wizzard2.dat
**In compete:**
## В процессе перевода:
* credits.dat
* camp_note3.dat
* castle.dat
**Not translated:**
## Не переведены:
* breach.dat
* camp_note4.dat
* campfireguy3.dat
@ -40,19 +54,26 @@
* later.dat
* quietguy.dat
## Непонятно
# Известные баги
* При получении нового уровня названия карточек (_'HEALTH +1', 'ATTACK +1', 'DEFENCE +1'_)
перестали отображаться, если в строке содержаться русские символы.
# Непонятно
* Slow - как правильно перевести в контексте бата со счётчиком?!
* Scroll of Identify
* Scroll of Identify - Свиток идентификации?
* Unholy - строка есть, но перевод из неё не подтягивается
* Vapid - Плоский Круглый щит?
* Heater Shield - Нагревательный щит?!
## Строки, которые не переводятся
**UI**
# Строки, которые не переводятся
## UI
* Limit FPS `Лимит FPS`
* VSync `Вертикальня синхронизация`
* Advanced Graphics Options (заголвок окна настроек)
* Level (в инвентаре)
* Gold (в инвентаре) (`gfx.GlRenderer.GoldText`)
* {0} to {1} dmg
* {0} AC
* Current: {0} (на экране распределение скилл поинтов)
@ -62,16 +83,18 @@
* Manage mods (menu window)
* ATTACK, MAP, DROP, etc (mouse button action)
**Actions**
## Actions
* _(Floors names)_
* A secret had been ...!
* Enter the Pit
* READ `(Прочесть)`
* Enchanted (на предмете после использования свитка зачарования)
* Buy for {0} Gold (in shop)
* [Yes] and [No] button (in the shop)
* USE (lever)
* It's doesn't budge (open big door in Lost City)
**Items**
## Items
* Scroll of Blizzard (возможно scroll of Freezing)
* Scroll of Levitate
* Scribbled Note
@ -86,11 +109,14 @@
* Arrows
* Greater Ice wand (Строка есть, но перевод не тянется) `(Большой ледяной жезл)`
* Enchanted (parameter)
* SKULL, BONES (CAPS) (found in Pit)
* Numidor (item type)
* Rathorian Shield
**Chars**
## Chars
* PET `(ПИТОМЕЦ) or (СОБАКА)`
**Castle note**
## Castle note
> We've found some intact libraries but the intact books are written in something that looks like Oldhand, translation will be slow going.
Что значит Oldhand?

View File

@ -1,7 +1,23 @@
# Russian language pack for [Delver](http://www.delvergame.com/) game
![Delver](docs/_media/logo.png)
![Delver](delver-pack-ru-ru/modPreview.png)
![](https://img.shields.io/steam/release-date/1748324216?style=for-the-badge) ![](https://img.shields.io/steam/size/1748324216?style=for-the-badge) ![](https://img.shields.io/steam/update-date/1748324216?style=for-the-badge)
# ВНИМАНИЕ
Перевод ещё не закончен! :smirk:
Разработчик очень плохо реализовал локализацию.
В данный момент стоит задача перевести все строки которые доступны в виде файлов,
а уже потом, когда игра будет закончена перевести захардкоренные в коде строки.
Дело в том, что движок игры использует не все строки из файлов, это косяк разработчика.
Перевод выполняется посредством нахождения английских строк прямо во время игры.
Если строка не переводится через файлы локализации об этом делается заметка
и автору игры потом будет отправлен репорт со всеми такими строками.
[![Подписаться в Steam](https://img.shields.io/badge/Подписаться-Steam-blue?style=for-the-badge)](https://steamcommunity.com/sharedfiles/filedetails/?id=1748324216)
# Инструкция по сборке вручную
See [CONTRIBUTE.md](CONTRIBUTE.md).

View File

@ -1,3 +0,0 @@
[ ] Поменять `Ч` и `Ц` местами.
[ ] Cкрипт для формирования директории мода
[ ] Add GitHub cover

17
check_md5sum_data.py Normal file
View File

@ -0,0 +1,17 @@
import os
import hashlib
from glob import glob
from pathlib import Path
import json
if __name__ == '__main__':
data_sums = json.loads(Path('dataSums.json').read_text())
data_sums_new = json.loads(Path('dataSums.new.json').read_text())
for file in data_sums:
try:
if (data_sums[file] != data_sums_new[file]):
print('{file} updated.'.format(file=file))
except KeyError as e:
print('{file} added.'.format(file=file))

49
dataSums.json Normal file
View File

@ -0,0 +1,49 @@
{
"./delver/data/animations.dat" : "25184b283a4a7e82fb77a6f0eff1db3b",
"./delver/data/dungeons-testing.dat" : "78f4db6aca19d59bb8643e328e9b20e2",
"./delver/data/entities.dat" : "ef0bb391dc286b952d99b515cb57ef68",
"./delver/data/game.dat" : "3eaf830951535e154bd9148bbad78710",
"./delver/data/hud.dat" : "3977484c8f3c0e45e0e63d8565b9bf1e",
"./delver/data/items.dat" : "cc28507bfe57e13f5f88edf4881728cf",
"./delver/data/monsters.dat" : "8d374aed5f687a242ded1aae586ee987",
"./delver/data/player.dat" : "23690b91201c5974a3f11b08bd36d121",
"./delver/data/quests.dat" : "9168f2c2638b20034a10cb568e71d0ca",
"./delver/data/shaders.dat" : "a093fe0fd9ad45ff4e566fa6565282f7",
"./delver/data/splash.dat" : "375fff616526dac035e1c5972a5f0edb",
"./delver/data/spritesheets.dat" : "893f1415f9202c98af9a4026a7af97ab",
"./delver/data/strings.dat" : "b2b38c1f2cef6832b1087ba6463f3c2e",
"./delver/data/tiles.dat" : "df3f34c61643564c35aceb5c39d54b50",
"./delver/data/walltextures.dat" : "65b73dee3d5d742449bf7f5d9b685f42",
"./delver/data/messages/breach.dat" : "99740a7c9b1bbd685e5f3bbb863cf1a2",
"./delver/data/messages/camp-note1.dat" : "df73818cedb442faaee69e58483451a0",
"./delver/data/messages/camp-note2.dat" : "d3d0362c388e66a76e7edb23be2c907f",
"./delver/data/messages/camp-note3.dat" : "9bea006954147360747ef3fa8ca8d739",
"./delver/data/messages/camp-note4.dat" : "e8afb0bfa1b375aa075135acc62cceb8",
"./delver/data/messages/campfireguy.dat" : "06edcef63c6dd9424d4514820c9b0f59",
"./delver/data/messages/campfireguy2.dat" : "528dc7800bd770d6f0b3e8ab89f457c6",
"./delver/data/messages/campfireguy3.dat" : "244e8687721ec79e4e36be0a9d08fcd8",
"./delver/data/messages/campfireguy4.dat" : "638126f8c7cefd9ec2cea4ebd4f79945",
"./delver/data/messages/campfireguy5.dat" : "e73900305843948d70f98372ec1dce3f",
"./delver/data/messages/credits.dat" : "637404d81ab5f2e2ca31dea69e0d7f34",
"./delver/data/messages/end.dat" : "a0a2b5dd828e1c26dbcf41042d4cd301",
"./delver/data/messages/headstone.dat" : "b8c1e2ecbe78c512049a29e774711ab4",
"./delver/data/messages/hoodie.dat" : "97450566a414cc2e95fb7116b2930c2f",
"./delver/data/messages/hoodie2.dat" : "a952756589179c731122d7b49e52af79",
"./delver/data/messages/hoodie_sewer.dat" : "7cfa7884c6854c71bc0ef81d25f7a5d6",
"./delver/data/messages/jeff.dat" : "963c2d52e8fdc403057afeab88de5ff4",
"./delver/data/messages/jeff2.dat" : "f57f539ebb52ba7474267810e83efa07",
"./delver/data/messages/jeff3.dat" : "d01774b130930895adef2558d49136e4",
"./delver/data/messages/joff.dat" : "1d013c35b750c4af7109f5d3ee4aded5",
"./delver/data/messages/joff2.dat" : "408791c07a5c56f384cf77f15e088275",
"./delver/data/messages/joff3.dat" : "14fe045ef12e659ca170919e1cddf782",
"./delver/data/messages/later.dat" : "4e47297322ef9bd796b063f89025a8dc",
"./delver/data/messages/quietguy.dat" : "d19aff8e00203e44fa44069a2820d056",
"./delver/data/messages/tutorial_note1.dat" : "071d7e9268294af6815877e5ca8f7572",
"./delver/data/messages/wizard.dat" : "661696bae118a76225fb486f1e39eb09",
"./delver/data/messages/wizard2.dat" : "764c7a4faa69ce4d1517b1f366d5c090",
"./delver/data/messages/dungeonNotes/castle.dat" : "3ce9ed3a123ff34dc37042972985b0eb",
"./delver/data/room-builders/cave_rooms.dat" : "aa1eecbc4a99df22e52df970de71c10a",
"./delver/data/room-builders/dungeon_rooms.dat" : "7557c6e083e1228bb266184559d5c547",
"./delver/data/room-builders/sewer_rooms.dat" : "0046bcf75f2cec5f35c178d4ccf14008",
"./delver/data/room-builders/temple_rooms.dat" : "fe6c51c89072e2b80568633aca03c3fa"
}

View File

@ -1,5 +1,5 @@
{
messages: [
"messages": [
[
"We're doomed. There was sound and shaking unlike anything I can describe and a wave of heat that blistered exposed skin.",
"Now we're trapped. The main paths up to the city are covered in rock... I don't know how we can survive down here much longer.",

View File

@ -1,6 +1,6 @@
{
repeats: true,
messages: [
"repeats": true,
"messages": [
[
"Это именно то место, как они рассказывали. Похоже на руины старой империи магов. Во всяком случае, судя по тому, что осталось.",
"Ходят слухи, что в своем постоянном стремлении к большей власти они сами себя здесь погубили. Я говорю, больше для нас. -N"

View File

@ -1,10 +1,9 @@
{
repeats: true,
messages: [
"repeats": true,
"messages": [
[
"Заметки о битве, Третье издание
1: Целенаправленная атака всегда будет эффективнее. В бою даже небольшое планирование имеет большое значение.",
"Заметки о битве, Третье издание",
"1: Целенаправленная атака всегда будет эффективнее. В бою даже небольшое планирование имеет большое значение.",
"(сфокусируйте атаку, удерживая нажатой кнопку атаки до полной зарядки, а затем отпустите)",
"2: Прежде чем броситься в бой, осмотрите свои вещи. Наденьте на пояс все необходимое для быстрого доступа в бою.",
"(перетащите предметы на пояс в верхней части экрана для быстрого доступа к ним)",

View File

@ -1,6 +1,6 @@
{
repeats: true,
messages: [
"repeats": true,
"messages": [
[
"Остальные вошли внутрь, вопреки моим доводам действовать осторожнее. Я боюсь самого худшего. Единственное, что теперь остается, - это ждать их возвращения.",
"От остальных пока ничего не слышно, но я пытаюсь продолжить учебу в их отсутствие. Пока что здесь ничего не наблюдается, ничего не осталось стабильным."

View File

@ -1,6 +1,6 @@
{
repeats: true,
messages: [
"repeats": true,
"messages": [
[
"This place is perfect! Even more artifacts than I hoped!",
"Getting access to them is going to be difficult though. Maybe we can let these dumb adventurers go collect them for us, and scoop them up off of their valiant corpses."

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Что у нас тут, еще один охотник за сокровищами?",
"Вы меня не слушаете, они никогда не слушают, но для вас лучше всего уйти.",

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Ты вернулся! В тебе есть нечто большее, чем кажется.",
"Судя по нашим записям, жители этого места экспортировали уникальный кристалл, и этот бизнес сделал их чрезвычайно богатыми.",

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Hello again. It's been awhile... and I must say that I feared the worst.",
"While you are here, I can catch you up on our research.",

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Somehow, you always manage to return to us.",
"I've been doing more research in your absence, with some intriguing findings.",

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Well well. Welcome back to us, delver.",
"Doing any more of your scholarly research at swordpoint?",

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"A game by Chad Cuddigan",
"and Joshua Skelton"
@ -53,14 +53,14 @@
"But most importantly, you!"
],
[
"Thanks for playing! <",
"Thanks for playing! <"
],
[
"Перевод",
"Alexander Popov @ iiiypuk"
],
[
"",
""
],
[
"The dungeon is becoming angrier..."

View File

@ -1,7 +1,7 @@
{
repeats: true,
pickRandom: true,
messages: [
"repeats": true,
"pickRandom": true,
"messages": [
[
"Matz, things further inside the ruins seem to be intact - it's just as we hoped! The location is off from where the old maps said that the mage king's tower would,",
"and only the lower floors and basements are left intact, but all of the things we're finding indicate that this is indeed the place."

View File

@ -1,6 +1,6 @@
{
repeats: true,
messages: [
"repeats": true,
"messages": [
[
"Now you have walked the paths of the many, and learned much. You have seen a multitude of futures that could have been.",
"Where is here? Or when? The Yithidians learned to warp and mix the planes of existence.",

View File

@ -1,5 +1,5 @@
{
messages: [
"messages": [
[
"Надпись слишком потерта, чтобы ее разобрать."
],

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Аааа ... похоже у нас посетитель. Да.",
"Он не похож на путника глубоких дорог... но он не в плену, как другие здесь, не так ли? Как любопытно.",

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"The traveler is back... Perhaps it is in need of our assistance?",
"We have traveled the multitudes ourselves. I can offer this knowledge, for a price of course."

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Ahhhh... it seems we have met it again.",
"It must be a tenacious thing to make it this far into the earth.",
@ -9,7 +9,7 @@
],
[
"Is it a Guardian? There are stories of fading worlds and those who tried to help them.",
"Unlikely. The energies are wrong. Anyway, does it have need of more stories?",
"Unlikely. The energies are wrong. Anyway, does it have need of more stories?"
],
[
"Ahhh... it returns. Does it have need of more stories?"

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Эй, приятель! Ты встретил моего брата на улице?",
"Я Джефф! 9-е, самое важное правило бизнеса - быть смелым, поэтому я управляю нашей новой точкой здесь.",

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Эй, приятель! Рад тебя видеть!",
"Не ругайся, но приятно видеть кого-то рядом. В этом месте не так много пешеходного движения.",

View File

@ -1,14 +1,14 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"You again? I didn't expect to see you. Not many return customers around here.",
"To be honest, it's kind of lonely down here...",
"I wish I could talk to Joff again. He always knew what to say. I kind of messed that up though.",
"But there's no way out of here that I've found, could you let me know if you find a way?",
"But there's no way out of here that I've found, could you let me know if you find a way?"
],
[
"There's no way out of here that I've found, could you let me know if you find a way?",
"There's no way out of here that I've found, could you let me know if you find a way?"
]
]
}

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Эй, авантюрист! Ты собираешься отправиться в эти руины? Это опасно!",
"На вашем месте я бы хотел запастись припасами перед тем, как отправиться в это место ..",

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Эй, авантюрист, разве не ты заходил в эти руины?",
"В любом случае, с возвращением! Тебе лучше запастись, пока ты здесь."

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Hey... Did you ever run into my brother while you were down there?",
"We had a bit of a falling out... and he decided to try his luck inside.",

View File

@ -1,6 +1,6 @@
{
repeats: true,
messages: [
"repeats": true,
"messages": [
[
"It has done well to find us. The place is right, but the time is not.",
"This place... it is not where things started, but it is here where they were given shape.",

View File

@ -1,6 +1,6 @@
{
repeats: true,
messages: [
"repeats": true,
"messages": [
[
" ..."
]

View File

@ -1,6 +1,6 @@
{
repeats: true,
messages: [
"repeats": true,
"messages": [
[
"- четыре дня на северо-запад, вверх по старой горной тропе\n- овраг в конце озера, статуи и руины\n- покупатель вернулся в Кир?"
]

View File

@ -1,11 +1,11 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"Привет, путник. Я не видел, как вы сюда прибыли.",
"Привет, путник. Я не видел, как ты сюда прибыл.",
"Это место всегда было маяком для тех, кто правильно настроен. Ты тоже это чувствуешь?"
"Для более склонных к магии, таких как я, это отличное место, чтобы зачаровать свитки и артефакты.",
"У меня есть несколько свитков, с которыми я мог бы расстаться за хорошую цену. В противном случае, пожалуйста, позвольте мне вернуться к медитации."
"У меня есть несколько свитков, с которыми я мог бы расстаться за хорошую цену. В противном случае, пожалуйста, позволь мне вернуться к медитации."
],
[
"У меня есть еще несколько свитков, с которыми я мог бы расстаться за хорошую цену."

View File

@ -1,6 +1,6 @@
{
repeats: false,
messages: [
"repeats": false,
"messages": [
[
"С возвращением.",
"У меня приготовлено еще несколько свитков, если вам нужно какое-то тайное вмешательство."

View File

@ -1,4 +1,5 @@
{
"$schema": "http://delverengine.com/jsonschema/current/filetypes/strings.dat",
"screens.SplashScreen.pressKeyToStart": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Нажмите любую клавишу",
@ -24,6 +25,16 @@
"localizedName": "Настройки",
"comment": "Text for the options button, which will open the options menu."
},
"screens.MainMenuScreen.modsButton": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Модификации",
"comment": "Text for the mods button, which will open the mods menu."
},
"screens.MainMenuScreen.discordButton": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Discord",
"comment": "Text for the Discord button, which will open a web browser."
},
"screens.MainMenuScreen.selectSaveSlot": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Выберите слот сохранениия",
@ -76,17 +87,17 @@
},
"screens.OptionsScreen.graphicsLow": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "LOW",
"localizedName": "НИЗКАЯ",
"comment": "Text shown when graphics slider is all the way left."
},
"screens.OptionsScreen.graphicsMedium": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "ЗАГУЗКА",
"localizedName": "СРЕДНЯЯ",
"comment": "Text show when the graphics slider is in the middle."
},
"screens.OptionsScreen.graphicsHigh": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "ВЫСОКИЕ",
"localizedName": "ВЫСОКАЯ",
"comment": "Text shown when the graphics slider is mostly right."
},
"screens.OptionsScreen.graphicsUltra": {
@ -129,11 +140,21 @@
"localizedName": "Размер UI ",
"comment": "Label for UI size slider."
},
"screens.OptionsScreen.handLagLabel": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Hand Lag ",
"comment": "Label for hand lag slider."
},
"screens.OptionsScreen.showHudLabel": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Отображать HUD",
"comment": "Label for UI size slider."
},
"screens.OptionsScreen.showCrosshairLabel": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Всегда отображать прицел",
"comment": "Label for always show crosshair checkbox."
},
"screens.OptionsScreen.headBobLabel": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Head Bob ",
@ -461,7 +482,7 @@
},
"screens.GameOverScreen.secretsStatLabel": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Найдено секретов: ",
"localizedName": "НАЙДЕНО СЕКРЕТОВ: ",
"comment": ""
},
"overlays.LevelUpOverlay.levelUpLabel": {
@ -474,34 +495,39 @@
"localizedName": "Выбери свою судьбу",
"comment": ""
},
"overlays.LevelUpOverlay.currentStatValueLabel": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Current: {0}",
"comment": "Text shown on level up card. {0} is the value of the stat."
},
"overlays.LevelUpOverlay.ATTACK": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "АТАКА +1",
"localizedName": "+1 ATTACK",
"comment": "Shown at the top of the level up card."
},
"overlays.LevelUpOverlay.SPEED": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "СКОРОСТЬ +1",
"localizedName": "+1 SPEED",
"comment": "Shown at the top of the level up card."
},
"overlays.LevelUpOverlay.HEALTH": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "ЗДОРОВЬЕ +1",
"localizedName": "+1 HEALTH",
"comment": "Shown at the top of the level up card."
},
"overlays.LevelUpOverlay.MAGIC": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "МАГИЯ +1",
"localizedName": "+1 MAGIC",
"comment": "Shown at the top of the level up card."
},
"overlays.LevelUpOverlay.AGILITY": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "ЛОВКОСТЬ +1",
"localizedName": "+1 AGILITY",
"comment": "Shown at the top of the level up card."
},
"overlays.LevelUpOverlay.DEFENSE": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "ЗАЩИТА +1",
"localizedName": "+1 DEFENSE",
"comment": "Shown at the top of the level up card."
},
"overlays.MessageOverlay.nextButton": {
@ -514,6 +540,11 @@
"localizedName": "CLOSE",
"comment": "Text for the close button on the message overlay."
},
"overlays.ModsOverlay.backButton": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Закрыть",
"comment": "Text for the back button mod manager."
},
"overlays.PauseOverlay.backButton": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Вернуться",
@ -601,7 +632,7 @@
},
"entities.Door.opensElsewhereText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "MUST OPEN\nELSEWHERE",
"localizedName": "ЭТО ДОЛЖНО ОТКРЫВАТЬСЯ\nВ ДРУГОМ МЕСТЕ",
"comment": "Text shown when a door is stuck shut and must be opened through a trigger."
},
"entities.Door.openUseText": {
@ -676,7 +707,7 @@
},
"entities.Item.modificationInfoAgilityText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Agility",
"localizedName": "Ловкость",
"comment": ""
},
"entities.Item.modificationInfoDefenseText": {
@ -736,7 +767,7 @@
},
"entities.Stairs.mobileUseText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "USE {0}",
"localizedName": "ИСПОЛЬЗОВАТЬ {0}",
"comment": "Text shown on a mobile device. {0} is the direction (Up/Down)."
},
"entities.Stairs.direction.UP": {
@ -751,12 +782,12 @@
},
"entities.Trigger.defaultUseVerb": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "USE",
"localizedName": "ИСПОЛЬЗОВАТЬ",
"comment": ""
},
"entities.Trigger.mobileUseText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "USE",
"localizedName": "ИСПОЛЬЗОВАТЬ",
"comment": "Text shown on a mobile device instead of a key binding."
},
"entities.Trigger.useText": {
@ -766,12 +797,12 @@
},
"game.Game.errorLoadingDataText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "ERROR LOADING {0}",
"localizedName": "ОШИБКА ЗАГРУЗКИ {0}",
"comment": "Text shown when a resource fails to load. {0} is the name of the file."
},
"game.Game.startingPantsNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Pants",
"localizedName": "Брюки",
"comment": "The name of the pants the player starts the game with."
},
"game.Game.cannotLeaveText": {
@ -781,12 +812,12 @@
},
"game.Game.loadErrorText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "LOAD ERROR",
"localizedName": "ОШИБКА ЗАГРУЗКИ",
"comment": "Text shown when something unexpected has happened during level load."
},
"game.Game.levelNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "FLOOR {0}",
"localizedName": "ЭТАЖ {0}",
"comment": "Text shown for the floor name. This is a fallback if no name is provided."
},
"gfx.GlRenderer.AttackText": {
@ -796,7 +827,7 @@
},
"gfx.GlRenderer.ArmorClassText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "AC: {0}",
"localizedName": "ЗАЩ: {0}",
"comment": "Text shown on the inventory screen for player's defense values."
},
"gfx.GlRenderer.LevelText": {
@ -836,7 +867,7 @@
},
"input.ReadableKeys.keyNames.APOSTROPHE": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "APOSTROPHE",
"localizedName": "АПОСТРОФ",
"comment": "Label for key bind key."
},
"input.ReadableKeys.keyNames.AT": {
@ -1556,17 +1587,17 @@
},
"items.Food.defaultNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Food",
"localizedName": "Еда",
"comment": ""
},
"items.Food.eatFoodText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Yum",
"localizedName": "Ням",
"comment": ""
},
"items.Food.drinkBoozeText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "You feel warm",
"localizedName": "Стало тепло",
"comment": ""
},
"items.Food.infoText": {
@ -1586,17 +1617,17 @@
},
"items.Gun.defaultNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "GUN",
"localizedName": "ОРУЖИЕ",
"comment": ""
},
"items.Gun.infoText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "{0} AMMO",
"localizedName": "{0} БОЕПРИПАСОВ",
"comment": ""
},
"items.ItemStack.defaultNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "STACK",
"localizedName": "КУЧА",
"comment": ""
},
"items.ItemStack.infoText": {
@ -1611,7 +1642,7 @@
},
"items.Missile.noRoomText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "NO ROOM",
"localizedName": "НЕТ МЕСТА",
"comment": "Text shown when attempting to pick up a missile when the inventory is full."
},
"items.Note.ellipsisText": {
@ -1621,17 +1652,17 @@
},
"items.Potion.defaultNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Potion",
"localizedName": "Зелье",
"comment": "Default name for a potion if none is defined."
},
"items.Potion.healDisplayText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "You feel better",
"localizedName": "Вы чувствуете себя лучше",
"comment": "Text shown when potion is drank."
},
"items.Potion.poisonDisplayText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "It burns!",
"localizedName": "Оно горит!",
"comment": "Text shown when potion is drank."
},
"items.Potion.maxHealDisplayText": {
@ -1646,17 +1677,17 @@
},
"items.Potion.magicShieldDisplayText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "You feel arcane",
"localizedName": "Вы чувствуете тайну",
"comment": "Text shown when potion is drank."
},
"items.Potion.magicShieldStatusEffectNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Magic Shield",
"localizedName": "Магический щит",
"comment": "Text shown in the status display for the effect."
},
"items.Potion.ironSkinDisplayText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "You feel numb",
"localizedName": "Вы чувствуете онемение",
"comment": "Text shown when potion is drank."
},
"items.Potion.ironSkinStatusEffectNameText": {
@ -1666,7 +1697,7 @@
},
"items.Potion.paralyzeDisplayText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "You feel stuck",
"localizedName": "Вы чувствуете себя парализованным",
"comment": "Text shown when potion is drank."
},
"items.Potion.discoverDisplayText": {
@ -1681,12 +1712,12 @@
},
"items.Potion.healingNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Healing",
"localizedName": "Лечения",
"comment": ""
},
"items.Potion.poisonNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Poison",
"localizedName": "Отравления",
"comment": ""
},
"items.Potion.restorationNameText": {
@ -1701,7 +1732,7 @@
},
"items.Potion.magicShieldNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Resist Magic",
"localizedName": "Сопротивление магии",
"comment": ""
},
"items.Potion.ironSkinNameText": {
@ -1711,7 +1742,7 @@
},
"items.Potion.paralyzeNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Paralyzation",
"localizedName": "Паралич",
"comment": ""
},
"items.Potion.unknownNameText": {
@ -1726,7 +1757,7 @@
},
"items.QuestItem.noRoomText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "NO ROOM",
"localizedName": "НЕТ МЕСТА",
"comment": "Text shown when attempting to pick up the orb and the inventory is full."
},
"items.QuestItem.gotItemText": {
@ -1746,7 +1777,7 @@
},
"items.Wand.defaultNameText": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Wand",
"localizedName": "Жезл",
"comment": ""
},
"items.Wand.infoText": {
@ -2101,12 +2132,12 @@
},
"Ring mail": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Ring mail",
"localizedName": "Кольчуга",
"comment": ""
},
"Ring mail greaves": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Ring mail greaves",
"localizedName": "Кольчужные поножи",
"comment": ""
},
"Iron pot": {
@ -2291,12 +2322,12 @@
},
"Storm wand": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Storm wand",
"localizedName": "Штормовой жезл",
"comment": ""
},
"Paralyze wand": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Paralyze wand",
"localizedName": "Парализующий жезл",
"comment": ""
},
"Red potion": {
@ -2351,12 +2382,12 @@
},
"scroll of Blizzard": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "свиток вьюги",
"localizedName": "Свиток вьюги",
"comment": ""
},
"scroll of Freezing": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "свиток замораживания",
"localizedName": "Свиток замораживания",
"comment": ""
},
"Scroll of Health": {
@ -2396,7 +2427,7 @@
},
"Scroll of Discern Reality": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Scroll of Discern Reality",
"localizedName": "Свиток прояснения реальности",
"comment": ""
},
"Skull": {
@ -2491,22 +2522,22 @@
},
"of Burning": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "of Burning",
"localizedName": "горения",
"comment": ""
},
"of Ice": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "of Ice",
"localizedName": "холода",
"comment": ""
},
"of Blizzard": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "of Blizzard",
"localizedName": "вьюги",
"comment": ""
},
"of Paralyze": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "of Paralyze",
"localizedName": "паралича",
"comment": ""
},
"of the Arcane": {
@ -2516,17 +2547,17 @@
},
"of Storm": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "of Storm",
"localizedName": "бури",
"comment": ""
},
"of the Tempest": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "of the Tempest",
"localizedName": "бури",
"comment": ""
},
"of the Worm": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "of the Worm",
"localizedName": "червя",
"comment": ""
},
"Quick": {
@ -2586,17 +2617,17 @@
},
"Unwieldly": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Unwieldly",
"localizedName": "Громоздкий",
"comment": ""
},
"Coward's": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Coward's",
"localizedName": "Трусливый",
"comment": ""
},
"Drunk's": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Drunk's",
"localizedName": "Пьяный",
"comment": ""
},
"Demon's": {
@ -2606,22 +2637,22 @@
},
"Fighter's": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Fighter's",
"localizedName": "Бойцовский",
"comment": ""
},
"Brawler's": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Brawler's",
"localizedName": "Драчунский",
"comment": ""
},
"Knight's": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Knight's",
"localizedName": "Рыцарский",
"comment": ""
},
"King's": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "King's",
"localizedName": "Королевский",
"comment": ""
},
"of the Sloth": {
@ -2736,17 +2767,17 @@
},
"screens.CharacterScreen.tooltips.attack power": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Total amount of damage done for melee and ranged weapons.",
"localizedName": "Общее количество урона, наносимого оружием ближнего и дальнего боя.",
"comment": ""
},
"screens.CharacterScreen.tooltips.armor class": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Total amount of defense, reduces amount of damage taken when hit.",
"localizedName": "Общее количество защиты, уменьшает количество урона, получаемого при попадании.",
"comment": ""
},
"screens.CharacterScreen.tooltips.level": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Increases maximum health points, increases attack power, and gives a chance to increase stats.",
"localizedName": "Увеличивает максимальное количество очков здоровья, увеличивает силу атаки и дает шанс повысить характеристики.",
"comment": ""
},
"screens.CharacterScreen.tooltips.xp": {
@ -2756,7 +2787,7 @@
},
"screens.CharacterScreen.tooltips.gold": {
"class": "com.interrupt.dungeoneer.game.LocalizedString",
"localizedName": "Can be spent at vendors for items and upgrades. Persists between deaths.",
"localizedName": "Можно потратить у продавцов на предметы и улучшения. Сохраняется между смертями.",
"comment": ""
},
"stats.xp": {

View File

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

View File

View File

@ -1,7 +0,0 @@
![Delver](docs/_media/logo.png)
# Русификатор [Delver](http://www.delvergame.com/)
# ВНИМАНИЕ
Перевод ещё не закончен! :smirk:
[![Подписаться в Steam](https://img.shields.io/badge/Подписаться-Steam-blue?style=for-the-badge)](https://steamcommunity.com/sharedfiles/filedetails/?id=1748324216)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -1,31 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Русификатор Delver</title>
<link rel="icon" href="_media/favicon.ico" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css">
</head>
<body>
<div id="app">Пожалуйста, подождите...</div>
<script>
window.$docsify = {
name: 'Русификатор Delver',
basePath: 'https://iiiypuk.github.io/delver-pack-ru-ru/',
repo: 'https://github.com/iiiypuk/delver-pack-ru-ru',
coverpage: true,
onlyCover: true,
loadNavbar: true,
mergeNavbar: true,
loadSidebar: true,
subMaxLevel: 2,
auto2top: true
}
</script>
<!-- Docsify v4 -->
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
</body>
</html>

32
generate_md5sum_data.py Normal file
View File

@ -0,0 +1,32 @@
import os
import hashlib
from glob import glob
from pathlib import Path
import json
DELVER_PATH = './delver/'
def get_files_list(path):
"""Return *.dat files in directory and subdirectories"""
files = [y for x in os.walk(DELVER_PATH) for y in glob(os.path.join(x[0], '*.dat'))]
files_with_norm_path = list()
for file in files:
files_with_norm_path.append(file.replace(os.sep, '/'))
return files_with_norm_path
def calc_md5(file_path):
"""Return files MD5 sum"""
filebytes = Path(file_path).read_bytes()
md5sum = hashlib.md5(filebytes)
return md5sum.hexdigest()
if __name__ == '__main__':
files = get_files_list('./')
print('{')
for file in files:
print('"{path}" : "{sum}",'.format(
path=file, sum=calc_md5(file)))
print('}')

View File

@ -1,5 +0,0 @@
{
"dependencies": {
"docsify-cli": "^4.4.2"
}
}