Engine:
authorsmxx
Mon, 22 Mar 2010 13:44:35 +0000
changeset 3044 8466bd29280f
parent 3043 3acdb4dac6eb
child 3045 41732f986b4f
Engine: * Added animation to AI's thinking bubble Frontend: * Updated settings page to use new add/edit/delete buttons for teams and weapon schemes (delete buttons are disabled and invisible for now) * Updated English and German locales
QTfrontend/gamecfgwidget.cpp
QTfrontend/hedgewars.qrc
QTfrontend/pages.cpp
QTfrontend/pages.h
QTfrontend/res/delete.png
QTfrontend/res/new.png
hedgewars/uGears.pas
share/hedgewars/Data/Graphics/thinking.png
share/hedgewars/Data/Locale/hedgewars_de.qm
share/hedgewars/Data/Locale/hedgewars_de.ts
share/hedgewars/Data/Locale/hedgewars_en.qm
share/hedgewars/Data/Locale/hedgewars_en.ts
--- a/QTfrontend/gamecfgwidget.cpp	Mon Mar 22 11:52:16 2010 +0000
+++ b/QTfrontend/gamecfgwidget.cpp	Mon Mar 22 13:44:35 2010 +0000
@@ -55,7 +55,6 @@
     QPixmap pmEdit(":/res/edit.png");
     
     QPushButton * goToSchemePage = new QPushButton(GBoxOptions);
-    //goToSchemePage->setText(tr("Edit schemes"));
     goToSchemePage->setToolTip(tr("Edit schemes"));
     goToSchemePage->setIconSize(pmEdit.size());
     goToSchemePage->setIcon(pmEdit);
@@ -71,7 +70,6 @@
     connect(WeaponsName, SIGNAL(currentIndexChanged(int)), this, SLOT(ammoChanged(int)));
 
     QPushButton * goToWeaponPage = new QPushButton(GBoxOptions);
-    //goToWeaponPage->setText(tr("Edit weapons"));
     goToWeaponPage->setToolTip(tr("Edit weapons"));
     goToWeaponPage->setIconSize(pmEdit.size());
     goToWeaponPage->setIcon(pmEdit);
--- a/QTfrontend/hedgewars.qrc	Mon Mar 22 11:52:16 2010 +0000
+++ b/QTfrontend/hedgewars.qrc	Mon Mar 22 13:44:35 2010 +0000
@@ -30,7 +30,9 @@
     <file>res/NetworkPlay.png</file>
     <file>res/Settings.png</file>
     <file>res/dropdown.png</file>
+    <file>res/new.png</file>
     <file>res/edit.png</file>
+    <file>res/delete.png</file>
     <file>res/checked.png</file>
     <file>res/unchecked.png</file>
     <file>res/graphicsicon.png</file>
--- a/QTfrontend/pages.cpp	Mon Mar 22 11:52:16 2010 +0000
+++ b/QTfrontend/pages.cpp	Mon Mar 22 13:44:35 2010 +0000
@@ -373,6 +373,11 @@
     gbTBLayout->setMargin(0);
     gbTBLayout->setSpacing(0);
     gbTBLayout->setAlignment(Qt::AlignTop | Qt::AlignLeft);
