Page MenuHomePhabricator (Chris)

No OneTemporary

Authored By
Unknown
Size
218 KB
Referenced Files
None
Subscribers
None
diff --git a/data/levelpacks/classic/locale/ru.po b/data/levelpacks/classic/locale/ru.po
index 988f5e0..47cdf9e 100644
--- a/data/levelpacks/classic/locale/ru.po
+++ b/data/levelpacks/classic/locale/ru.po
@@ -1,126 +1,126 @@
# 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 <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-04-01 17:56+0300\n"
"PO-Revision-Date: 2018-09-29 21:34+0000\n"
"Last-Translator: mesnevi <shams@airpost.net>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/me-and-my-shadow/"
"levels-classic/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
"(n%100>=11 && n%100<=14)? 2 : 3);\n"
"X-Generator: Weblate 3.2-dev\n"
#: classic\Tower.map:1
msgid "Tower"
msgstr "Башня"
#: classic\Credits.map:1
msgid "Credits"
msgstr "Благодарности"
#: classic\Lab.map:1
msgid "Lab"
msgstr "Лаборатория"
#: classic\Shadow.map:1
msgid "Shadow"
msgstr "Тень"
#: classic\ShadowBlocks.map:1
msgid "ShadowBlocks"
msgstr "Блоки для тени"
#: classic\levels.lst:1
msgid "classic"
msgstr "классический"
#: classic\Timing.map:1
msgid "Timing"
msgstr "На время"
#: classic\FreeFall.map:1
msgid "FreeFall"
msgstr "Свободное падение"
#: classic\SomeSpikes.map:1
msgid "SomeSpikes"
msgstr "Немножко шипов"
#: classic\BabySteps.map:1
msgid "BabySteps"
msgstr "Первые шаги"
#: classic\Tricky.map:1
msgid "Tricky"
msgstr "С подвохом"
#: classic\Road.map:1
msgid "Road"
msgstr "Дорога"
#: classic\Jumper.map:1
msgid "Jumper"
msgstr "Прыгун"
#: classic\FirstSpikes.map:1
msgid "FirstSpikes"
msgstr "Первые шипы"
#: classic\Jumping.map:1
msgid "Jumping"
msgstr "Прыг-скок"
#: classic\levels.lst:2
msgid "Default level pack"
msgstr "Набор уровней по умолчанию"
#: classic\LittleHelp.map:1
msgid "LittleHelp"
msgstr "Мало пользы"
#: classic\End.map:1
msgid "End"
msgstr "Конец"
#: classic\FreeFall2.map:1
msgid "FreeFall2"
msgstr "Свободное падение-2"
#: classic\Control.map:1
msgid "Control"
msgstr "Контроль"
#: classic\UpDown.map:1
msgid "UpDown"
msgstr "Вверх-вниз"
#: classic\Spiky.map:1
msgid "Spiky"
-msgstr "Колючий"
+msgstr "Шипастый"
#: classic\Here.map:1
msgid "Here"
msgstr "Здесь"
#: classic\Carry.map:1
msgid "Carry"
msgstr "Ноша"
#: classic\LeftRight.map:1
msgid "LeftRight"
msgstr "Влево-вправо"
#: classic\Headache.map:1
msgid "Headache"
msgstr "Неприятность"
diff --git a/data/levelpacks/classic/locale/ru.po b/data/levelpacks/classic/locale/uk.po
similarity index 57%
copy from data/levelpacks/classic/locale/ru.po
copy to data/levelpacks/classic/locale/uk.po
index 988f5e0..b1651de 100644
--- a/data/levelpacks/classic/locale/ru.po
+++ b/data/levelpacks/classic/locale/uk.po
@@ -1,126 +1,125 @@
# 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 <EMAIL@ADDRESS>, YEAR.
#
+#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-04-01 17:56+0300\n"
-"PO-Revision-Date: 2018-09-29 21:34+0000\n"
-"Last-Translator: mesnevi <shams@airpost.net>\n"
-"Language-Team: Russian <https://hosted.weblate.org/projects/me-and-my-shadow/"
-"levels-classic/ru/>\n"
-"Language: ru\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Jz Pan <acme.pjz@gmail.com>, 2018\n"
+"Language-Team: Ukrainian (https://www.transifex.com/acmepjz/teams/88148/uk/)\n"
+"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
-"(n%100>=11 && n%100<=14)? 2 : 3);\n"
-"X-Generator: Weblate 3.2-dev\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
+"%100>=11 && n%100<=14)? 2 : 3);\n"
#: classic\Tower.map:1
msgid "Tower"
-msgstr "Башня"
+msgstr "Вежа"
#: classic\Credits.map:1
msgid "Credits"
-msgstr "Благодарности"
+msgstr "Подяки"
#: classic\Lab.map:1
msgid "Lab"
-msgstr "Лаборатория"
+msgstr "Лабораторія"
#: classic\Shadow.map:1
msgid "Shadow"
-msgstr "Тень"
+msgstr "Тінь"
#: classic\ShadowBlocks.map:1
msgid "ShadowBlocks"
-msgstr "Блоки для тени"
+msgstr "Блоки для тіні"
#: classic\levels.lst:1
msgid "classic"
-msgstr "классический"
+msgstr "класика"
#: classic\Timing.map:1
msgid "Timing"
-msgstr "На время"
+msgstr "На швидкість"
#: classic\FreeFall.map:1
msgid "FreeFall"
-msgstr "Свободное падение"
+msgstr "Вільне падіння"
#: classic\SomeSpikes.map:1
msgid "SomeSpikes"
-msgstr "Немножко шипов"
+msgstr "Трохи шипів"
#: classic\BabySteps.map:1
msgid "BabySteps"
-msgstr "Первые шаги"
+msgstr "Перші кроки"
#: classic\Tricky.map:1
msgid "Tricky"
-msgstr "С подвохом"
+msgstr "Хитромудрий"
#: classic\Road.map:1
msgid "Road"
-msgstr "Дорога"
+msgstr "Шлях"
#: classic\Jumper.map:1
msgid "Jumper"
-msgstr "Прыгун"
+msgstr "Стрибунець"
#: classic\FirstSpikes.map:1
msgid "FirstSpikes"
-msgstr "Первые шипы"
+msgstr "Перші шипи"
#: classic\Jumping.map:1
msgid "Jumping"
-msgstr "Прыг-скок"
+msgstr "Стрибки"
#: classic\levels.lst:2
msgid "Default level pack"
-msgstr "Набор уровней по умолчанию"
+msgstr "Звичайна збірка рівнів"
#: classic\LittleHelp.map:1
msgid "LittleHelp"
-msgstr "Мало пользы"
+msgstr "Трохи допомоги"
#: classic\End.map:1
msgid "End"
-msgstr "Конец"
+msgstr "Кінець"
#: classic\FreeFall2.map:1
msgid "FreeFall2"
-msgstr "Свободное падение-2"
+msgstr "Вільне падіння - 2"
#: classic\Control.map:1
msgid "Control"
-msgstr "Контроль"
+msgstr "Керування"
#: classic\UpDown.map:1
msgid "UpDown"
-msgstr "Вверх-вниз"
+msgstr "Вгору-вниз"
#: classic\Spiky.map:1
msgid "Spiky"
-msgstr "Колючий"
+msgstr "Шипастий"
#: classic\Here.map:1
msgid "Here"
-msgstr "Здесь"
+msgstr "Тут"
#: classic\Carry.map:1
msgid "Carry"
-msgstr "Ноша"
+msgstr "Носій"
#: classic\LeftRight.map:1
msgid "LeftRight"
-msgstr "Влево-вправо"
+msgstr "Ліворуч-праворуч"
#: classic\Headache.map:1
msgid "Headache"
-msgstr "Неприятность"
+msgstr "Головний біль"
diff --git a/data/levelpacks/default/locale/ru.po b/data/levelpacks/default/locale/ru.po
index eb25fe5..a671a83 100644
--- a/data/levelpacks/default/locale/ru.po
+++ b/data/levelpacks/default/locale/ru.po
@@ -1,106 +1,106 @@
# 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 <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-04-01 17:56+0300\n"
"PO-Revision-Date: 2018-09-29 21:34+0000\n"
"Last-Translator: mesnevi <shams@airpost.net>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/me-and-my-shadow/"
"levels-default/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
"(n%100>=11 && n%100<=14)? 2 : 3);\n"
"X-Generator: Weblate 3.2-dev\n"
#: default\Regroup.map:1
msgid "Regroup"
msgstr "Перестройка"
#: default\3.map:1
msgid "Running in the Sky"
msgstr "Беги по небу"
#: default\4.map:1
msgid "Both Up and Down"
-msgstr "Как вверх, так и вниз"
+msgstr "И вверх, и вниз"
#: default\map02.map:1
msgid "Snail"
msgstr "Улитка"
#: default\Towers.map:1
msgid "Towers"
msgstr "Башни"
#: default\map01.map:1
msgid "Simple"
msgstr "Раз плюнуть"
#: default\map04.map:1
msgid "Double trouble"
msgstr "Дважды в дураках"
#: default\levels.lst:1
msgid "default"
msgstr "стандартный"
#: default\Skyscrapers.map:1
msgid "Skyscrapers"
-msgstr "Небоскребы"
+msgstr "Небоскрёбы"
#: default\QuickSwap.map:1
msgid "Quick swap"
msgstr "Мигом"
#: default\5.map:1
msgid "stopping the spikes"
msgstr "Шипам — нет"
#: default\levels.lst:2
msgid "Default"
msgstr "Стандартный"
#: default\Remote.map:1
msgid "Remote control"
msgstr "Дистанционное управление"
#: default\map03.map:1
msgid "Spiky travel"
msgstr "Прогулки по шипам"
#: default\2.map:1
msgid "Tricky Jumping"
-msgstr "Прыг-скок с сюрпризами"
+msgstr "Хитрое прыганье"
#: default\1.map:1
msgid "Building Teamwork"
msgstr "Построй команду"
#: default\Timing.map:1
msgid "Timing"
msgstr "На время"
#: default\Volcano.map:1
msgid "Volcano"
msgstr "Вулкан"
#: default\Sweeper.map:1
msgid "Sweeper"
msgstr "Дворник"
#: default\Switches.map:1
msgid "Switches"
msgstr "Выключатели"
#: default\map05.map:1
msgid "Wall breaking"
msgstr "Ломая стены"
diff --git a/data/levelpacks/default/locale/ru.po b/data/levelpacks/default/locale/uk.po
similarity index 57%
copy from data/levelpacks/default/locale/ru.po
copy to data/levelpacks/default/locale/uk.po
index eb25fe5..216bf29 100644
--- a/data/levelpacks/default/locale/ru.po
+++ b/data/levelpacks/default/locale/uk.po
@@ -1,106 +1,105 @@
# 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 <EMAIL@ADDRESS>, YEAR.
#
+#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-04-01 17:56+0300\n"
-"PO-Revision-Date: 2018-09-29 21:34+0000\n"
-"Last-Translator: mesnevi <shams@airpost.net>\n"
-"Language-Team: Russian <https://hosted.weblate.org/projects/me-and-my-shadow/"
-"levels-default/ru/>\n"
-"Language: ru\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Jz Pan <acme.pjz@gmail.com>, 2018\n"
+"Language-Team: Ukrainian (https://www.transifex.com/acmepjz/teams/88148/uk/)\n"
+"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
-"(n%100>=11 && n%100<=14)? 2 : 3);\n"
-"X-Generator: Weblate 3.2-dev\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
+"%100>=11 && n%100<=14)? 2 : 3);\n"
#: default\Regroup.map:1
msgid "Regroup"
-msgstr "Перестройка"
+msgstr "Перегрупування"
#: default\3.map:1
msgid "Running in the Sky"
-msgstr "Беги по небу"
+msgstr "Небесні мандри"
#: default\4.map:1
msgid "Both Up and Down"
-msgstr "Как вверх, так и вниз"
+msgstr "І вгору, і вниз"
#: default\map02.map:1
msgid "Snail"
-msgstr "Улитка"
+msgstr "Равлик"
#: default\Towers.map:1
msgid "Towers"
-msgstr "Башни"
+msgstr "Вежі"
#: default\map01.map:1
msgid "Simple"
-msgstr "Раз плюнуть"
+msgstr "Просто"
#: default\map04.map:1
msgid "Double trouble"
-msgstr "Дважды в дураках"
+msgstr "Подвійні проблеми"
#: default\levels.lst:1
msgid "default"
-msgstr "стандартный"
+msgstr "звичайний"
#: default\Skyscrapers.map:1
msgid "Skyscrapers"
-msgstr "Небоскребы"
+msgstr "Хмарочоси"
#: default\QuickSwap.map:1
msgid "Quick swap"
-msgstr "Мигом"
+msgstr "Швидка зміна"
#: default\5.map:1
msgid "stopping the spikes"
-msgstr "Шипам — нет"
+msgstr "зупиняючи шипи"
#: default\levels.lst:2
msgid "Default"
-msgstr "Стандартный"
+msgstr "Звичайний"
#: default\Remote.map:1
msgid "Remote control"
-msgstr "Дистанционное управление"
+msgstr "Дистанційне керування"
#: default\map03.map:1
msgid "Spiky travel"
-msgstr "Прогулки по шипам"
+msgstr "Мандрівка шипами"
#: default\2.map:1
msgid "Tricky Jumping"
-msgstr "Прыг-скок с сюрпризами"
+msgstr "Стрибки ізпідвипідвертом"
#: default\1.map:1
msgid "Building Teamwork"
-msgstr "Построй команду"
+msgstr "Побудова командної роботи"
#: default\Timing.map:1
msgid "Timing"
-msgstr "На время"
+msgstr "На швидкість"
#: default\Volcano.map:1
msgid "Volcano"
msgstr "Вулкан"
#: default\Sweeper.map:1
msgid "Sweeper"
-msgstr "Дворник"
+msgstr "Прибиральник"
#: default\Switches.map:1
msgid "Switches"
-msgstr "Выключатели"
+msgstr "Вимикачі"
#: default\map05.map:1
msgid "Wall breaking"
-msgstr "Ломая стены"
+msgstr "Ламаючи стіну"
diff --git a/data/levelpacks/tutorial/locale/ru.po b/data/levelpacks/tutorial/locale/ru.po
index 95bb9c8..3404bea 100644
--- a/data/levelpacks/tutorial/locale/ru.po
+++ b/data/levelpacks/tutorial/locale/ru.po
@@ -1,478 +1,478 @@
# 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 <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-04-01 17:56+0300\n"
"PO-Revision-Date: 2018-09-29 22:36+0000\n"
"Last-Translator: mesnevi <shams@airpost.net>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/me-and-my-shadow/"
"levels-tut/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
"(n%100>=11 && n%100<=14)? 2 : 3);\n"
"X-Generator: Weblate 3.2-dev\n"
#: tutorial\tut12.map:17
msgid "Now you'll need to help your shadow cross.\n"
-msgstr "Теперь надо помочь твоей тени перебраться на ту сторону.\n"
+msgstr "Теперь необходимо помочь тени перебраться на другую сторону.\n"
#: tutorial\tut10.map:19
msgid ""
"You can save your progress in a level with\n"
"checkpoints. You can restore them at any\n"
"time using the F3 button."
msgstr ""
-"Прогресс на уровне можно сохранять\n"
-"в контрольных точках. Чтобы вернуться\n"
-"в точку когда угодно, нажми F3."
+"Прогресс на уровне можно сохранять с помощью\n"
+"чекпоинтов. Чтобы начать сначала,\n"
+"следует нажать клавишу F3."
#: tutorial\tut18.map:14
msgid ""
"This trigger will deactivate the moving block.\n"
"Try to stop it at the right moment.\n"
"You can only do this once, so if it fails you'll\n"
"have to reset the level with the 'R' key."
msgstr ""
"Этот триггер деактивирует движущийся блок.\n"
-"Попытайся остановить его в нужный момент.\n"
+"Необходимо остановить его в подходящий момент.\n"
"Это можно сделать только один раз, поэтому если\n"
-"не получится, придется начать сначала (клавиша 'R')."
+"не получится - придётся перезапустить уровень с помощью клавиши 'R'."
#: tutorial\tut21.map:49
msgid ""
"If your shadow falls down here you will have to restart.\n"
"Press 'R' to restart the level."
msgstr ""
-"Если тень упадёт, придётся начать уровень сначала.\n"
-"Для этого нажми клавишу 'R'."
+"Если тень упадёт, придётся начать уровень сначала\n"
+"с помощью клавиши 'R'."
#: tutorial\levels.lst:1
msgid "tutorial"
msgstr "обучение"
#: tutorial\tut23.map:1
msgid "Collecting Keys"
msgstr "Собери ключи"
#: tutorial\tut10.map:46
msgid "You've chosen the right way."
-msgstr "Верной дорогой идешь, товарищ."
+msgstr "Правильным путём идёте, товарищи."
#: tutorial\tut22.map:1
msgid "Shadow swap"
-msgstr "Поменяйся с тенью"
+msgstr "Поменяться с тенью"
#: tutorial\tut20.map:187
msgid ""
"A dead end, you'd better go back and choose\n"
"the other portal."
msgstr ""
-"Здесь тупик, лучше вернуться назад и выбрать\n"
+"Здесь тупик, следует вернуться назад и выбрать\n"
"другой портал."
#: tutorial\tut03.map:13
msgid ""
"See those gaps over there?\n"
"Reach the finish without falling."
msgstr ""
-"Видишь вон те провалы?\n"
-"Доберись до финиша, не упав."
+"Впереди - пропасти.\n"
+"Нужно добраться до финиша, не упав."
#: tutorial\tut07.map:33
msgid ""
"If your shadow dies you'll have to restart.\n"
"Restart the game by pressing the 'R' key."
msgstr ""
-"Если тень умрет, уровень придется начать сначала.\n"
-"Для этого нажми клавишу 'R'."
+"Если тень умрёт, уровень придётся начать сначала\n"
+"с помощью клавиши 'R'."
#: tutorial\tut02.map:18
msgid ""
"You can jump using the up key.\n"
"Try jumping over these blocks."
msgstr ""
-"Можно прыгать, используя клавишу 'вверх'.\n"
-"Попробуй перепрыгнуть через эти блоки."
+"Придётся перепрыгнуть через эти блоки.\n"
+"Прыгать можно с помощью клавиши 'вверх'."
#: tutorial\tut07.map:1
msgid "Shadow challenge"
msgstr "Испытание тенью"
#: tutorial\tut20.map:1
msgid "Portal mayhem"
msgstr "Суматоха с порталами"
#: tutorial\tut02.map:1
msgid "First jumps"
msgstr "Первые прыжки"
#: tutorial\tut20.map:16
msgid ""
"Portals point to another portal or to nothing.\n"
"Try to reach the exit in this portal mayhem."
msgstr ""
-"Порталы ведут другой портал (или никуда не ведут).\n"
-"Постарайся добраться до выхода через эти дебри."
+"Порталы ведут в другой портал (или на пустое место).\n"
+"Придётся пробираться к выходу через эти дебри."
#: tutorial\tut05.map:32
msgid ""
"TIP:\n"
"Think what moves your shadow has to make.\n"
"Then let your character record those moves.\n"
"You can break it down into smaller recordings."
msgstr ""
"Подсказка:\n"
-"Подумай, какие движения необходимо сделать тени.\n"
-"Затем запиши эти движения.\n"
-"Можно поделить это на несколько записей поменьше."
+"Следует спланировать действия для тени,\n"
+"а затем записать эти движения.\n"
+"Можно разбить большую запись на несколько записей поменьше."
#: tutorial\tut11.map:17
msgid ""
"Until now the levels were static.\n"
"There are however moving blocks."
msgstr ""
-"До сих пор все уровни были неподвижными.\n"
-"Однако, бывают движущиеся блоки."
+"До сих пор все уровни были статичными.\n"
+"Впрочем, существуют и подвижные блоки."
#: tutorial\tut10.map:32
msgid "Save your progress here."
-msgstr "Сохрани свой прогресс здесь."
+msgstr "Здесь можно сохранить свой прогресс."
#: tutorial\tut13.map:1
msgid "Moving spikes"
msgstr "Шипы перемещаются"
#: tutorial\tut13.map:18
msgid "Watch out for the moving spikes."
msgstr "Остерегайся движущихся шипов."
#: tutorial\tut16.map:1
msgid "The switch"
-msgstr "Переключатель"
+msgstr "Выключатель"
#: tutorial\tut25.map:13
msgid "The very best of luck!"
msgstr "Удачи!"
#: tutorial\tut20.map:156
msgid "Now choose one of the two."
-msgstr "Выбери один из двух."
+msgstr "Одно из двух."
#: tutorial\tut19.map:42
msgid ""
"NOTE:\n"
"You can go back by entering this portal.\n"
"It is however a bit different, you don't have to\n"
"press the down key, it will activate when you walk in it."
msgstr ""
"КСТАТИ:\n"
"Зайдя в этот портал, можно вернуться обратно.\n"
-"Он устроен по-другому: нажимать на клавишу \"вниз\" не надо.\n"
-"Он сработает, если через него пройти."
+"Он устроен по-другому: нажимать на клавишу 'вниз' не надо.\n"
+"Он сработает, когда персонаж зайдёт в него."
#: tutorial\tut15.map:20
msgid ""
"This gap is impossible to jump over.\n"
"Step on the button next of you."
msgstr ""
"Через этот провал нельзя перепрыгнуть.\n"
-"Наступи на кнопку рядом."
+"Попробуйте наступить на кнопку рядом."
#: tutorial\tut06.map:1
msgid "Shadow walk"
msgstr "Прогулка с тенью"
#: tutorial\tut10.map:54
msgid ""
"This is the wrong way.\n"
"Go back to the previous checkpoint by pressing F3."
msgstr ""
"Прохода нет!\n"
-"Вернись к предыдущей контрольной точке, нажав клавишу F3."
+"Придётся вернуться предыдущему чекпоинту, нажав клавишу F3."
#: tutorial\tut25.map:318
msgid "You have made it!"
msgstr "Получилось!"
#: tutorial\tut17.map:1
msgid "Toggle trigger"
msgstr "Включай, запускай"
#: tutorial\tut24.map:1
msgid "Warning"
msgstr "Внимание"
#: tutorial\tut05.map:1
msgid "Shadow"
msgstr "Тень"
#: tutorial\tut06.map:23
msgid ""
"NOTE:\n"
"Although you can't jump on those blocks\n"
"you can record the jumps for your shadow."
msgstr ""
"КСТАТИ:\n"
-"Хоть ты и не можешь сам запрыгнуть на эти блоки,\n"
-"можно записать прыжки для тени."
+"Хоть на эти блоки и невозможно запрыгнуть,\n"
+"эти прыжки можно записать для тени."
#: tutorial\tut19.map:39
msgid ""
"Now it's time to check out the portals.\n"
"To get to the exit you'll have to take the portal.\n"
"Walk to it and press the down arrow to\n"
"activate."
msgstr ""
-"Пора проверить порталы.\n"
-"Чтобы добраться до выхода, придется пройти через портал.\n"
-"Подойди к нему и нажми клавишу 'вниз',\n"
-"чтобы активировать его."
+"Теперь время взглянуть на порталы.\n"
+"Чтобы добраться до выхода,\n"
+"придётся пройти через портал.\n"
+"Они активируются с помощью клавиши 'вниз'."
#: tutorial\tut18.map:1
msgid "Stop trigger"
msgstr "Помешай запуску"
#: tutorial\tut01.map:1
msgid "Walk in the park"
msgstr "Прогулка по парку"
#: tutorial\tut09.map:14
msgid ""
"Those blocks are fragile.\n"
"If you step on them too often they'll break."
msgstr ""
-"Эти блоки непрочные.\n"
-"Если часто на них вставать, они сломаются."
+"Эти блоки хрупкие.\n"
+"Если на них часто наступать, они разрушатся."
#: tutorial\tut19.map:1
msgid "First portals"
msgstr "Первые порталы"
#: tutorial\tut25.map:1
msgid "Final"
msgstr "Финишная прямая"
#: tutorial\tut04.map:1
msgid "First spikes"
msgstr "Первые шипы"
#: tutorial\tut12.map:1
msgid "Moving shadow blocks"
msgstr "Движущиеся блоки для тени"
#: tutorial\tut22.map:22
msgid ""
"You need your shadow to reach the exit.\n"
"Make use of the swapper to get him down (or \n"
"to get yourself down)."
msgstr ""
"Нужно, чтобы тень добралась до выхода.\n"
-"Меняйся с ней местами, чтобы спустить ее вниз\n"
-"(или спуститься самому)."
+"Поменяйтесь местами, чтобы спустить тень вниз\n"
+"(или спустить вниз игрока)."
#: tutorial\tut21.map:8
msgid ""
"Now it's time for something completely\n"
"different: swappoints. When you or your\n"
"shadow activate them you'll swap places."
msgstr ""
-"Настало время взглянуть на вещи\n"
-"по-другому: точки перестановки. Когда вы\n"
-"с тенью активируюте их, вы меняетесь местами."
+"А теперь время для чего-то совершенно\n"
+"нового: точки перестановки. Если игрок или\n"
+"тень активируют их, они поменяются местами."
#: tutorial\tut06.map:27
msgid ""
"Only your shadow can stand on those shadow\n"
"blocks. Try to get him up there."
msgstr ""
"Только тень может стоять на этих блоках.\n"
-"Попробуй взобраться на них тенью."
+"Попробуйте взобраться на них тенью."
#: tutorial\tut17.map:14
msgid ""
"You've only seen triggers that activate other\n"
"blocks, but they can also deactivate or toggle\n"
"them."
msgstr ""
-"Ты видел триггеры, которые только активируют\n"
-"другие блоки, но они также могут деактивировать\n"
-"или переключать их."
+"Мы уже познакомились с триггерами, которые\n"
+"активируют другие блоки, но они также могут\n"
+"деактивировать или переключать их."
#: tutorial\tut14.map:68
msgid ""
"When standing on conveyor belts you'll\n"
"move without walking."
msgstr ""
-"Стоя на конвейере, ты будешь\n"
-"непроизвольно двигаться."
+"Конвеер постоянно перемещает всё,\n"
+"что на нём находится."
#: tutorial\tut25.map:46
msgid ""
"TIP:\n"
"Try to get your shadow in front of the shadow\n"
"wall. If he falls down you'd better restart."
msgstr ""
"Подсказка:\n"
-"Попробуй тенью встать перед стеной для тени.\n"
-"Если она упадёт, придется начать сначала."
+"Тенью необходимо стать перед стеной для тени.\n"
+"Если тень упадёт, придётся начать сначала."
#: tutorial\tut22.map:33
msgid ""
"TIP:\n"
"When your shadow is trapped stand on the\n"
"right side of the shadow blocks. Now record \n"
"the down key and let your shadow mimic."
msgstr ""
"Подсказка:\n"
-"Когда твоя тень окажется в ловушке, встань справа\n"
-"от блоков для тени. Теперь записывай: нажми\n"
-"клавишу 'вниз' и пусть тень повторяет за тобой."
+"Когда тень будет в ловушке, нужно стать справа\n"
+"от блоков для тени, начать запись, нажать\n"
+"клавишу 'вниз' и пусть тень повторит действия."
#: tutorial\tut08.map:1
msgid "Teamwork"
msgstr "Мы — команда"
#: tutorial\tut14.map:71
msgid ""
"Let the shadow finish the level by walking to\n"
"the finish. But don't stand still because your\n"
"shadow will move all the way back."
msgstr ""
-"Дай тени закончить уровень, добравшись до финиша.\n"
-"Но не стой просто так, потому что тень\n"
+"Пусть тень пройдёт уровень, добравшись до финиша.\n"
+"Но стоять на месте тоже нельзя, потому что тень\n"
"будет смещаться назад на конвейере."
#: tutorial\tut21.map:1
msgid "Swappoints"
msgstr "Точки перестановки"
#: tutorial\tut23.map:18
msgid ""
"One thing you need to know before you're ready are keys.\n"
"Sometimes there are keys spread around the level.\n"
"The exit is locked until you get all the keys."
msgstr ""
-"Еще одна вещь перед тем, как закончить: ключи.\n"
-"Иногда они разложены по всему уровню.\n"
-"Выход закрыт до тех пор, пока не соберёшь все ключи."
+"Ещё одна вещь перед тем, как закончить: ключи.\n"
+"Иногда они распределены по всему уровню.\n"
+"Выход закрыт до тех пор, пока не получится собрать все ключи."
#: tutorial\tut03.map:34
msgid "Good job!"
msgstr "Молодец!"
#: tutorial\tut16.map:14
msgid ""
"There's another type of trigger: the switch.\n"
"Use the switch to activate the elevator so that you\n"
"can reach the exit."
msgstr ""
"Есть ещё один вид триггера: переключатель.\n"
-"Используй его, чтобы активировать подъёмник,\n"
+"Этот переключатель активирует подъёмник,\n"
"который поможет добраться до выхода."
#: tutorial\tut09.map:1
msgid "Fragile"
-msgstr "Непрочные блоки"
+msgstr "Хрупкие блоки"
#: tutorial\tut24.map:18
msgid ""
"That's all there is.\n"
"Now it's time to put your skills to the test.\n"
"Enter the exit to go to the last level.\n"
"Good luck!"
msgstr ""
"Вот и всё.\n"
-"Настало время проверить твои навыки.\n"
-"Пройди к выходу, чтобы перейти на последний уровень.\n"
+"Настало время проверить полученные навыки.\n"
+"Нужно добраться до выхода, чтобы перейти на последний уровень.\n"
"Удачи!"
#: tutorial\tut25.map:459
msgid "Where could your shadow be?"
-msgstr "Где же может быть эта тень?"
+msgstr "Где же тень?"
#: tutorial\tut01.map:18
msgid ""
"Welcome to Me and My Shadow.\n"
"You can use the arrow keys to walk to the exit.\n"
"\n"
"Good luck!"
msgstr ""
"Добро пожаловать в игру \"Me and My Shadow\".\n"
-"Чтобы добраться до выхода, можно использовать стрелки.\n"
+"Используя стрелки для перемещения, необходимо до выхода.\n"
"\n"
"Удачи!"
#: tutorial\tut15.map:1
msgid "Triggering"
msgstr "Триггер"
#: tutorial\tut03.map:1
msgid "Jumping around"
msgstr "Прыгая тут и там"
#: tutorial\tut10.map:1
msgid "Checkpoints"
-msgstr "Контрольные точки"
+msgstr "Чекпоинты"
#: tutorial\tut07.map:19
msgid ""
"Spikes are not only deadly for you,\n"
"but also for your shadow."
msgstr ""
-"Шипы убивают не только тебя,\n"
-"но и тень."
+"Шипы смертельны не только для игрока,\n"
+"но и для тени."
#: tutorial\tut08.map:21
msgid ""
"You and your shadow need to work together.\n"
"Move your shadow towards the wall and jump\n"
"on him so that you can jump over the wall."
msgstr ""
-"Тебе и тени надо работать сообща.\n"
-"Поставь тень около стены и запрыгни\n"
+"Игроку и тени надо работать сообща.\n"
+"Нужно поставить тень около стены и запрыгнуть\n"
"на неё, чтобы перепрыгнуть через стену."
#: tutorial\tut04.map:19
msgid ""
"Spikes are deadly.\n"
"Don't touch them!"
msgstr ""
"Шипы смертельно опасны.\n"
"Не прикасайся к ним!"
#: tutorial\levels.lst:3
msgid "Step by step introduction"
-msgstr "Введение, шаг за шагом"
+msgstr "Пошаговое введение"
#: tutorial\tut11.map:1
msgid "Moving blocks"
msgstr "Движущиеся блоки"
#: tutorial\tut14.map:1
msgid "Conveyor madness"
msgstr "С ума сойти: конвейеры"
#: tutorial\tut05.map:29
msgid ""
"You can't reach the exit, but your shadow can.\n"
"Press space to record your moves.\n"
"Press space once again to let your shadow\n"
"mimic your recording."
msgstr ""
-"Ты не можешь добраться до выхода,а тень может.\n"
-"Нажми пробел, чтобы записать движения.\n"
-"Нажми пробел ещё раз, чтобы тень могла\n"
-"повторить записанные движения."
+"Игрок не может добраться до выхода, а тень может.\n"
+"Нажатие клавиши 'пробел' начнёт запись движений.\n"
+"Повторное нажатие клавиши 'пробел' запустит\n"
+"воспроизведение записи тенью."
#: tutorial\levels.lst:2
msgid "You have finished the tutorial!"
-msgstr "Ты прошел обучение!"
+msgstr "Обучение завершено!"
diff --git a/data/levelpacks/tutorial/locale/uk.po b/data/levelpacks/tutorial/locale/uk.po
new file mode 100644
index 0000000..7cff3ae
--- /dev/null
+++ b/data/levelpacks/tutorial/locale/uk.po
@@ -0,0 +1,477 @@
+# 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 <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-04-01 17:56+0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Jz Pan <acme.pjz@gmail.com>, 2018\n"
+"Language-Team: Ukrainian (https://www.transifex.com/acmepjz/teams/88148/uk/)\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
+"%100>=11 && n%100<=14)? 2 : 3);\n"
+
+#: tutorial\tut12.map:17
+msgid "Now you'll need to help your shadow cross.\n"
+msgstr "Тепер треба допомогти тіні пройти перешкоди."
+
+#: tutorial\tut10.map:19
+msgid ""
+"You can save your progress in a level with\n"
+"checkpoints. You can restore them at any\n"
+"time using the F3 button."
+msgstr ""
+"Можна зберегти прогрес рівня за допомогою\n"
+"чекпоінтів. Можна завантажити гру у будь-який\n"
+"момент, натиснувши клавішу F3."
+
+#: tutorial\tut18.map:14
+msgid ""
+"This trigger will deactivate the moving block.\n"
+"Try to stop it at the right moment.\n"
+"You can only do this once, so if it fails you'll\n"
+"have to reset the level with the 'R' key."
+msgstr ""
+"Цей вимикач деактивує рухомий блок.\n"
+"Спробуй зупинити його у потрібний момент.\n"
+"Увімкнути вимикач можливо лише один раз, тож, якщо не\n"
+"вийде, то доведеться перезапустити рівень за допомогою клавіші 'R'."
+
+#: tutorial\tut21.map:49
+msgid ""
+"If your shadow falls down here you will have to restart.\n"
+"Press 'R' to restart the level."
+msgstr ""
+"Якщо тінь провалиться тут, доведеться проходити рівень знову.\n"
+"Для цього треба натиснути клавішу 'R'."
+
+#: tutorial\levels.lst:1
+msgid "tutorial"
+msgstr "навчання"
+
+#: tutorial\tut23.map:1
+msgid "Collecting Keys"
+msgstr "Ключі"
+
+#: tutorial\tut10.map:46
+msgid "You've chosen the right way."
+msgstr "Це є вірний шлях."
+
+#: tutorial\tut22.map:1
+msgid "Shadow swap"
+msgstr "Поміняйся із тінню"
+
+#: tutorial\tut20.map:187
+msgid ""
+"A dead end, you'd better go back and choose\n"
+"the other portal."
+msgstr ""
+"Це глухий кут. Треба вернутися назад і обрати\n"
+"інший портал."
+
+#: tutorial\tut03.map:13
+msgid ""
+"See those gaps over there?\n"
+"Reach the finish without falling."
+msgstr ""
+"Бачиш ці провали попереду?\n"
+"Досягни фінішу і не впади."
+
+#: tutorial\tut07.map:33
+msgid ""
+"If your shadow dies you'll have to restart.\n"
+"Restart the game by pressing the 'R' key."
+msgstr ""
+"Якщо тінь загине, доведеться перезапустити рівень.\n"
+"Для цього треба буде натиснути клавішу 'R'."
+
+#: tutorial\tut02.map:18
+msgid ""
+"You can jump using the up key.\n"
+"Try jumping over these blocks."
+msgstr ""
+"Можна стрибати за допомогою клавіші 'вгору'.\n"
+"Спробуй перестрибнути ці блоки."
+
+#: tutorial\tut07.map:1
+msgid "Shadow challenge"
+msgstr "Випробування для тіні"
+
+#: tutorial\tut20.map:1
+msgid "Portal mayhem"
+msgstr "Портальне божевілля"
+
+#: tutorial\tut02.map:1
+msgid "First jumps"
+msgstr "Перші пострибеньки"
+
+#: tutorial\tut20.map:16
+msgid ""
+"Portals point to another portal or to nothing.\n"
+"Try to reach the exit in this portal mayhem."
+msgstr ""
+"Портали телепортують до іншого порталу або у порожнє місце.\n"
+"Спробуй досягнути виходу через це портальне божевілля."
+
+#: tutorial\tut05.map:32
+msgid ""
+"TIP:\n"
+"Think what moves your shadow has to make.\n"
+"Then let your character record those moves.\n"
+"You can break it down into smaller recordings."
+msgstr ""
+"Підказка:\n"
+"Поміркуй, які рухи буде потрібно зробити тіні.\n"
+"Потім нехай гравець запише ці рухи.\n"
+"Запис можна розділити на декілька невеличких записів."
+
+#: tutorial\tut11.map:17
+msgid ""
+"Until now the levels were static.\n"
+"There are however moving blocks."
+msgstr ""
+"До цього рівні були нерухомими.\n"
+"Однак, бувають і рухомі блоки."
+
+#: tutorial\tut10.map:32
+msgid "Save your progress here."
+msgstr "Тут можна зберегти прогресс рівня."
+
+#: tutorial\tut13.map:1
+msgid "Moving spikes"
+msgstr "Рухомі шипи"
+
+#: tutorial\tut13.map:18
+msgid "Watch out for the moving spikes."
+msgstr "Стережися рухомих шипів."
+
+#: tutorial\tut16.map:1
+msgid "The switch"
+msgstr "Вимикач"
+
+#: tutorial\tut25.map:13
+msgid "The very best of luck!"
+msgstr "Нехай щастить!"
+
+#: tutorial\tut20.map:156
+msgid "Now choose one of the two."
+msgstr "Обери щось одне."
+
+#: tutorial\tut19.map:42
+msgid ""
+"NOTE:\n"
+"You can go back by entering this portal.\n"
+"It is however a bit different, you don't have to\n"
+"press the down key, it will activate when you walk in it."
+msgstr ""
+"Примітка:\n"
+"Можна повернутися назад, зайшовши у портал.\n"
+"Однак цей портал трохи інший - не потрібно натискати\n"
+"клавішу 'вниз', він активується якщо на нього наступити."
+
+#: tutorial\tut15.map:20
+msgid ""
+"This gap is impossible to jump over.\n"
+"Step on the button next of you."
+msgstr ""
+"Через цю прірву не перестрибнути.\n"
+"Треба стати на кнопку поблизу."
+
+#: tutorial\tut06.map:1
+msgid "Shadow walk"
+msgstr "Прогулянка тіні"
+
+#: tutorial\tut10.map:54
+msgid ""
+"This is the wrong way.\n"
+"Go back to the previous checkpoint by pressing F3."
+msgstr ""
+"Це не вірний шлях.\n"
+"Треба повернутися до попереднього чекпоінту за допомогою клавіші F3."
+
+#: tutorial\tut25.map:318
+msgid "You have made it!"
+msgstr "Вдалося!"
+
+#: tutorial\tut17.map:1
+msgid "Toggle trigger"
+msgstr "Вимикач"
+
+#: tutorial\tut24.map:1
+msgid "Warning"
+msgstr "Попередження"
+
+#: tutorial\tut05.map:1
+msgid "Shadow"
+msgstr "Тінь"
+
+#: tutorial\tut06.map:23
+msgid ""
+"NOTE:\n"
+"Although you can't jump on those blocks\n"
+"you can record the jumps for your shadow."
+msgstr ""
+"Примітка:\n"
+"Хоч гравець не може застрибнути на ці блоки,\n"
+"ці стрибки можна записати для тіні."
+
+#: tutorial\tut19.map:39
+msgid ""
+"Now it's time to check out the portals.\n"
+"To get to the exit you'll have to take the portal.\n"
+"Walk to it and press the down arrow to\n"
+"activate."
+msgstr ""
+"Настав час поглянути на портали уважніше.\n"
+"Щоб досягнути фінішу, потрібно пройти через портал.\n"
+"Зайди у нього й натисни клавішу 'вниз',\n"
+"щоб телепортуватися."
+
+#: tutorial\tut18.map:1
+msgid "Stop trigger"
+msgstr "Вимикач, що зупиняє"
+
+#: tutorial\tut01.map:1
+msgid "Walk in the park"
+msgstr "Прогулянка парком"
+
+#: tutorial\tut09.map:14
+msgid ""
+"Those blocks are fragile.\n"
+"If you step on them too often they'll break."
+msgstr ""
+"Ці блоки крихкі.\n"
+"Якщо наступити на них кілька раз, вони зруйнуються."
+
+#: tutorial\tut19.map:1
+msgid "First portals"
+msgstr "Перші портали"
+
+#: tutorial\tut25.map:1
+msgid "Final"
+msgstr "Фінал"
+
+#: tutorial\tut04.map:1
+msgid "First spikes"
+msgstr "Перші шипи"
+
+#: tutorial\tut12.map:1
+msgid "Moving shadow blocks"
+msgstr "Рухомі блоки для тіні"
+
+#: tutorial\tut22.map:22
+msgid ""
+"You need your shadow to reach the exit.\n"
+"Make use of the swapper to get him down (or \n"
+"to get yourself down)."
+msgstr ""
+"Необхідно, щоби тінь досягнула виходу.\n"
+"Для цього буде потрібно помінятися місцями\n"
+"Щоб зпустити тінь (або гравця) донизу."
+
+#: tutorial\tut21.map:8
+msgid ""
+"Now it's time for something completely\n"
+"different: swappoints. When you or your\n"
+"shadow activate them you'll swap places."
+msgstr ""
+"Настав час для чогось зовсім нового:\n"
+"місця в яких можна помінятися місцями.\n"
+"Як тінь активує їх, вона поміняється місцями з гравцем."
+
+#: tutorial\tut06.map:27
+msgid ""
+"Only your shadow can stand on those shadow\n"
+"blocks. Try to get him up there."
+msgstr ""
+"Лише тінь гравця може стояти на цих блоках.\n"
+"Спробуй допомогти їй забратися вище."
+
+#: tutorial\tut17.map:14
+msgid ""
+"You've only seen triggers that activate other\n"
+"blocks, but they can also deactivate or toggle\n"
+"them."
+msgstr ""
+"Ми вже бачили вимикачі, які лише активують інші\n"
+"блоки, однак вони також можуть деактивувати або\n"
+"перемикати їх."
+
+#: tutorial\tut14.map:68
+msgid ""
+"When standing on conveyor belts you'll\n"
+"move without walking."
+msgstr ""
+"Конвеєр буде тягнути гравця або тінь\n"
+"у напрямі свого руху."
+
+#: tutorial\tut25.map:46
+msgid ""
+"TIP:\n"
+"Try to get your shadow in front of the shadow\n"
+"wall. If he falls down you'd better restart."
+msgstr ""
+"Підказка:\n"
+"Спробуй встати тінню перед стіною для тіні. Якщо вона впаде,\n"
+"краще буде розпочати все зпочатку."
+
+#: tutorial\tut22.map:33
+msgid ""
+"TIP:\n"
+"When your shadow is trapped stand on the\n"
+"right side of the shadow blocks. Now record \n"
+"the down key and let your shadow mimic."
+msgstr ""
+"Підказка:\n"
+"Коли тінь у пастці, треба стати праворуч блока тіні.\n"
+"Тепер записати натиснення клавіші 'вниз'\n"
+"і нехай тінь повторить дії гравця."
+
+#: tutorial\tut08.map:1
+msgid "Teamwork"
+msgstr "Плідна співпраця"
+
+#: tutorial\tut14.map:71
+msgid ""
+"Let the shadow finish the level by walking to\n"
+"the finish. But don't stand still because your\n"
+"shadow will move all the way back."
+msgstr ""
+"Тінь має дійти до фінішу рівня.\n"
+"Але не стій на місці, оскільки конвеєр\n"
+"буде тягнути тінь назад."
+
+#: tutorial\tut21.map:1
+msgid "Swappoints"
+msgstr "Міняймося місцями"
+
+#: tutorial\tut23.map:18
+msgid ""
+"One thing you need to know before you're ready are keys.\n"
+"Sometimes there are keys spread around the level.\n"
+"The exit is locked until you get all the keys."
+msgstr ""
+"Ще одна річ, яку треба знати - ключі.\n"
+"Іноді ключі розподілені на рівні.\n"
+"І вихід буде замкнений до того, як їх усі зібрати."
+
+#: tutorial\tut03.map:34
+msgid "Good job!"
+msgstr "Відмінно спрацьовано!"
+
+#: tutorial\tut16.map:14
+msgid ""
+"There's another type of trigger: the switch.\n"
+"Use the switch to activate the elevator so that you\n"
+"can reach the exit."
+msgstr ""
+"Є ще один вид вимикачів: перемикач.\n"
+"Використовуй перемикач, щоб активувати ліфт,\n"
+"який допоможе досягнути виходу."
+
+#: tutorial\tut09.map:1
+msgid "Fragile"
+msgstr "Крихкі блоки"
+
+#: tutorial\tut24.map:18
+msgid ""
+"That's all there is.\n"
+"Now it's time to put your skills to the test.\n"
+"Enter the exit to go to the last level.\n"
+"Good luck!"
+msgstr ""
+"Ось і все.\n"
+"Час здавати екзамен.\n"
+"Потрібно дістатися виходу, щоб перейти на останній рівень.\n"
+"Щасливої дороги!"
+
+#: tutorial\tut25.map:459
+msgid "Where could your shadow be?"
+msgstr "Де ж твоя тінь?"
+
+#: tutorial\tut01.map:18
+msgid ""
+"Welcome to Me and My Shadow.\n"
+"You can use the arrow keys to walk to the exit.\n"
+"\n"
+"Good luck!"
+msgstr ""
+"Ласкаво просимо до гри \"Me and My Shadow\".\n"
+"Використовуй клавіші праворуч-ліворуч, щоб дістатися виходу.\n"
+"\n"
+"Нехай щастить!"
+
+#: tutorial\tut15.map:1
+msgid "Triggering"
+msgstr "Тригер"
+
+#: tutorial\tut03.map:1
+msgid "Jumping around"
+msgstr "Стрибки довкола"
+
+#: tutorial\tut10.map:1
+msgid "Checkpoints"
+msgstr "Чекпоінти"
+
+#: tutorial\tut07.map:19
+msgid ""
+"Spikes are not only deadly for you,\n"
+"but also for your shadow."
+msgstr ""
+"Шипи смертельно небезпечні не лише для гравця,\n"
+"але й для тіні."
+
+#: tutorial\tut08.map:21
+msgid ""
+"You and your shadow need to work together.\n"
+"Move your shadow towards the wall and jump\n"
+"on him so that you can jump over the wall."
+msgstr ""
+"Тут потрібно працювати разом із тінню.\n"
+"Нехай тінь стане біля стіни, а гравець -\n"
+"застрибне на неї, щоб перестрибнути стіну."
+
+#: tutorial\tut04.map:19
+msgid ""
+"Spikes are deadly.\n"
+"Don't touch them!"
+msgstr ""
+"Шипи небезпечні.\n"
+"Стережися їх!"
+
+#: tutorial\levels.lst:3
+msgid "Step by step introduction"
+msgstr "Крок-за-кроком"
+
+#: tutorial\tut11.map:1
+msgid "Moving blocks"
+msgstr "Рухомі блоки"
+
+#: tutorial\tut14.map:1
+msgid "Conveyor madness"
+msgstr "Конвеєри збожеволіли"
+
+#: tutorial\tut05.map:29
+msgid ""
+"You can't reach the exit, but your shadow can.\n"
+"Press space to record your moves.\n"
+"Press space once again to let your shadow\n"
+"mimic your recording."
+msgstr ""
+"Гравець не може досягнути виходу, але тінь може це зробити.\n"
+"Натисни пробіл, щоб записати рухи гравця.\n"
+"Натисни пробіл ще раз, щоб тінь\n"
+"відтворила записані рухи."
+
+#: tutorial\levels.lst:2
+msgid "You have finished the tutorial!"
+msgstr "Навчання завершено!"
diff --git a/data/locale/ru.po b/data/locale/ru.po
index cad8cbd..27d0e48 100644
--- a/data/locale/ru.po
+++ b/data/locale/ru.po
@@ -1,2032 +1,2027 @@
# Russian translation for Me and My Shadow strings
# Copyright (C)
# This file is distributed under the same license as the meandmyshadow package.
# Jz Pan <acme_pjz@hotmail.com>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: Russian (Me And My Shadow)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-09 16:18+0800\n"
"PO-Revision-Date: 2018-09-29 22:36+0000\n"
"Last-Translator: mesnevi <shams@airpost.net>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/me-and-my-shadow/"
"translations/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 3.2-dev\n"
#: ../src/AchievementList.cpp:43
msgid "Newbie"
msgstr "Новичок"
#: ../src/AchievementList.cpp:43
msgid "Complete a level."
-msgstr "Уровень пройден."
+msgstr "Завершить уровень."
#: ../src/AchievementList.cpp:44
msgid "Experienced player"
-msgstr "Матерый игрок"
+msgstr "Матёрый игрок"
#: ../src/AchievementList.cpp:44
msgid "Complete 50 levels."
-msgstr "Пройдено 50 уровней."
+msgstr "Завершить 50 уровней."
#: ../src/AchievementList.cpp:45
msgid "Good job!"
msgstr "Молодец!"
#: ../src/AchievementList.cpp:45
msgid "Receive a gold medal."
-msgstr "Получена золотая медаль."
+msgstr "Получить золотую медаль."
#: ../src/AchievementList.cpp:46
msgid "Expert"
-msgstr "Спец"
+msgstr "Специалист"
#: ../src/AchievementList.cpp:46
msgid "Earn 50 gold medal."
-msgstr "Получено 50 золотых медалей."
+msgstr "Получить 50 золотых медалей."
#: ../src/AchievementList.cpp:48
msgid "Graduate"
msgstr "Выпускник"
#: ../src/AchievementList.cpp:48
msgid "Complete the tutorial level pack."
-msgstr "Пройдены все обучающие уровни."
+msgstr "Завершить все обучающие уровни."
#: ../src/AchievementList.cpp:49
msgid "Outstanding graduate"
-msgstr "Выпускник-отличник"
+msgstr "Отличник"
#: ../src/AchievementList.cpp:49
msgid "Complete the tutorial level pack with gold for all levels."
-msgstr "Все обучающие уровни пройдены с золотыми медалями."
+msgstr "Завершить все обучающие уровни, собрав все золотые медали."
#: ../src/AchievementList.cpp:51
msgid "Hooked"
-msgstr "Зависимый"
+msgstr "Зависимость"
#: ../src/AchievementList.cpp:51
msgid "Play Me and My Shadow for more than 2 hours."
-msgstr "За игрой прошло больше 2 часов."
+msgstr "За игрой прошло более двух часов."
#: ../src/AchievementList.cpp:52
msgid "Loyal fan of Me and My Shadow"
msgstr "Преданный поклонник"
#: ../src/AchievementList.cpp:52
msgid "Play Me and My Shadow for more than 24 hours."
msgstr "За игрой прошло более суток."
#: ../src/AchievementList.cpp:54
msgid "Constructor"
-msgstr "Творец"
+msgstr "Конструктор"
#: ../src/AchievementList.cpp:54
msgid "Use the level editor for more than 2 hours."
-msgstr "Редактор уровней использовался более 2 часов."
+msgstr "Использовать редактор уровней более двух часов."
#: ../src/AchievementList.cpp:55
msgid "The creator"
-msgstr "Могучий творец"
+msgstr "Творец"
#: ../src/AchievementList.cpp:55
msgid "Use the level editor for more than 24 hours."
-msgstr "Редактор уровней использовался больше суток."
+msgstr "Использовать редактор уровней более суток."
#: ../src/AchievementList.cpp:57
msgid "Look, cute level!"
msgstr "Ах, какая прелесть!"
#: ../src/AchievementList.cpp:57
msgid "Create a level for the first time."
-msgstr "Вы создали свой первый уровень."
+msgstr "Создать свой первый уровень."
#: ../src/AchievementList.cpp:58
msgid "The level museum"
-msgstr "Выставка достижений"
+msgstr "Музей уровнестроения"
#: ../src/AchievementList.cpp:58
msgid "Create 50 levels."
-msgstr "Вы создали 50 уровней."
+msgstr "Создать 50 уровней."
#: ../src/AchievementList.cpp:60
msgid "Hello, World!"
-msgstr "Кто здесь?!"
+msgstr "Hello, World!"
#: ../src/AchievementList.cpp:60
msgid "Write a script for the first time."
-msgstr "Вы написали свой первый скрипт."
+msgstr "Написать свой первый скрипт."
#: ../src/AchievementList.cpp:62
msgid "Frog"
msgstr "Лягушка-попрыгушка"
#: ../src/AchievementList.cpp:62
msgid "Jump 1000 times."
-msgstr "Вы подпрыгнули 1000 раз."
+msgstr "Прыгнуть 1000 раз."
#: ../src/AchievementList.cpp:64
msgid "Wanderer"
msgstr "Пешеход"
#: ../src/AchievementList.cpp:64
msgid "Travel 100 meters."
-msgstr "Вы прошли 100 метров."
+msgstr "Пройти 100 метров."
#: ../src/AchievementList.cpp:65
msgid "Runner"
-msgstr "Стариковская трусца"
+msgstr "Бродилка"
#: ../src/AchievementList.cpp:65
msgid "Travel 1 kilometer."
-msgstr "Вы прошли 1 километр."
+msgstr "Пройти 1 километр."
#: ../src/AchievementList.cpp:66
msgid "Long distance runner"
-msgstr "Забег на длинную дистанцию"
+msgstr "Дальнобойщик"
#: ../src/AchievementList.cpp:66
msgid "Travel 10 kilometers."
-msgstr "Вы прошли 10 километров."
+msgstr "Пройти 10 километров."
#: ../src/AchievementList.cpp:67
msgid "Marathon runner"
-msgstr "Марафон"
+msgstr "Марафонец"
#: ../src/AchievementList.cpp:67
msgid "Travel 42,195 meters."
-msgstr "Вы прошли 42 километра 195 метров."
+msgstr "Пройти 42195 метров."
#: ../src/AchievementList.cpp:69
msgid "Be careful!"
-msgstr "Осторожно!"
+msgstr "Поберегись!"
#: ../src/AchievementList.cpp:69
msgid "Die for the first time."
-msgstr "Первая смерть."
+msgstr "Умереть впервые."
#: ../src/AchievementList.cpp:70
msgid "It doesn't matter..."
msgstr "Ну и ладно..."
#: ../src/AchievementList.cpp:70
msgid "Die 50 times."
-msgstr "Вы умерли 50 раз."
+msgstr "Умереть 50 раз."
#: ../src/AchievementList.cpp:71
msgid "Expert of trial and error"
-msgstr "Гуру метода проб и ошибок"
+msgstr "Лауреат премии Дарвина"
#: ../src/AchievementList.cpp:71
msgid "Die 1000 times."
-msgstr "Вы умерли 1000 раз."
+msgstr "Умереть 1000 раз."
#: ../src/AchievementList.cpp:73
msgid "Keep an eye for moving blocks!"
-msgstr "Надо было следить за двигающимся блоком!"
+msgstr "Осторожно, они двигаются!"
#: ../src/AchievementList.cpp:73
msgid "Get squashed for the first time."
-msgstr "Вас в первый раз раздавило."
+msgstr "Быть раздавленным первый раз."
#: ../src/AchievementList.cpp:74
msgid "Potato masher"
-msgstr "Кому пюре?"
+msgstr "Пюре"
#: ../src/AchievementList.cpp:74
msgid "Get squashed 50 times."
-msgstr "Вас раздавило 50 раз."
+msgstr "Быть раздавленным 50 раз."
#: ../src/AchievementList.cpp:76
msgid "Double kill"
-msgstr "Одним выстрелом двух зайцев"
+msgstr "За двумя зайцами"
#: ../src/AchievementList.cpp:76
msgid "Get both the player and the shadow dead."
-msgstr "И игрок, и тень мертвы."
+msgstr "Добиться смерти игрока и его тени."
#: ../src/AchievementList.cpp:78
msgid "Bad luck"
msgstr "Тотальное невезение"
#: ../src/AchievementList.cpp:78
msgid "Die 5 times in under 5 seconds."
-msgstr "Вы умерли 5 раз за 5 секунд."
+msgstr "Умереть 5 раз за менее, чем 5 секунд."
#: ../src/AchievementList.cpp:79
msgid "This level is too dangerous"
-msgstr "Не уровень, а дикие джунгли"
+msgstr "Да что ж это за жизнь такая?"
#: ../src/AchievementList.cpp:79
msgid "Die 10 times in under 5 seconds."
-msgstr "Вы умерли 10 раз за 5 секунд."
+msgstr "Умереть 10 раз за менее, чем 5 секунд."
#: ../src/AchievementList.cpp:81
msgid "You forgot your friend"
-msgstr "Друзья? О таких не слышал"
+msgstr "Друзья? Нет, не слышал"
#: ../src/AchievementList.cpp:81
msgid "Finish the level with the player or the shadow dead."
-msgstr "В конце уровня или игрок, или тень мертвы."
+msgstr "Завершить уровень при том, что игрок или тень мертвы."
#: ../src/AchievementList.cpp:82
msgid "Just in time"
-msgstr "Одновременно"
+msgstr "Точность - вежливость королей"
#: ../src/AchievementList.cpp:82
msgid "Reach the exit with the player and the shadow simultaneously."
-msgstr "Игрок и тень одновременно закончили уровень."
+msgstr "Достичь выхода игроком и тенью одновременно."
#: ../src/AchievementList.cpp:84
msgid "Recorder"
-msgstr "Оператор"
+msgstr "По-медленнее, я записываю!"
#: ../src/AchievementList.cpp:84
msgid "Record 100 times."
-msgstr "Сделано 100 записей."
+msgstr "Выполнить запись 100 раз."
#: ../src/AchievementList.cpp:85
msgid "Shadowmaster"
-msgstr "Повелитель теней"
+msgstr "У меня все ходы записаны!"
#: ../src/AchievementList.cpp:85
msgid "Record 1000 times."
-msgstr "Сделано 1000 записей."
+msgstr "Выполнить запись 1000 раз."
#: ../src/AchievementList.cpp:87
msgid "Switch puller"
-msgstr "Нажми на кнопку"
+msgstr "Выключателевключатель"
#: ../src/AchievementList.cpp:87
msgid "Pull the switch 100 times."
-msgstr "Вы поменяли положение переключателя 100 раз."
+msgstr "Включить выключатель 100 раз."
#: ../src/AchievementList.cpp:88
msgid "The switch is broken!"
-msgstr "Сейчас сломается!"
+msgstr "Выключателеломатель"
#: ../src/AchievementList.cpp:88
msgid "Pull the switch 1000 times."
-msgstr "Вы поменяли положение перключателя 1000 раз."
+msgstr "Включить выключатель 1000 раз."
#: ../src/AchievementList.cpp:90
msgid "Swapper"
-msgstr "Поменяться местами"
+msgstr "Обменный пункт"
#: ../src/AchievementList.cpp:90
msgid "Swap 100 times."
-msgstr "Вы переключились между игроком и тенью 100 раз."
+msgstr "Поменяться 100 раз."
#: ../src/AchievementList.cpp:91
msgid "Player to shadow to player to shadow..."
-msgstr "Туда-сюда..."
+msgstr "Туда-сюдашка"
#: ../src/AchievementList.cpp:91
msgid "Swap 1000 times."
-msgstr "Вы переключились между игроком и тенью 1000 раз."
+msgstr "Поменяться 1000 раз."
#: ../src/AchievementList.cpp:93
msgid "Play it save"
-msgstr "Осторожность лишней не бывает"
+msgstr "Хорошо сохранился"
#: ../src/AchievementList.cpp:93
msgid "Save 1000 times."
-msgstr "Игра сохранялась 1000 раз."
+msgstr "Сохраниться 1000 раз."
#: ../src/AchievementList.cpp:94
msgid "This game is too hard"
-msgstr "Непосильный труд"
+msgstr "Сизифов труд"
#: ../src/AchievementList.cpp:94
msgid "Load the game 1000 times."
-msgstr "Игра загружалась 1000 раз."
+msgstr "Загрузить игру 1000 раз."
#: ../src/AchievementList.cpp:96
msgid "No, thanks"
msgstr "Нет уж, спасибо"
#: ../src/AchievementList.cpp:96
msgid "Complete a level with checkpoint, but without saving."
-msgstr "Завершить уровень с чекпойнтами без сохранения."
+msgstr "Пройти уровень с чекпоинтом, но без сохранений."
#: ../src/AchievementList.cpp:98
msgid "Panic save"
-msgstr "Паническая атака"
+msgstr "Паническое сохранение"
#: ../src/AchievementList.cpp:98
msgid "Save twice in 1 second."
-msgstr "Дважды сохранить игру за 1 секунду."
+msgstr "Сохраниться дважды за секунду."
#: ../src/AchievementList.cpp:99
msgid "Panic load"
-msgstr "Не туда"
+msgstr "Паническая загрузка"
#: ../src/AchievementList.cpp:99
msgid "Load twice in 1 second."
-msgstr "Дважды загрузить игру за 1 секунду."
+msgstr "Загрузиться дважды за секунду."
#: ../src/AchievementList.cpp:101
msgid "Bad saving position"
msgstr "Местечко так себе"
#: ../src/AchievementList.cpp:101
msgid "Load the game and die within 1 second."
-msgstr "Загрузить игру и умереть через секунду."
+msgstr "Загрузить сохранённую игру и умереть в течении секунды."
#: ../src/AchievementList.cpp:102
msgid "This level is too hard"
msgstr "Да что ж такое"
#: ../src/AchievementList.cpp:102
msgid "Load the same save and die 100 times."
-msgstr "Загрузить один и тот же сейв и умерть 100 раз."
+msgstr "Загрузить игру и умереть 100 раз."
#: ../src/AchievementList.cpp:104
msgid "Quick swap"
-msgstr "Мигом"
+msgstr "Быстрая смена"
#: ../src/AchievementList.cpp:104
msgid "Swap twice in under a second."
-msgstr "Дважды переключиться между игроком и тенью за одну секунду."
+msgstr "Поменяться дважды за секунду."
#: ../src/AchievementList.cpp:107
msgid "Horizontal confusion"
msgstr "Сено-солома"
#: ../src/AchievementList.cpp:107
msgid "Press left and right simultaneously."
-msgstr "Одновременно нажимать направо и налево."
+msgstr "Нажать влево и вправо одновременно."
#: ../src/AchievementList.cpp:109
msgid "Cheater"
msgstr "Жулик"
#: ../src/AchievementList.cpp:109
msgid "Cheat in game."
msgstr "Не надо было жульничать."
#: ../src/AchievementList.cpp:111
msgid "Programmer"
-msgstr "Разработчик"
+msgstr "Тыжпрограммист"
#: ../src/AchievementList.cpp:111
msgid "Play the development version of Me and My Shadow."
-msgstr "Играть в версию, находящуюся в разработке."
+msgstr "Играть в версию в разработке."
#: ../src/Addons.cpp:44 ../src/LevelPackManager.cpp:108
msgid "Levels"
msgstr "Уровни"
#: ../src/Addons.cpp:44
msgid "Single level which usually contain demanding puzzles"
-msgstr "Отдельные уровни, требующие сильного умственного напряжения"
+msgstr "Один уровень, который обычно содержит головоломки"
#: ../src/Addons.cpp:45
msgid "Levelpacks"
-msgstr "Наборы уровней"
+msgstr "Сборники уровней"
#: ../src/Addons.cpp:45
msgid "Collection of levels with the same author or style"
-msgstr ""
-"Несколько уровней, сделанных одним и тем же автором или в похожем стиле"
+msgstr "Несколько уровней, созданных единым автором или в подобном стиле"
#: ../src/Addons.cpp:46
msgid "Themes"
msgstr "Темы"
#: ../src/Addons.cpp:46
msgid "Give every block and background a new look and feel"
-msgstr "Новый вид для блоков и фона"
+msgstr "Придать каждому блоку и фону новый вид и стиль"
#: ../src/Addons.cpp:55 ../src/TitleMenu.cpp:46
msgid "Addons"
msgstr "Дополнения"
#: ../src/Addons.cpp:87
msgid "Unable to initialize addon menu:"
msgstr "Не удалось запустить меню дополнений:"
#: ../src/Addons.cpp:95 ../src/Addons.cpp:158 ../src/Addons.cpp:662
#: ../src/Addons.cpp:690 ../src/CreditsMenu.cpp:89 ../src/LevelSelect.cpp:168
#: ../src/StatisticsScreen.cpp:159
msgid "Back"
msgstr "Назад"
#: ../src/Addons.cpp:169
msgid "ERROR: unable to download addons file!"
msgstr "ОШИБКА: не удалось загрузить файл дополнения!"
#: ../src/Addons.cpp:182
msgid "ERROR: unable to load addon_list file!"
msgstr "ОШИБКА: не удалось загрузить файл addon_list!"
#: ../src/Addons.cpp:193
msgid "ERROR: Invalid file format of addons file!"
msgstr "ОШИБКА: Неверный формат файла дополнения!"
#: ../src/Addons.cpp:205
msgid "ERROR: Addon list version is unsupported!"
msgstr "ОШИБКА: версия списка дополнений не поддерживается!"
#: ../src/Addons.cpp:226
msgid "ERROR: Unable to create the installed_addons file."
-msgstr "ОШИБКА: невозможно создать список дополнений installed_addons."
+msgstr "ОШИБКА: не удалось создать список дополнений installed_addons."
#: ../src/Addons.cpp:238
msgid "ERROR: Invalid file format of the installed_addons!"
msgstr "ОШИБКА: у списка дополнений installed_addons неправильный формат!"
#: ../src/Addons.cpp:389 ../src/Addons.cpp:621
#, c-format
msgid "by %s"
msgstr "автор %"
#: ../src/Addons.cpp:397
msgid "Installed"
msgstr "Установлено"
#: ../src/Addons.cpp:402
msgid "Updatable"
msgstr "Есть обновления"
#: ../src/Addons.cpp:412
msgid "Not installed"
msgstr "Не установлено"
#: ../src/Addons.cpp:625
#, c-format
msgid "Version: %d\n"
msgstr "Версия: %d\n"
#: ../src/Addons.cpp:627
#, c-format
msgid "Installed version: %d\n"
msgstr "Установленная версия: %d\n"
#: ../src/Addons.cpp:630
#, c-format
msgid "License: %s\n"
msgstr "Лицензия: %s\n"
#: ../src/Addons.cpp:633
#, c-format
msgid "Website: %s\n"
msgstr "Веб-сайт: %s\n"
#: ../src/Addons.cpp:637
msgid "(No descriptions provided)"
-msgstr "(Описания нет)"
+msgstr "(Нет описания)"
#: ../src/Addons.cpp:657 ../src/Addons.cpp:684
msgid "Remove"
msgstr "Удалить"
#: ../src/Addons.cpp:673
msgid "Update"
msgstr "Обновить"
#: ../src/Addons.cpp:679
msgid "Install"
msgstr "Установить"
#: ../src/Addons.cpp:774
#, c-format
msgid "This addon can't be removed because it's needed by %s."
-msgstr "Это дополнение удалить нельзя, оно нужно для правильной работы %s."
+msgstr "Это дополнение нельзя удалить, оно необходимо для правильной работы %s."
#: ../src/Addons.cpp:774 ../src/Addons.cpp:1051
msgid "Dependency"
msgstr "Зависимости"
#: ../src/Addons.cpp:803
#, c-format
msgid "WARNING: File '%s' appears to have been removed already."
-msgstr "ВНИМАНИЕ: файл '%s' уже удален."
+msgstr "ВНИМАНИЕ: файл '%s' уже удалён."
#: ../src/Addons.cpp:803 ../src/Addons.cpp:810 ../src/Addons.cpp:818
#: ../src/Addons.cpp:825 ../src/Addons.cpp:834 ../src/Addons.cpp:840
#: ../src/Addons.cpp:859 ../src/Addons.cpp:866 ../src/Addons.cpp:893
#: ../src/Addons.cpp:900 ../src/Addons.cpp:907 ../src/Addons.cpp:918
#: ../src/Addons.cpp:947 ../src/Addons.cpp:952 ../src/Addons.cpp:962
#: ../src/Addons.cpp:968 ../src/Addons.cpp:981 ../src/Addons.cpp:986
#: ../src/Addons.cpp:1008 ../src/Addons.cpp:1014 ../src/Addons.cpp:1044
msgid "Addon error"
msgstr "Ошибка дополнения"
#: ../src/Addons.cpp:810
#, c-format
msgid "ERROR: Unable to remove file '%s'!"
msgstr "ОШИБКА: не получается удалить файл '%s'!"
#: ../src/Addons.cpp:818
#, c-format
msgid "WARNING: Directory '%s' appears to have been removed already."
-msgstr "ВНИМАНИЕ: Директорию '%s' уже удалили."
+msgstr "ВНИМАНИЕ: папка '%s' уже удалена."
#: ../src/Addons.cpp:825
#, c-format
msgid "ERROR: Unable to remove directory '%s'!"
-msgstr "ОШИБКА: не получается удалить директорию '%s'!"
+msgstr "ОШИБКА: не получается удалить папку '%s'!"
#: ../src/Addons.cpp:834
#, c-format
msgid "WARNING: Level '%s' appears to have been removed already."
-msgstr "ВНИМАНИЕ: Уровень '%s' уже удалили."
+msgstr "ВНИМАНИЕ: уровень '%s' уже удалён."
#: ../src/Addons.cpp:840
#, c-format
msgid "ERROR: Unable to remove level '%s'!"
msgstr "ОШИБКА: не получается удалить уровень '%s'!"
#: ../src/Addons.cpp:859
#, c-format
msgid "WARNING: Levelpack directory '%s' appears to have been removed already."
-msgstr "ВНИМАНИЕ: Набор уровней '%s' уже удалили."
+msgstr "ВНИМАНИЕ: папка со сборником уровней '%s' уже удалена."
#: ../src/Addons.cpp:866
#, c-format
msgid "ERROR: Unable to remove levelpack directory '%s'!"
msgstr "ОШИБКА: не получается удалить набор уровней '%s'!"
#: ../src/Addons.cpp:893
#, c-format
msgid "ERROR: Unable to download addon file %s."
msgstr "ОШИБКА: не получается загрузить файл дополнения %s."
#: ../src/Addons.cpp:900
#, c-format
msgid "ERROR: Unable to extract addon file %s."
msgstr "ОШИБКА: не получается распаковать файл дополнения %s."
#: ../src/Addons.cpp:907
msgid "ERROR: Addon is missing metadata!"
-msgstr "ОШИБКА: дополнение не содержит метаданных!"
+msgstr "ОШИБКА: в дополнении отсутствуют метаданные!"
#: ../src/Addons.cpp:918
msgid "ERROR: Invalid file format for metadata file!"
msgstr "ОШИБКА: неверный формат файла метаданных!"
#: ../src/Addons.cpp:947
#, c-format
msgid "WARNING: File '%s' already exists, addon may be broken or not working!"
-msgstr ""
-"ВНИМАНИЕ: Файл '%s' уже существует. Возможно, дополнение глючит или не "
-"работает!"
+msgstr "ВНИМАНИЕ: файл '%s' уже существует, дополнение может глючить или не работать!"
#: ../src/Addons.cpp:952
#, c-format
msgid ""
"WARNING: Unable to copy file '%s' to '%s', addon may be broken or not "
"working!"
msgstr ""
-"ВНИМАНИЕ: не получается скопировать файл '%s' в '%s'. Возможно, дополнение "
-"глючит или не работает!"
+"ВНИМАНИЕ: не получается скопировать файл '%s' в '%s', "
+"дополнение может глючить или не работать!"
#: ../src/Addons.cpp:962
#, c-format
msgid ""
"WARNING: Destination directory '%s' already exists, addon may be broken or "
"not working!"
msgstr ""
-"ВНИМАНИЕ: директория '%s' уже существует. Возможно, дополнение глючит или не "
-"работает!"
+"ВНИМАНИЕ: папка '%s' уже существует, "
+"дополнение может глючить или не работать!"
#: ../src/Addons.cpp:968 ../src/Addons.cpp:1014
#, c-format
msgid ""
"WARNING: Unable to move directory '%s' to '%s', addon may be broken or not "
"working!"
msgstr ""
-"ВНИМАНИЕ: не получается скопировать директорию '%s' в '%s'. Возможно, "
-"дополнение глючит или не работает!"
+"ВНИМАНИЕ: не получается переместить папку '%s' в '%s', "
+"дополнение может глючить или не работать!"
#: ../src/Addons.cpp:981
#, c-format
msgid "WARNING: Level '%s' already exists, addon may be broken or not working!"
-msgstr ""
-"ВНИМАНИЕ: Уровень '%s' уже существует. Возможно, дополнение глючит или не "
-"работает!"
+msgstr "ВНИМАНИЕ: уровень '%s' уже существует, дополнение может глючить или не работать!"
#: ../src/Addons.cpp:986
#, c-format
msgid ""
"WARNING: Unable to copy level '%s' to '%s', addon may be broken or not "
"working!"
msgstr ""
-"ВНИМАНИЕ: не получается скопировать уровень '%s' в '%s'. Возможно, "
-"дополнение глючит или не работает!"
+"ВНИМАНИЕ: не получается скопировать уровень '%s' в '%s', "
+"дополнение может глючить или не работать!"
#: ../src/Addons.cpp:1008
#, c-format
msgid ""
"WARNING: Levelpack directory '%s' already exists, addon may be broken or not "
"working!"
msgstr ""
-"ВНИМАНИЕ: Директория с набором уровней '%s' уже существует. Возможно, "
-"дополнение глючит или не работает!"
+"ВНИМАНИЕ: папка со сборником уровней '%s' уже существует, "
+"дополнение может глючить или не работать!"
#: ../src/Addons.cpp:1044
#, c-format
msgid "ERROR: Addon requires another addon (%s) which can't be found!"
msgstr ""
"ОШИБКА: для правильной работы дополнения необходимо установить другое "
-"дополнение (%s)!"
+"дополнение (%s), однако его не удалось найти!"
#: ../src/Addons.cpp:1051
#, c-format
msgid "The addon %s is needed and will be installed now."
-msgstr "Необходимо установить дополнение %s. Установка сейчас начнется."
+msgstr "Необходимо установить дополнение %s. Установка сейчас начнётся."
#: ../src/Block.cpp:822 ../src/LevelEditor.cpp:265
msgid "On"
-msgstr "Вкл"
+msgstr "Вкл."
#: ../src/Block.cpp:823 ../src/LevelEditor.cpp:266
msgid "Off"
-msgstr "Выкл"
+msgstr "Выкл."
#: ../src/CommandManager.cpp:41
#, c-format
msgid "Undo %s"
msgstr "Отменить %s"
#: ../src/CommandManager.cpp:43
msgid "Can't undo"
-msgstr "Отменить не получается"
+msgstr "Невозможно отменить"
#: ../src/CommandManager.cpp:49
#, c-format
msgid "Redo %s"
msgstr "Повторить %s"
#: ../src/CommandManager.cpp:51
msgid "Can't redo"
-msgstr "Повторить не получается"
+msgstr "Невозможно повторить"
#: ../src/Commands.cpp:190
msgid "Resize level"
-msgstr "Изменение размеров уровня"
+msgstr "Изменить размер уровня"
#: ../src/Commands.cpp:807
msgid "Modify level property"
-msgstr "Изменение свойств уровня"
+msgstr "Изменить свойства уровня"
#: ../src/Commands.cpp:919
#, c-format
msgid "Add scenery layer %s"
-msgstr "Добавление слоя ландшафта %s"
+msgstr "Добавить фоновый слой %s"
#: ../src/Commands.cpp:921
#, c-format
msgid "Delete scenery layer %s"
-msgstr "Удаление слоя ландшафта %s"
+msgstr "Удалить фоновый слой %s"
#: ../src/Commands.cpp:951
#, c-format
msgid "Modify the property of scenery layer %s"
-msgstr "Изменение свойств слоя ландшафта %s"
+msgstr "Изменить свойства фонового слоя %s"
#: ../src/Commands.cpp:1040
#, c-format
msgid "Move %d object from layer %s to layer %s"
msgid_plural "Move %d objects from layer %s to layer %s"
msgstr[0] "Переместить %d объект из слоя %s в слой %s"
msgstr[1] "Переместить %d объекта из слоя %s в слой %s"
msgstr[2] "Переместить %d объектов из слоя %s в слой %s"
-msgstr[3] "объекта"
+msgstr[3] "Переместить %d объектов из слоя %s в слой %s"
#: ../src/CreditsMenu.cpp:35 ../src/TitleMenu.cpp:53
msgid "Credits"
msgstr "Благодарности"
# TRANSLATORS: Font used in GUI:
# - Use "knewave" for languages using Latin and Latin-derived alphabets
# - "DroidSansFallback" can be used for non-Latin writing systems
#: ../src/Functions.cpp:569 ../src/Functions.cpp:570 ../src/Functions.cpp:571
#: ../src/Functions.cpp:588
msgid "knewave"
msgstr "DejaVuSansCondensed-Oblique"
#: ../src/Functions.cpp:575
msgid "Blokletters-Viltstift"
msgstr "DejaVuSansCondensed-Oblique"
#: ../src/Functions.cpp:674
msgid "Loading..."
msgstr "Загрузка..."
#: ../src/Functions.cpp:1243 ../src/Functions.cpp:1270
#: ../src/LevelEditor.cpp:559 ../src/LevelEditor.cpp:693
#: ../src/LevelEditor.cpp:758 ../src/LevelEditor.cpp:821
#: ../src/LevelEditor.cpp:908 ../src/LevelEditor.cpp:1033
#: ../src/LevelEditor.cpp:1083 ../src/LevelEditor.cpp:1180
#: ../src/LevelEditor.cpp:1244 ../src/LevelEditor.cpp:2923
#: ../src/LevelEditSelect.cpp:244 ../src/LevelEditSelect.cpp:277
#: ../src/LevelEditSelect.cpp:317
msgid "OK"
-msgstr "ОК"
+msgstr "Да"
#: ../src/Functions.cpp:1244 ../src/Functions.cpp:1256
#: ../src/Functions.cpp:1266 ../src/LevelEditor.cpp:565
#: ../src/LevelEditor.cpp:699 ../src/LevelEditor.cpp:764
#: ../src/LevelEditor.cpp:827 ../src/LevelEditor.cpp:914
#: ../src/LevelEditor.cpp:1039 ../src/LevelEditor.cpp:1089
#: ../src/LevelEditor.cpp:1186 ../src/LevelEditor.cpp:1250
#: ../src/LevelEditor.cpp:2929 ../src/LevelEditSelect.cpp:248
#: ../src/LevelEditSelect.cpp:281 ../src/LevelEditSelect.cpp:321
#: ../src/OptionsMenu.cpp:289
msgid "Cancel"
msgstr "Отмена"
#: ../src/Functions.cpp:1248
msgid "Abort"
msgstr "Прервать"
#: ../src/Functions.cpp:1249 ../src/Functions.cpp:1265
msgid "Retry"
msgstr "Попробовать снова"
#: ../src/Functions.cpp:1250
msgid "Ignore"
msgstr "Пропустить"
#: ../src/Functions.cpp:1254 ../src/Functions.cpp:1260
msgid "Yes"
msgstr "Да"
#: ../src/Functions.cpp:1255 ../src/Functions.cpp:1261
msgid "No"
msgstr "Нет"
#: ../src/Game.cpp:280 ../src/Game.cpp:1236
#, c-format
msgid "Level %d %s"
msgstr "Уровень %d %s"
#: ../src/Game.cpp:915
#, c-format
msgid "Press %s key to save the game."
msgstr "Чтобы сохранить игру, нажмите клавишу %s."
#: ../src/Game.cpp:920
#, c-format
msgid "Press %s key to swap the position of player and shadow."
msgstr "Чтобы поменять позицию игрока и тени, нажмите клавишу %s."
#: ../src/Game.cpp:925
#, c-format
msgid "Press %s key to activate the switch."
msgstr "Чтобы активировать переключатель, нажмите клавишу %s."
#: ../src/Game.cpp:930
#, c-format
msgid "Press %s key to teleport."
msgstr "Чтобы телепортироваться, нажмите клавишу %s."
#: ../src/Game.cpp:972
#, c-format
msgid "Press %s to restart current level or press %s to load the game."
-msgstr ""
-"Чтобы перезапустить этот уровень, нажмите %s, или нажмите %s, чтобы "
-"загрузить игру."
+msgstr "Чтобы перезапустить этот уровень, нажмите %s, или нажмите %s, чтобы загрузить игру."
#: ../src/Game.cpp:983
#, c-format
msgid "Press %s to restart current level."
msgstr "Чтобы перезапустить этот уровень, нажмите %s."
#: ../src/Game.cpp:996
msgid "Your shadow has died."
msgstr "Ваша тень умерла."
#: ../src/Game.cpp:1052
#, c-format
msgid "%d recording"
msgid_plural "%d recordings"
msgstr[0] "%d запись"
msgstr[1] "%d записи"
msgstr[2] "%d записей"
-msgstr[3] "%d записи"
+msgstr[3] "%d записей"
#: ../src/Game.cpp:1224
msgid "You've finished:"
-msgstr "Завершенных уровней:"
+msgstr "Завершённых уровней:"
#: ../src/Game.cpp:1291
#, c-format
msgid "Time: %-.2fs"
msgstr "Время: %-.2fs"
#: ../src/Game.cpp:1300
#, c-format
msgid "Best time: %-.2fs"
msgstr "Лучшее время: %-.2fs"
#: ../src/Game.cpp:1311
#, c-format
msgid "Target time: %-.2fs"
msgstr "Необходимое время: %-.2fs"
#: ../src/Game.cpp:1332
#, c-format
msgid "Recordings: %d"
msgstr "Записей: %d"
#: ../src/Game.cpp:1340
#, c-format
msgid "Best recordings: %d"
msgstr "Лучшая запись: %d"
#: ../src/Game.cpp:1350
#, c-format
msgid "Target recordings: %d"
msgstr "Необходимо записей: %d"
#: ../src/Game.cpp:1363
#, c-format
msgid "You earned the %s medal"
msgstr "Вы получили %s медаль"
#: ../src/Game.cpp:1363
msgid "GOLD"
-msgstr "золотую"
+msgstr "ЗОЛОТУЮ"
#: ../src/Game.cpp:1363
msgid "SILVER"
-msgstr "серебряную"
+msgstr "СЕРЕБРЯНУЮ"
#: ../src/Game.cpp:1363
msgid "BRONZE"
-msgstr "бронзовую"
+msgstr "БРОНЗОВУЮ"
#: ../src/Game.cpp:1390
msgid "Menu"
msgstr "Меню"
#: ../src/Game.cpp:1397 ../src/InputManager.cpp:47
msgid "Restart"
msgstr "Снова"
#: ../src/Game.cpp:1404
msgid "Next"
msgstr "Далее"
#: ../src/Game.cpp:1430
msgid "Game replay is done."
msgstr "Воспроизведение завершено."
#: ../src/Game.cpp:1430
msgid "Game Replay"
msgstr "Воспроизведение игры"
#: ../src/Game.cpp:1767 ../src/Game.cpp:1769
msgid "Congratulations"
msgstr "Поздравляем"
#: ../src/Game.cpp:1769
msgid "You have finished the levelpack!"
-msgstr "Вы закончили этот набор уровней!"
+msgstr "Вы закончили этот сборник уровней!"
#: ../src/InputManager.cpp:46
msgid "Up (in menu)"
msgstr "Вверх (в меню)"
#: ../src/InputManager.cpp:46
msgid "Down (in menu)"
msgstr "Вниз (в меню)"
#: ../src/InputManager.cpp:46
msgid "Left"
msgstr "Влево"
#: ../src/InputManager.cpp:46
msgid "Right"
msgstr "Вправо"
#: ../src/InputManager.cpp:46
msgid "Jump"
msgstr "Прыжок"
#: ../src/InputManager.cpp:46
msgid "Action"
msgstr "Действие"
#: ../src/InputManager.cpp:46
msgid "Space (Record)"
-msgstr "Пробел (запись)"
+msgstr "Пробел (Запись)"
#: ../src/InputManager.cpp:46
msgid "Cancel recording"
msgstr "Отменить запись"
#: ../src/InputManager.cpp:47
msgid "Escape"
msgstr "Выход"
#: ../src/InputManager.cpp:47
msgid "Tab (View shadow/Level prop.)"
-msgstr "Tab (смотреть на тень/настройки уровня)"
+msgstr "Tab (См. тень/Настр. уровня)"
#: ../src/InputManager.cpp:47
msgid "Save game (in editor)"
msgstr "Сохранить игру (в редакторе)"
#: ../src/InputManager.cpp:47
msgid "Load game"
msgstr "Загрузить игру"
#: ../src/InputManager.cpp:47
msgid "Swap (in editor)"
-msgstr "Перестановка (в редакторе)"
+msgstr "Поменяться местами (в редакторе)"
#: ../src/InputManager.cpp:48
msgid "Teleport (in editor)"
msgstr "Телепорт (в редакторе)"
#: ../src/InputManager.cpp:48
msgid "Suicide (in editor)"
msgstr "Смерть (в редакторе)"
#: ../src/InputManager.cpp:48
msgid "Shift (in editor)"
msgstr "Сдвиг (в редакторе)"
#: ../src/InputManager.cpp:48
msgid "Next block type (in Editor)"
msgstr "Следующий вид блока (в редакторе)"
#: ../src/InputManager.cpp:49
msgid "Previous block type (in editor)"
msgstr "Предыдущий вид блока (в редакторе)"
#: ../src/InputManager.cpp:49
msgid "Select (in menu)"
msgstr "Выбрать (в меню)"
#: ../src/InputManager.cpp:156
#, c-format
msgid "(Key %d)"
-msgstr ""
+msgstr "(Клавиша %d)"
#: ../src/InputManager.cpp:163
#, c-format
msgid "Joystick axis %d %s"
-msgstr ""
+msgstr "Ось джойстика %d %s"
#: ../src/InputManager.cpp:166
#, c-format
msgid "Joystick button %d"
-msgstr ""
+msgstr "Кнопка джойстика %d"
#: ../src/InputManager.cpp:171
#, c-format
msgid "Joystick hat %d left"
-msgstr ""
+msgstr "Джойстик %d влево"
#: ../src/InputManager.cpp:174
#, c-format
msgid "Joystick hat %d right"
-msgstr ""
+msgstr "Джойстик %d вправо"
#: ../src/InputManager.cpp:177
#, c-format
msgid "Joystick hat %d up"
-msgstr ""
+msgstr "Джойстик %d вверх"
#: ../src/InputManager.cpp:180
#, c-format
msgid "Joystick hat %d down"
-msgstr ""
+msgstr "Джойстик %d вниз"
#: ../src/InputManager.cpp:185
#, c-format
msgid "Joystick hat %d %d"
-msgstr ""
+msgstr "Джойстик %d %d"
#: ../src/InputManager.cpp:202
msgid "OR"
-msgstr ""
+msgstr "ИЛИ"
#: ../src/InputManager.cpp:416
msgid "Select an item and press a key to change it."
-msgstr ""
+msgstr "Выберите элемент и нажмите клавишу, чтобы изменить его."
#: ../src/InputManager.cpp:419
msgid "Press backspace to clear the selected item."
-msgstr ""
+msgstr "Нажмите backspace, чтобы очистить выбранный элемент."
#: ../src/LevelEditor.cpp:56
msgid "Block"
msgstr "Блок"
#: ../src/LevelEditor.cpp:56
msgid "Player Start"
-msgstr "Точка начала"
+msgstr "Здесь начинает игрок"
#: ../src/LevelEditor.cpp:56
msgid "Shadow Start"
-msgstr "Точка начала тени"
+msgstr "Здесь начинает тень"
#: ../src/LevelEditor.cpp:57
msgid "Exit"
msgstr "Выход"
#: ../src/LevelEditor.cpp:57
msgid "Shadow Block"
msgstr "Блок для тени"
#: ../src/LevelEditor.cpp:57
msgid "Spikes"
msgstr "Шипы"
#: ../src/LevelEditor.cpp:58
msgid "Checkpoint"
-msgstr "Контрольная точка"
+msgstr "Чекпоинт"
#: ../src/LevelEditor.cpp:58 ../src/LevelEditSelect.cpp:312
msgid "Swap"
-msgstr "Перестановка"
+msgstr "Поменяться"
#: ../src/LevelEditor.cpp:58
msgid "Fragile"
-msgstr "Непрочные блоки"
+msgstr "Хрупкий"
#: ../src/LevelEditor.cpp:59
msgid "Moving Block"
msgstr "Движущийся блок"
#: ../src/LevelEditor.cpp:59
msgid "Moving Shadow Block"
msgstr "Движущийся блок для тени"
#: ../src/LevelEditor.cpp:59
msgid "Moving Spikes"
msgstr "Движущиеся шипы"
#: ../src/LevelEditor.cpp:60
msgid "Teleporter"
-msgstr "Телепорт"
+msgstr "Телепортер"
#: ../src/LevelEditor.cpp:60
msgid "Button"
msgstr "Кнопка"
#: ../src/LevelEditor.cpp:60
msgid "Switch"
msgstr "Переключатель"
#: ../src/LevelEditor.cpp:61
msgid "Conveyor Belt"
msgstr "Конвейер"
#: ../src/LevelEditor.cpp:61
msgid "Shadow Conveyor Belt"
msgstr "Конвейер для тени"
#: ../src/LevelEditor.cpp:61
msgid "Notification Block"
msgstr "Блок оповещения"
#: ../src/LevelEditor.cpp:61
msgid "Collectable"
-msgstr "Ключ"
+msgstr "Подбираемый предмет"
#: ../src/LevelEditor.cpp:61
msgid "Pushable"
-msgstr ""
+msgstr "Толкаемый предмет"
#: ../src/LevelEditor.cpp:65 ../src/LevelEditor.cpp:310
msgid "Select"
msgstr "Выбрать"
#: ../src/LevelEditor.cpp:65
msgid "Add"
msgstr "Добавить"
#: ../src/LevelEditor.cpp:65 ../src/LevelEditor.cpp:311
msgid "Delete"
msgstr "Удалить"
#: ../src/LevelEditor.cpp:65 ../src/LevelPlaySelect.cpp:66
#: ../src/TitleMenu.cpp:43
msgid "Play"
msgstr "Играть"
#: ../src/LevelEditor.cpp:65 ../src/LevelEditor.cpp:2852
msgid "Level settings"
msgstr "Настройки уровня"
#: ../src/LevelEditor.cpp:65
msgid "Save level"
msgstr "Сохранить уровень"
#: ../src/LevelEditor.cpp:65
msgid "Back to menu"
msgstr "Назад в меню"
#: ../src/LevelEditor.cpp:65
msgid "Configure"
msgstr "Настройки"
#: ../src/LevelEditor.cpp:84
#, c-format
msgid "%s (Scenery)"
-msgstr ""
+msgstr "%s (Фон)"
#: ../src/LevelEditor.cpp:267
msgid "Toggle"
msgstr "Переключать"
#: ../src/LevelEditor.cpp:270
msgid "Complete"
-msgstr "Целый"
+msgstr "Завершённый"
#: ../src/LevelEditor.cpp:271
msgid "One step"
-msgstr "На два шага"
+msgstr "Один шаг"
#: ../src/LevelEditor.cpp:272
msgid "Two steps"
-msgstr "На один шаг"
+msgstr "Два шага"
#: ../src/LevelEditor.cpp:273
msgid "Gone"
msgstr "Разрушен"
#: ../src/LevelEditor.cpp:291
msgid "Negative infinity"
-msgstr ""
+msgstr "Минус бесконечность"
#: ../src/LevelEditor.cpp:293
msgid "Zero"
-msgstr ""
+msgstr "Ноль"
#: ../src/LevelEditor.cpp:295
msgid "Level size"
-msgstr ""
+msgstr "Размер уровня"
#: ../src/LevelEditor.cpp:297
msgid "Positive infinity"
-msgstr ""
+msgstr "Плюс бесконечность"
#: ../src/LevelEditor.cpp:299
msgid "Default"
msgstr "Стандартный"
#: ../src/LevelEditor.cpp:308
msgid "Deselect"
-msgstr ""
+msgstr "Отменить выбор"
#: ../src/LevelEditor.cpp:318 ../src/LevelEditor.cpp:1136
#, c-format
msgid "Horizontal repeat start: %s"
-msgstr ""
+msgstr "Начать горизонтальное повторение: %s"
#: ../src/LevelEditor.cpp:320 ../src/LevelEditor.cpp:1137
#, c-format
msgid "Horizontal repeat end: %s"
-msgstr ""
+msgstr "Завершить горизонтальное повторение: %s"
#: ../src/LevelEditor.cpp:322 ../src/LevelEditor.cpp:1138
#, c-format
msgid "Vertical repeat start: %s"
-msgstr ""
+msgstr "Начать вертикальное повторение: %s"
#: ../src/LevelEditor.cpp:324 ../src/LevelEditor.cpp:1139
#, c-format
msgid "Vertical repeat end: %s"
-msgstr ""
+msgstr "Завершить вертикальное повторение: %s"
#: ../src/LevelEditor.cpp:329 ../src/LevelEditor.cpp:1150
msgid "Custom scenery"
-msgstr ""
+msgstr "Настроить фон"
#: ../src/LevelEditor.cpp:335 ../src/LevelEditor.cpp:600
#: ../src/LevelEditor.cpp:602
msgid "Visible"
-msgstr ""
+msgstr "Видимый"
#: ../src/LevelEditor.cpp:344
msgid "Link"
-msgstr ""
+msgstr "Ссылка"
#: ../src/LevelEditor.cpp:345
msgid "Remove Links"
-msgstr ""
+msgstr "Убрать ссылки"
#: ../src/LevelEditor.cpp:349 ../src/LevelEditor.cpp:624
#: ../src/LevelEditor.cpp:626
msgid "Automatic"
-msgstr ""
+msgstr "Авто"
#: ../src/LevelEditor.cpp:359 ../src/LevelEditor.cpp:649
#, c-format
msgid "Behavior: %s"
-msgstr ""
+msgstr "Поведение: %s"
#: ../src/LevelEditor.cpp:362
msgid "Path"
msgstr "Путь"
#: ../src/LevelEditor.cpp:363
msgid "Remove Path"
-msgstr ""
+msgstr "Удалить путь"
#: ../src/LevelEditor.cpp:365 ../src/LevelEditor.cpp:371
#: ../src/LevelEditor.cpp:587 ../src/LevelEditor.cpp:589
msgid "Activated"
-msgstr ""
+msgstr "Активировано"
#: ../src/LevelEditor.cpp:366 ../src/LevelEditor.cpp:612
#: ../src/LevelEditor.cpp:614
msgid "Looping"
-msgstr ""
+msgstr "Повторять"
#: ../src/LevelEditor.cpp:372 ../src/LevelEditor.cpp:3526
msgid "Speed"
-msgstr ""
+msgstr "Скорость"
#: ../src/LevelEditor.cpp:378 ../src/LevelEditor.cpp:668
#, c-format
msgid "State: %s"
-msgstr ""
+msgstr "Состояние: %s"
#: ../src/LevelEditor.cpp:382 ../src/LevelEditor.cpp:3511
msgid "Message"
-msgstr ""
+msgstr "Сообщение"
#: ../src/LevelEditor.cpp:384 ../src/LevelEditor.cpp:1202
#: ../src/LevelEditor.cpp:3825
msgid "Appearance"
-msgstr ""
+msgstr "Внешний вид"
#: ../src/LevelEditor.cpp:389 ../src/LevelEditor.cpp:431
#: ../src/LevelEditor.cpp:715
msgid "Scripting"
-msgstr ""
+msgstr "Скрипты"
#: ../src/LevelEditor.cpp:402 ../src/LevelEditor.cpp:867
#: ../src/LevelEditor.cpp:885
#, c-format
msgid "Background layer: %s"
-msgstr ""
+msgstr "Слой фона: %s"
#: ../src/LevelEditor.cpp:409 ../src/LevelEditor.cpp:866
#: ../src/LevelEditor.cpp:884
msgid "Blocks layer"
-msgstr ""
+msgstr "Сбой блоков"
#: ../src/LevelEditor.cpp:417 ../src/LevelEditor.cpp:867
#: ../src/LevelEditor.cpp:885
#, c-format
msgid "Foreground layer: %s"
-msgstr ""
+msgstr "Передний план: %s"
#: ../src/LevelEditor.cpp:423
msgid "Add new layer"
-msgstr ""
+msgstr "Добавить слой"
#: ../src/LevelEditor.cpp:424
msgid "Delete selected layer"
-msgstr ""
+msgstr "Удалить выбранный слой"
#: ../src/LevelEditor.cpp:425
msgid "Configure selected layer"
-msgstr ""
+msgstr "Настроить выбранный слой"
#: ../src/LevelEditor.cpp:426
msgid "Move selected object to layer"
-msgstr ""
+msgstr "Переместить выбранный объект в слой"
#: ../src/LevelEditor.cpp:430 ../src/OptionsMenu.cpp:55
msgid "Settings"
msgstr "Настройки"
#: ../src/LevelEditor.cpp:463
msgid ""
"NOTE: the layers are sorted by name alphabetically.\n"
"The layer is background layer if its name is < 'f'\n"
"by dictionary order, otherwise it's foreground layer."
-msgstr ""
+msgstr "ЗАМЕТКА: слои отсортированы по названию в алфавитном порядке.\n"
+"Слой является фоновым слоем, если его имя < 'f'\n"
+"по словарному порядку, в противоположном случае - это слой переднего плана."
#: ../src/LevelEditor.cpp:539
msgid "Notification block"
msgstr "Блок оповещения"
#: ../src/LevelEditor.cpp:545
msgid "Enter message here:"
msgstr "Введите сообщение:"
#: ../src/LevelEditor.cpp:646
msgid "Behavior"
-msgstr ""
+msgstr "Поведение"
#: ../src/LevelEditor.cpp:665
msgid "State"
-msgstr ""
+msgstr "Состояние"
#: ../src/LevelEditor.cpp:673
msgid "Conveyor belt speed"
-msgstr ""
+msgstr "Скорость конвейера"
#: ../src/LevelEditor.cpp:679
msgid "Enter speed here:"
msgstr "Введите скорость:"
#: ../src/LevelEditor.cpp:690
msgid "NOTE: 1 Speed = 0.08 block/s"
-msgstr ""
+msgstr "ПРИМ.: 1 Скорость = 0,08 блоков/с"
#: ../src/LevelEditor.cpp:721
msgid "Id:"
-msgstr ""
+msgstr "Ид:"
#: ../src/LevelEditor.cpp:787
msgid "Level Scripting"
-msgstr ""
+msgstr "Скрипты уровня"
#: ../src/LevelEditor.cpp:892
msgid "Add layer"
-msgstr ""
+msgstr "Добавить слой"
#: ../src/LevelEditor.cpp:898
msgid "Enter the layer name:"
-msgstr ""
+msgstr "Введите название слоя:"
#: ../src/LevelEditor.cpp:943
#, c-format
msgid "Are you sure you want to delete layer '%s'?"
-msgstr ""
+msgstr "Вы уверены, что Вы хотите удалить слой '%s'?"
#: ../src/LevelEditor.cpp:944
msgid "Delete layer"
-msgstr ""
+msgstr "Удалить слой"
#: ../src/LevelEditor.cpp:968
msgid "Layer settings"
-msgstr ""
+msgstr "Настроить слой"
#: ../src/LevelEditor.cpp:974
msgid "Layer name:"
-msgstr ""
+msgstr "Название слоя:"
#: ../src/LevelEditor.cpp:989
msgid "Layer moving speed (1 speed = 0.8 block/s):"
-msgstr ""
+msgstr "Скорость перемещения слоя (1 скорость = 0,08 блоков/с):"
#: ../src/LevelEditor.cpp:1010
msgid "Speed of following camera:"
-msgstr ""
+msgstr "Скорость камеры:"
#: ../src/LevelEditor.cpp:1062
msgid "Move to layer"
-msgstr ""
+msgstr "Переместить в слой"
#: ../src/LevelEditor.cpp:1068
msgid "Enter the layer name (create new layer if necessary):"
-msgstr ""
+msgstr "Введите название слоя (создать новый слой при необходимости):"
#: ../src/LevelEditor.cpp:1132
msgid "Repeat mode"
-msgstr ""
+msgstr "Режим повторения"
#: ../src/LevelEditor.cpp:1156
msgid "Custom scenery:"
-msgstr ""
+msgstr "Фон:"
#: ../src/LevelEditor.cpp:1219
msgid "(Use the default appearance for this block)"
-msgstr ""
+msgstr "(Использовать обычный вид этого блока)"
#: ../src/LevelEditor.cpp:1465 ../src/LevelEditor.cpp:1707
#: ../src/LevelEditor.cpp:1723 ../src/LevelEditor.cpp:1772
#: ../src/LevelEditor.cpp:4400
msgid "Custom scenery block"
-msgstr ""
+msgstr "Блок фона"
#: ../src/LevelEditor.cpp:1673
msgid "Toolbox"
-msgstr "Инструментарий"
+msgstr "Инструменты"
#: ../src/LevelEditor.cpp:1705
#, c-format
msgid "Resize %s"
-msgstr ""
+msgstr "Изменить размер %s"
#: ../src/LevelEditor.cpp:1705
#, c-format
msgid "Move %s"
-msgstr ""
+msgstr "Переместить %s"
#: ../src/LevelEditor.cpp:1713
#, c-format
msgid "Move %d object"
msgid_plural "Move %d objects"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Переместить %d объект"
+msgstr[1] "Переместить %d объекта"
+msgstr[2] "Переместить %d объектов"
+msgstr[3] "Переместить %d объектов"
#: ../src/LevelEditor.cpp:1721
#, c-format
msgid "Add %s"
-msgstr ""
+msgstr "Добавить %s"
#: ../src/LevelEditor.cpp:1721
#, c-format
msgid "Remove %s"
-msgstr ""
+msgstr "Удалить %s"
#: ../src/LevelEditor.cpp:1729
#, c-format
msgid "Add %d object"
msgid_plural "Add %d objects"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Добавить %d объект"
+msgstr[1] "Добавить %d объекта"
+msgstr[2] "Добавить %d объектов"
+msgstr[3] "Добавить %d объектов"
#: ../src/LevelEditor.cpp:1731
#, c-format
msgid "Remove %d object"
msgid_plural "Remove %d objects"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Удалить %d объект"
+msgstr[1] "Удалить %d объекта"
+msgstr[2] "Удалить %d объектов"
+msgstr[3] "Удалить %d объектов"
#: ../src/LevelEditor.cpp:1739
#, c-format
msgid "Add path to %s"
-msgstr ""
+msgstr "Добавить путь к %s"
#: ../src/LevelEditor.cpp:1741
#, c-format
msgid "Remove a path point from %s"
-msgstr ""
+msgstr "Удалить точку пути из %s"
#: ../src/LevelEditor.cpp:1747
#, c-format
msgid "Remove all paths from %s"
-msgstr ""
+msgstr "Удалить все пути из %s"
#: ../src/LevelEditor.cpp:1753
#, c-format
msgid "Add link from %s to %s"
-msgstr ""
+msgstr "Добавить сслыку между %s и %s"
#: ../src/LevelEditor.cpp:1759
#, c-format
msgid "Remove all links from %s"
-msgstr ""
+msgstr "Удалить все ссылки из %s"
#: ../src/LevelEditor.cpp:1766
msgid "Modify the %2 property of %1"
-msgstr ""
+msgstr "Изменить у %1 свойство %2"
#: ../src/LevelEditor.cpp:1818
#, c-format
msgid "Edit the script of %s"
-msgstr ""
+msgstr "Редактировать скрипт %s"
#: ../src/LevelEditor.cpp:1821
msgid "Edit the script of level"
-msgstr ""
+msgstr "Редактировать скрипт уровня"
#: ../src/LevelEditor.cpp:2146 ../src/LevelEditor.cpp:2226
msgid "The level has unsaved changes."
-msgstr ""
+msgstr "В уровне есть несохранённые изменения."
#: ../src/LevelEditor.cpp:2150 ../src/LevelEditor.cpp:2228
msgid "Are you sure you want to quit?"
msgstr "Вы действительно хотите выйти?"
#: ../src/LevelEditor.cpp:2150 ../src/LevelEditor.cpp:2228
msgid "Quit prompt"
-msgstr "Выход"
+msgstr "Подтвердить выход"
#: ../src/LevelEditor.cpp:2797 ../src/LevelEditor.cpp:2799
#, c-format
msgid "Level \"%s\" saved"
-msgstr "Уровень \"%s\" сохранен"
+msgstr "Уровень \"%s\" сохранён"
#: ../src/LevelEditor.cpp:2797 ../src/LevelEditor.cpp:2799
msgid "Saved"
msgstr "Сохранено"
#: ../src/LevelEditor.cpp:2859 ../src/LevelEditSelect.cpp:208
msgid "Name:"
msgstr "Название:"
#: ../src/LevelEditor.cpp:2866
msgid "Theme:"
msgstr "Тема:"
#: ../src/LevelEditor.cpp:2873
msgid "Examples: %DATA%/themes/classic"
-msgstr ""
+msgstr "Примеры: %DATA%/themes/classic"
#: ../src/LevelEditor.cpp:2875
msgid "or %USER%/themes/Orange"
-msgstr ""
+msgstr "или %USER%/themes/Orange"
#: ../src/LevelEditor.cpp:2878
msgid "Music:"
-msgstr ""
+msgstr "Музыка:"
#: ../src/LevelEditor.cpp:2887
msgid "Target time (s):"
msgstr "Необходимое время (с):"
#: ../src/LevelEditor.cpp:2903
msgid "Target recordings:"
msgstr "Необходимо записей:"
#: ../src/LevelEditor.cpp:2919
msgid "Restart level editor is required"
-msgstr ""
+msgstr "Необходимо перезапустить редактор уровней"
#: ../src/LevelEditor.cpp:3679 ../src/LevelEditor.cpp:3718
#: ../src/LevelEditor.cpp:3739
msgid "Please enter a layer name."
-msgstr ""
+msgstr "Пожалуйста, введите название слоя."
#: ../src/LevelEditor.cpp:3679 ../src/LevelEditor.cpp:3683
#: ../src/LevelEditor.cpp:3718 ../src/LevelEditor.cpp:3722
#: ../src/LevelEditor.cpp:3739 ../src/LevelEditor.cpp:3743
#: ../src/LevelEditSelect.cpp:644 ../src/LevelEditSelect.cpp:683
#: ../src/LevelEditSelect.cpp:688 ../src/LevelEditSelect.cpp:693
#: ../src/LevelEditSelect.cpp:698 ../src/LevelEditSelect.cpp:796
msgid "Error"
msgstr "Ошибка"
#: ../src/LevelEditor.cpp:3683 ../src/LevelEditor.cpp:3722
#, c-format
msgid "The layer '%s' already exists."
-msgstr ""
+msgstr "Слой '%s' уже существует."
#: ../src/LevelEditor.cpp:3743
msgid "Source and destination layers are the same."
-msgstr ""
+msgstr "Исходный и конечный слои совпадают."
#: ../src/LevelEditor.cpp:3760
msgid "Scenery"
-msgstr ""
+msgstr "Фон"
#: ../src/LevelEditor.cpp:4190 ../src/LevelEditor.cpp:4218
#, c-format
msgid "Speed: %d = %0.2f block/s"
-msgstr ""
+msgstr "Скорость: %d = %0.2f блоков/с"
#: ../src/LevelEditor.cpp:4203
msgid "Stop at this point"
-msgstr ""
+msgstr "Остановиться в этой точке"
#: ../src/LevelEditor.cpp:4208
#, c-format
msgid "Pause: %d = %0.3fs"
-msgstr ""
+msgstr "Пауза: %d = %0.3fс"
#: ../src/LevelEditSelect.cpp:41 ../src/TitleMenu.cpp:45
msgid "Map Editor"
msgstr "Редактор карт"
#: ../src/LevelEditSelect.cpp:66
msgid "New Levelpack"
-msgstr "Новый набор уровней"
+msgstr "Новый сборник уровней"
#: ../src/LevelEditSelect.cpp:71
msgid "Pack Properties"
-msgstr "Свойства набора"
+msgstr "Свойства сборника"
#: ../src/LevelEditSelect.cpp:76
msgid "Remove Pack"
-msgstr "Удалить набор"
+msgstr "Удалить сборник"
#: ../src/LevelEditSelect.cpp:81
msgid "Move Map"
msgstr "Переместить карту"
#: ../src/LevelEditSelect.cpp:89
msgid "Remove Map"
msgstr "Удалить карту"
#: ../src/LevelEditSelect.cpp:94
msgid "Edit Map"
msgstr "Редактировать карту"
#: ../src/LevelEditSelect.cpp:205
msgid "Properties"
msgstr "Свойства"
#: ../src/LevelEditSelect.cpp:217
msgid "Description:"
msgstr "Описание:"
#: ../src/LevelEditSelect.cpp:226
msgid "Congratulation text:"
msgstr "Текст поздравления:"
#: ../src/LevelEditSelect.cpp:235
msgid "Music list:"
-msgstr ""
+msgstr "Список музыки:"
#: ../src/LevelEditSelect.cpp:265 ../src/LevelEditSelect.cpp:485
msgid "Add level"
msgstr "Добавить уровень"
#: ../src/LevelEditSelect.cpp:268
msgid "File name:"
msgstr "Название файла:"
#: ../src/LevelEditSelect.cpp:293
msgid "Move level"
msgstr "Переместить уровень"
#: ../src/LevelEditSelect.cpp:296
msgid "Level: "
-msgstr "Уровень:"
+msgstr "Уровень: "
#: ../src/LevelEditSelect.cpp:310
msgid "Before"
-msgstr "До:"
+msgstr "До"
#: ../src/LevelEditSelect.cpp:311
msgid "After"
-msgstr "После:"
+msgstr "После"
#: ../src/LevelEditSelect.cpp:368 ../src/LevelPlaySelect.cpp:124
msgid "Individual levels which are not contained in any level packs"
-msgstr ""
+msgstr "Отдельные уровни, которые не содержатся ни в одном сборнике уровней"
#: ../src/LevelEditSelect.cpp:577
#, c-format
msgid "Are you sure remove the level pack '%s'?"
-msgstr ""
+msgstr "Вы уверены, что хотите удалить сборник уровней '%s'?"
#: ../src/LevelEditSelect.cpp:577 ../src/LevelEditSelect.cpp:607
msgid "Remove prompt"
-msgstr "Удаление"
+msgstr "Подтвердить удаление"
#: ../src/LevelEditSelect.cpp:607
#, c-format
msgid "Are you sure remove the map '%s'?"
-msgstr ""
+msgstr "Вы уверены, что хотите удалить карту '%s'?"
#: ../src/LevelEditSelect.cpp:644
msgid "Levelpack name cannot be empty."
-msgstr ""
+msgstr "Название сборника уровней не может быть пустым."
#: ../src/LevelEditSelect.cpp:683
#, c-format
msgid "The levelpack directory '%s' already exists!"
-msgstr ""
+msgstr "Папка сборника уровней '%s' уже существует!"
#: ../src/LevelEditSelect.cpp:688
#, c-format
msgid "Unable to create levelpack directory '%s'!"
-msgstr ""
+msgstr "Не удалось создать папку сборника уровней '%s'!"
#: ../src/LevelEditSelect.cpp:693
#, c-format
msgid "The levelpack file '%s' already exists!"
-msgstr ""
+msgstr "Файл сборника уровней '%s' уже существует!"
#: ../src/LevelEditSelect.cpp:698
#, c-format
msgid "Unable to create levelpack file '%s'!"
-msgstr ""
+msgstr "Не удалось создать файл сборника уровней '%s'!"
#: ../src/LevelEditSelect.cpp:758
msgid "No file name given for the new level."
-msgstr "Новому уровню не было присвоено имени файла."
+msgstr "Новому уровню не было присвоено имя файла."
#: ../src/LevelEditSelect.cpp:758
msgid "Missing file name"
msgstr "Отсутствует имя файла"
#: ../src/LevelEditSelect.cpp:796
#, c-format
msgid "The file %s already exists."
-msgstr ""
+msgstr "Файл %s уже существует."
#: ../src/LevelEditSelect.cpp:849
msgid "The entered level number isn't valid!"
-msgstr "Введенный номер уровня некорректен!"
+msgstr "Введённый номер уровня некорректен!"
#: ../src/LevelEditSelect.cpp:849
msgid "Illegal number"
-msgstr "Некорректный номер"
+msgstr "Некорректное число"
#: ../src/LevelInfoRender.cpp:19
msgid "Choose a level"
msgstr "Выберите уровень"
#: ../src/LevelInfoRender.cpp:20
msgid "Time:"
msgstr "Время:"
#: ../src/LevelInfoRender.cpp:21 ../src/StatisticsScreen.cpp:259
msgid "Recordings:"
msgstr "Записей:"
#: ../src/LevelPackManager.cpp:124
msgid "Custom Levels"
-msgstr ""
+msgstr "Другие уровни"
#: ../src/LevelPlaySelect.cpp:41
msgid "Select Level"
msgstr "Выберите уровень"
#: ../src/OptionsMenu.cpp:66
msgid "Clear Progress"
msgstr "Очистить прогресс"
#: ../src/OptionsMenu.cpp:109
msgid "General"
-msgstr ""
+msgstr "Общие"
#: ../src/OptionsMenu.cpp:110
msgid "Controls"
-msgstr ""
+msgstr "Управление"
#: ../src/OptionsMenu.cpp:121
msgid "Music"
msgstr "Музыка"
#: ../src/OptionsMenu.cpp:129
msgid "Sound"
msgstr "Звуки"
#: ../src/OptionsMenu.cpp:137
msgid "Resolution"
msgstr "Разрешение"
#: ../src/OptionsMenu.cpp:177
msgid "Language"
msgstr "Язык"
#: ../src/OptionsMenu.cpp:185
msgid "Auto-Detect"
msgstr "Автоопределение"
#: ../src/OptionsMenu.cpp:209
msgid "Theme"
msgstr "Тема"
#: ../src/OptionsMenu.cpp:247
msgid "Internet proxy"
msgstr "Интернет-прокси"
#: ../src/OptionsMenu.cpp:256
msgid "Fullscreen"
msgstr "На весь экран"
#: ../src/OptionsMenu.cpp:261
msgid "Quick record"
-msgstr ""
+msgstr "Быстрая запись"
#: ../src/OptionsMenu.cpp:266
msgid "Internet"
msgstr "Интернет"
#: ../src/OptionsMenu.cpp:271
msgid "Fade transition"
-msgstr ""
+msgstr "Плавный переход"
#: ../src/OptionsMenu.cpp:294
msgid "Save Changes"
msgstr "Сохранить изменения"
#: ../src/OptionsMenu.cpp:513
msgid "Do you really want to reset level progress?"
-msgstr "Вы действительно хотите очистить прогресс?"
+msgstr "Вы действительно хотите очистить прогресс уровня?"
#: ../src/OptionsMenu.cpp:513
msgid "Warning"
msgstr "Внимание"
#: ../src/StatisticsManager.cpp:386
msgid "New achievement:"
-msgstr ""
+msgstr "Новое достижение:"
#: ../src/StatisticsManager.cpp:394
#, c-format
msgid "Achieved on %s"
-msgstr ""
+msgstr "Достижение %s"
#: ../src/StatisticsManager.cpp:400
msgid "Unknown achievement"
-msgstr ""
+msgstr "Неизвестное достижение"
#: ../src/StatisticsManager.cpp:406
#, c-format
msgid "Achieved %1.0f%%"
-msgstr ""
+msgstr "Достижение %1.0f%%"
#: ../src/StatisticsManager.cpp:410
msgid "Not achieved"
-msgstr ""
+msgstr "Не достигнуто"
#: ../src/StatisticsScreen.cpp:57 ../src/TitleMenu.cpp:55
msgid "Achievements and Statistics"
-msgstr ""
+msgstr "Достижения и статистика"
#: ../src/StatisticsScreen.cpp:166
msgid "Achievements"
-msgstr ""
+msgstr "Достижения"
#: ../src/StatisticsScreen.cpp:167
msgid "Statistics"
-msgstr ""
+msgstr "Статистика"
#: ../src/StatisticsScreen.cpp:234
msgid "Total"
-msgstr ""
+msgstr "Всего"
#: ../src/StatisticsScreen.cpp:246
msgid "Traveling distance (m)"
-msgstr ""
+msgstr "Пройденное расстояние (м)"
#: ../src/StatisticsScreen.cpp:247
msgid "Jump times"
-msgstr ""
+msgstr "Прыжков"
#: ../src/StatisticsScreen.cpp:248
msgid "Die times"
-msgstr ""
+msgstr "Смертей"
#: ../src/StatisticsScreen.cpp:249
msgid "Squashed times"
-msgstr ""
+msgstr "Раздавлен"
#: ../src/StatisticsScreen.cpp:260
msgid "Switch pulled times:"
-msgstr ""
+msgstr "Включено выключателей:"
#: ../src/StatisticsScreen.cpp:261
msgid "Swap times:"
-msgstr ""
+msgstr "Поменялся:"
#: ../src/StatisticsScreen.cpp:262
msgid "Save times:"
-msgstr ""
+msgstr "Сохранений:"
#: ../src/StatisticsScreen.cpp:263
msgid "Load times:"
-msgstr ""
+msgstr "Загрузок:"
#: ../src/StatisticsScreen.cpp:268
msgid "Completed levels:"
-msgstr ""
+msgstr "Завершённых уровней:"
#: ../src/StatisticsScreen.cpp:306
msgid "In-game time:"
-msgstr ""
+msgstr "Время в игре:"
#: ../src/StatisticsScreen.cpp:308
msgid "Level editing time:"
-msgstr ""
+msgstr "Время в редакторе:"
#: ../src/StatisticsScreen.cpp:310
msgid "Created levels:"
-msgstr ""
+msgstr "Создано уровней:"
#: ../src/TitleMenu.cpp:44
msgid "Options"
-msgstr "Опции"
+msgstr "Настройки"
#: ../src/TitleMenu.cpp:47
msgid "Quit"
msgstr "Выход"
#: ../src/TitleMenu.cpp:131
msgid "Enable internet in order to install addons."
-msgstr "Чтобы устанавливать дополнения, разрешите подключение к интернету."
+msgstr "Чтобы устанавливать дополнения, разрешите подключение к Интернету."
#: ../src/TitleMenu.cpp:131
msgid "Internet disabled"
-msgstr "Подключение к интернету запрещено"
+msgstr "Подключение к Интернету запрещено"
msgctxt "keys"
msgid "Return"
-msgstr ""
+msgstr "Return"
msgctxt "keys"
msgid "Escape"
-msgstr ""
+msgstr "Escape"
msgctxt "keys"
msgid "Backspace"
-msgstr ""
+msgstr "Backspace"
msgctxt "keys"
msgid "Tab"
-msgstr ""
+msgstr "Tab"
msgctxt "keys"
msgid "Space"
-msgstr ""
+msgstr "Пробел"
msgctxt "keys"
msgid "CapsLock"
-msgstr ""
+msgstr "CapsLock"
msgctxt "keys"
msgid "PrintScreen"
-msgstr ""
+msgstr "PrintScreen"
msgctxt "keys"
msgid "ScrollLock"
-msgstr ""
+msgstr "ScrollLock"
msgctxt "keys"
msgid "Pause"
-msgstr ""
+msgstr "Pause"
msgctxt "keys"
msgid "Insert"
-msgstr ""
+msgstr "Insert"
msgctxt "keys"
msgid "Home"
-msgstr ""
+msgstr "Home"
msgctxt "keys"
msgid "PageUp"
-msgstr ""
+msgstr "PageUp"
msgctxt "keys"
msgid "Delete"
-msgstr ""
+msgstr "Delete"
msgctxt "keys"
msgid "End"
-msgstr ""
+msgstr "End"
msgctxt "keys"
msgid "PageDown"
-msgstr ""
+msgstr "PageDown"
msgctxt "keys"
msgid "Right"
-msgstr ""
+msgstr "Вправо"
msgctxt "keys"
msgid "Left"
-msgstr ""
+msgstr "Влево"
msgctxt "keys"
msgid "Down"
-msgstr ""
+msgstr "Вниз"
msgctxt "keys"
msgid "Up"
-msgstr ""
+msgstr "Вверх"
msgctxt "keys"
msgid "Numlock"
-msgstr ""
+msgstr "Numlock"
msgctxt "keys"
msgid "SysReq"
-msgstr ""
+msgstr "SysReq"
msgctxt "keys"
msgid "Left Ctrl"
-msgstr ""
+msgstr "Левый Ctrl"
msgctxt "keys"
msgid "Left Shift"
-msgstr ""
+msgstr "Левый Shift"
msgctxt "keys"
msgid "Left Alt"
-msgstr ""
+msgstr "Левый Alt"
msgctxt "keys"
msgid "Left GUI"
-msgstr ""
+msgstr "Левый GUI"
msgctxt "keys"
msgid "Right Ctrl"
-msgstr ""
+msgstr "Правый Ctrl"
msgctxt "keys"
msgid "Right Shift"
-msgstr ""
+msgstr "Правый Shift"
msgctxt "keys"
msgid "Right Alt"
-msgstr ""
+msgstr "Правый Alt"
msgctxt "keys"
msgid "Right GUI"
-msgstr ""
+msgstr "Правый GUI"
diff --git a/data/locale/ru.po b/data/locale/uk.po
similarity index 54%
copy from data/locale/ru.po
copy to data/locale/uk.po
index cad8cbd..3b17f28 100644
--- a/data/locale/ru.po
+++ b/data/locale/uk.po
@@ -1,2032 +1,2110 @@
-# Russian translation for Me and My Shadow strings
-# Copyright (C)
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the meandmyshadow package.
-# Jz Pan <acme_pjz@hotmail.com>, 2012.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
-"Project-Id-Version: Russian (Me And My Shadow)\n"
+"Project-Id-Version: meandmyshadow 0.5svn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-09 16:18+0800\n"
-"PO-Revision-Date: 2018-09-29 22:36+0000\n"
-"Last-Translator: mesnevi <shams@airpost.net>\n"
-"Language-Team: Russian <https://hosted.weblate.org/projects/me-and-my-shadow/"
-"translations/ru/>\n"
-"Language: ru\n"
+"PO-Revision-Date: 2018-09-13 12:13+0000\n"
+"Last-Translator: Jz Pan <acme_pjz@hotmail.com>\n"
+"Language-Team: Ukrainian <https://hosted.weblate.org/projects/me-and-my-shadow/"
+"translations/uk/>\n"
+"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
-"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
+"(n%100>=11 && n%100<=14)? 2 : 3);\n"
"X-Generator: Weblate 3.2-dev\n"
#: ../src/AchievementList.cpp:43
msgid "Newbie"
-msgstr "Новичок"
+msgstr "Початківець"
#: ../src/AchievementList.cpp:43
msgid "Complete a level."
-msgstr "Уровень пройден."
+msgstr "Завершити один рівень."
#: ../src/AchievementList.cpp:44
msgid "Experienced player"
-msgstr "Матерый игрок"
+msgstr "Досвідчений гравець"
#: ../src/AchievementList.cpp:44
msgid "Complete 50 levels."
-msgstr "Пройдено 50 уровней."
+msgstr "Завершити 50 рівнів."
#: ../src/AchievementList.cpp:45
msgid "Good job!"
-msgstr "Молодец!"
+msgstr "Молодець!"
#: ../src/AchievementList.cpp:45
msgid "Receive a gold medal."
-msgstr "Получена золотая медаль."
+msgstr "Отримати золоту медаль."
#: ../src/AchievementList.cpp:46
msgid "Expert"
-msgstr "Спец"
+msgstr "Експерт"
#: ../src/AchievementList.cpp:46
msgid "Earn 50 gold medal."
-msgstr "Получено 50 золотых медалей."
+msgstr "Отримати 50 золотих медалей."
#: ../src/AchievementList.cpp:48
msgid "Graduate"
-msgstr "Выпускник"
+msgstr "Випускник"
#: ../src/AchievementList.cpp:48
msgid "Complete the tutorial level pack."
-msgstr "Пройдены все обучающие уровни."
+msgstr "Завершити збірник навчальних рівнів."
#: ../src/AchievementList.cpp:49
msgid "Outstanding graduate"
-msgstr "Выпускник-отличник"
+msgstr "Відмінник"
#: ../src/AchievementList.cpp:49
msgid "Complete the tutorial level pack with gold for all levels."
-msgstr "Все обучающие уровни пройдены с золотыми медалями."
+msgstr "Завершити усі навчальні рівні із золотими медалями."
#: ../src/AchievementList.cpp:51
msgid "Hooked"
-msgstr "Зависимый"
+msgstr "Засів надовго"
#: ../src/AchievementList.cpp:51
msgid "Play Me and My Shadow for more than 2 hours."
-msgstr "За игрой прошло больше 2 часов."
+msgstr "Грати у Me and My Shadow більше двох годин."
#: ../src/AchievementList.cpp:52
msgid "Loyal fan of Me and My Shadow"
-msgstr "Преданный поклонник"
+msgstr "Вірний фанат"
#: ../src/AchievementList.cpp:52
msgid "Play Me and My Shadow for more than 24 hours."
-msgstr "За игрой прошло более суток."
+msgstr "Грати у Me and My Shadow довше 24 годин."
#: ../src/AchievementList.cpp:54
msgid "Constructor"
-msgstr "Творец"
+msgstr "Конструктор"
#: ../src/AchievementList.cpp:54
msgid "Use the level editor for more than 2 hours."
-msgstr "Редактор уровней использовался более 2 часов."
+msgstr "Використовувати редактор рівнів більше двох годин."
#: ../src/AchievementList.cpp:55
msgid "The creator"
-msgstr "Могучий творец"
+msgstr "Творець"
#: ../src/AchievementList.cpp:55
msgid "Use the level editor for more than 24 hours."
-msgstr "Редактор уровней использовался больше суток."
+msgstr "Використовувати редактор рівнів більше 24 годин."
#: ../src/AchievementList.cpp:57
msgid "Look, cute level!"
-msgstr "Ах, какая прелесть!"
+msgstr "Ой, яке ж воно файне!"
#: ../src/AchievementList.cpp:57
msgid "Create a level for the first time."
-msgstr "Вы создали свой первый уровень."
+msgstr "Створити свій перший рівень."
#: ../src/AchievementList.cpp:58
msgid "The level museum"
-msgstr "Выставка достижений"
+msgstr "Музей рівнебудівництва"
#: ../src/AchievementList.cpp:58
msgid "Create 50 levels."
-msgstr "Вы создали 50 уровней."
+msgstr "Створити 50 рівнів."
#: ../src/AchievementList.cpp:60
msgid "Hello, World!"
-msgstr "Кто здесь?!"
+msgstr "Hello, World!"
#: ../src/AchievementList.cpp:60
msgid "Write a script for the first time."
-msgstr "Вы написали свой первый скрипт."
+msgstr "Написати свій перший скрипт."
#: ../src/AchievementList.cpp:62
msgid "Frog"
-msgstr "Лягушка-попрыгушка"
+msgstr "Коник-стрибунець"
#: ../src/AchievementList.cpp:62
msgid "Jump 1000 times."
-msgstr "Вы подпрыгнули 1000 раз."
+msgstr "Стрибнути 1000 разів."
#: ../src/AchievementList.cpp:64
msgid "Wanderer"
-msgstr "Пешеход"
+msgstr "Пішохід"
#: ../src/AchievementList.cpp:64
msgid "Travel 100 meters."
-msgstr "Вы прошли 100 метров."
+msgstr "Пройти 100 метрів."
#: ../src/AchievementList.cpp:65
msgid "Runner"
-msgstr "Стариковская трусца"
+msgstr "Мандрівник"
#: ../src/AchievementList.cpp:65
msgid "Travel 1 kilometer."
-msgstr "Вы прошли 1 километр."
+msgstr "Пройти 1 кілометр."
#: ../src/AchievementList.cpp:66
msgid "Long distance runner"
-msgstr "Забег на длинную дистанцию"
+msgstr "Дальнобійник"
#: ../src/AchievementList.cpp:66
msgid "Travel 10 kilometers."
-msgstr "Вы прошли 10 километров."
+msgstr "Пройти 10 кілометрів."
#: ../src/AchievementList.cpp:67
msgid "Marathon runner"
-msgstr "Марафон"
+msgstr "Марафонець"
#: ../src/AchievementList.cpp:67
msgid "Travel 42,195 meters."
-msgstr "Вы прошли 42 километра 195 метров."
+msgstr "Пройти 42195 метрів."
#: ../src/AchievementList.cpp:69
msgid "Be careful!"
-msgstr "Осторожно!"
+msgstr "Обережно!"
#: ../src/AchievementList.cpp:69
msgid "Die for the first time."
-msgstr "Первая смерть."
+msgstr "Вмерти вперше."
#: ../src/AchievementList.cpp:70
msgid "It doesn't matter..."
-msgstr "Ну и ладно..."
+msgstr "Я вже звикаю..."
#: ../src/AchievementList.cpp:70
msgid "Die 50 times."
-msgstr "Вы умерли 50 раз."
+msgstr "Померти 50 разів."
#: ../src/AchievementList.cpp:71
msgid "Expert of trial and error"
-msgstr "Гуру метода проб и ошибок"
+msgstr "Досвідчений мрець"
#: ../src/AchievementList.cpp:71
msgid "Die 1000 times."
-msgstr "Вы умерли 1000 раз."
+msgstr "Померти 1000 разів."
#: ../src/AchievementList.cpp:73
msgid "Keep an eye for moving blocks!"
-msgstr "Надо было следить за двигающимся блоком!"
+msgstr "Стережись рухомих блоків!"
#: ../src/AchievementList.cpp:73
msgid "Get squashed for the first time."
-msgstr "Вас в первый раз раздавило."
+msgstr "Бути розчавленим уперше."
#: ../src/AchievementList.cpp:74
msgid "Potato masher"
-msgstr "Кому пюре?"
+msgstr "Коцюрба"
#: ../src/AchievementList.cpp:74
msgid "Get squashed 50 times."
-msgstr "Вас раздавило 50 раз."
+msgstr "Бути розчавленим 50 разів."
#: ../src/AchievementList.cpp:76
msgid "Double kill"
-msgstr "Одним выстрелом двух зайцев"
+msgstr "За двома зайцями"
#: ../src/AchievementList.cpp:76
msgid "Get both the player and the shadow dead."
-msgstr "И игрок, и тень мертвы."
+msgstr "І гравець і тінь померли."
#: ../src/AchievementList.cpp:78
msgid "Bad luck"
-msgstr "Тотальное невезение"
+msgstr "От, халепа"
#: ../src/AchievementList.cpp:78
msgid "Die 5 times in under 5 seconds."
-msgstr "Вы умерли 5 раз за 5 секунд."
+msgstr "Померти 5 разів менш ніж за 5 секунд."
#: ../src/AchievementList.cpp:79
msgid "This level is too dangerous"
-msgstr "Не уровень, а дикие джунгли"
+msgstr "Хай йому грець"
#: ../src/AchievementList.cpp:79
msgid "Die 10 times in under 5 seconds."
-msgstr "Вы умерли 10 раз за 5 секунд."
+msgstr "Померти 10 разів менш ніж за 5 секунд."
#: ../src/AchievementList.cpp:81
msgid "You forgot your friend"
-msgstr "Друзья? О таких не слышал"
+msgstr "Друзів не лишають у біді"
#: ../src/AchievementList.cpp:81
msgid "Finish the level with the player or the shadow dead."
-msgstr "В конце уровня или игрок, или тень мертвы."
+msgstr "Завершити рівень при тому, що або гравець, або тінь померли."
#: ../src/AchievementList.cpp:82
msgid "Just in time"
-msgstr "Одновременно"
+msgstr "У самісіньке яблучко"
#: ../src/AchievementList.cpp:82
msgid "Reach the exit with the player and the shadow simultaneously."
-msgstr "Игрок и тень одновременно закончили уровень."
+msgstr "Одночасно досягнути виходу і гравцем, і тінню."
#: ../src/AchievementList.cpp:84
msgid "Recorder"
-msgstr "Оператор"
+msgstr "Рекордсмен"
#: ../src/AchievementList.cpp:84
msgid "Record 100 times."
-msgstr "Сделано 100 записей."
+msgstr "Поставити рекорд 100 разів."
#: ../src/AchievementList.cpp:85
msgid "Shadowmaster"
-msgstr "Повелитель теней"
+msgstr "Чемпіон"
#: ../src/AchievementList.cpp:85
msgid "Record 1000 times."
-msgstr "Сделано 1000 записей."
+msgstr "Поставити рекорд 1000 разів."
#: ../src/AchievementList.cpp:87
msgid "Switch puller"
-msgstr "Нажми на кнопку"
+msgstr "Вмикач вимикачів"
#: ../src/AchievementList.cpp:87
msgid "Pull the switch 100 times."
-msgstr "Вы поменяли положение переключателя 100 раз."
+msgstr "Увімкнути вимикач 100 разів."
#: ../src/AchievementList.cpp:88
msgid "The switch is broken!"
-msgstr "Сейчас сломается!"
+msgstr "Псувач вимикачів"
#: ../src/AchievementList.cpp:88
msgid "Pull the switch 1000 times."
-msgstr "Вы поменяли положение перключателя 1000 раз."
+msgstr "Увімкнути вимикач 1000 разів."
#: ../src/AchievementList.cpp:90
msgid "Swapper"
-msgstr "Поменяться местами"
+msgstr "Ся міняю"
#: ../src/AchievementList.cpp:90
msgid "Swap 100 times."
-msgstr "Вы переключились между игроком и тенью 100 раз."
+msgstr "Помінятися 100 разів."
#: ../src/AchievementList.cpp:91
msgid "Player to shadow to player to shadow..."
-msgstr "Туда-сюда..."
+msgstr "Туди-сюдитель"
#: ../src/AchievementList.cpp:91
msgid "Swap 1000 times."
-msgstr "Вы переключились между игроком и тенью 1000 раз."
+msgstr "Помінятися 1000 разів."
#: ../src/AchievementList.cpp:93
msgid "Play it save"
-msgstr "Осторожность лишней не бывает"
+msgstr "Добре зберігся"
#: ../src/AchievementList.cpp:93
msgid "Save 1000 times."
-msgstr "Игра сохранялась 1000 раз."
+msgstr "Зберегти гру 1000 разів."
#: ../src/AchievementList.cpp:94
msgid "This game is too hard"
-msgstr "Непосильный труд"
+msgstr "Ох і важко ж"
#: ../src/AchievementList.cpp:94
msgid "Load the game 1000 times."
-msgstr "Игра загружалась 1000 раз."
+msgstr "Завантажити гру 1000 разів."
#: ../src/AchievementList.cpp:96
msgid "No, thanks"
-msgstr "Нет уж, спасибо"
+msgstr "Ні, дякую"
#: ../src/AchievementList.cpp:96
msgid "Complete a level with checkpoint, but without saving."
-msgstr "Завершить уровень с чекпойнтами без сохранения."
+msgstr "Пройти рівень із чекпоінтом, але без збережень гри."
#: ../src/AchievementList.cpp:98
msgid "Panic save"
-msgstr "Паническая атака"
+msgstr "Самозбережник"
#: ../src/AchievementList.cpp:98
msgid "Save twice in 1 second."
-msgstr "Дважды сохранить игру за 1 секунду."
+msgstr "Зберегти гру двічі за секунду."
#: ../src/AchievementList.cpp:99
msgid "Panic load"
-msgstr "Не туда"
+msgstr "Панічне завантаження"
#: ../src/AchievementList.cpp:99
msgid "Load twice in 1 second."
-msgstr "Дважды загрузить игру за 1 секунду."
+msgstr "Завантажити гру двічі за секунду."
#: ../src/AchievementList.cpp:101
msgid "Bad saving position"
-msgstr "Местечко так себе"
+msgstr "Кепське місце для збереження"
#: ../src/AchievementList.cpp:101
msgid "Load the game and die within 1 second."
-msgstr "Загрузить игру и умереть через секунду."
+msgstr "Завантажити гру й померти протягом одної секунди."
#: ../src/AchievementList.cpp:102
msgid "This level is too hard"
-msgstr "Да что ж такое"
+msgstr "Заважкий рівень"
#: ../src/AchievementList.cpp:102
msgid "Load the same save and die 100 times."
-msgstr "Загрузить один и тот же сейв и умерть 100 раз."
+msgstr "Завантажити гру і померти 100 разів."
#: ../src/AchievementList.cpp:104
msgid "Quick swap"
-msgstr "Мигом"
+msgstr "Швидка зміна"
#: ../src/AchievementList.cpp:104
msgid "Swap twice in under a second."
-msgstr "Дважды переключиться между игроком и тенью за одну секунду."
+msgstr "Помінятися двічі на секунду."
#: ../src/AchievementList.cpp:107
msgid "Horizontal confusion"
-msgstr "Сено-солома"
+msgstr "Забув де право, а де ліво"
#: ../src/AchievementList.cpp:107
msgid "Press left and right simultaneously."
-msgstr "Одновременно нажимать направо и налево."
+msgstr "Натиснути ліворуч і праворуч одночасно."
#: ../src/AchievementList.cpp:109
msgid "Cheater"
-msgstr "Жулик"
+msgstr "Нечемний"
#: ../src/AchievementList.cpp:109
msgid "Cheat in game."
-msgstr "Не надо было жульничать."
+msgstr "Змухлювати у грі."
#: ../src/AchievementList.cpp:111
msgid "Programmer"
-msgstr "Разработчик"
+msgstr "Тижпрограміст"
#: ../src/AchievementList.cpp:111
msgid "Play the development version of Me and My Shadow."
-msgstr "Играть в версию, находящуюся в разработке."
+msgstr "Грати у версію у розробці."
#: ../src/Addons.cpp:44 ../src/LevelPackManager.cpp:108
msgid "Levels"
-msgstr "Уровни"
+msgstr "Рівні"
#: ../src/Addons.cpp:44
msgid "Single level which usually contain demanding puzzles"
-msgstr "Отдельные уровни, требующие сильного умственного напряжения"
+msgstr "Один рівень, що зазвичай містить головоломки"
#: ../src/Addons.cpp:45
msgid "Levelpacks"
-msgstr "Наборы уровней"
+msgstr "Збірка рівнів"
#: ../src/Addons.cpp:45
msgid "Collection of levels with the same author or style"
-msgstr ""
-"Несколько уровней, сделанных одним и тем же автором или в похожем стиле"
+msgstr "Колекція рівнів від одного автора чи із подібним стилем"
#: ../src/Addons.cpp:46
msgid "Themes"
-msgstr "Темы"
+msgstr "Оформлення"
#: ../src/Addons.cpp:46
msgid "Give every block and background a new look and feel"
-msgstr "Новый вид для блоков и фона"
+msgstr "Надати кожному блоку й тлу новий вигляд і відчуття"
#: ../src/Addons.cpp:55 ../src/TitleMenu.cpp:46
msgid "Addons"
-msgstr "Дополнения"
+msgstr "Застосунки"
#: ../src/Addons.cpp:87
msgid "Unable to initialize addon menu:"
-msgstr "Не удалось запустить меню дополнений:"
+msgstr "Не вдалося ініціалізувати меню застосунків:"
#: ../src/Addons.cpp:95 ../src/Addons.cpp:158 ../src/Addons.cpp:662
#: ../src/Addons.cpp:690 ../src/CreditsMenu.cpp:89 ../src/LevelSelect.cpp:168
#: ../src/StatisticsScreen.cpp:159
msgid "Back"
-msgstr "Назад"
+msgstr "Повернутися"
#: ../src/Addons.cpp:169
msgid "ERROR: unable to download addons file!"
-msgstr "ОШИБКА: не удалось загрузить файл дополнения!"
+msgstr "ПОМИЛКА: неможливо зкачати файл застосунку!"
+# TRANSLATORS: addon_list is the name of a file and should not be translated.
#: ../src/Addons.cpp:182
msgid "ERROR: unable to load addon_list file!"
-msgstr "ОШИБКА: не удалось загрузить файл addon_list!"
+msgstr "ПОМИЛКА: неможливо завантажити файл addon_list!"
#: ../src/Addons.cpp:193
msgid "ERROR: Invalid file format of addons file!"
-msgstr "ОШИБКА: Неверный формат файла дополнения!"
+msgstr "ПОМИЛКА: Невірний формат файлу застосунку!"
#: ../src/Addons.cpp:205
msgid "ERROR: Addon list version is unsupported!"
-msgstr "ОШИБКА: версия списка дополнений не поддерживается!"
+msgstr "ПОМИЛКА: Не підтримується версія списку застосунків!"
+# TRANSLATORS: installed_addons is the name of a file and should not be
+# translated.
#: ../src/Addons.cpp:226
msgid "ERROR: Unable to create the installed_addons file."
-msgstr "ОШИБКА: невозможно создать список дополнений installed_addons."
+msgstr "ПОМИЛКА: Неможливо створити файл installed_addons."
#: ../src/Addons.cpp:238
msgid "ERROR: Invalid file format of the installed_addons!"
-msgstr "ОШИБКА: у списка дополнений installed_addons неправильный формат!"
+msgstr "ПОМИЛКА: Невірний формат файлу installed_addons!"
+# TRANSLATORS: indicates the author of an addon.
#: ../src/Addons.cpp:389 ../src/Addons.cpp:621
#, c-format
msgid "by %s"
-msgstr "автор %"
+msgstr "від %s"
#: ../src/Addons.cpp:397
msgid "Installed"
msgstr "Установлено"
#: ../src/Addons.cpp:402
msgid "Updatable"
-msgstr "Есть обновления"
+msgstr "Оновити"
#: ../src/Addons.cpp:412
msgid "Not installed"
-msgstr "Не установлено"
+msgstr "Не встановлено"
#: ../src/Addons.cpp:625
#, c-format
msgid "Version: %d\n"
-msgstr "Версия: %d\n"
+msgstr "Версія: %d\n"
#: ../src/Addons.cpp:627
#, c-format
msgid "Installed version: %d\n"
-msgstr "Установленная версия: %d\n"
+msgstr "Установлена версія: %d\n"
#: ../src/Addons.cpp:630
#, c-format
msgid "License: %s\n"
-msgstr "Лицензия: %s\n"
+msgstr "Ліцензія: %s\n"
#: ../src/Addons.cpp:633
#, c-format
msgid "Website: %s\n"
-msgstr "Веб-сайт: %s\n"
+msgstr "Інтернет-сторінка: %s\n"
#: ../src/Addons.cpp:637
msgid "(No descriptions provided)"
-msgstr "(Описания нет)"
+msgstr "(Немає опису)"
#: ../src/Addons.cpp:657 ../src/Addons.cpp:684
msgid "Remove"
-msgstr "Удалить"
+msgstr "Видалити"
#: ../src/Addons.cpp:673
msgid "Update"
-msgstr "Обновить"
+msgstr "Оновити"
#: ../src/Addons.cpp:679
msgid "Install"
-msgstr "Установить"
+msgstr "Установити"
#: ../src/Addons.cpp:774
#, c-format
msgid "This addon can't be removed because it's needed by %s."
-msgstr "Это дополнение удалить нельзя, оно нужно для правильной работы %s."
+msgstr "Цей застосунок неможливо видалити, оскільки його потребує %s."
#: ../src/Addons.cpp:774 ../src/Addons.cpp:1051
msgid "Dependency"
-msgstr "Зависимости"
+msgstr "Залежить"
#: ../src/Addons.cpp:803
#, c-format
msgid "WARNING: File '%s' appears to have been removed already."
-msgstr "ВНИМАНИЕ: файл '%s' уже удален."
+msgstr "УВАГА: Схоже, що файл '%s' вже був видалений."
#: ../src/Addons.cpp:803 ../src/Addons.cpp:810 ../src/Addons.cpp:818
#: ../src/Addons.cpp:825 ../src/Addons.cpp:834 ../src/Addons.cpp:840
#: ../src/Addons.cpp:859 ../src/Addons.cpp:866 ../src/Addons.cpp:893
#: ../src/Addons.cpp:900 ../src/Addons.cpp:907 ../src/Addons.cpp:918
#: ../src/Addons.cpp:947 ../src/Addons.cpp:952 ../src/Addons.cpp:962
#: ../src/Addons.cpp:968 ../src/Addons.cpp:981 ../src/Addons.cpp:986
#: ../src/Addons.cpp:1008 ../src/Addons.cpp:1014 ../src/Addons.cpp:1044
msgid "Addon error"
-msgstr "Ошибка дополнения"
+msgstr "Помилка застосунку"
#: ../src/Addons.cpp:810
#, c-format
msgid "ERROR: Unable to remove file '%s'!"
-msgstr "ОШИБКА: не получается удалить файл '%s'!"
+msgstr "ПОМИЛКА: Неможливо видалити файл '%s'!"
#: ../src/Addons.cpp:818
#, c-format
msgid "WARNING: Directory '%s' appears to have been removed already."
-msgstr "ВНИМАНИЕ: Директорию '%s' уже удалили."
+msgstr "УВАГА: Схоже, що директорія '%s' вже була видалена."
#: ../src/Addons.cpp:825
#, c-format
msgid "ERROR: Unable to remove directory '%s'!"
-msgstr "ОШИБКА: не получается удалить директорию '%s'!"
+msgstr "ПОМИЛКА: Неможливо видалити директорію '%s'!"
#: ../src/Addons.cpp:834
#, c-format
msgid "WARNING: Level '%s' appears to have been removed already."
-msgstr "ВНИМАНИЕ: Уровень '%s' уже удалили."
+msgstr "УВАГА: Схоже, що рівень '%s' вже був видалений."
#: ../src/Addons.cpp:840
#, c-format
msgid "ERROR: Unable to remove level '%s'!"
-msgstr "ОШИБКА: не получается удалить уровень '%s'!"
+msgstr "ПОМИЛКА: Неможливо видалити рівень '%s'!"
#: ../src/Addons.cpp:859
#, c-format
msgid "WARNING: Levelpack directory '%s' appears to have been removed already."
-msgstr "ВНИМАНИЕ: Набор уровней '%s' уже удалили."
+msgstr "УВАГА: Схоже, що директорія збірки рівнів '%s' вже була видалена."
#: ../src/Addons.cpp:866
#, c-format
msgid "ERROR: Unable to remove levelpack directory '%s'!"
-msgstr "ОШИБКА: не получается удалить набор уровней '%s'!"
+msgstr "ПОМИЛКА: Неможливо створити директорію збірки рівнів '%s'!"
#: ../src/Addons.cpp:893
#, c-format
msgid "ERROR: Unable to download addon file %s."
-msgstr "ОШИБКА: не получается загрузить файл дополнения %s."
+msgstr "ПОМИЛКА: Неможливо зкачати файл застосунку %s."
#: ../src/Addons.cpp:900
#, c-format
msgid "ERROR: Unable to extract addon file %s."
-msgstr "ОШИБКА: не получается распаковать файл дополнения %s."
+msgstr "ПОМИЛКА: Неможливо розпакувати файл застосунку %s."
#: ../src/Addons.cpp:907
msgid "ERROR: Addon is missing metadata!"
-msgstr "ОШИБКА: дополнение не содержит метаданных!"
+msgstr "ПОМИЛКА: Застосунок не має метаданих!"
#: ../src/Addons.cpp:918
msgid "ERROR: Invalid file format for metadata file!"
-msgstr "ОШИБКА: неверный формат файла метаданных!"
+msgstr "ПОМИЛКА: Невірний формат файлу метаданих!"
#: ../src/Addons.cpp:947
#, c-format
msgid "WARNING: File '%s' already exists, addon may be broken or not working!"
-msgstr ""
-"ВНИМАНИЕ: Файл '%s' уже существует. Возможно, дополнение глючит или не "
-"работает!"
+msgstr "УВАГА: Файл '%s' вже існує, застосунок може бути пошкодженим або непрацездатним!"
#: ../src/Addons.cpp:952
#, c-format
msgid ""
"WARNING: Unable to copy file '%s' to '%s', addon may be broken or not "
"working!"
-msgstr ""
-"ВНИМАНИЕ: не получается скопировать файл '%s' в '%s'. Возможно, дополнение "
-"глючит или не работает!"
+msgstr "УВАГА: Неможливо скопіювати файл '%s' до '%s', застосунок може бути пошкодженим або непрацездатним!"
#: ../src/Addons.cpp:962
#, c-format
msgid ""
"WARNING: Destination directory '%s' already exists, addon may be broken or "
"not working!"
-msgstr ""
-"ВНИМАНИЕ: директория '%s' уже существует. Возможно, дополнение глючит или не "
-"работает!"
+msgstr "УВАГА: Цільова директорія '%s' вже існує, застосунок може бути пошкодженим або непрацездатним!"
#: ../src/Addons.cpp:968 ../src/Addons.cpp:1014
#, c-format
msgid ""
"WARNING: Unable to move directory '%s' to '%s', addon may be broken or not "
"working!"
-msgstr ""
-"ВНИМАНИЕ: не получается скопировать директорию '%s' в '%s'. Возможно, "
-"дополнение глючит или не работает!"
+msgstr "УВАГА: Неможливо перемістити директорію '%s' до '%s', застосунок може бути пошкодженим або непрацездатним!"
#: ../src/Addons.cpp:981
#, c-format
msgid "WARNING: Level '%s' already exists, addon may be broken or not working!"
-msgstr ""
-"ВНИМАНИЕ: Уровень '%s' уже существует. Возможно, дополнение глючит или не "
-"работает!"
+msgstr "УВАГА: Рівень '%s' вже існує, застосунок може бути пошкодженим або непрацездатним!"
#: ../src/Addons.cpp:986
#, c-format
msgid ""
"WARNING: Unable to copy level '%s' to '%s', addon may be broken or not "
"working!"
-msgstr ""
-"ВНИМАНИЕ: не получается скопировать уровень '%s' в '%s'. Возможно, "
-"дополнение глючит или не работает!"
+msgstr "УВАГА: Неможливо скопіювати рівень '%s' до '%s', застосунок може бути пошкодженим або непрацездатним!"
#: ../src/Addons.cpp:1008
#, c-format
msgid ""
"WARNING: Levelpack directory '%s' already exists, addon may be broken or not "
"working!"
-msgstr ""
-"ВНИМАНИЕ: Директория с набором уровней '%s' уже существует. Возможно, "
-"дополнение глючит или не работает!"
+msgstr "УВАГА: Директорія зі збіркою рівнів '%s' вже існує, застосунок може бути пошкодженим або непрацездатним!"
#: ../src/Addons.cpp:1044
#, c-format
msgid "ERROR: Addon requires another addon (%s) which can't be found!"
-msgstr ""
-"ОШИБКА: для правильной работы дополнения необходимо установить другое "
-"дополнение (%s)!"
+msgstr "ПОМИЛКА: Застосунок потребує інший застосунок (%s), який не вдалося знайти!"
#: ../src/Addons.cpp:1051
#, c-format
msgid "The addon %s is needed and will be installed now."
-msgstr "Необходимо установить дополнение %s. Установка сейчас начнется."
+msgstr "Потрібний застосунок %s буде зараз установлено."
#: ../src/Block.cpp:822 ../src/LevelEditor.cpp:265
msgid "On"
-msgstr "Вкл"
+msgstr "Увімк."
#: ../src/Block.cpp:823 ../src/LevelEditor.cpp:266
msgid "Off"
-msgstr "Выкл"
+msgstr "Вимк."
#: ../src/CommandManager.cpp:41
#, c-format
msgid "Undo %s"
-msgstr "Отменить %s"
+msgstr "Відмінити %s"
#: ../src/CommandManager.cpp:43
msgid "Can't undo"
-msgstr "Отменить не получается"
+msgstr "Неможливо відмінити"
#: ../src/CommandManager.cpp:49
#, c-format
msgid "Redo %s"
-msgstr "Повторить %s"
+msgstr "Повернути %s"
#: ../src/CommandManager.cpp:51
msgid "Can't redo"
-msgstr "Повторить не получается"
+msgstr "Неможливо повернути"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/Commands.cpp:190
msgid "Resize level"
-msgstr "Изменение размеров уровня"
+msgstr "Змінити розмір рівня"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/Commands.cpp:807
msgid "Modify level property"
-msgstr "Изменение свойств уровня"
+msgstr "Змінити властивості рівня"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/Commands.cpp:919
#, c-format
msgid "Add scenery layer %s"
-msgstr "Добавление слоя ландшафта %s"
+msgstr "Додати фоновий шар %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/Commands.cpp:921
#, c-format
msgid "Delete scenery layer %s"
-msgstr "Удаление слоя ландшафта %s"
+msgstr "Видалити фоновий шар %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/Commands.cpp:951
#, c-format
msgid "Modify the property of scenery layer %s"
-msgstr "Изменение свойств слоя ландшафта %s"
+msgstr "Змінити властивості фонового шару %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/Commands.cpp:1040
#, c-format
msgid "Move %d object from layer %s to layer %s"
msgid_plural "Move %d objects from layer %s to layer %s"
-msgstr[0] "Переместить %d объект из слоя %s в слой %s"
-msgstr[1] "Переместить %d объекта из слоя %s в слой %s"
-msgstr[2] "Переместить %d объектов из слоя %s в слой %s"
-msgstr[3] "объекта"
+msgstr[0] "Перемістити %d об'єкт із шару %s у шар %s"
+msgstr[1] "Перемістити %d об'єкти із шару %s у шар %s"
+msgstr[2] "Перемістити %d об'єктів із шару %s у шар %s"
+msgstr[3] "Перемістити %d об'єктів із шару %s у шар %s"
#: ../src/CreditsMenu.cpp:35 ../src/TitleMenu.cpp:53
msgid "Credits"
-msgstr "Благодарности"
+msgstr "Титри"
# TRANSLATORS: Font used in GUI:
# - Use "knewave" for languages using Latin and Latin-derived alphabets
# - "DroidSansFallback" can be used for non-Latin writing systems
#: ../src/Functions.cpp:569 ../src/Functions.cpp:570 ../src/Functions.cpp:571
#: ../src/Functions.cpp:588
msgid "knewave"
msgstr "DejaVuSansCondensed-Oblique"
+# TRANSLATORS: Font used for normal text:
+# - Use "Blokletters-Viltstift" for languages using Latin and Latin-derived
+# alphabets
+# - "DroidSansFallback" can be used for non-Latin writing systems
#: ../src/Functions.cpp:575
msgid "Blokletters-Viltstift"
msgstr "DejaVuSansCondensed-Oblique"
#: ../src/Functions.cpp:674
msgid "Loading..."
-msgstr "Загрузка..."
+msgstr "Завантаження..."
#: ../src/Functions.cpp:1243 ../src/Functions.cpp:1270
#: ../src/LevelEditor.cpp:559 ../src/LevelEditor.cpp:693
#: ../src/LevelEditor.cpp:758 ../src/LevelEditor.cpp:821
#: ../src/LevelEditor.cpp:908 ../src/LevelEditor.cpp:1033
#: ../src/LevelEditor.cpp:1083 ../src/LevelEditor.cpp:1180
#: ../src/LevelEditor.cpp:1244 ../src/LevelEditor.cpp:2923
#: ../src/LevelEditSelect.cpp:244 ../src/LevelEditSelect.cpp:277
#: ../src/LevelEditSelect.cpp:317
msgid "OK"
-msgstr "ОК"
+msgstr "Так"
#: ../src/Functions.cpp:1244 ../src/Functions.cpp:1256
#: ../src/Functions.cpp:1266 ../src/LevelEditor.cpp:565
#: ../src/LevelEditor.cpp:699 ../src/LevelEditor.cpp:764
#: ../src/LevelEditor.cpp:827 ../src/LevelEditor.cpp:914
#: ../src/LevelEditor.cpp:1039 ../src/LevelEditor.cpp:1089
#: ../src/LevelEditor.cpp:1186 ../src/LevelEditor.cpp:1250
#: ../src/LevelEditor.cpp:2929 ../src/LevelEditSelect.cpp:248
#: ../src/LevelEditSelect.cpp:281 ../src/LevelEditSelect.cpp:321
#: ../src/OptionsMenu.cpp:289
msgid "Cancel"
-msgstr "Отмена"
+msgstr "Відміна"
#: ../src/Functions.cpp:1248
msgid "Abort"
-msgstr "Прервать"
+msgstr "Перервати"
#: ../src/Functions.cpp:1249 ../src/Functions.cpp:1265
msgid "Retry"
-msgstr "Попробовать снова"
+msgstr "Спробувати знову"
#: ../src/Functions.cpp:1250
msgid "Ignore"
-msgstr "Пропустить"
+msgstr "Ігнорувати"
#: ../src/Functions.cpp:1254 ../src/Functions.cpp:1260
msgid "Yes"
-msgstr "Да"
+msgstr "Так"
#: ../src/Functions.cpp:1255 ../src/Functions.cpp:1261
msgid "No"
-msgstr "Нет"
+msgstr "Ні"
+# TRANSLATORS: Please do not remove %s or %d from your translation:
+# - %d means the level number in a levelpack
+# - %s means the name of current level
#: ../src/Game.cpp:280 ../src/Game.cpp:1236
#, c-format
msgid "Level %d %s"
-msgstr "Уровень %d %s"
+msgstr "Рівень %d %s"
+# TRANSLATORS: Please do not remove %s from your translation:
+# - %s will be replaced with current action key
#: ../src/Game.cpp:915
#, c-format
msgid "Press %s key to save the game."
-msgstr "Чтобы сохранить игру, нажмите клавишу %s."
+msgstr "Натисніть клавішу %s, щоб зберегти гру."
+# TRANSLATORS: Please do not remove %s from your translation:
+# - %s will be replaced with current action key
#: ../src/Game.cpp:920
#, c-format
msgid "Press %s key to swap the position of player and shadow."
-msgstr "Чтобы поменять позицию игрока и тени, нажмите клавишу %s."
+msgstr "Натисніть клавішу %s, щоб поміняти гравця і тінь місцями."
+# TRANSLATORS: Please do not remove %s from your translation:
+# - %s will be replaced with current action key
#: ../src/Game.cpp:925
#, c-format
msgid "Press %s key to activate the switch."
-msgstr "Чтобы активировать переключатель, нажмите клавишу %s."
+msgstr "Натисніть %s, щоб увімкнути вимикач."
+# TRANSLATORS: Please do not remove %s from your translation:
+# - %s will be replaced with current action key
#: ../src/Game.cpp:930
#, c-format
msgid "Press %s key to teleport."
-msgstr "Чтобы телепортироваться, нажмите клавишу %s."
+msgstr "Натисніть клавішу %s, щоб телепортуватися."
+# TRANSLATORS: Please do not remove %s from your translation:
+# - first %s means currently configured key to restart game
+# - Second %s means configured key to load from last save
#: ../src/Game.cpp:972
#, c-format
msgid "Press %s to restart current level or press %s to load the game."
-msgstr ""
-"Чтобы перезапустить этот уровень, нажмите %s, или нажмите %s, чтобы "
-"загрузить игру."
+msgstr "Натисніть клавішу %s, щоб перезапустити поточний рівень, або натисніть клавішу %s, щоб завантажити гру."
+# TRANSLATORS: Please do not remove %s from your translation:
+# - %s will be replaced with currently configured key to restart game
#: ../src/Game.cpp:983
#, c-format
msgid "Press %s to restart current level."
-msgstr "Чтобы перезапустить этот уровень, нажмите %s."
+msgstr "Натисніть клавішу %s, щоб перезапустити поточний рівень."
#: ../src/Game.cpp:996
msgid "Your shadow has died."
-msgstr "Ваша тень умерла."
+msgstr "Ваша тінь померла."
#: ../src/Game.cpp:1052
#, c-format
msgid "%d recording"
msgid_plural "%d recordings"
-msgstr[0] "%d запись"
+msgstr[0] "%d запис"
msgstr[1] "%d записи"
-msgstr[2] "%d записей"
-msgstr[3] "%d записи"
+msgstr[2] "%d записів"
+msgstr[3] "%d записів"
#: ../src/Game.cpp:1224
msgid "You've finished:"
-msgstr "Завершенных уровней:"
+msgstr "Ви завершили:"
+# TRANSLATORS: Please do not remove %-.2f from your translation:
+# - %-.2f means time in seconds
+# - s is shortened form of a second. Try to keep it so.
#: ../src/Game.cpp:1291
#, c-format
msgid "Time: %-.2fs"
-msgstr "Время: %-.2fs"
+msgstr "Час: %-.2fs"
+# TRANSLATORS: Please do not remove %-.2f from your translation:
+# - %-.2f means time in seconds
+# - s is shortened form of a second. Try to keep it so.
#: ../src/Game.cpp:1300
#, c-format
msgid "Best time: %-.2fs"
-msgstr "Лучшее время: %-.2fs"
+msgstr "Найкращий час: %-.2fs"
#: ../src/Game.cpp:1311
#, c-format
msgid "Target time: %-.2fs"
-msgstr "Необходимое время: %-.2fs"
+msgstr "Необхідний час: %-.2fs"
+# TRANSLATORS: Please do not remove %d from your translation:
+# - %d means the number of recordings user has made
#: ../src/Game.cpp:1332
#, c-format
msgid "Recordings: %d"
-msgstr "Записей: %d"
+msgstr "Записів: %d"
+# TRANSLATORS: Please do not remove %d from your translation:
+# - %d means the number of recordings user has made
#: ../src/Game.cpp:1340
#, c-format
msgid "Best recordings: %d"
-msgstr "Лучшая запись: %d"
+msgstr "Найкращі записи: %d"
#: ../src/Game.cpp:1350
#, c-format
msgid "Target recordings: %d"
-msgstr "Необходимо записей: %d"
+msgstr "Необхідно записів: %d"
+# TRANSLATORS: Please do not remove %s from your translation:
+# - %s will be replaced with name of a prize medal (gold, silver or bronze)
#: ../src/Game.cpp:1363
#, c-format
msgid "You earned the %s medal"
-msgstr "Вы получили %s медаль"
+msgstr "Ви отримали %s медаль"
#: ../src/Game.cpp:1363
msgid "GOLD"
-msgstr "золотую"
+msgstr "ЗОЛОТУ"
#: ../src/Game.cpp:1363
msgid "SILVER"
-msgstr "серебряную"
+msgstr "СРІБНУ"
#: ../src/Game.cpp:1363
msgid "BRONZE"
-msgstr "бронзовую"
+msgstr "БРОНЗОВУ"
+# TRANSLATORS: used as return to the level selector menu
#: ../src/Game.cpp:1390
msgid "Menu"
msgstr "Меню"
+# TRANSLATORS: used as restart level
#: ../src/Game.cpp:1397 ../src/InputManager.cpp:47
msgid "Restart"
-msgstr "Снова"
+msgstr "Перезапустити"
+# TRANSLATORS: used as next level
#: ../src/Game.cpp:1404
msgid "Next"
-msgstr "Далее"
+msgstr "Далі"
#: ../src/Game.cpp:1430
msgid "Game replay is done."
-msgstr "Воспроизведение завершено."
+msgstr "Відтворення завершене."
#: ../src/Game.cpp:1430
msgid "Game Replay"
-msgstr "Воспроизведение игры"
+msgstr "Відтворення гри"
#: ../src/Game.cpp:1767 ../src/Game.cpp:1769
msgid "Congratulations"
-msgstr "Поздравляем"
+msgstr "Вітання"
#: ../src/Game.cpp:1769
msgid "You have finished the levelpack!"
-msgstr "Вы закончили этот набор уровней!"
+msgstr "Ви закінчили цю збірку рівнів!"
#: ../src/InputManager.cpp:46
msgid "Up (in menu)"
-msgstr "Вверх (в меню)"
+msgstr "Вгору (в меню)"
#: ../src/InputManager.cpp:46
msgid "Down (in menu)"
msgstr "Вниз (в меню)"
#: ../src/InputManager.cpp:46
msgid "Left"
-msgstr "Влево"
+msgstr "Ліворуч"
#: ../src/InputManager.cpp:46
msgid "Right"
-msgstr "Вправо"
+msgstr "Праворуч"
#: ../src/InputManager.cpp:46
msgid "Jump"
-msgstr "Прыжок"
+msgstr "Стрибок"
#: ../src/InputManager.cpp:46
msgid "Action"
-msgstr "Действие"
+msgstr "Дія"
#: ../src/InputManager.cpp:46
msgid "Space (Record)"
-msgstr "Пробел (запись)"
+msgstr "Пробіл (Запис)"
#: ../src/InputManager.cpp:46
msgid "Cancel recording"
-msgstr "Отменить запись"
+msgstr "Відмінити запис"
#: ../src/InputManager.cpp:47
msgid "Escape"
-msgstr "Выход"
+msgstr "Вихід"
#: ../src/InputManager.cpp:47
msgid "Tab (View shadow/Level prop.)"
-msgstr "Tab (смотреть на тень/настройки уровня)"
+msgstr "Tab (Див. тінь/Налашт. рівня)"
#: ../src/InputManager.cpp:47
msgid "Save game (in editor)"
-msgstr "Сохранить игру (в редакторе)"
+msgstr "Зберегти гру (в редакторі)"
#: ../src/InputManager.cpp:47
msgid "Load game"
-msgstr "Загрузить игру"
+msgstr "Завантажити гру"
#: ../src/InputManager.cpp:47
msgid "Swap (in editor)"
-msgstr "Перестановка (в редакторе)"
+msgstr "Помінятися (в редакторі)"
#: ../src/InputManager.cpp:48
msgid "Teleport (in editor)"
-msgstr "Телепорт (в редакторе)"
+msgstr "Телепортація (в редакторі)"
#: ../src/InputManager.cpp:48
msgid "Suicide (in editor)"
-msgstr "Смерть (в редакторе)"
+msgstr "Самогубство (в редакторі)"
#: ../src/InputManager.cpp:48
msgid "Shift (in editor)"
-msgstr "Сдвиг (в редакторе)"
+msgstr "Зсув (в редакторі)"
#: ../src/InputManager.cpp:48
msgid "Next block type (in Editor)"
-msgstr "Следующий вид блока (в редакторе)"
+msgstr "Наступний тип блока (в редакторі)"
#: ../src/InputManager.cpp:49
msgid "Previous block type (in editor)"
-msgstr "Предыдущий вид блока (в редакторе)"
+msgstr "Попередній тип блока (в редакторі)"
#: ../src/InputManager.cpp:49
msgid "Select (in menu)"
-msgstr "Выбрать (в меню)"
+msgstr "Обрати (в меню)"
+# TRANSLAOTRS: This is used when the name of the key code is not found.
#: ../src/InputManager.cpp:156
#, c-format
msgid "(Key %d)"
-msgstr ""
+msgstr "(Клавіша %d)"
#: ../src/InputManager.cpp:163
#, c-format
msgid "Joystick axis %d %s"
-msgstr ""
+msgstr "Вісь джойстика %d %s"
#: ../src/InputManager.cpp:166
#, c-format
msgid "Joystick button %d"
-msgstr ""
+msgstr "Кнопка джойстика %d"
#: ../src/InputManager.cpp:171
#, c-format
msgid "Joystick hat %d left"
-msgstr ""
+msgstr "Джойстик %d ліворуч"
#: ../src/InputManager.cpp:174
#, c-format
msgid "Joystick hat %d right"
-msgstr ""
+msgstr "Джойстик %d праворуч"
#: ../src/InputManager.cpp:177
#, c-format
msgid "Joystick hat %d up"
-msgstr ""
+msgstr "Джойстик %d вгору"
#: ../src/InputManager.cpp:180
#, c-format
msgid "Joystick hat %d down"
-msgstr ""
+msgstr "Джойстик %d вниз"
+# TRANSLAOTRS: This is used when the JOYSTICK_HAT value is invalid.
#: ../src/InputManager.cpp:185
#, c-format
msgid "Joystick hat %d %d"
-msgstr ""
+msgstr "Джойстик %d %d"
#: ../src/InputManager.cpp:202
msgid "OR"
-msgstr ""
+msgstr "АБО"
#: ../src/InputManager.cpp:416
msgid "Select an item and press a key to change it."
-msgstr ""
+msgstr "Оберіть елемент і натисніть клавішу, щоб змінити його."
#: ../src/InputManager.cpp:419
msgid "Press backspace to clear the selected item."
-msgstr ""
+msgstr "Натисніть backspace, щоб очистити обраний елемент."
#: ../src/LevelEditor.cpp:56
msgid "Block"
msgstr "Блок"
#: ../src/LevelEditor.cpp:56
msgid "Player Start"
-msgstr "Точка начала"
+msgstr "Тут починає гравець"
#: ../src/LevelEditor.cpp:56
msgid "Shadow Start"
-msgstr "Точка начала тени"
+msgstr "Тут починає тінь"
#: ../src/LevelEditor.cpp:57
msgid "Exit"
-msgstr "Выход"
+msgstr "Вихід"
#: ../src/LevelEditor.cpp:57
msgid "Shadow Block"
-msgstr "Блок для тени"
+msgstr "Блок для тіні"
#: ../src/LevelEditor.cpp:57
msgid "Spikes"
-msgstr "Шипы"
+msgstr "Шипи"
#: ../src/LevelEditor.cpp:58
msgid "Checkpoint"
-msgstr "Контрольная точка"
+msgstr "Чекпоінт"
#: ../src/LevelEditor.cpp:58 ../src/LevelEditSelect.cpp:312
msgid "Swap"
-msgstr "Перестановка"
+msgstr "Помінятися"
#: ../src/LevelEditor.cpp:58
msgid "Fragile"
-msgstr "Непрочные блоки"
+msgstr "Крихкий"
#: ../src/LevelEditor.cpp:59
msgid "Moving Block"
-msgstr "Движущийся блок"
+msgstr "Рухомий блок"
#: ../src/LevelEditor.cpp:59
msgid "Moving Shadow Block"
-msgstr "Движущийся блок для тени"
+msgstr "Рухомий блок для тіні"
#: ../src/LevelEditor.cpp:59
msgid "Moving Spikes"
-msgstr "Движущиеся шипы"
+msgstr "Рухомі шипи"
#: ../src/LevelEditor.cpp:60
msgid "Teleporter"
-msgstr "Телепорт"
+msgstr "Телепортер"
#: ../src/LevelEditor.cpp:60
msgid "Button"
msgstr "Кнопка"
#: ../src/LevelEditor.cpp:60
msgid "Switch"
-msgstr "Переключатель"
+msgstr "Вимикач"
#: ../src/LevelEditor.cpp:61
msgid "Conveyor Belt"
-msgstr "Конвейер"
+msgstr "Конвеєр"
#: ../src/LevelEditor.cpp:61
msgid "Shadow Conveyor Belt"
-msgstr "Конвейер для тени"
+msgstr "Конвеєр для тіні"
#: ../src/LevelEditor.cpp:61
msgid "Notification Block"
-msgstr "Блок оповещения"
+msgstr "Інформаційний блок"
#: ../src/LevelEditor.cpp:61
msgid "Collectable"
-msgstr "Ключ"
+msgstr "Колекційний предмет"
#: ../src/LevelEditor.cpp:61
msgid "Pushable"
-msgstr ""
+msgstr "Блок, що можна штовхати"
#: ../src/LevelEditor.cpp:65 ../src/LevelEditor.cpp:310
msgid "Select"
-msgstr "Выбрать"
+msgstr "Обрати"
#: ../src/LevelEditor.cpp:65
msgid "Add"
-msgstr "Добавить"
+msgstr "Додати"
#: ../src/LevelEditor.cpp:65 ../src/LevelEditor.cpp:311
msgid "Delete"
-msgstr "Удалить"
+msgstr "Видалити"
#: ../src/LevelEditor.cpp:65 ../src/LevelPlaySelect.cpp:66
#: ../src/TitleMenu.cpp:43
msgid "Play"
-msgstr "Играть"
+msgstr "Грати"
#: ../src/LevelEditor.cpp:65 ../src/LevelEditor.cpp:2852
msgid "Level settings"
-msgstr "Настройки уровня"
+msgstr "Налаштування рівня"
#: ../src/LevelEditor.cpp:65
msgid "Save level"
-msgstr "Сохранить уровень"
+msgstr "Зберегти рівень"
#: ../src/LevelEditor.cpp:65
msgid "Back to menu"
-msgstr "Назад в меню"
+msgstr "Назад до меню"
#: ../src/LevelEditor.cpp:65
msgid "Configure"
-msgstr "Настройки"
+msgstr "Налаштування"
#: ../src/LevelEditor.cpp:84
#, c-format
msgid "%s (Scenery)"
-msgstr ""
+msgstr "%s (Тло)"
#: ../src/LevelEditor.cpp:267
msgid "Toggle"
-msgstr "Переключать"
+msgstr "Перемикач"
#: ../src/LevelEditor.cpp:270
msgid "Complete"
-msgstr "Целый"
+msgstr "Завершений"
#: ../src/LevelEditor.cpp:271
msgid "One step"
-msgstr "На два шага"
+msgstr "Один крок"
#: ../src/LevelEditor.cpp:272
msgid "Two steps"
-msgstr "На один шаг"
+msgstr "Два кроки"
#: ../src/LevelEditor.cpp:273
msgid "Gone"
-msgstr "Разрушен"
+msgstr "Зник"
#: ../src/LevelEditor.cpp:291
msgid "Negative infinity"
-msgstr ""
+msgstr "Мінус нескінченність"
#: ../src/LevelEditor.cpp:293
msgid "Zero"
-msgstr ""
+msgstr "Нуль"
#: ../src/LevelEditor.cpp:295
msgid "Level size"
-msgstr ""
+msgstr "Розмір рівня"
#: ../src/LevelEditor.cpp:297
msgid "Positive infinity"
-msgstr ""
+msgstr "Плюс нескінченність"
#: ../src/LevelEditor.cpp:299
msgid "Default"
-msgstr "Стандартный"
+msgstr "За замовчуванням"
#: ../src/LevelEditor.cpp:308
msgid "Deselect"
-msgstr ""
+msgstr "Зняти вибір"
#: ../src/LevelEditor.cpp:318 ../src/LevelEditor.cpp:1136
#, c-format
msgid "Horizontal repeat start: %s"
-msgstr ""
+msgstr "Розпочати горизонтальний повтор: %s"
#: ../src/LevelEditor.cpp:320 ../src/LevelEditor.cpp:1137
#, c-format
msgid "Horizontal repeat end: %s"
-msgstr ""
+msgstr "Завершити горизонтальний повтор: %s"
#: ../src/LevelEditor.cpp:322 ../src/LevelEditor.cpp:1138
#, c-format
msgid "Vertical repeat start: %s"
-msgstr ""
+msgstr "Розпочати вертикальний повтор: %s"
#: ../src/LevelEditor.cpp:324 ../src/LevelEditor.cpp:1139
#, c-format
msgid "Vertical repeat end: %s"
-msgstr ""
+msgstr "Завершити вертикальний повтор: %s"
#: ../src/LevelEditor.cpp:329 ../src/LevelEditor.cpp:1150
msgid "Custom scenery"
-msgstr ""
+msgstr "Налаштувати тло"
#: ../src/LevelEditor.cpp:335 ../src/LevelEditor.cpp:600
#: ../src/LevelEditor.cpp:602
msgid "Visible"
-msgstr ""
+msgstr "Видимий"
#: ../src/LevelEditor.cpp:344
msgid "Link"
-msgstr ""
+msgstr "Посилання"
#: ../src/LevelEditor.cpp:345
msgid "Remove Links"
-msgstr ""
+msgstr "Прибрати посилання"
#: ../src/LevelEditor.cpp:349 ../src/LevelEditor.cpp:624
#: ../src/LevelEditor.cpp:626
msgid "Automatic"
-msgstr ""
+msgstr "Авто"
#: ../src/LevelEditor.cpp:359 ../src/LevelEditor.cpp:649
#, c-format
msgid "Behavior: %s"
-msgstr ""
+msgstr "Поведінка: %s"
#: ../src/LevelEditor.cpp:362
msgid "Path"
-msgstr "Путь"
+msgstr "Шлях"
#: ../src/LevelEditor.cpp:363
msgid "Remove Path"
-msgstr ""
+msgstr "Прибрати шлях"
#: ../src/LevelEditor.cpp:365 ../src/LevelEditor.cpp:371
#: ../src/LevelEditor.cpp:587 ../src/LevelEditor.cpp:589
msgid "Activated"
-msgstr ""
+msgstr "Активовано"
#: ../src/LevelEditor.cpp:366 ../src/LevelEditor.cpp:612
#: ../src/LevelEditor.cpp:614
msgid "Looping"
-msgstr ""
+msgstr "Повторювати"
#: ../src/LevelEditor.cpp:372 ../src/LevelEditor.cpp:3526
msgid "Speed"
-msgstr ""
+msgstr "Швидкість"
#: ../src/LevelEditor.cpp:378 ../src/LevelEditor.cpp:668
#, c-format
msgid "State: %s"
-msgstr ""
+msgstr "Стан: %s"
#: ../src/LevelEditor.cpp:382 ../src/LevelEditor.cpp:3511
msgid "Message"
-msgstr ""
+msgstr "Повідомлення"
#: ../src/LevelEditor.cpp:384 ../src/LevelEditor.cpp:1202
#: ../src/LevelEditor.cpp:3825
msgid "Appearance"
-msgstr ""
+msgstr "Зовнішній вигляд"
#: ../src/LevelEditor.cpp:389 ../src/LevelEditor.cpp:431
#: ../src/LevelEditor.cpp:715
msgid "Scripting"
-msgstr ""
+msgstr "Скрипти"
#: ../src/LevelEditor.cpp:402 ../src/LevelEditor.cpp:867
#: ../src/LevelEditor.cpp:885
#, c-format
msgid "Background layer: %s"
-msgstr ""
+msgstr "Шар тла: %s"
#: ../src/LevelEditor.cpp:409 ../src/LevelEditor.cpp:866
#: ../src/LevelEditor.cpp:884
msgid "Blocks layer"
-msgstr ""
+msgstr "Шар блоків"
#: ../src/LevelEditor.cpp:417 ../src/LevelEditor.cpp:867
#: ../src/LevelEditor.cpp:885
#, c-format
msgid "Foreground layer: %s"
-msgstr ""
+msgstr "Шар переднього плану: %s"
#: ../src/LevelEditor.cpp:423
msgid "Add new layer"
-msgstr ""
+msgstr "Додати новий шар"
#: ../src/LevelEditor.cpp:424
msgid "Delete selected layer"
-msgstr ""
+msgstr "Видалити обрані шари"
#: ../src/LevelEditor.cpp:425
msgid "Configure selected layer"
-msgstr ""
+msgstr "Налаштувати обраний шар"
#: ../src/LevelEditor.cpp:426
msgid "Move selected object to layer"
-msgstr ""
+msgstr "Перемістити обраний об'єкт у шар"
#: ../src/LevelEditor.cpp:430 ../src/OptionsMenu.cpp:55
msgid "Settings"
-msgstr "Настройки"
+msgstr "Налаштування"
#: ../src/LevelEditor.cpp:463
msgid ""
"NOTE: the layers are sorted by name alphabetically.\n"
"The layer is background layer if its name is < 'f'\n"
"by dictionary order, otherwise it's foreground layer."
-msgstr ""
+msgstr "ПРИМІТКА: шари сортуються за назвою у алфавітному порядку.\n"
+"Шар є тлом, якщо його ім'я < 'f'\n"
+"у словниковому порядку, інакше - це шар переднього плану."
#: ../src/LevelEditor.cpp:539
msgid "Notification block"
-msgstr "Блок оповещения"
+msgstr "Інформаційний блок"
#: ../src/LevelEditor.cpp:545
msgid "Enter message here:"
-msgstr "Введите сообщение:"
+msgstr "Введіть повідомлення тут:"
#: ../src/LevelEditor.cpp:646
msgid "Behavior"
-msgstr ""
+msgstr "Поведінка"
#: ../src/LevelEditor.cpp:665
msgid "State"
-msgstr ""
+msgstr "Стан"
#: ../src/LevelEditor.cpp:673
msgid "Conveyor belt speed"
-msgstr ""
+msgstr "Швидкість конвеєра"
#: ../src/LevelEditor.cpp:679
msgid "Enter speed here:"
-msgstr "Введите скорость:"
+msgstr "Введіть швидкість:"
#: ../src/LevelEditor.cpp:690
msgid "NOTE: 1 Speed = 0.08 block/s"
-msgstr ""
+msgstr "ПРИМ.: 1 Швидкість = 0,08 блоків/с"
#: ../src/LevelEditor.cpp:721
msgid "Id:"
-msgstr ""
+msgstr "Ід:"
#: ../src/LevelEditor.cpp:787
msgid "Level Scripting"
-msgstr ""
+msgstr "Скрипти рівня"
#: ../src/LevelEditor.cpp:892
msgid "Add layer"
-msgstr ""
+msgstr "Додати шар"
#: ../src/LevelEditor.cpp:898
msgid "Enter the layer name:"
-msgstr ""
+msgstr "Введіть назву шару:"
#: ../src/LevelEditor.cpp:943
#, c-format
msgid "Are you sure you want to delete layer '%s'?"
-msgstr ""
+msgstr "Ви впевнені, що хочете видалити шар '%s'?"
#: ../src/LevelEditor.cpp:944
msgid "Delete layer"
-msgstr ""
+msgstr "Видалити шар"
#: ../src/LevelEditor.cpp:968
msgid "Layer settings"
-msgstr ""
+msgstr "Налаштувати шар"
#: ../src/LevelEditor.cpp:974
msgid "Layer name:"
-msgstr ""
+msgstr "Назва шару:"
#: ../src/LevelEditor.cpp:989
msgid "Layer moving speed (1 speed = 0.8 block/s):"
-msgstr ""
+msgstr "Швидкість переміщення шару (1 швидкість = 0,08 блоків/с):"
#: ../src/LevelEditor.cpp:1010
msgid "Speed of following camera:"
-msgstr ""
+msgstr "Швидкість камери:"
#: ../src/LevelEditor.cpp:1062
msgid "Move to layer"
-msgstr ""
+msgstr "Перемістити у шар"
#: ../src/LevelEditor.cpp:1068
msgid "Enter the layer name (create new layer if necessary):"
-msgstr ""
+msgstr "Введіть назву шару (створити новий шар за необхідності):"
#: ../src/LevelEditor.cpp:1132
msgid "Repeat mode"
-msgstr ""
+msgstr "Режим повтору"
#: ../src/LevelEditor.cpp:1156
msgid "Custom scenery:"
-msgstr ""
+msgstr "Тло:"
#: ../src/LevelEditor.cpp:1219
msgid "(Use the default appearance for this block)"
-msgstr ""
+msgstr "(Використовувати звичайний вигляд цього блока)"
+# TRANSLATORS: Block name
+# TRANSLATORS: Context: Resize/Move ...
+# TRANSLATORS: Context: Add/Remove ...
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1465 ../src/LevelEditor.cpp:1707
#: ../src/LevelEditor.cpp:1723 ../src/LevelEditor.cpp:1772
#: ../src/LevelEditor.cpp:4400
msgid "Custom scenery block"
-msgstr ""
+msgstr "Блок тла"
#: ../src/LevelEditor.cpp:1673
msgid "Toolbox"
-msgstr "Инструментарий"
+msgstr "Інструменти"
#: ../src/LevelEditor.cpp:1705
#, c-format
msgid "Resize %s"
-msgstr ""
+msgstr "Змінити розмір %s"
#: ../src/LevelEditor.cpp:1705
#, c-format
msgid "Move %s"
-msgstr ""
+msgstr "Перемістити %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1713
#, c-format
msgid "Move %d object"
msgid_plural "Move %d objects"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Перемістити %d об'єкт"
+msgstr[1] "Перемістити %d об'єкти"
+msgstr[2] "Перемістити %d об'єктів"
+msgstr[3] "Перемістити %d об'єктів"
#: ../src/LevelEditor.cpp:1721
#, c-format
msgid "Add %s"
-msgstr ""
+msgstr "Додати %s"
#: ../src/LevelEditor.cpp:1721
#, c-format
msgid "Remove %s"
-msgstr ""
+msgstr "Видалити %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1729
#, c-format
msgid "Add %d object"
msgid_plural "Add %d objects"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Додати %d об'єкт"
+msgstr[1] "Додати %d об'єкти"
+msgstr[2] "Додати %d об'єктів"
+msgstr[3] "Додати %d об'єктів"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1731
#, c-format
msgid "Remove %d object"
msgid_plural "Remove %d objects"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
+msgstr[0] "Видалити %d об'єкт"
+msgstr[1] "Видалити %d об'єкти"
+msgstr[2] "Видалити %d об'єктів"
+msgstr[3] "Видалити %d об'єктів"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1739
#, c-format
msgid "Add path to %s"
-msgstr ""
+msgstr "Додати шлях до %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1741
#, c-format
msgid "Remove a path point from %s"
-msgstr ""
+msgstr "Видалити точку шляху з %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1747
#, c-format
msgid "Remove all paths from %s"
-msgstr ""
+msgstr "Видалити усі шляхи з %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1753
#, c-format
msgid "Add link from %s to %s"
-msgstr ""
+msgstr "Додати зв'язок між %s і %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1759
#, c-format
msgid "Remove all links from %s"
-msgstr ""
+msgstr "Видалити усі зв'язки з %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1766
msgid "Modify the %2 property of %1"
-msgstr ""
+msgstr "Змінити у %1 властивість %2"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1818
#, c-format
msgid "Edit the script of %s"
-msgstr ""
+msgstr "Редагувати скрипт %s"
+# TRANSLATORS: Context: Undo/Redo ...
#: ../src/LevelEditor.cpp:1821
msgid "Edit the script of level"
-msgstr ""
+msgstr "Редагувати скрипт рівня"
#: ../src/LevelEditor.cpp:2146 ../src/LevelEditor.cpp:2226
msgid "The level has unsaved changes."
-msgstr ""
+msgstr "На рівні є незбережені зміни."
#: ../src/LevelEditor.cpp:2150 ../src/LevelEditor.cpp:2228
msgid "Are you sure you want to quit?"
-msgstr "Вы действительно хотите выйти?"
+msgstr "Ви дійсно хочете вийти?"
#: ../src/LevelEditor.cpp:2150 ../src/LevelEditor.cpp:2228
msgid "Quit prompt"
-msgstr "Выход"
+msgstr "Вихід"
#: ../src/LevelEditor.cpp:2797 ../src/LevelEditor.cpp:2799
#, c-format
msgid "Level \"%s\" saved"
-msgstr "Уровень \"%s\" сохранен"
+msgstr "Рівень \"%s\" збережено"
#: ../src/LevelEditor.cpp:2797 ../src/LevelEditor.cpp:2799
msgid "Saved"
-msgstr "Сохранено"
+msgstr "Збережено"
#: ../src/LevelEditor.cpp:2859 ../src/LevelEditSelect.cpp:208
msgid "Name:"
-msgstr "Название:"
+msgstr "Назва:"
#: ../src/LevelEditor.cpp:2866
msgid "Theme:"
-msgstr "Тема:"
+msgstr "Оформлення:"
#: ../src/LevelEditor.cpp:2873
msgid "Examples: %DATA%/themes/classic"
-msgstr ""
+msgstr "Приклади: %DATA%/themes/classic"
#: ../src/LevelEditor.cpp:2875
msgid "or %USER%/themes/Orange"
-msgstr ""
+msgstr "або %USER%/themes/Orange"
#: ../src/LevelEditor.cpp:2878
msgid "Music:"
-msgstr ""
+msgstr "Музика:"
#: ../src/LevelEditor.cpp:2887
msgid "Target time (s):"
-msgstr "Необходимое время (с):"
+msgstr "Необхідний час (с):"
#: ../src/LevelEditor.cpp:2903
msgid "Target recordings:"
-msgstr "Необходимо записей:"
+msgstr "Необхідно записів:"
#: ../src/LevelEditor.cpp:2919
msgid "Restart level editor is required"
-msgstr ""
+msgstr "Необхідно перезавантажити редактор рівнів"
#: ../src/LevelEditor.cpp:3679 ../src/LevelEditor.cpp:3718
#: ../src/LevelEditor.cpp:3739
msgid "Please enter a layer name."
-msgstr ""
+msgstr "Будь ласка, введіть назву шару."
#: ../src/LevelEditor.cpp:3679 ../src/LevelEditor.cpp:3683
#: ../src/LevelEditor.cpp:3718 ../src/LevelEditor.cpp:3722
#: ../src/LevelEditor.cpp:3739 ../src/LevelEditor.cpp:3743
#: ../src/LevelEditSelect.cpp:644 ../src/LevelEditSelect.cpp:683
#: ../src/LevelEditSelect.cpp:688 ../src/LevelEditSelect.cpp:693
#: ../src/LevelEditSelect.cpp:698 ../src/LevelEditSelect.cpp:796
msgid "Error"
-msgstr "Ошибка"
+msgstr "Помилка"
#: ../src/LevelEditor.cpp:3683 ../src/LevelEditor.cpp:3722
#, c-format
msgid "The layer '%s' already exists."
-msgstr ""
+msgstr "Шар '%s' вже існує."
#: ../src/LevelEditor.cpp:3743
msgid "Source and destination layers are the same."
-msgstr ""
+msgstr "Вихідний та кінцевий шари співпадають."
#: ../src/LevelEditor.cpp:3760
msgid "Scenery"
-msgstr ""
+msgstr "Тло"
#: ../src/LevelEditor.cpp:4190 ../src/LevelEditor.cpp:4218
#, c-format
msgid "Speed: %d = %0.2f block/s"
-msgstr ""
+msgstr "Швидкість: %d = %0.2f блоків/с"
#: ../src/LevelEditor.cpp:4203
msgid "Stop at this point"
-msgstr ""
+msgstr "Зупинитися у цій точці"
#: ../src/LevelEditor.cpp:4208
#, c-format
msgid "Pause: %d = %0.3fs"
-msgstr ""
+msgstr "Пауза: %d = %0.3fs"
#: ../src/LevelEditSelect.cpp:41 ../src/TitleMenu.cpp:45
msgid "Map Editor"
msgstr "Редактор карт"
#: ../src/LevelEditSelect.cpp:66
msgid "New Levelpack"
-msgstr "Новый набор уровней"
+msgstr "Нова збірка рівнів"
#: ../src/LevelEditSelect.cpp:71
msgid "Pack Properties"
-msgstr "Свойства набора"
+msgstr "Властивості збірки"
#: ../src/LevelEditSelect.cpp:76
msgid "Remove Pack"
-msgstr "Удалить набор"
+msgstr "Видалити збірку"
#: ../src/LevelEditSelect.cpp:81
msgid "Move Map"
-msgstr "Переместить карту"
+msgstr "Перемістити карту"
#: ../src/LevelEditSelect.cpp:89
msgid "Remove Map"
-msgstr "Удалить карту"
+msgstr "Видалити карту"
#: ../src/LevelEditSelect.cpp:94
msgid "Edit Map"
-msgstr "Редактировать карту"
+msgstr "Редагувати карту"
#: ../src/LevelEditSelect.cpp:205
msgid "Properties"
-msgstr "Свойства"
+msgstr "Властивості"
#: ../src/LevelEditSelect.cpp:217
msgid "Description:"
-msgstr "Описание:"
+msgstr "Опис:"
#: ../src/LevelEditSelect.cpp:226
msgid "Congratulation text:"
-msgstr "Текст поздравления:"
+msgstr "Текст привітання:"
#: ../src/LevelEditSelect.cpp:235
msgid "Music list:"
-msgstr ""
+msgstr "Перелік музики:"
#: ../src/LevelEditSelect.cpp:265 ../src/LevelEditSelect.cpp:485
msgid "Add level"
-msgstr "Добавить уровень"
+msgstr "Додати рівень"
#: ../src/LevelEditSelect.cpp:268
msgid "File name:"
-msgstr "Название файла:"
+msgstr "Назва файлу:"
#: ../src/LevelEditSelect.cpp:293
msgid "Move level"
-msgstr "Переместить уровень"
+msgstr "Перемістити рівень"
#: ../src/LevelEditSelect.cpp:296
msgid "Level: "
-msgstr "Уровень:"
+msgstr "Рівень: "
#: ../src/LevelEditSelect.cpp:310
msgid "Before"
-msgstr "До:"
+msgstr "До"
#: ../src/LevelEditSelect.cpp:311
msgid "After"
-msgstr "После:"
+msgstr "Після"
#: ../src/LevelEditSelect.cpp:368 ../src/LevelPlaySelect.cpp:124
msgid "Individual levels which are not contained in any level packs"
-msgstr ""
+msgstr "Окремі рівні, що не включено до жодної збірки рівнів"
#: ../src/LevelEditSelect.cpp:577
#, c-format
msgid "Are you sure remove the level pack '%s'?"
-msgstr ""
+msgstr "Ви впевнені, що хочете видалити збірку рівнів '%s'?"
#: ../src/LevelEditSelect.cpp:577 ../src/LevelEditSelect.cpp:607
msgid "Remove prompt"
-msgstr "Удаление"
+msgstr "Видалення"
#: ../src/LevelEditSelect.cpp:607
#, c-format
msgid "Are you sure remove the map '%s'?"
-msgstr ""
+msgstr "Ви впевнені, що хочете видалити карту '%s'?"
#: ../src/LevelEditSelect.cpp:644
msgid "Levelpack name cannot be empty."
-msgstr ""
+msgstr "Назва збірки рівнів не може бути порожньою."
#: ../src/LevelEditSelect.cpp:683
#, c-format
msgid "The levelpack directory '%s' already exists!"
-msgstr ""
+msgstr "Директорія збірки рівнів '%s' вже існує!"
#: ../src/LevelEditSelect.cpp:688
#, c-format
msgid "Unable to create levelpack directory '%s'!"
-msgstr ""
+msgstr "Неможливо створити директорію збірки рівнів '%s'!"
#: ../src/LevelEditSelect.cpp:693
#, c-format
msgid "The levelpack file '%s' already exists!"
-msgstr ""
+msgstr "Файл збірки рівнів '%s' вже існує!"
#: ../src/LevelEditSelect.cpp:698
#, c-format
msgid "Unable to create levelpack file '%s'!"
-msgstr ""
+msgstr "Неможливо створити файл збірки рівнів '%s'!"
#: ../src/LevelEditSelect.cpp:758
msgid "No file name given for the new level."
-msgstr "Новому уровню не было присвоено имени файла."
+msgstr "Новому рівню не було призначене ім'я файлу."
#: ../src/LevelEditSelect.cpp:758
msgid "Missing file name"
-msgstr "Отсутствует имя файла"
+msgstr "Відсутнє ім'я файлу"
#: ../src/LevelEditSelect.cpp:796
#, c-format
msgid "The file %s already exists."
-msgstr ""
+msgstr "Файл %s вже існує."
#: ../src/LevelEditSelect.cpp:849
msgid "The entered level number isn't valid!"
-msgstr "Введенный номер уровня некорректен!"
+msgstr "Введений номер рівня невірний!"
#: ../src/LevelEditSelect.cpp:849
msgid "Illegal number"
-msgstr "Некорректный номер"
+msgstr "Невірний номер"
#: ../src/LevelInfoRender.cpp:19
msgid "Choose a level"
-msgstr "Выберите уровень"
+msgstr "Оберіть рівень"
#: ../src/LevelInfoRender.cpp:20
msgid "Time:"
-msgstr "Время:"
+msgstr "Час:"
#: ../src/LevelInfoRender.cpp:21 ../src/StatisticsScreen.cpp:259
msgid "Recordings:"
-msgstr "Записей:"
+msgstr "Записів:"
#: ../src/LevelPackManager.cpp:124
msgid "Custom Levels"
-msgstr ""
+msgstr "Інші рівні"
#: ../src/LevelPlaySelect.cpp:41
msgid "Select Level"
-msgstr "Выберите уровень"
+msgstr "Оберіть рівень"
+# TRANSLATORS: Used for button which clear any level progress like unlocked
+# levels and highscores.
#: ../src/OptionsMenu.cpp:66
msgid "Clear Progress"
-msgstr "Очистить прогресс"
+msgstr "Скинути прогрес"
#: ../src/OptionsMenu.cpp:109
msgid "General"
-msgstr ""
+msgstr "Загальні"
#: ../src/OptionsMenu.cpp:110
msgid "Controls"
-msgstr ""
+msgstr "Керування"
#: ../src/OptionsMenu.cpp:121
msgid "Music"
-msgstr "Музыка"
+msgstr "Музика"
#: ../src/OptionsMenu.cpp:129
msgid "Sound"
msgstr "Звуки"
#: ../src/OptionsMenu.cpp:137
msgid "Resolution"
-msgstr "Разрешение"
+msgstr "Роздільна здатність"
#: ../src/OptionsMenu.cpp:177
msgid "Language"
-msgstr "Язык"
+msgstr "Мова"
+# TRANSLATORS: as detect user's language automatically
#: ../src/OptionsMenu.cpp:185
msgid "Auto-Detect"
-msgstr "Автоопределение"
+msgstr "Автовизначення"
#: ../src/OptionsMenu.cpp:209
msgid "Theme"
-msgstr "Тема"
+msgstr "Оформлення"
#: ../src/OptionsMenu.cpp:247
msgid "Internet proxy"
-msgstr "Интернет-прокси"
+msgstr "Інтернет-проксі"
#: ../src/OptionsMenu.cpp:256
msgid "Fullscreen"
-msgstr "На весь экран"
+msgstr "На весь екран"
#: ../src/OptionsMenu.cpp:261
msgid "Quick record"
-msgstr ""
+msgstr "Швидкий запис"
#: ../src/OptionsMenu.cpp:266
msgid "Internet"
-msgstr "Интернет"
+msgstr "Інтернет"
#: ../src/OptionsMenu.cpp:271
msgid "Fade transition"
-msgstr ""
+msgstr "Плавний перехід"
#: ../src/OptionsMenu.cpp:294
msgid "Save Changes"
-msgstr "Сохранить изменения"
+msgstr "Зберегти зміни"
#: ../src/OptionsMenu.cpp:513
msgid "Do you really want to reset level progress?"
-msgstr "Вы действительно хотите очистить прогресс?"
+msgstr "Ви дійсно хочете скинути прогрес рівня?"
#: ../src/OptionsMenu.cpp:513
msgid "Warning"
-msgstr "Внимание"
+msgstr "Попередження"
#: ../src/StatisticsManager.cpp:386
msgid "New achievement:"
-msgstr ""
+msgstr "Нове досягнення:"
#: ../src/StatisticsManager.cpp:394
#, c-format
msgid "Achieved on %s"
-msgstr ""
+msgstr "Досягнуто %s"
#: ../src/StatisticsManager.cpp:400
msgid "Unknown achievement"
-msgstr ""
+msgstr "Невідоме досягнення"
#: ../src/StatisticsManager.cpp:406
#, c-format
msgid "Achieved %1.0f%%"
-msgstr ""
+msgstr "Досягнуто %1.0f%%"
#: ../src/StatisticsManager.cpp:410
msgid "Not achieved"
-msgstr ""
+msgstr "Не досягнуто"
#: ../src/StatisticsScreen.cpp:57 ../src/TitleMenu.cpp:55
msgid "Achievements and Statistics"
-msgstr ""
+msgstr "Досягнення і статистика"
#: ../src/StatisticsScreen.cpp:166
msgid "Achievements"
-msgstr ""
+msgstr "Досягнення"
#: ../src/StatisticsScreen.cpp:167
msgid "Statistics"
-msgstr ""
+msgstr "Статистика"
#: ../src/StatisticsScreen.cpp:234
msgid "Total"
-msgstr ""
+msgstr "Загалом"
#: ../src/StatisticsScreen.cpp:246
msgid "Traveling distance (m)"
-msgstr ""
+msgstr "Пройдена відстань (м)"
#: ../src/StatisticsScreen.cpp:247
msgid "Jump times"
-msgstr ""
+msgstr "Стрибків"
#: ../src/StatisticsScreen.cpp:248
msgid "Die times"
-msgstr ""
+msgstr "Смертей"
#: ../src/StatisticsScreen.cpp:249
msgid "Squashed times"
-msgstr ""
+msgstr "Разів розчавлено"
#: ../src/StatisticsScreen.cpp:260
msgid "Switch pulled times:"
-msgstr ""
+msgstr "Увімкнено вимикачів:"
#: ../src/StatisticsScreen.cpp:261
msgid "Swap times:"
-msgstr ""
+msgstr "Змін:"
#: ../src/StatisticsScreen.cpp:262
msgid "Save times:"
-msgstr ""
+msgstr "Збережень:"
#: ../src/StatisticsScreen.cpp:263
msgid "Load times:"
-msgstr ""
+msgstr "Завантажень:"
#: ../src/StatisticsScreen.cpp:268
msgid "Completed levels:"
-msgstr ""
+msgstr "Завершених рівнів:"
#: ../src/StatisticsScreen.cpp:306
msgid "In-game time:"
-msgstr ""
+msgstr "Час у грі:"
#: ../src/StatisticsScreen.cpp:308
msgid "Level editing time:"
-msgstr ""
+msgstr "Час у редакторі:"
#: ../src/StatisticsScreen.cpp:310
msgid "Created levels:"
-msgstr ""
+msgstr "Створено рівнів:"
#: ../src/TitleMenu.cpp:44
msgid "Options"
-msgstr "Опции"
+msgstr "Налаштування"
#: ../src/TitleMenu.cpp:47
msgid "Quit"
-msgstr "Выход"
+msgstr "Вихід"
#: ../src/TitleMenu.cpp:131
msgid "Enable internet in order to install addons."
-msgstr "Чтобы устанавливать дополнения, разрешите подключение к интернету."
+msgstr "Щоб встановлювати застосунки, дозвольте підключення до Інтернету."
#: ../src/TitleMenu.cpp:131
msgid "Internet disabled"
-msgstr "Подключение к интернету запрещено"
+msgstr "Підключення до інтернету вимкнуто"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Return"
-msgstr ""
+msgstr "Return"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Escape"
-msgstr ""
+msgstr "Escape"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Backspace"
-msgstr ""
+msgstr "Backspace"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Tab"
-msgstr ""
+msgstr "Tab"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Space"
-msgstr ""
+msgstr "Пробіл"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "CapsLock"
-msgstr ""
+msgstr "CapsLock"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "PrintScreen"
-msgstr ""
+msgstr "PrintScreen"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "ScrollLock"
-msgstr ""
+msgstr "ScrollLock"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Pause"
-msgstr ""
+msgstr "Pause"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Insert"
-msgstr ""
+msgstr "Insert"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Home"
-msgstr ""
+msgstr "Home"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "PageUp"
-msgstr ""
+msgstr "PageUp"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Delete"
-msgstr ""
+msgstr "Delete"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "End"
-msgstr ""
+msgstr "End"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "PageDown"
-msgstr ""
+msgstr "PageDown"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Right"
-msgstr ""
+msgstr "Праворуч"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Left"
-msgstr ""
+msgstr "Ліворуч"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Down"
-msgstr ""
+msgstr "Вниз"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Up"
-msgstr ""
+msgstr "Угору"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Numlock"
-msgstr ""
+msgstr "Numlock"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "SysReq"
-msgstr ""
+msgstr "SysReq"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Left Ctrl"
-msgstr ""
+msgstr "Лівий Ctrl"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Left Shift"
-msgstr ""
+msgstr "Лівий Shift"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Left Alt"
-msgstr ""
+msgstr "Лівий Alt"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Left GUI"
-msgstr ""
+msgstr "Лівий GUI"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Right Ctrl"
-msgstr ""
+msgstr "Правий Ctrl"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Right Shift"
-msgstr ""
+msgstr "Правий Shift"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Right Alt"
-msgstr ""
+msgstr "Правий Alt"
+# TRANSLATORS: name of a key
msgctxt "keys"
msgid "Right GUI"
-msgstr ""
+msgstr "Правий GUI"
diff --git a/src/libs/tinygettext/language.cpp b/src/libs/tinygettext/language.cpp
index 4a10fd9..5137a24 100644
--- a/src/libs/tinygettext/language.cpp
+++ b/src/libs/tinygettext/language.cpp
@@ -1,581 +1,581 @@
// tinygettext - A gettext replacement that works directly on .po files
// Copyright (c) 2006 Ingo Ruhnke <grumbel@gmail.com>
//
// This software is provided 'as-is', without any express or implied
// warranty. In no event will the authors be held liable for any damages
// arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it
// freely, subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented; you must not
// claim that you wrote the original software. If you use this software
// in a product, an acknowledgement in the product documentation would be
// appreciated but is not required.
// 2. Altered source versions must be plainly marked as such, and must not be
// misrepresented as being the original software.
// 3. This notice may not be removed or altered from any source distribution.
#include "tinygettext/language.hpp"
#include <assert.h>
#include <unordered_map>
#include <vector>
#include <algorithm>
namespace tinygettext {
struct LanguageSpec {
/** Language code: "de", "en", ... */
const char* language;
/** Country code: "BR", "DE", ..., can be 0 */
const char* country;
/** Modifier/Varint: "Latn", "ije", "latin"..., can be 0 */
const char* modifier;
/** Language name: "German", "English", "French", ... */
const char* name;
};
/** Language Definitions */
//*{
static const LanguageSpec languages[] = {
{ "aa", 0, 0, "Afar" },
{ "af", 0, 0, "Afrikaans" },
{ "af", "ZA", 0, "Afrikaans (South Africa)" },
{ "am", 0, 0, "Amharic" },
{ "ar", 0, 0, "Arabic" },
{ "ar", "AR", 0, "Arabic (Argentina)" },
{ "ar", "OM", 0, "Arabic (Oman)" },
{ "ar", "SA", 0, "Arabic (Saudi Arabia)" },
{ "ar", "SY", 0, "Arabic (Syrian Arab Republic)" },
{ "ar", "TN", 0, "Arabic (Tunisia)" },
{ "as", 0, 0, "Assamese" },
{ "ast",0, 0, "Asturian" },
{ "ay", 0, 0, "Aymara" },
{ "az", 0, 0, "Azerbaijani" },
{ "az", "IR", 0, "Azerbaijani (Iran)" },
{ "be", 0, 0, "Belarusian" },
{ "be", 0, "latin", "Belarusian" },
{ "bg", 0, 0, "Bulgarian" },
{ "bg", "BG", 0, "Bulgarian (Bulgaria)" },
{ "bn", 0, 0, "Bengali" },
{ "bn", "BD", 0, "Bengali (Bangladesh)" },
{ "bn", "IN", 0, "Bengali (India)" },
{ "bo", 0, 0, "Tibetan" },
{ "br", 0, 0, "Breton" },
{ "bs", 0, 0, "Bosnian" },
{ "bs", "BA", 0, "Bosnian (Bosnia/Herzegovina)"},
{ "bs", "BS", 0, "Bosnian (Bahamas)" },
{ "ca", "ES", "valencia", "Catalan (valencia)" },
{ "ca", "ES", 0, "Catalan (Spain)" },
{ "ca", 0, "valencia", "Catalan (valencia)" },
{ "ca", 0, 0, "Catalan" },
{ "cmn", 0, 0, "Mandarin" },
{ "co", 0, 0, "Corsican" },
{ "cs", 0, 0, "Czech" },
{ "cs", "CZ", 0, "Czech (Czech Republic)" },
{ "cy", 0, 0, "Welsh" },
{ "cy", "GB", 0, "Welsh (Great Britain)" },
{ "cz", 0, 0, "Unknown language" },
{ "da", 0, 0, "Danish" },
{ "da", "DK", 0, "Danish (Denmark)" },
{ "de", 0, 0, "German" },
{ "de", "AT", 0, "German (Austria)" },
{ "de", "CH", 0, "German (Switzerland)" },
{ "de", "DE", 0, "German (Germany)" },
{ "dk", 0, 0, "Unknown language" },
{ "dz", 0, 0, "Dzongkha" },
{ "el", 0, 0, "Greek" },
{ "el", "GR", 0, "Greek (Greece)" },
{ "en", 0, 0, "English" },
{ "en", "AU", 0, "English (Australia)" },
{ "en", "CA", 0, "English (Canada)" },
{ "en", "GB", 0, "English (Great Britain)" },
{ "en", "US", 0, "English (United States)" },
{ "en", "ZA", 0, "English (South Africa)" },
{ "en", 0, "boldquot", "English" },
{ "en", 0, "quot", "English" },
{ "en", "US", "piglatin", "English" },
{ "eo", 0, 0, "Esperanto" },
{ "es", 0, 0, "Spanish" },
{ "es", "AR", 0, "Spanish (Argentina)" },
{ "es", "CL", 0, "Spanish (Chile)" },
{ "es", "CO", 0, "Spanish (Colombia)" },
{ "es", "CR", 0, "Spanish (Costa Rica)" },
{ "es", "DO", 0, "Spanish (Dominican Republic)"},
{ "es", "EC", 0, "Spanish (Ecuador)" },
{ "es", "ES", 0, "Spanish (Spain)" },
{ "es", "GT", 0, "Spanish (Guatemala)" },
{ "es", "HN", 0, "Spanish (Honduras)" },
{ "es", "LA", 0, "Spanish (Laos)" },
{ "es", "MX", 0, "Spanish (Mexico)" },
{ "es", "NI", 0, "Spanish (Nicaragua)" },
{ "es", "PA", 0, "Spanish (Panama)" },
{ "es", "PE", 0, "Spanish (Peru)" },
{ "es", "PR", 0, "Spanish (Puerto Rico)" },
{ "es", "SV", 0, "Spanish (El Salvador)" },
{ "es", "UY", 0, "Spanish (Uruguay)" },
{ "es", "VE", 0, "Spanish (Venezuela)" },
{ "et", 0, 0, "Estonian" },
{ "et", "EE", 0, "Estonian (Estonia)" },
{ "et", "ET", 0, "Estonian (Ethiopia)" },
{ "eu", 0, 0, "Basque" },
{ "eu", "ES", 0, "Basque (Spain)" },
{ "fa", 0, 0, "Persian" },
{ "fa", "AF", 0, "Persian (Afghanistan)" },
{ "fa", "IR", 0, "Persian (Iran)" },
{ "fi", 0, 0, "Finnish" },
{ "fi", "FI", 0, "Finnish (Finland)" },
{ "fo", 0, 0, "Faroese" },
{ "fo", "FO", 0, "Faeroese (Faroe Islands)" },
{ "fr", 0, 0, "French" },
{ "fr", "CA", 0, "French (Canada)" },
{ "fr", "CH", 0, "French (Switzerland)" },
{ "fr", "FR", 0, "French (France)" },
{ "fr", "LU", 0, "French (Luxembourg)" },
{ "fy", 0, 0, "Frisian" },
{ "ga", 0, 0, "Irish" },
{ "gd", 0, 0, "Gaelic Scots" },
{ "gl", 0, 0, "Galician" },
{ "gl", "ES", 0, "Galician (Spain)" },
{ "gn", 0, 0, "Guarani" },
{ "gu", 0, 0, "Gujarati" },
{ "gv", 0, 0, "Manx" },
{ "ha", 0, 0, "Hausa" },
{ "he", 0, 0, "Hebrew" },
{ "he", "IL", 0, "Hebrew (Israel)" },
{ "hi", 0, 0, "Hindi" },
{ "hr", 0, 0, "Croatian" },
{ "hr", "HR", 0, "Croatian (Croatia)" },
{ "hu", 0, 0, "Hungarian" },
{ "hu", "HU", 0, "Hungarian (Hungary)" },
{ "hy", 0, 0, "Armenian" },
{ "ia", 0, 0, "Interlingua" },
{ "id", 0, 0, "Indonesian" },
{ "id", "ID", 0, "Indonesian (Indonesia)" },
{ "is", 0, 0, "Icelandic" },
{ "is", "IS", 0, "Icelandic (Iceland)" },
{ "it", 0, 0, "Italian" },
{ "it", "CH", 0, "Italian (Switzerland)" },
{ "it", "IT", 0, "Italian (Italy)" },
{ "iu", 0, 0, "Inuktitut" },
{ "ja", 0, 0, "Japanese" },
{ "ja", "JP", 0, "Japanese (Japan)" },
{ "ka", 0, 0, "Georgian" },
{ "kk", 0, 0, "Kazakh" },
{ "kl", 0, 0, "Kalaallisut" },
{ "km", 0, 0, "Khmer" },
{ "km", "KH", 0, "Khmer (Cambodia)" },
{ "kn", 0, 0, "Kannada" },
{ "ko", 0, 0, "Korean" },
{ "ko", "KR", 0, "Korean (Korea)" },
{ "ku", 0, 0, "Kurdish" },
{ "kw", 0, 0, "Cornish" },
{ "ky", 0, 0, "Kirghiz" },
{ "la", 0, 0, "Latin" },
{ "lo", 0, 0, "Lao" },
{ "lt", 0, 0, "Lithuanian" },
{ "lt", "LT", 0, "Lithuanian (Lithuania)" },
{ "lv", 0, 0, "Latvian" },
{ "lv", "LV", 0, "Latvian (Latvia)" },
{ "jbo", 0, 0, "Lojban" },
{ "mg", 0, 0, "Malagasy" },
{ "mi", 0, 0, "Maori" },
{ "mk", 0, 0, "Macedonian" },
{ "mk", "MK", 0, "Macedonian (Macedonia)" },
{ "ml", 0, 0, "Malayalam" },
{ "mn", 0, 0, "Mongolian" },
{ "mr", 0, 0, "Marathi" },
{ "ms", 0, 0, "Malay" },
{ "ms", "MY", 0, "Malay (Malaysia)" },
{ "mt", 0, 0, "Maltese" },
{ "my", 0, 0, "Burmese" },
{ "my", "MM", 0, "Burmese (Myanmar)" },
{ "nb", 0, 0, "Norwegian Bokmal" },
{ "nb", "NO", 0, "Norwegian Bokmål (Norway)" },
{ "ne", 0, 0, "Nepali" },
{ "nl", 0, 0, "Dutch" },
{ "nl", "BE", 0, "Dutch (Belgium)" },
{ "nl", "NL", 0, "Dutch (Netherlands)" },
{ "nn", 0, 0, "Norwegian Nynorsk" },
{ "nn", "NO", 0, "Norwegian Nynorsk (Norway)" },
{ "no", 0, 0, "Norwegian" },
{ "no", "NO", 0, "Norwegian (Norway)" },
{ "no", "NY", 0, "Norwegian (NY)" },
{ "nr", 0, 0, "Ndebele, South" },
{ "oc", 0, 0, "Occitan post 1500" },
{ "om", 0, 0, "Oromo" },
{ "or", 0, 0, "Oriya" },
{ "pa", 0, 0, "Punjabi" },
{ "pl", 0, 0, "Polish" },
{ "pl", "PL", 0, "Polish (Poland)" },
{ "ps", 0, 0, "Pashto" },
{ "pt", 0, 0, "Portuguese" },
{ "pt", "BR", 0, "Portuguese (Brazil)" },
{ "pt", "PT", 0, "Portuguese (Portugal)" },
{ "qu", 0, 0, "Quechua" },
{ "rm", 0, 0, "Rhaeto-Romance" },
{ "ro", 0, 0, "Romanian" },
{ "ro", "RO", 0, "Romanian (Romania)" },
{ "ru", 0, 0, "Russian" },
- { "ru", "RU", 0, "Russian (Russia" },
+ { "ru", "RU", 0, "Russian (Russia)" },
{ "rw", 0, 0, "Kinyarwanda" },
{ "sa", 0, 0, "Sanskrit" },
{ "sd", 0, 0, "Sindhi" },
{ "se", 0, 0, "Sami" },
{ "se", "NO", 0, "Sami (Norway)" },
{ "si", 0, 0, "Sinhalese" },
{ "sk", 0, 0, "Slovak" },
{ "sk", "SK", 0, "Slovak (Slovakia)" },
{ "sl", 0, 0, "Slovenian" },
{ "sl", "SI", 0, "Slovenian (Slovenia)" },
{ "sl", "SL", 0, "Slovenian (Sierra Leone)" },
{ "sm", 0, 0, "Samoan" },
{ "so", 0, 0, "Somali" },
{ "sp", 0, 0, "Unknown language" },
{ "sq", 0, 0, "Albanian" },
{ "sq", "AL", 0, "Albanian (Albania)" },
{ "sr", 0, 0, "Serbian" },
{ "sr", "YU", 0, "Serbian (Yugoslavia)" },
{ "sr", 0,"ije", "Serbian" },
{ "sr", 0, "latin", "Serbian" },
{ "sr", 0, "Latn", "Serbian" },
{ "ss", 0, 0, "Swati" },
{ "st", 0, 0, "Sotho" },
{ "sv", 0, 0, "Swedish" },
{ "sv", "SE", 0, "Swedish (Sweden)" },
{ "sv", "SV", 0, "Swedish (El Salvador)" },
{ "sw", 0, 0, "Swahili" },
{ "ta", 0, 0, "Tamil" },
{ "te", 0, 0, "Telugu" },
{ "tg", 0, 0, "Tajik" },
{ "th", 0, 0, "Thai" },
{ "th", "TH", 0, "Thai (Thailand)" },
{ "ti", 0, 0, "Tigrinya" },
{ "tk", 0, 0, "Turkmen" },
{ "tl", 0, 0, "Tagalog" },
{ "to", 0, 0, "Tonga" },
{ "tr", 0, 0, "Turkish" },
{ "tr", "TR", 0, "Turkish (Turkey)" },
{ "ts", 0, 0, "Tsonga" },
{ "tt", 0, 0, "Tatar" },
{ "ug", 0, 0, "Uighur" },
{ "uk", 0, 0, "Ukrainian" },
{ "uk", "UA", 0, "Ukrainian (Ukraine)" },
{ "ur", 0, 0, "Urdu" },
{ "ur", "PK", 0, "Urdu (Pakistan)" },
{ "uz", 0, 0, "Uzbek" },
{ "uz", 0, "cyrillic", "Uzbek" },
{ "vi", 0, 0, "Vietnamese" },
{ "vi", "VN", 0, "Vietnamese (Vietnam)" },
{ "wa", 0, 0, "Walloon" },
{ "wo", 0, 0, "Wolof" },
{ "xh", 0, 0, "Xhosa" },
{ "yi", 0, 0, "Yiddish" },
{ "yo", 0, 0, "Yoruba" },
{ "zh", 0, 0, "Chinese" },
{ "zh", "CN", 0, "Chinese (simplified)" },
{ "zh", "HK", 0, "Chinese (Hong Kong)" },
{ "zh", "TW", 0, "Chinese (traditional)" },
{ "zu", 0, 0, "Zulu" },
{ NULL, 0, 0, NULL }
};
//*}
std::string
resolve_language_alias(const std::string& name)
{
typedef std::unordered_map<std::string, std::string> Aliases;
static Aliases language_aliases;
if (language_aliases.empty())
{
// FIXME: Many of those are not useful for us, since we leave
// encoding to the app, not to the language, we could/should
// also match against all language names, not just aliases from
// locale.alias
// Aliases taken from /etc/locale.alias
language_aliases["bokmal"] = "nb_NO.ISO-8859-1";
language_aliases["bokmål"] = "nb_NO.ISO-8859-1";
language_aliases["catalan"] = "ca_ES.ISO-8859-1";
language_aliases["croatian"] = "hr_HR.ISO-8859-2";
language_aliases["czech"] = "cs_CZ.ISO-8859-2";
language_aliases["danish"] = "da_DK.ISO-8859-1";
language_aliases["dansk"] = "da_DK.ISO-8859-1";
language_aliases["deutsch"] = "de_DE.ISO-8859-1";
language_aliases["dutch"] = "nl_NL.ISO-8859-1";
language_aliases["eesti"] = "et_EE.ISO-8859-1";
language_aliases["estonian"] = "et_EE.ISO-8859-1";
language_aliases["finnish"] = "fi_FI.ISO-8859-1";
language_aliases["français"] = "fr_FR.ISO-8859-1";
language_aliases["french"] = "fr_FR.ISO-8859-1";
language_aliases["galego"] = "gl_ES.ISO-8859-1";
language_aliases["galician"] = "gl_ES.ISO-8859-1";
language_aliases["german"] = "de_DE.ISO-8859-1";
language_aliases["greek"] = "el_GR.ISO-8859-7";
language_aliases["hebrew"] = "he_IL.ISO-8859-8";
language_aliases["hrvatski"] = "hr_HR.ISO-8859-2";
language_aliases["hungarian"] = "hu_HU.ISO-8859-2";
language_aliases["icelandic"] = "is_IS.ISO-8859-1";
language_aliases["italian"] = "it_IT.ISO-8859-1";
language_aliases["japanese"] = "ja_JP.eucJP";
language_aliases["japanese.euc"] = "ja_JP.eucJP";
language_aliases["ja_JP"] = "ja_JP.eucJP";
language_aliases["ja_JP.ujis"] = "ja_JP.eucJP";
language_aliases["japanese.sjis"] = "ja_JP.SJIS";
language_aliases["korean"] = "ko_KR.eucKR";
language_aliases["korean.euc"] = "ko_KR.eucKR";
language_aliases["ko_KR"] = "ko_KR.eucKR";
language_aliases["lithuanian"] = "lt_LT.ISO-8859-13";
language_aliases["no_NO"] = "nb_NO.ISO-8859-1";
language_aliases["no_NO.ISO-8859-1"] = "nb_NO.ISO-8859-1";
language_aliases["norwegian"] = "nb_NO.ISO-8859-1";
language_aliases["nynorsk"] = "nn_NO.ISO-8859-1";
language_aliases["polish"] = "pl_PL.ISO-8859-2";
language_aliases["portuguese"] = "pt_PT.ISO-8859-1";
language_aliases["romanian"] = "ro_RO.ISO-8859-2";
language_aliases["russian"] = "ru_RU.ISO-8859-5";
language_aliases["slovak"] = "sk_SK.ISO-8859-2";
language_aliases["slovene"] = "sl_SI.ISO-8859-2";
language_aliases["slovenian"] = "sl_SI.ISO-8859-2";
language_aliases["spanish"] = "es_ES.ISO-8859-1";
language_aliases["swedish"] = "sv_SE.ISO-8859-1";
language_aliases["thai"] = "th_TH.TIS-620";
language_aliases["turkish"] = "tr_TR.ISO-8859-9";
}
std::string name_lowercase;
name_lowercase.resize(name.size());
for(std::string::size_type i = 0; i < name.size(); ++i)
name_lowercase[i] = static_cast<char>(tolower(name[i]));
Aliases::iterator i = language_aliases.find(name_lowercase);
if (i != language_aliases.end())
{
return i->second;
}
else
{
return name;
}
}
Language
Language::from_spec(const std::string& language, const std::string& country, const std::string& modifier)
{
typedef std::unordered_map<std::string, std::vector<const LanguageSpec*> > LanguageSpecMap;
static LanguageSpecMap language_map;
if (language_map.empty())
{ // Init language_map
for(int i = 0; languages[i].language != NULL; ++i)
language_map[languages[i].language].push_back(&languages[i]);
}
LanguageSpecMap::iterator i = language_map.find(language);
if (i != language_map.end())
{
std::vector<const LanguageSpec*>& lst = i->second;
LanguageSpec tmpspec;
tmpspec.language = language.c_str();
tmpspec.country = country.c_str();
tmpspec.modifier = modifier.c_str();
Language tmplang(&tmpspec);
const LanguageSpec* best_match = 0;
int best_match_score = 0;
for(std::vector<const LanguageSpec*>::iterator j = lst.begin(); j != lst.end(); ++j)
{ // Search for the language that best matches the given spec, value country more then modifier
int score = Language::match(Language(*j), tmplang);
if (score > best_match_score)
{
best_match = *j;
best_match_score = score;
}
}
assert(best_match);
return Language(best_match);
}
else
{
return Language();
}
}
Language
Language::from_name(const std::string& spec_str)
{
return from_env(resolve_language_alias(spec_str));
}
Language
Language::from_env(const std::string& env)
{
// Split LANGUAGE_COUNTRY.CODESET@MODIFIER into parts
std::string::size_type ln = env.find('_');
std::string::size_type dt = env.find('.');
std::string::size_type at = env.find('@');
std::string language;
std::string country;
std::string codeset;
std::string modifier;
//std::cout << ln << " " << dt << " " << at << std::endl;
language = env.substr(0, std::min(std::min(ln, dt), at));
if (ln != std::string::npos && ln+1 < env.size()) // _
{
country = env.substr(ln+1, (std::min(dt, at) == std::string::npos) ? std::string::npos : std::min(dt, at) - (ln+1));
}
if (dt != std::string::npos && dt+1 < env.size()) // .
{
codeset = env.substr(dt+1, (at == std::string::npos) ? std::string::npos : (at - (dt+1)));
}
if (at != std::string::npos && at+1 < env.size()) // @
{
modifier = env.substr(at+1);
}
// Some workaround for files generated by Hosted Weblate
if (language == "zh")
{
if (country == "Hans" || country == "HANS") country = "CN";
else if (country == "Hant" || country == "HANT") country = "TW";
}
return from_spec(language, country, modifier);
}
Language::Language(const LanguageSpec* language_spec_)
: language_spec(language_spec_)
{
}
Language::Language()
: language_spec(0)
{
}
int
Language::match(const Language& lhs, const Language& rhs)
{
if (lhs.get_language() != rhs.get_language())
{
return 0;
}
else
{
static int match_tbl[3][3] = {
// modifier match, wildchard, miss
{ 9, 8, 5 }, // country match
{ 7, 6, 3 }, // country wildcard
{ 4, 2, 1 }, // country miss
};
int c;
if (lhs.get_country() == rhs.get_country())
c = 0;
else if (lhs.get_country().empty() || rhs.get_country().empty())
c = 1;
else
c = 2;
int m;
if (lhs.get_modifier() == rhs.get_modifier())
m = 0;
else if (lhs.get_modifier().empty() || rhs.get_modifier().empty())
m = 1;
else
m = 2;
return match_tbl[c][m];
}
}
std::string
Language::get_language() const
{
if (language_spec)
return language_spec->language;
else
return "";
}
std::string
Language::get_country() const
{
if (language_spec && language_spec->country)
return language_spec->country;
else
return "";
}
std::string
Language::get_modifier() const
{
if (language_spec && language_spec->modifier)
return language_spec->modifier;
else
return "";
}
std::string
Language::get_name() const
{
if (language_spec)
return language_spec->name;
else
return "";
}
std::string
Language::str() const
{
if (language_spec)
{
std::string var;
var += language_spec->language;
if (language_spec->country)
{
var += "_";
var += language_spec->country;
}
if (language_spec->modifier)
{
var += "@";
var += language_spec->modifier;
}
return var;
}
else
{
return "";
}
}
bool
Language::operator==(const Language& rhs) const
{
return language_spec == rhs.language_spec;
}
bool
Language::operator!=(const Language& rhs) const
{
return language_spec != rhs.language_spec;
}
} // namespace tinygettext
/* EOF */

File Metadata

Mime Type
text/x-diff
Expires
Sat, May 16, 7:14 PM (1 d, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
63323
Default Alt Text
(218 KB)

Event Timeline