# HG changeset patch # User nemo # Date 1369167276 14400 # Node ID 1ae1b6017b27d144bd9eb33be86a045d03f8db2f # Parent f6074540bab239d106c32dac98cdcc31fd1776e6# Parent 279168729cc305a3bc030dcddf687eaddb10283d ಠ_ಠ diff -r f6074540bab2 -r 1ae1b6017b27 QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Tue May 21 16:13:32 2013 -0400 +++ b/QTfrontend/hwform.cpp Tue May 21 16:14:36 2013 -0400 @@ -319,8 +319,6 @@ connect(ui.pageMain->BtnNetLocal, SIGNAL(clicked()), this, SLOT(GoToNet())); connect(ui.pageMain->BtnNetOfficial, SIGNAL(clicked()), this, SLOT(NetConnectOfficialServer())); - connect(ui.pageConnecting, SIGNAL(cancelConnection()), this, SLOT(GoBack())); - connect(ui.pageVideos, SIGNAL(goBack()), config, SLOT(SaveVideosOptions())); ammoSchemeModel = new AmmoSchemeModel(this, cfgdir->absolutePath() + "/schemes.ini"); diff -r f6074540bab2 -r 1ae1b6017b27 QTfrontend/main.cpp --- a/QTfrontend/main.cpp Tue May 21 16:13:32 2013 -0400 +++ b/QTfrontend/main.cpp Tue May 21 16:14:36 2013 -0400 @@ -268,8 +268,13 @@ QString cc = settings.value("misc/locale", QString()).toString(); if (cc.isEmpty()) - cc = HWApplication::keyboardInputLocale().name(); - // QLocale::system().name() returns only "C"... + { + cc = QLocale::system().name(); + + // Fallback to current input locale if "C" locale is returned + if(cc == "C") + cc = HWApplication::keyboardInputLocale().name(); + } // load locale file into translator if (!Translator.load(QString("physfs://Locale/hedgewars_%1").arg(cc))) diff -r f6074540bab2 -r 1ae1b6017b27 QTfrontend/ui/page/pageroomslist.cpp --- a/QTfrontend/ui/page/pageroomslist.cpp Tue May 21 16:13:32 2013 -0400 +++ b/QTfrontend/ui/page/pageroomslist.cpp Tue May 21 16:14:36 2013 -0400 @@ -28,6 +28,7 @@ #include <QGroupBox> #include <QMenu> #include <QDebug> +#include <QSplitter> #include <QSortFilterProxyModel> @@ -107,7 +108,18 @@ topLayout->setRowStretch(1, 0); topLayout->setColumnStretch(3, 1); + // Rooms list and chat with splitter + m_splitter = new QSplitter(); + m_splitter->setChildrenCollapsible(false); + pageLayout->addWidget(m_splitter, 100); + // Room list + QWidget * roomsListWidget = new QWidget(this); + m_splitter->setOrientation(Qt::Vertical); + m_splitter->addWidget(roomsListWidget); + + QVBoxLayout * roomsLayout = new QVBoxLayout(roomsListWidget); + roomsLayout->setMargin(0); roomsList = new RoomTableView(this); roomsList->setSelectionBehavior(QAbstractItemView::SelectRows); @@ -118,7 +130,7 @@ roomsList->setSelectionMode(QAbstractItemView::SingleSelection); roomsList->setStyleSheet("QTableView { border-top-left-radius: 0px; }"); roomsList->setFocusPolicy(Qt::NoFocus); - pageLayout->addWidget(roomsList, 200); + roomsLayout->addWidget(roomsList, 200); // Room filters container @@ -126,9 +138,9 @@ filtersContainer->setMaximumWidth(800); filtersContainer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - pageLayout->addSpacing(7); - pageLayout->addWidget(filtersContainer, 0, Qt::AlignHCenter); - pageLayout->addSpacing(7); + roomsLayout->addSpacing(7); + roomsLayout->addWidget(filtersContainer, 0, Qt::AlignHCenter); + roomsLayout->addSpacing(7); QHBoxLayout * filterLayout = new QHBoxLayout(filtersContainer); filterLayout->setSpacing(0); @@ -194,7 +206,7 @@ // Lobby chat chatWidget = new HWChatWidget(this, false); - pageLayout->addWidget(chatWidget, 350); + m_splitter->addWidget(chatWidget); CBRules->addItem(QComboBox::tr("Any")); @@ -251,6 +263,8 @@ void PageRoomsList::roomSelectionChanged(const QModelIndex & current, const QModelIndex & previous) { + Q_UNUSED(previous); + BtnJoin->setEnabled(current.isValid()); } @@ -732,14 +746,24 @@ bool PageRoomsList::restoreHeaderState() { - if (!m_gameSettings->contains("frontend/roomslist_header")) - return false; - return roomsList->horizontalHeader()->restoreState(QByteArray::fromBase64( - (m_gameSettings->value("frontend/roomslist_header").toByteArray()))); + if (m_gameSettings->contains("frontend/roomslist_splitter")) + { + m_splitter->restoreState(QByteArray::fromBase64( + (m_gameSettings->value("frontend/roomslist_splitter").toByteArray()))); + } + + if (m_gameSettings->contains("frontend/roomslist_header")) + { + return roomsList->horizontalHeader()->restoreState(QByteArray::fromBase64( + (m_gameSettings->value("frontend/roomslist_header").toByteArray()))); + } else return false; } void PageRoomsList::saveHeaderState() { m_gameSettings->setValue("frontend/roomslist_header", QString(roomsList->horizontalHeader()->saveState().toBase64())); + + m_gameSettings->setValue("frontend/roomslist_splitter", + QString(m_splitter->saveState().toBase64())); } diff -r f6074540bab2 -r 1ae1b6017b27 QTfrontend/ui/page/pageroomslist.h --- a/QTfrontend/ui/page/pageroomslist.h Tue May 21 16:13:32 2013 -0400 +++ b/QTfrontend/ui/page/pageroomslist.h Tue May 21 16:14:36 2013 -0400 @@ -27,6 +27,7 @@ class QTableView; class RoomsListModel; class QSortFilterProxyModel; +class QSplitter; class RoomTableView : public QTableView { @@ -101,6 +102,7 @@ QSortFilterProxyModel * weaponsFilteredModel; QAction * showGamesInLobby; QAction * showGamesInProgress; + QSplitter * m_splitter; AmmoSchemeModel * ammoSchemeModel; diff -r f6074540bab2 -r 1ae1b6017b27 gameServer/Actions.hs --- a/gameServer/Actions.hs Tue May 21 16:13:32 2013 -0400 +++ b/gameServer/Actions.hs Tue May 21 16:14:36 2013 -0400 @@ -381,7 +381,7 @@ if p < 38 then processAction $ ByeClient $ loc "Nickname is already in use" else - processAction $ NoticeMessage NickAlreadyInUse + mapM_ processAction [NoticeMessage NickAlreadyInUse, ModifyClient $ \c -> c{nick = B.empty}] else do db <- gets (dbQueries . serverInfo) diff -r f6074540bab2 -r 1ae1b6017b27 gameServer/HWProtoCore.hs --- a/gameServer/HWProtoCore.hs Tue May 21 16:13:32 2013 -0400 +++ b/gameServer/HWProtoCore.hs Tue May 21 16:14:36 2013 -0400 @@ -43,12 +43,12 @@ where h ["DELEGATE", n] = handleCmd ["DELEGATE", n] h ["STATS"] = handleCmd ["STATS"] - h ["PART", msg] = handleCmd ["PART", msg] - h ["QUIT", msg] = handleCmd ["QUIT", msg] - h ["GLOBAL", msg] = do + h ("PART":m:ms) = handleCmd ["PART", B.unwords $ m:ms] + h ("QUIT":m:ms) = handleCmd ["QUIT", B.unwords $ m:ms] + h ("GLOBAL":m:ms) = do rnc <- liftM snd ask let chans = map (sendChan . client rnc) $ allClients rnc - return [AnswerClients chans ["CHAT", "[global notice]", msg]] + return [AnswerClients chans ["CHAT", "[global notice]", B.unwords $ m:ms]] h c = return [Warning . B.concat . L.intersperse " " $ "Unknown cmd" : c] handleCmd cmd = do diff -r f6074540bab2 -r 1ae1b6017b27 hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Tue May 21 16:13:32 2013 -0400 +++ b/hedgewars/hwengine.pas Tue May 21 16:14:36 2013 -0400 @@ -93,13 +93,7 @@ ScriptCall('onGameStart'); GameState:= gsGame; end; - gsConfirm, gsGame: - begin - if not cOnlyStats then DrawWorld(Lag); - DoGameTick(Lag); - if not cOnlyStats then ProcessVisualGears(Lag); - end; - gsChat: + gsConfirm, gsGame, gsChat: begin if not cOnlyStats then DrawWorld(Lag); DoGameTick(Lag); @@ -168,10 +162,10 @@ // sdl on iphone supports only ashii keyboards and the unicode field is deprecated in sdl 1.3 KeyPressChat(SDL_GetKeyFromScancode(event.key.keysym.sym), event.key.keysym.sym); //TODO correct for keymodifiers end - else - ProcessKey(event.key); + else + if GameState >= gsGame then ProcessKey(event.key); SDL_KEYUP: - if GameState <> gsChat then + if (GameState <> gsChat) and (GameState >= gsGame) then ProcessKey(event.key); SDL_WINDOWEVENT: @@ -213,19 +207,19 @@ if GameState = gsChat then KeyPressChat(event.key.keysym.unicode, event.key.keysym.sym) else - ProcessKey(event.key); + if GameState >= gsGame then ProcessKey(event.key); SDL_KEYUP: - if GameState <> gsChat then + if (GameState <> gsChat) and (GameState >= gsGame) then ProcessKey(event.key); SDL_MOUSEBUTTONDOWN: if GameState = gsConfirm then ParseCommand('quit', true) else - ProcessMouse(event.button, true); + if (GameState >= gsGame) then ProcessMouse(event.button, true); SDL_MOUSEBUTTONUP: - ProcessMouse(event.button, false); + if (GameState >= gsGame) then ProcessMouse(event.button, false); SDL_ACTIVEEVENT: if (event.active.state and SDL_APPINPUTFOCUS) <> 0 then diff -r f6074540bab2 -r 1ae1b6017b27 hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Tue May 21 16:13:32 2013 -0400 +++ b/hedgewars/uWorld.pas Tue May 21 16:14:36 2013 -0400 @@ -1320,7 +1320,7 @@ // draw health bars right border inc(r.x, cTeamHealthWidth + 2); r.w:= 3; - DrawTextureFromRect(TeamHealthBarWidth + 16, cScreenHeight + DrawHealthY + smallScreenOffset, @r, HealthTex); + DrawTextureFromRect(TeamHealthBarWidth + 15, cScreenHeight + DrawHealthY + smallScreenOffset, @r, HealthTex); if not highlight and (not hasGone) then for i:= 0 to cMaxHHIndex do @@ -1357,7 +1357,7 @@ // draw health bar r.w:= TeamHealthBarWidth + 1; r.h:= HealthTex^.h - 4; - DrawTextureFromRect(16, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, HealthTex); + DrawTextureFromRect(15, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, HealthTex); if not hasGone and (TeamHealth > 1) then begin Tint(Clan^.Color shl 8 or $FF); diff -r f6074540bab2 -r 1ae1b6017b27 share/hedgewars/Data/Locale/hedgewars_ru.ts --- a/share/hedgewars/Data/Locale/hedgewars_ru.ts Tue May 21 16:13:32 2013 -0400 +++ b/share/hedgewars/Data/Locale/hedgewars_ru.ts Tue May 21 16:14:36 2013 -0400 @@ -5,7 +5,7 @@ <name>About</name> <message> <source>Unknown Compiler</source> - <translation type="unfinished"></translation> + <translation>Неизвестный компилятор</translation> </message> </context> <context> @@ -30,31 +30,31 @@ <name>BanDialog</name> <message> <source>IP</source> - <translation type="unfinished">IP</translation> + <translation>IP</translation> </message> <message> <source>Nick</source> - <translation type="unfinished"></translation> + <translation>Псевдоним</translation> </message> <message> <source>IP/Nick</source> - <translation type="unfinished"></translation> + <translation>IP/Псевдоним</translation> </message> <message> <source>Reason</source> - <translation type="unfinished"></translation> + <translation>Причина</translation> </message> <message> <source>Duration</source> - <translation type="unfinished"></translation> + <translation>Длительность</translation> </message> <message> <source>Ok</source> - <translation type="unfinished"></translation> + <translation>ОК</translation> </message> <message> <source>Cancel</source> - <translation type="unfinished">Отмена</translation> + <translation>Отмена</translation> </message> <message> <source>you know why</source> @@ -62,57 +62,57 @@ </message> <message> <source>Warning</source> - <translation type="unfinished"></translation> + <translation>Предупреждение</translation> </message> <message> <source>Please, specify %1</source> - <translation type="unfinished"></translation> + <translation>Пожалуйста, укажите %1</translation> </message> <message> <source>nickname</source> - <translation type="unfinished"></translation> + <translation>псевдоним</translation> </message> <message> <source>permanent</source> - <translation type="unfinished"></translation> + <translation>постоянный</translation> </message> </context> <context> <name>DataManager</name> <message> <source>Use Default</source> - <translation type="unfinished"></translation> + <translation>Использовать значение по умолчанию</translation> </message> </context> <context> <name>FeedbackDialog</name> <message> <source>View</source> - <translation type="unfinished"></translation> + <translation>Вид</translation> </message> <message> <source>Cancel</source> - <translation type="unfinished">Отмена</translation> + <translation>Отмена</translation> </message> <message> <source>Send Feedback</source> - <translation type="unfinished"></translation> + <translation>Отослать отзыв</translation> </message> <message> <source>We are always happy about suggestions, ideas, or bug reports.</source> - <translation type="unfinished"></translation> + <translation>Мы всегда рады новым предложениям, идям или сообщениям об ошибках.</translation> </message> <message> <source>Send us feedback!</source> - <translation type="unfinished"></translation> + <translation>Пришлите нам отзыв!</translation> </message> <message> <source>If you found a bug, you can see if it's already been reported here: </source> - <translation type="unfinished"></translation> + <translation>Если вы нашли ошибку, можете проверить, не было ли уже сообщения о ней здесь:</translation> </message> <message> <source>Your email address is optional, but necessary if you want us to get back at you.</source> - <translation type="unfinished"></translation> + <translation>Адрес e-mail необязателен, но необходим, если вы хотите получить ответ.</translation> </message> </context> <context> @@ -146,73 +146,76 @@ </message> <message> <source>Game scheme will auto-select a weapon</source> - <translation type="unfinished"></translation> + <translation>Схема игры определяет набор оружия</translation> </message> <message> <source>Map</source> - <translation type="unfinished">Карта</translation> + <translation>Карта</translation> </message> <message> <source>Game options</source> - <translation type="unfinished"></translation> + <translation>Настройки игры</translation> </message> </context> <context> <name>HWApplication</name> <message numerus="yes"> <source>%1 minutes</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%1 минута</numerusform> + <numerusform>%1 минуты</numerusform> + <numerusform>%1 минут</numerusform> </translation> </message> <message numerus="yes"> <source>%1 hour</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%1 час</numerusform> + <numerusform>%1 часа</numerusform> + <numerusform>%1 часов</numerusform> </translation> </message> <message numerus="yes"> <source>%1 hours</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%1 час</numerusform> + <numerusform>%1 часа</numerusform> + <numerusform>%1 часов</numerusform> </translation> </message> <message numerus="yes"> <source>%1 day</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%1 день</numerusform> + <numerusform>%1 дня</numerusform> + <numerusform>%1 дней</numerusform> </translation> </message> <message numerus="yes"> <source>%1 days</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%1 день</numerusform> + <numerusform>%1 дня</numerusform> + <numerusform>%1 дней</numerusform> </translation> </message> <message> <source>Scheme '%1' not supported</source> - <translation type="unfinished"></translation> + <translation>Схема "%1" не поддерживается</translation> </message> <message> <source>Cannot create directory %1</source> - <translation type="unfinished">Не могу создать папку %1</translation> + <translation>Не могу создать папку %1</translation> </message> <message> <source>Failed to open data directory: %1 Please check your installation!</source> - <translation type="unfinished"></translation> + <translation>Не могу открыть папку: +%1 + +Пожалуйста, проверьте установку приложения!</translation> </message> </context> <context> @@ -266,15 +269,15 @@ </message> <message> <source>%1 has joined</source> - <translation type="unfinished"></translation> + <translation>%1 вошёл</translation> </message> <message> <source>%1 has left</source> - <translation type="unfinished"></translation> + <translation>%1 вышел</translation> </message> <message> <source>%1 has left (%2)</source> - <translation type="unfinished"></translation> + <translation>%1 вышел (%2)</translation> </message> </context> <context> @@ -325,7 +328,7 @@ </message> <message> <source>%1's Team</source> - <translation type="unfinished"></translation> + <translation>Команда %1</translation> </message> <message> <source>Hedgewars - Nick registered</source> @@ -374,7 +377,8 @@ <message> <source>You reconnected too fast. Please wait a few seconds and try again.</source> - <translation type="unfinished"></translation> + <translation>Вы переподключились слишком быстро. +Пожалуйста, попробуйте снова через несколько секунд.</translation> </message> <message> <source>This page requires an internet connection.</source> @@ -432,91 +436,91 @@ </message> <message> <source>Map type:</source> - <translation type="unfinished"></translation> + <translation>Тип карты:</translation> </message> <message> <source>Image map</source> - <translation type="unfinished"></translation> + <translation>Изображение</translation> </message> <message> <source>Mission map</source> - <translation type="unfinished"></translation> + <translation>Миссия</translation> </message> <message> <source>Hand-drawn</source> - <translation type="unfinished">Рисованная карта</translation> + <translation>Рисованная карта</translation> </message> <message> <source>Randomly generated</source> - <translation type="unfinished"></translation> + <translation>Случайно сгенерированная</translation> </message> <message> <source>Random maze</source> - <translation type="unfinished"></translation> + <translation>Случайный лабиринт</translation> </message> <message> <source>Random</source> - <translation type="unfinished">Случайно</translation> + <translation>Случайно</translation> </message> <message> <source>Map preview:</source> - <translation type="unfinished"></translation> + <translation>Предпросмотр карты:</translation> </message> <message> <source>Load map drawing</source> - <translation type="unfinished"></translation> + <translation>Загрузить рисованную карту</translation> </message> <message> <source>Edit map drawing</source> - <translation type="unfinished"></translation> + <translation>Редактировать рисованную карту</translation> </message> <message> <source>Small islands</source> - <translation type="unfinished"></translation> + <translation>Маленькие острова</translation> </message> <message> <source>Medium islands</source> - <translation type="unfinished"></translation> + <translation>Средние острова</translation> </message> <message> <source>Large islands</source> - <translation type="unfinished"></translation> + <translation>Большие острова</translation> </message> <message> <source>Map size:</source> - <translation type="unfinished"></translation> + <translation>Размер карты:</translation> </message> <message> <source>Maze style:</source> - <translation type="unfinished"></translation> + <translation>Стиль лабиринта:</translation> </message> <message> <source>Mission:</source> - <translation type="unfinished"></translation> + <translation>Миссия:</translation> </message> <message> <source>Map:</source> - <translation type="unfinished"></translation> + <translation>Карта:</translation> </message> <message> <source>Load drawn map</source> - <translation type="unfinished">Загрузить рисованную карту</translation> + <translation>Загрузить рисованную карту</translation> </message> <message> <source>Drawn Maps</source> - <translation type="unfinished">Рисованные карты</translation> + <translation>Рисованные карты</translation> </message> <message> <source>All files</source> - <translation type="unfinished">Все файлы</translation> + <translation>Все файлы</translation> </message> <message> <source>Large tunnels</source> - <translation type="unfinished"></translation> + <translation>Большие туннели</translation> </message> <message> <source>Theme: %1</source> - <translation type="unfinished"></translation> + <translation>Тема: %1</translation> </message> </context> <context> @@ -600,11 +604,11 @@ </message> <message> <source>Nickname:</source> - <translation type="unfinished"></translation> + <translation>Псевдоним:</translation> </message> <message> <source>Password:</source> - <translation type="unfinished"></translation> + <translation>Пароль:</translation> </message> </context> <context> @@ -622,22 +626,22 @@ <name>HatButton</name> <message> <source>Change hat (%1)</source> - <translation type="unfinished"></translation> + <translation>Сменить шляпу (%1)</translation> </message> </context> <context> <name>HatPrompt</name> <message> <source>Cancel</source> - <translation type="unfinished">Отмена</translation> + <translation>Отмена</translation> </message> <message> <source>Use selected hat</source> - <translation type="unfinished"></translation> + <translation>Использовать выбранную шляпу</translation> </message> <message> <source>Search for a hat:</source> - <translation type="unfinished"></translation> + <translation>Поиск по шляпам:</translation> </message> </context> <context> @@ -651,7 +655,7 @@ <name>KeyBinder</name> <message> <source>Category</source> - <translation type="unfinished"></translation> + <translation>Категория</translation> </message> </context> <context> @@ -659,30 +663,30 @@ <message> <source>Duration: %1m %2s </source> - <translation type="unfinished">Длительность: %1мин %2сек</translation> + <translation>Длительность: %1мин %2сек</translation> </message> <message> <source>Video: %1x%2, </source> - <translation type="unfinished">Видео: %1x%2, </translation> + <translation>Видео: %1x%2, </translation> </message> <message> <source>%1 fps, </source> - <translation type="unfinished">%1 кадров/сек,</translation> + <translation>%1 кадров/сек,</translation> </message> <message> <source>Audio: </source> - <translation type="unfinished">Аудио: </translation> + <translation>Аудио: </translation> </message> <message> <source>unknown</source> - <translation type="unfinished"></translation> + <translation>неизвестно</translation> </message> </context> <context> <name>MapModel</name> <message> <source>No description available.</source> - <translation type="unfinished"></translation> + <translation>Описание отсутствует.</translation> </message> </context> <context> @@ -717,35 +721,35 @@ </message> <message> <source>General</source> - <translation type="unfinished">Основные настройки</translation> + <translation>Основные настройки</translation> </message> <message> <source>Bans</source> - <translation type="unfinished"></translation> + <translation>Баны</translation> </message> <message> <source>IP/Nick</source> - <translation type="unfinished"></translation> + <translation>IP/Псевдоним</translation> </message> <message> <source>Expiration</source> - <translation type="unfinished"></translation> + <translation>Окончание</translation> </message> <message> <source>Reason</source> - <translation type="unfinished"></translation> + <translation>Причина</translation> </message> <message> <source>Refresh</source> - <translation type="unfinished"></translation> + <translation>Обновить</translation> </message> <message> <source>Add</source> - <translation type="unfinished"></translation> + <translation>Добавить</translation> </message> <message> <source>Remove</source> - <translation type="unfinished"></translation> + <translation>Удалить</translation> </message> </context> <context> @@ -759,7 +763,7 @@ <name>PageDataDownload</name> <message> <source>Loading, please wait.</source> - <translation type="unfinished"></translation> + <translation>Идёт загрузка пожалуйста, подождите.</translation> </message> <message> <source>This page requires an internet connection.</source> @@ -817,35 +821,35 @@ </message> <message> <source>Use my default</source> - <translation type="unfinished"></translation> + <translation>Использовать мои настройки по умолчанию</translation> </message> <message> <source>Reset all binds</source> - <translation type="unfinished"></translation> + <translation>Сбросить все привязки</translation> </message> <message> <source>Custom Controls</source> - <translation type="unfinished"></translation> + <translation>Настройка управления</translation> </message> <message> <source>Hat</source> - <translation type="unfinished">Шляпа</translation> + <translation>Шляпа</translation> </message> <message> <source>Name</source> - <translation type="unfinished">Название</translation> + <translation>Название</translation> </message> <message> <source>This hedgehog's name</source> - <translation type="unfinished"></translation> + <translation>Имя этого ежа</translation> </message> <message> <source>Randomize this hedgehog's name</source> - <translation type="unfinished"></translation> + <translation>Выбрать случайное имя для этого ежа</translation> </message> <message> <source>Random Team</source> - <translation type="unfinished">Случайная команда</translation> + <translation>Случайная команда</translation> </message> </context> <context> @@ -969,23 +973,23 @@ </message> <message> <source>Play a game across a local area network</source> - <translation type="unfinished"></translation> + <translation>Играть по локальной сети</translation> </message> <message> <source>Play a game on an official server</source> - <translation type="unfinished"></translation> + <translation>Играть на официальном сервере</translation> </message> <message> <source>Feedback</source> - <translation type="unfinished"></translation> + <translation>Отзыв</translation> </message> <message> <source>Play local network game</source> - <translation type="unfinished"></translation> + <translation>Играть по локальной сети</translation> </message> <message> <source>Play official network game</source> - <translation type="unfinished"></translation> + <translation>Играть на официальном сервере</translation> </message> </context> <context> @@ -996,7 +1000,7 @@ </message> <message> <source>Edit game preferences</source> - <translation type="unfinished">Редактировать настройки игры</translation> + <translation>Редактировать настройки игры</translation> </message> </context> <context> @@ -1007,19 +1011,19 @@ </message> <message> <source>Edit game preferences</source> - <translation type="unfinished">Редактировать настройки игры</translation> + <translation>Редактировать настройки игры</translation> </message> <message> <source>Start</source> - <translation type="unfinished">Старт</translation> + <translation>Старт</translation> </message> <message> <source>Update</source> - <translation type="unfinished">Обновить</translation> + <translation>Обновить</translation> </message> <message> <source>Room controls</source> - <translation type="unfinished"></translation> + <translation>Управление комнатой</translation> </message> </context> <context> @@ -1121,47 +1125,47 @@ </message> <message> <source>Reset to default</source> - <translation type="unfinished"></translation> + <translation>Сбросить на значения по умолчанию</translation> </message> <message> <source>Reset all binds</source> - <translation type="unfinished"></translation> + <translation>Сбросить все привязки</translation> </message> <message> <source>Game</source> - <translation type="unfinished"></translation> + <translation>Игра</translation> </message> <message> <source>Graphics</source> - <translation type="unfinished"></translation> + <translation>Графика</translation> </message> <message> <source>Audio</source> - <translation type="unfinished"></translation> + <translation>Звук</translation> </message> <message> <source>Controls</source> - <translation type="unfinished"></translation> + <translation>Управление</translation> </message> <message> <source>Video Recording</source> - <translation type="unfinished"></translation> + <translation>Запись видео</translation> </message> <message> <source>Network</source> - <translation type="unfinished"></translation> + <translation>Сеть</translation> </message> <message> <source>Teams</source> - <translation type="unfinished">Команды</translation> + <translation>Команды</translation> </message> <message> <source>Schemes</source> - <translation type="unfinished"></translation> + <translation>Схемы</translation> </message> <message> <source>Weapons</source> - <translation type="unfinished">Оружие</translation> + <translation>Оружие</translation> </message> <message> <source>Frontend</source> @@ -1169,7 +1173,7 @@ </message> <message> <source>Custom colors</source> - <translation type="unfinished">Свои цвета</translation> + <translation>Свои цвета</translation> </message> <message> <source>Game audio</source> @@ -1185,23 +1189,23 @@ </message> <message> <source>Proxy settings</source> - <translation type="unfinished">Настройки прокси</translation> + <translation>Настройки прокси</translation> </message> <message> <source>Miscellaneous</source> - <translation type="unfinished">Разное</translation> + <translation>Разное</translation> </message> <message> <source>Updates</source> - <translation type="unfinished"></translation> + <translation>Обновления</translation> </message> <message> <source>Check for updates</source> - <translation type="unfinished"></translation> + <translation>Проверить обновления</translation> </message> <message> <source>Video recording options</source> - <translation type="unfinished">Настройки видео</translation> + <translation>Настройки видео</translation> </message> </context> <context> @@ -1259,27 +1263,27 @@ </message> <message> <source>Search for a room:</source> - <translation type="unfinished"></translation> + <translation>Искать комнату:</translation> </message> <message> <source>Create room</source> - <translation type="unfinished"></translation> + <translation>Создать комнату</translation> </message> <message> <source>Join room</source> - <translation type="unfinished"></translation> + <translation>Войти в комнату</translation> </message> <message> <source>Room state</source> - <translation type="unfinished"></translation> + <translation>Состояние комнаты</translation> </message> <message> <source>Clear filters</source> - <translation type="unfinished"></translation> + <translation>Очистить фильтры</translation> </message> <message> <source>Open server administration page</source> - <translation type="unfinished"></translation> + <translation>Открыть страницу администрирования сервера</translation> </message> </context> <context> @@ -1503,12 +1507,12 @@ <message> <source>Date: %1 </source> - <translation type="unfinished"></translation> + <translation>Дата: %1</translation> </message> <message> <source>Size: %1 </source> - <translation type="unfinished"></translation> + <translation>Размер: %1</translation> </message> </context> <context> @@ -1559,7 +1563,7 @@ </message> <message> <source>Restrict Unregistered Players Join</source> - <translation type="unfinished"></translation> + <translation>Запретить вход незарегистрированным игрокам</translation> </message> <message> <source>Show games in lobby</source> @@ -1567,7 +1571,7 @@ </message> <message> <source>Show games in-progress</source> - <translation type="unfinished"></translation> + <translation>Показать текущие игры</translation> </message> </context> <context> @@ -1618,11 +1622,11 @@ </message> <message> <source>Visual effects</source> - <translation type="unfinished"></translation> + <translation>Визуальные эффекты</translation> </message> <message> <source>Sound</source> - <translation type="unfinished"></translation> + <translation>Звук</translation> </message> <message> <source>In-game sound effects</source> @@ -1630,7 +1634,7 @@ </message> <message> <source>Music</source> - <translation type="unfinished"></translation> + <translation>Музыка</translation> </message> <message> <source>In-game music</source> @@ -1991,15 +1995,15 @@ </message> <message> <source>Fullscreen</source> - <translation type="unfinished">Полный экран</translation> + <translation>Полный экран</translation> </message> <message> <source>Fullscreen Resolution</source> - <translation type="unfinished"></translation> + <translation>Разрешение в полноэкранном режиме</translation> </message> <message> <source>Windowed Resolution</source> - <translation type="unfinished"></translation> + <translation>Разрешение в оконном режиме</translation> </message> <message> <source>Your Email</source> @@ -2198,8 +2202,6 @@ <source>Do you really want to remove %1 file(s)?</source> <translation type="unfinished"> <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> </translation> </message> <message> @@ -2272,12 +2274,13 @@ </message> <message> <source>Not all players are ready</source> - <translation type="unfinished"></translation> + <translation>Не все игроки готовы</translation> </message> <message> <source>Are you sure you want to start this game? Not all players are ready.</source> - <translation type="unfinished"></translation> + <translation>Вы действительно хотите запустить игру? +Не все игроки готовы.</translation> </message> </context> <context> @@ -2407,15 +2410,15 @@ <name>RoomNamePrompt</name> <message> <source>Enter a name for your room.</source> - <translation type="unfinished"></translation> + <translation>Введите название для вашей комнаты.</translation> </message> <message> <source>Cancel</source> - <translation type="unfinished">Отмена</translation> + <translation>Отмена</translation> </message> <message> <source>Create room</source> - <translation type="unfinished"></translation> + <translation>Создать комнату</translation> </message> </context> <context> @@ -2469,19 +2472,19 @@ <name>SeedPrompt</name> <message> <source>The map seed is the basis for all random values generated by the game.</source> - <translation type="unfinished"></translation> + <translation>Зерно карты - это основа для всех псведослучайных значений, используемых в игре.</translation> </message> <message> <source>Cancel</source> - <translation type="unfinished">Отмена</translation> + <translation>Отмена</translation> </message> <message> <source>Set seed</source> - <translation type="unfinished"></translation> + <translation>Установить зерно</translation> </message> <message> <source>Close</source> - <translation type="unfinished"></translation> + <translation>Закрыть</translation> </message> </context> <context> @@ -2527,29 +2530,29 @@ <name>TeamSelWidget</name> <message> <source>At least two teams are required to play!</source> - <translation type="unfinished"></translation> + <translation>Для игры нужны как минимум две команды!</translation> </message> </context> <context> <name>TeamShowWidget</name> <message> <source>%1's team</source> - <translation type="unfinished"></translation> + <translation>Команда %1</translation> </message> </context> <context> <name>ThemePrompt</name> <message> <source>Cancel</source> - <translation type="unfinished">Отмена</translation> + <translation>Отмена</translation> </message> <message> <source>Search for a theme:</source> - <translation type="unfinished"></translation> + <translation>Искать тему:</translation> </message> <message> <source>Use selected theme</source> - <translation type="unfinished"></translation> + <translation>Использовать выбранную тему</translation> </message> </context> <context> @@ -2720,26 +2723,26 @@ </message> <message> <source>hedgehog info</source> - <translation type="unfinished"></translation> + <translation>информация о еже</translation> </message> </context> <context> <name>binds (categories)</name> <message> <source>Movement</source> - <translation type="unfinished"></translation> + <translation>Передвижение</translation> </message> <message> <source>Weapons</source> - <translation type="unfinished">Оружие</translation> + <translation>Оружие</translation> </message> <message> <source>Camera</source> - <translation type="unfinished"></translation> + <translation>Камера</translation> </message> <message> <source>Miscellaneous</source> - <translation type="unfinished">Разное</translation> + <translation>Разное</translation> </message> </context> <context> @@ -2810,7 +2813,7 @@ </message> <message> <source>Hedgehog movement</source> - <translation type="unfinished"></translation> + <translation>Движение ежа</translation> </message> </context> <context>