+
+    QPixmap pmNew(":/res/new.png");
+    QPixmap pmEdit(":/res/edit.png");
+    QPixmap pmDelete(":/res/delete.png");
+
         {
             teamsBox = new IconedGroupBox(this);
             //teamsBox->setContentTopPadding(0);
@@ -381,22 +386,40 @@
             teamsBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
             teamsBox->setTitle(QGroupBox::tr("Teams"));
 
-            QVBoxLayout * GBTlayout = new QVBoxLayout(teamsBox);
+            QGridLayout * GBTlayout = new QGridLayout(teamsBox);
 
             CBTeamName = new QComboBox(teamsBox);
-            GBTlayout->addWidget(CBTeamName);
+            GBTlayout->addWidget(CBTeamName, 0, 0);
+
+            BtnNewTeam = new QPushButton(teamsBox);
+            BtnNewTeam->setToolTip(tr("New team"));
+            BtnNewTeam->setIconSize(pmNew.size());
+            BtnNewTeam->setIcon(pmNew);
+            BtnNewTeam->setMaximumWidth(pmNew.width() + 6);
+            GBTlayout->addWidget(BtnNewTeam, 0, 1);
 
-            QHBoxLayout * layout1 = new QHBoxLayout;
-            GBTlayout->addLayout(layout1);
-            BtnNewTeam = addButton(tr("New team"), layout1, 0);
-            BtnEditTeam = addButton(tr("Edit team"), layout1, 1);
-            layout1->setStretchFactor(BtnNewTeam, 100);
-            layout1->setStretchFactor(BtnEditTeam, 100);
+            BtnEditTeam = new QPushButton(teamsBox);
+            BtnEditTeam->setToolTip(tr("Edit team"));
+            BtnEditTeam->setIconSize(pmEdit.size());
+            BtnEditTeam->setIcon(pmEdit);
+            BtnEditTeam->setMaximumWidth(pmEdit.width() + 6);
+            GBTlayout->addWidget(BtnEditTeam, 0, 2);
+
+            BtnDeleteTeam = new QPushButton(teamsBox);
+            BtnDeleteTeam->setToolTip(tr("Delete team"));
+            BtnDeleteTeam->setIconSize(pmDelete.size());
+            BtnDeleteTeam->setIcon(pmDelete);
+            BtnDeleteTeam->setMaximumWidth(pmDelete.width() + 6);
+            BtnDeleteTeam->setEnabled(false);
+            BtnDeleteTeam->setVisible(false); // hide for now
+            GBTlayout->addWidget(BtnDeleteTeam, 0, 3);
 
             gbTBLayout->addWidget(teamsBox, 0, 0);
         }
 
         {
+            // TODO: This box should contain controls for all schemes: game modes and weapons
+
             IconedGroupBox* groupWeapons = new IconedGroupBox(this);
             //groupWeapons->setContentTopPadding(0);
             groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
@@ -405,14 +428,35 @@
             groupWeapons->setTitle(QGroupBox::tr("Weapons"));
             QGridLayout * WeaponsLayout = new QGridLayout(groupWeapons);
 
-            WeaponsButt = addButton(tr("Weapons set"), WeaponsLayout, 1, 0);
-            WeaponsName = new QComboBox(this);
-            WeaponsLayout->addWidget(WeaponsName, 0, 0, 1, 2);
-            WeaponEdit = addButton(tr("Edit"), WeaponsLayout, 1, 1);
+            WeaponsName = new QComboBox(groupWeapons);
+            WeaponsLayout->addWidget(WeaponsName, 0, 0);
+
+            WeaponsButt = new QPushButton(groupWeapons);
+            WeaponsButt->setToolTip(tr("New weapon scheme"));
+            WeaponsButt->setIconSize(pmNew.size());
+            WeaponsButt->setIcon(pmNew);
+            WeaponsButt->setMaximumWidth(pmNew.width() + 6);
+            WeaponsLayout->addWidget(WeaponsButt, 0, 1);
+
+            WeaponEdit = new QPushButton(groupWeapons);
+            WeaponEdit->setToolTip(tr("Edit weapon scheme"));
+            WeaponEdit->setIconSize(pmEdit.size());
+            WeaponEdit->setIcon(pmEdit);
+            WeaponEdit->setMaximumWidth(pmEdit.width() + 6);
+            WeaponsLayout->addWidget(WeaponEdit, 0, 2);
+
+            WeaponDelete = new QPushButton(groupWeapons);
+            WeaponDelete->setToolTip(tr("Delete weapon scheme"));
+            WeaponDelete->setIconSize(pmDelete.size());
+            WeaponDelete->setIcon(pmDelete);
+            WeaponDelete->setMaximumWidth(pmDelete.width() + 6);
+            WeaponDelete->setEnabled(false);
+            WeaponDelete->setVisible(false); // hide for now
+            WeaponsLayout->addWidget(WeaponDelete, 0, 3);
 
             WeaponTooltip = new QCheckBox(this);
             WeaponTooltip->setText(QCheckBox::tr("Show ammo menu tooltips"));
-            WeaponsLayout->addWidget(WeaponTooltip, 2, 0, 1, 2);
+            WeaponsLayout->addWidget(WeaponTooltip, 1, 0, 1, 3);
 
             gbTBLayout->addWidget(groupWeapons, 1, 0);
         }
--- a/QTfrontend/pages.h	Mon Mar 22 11:52:16 2010 +0000
+++ b/QTfrontend/pages.h	Mon Mar 22 13:44:35 2010 +0000
@@ -204,6 +204,7 @@
 
     QPushButton *WeaponsButt;
     QPushButton *WeaponEdit;
+    QPushButton *WeaponDelete;
     QComboBox *WeaponsName;
     QCheckBox *WeaponTooltip;
     QComboBox *CBLanguage;
@@ -212,6 +213,7 @@
     IconedGroupBox *teamsBox;
     QPushButton *BtnNewTeam;
     QPushButton *BtnEditTeam;
+    QPushButton *BtnDeleteTeam;
     QComboBox *CBTeamName;
     IconedGroupBox *AGGroupBox;
     QComboBox *CBResolution;
Binary file QTfrontend/res/delete.png has changed
Binary file QTfrontend/res/new.png has changed
--- a/hedgewars/uGears.pas	Mon Mar 22 11:52:16 2010 +0000
+++ b/hedgewars/uGears.pas	Mon Mar 22 13:44:35 2010 +0000
@@ -1409,7 +1409,7 @@
 
         if (Gear^.State and gstDrowning) = 0 then
             if (Gear^.State and gstHHThinking) <> 0 then
-                DrawSprite(sprQuestion, hwRound(Gear^.X) - 10 + WorldDx, hwRound(Gear^.Y) - cHHRadius - 34 + WorldDy, 0)
+                DrawSprite(sprQuestion, hwRound(Gear^.X) - 10 + WorldDx, hwRound(Gear^.Y) - cHHRadius - 34 + WorldDy, (RealTicks shr 9) mod 8)
         end
     end;
 
Binary file share/hedgewars/Data/Graphics/thinking.png has changed
Binary file share/hedgewars/Data/Locale/hedgewars_de.qm has changed
--- a/share/hedgewars/Data/Locale/hedgewars_de.ts	Mon Mar 22 11:52:16 2010 +0000
+++ b/share/hedgewars/Data/Locale/hedgewars_de.ts	Mon Mar 22 13:44:35 2010 +0000
@@ -330,11 +330,27 @@
     </message>
     <message>
         <source>Weapons set</source>
-        <translation>Waffen-Set</translation>
+        <translation type="obsolete">Waffen-Set</translation>
     </message>
     <message>
         <source>Edit</source>
-        <translation>Bearbeiten</translation>
+        <translation type="obsolete">Bearbeiten</translation>
+    </message>
+    <message>
+        <source>Delete team</source>
+        <translation>Team löschen</translation>
+    </message>
+    <message>
+        <source>New weapon scheme</source>
+        <translation>Neue Waffenzusammenstellung</translation>
+    </message>
+    <message>
+        <source>Edit weapon scheme</source>
+        <translation>Waffenzusammenstellung bearbeiten</translation>
+    </message>
+    <message>
+        <source>Delete weapon scheme</source>
+        <translation>Waffenzusammenstellung löschen</translation>
     </message>
 </context>
 <context>
@@ -661,7 +677,7 @@
     </message>
     <message>
         <source>Show ammo menu tooltips</source>
-        <translation type="unfinished">Kurzinfos für Waffen anzeigen</translation>
+        <translation>Kurzinfos für Waffen anzeigen</translation>
     </message>
     <message>
         <source>Enable frontend sounds</source>
@@ -694,6 +710,10 @@
         <source>(System default)</source>
         <translation>(Systemstandard)</translation>
     </message>
+    <message>
+        <source>Mission</source>
+        <translation>Mission</translation>
+    </message>
 </context>
 <context>
     <name>QGroupBox</name>
@@ -884,6 +904,10 @@
         <source>Restart game to apply</source>
         <translation>Spiel neu starten, um Änderungen zu übernehmen</translation>
     </message>
+    <message>
+        <source>Explosives</source>
+        <translation>Pulverfässer</translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
Binary file share/hedgewars/Data/Locale/hedgewars_en.qm has changed
--- a/share/hedgewars/Data/Locale/hedgewars_en.ts	Mon Mar 22 11:52:16 2010 +0000
+++ b/share/hedgewars/Data/Locale/hedgewars_en.ts	Mon Mar 22 13:44:35 2010 +0000
@@ -12,11 +12,11 @@
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
-        <translation type="unfinished"></translation>
+        <translation>Never</translation>
     </message>
     <message numerus="yes">
         <source>Every %1 turn</source>
-        <translation type="unfinished">
+        <translation>
             <numerusform>Each turn</numerusform>
             <numerusform>Every %1 turns</numerusform>
         </translation>
@@ -45,19 +45,19 @@
     <name>HWChatWidget</name>
     <message>
         <source>%1 *** %2 has been removed from your ignore list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 has been removed from your ignore list</translation>
     </message>
     <message>
         <source>%1 *** %2 has been added to your ignore list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 has been added to your ignore list</translation>
     </message>
     <message>
         <source>%1 *** %2 has been removed from your friends list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 has been removed from your friends list</translation>
     </message>
     <message>
         <source>%1 *** %2 has been added to your friends list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 has been added to your friends list</translation>
     </message>
 </context>
 <context>
@@ -257,14 +257,14 @@
     </message>
     <message numerus="yes">
         <source>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.&lt;/p&gt;</source>
-        <translation type="unfinished">
+        <translation>
             <numerusform>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kill in a turn.&lt;/p&gt;</numerusform>
             <numerusform>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.&lt;/p&gt;</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehog(s) were killed during this round.&lt;/p&gt;</source>
-        <translation type="unfinished">
+        <translation>
             <numerusform>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehog was killed during this round.&lt;/p&gt;</numerusform>
             <numerusform>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehogs were killed during this round.&lt;/p&gt;</numerusform>
         </translation>
@@ -329,11 +329,27 @@
     </message>
     <message>
         <source>Weapons set</source>
-        <translation>Weapons set</translation>
+        <translation type="obsolete">Weapons set</translation>
     </message>
     <message>
         <source>Edit</source>
-        <translation>Edit</translation>
+        <translation type="obsolete">Edit</translation>
+    </message>
+    <message>
+        <source>Delete team</source>
+        <translation>Delete team</translation>
+    </message>
+    <message>
+        <source>New weapon scheme</source>
+        <translation>New weapon scheme</translation>
+    </message>
+    <message>
+        <source>Edit weapon scheme</source>
+        <translation>Edit weapon scheme</translation>
+    </message>
+    <message>
+        <source>Delete weapon scheme</source>
+        <translation>Delete weapon scheme</translation>
     </message>
 </context>
 <context>
@@ -395,48 +411,50 @@
     </message>
     <message>
         <source>Room Name:</source>
-        <translation type="unfinished"></translation>
+        <translation>Room Name:</translation>
     </message>
     <message>
         <source>This game is in lobby.
 You may join and start playing once the game starts.</source>
-        <translation type="unfinished"></translation>
+        <translation>This game is in lobby.
+You may join and start playing once the game starts.</translation>
     </message>
     <message>
         <source>This game is in progress.
 You may join and spectate now but you&apos;ll have to wait for the game to end to start playing.</source>
-        <translation type="unfinished"></translation>
+        <translation>This game is in progress.
+You may join and spectate now but you&apos;ll have to wait for the game to end to start playing.</translation>
     </message>
     <message>
         <source>%1 is the host. He may adjust settings and start the game.</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 is the host. He may adjust settings and start the game.</translation>
     </message>
     <message>
         <source>Random Map</source>
-        <translation type="unfinished"></translation>
+        <translation>Random Map</translation>
     </message>
     <message>
         <source>Games may be played on precreated or randomized maps.</source>
-        <translation type="unfinished"></translation>
+        <translation>Games may be played on precreated or randomized maps.</translation>
     </message>
     <message>
         <source>The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</source>
-        <translation type="unfinished"></translation>
+        <translation>The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</translation>
     </message>
     <message>
         <source>The Weapon Scheme defines available weapons and their ammunition count.</source>
-        <translation type="unfinished"></translation>
+        <translation>The Weapon Scheme defines available weapons and their ammunition count.</translation>
     </message>
     <message numerus="yes">
         <source>There are %1 clients connected to this room.</source>
-        <translation type="unfinished">
+        <translation>
             <numerusform>There is %1 client connected to this room.</numerusform>
             <numerusform>There are %1 clients connected to this room.</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>There are %1 teams participating in this room.</source>
-        <translation type="unfinished">
+        <translation>
             <numerusform>There is %1 team participating in this room.</numerusform>
             <numerusform>There are %1 teams participating in this room.</numerusform>
         </translation>
@@ -514,23 +532,23 @@
     </message>
     <message>
         <source>Order of play is random instead of in room order.</source>
-        <translation type="unfinished"></translation>
+        <translation>Order of play is random instead of in room order.</translation>
     </message>
     <message>
         <source>Play with a King. If he dies, your side dies.</source>
-        <translation type="unfinished"></translation>
+        <translation>Play with a King. If he dies, your side dies.</translation>
     </message>
     <message>
         <source>Take turns placing your hedgehogs before the start of play.</source>
-        <translation type="unfinished"></translation>
+        <translation>Take turns placing your hedgehogs before the start of play.</translation>
     </message>
     <message>
         <source>Ammo is shared between all teams that share a colour.</source>
-        <translation type="unfinished"></translation>
+        <translation>Ammo is shared between all teams that share a colour.</translation>
     </message>
     <message>
         <source>Disable girders when generating random maps.</source>
-        <translation type="unfinished"></translation>
+        <translation>Disable girders when generating random maps.</translation>
     </message>
 </context>
 <context>
@@ -595,23 +613,23 @@
     </message>
     <message>
         <source>Follow</source>
-        <translation type="unfinished"></translation>
+        <translation>Follow</translation>
     </message>
     <message>
         <source>Ignore</source>
-        <translation type="unfinished"></translation>
+        <translation>Ignore</translation>
     </message>
     <message>
         <source>Add friend</source>
-        <translation type="unfinished"></translation>
+        <translation>Add friend</translation>
     </message>
     <message>
         <source>Unignore</source>
-        <translation type="unfinished"></translation>
+        <translation>Unignore</translation>
     </message>
     <message>
         <source>Remove friend</source>
-        <translation type="unfinished"></translation>
+        <translation>Remove friend</translation>
     </message>
 </context>
 <context>
@@ -650,23 +668,23 @@
     </message>
     <message>
         <source>Reduced quality</source>
-        <translation type="unfinished"></translation>
+        <translation>Reduced quality</translation>
     </message>
     <message>
         <source>Show ammo menu tooltips</source>
-        <translation type="unfinished"></translation>
+        <translation>Show ammo menu tooltips</translation>
     </message>
     <message>
         <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
+        <translation>Enable frontend sounds</translation>
     </message>
     <message>
         <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
+        <translation>Enable frontend music</translation>
     </message>
     <message>
         <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
+        <translation>Frontend effects</translation>
     </message>
 </context>
 <context>
@@ -685,7 +703,11 @@
     </message>
     <message>
         <source>(System default)</source>
-        <translation type="unfinished"></translation>
+        <translation>(System default)</translation>
+    </message>
+    <message>
+        <source>Mission</source>
+        <translation>Mission</translation>
     </message>
 </context>
 <context>
@@ -736,11 +758,11 @@
     </message>
     <message>
         <source>Team Settings</source>
-        <translation type="unfinished"></translation>
+        <translation>Team Settings</translation>
     </message>
     <message>
         <source>Misc</source>
-        <translation type="unfinished"></translation>
+        <translation>Misc</translation>
     </message>
 </context>
 <context>
@@ -847,35 +869,39 @@
     </message>
     <message>
         <source>% Dud Mines</source>
-        <translation type="unfinished"></translation>
+        <translation>% Dud Mines</translation>
     </message>
     <message>
         <source>Name</source>
-        <translation type="unfinished"></translation>
+        <translation>Name</translation>
     </message>
     <message>
         <source>Type</source>
-        <translation type="unfinished"></translation>
+        <translation>Type</translation>
     </message>
     <message>
         <source>Grave</source>
-        <translation type="unfinished"></translation>
+        <translation>Grave</translation>
     </message>
     <message>
         <source>Flag</source>
-        <translation type="unfinished"></translation>
+        <translation>Flag</translation>
     </message>
     <message>
         <source>Voice</source>
-        <translation type="unfinished"></translation>
+        <translation>Voice</translation>
     </message>
     <message>
         <source>Locale</source>
-        <translation type="unfinished"></translation>
+        <translation>Locale</translation>
     </message>
     <message>
         <source>Restart game to apply</source>
-        <translation type="unfinished"></translation>
+        <translation>Restart game to apply</translation>
+    </message>
+    <message>
+        <source>Explosives</source>
+        <translation>Explosives</translation>
     </message>
 </context>
 <context>
@@ -1018,38 +1044,38 @@
     </message>
     <message>
         <source>Random Team</source>
-        <translation type="unfinished"></translation>
+        <translation>Random Team</translation>
     </message>
 </context>
 <context>
     <name>QTableWidget</name>
     <message>
         <source>Room Name</source>
-        <translation type="unfinished"></translation>
+        <translation>Room Name</translation>
     </message>
     <message>
         <source>C</source>
-        <translation type="unfinished"></translation>
+        <translation>C</translation>
     </message>
     <message>
         <source>T</source>
-        <translation type="unfinished"></translation>
+        <translation>T</translation>
     </message>
     <message>
         <source>Owner</source>
-        <translation type="unfinished"></translation>
+        <translation>Owner</translation>
     </message>
     <message>
         <source>Map</source>
-        <translation type="unfinished">Map</translation>
+        <translation>Map</translation>
     </message>
     <message>
         <source>Rules</source>
-        <translation type="unfinished"></translation>
+        <translation>Rules</translation>
     </message>
     <message>
         <source>Weapons</source>
-        <translation type="unfinished">Weapons</translation>
+        <translation>Weapons</translation>
     </message>
 </context>
 <context>
@@ -1064,11 +1090,11 @@
     </message>
     <message>
         <source>Ammo in boxes</source>
-        <translation type="unfinished"></translation>
+        <translation>Ammo in boxes</translation>
     </message>
     <message>
         <source>Delays</source>
-        <translation type="unfinished"></translation>
+        <translation>Delays</translation>
     </message>
 </context>
 <context>
@@ -1134,23 +1160,23 @@
     </message>
     <message>
         <source>Random Order</source>
-        <translation type="unfinished"></translation>
+        <translation>Random Order</translation>
     </message>
     <message>
         <source>King</source>
-        <translation type="unfinished"></translation>
+        <translation>King</translation>
     </message>
     <message>
         <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
+        <translation>Place Hedgehogs</translation>
     </message>
     <message>
         <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
+        <translation>Clan Shares Ammo</translation>
     </message>
     <message>
         <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
+        <translation>Disable Girders</translation>
     </message>
 </context>
 <context>
@@ -1307,97 +1333,97 @@
     </message>
     <message>
         <source>long jump</source>
-        <translation type="unfinished"></translation>
+        <translation>long jump</translation>
     </message>
     <message>
         <source>high jump</source>
-        <translation type="unfinished"></translation>
+        <translation>high jump</translation>
     </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
         <source>Basic controls</source>
-        <translation type="unfinished"></translation>
+        <translation>Basic controls</translation>
     </message>
     <message>
         <source>Weapon controls</source>
-        <translation type="unfinished"></translation>
+        <translation>Weapon controls</translation>
     </message>
     <message>
         <source>Camera and cursor controls</source>
-        <translation type="unfinished"></translation>
+        <translation>Camera and cursor controls</translation>
     </message>
     <message>
         <source>Other</source>
-        <translation type="unfinished">Other</translation>
+        <translation>Other</translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
         <source>Move your hogs and aim:</source>
-        <translation type="unfinished"></translation>
+        <translation>Move your hogs and aim:</translation>
     </message>
     <message>
         <source>Traverse gaps and obstacles by jumping:</source>
-        <translation type="unfinished"></translation>
+        <translation>Traverse gaps and obstacles by jumping:</translation>
     </message>
     <message>
         <source>Fire your selected weapon or trigger an utility item:</source>
-        <translation type="unfinished"></translation>
+        <translation>Fire your selected weapon or trigger an utility item:</translation>
     </message>
     <message>
         <source>Pick a weapon or a target location under the cursor:</source>
-        <translation type="unfinished"></translation>
+        <translation>Pick a weapon or a target location under the cursor:</translation>
     </message>
     <message>
         <source>Switch your currently active hog (if possible):</source>
-        <translation type="unfinished"></translation>
+        <translation>Switch your currently active hog (if possible):</translation>
     </message>
     <message>
         <source>Pick a weapon or utility item:</source>
-        <translation type="unfinished"></translation>
+        <translation>Pick a weapon or utility item:</translation>
     </message>
     <message>
         <source>Set the timer on bombs and timed weapons:</source>
-        <translation type="unfinished"></translation>
+        <translation>Set the timer on bombs and timed weapons:</translation>
     </message>
     <message>
         <source>Move the camera to the active hog:</source>
-        <translation type="unfinished"></translation>
+        <translation>Move the camera to the active hog:</translation>
     </message>
     <message>
         <source>Move the cursor or camera without using the mouse:</source>
-        <translation type="unfinished"></translation>
+        <translation>Move the cursor or camera without using the mouse:</translation>
     </message>
     <message>
         <source>Modify the camera&apos;s zoom level:</source>
-        <translation type="unfinished"></translation>
+        <translation>Modify the camera&apos;s zoom level:</translation>
     </message>
     <message>
         <source>Talk to your team or all participants:</source>
-        <translation type="unfinished"></translation>
+        <translation>Talk to your team or all participants:</translation>
     </message>
     <message>
         <source>Pause, continue or leave your game:</source>
-        <translation type="unfinished"></translation>
+        <translation>Pause, continue or leave your game:</translation>
     </message>
     <message>
         <source>Modify the game&apos;s volume while playing:</source>
-        <translation type="unfinished"></translation>
+        <translation>Modify the game&apos;s volume while playing:</translation>
     </message>
     <message>
         <source>Toggle fullscreen mode:</source>
-        <translation type="unfinished"></translation>
+        <translation>Toggle fullscreen mode:</translation>
     </message>
     <message>
         <source>Take a screenshot:</source>
-        <translation type="unfinished"></translation>
+        <translation>Take a screenshot:</translation>
     </message>
     <message>
         <source>Toggle labels above hedgehogs:</source>
-        <translation type="unfinished"></translation>
+        <translation>Toggle labels above hedgehogs:</translation>
     </message>
 </context>
 <context>