From 62e8a71262000ffd65f6d55b0cadff207a7b7fc2 Mon Sep 17 00:00:00 2001
From: Inso <insomniak.fr@gmail.com>
Date: Thu, 30 Apr 2015 18:58:02 +0200
Subject: [PATCH] Add self.tr() to strings to translate

---
 res/i18n/ts/fr.ts                         | 972 +++++++++++++++++++++-
 src/cutecoin/gui/certification.py         |  14 +-
 src/cutecoin/gui/community_tab.py         |  34 +-
 src/cutecoin/gui/contact.py               |   2 +-
 src/cutecoin/gui/currency_tab.py          |  18 +-
 src/cutecoin/gui/homescreen.py            |   6 +-
 src/cutecoin/gui/import_account.py        |  16 +-
 src/cutecoin/gui/informations_tab.py      |  72 +-
 src/cutecoin/gui/mainwindow.py            |  30 +-
 src/cutecoin/gui/member.py                |  18 +-
 src/cutecoin/gui/password_asker.py        |   8 +-
 src/cutecoin/gui/process_cfg_account.py   |  32 +-
 src/cutecoin/gui/process_cfg_community.py |  25 +-
 src/cutecoin/gui/transactions_tab.py      |  28 +-
 src/cutecoin/gui/transfer.py              |  24 +-
 src/cutecoin/gui/wallets_tab.py           |  34 +-
 src/cutecoin/models/identities.py         |   8 +-
 src/cutecoin/models/network.py            |  12 +-
 src/cutecoin/models/txhistory.py          |  12 +-
 19 files changed, 1146 insertions(+), 219 deletions(-)

diff --git a/res/i18n/ts/fr.ts b/res/i18n/ts/fr.ts
index 8c7a66f5..61406db2 100644
--- a/res/i18n/ts/fr.ts
+++ b/res/i18n/ts/fr.ts
@@ -5,12 +5,12 @@
     <message>
         <location filename="../../ui/about.ui" line="14"/>
         <source>About</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">A propos</translation>
     </message>
     <message>
         <location filename="../../ui/about.ui" line="22"/>
         <source>TextLabel</source>
-        <translation type="unfinished"></translation>
+        <translation></translation>
     </message>
 </context>
 <context>
@@ -18,27 +18,27 @@
     <message>
         <location filename="../../ui/account_cfg.ui" line="14"/>
         <source>Add an account</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Ajouter un compte</translation>
     </message>
     <message>
         <location filename="../../ui/account_cfg.ui" line="30"/>
         <source>Account parameters</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Paramètres du compte</translation>
     </message>
     <message>
         <location filename="../../ui/account_cfg.ui" line="51"/>
         <source>Account name (uid)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Nom de compte</translation>
     </message>
     <message>
         <location filename="../../ui/account_cfg.ui" line="68"/>
         <source>Wallets</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Nombre de portefeuilles</translation>
     </message>
     <message>
         <location filename="../../ui/account_cfg.ui" line="111"/>
         <source>Delete account</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Supprimer ce compte</translation>
     </message>
     <message>
         <location filename="../../ui/account_cfg.ui" line="140"/>
@@ -94,7 +94,7 @@
 <context>
     <name>CertificationDialog</name>
     <message>
-        <location filename="../../ui/certification.ui" line="14"/>
+        <location filename="../../../src/cutecoin/gui/certification.py" line="57"/>
         <source>Certification</source>
         <translation type="unfinished"></translation>
     </message>
@@ -123,6 +123,26 @@
         <source>Key</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/certification.py" line="48"/>
+        <source>Success certifying {0} from {1}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/certification.py" line="52"/>
+        <source>Something wrong happened : {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/certification.py" line="57"/>
+        <source>Couldn&apos;t connect to network : {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/certification.py" line="62"/>
+        <source>Error</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CommunityConfigurationDialog</name>
@@ -204,6 +224,68 @@
         <source>Send leaving demand</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="201"/>
+        <source>Membership</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="169"/>
+        <source>Success sending membership demand</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="172"/>
+        <source>Join demand error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="175"/>
+        <source>Key not sent to community</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="175"/>
+        <source>Your key wasn&apos;t sent in the community.                               You can&apos;t request a membership.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="207"/>
+        <source>Network error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="207"/>
+        <source>Couldn&apos;t connect to network : {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="188"/>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="188"/>
+        <source>Are you sure ?
+Sending a membership demand  cannot be canceled.
+The process to join back the community later will have to be done again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="201"/>
+        <source>Success sending leaving demand</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="204"/>
+        <source>Leaving demand error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="211"/>
+        <source>Error</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ConfigureContactDialog</name>
@@ -222,6 +304,11 @@
         <source>Pubkey</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/contact.py" line="58"/>
+        <source>Contact already exists</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CreateWalletDialog</name>
@@ -253,6 +340,46 @@
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="75"/>
+        <source>Membership expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="75"/>
+        <source>Warning : Membership expiration in {0} days</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="94"/>
+        <source>Wallets</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="102"/>
+        <source>Transactions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="111"/>
+        <source>Community</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="117"/>
+        <source>Informations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="129"/>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="170"/>
+        <source> Block {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DialogMember</name>
@@ -277,6 +404,39 @@
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>HistoryTableModel</name>
+    <message>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="164"/>
+        <source>Date</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="164"/>
+        <source>UID/Public key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="164"/>
+        <source>Payment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="164"/>
+        <source>Deposit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="164"/>
+        <source>Comment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="164"/>
+        <source>State</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>HomeScreenWidget</name>
     <message>
@@ -304,6 +464,43 @@
         <source>Get to know more about ucoin</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/homescreen.py" line="34"/>
+        <source>Please get the latest release {version}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/homescreen.py" line="38"/>
+        <source>
+            &lt;h1&gt;Welcome to Cutecoin {version}&lt;/h1&gt;
+            &lt;h2&gt;{version_info}&lt;/h2&gt;
+            &lt;h3&gt;&lt;a href={version_url}&gt;Download link&lt;/a&gt;&lt;/h3&gt;
+            </source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IdentitiesTableModel</name>
+    <message>
+        <location filename="../../../src/cutecoin/models/identities.py" line="74"/>
+        <source>UID</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/identities.py" line="75"/>
+        <source>Pubkey</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/identities.py" line="76"/>
+        <source>Renewed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/identities.py" line="77"/>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ImportAccountDialog</name>
@@ -322,6 +519,46 @@
         <source>Name of the account :</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/import_account.py" line="34"/>
+        <source>Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/import_account.py" line="38"/>
+        <source>Account import</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/import_account.py" line="38"/>
+        <source>Account imported succefully !</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/import_account.py" line="43"/>
+        <source>Import an account file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/import_account.py" line="43"/>
+        <source>All account files (*.acc)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/import_account.py" line="58"/>
+        <source>Please enter a name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/import_account.py" line="63"/>
+        <source>Name already exists</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/import_account.py" line="67"/>
+        <source>File is not an account format</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>InformationsTabWidget</name>
@@ -370,6 +607,196 @@
         <source>label_wot</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="67"/>
+        <source>
+                &lt;table cellpadding=&quot;5&quot;&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:2.2%} / {:} days&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;/table&gt;
+                </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="67"/>
+        <source>Universal Dividend UD(t) in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="67"/>
+        <source>Monetary Mass M(t) in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="67"/>
+        <source>Members N(t)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="67"/>
+        <source>Monetary Mass per member M(t)/N(t) in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="67"/>
+        <source>Actual growth c = UD(t)/[M(t-1)/N(t)]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="67"/>
+        <source>Next UD date and time (t+1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="141"/>
+        <source>No Universal Dividend created yet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="116"/>
+        <source>
+                &lt;table cellpadding=&quot;5&quot;&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;/table&gt;
+                </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="116"/>
+        <source>{:2.0%} / {:} days</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="116"/>
+        <source>Fundamental growth (c) / Delta time (dt)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="116"/>
+        <source>UD(t+1) = MAX { UD(t) ; c * M(t) / N(t) }</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="116"/>
+        <source>Universal Dividend (formula)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="116"/>
+        <source>{:} = MAX {{ {:} {:} ; {:2.0%} * {:} {:} / {:} }}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="116"/>
+        <source>Universal Dividend (computed)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="144"/>
+        <source>
+            &lt;table cellpadding=&quot;5&quot;&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:2.0%} / {:} days&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:} {:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:2.0%}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;/table&gt;
+            </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="144"/>
+        <source>Fundamental growth (c)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="144"/>
+        <source>Initial Universal Dividend UD(0) in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="144"/>
+        <source>Time period (dt) in days (86400 seconds) between two UD</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="144"/>
+        <source>Number of blocks used for calculating median time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="144"/>
+        <source>The average time in seconds for writing 1 block (wished time)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="144"/>
+        <source>The number of blocks required to evaluate again PoWMin value</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="144"/>
+        <source>The number of previous blocks to check for personalized difficulty</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="144"/>
+        <source>The percent of previous issuers to reach for personalized difficulty</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="179"/>
+        <source>
+            &lt;table cellpadding=&quot;5&quot;&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;/table&gt;
+            </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="179"/>
+        <source>Minimum delay between 2 identical certifications (in days)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="179"/>
+        <source>Maximum age of a valid signature (in days)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="179"/>
+        <source>Minimum quantity of signatures to be part of the WoT</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="179"/>
+        <source>Minimum quantity of valid made certifications to be part of the WoT for distance rule</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="179"/>
+        <source>Maximum age of a valid membership (in days)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/informations_tab.py" line="179"/>
+        <source>Maximum distance between each WoT member and a newcomer</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MainWindow</name>
@@ -473,32 +900,408 @@
         <source>About</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>NetworkTabWidget</name>
     <message>
-        <location filename="../../ui/network_tab.ui" line="14"/>
-        <source>Form</source>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="171"/>
+        <source>Loading account {0}</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>PasswordAskerDialog</name>
     <message>
-        <location filename="../../ui/password_asker.ui" line="14"/>
-        <source>Password</source>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="229"/>
+        <source>Latest release : {version}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../ui/password_asker.ui" line="23"/>
-        <source>Please enter your account password</source>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="233"/>
+        <source>
+            &lt;p&gt;&lt;b&gt;{version_info}&lt;/b&gt;&lt;/p&gt;
+            &lt;p&gt;&lt;a href={version_url}&gt;Download link&lt;/a&gt;&lt;/p&gt;
+            </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../ui/password_asker.ui" line="32"/>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="238"/>
+        <source>
+        &lt;h1&gt;Cutecoin&lt;/h1&gt;
+
+        &lt;p&gt;Python/Qt uCoin client&lt;/p&gt;
+
+        &lt;p&gt;Version : {:}&lt;/p&gt;
+        {new_version_text}
+
+        &lt;p&gt;License : MIT&lt;/p&gt;
+
+        &lt;p&gt;&lt;b&gt;Authors&lt;/b&gt;&lt;/p&gt;
+
+        &lt;p&gt;inso&lt;/p&gt;
+        &lt;p&gt;vit&lt;/p&gt;
+        &lt;p&gt;canercandan&lt;/p&gt;
+        </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="292"/>
+        <source>Edit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="295"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="317"/>
+        <source>CuteCoin {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="326"/>
+        <source>Show currencies loading</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="328"/>
+        <source>Hide homescreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="343"/>
+        <source>CuteCoin {0} - Account : {1}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="356"/>
+        <source>Export an account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/mainwindow.py" line="356"/>
+        <source>All account files (*.acc)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MemberDialog</name>
+    <message>
+        <location filename="../../../src/cutecoin/gui/member.py" line="31"/>
+        <source>not a member</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/member.py" line="43"/>
+        <source>
+            &lt;table cellpadding=&quot;5&quot;&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/member.py" line="47"/>
+        <source>Public key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/member.py" line="47"/>
+        <source>Join date</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/member.py" line="65"/>
+        <source>&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/member.py" line="56"/>
+        <source>Distance</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/member.py" line="61"/>
+        <source>Path</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>NetworkFilterProxyModel</name>
+    <message>
+        <location filename="../../../src/cutecoin/models/network.py" line="39"/>
+        <source>Address</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/network.py" line="40"/>
+        <source>Port</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/network.py" line="41"/>
+        <source>Block</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/network.py" line="42"/>
+        <source>UID</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/network.py" line="43"/>
+        <source>Member</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/models/network.py" line="44"/>
+        <source>Pubkey</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>NetworkTabWidget</name>
+    <message>
+        <location filename="../../ui/network_tab.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>PasswordAskerDialog</name>
+    <message>
+        <location filename="../../ui/password_asker.ui" line="14"/>
+        <source>Password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../ui/password_asker.ui" line="23"/>
+        <source>Please enter your account password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../ui/password_asker.ui" line="32"/>
         <source>Remember my password during this session</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/password_asker.py" line="48"/>
+        <source>Bad password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/password_asker.py" line="48"/>
+        <source>Non printable characters in password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/password_asker.py" line="54"/>
+        <source>Failed to get private key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/password_asker.py" line="54"/>
+        <source>Wrong password typed. Cannot open the private key</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ProcessConfigureAccount</name>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="161"/>
+        <source>New account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="168"/>
+        <source>Configure {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="182"/>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="203"/>
+        <source>Public key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="203"/>
+        <source>These parameters pubkeys are : {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="252"/>
+        <source>Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="229"/>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="229"/>
+        <source>This action will delete your account locally.
+Please note your key parameters (salt and password) if you wish to recover it later.
+Your account won&apos;t be removed from the networks it joined.
+Are you sure ?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ProcessConfigureCommunity</name>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_community.py" line="117"/>
+        <source>Configure community {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_community.py" line="120"/>
+        <source>Add a community</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_community.py" line="216"/>
+        <source>Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_community.py" line="187"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_community.py" line="198"/>
+        <source>Pubkey not found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_community.py" line="198"/>
+        <source>The public key of your account wasn&apos;t found in the community. :
+
+{0}
+
+Would you like to publish the key ?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_community.py" line="209"/>
+        <source>Pubkey publishing error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_community.py" line="212"/>
+        <source>Network error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_community.py" line="212"/>
+        <source>Couldn&apos;t connect to network : {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>StepPageAddpeers</name>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_community.py" line="89"/>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>StepPageKey</name>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="69"/>
+        <source>Forbidden : salt is too short</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="73"/>
+        <source>Forbidden : password is too short</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="77"/>
+        <source>Forbidden : Invalid characters in salt field</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="81"/>
+        <source>Forbidden : Invalid characters in password field</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/process_cfg_account.py" line="86"/>
+        <source>Error : passwords are different</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>TransactionsTabWidget</name>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="87"/>
+        <source>Deposits: {:} {:}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="91"/>
+        <source>Payments: {:} {:}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="95"/>
+        <source>Balance: {:} {:}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="104"/>
+        <source>Actions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="117"/>
+        <source>Send again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="122"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="128"/>
+        <source>Informations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="133"/>
+        <source>Add as contact</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="138"/>
+        <source>Send money to</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="144"/>
+        <source>View in WoT</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="149"/>
+        <source>Copy pubkey to clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="186"/>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="186"/>
+        <source>Are you sure ?
+This money transfer will be removed and not sent.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>TransferMoneyDialog</name>
@@ -557,6 +1360,42 @@
         <source>Transaction message</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transfer.py" line="93"/>
+        <source>Money transfer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transfer.py" line="65"/>
+        <source>No amount. Please give the transfert amount</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transfer.py" line="79"/>
+        <source>Success transfering {0} {1} to {2}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transfer.py" line="84"/>
+        <source>Something wrong happened : {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transfer.py" line="89"/>
+        <source>This transaction could not be sent on this block
+Please try again later</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transfer.py" line="93"/>
+        <source>Couldn&apos;t connect to network : {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/transfer.py" line="98"/>
+        <source>Error</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>WalletsTab</name>
@@ -586,6 +1425,97 @@
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>WalletsTabWidget</name>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="59"/>
+        <source>
+                &lt;table cellpadding=&quot;5&quot;&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;/table&gt;
+                </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="59"/>
+        <source>Membership</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="59"/>
+        <source>Last renewal on {:}, expiration on {:}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="77"/>
+        <source>Your web of trust :</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="77"/>
+        <source>Certified by : {:} members; Certifier of : {:} members</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="77"/>
+        <source>
+                &lt;table cellpadding=&quot;5&quot;&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+                &lt;/table&gt;
+                </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="77"/>
+        <source>Not a member</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="107"/>
+        <source>
+            &lt;table cellpadding=&quot;5&quot;&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;b&gt;{:}&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{:}&lt;/td&gt;&lt;/tr&gt;
+            &lt;/table&gt;
+            </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="107"/>
+        <source>Your money share : </source>
+        <comment>{:.2f}%</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="107"/>
+        <source>Your part : </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="107"/>
+        <source>{:} {:} in [{:.2f} - {:}] {:}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="156"/>
+        <source>Rename</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="160"/>
+        <source>Copy pubkey to clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/wallets_tab.py" line="165"/>
+        <source>Transfer to...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>WotTabWidget</name>
     <message>
diff --git a/src/cutecoin/gui/certification.py b/src/cutecoin/gui/certification.py
index 5f4d668d..ef778167 100644
--- a/src/cutecoin/gui/certification.py
+++ b/src/cutecoin/gui/certification.py
@@ -45,21 +45,21 @@ class CertificationDialog(QDialog, Ui_CertificationDialog):
         try:
             QApplication.setOverrideCursor(Qt.WaitCursor)
             self.account.certify(password, self.community, pubkey)
-            QMessageBox.information(self, "Certification",
-                                 "Success certifying {0} from {1}".format(pubkey,
+            QMessageBox.information(self, self.tr("Certification"),
+                                 self.tr("Success certifying {0} from {1}").format(pubkey,
                                                                           self.community.currency))
         except ValueError as e:
-            QMessageBox.critical(self, "Certification",
-                                 "Something wrong happened : {0}".format(e),
+            QMessageBox.critical(self, self.tr("Certification"),
+                                 self.tr("Something wrong happened : {0}").format(e),
                                  QMessageBox.Ok)
             return
         except NoPeerAvailable as e:
-            QMessageBox.critical(self, "Certification",
-                                 "Couldn't connect to network : {0}".format(e),
+            QMessageBox.critical(self, self.tr("Certification"),
+                                 self.tr("Couldn't connect to network : {0}").format(e),
                                  QMessageBox.Ok)
             return
         except Exception as e:
-            QMessageBox.critical(self, "Error",
+            QMessageBox.critical(self, self.tr("Error"),
                                  "{0}".format(e),
                                  QMessageBox.Ok)
             return
diff --git a/src/cutecoin/gui/community_tab.py b/src/cutecoin/gui/community_tab.py
index 8f5de09f..33f526fc 100644
--- a/src/cutecoin/gui/community_tab.py
+++ b/src/cutecoin/gui/community_tab.py
@@ -166,18 +166,18 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
 
         try:
             self.account.send_membership(password, self.community, 'IN')
-            QMessageBox.information(self, "Membership",
-                                 "Success sending membership demand")
+            QMessageBox.information(self, self.tr("Membership"),
+                                 self.tr("Success sending membership demand"))
         except ValueError as e:
-            QMessageBox.critical(self, "Join demand error",
+            QMessageBox.critical(self, self.tr("Join demand error"),
                               str(e))
         except PersonNotFoundError as e:
-            QMessageBox.critical(self, "Key not sent to community",
-                              "Your key wasn't sent in the community. \
-                              You can't request a membership.")
+            QMessageBox.critical(self, self.tr("Key not sent to community"),
+                              self.tr("Your key wasn't sent in the community. \
+                              You can't request a membership."))
         except NoPeerAvailable as e:
-            QMessageBox.critical(self, "Network error",
-                                 "Couldn't connect to network : {0}".format(e),
+            QMessageBox.critical(self, self.tr("Network error"),
+                                 self.tr("Couldn't connect to network : {0}").format(e),
                                  QMessageBox.Ok)
         except Exception as e:
             QMessageBox.critical(self, "Error",
@@ -185,10 +185,10 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
                                  QMessageBox.Ok)
 
     def send_membership_leaving(self):
-        reply = QMessageBox.warning(self, "Warning",
-                             """Are you sure ?
+        reply = QMessageBox.warning(self, self.tr("Warning"),
+                             self.tr("""Are you sure ?
 Sending a membership demand  cannot be canceled.
-The process to join back the community later will have to be done again."""
+The process to join back the community later will have to be done again.""")
 .format(self.account.pubkey), QMessageBox.Ok | QMessageBox.Cancel)
         if reply == QMessageBox.Ok:
             password_asker = PasswordAskerDialog(self.app.current_account)
@@ -198,17 +198,17 @@ The process to join back the community later will have to be done again."""
 
             try:
                 self.account.send_membership(password, self.community, 'OUT')
-                QMessageBox.information(self, "Membership",
-                                     "Success sending leaving demand")
+                QMessageBox.information(self, self.tr("Membership"),
+                                     self.tr("Success sending leaving demand"))
             except ValueError as e:
-                QMessageBox.critical(self, "Leaving demand error",
+                QMessageBox.critical(self, self.tr("Leaving demand error"),
                                   e.message)
             except NoPeerAvailable as e:
-                QMessageBox.critical(self, "Network error",
-                                     "Couldn't connect to network : {0}".format(e),
+                QMessageBox.critical(self, self.tr("Network error"),
+                                     self.tr("Couldn't connect to network : {0}").format(e),
                                      QMessageBox.Ok)
             except Exception as e:
-                QMessageBox.critical(self, "Error",
+                QMessageBox.critical(self, self.tr("Error"),
                                      "{0}".format(e),
                                      QMessageBox.Ok)
 
diff --git a/src/cutecoin/gui/contact.py b/src/cutecoin/gui/contact.py
index b2b43d72..2f50c58e 100644
--- a/src/cutecoin/gui/contact.py
+++ b/src/cutecoin/gui/contact.py
@@ -55,7 +55,7 @@ class ConfigureContactDialog(QDialog, Ui_ConfigureContactDialog):
                 self.account.add_contact({'name': name,
                                           'pubkey': pubkey})
             except ContactAlreadyExists as e:
-                QMessageBox.critical(self, "Contact already exists",
+                QMessageBox.critical(self, self.tr("Contact already exists"),
                             str(e),
                             QMessageBox.Ok)
         self.main_window.app.save(self.account)
diff --git a/src/cutecoin/gui/currency_tab.py b/src/cutecoin/gui/currency_tab.py
index 7455d9bb..fbcbe4c6 100644
--- a/src/cutecoin/gui/currency_tab.py
+++ b/src/cutecoin/gui/currency_tab.py
@@ -74,8 +74,8 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
                 if days > 0:
                     QMessageBox.warning(
                         self,
-                        "Membership expiration",
-                        "Warning : Membership expiration in {0} days".format(days),
+                        self.tr("Membership expiration"),
+                        self.tr("Warning : Membership expiration in {0} days").format(days),
                         QMessageBox.Ok
                     )
         except MembershipNotFoundError as e:
@@ -93,7 +93,7 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
                                                 self.password_asker)
             self.tabs_account.addTab(self.tab_wallets,
                                      QIcon(':/icons/wallet_icon'),
-                                    "Wallets")
+                                    self.tr("Wallets"))
 
             self.tab_history = TransactionsTabWidget(self.app,
                                                      self.community,
@@ -101,7 +101,7 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
                                                      self)
             self.tabs_account.addTab(self.tab_history,
                                      QIcon(':/icons/tx_icon'),
-                                    "Transactions")
+                                    self.tr("Transactions"))
 
             self.tab_community = CommunityTabWidget(self.app,
                                                     self.app.current_account,
@@ -110,13 +110,13 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
                                                     self)
             self.tabs_account.addTab(self.tab_community,
                                      QIcon(':/icons/community_icon'),
-                                    "Community")
+                                    self.tr("Community"))
 
             self.tab_informations = InformationsTabWidget(self.app.current_account,
                                                     self.community)
             self.tabs_account.addTab(self.tab_informations,
                                      QIcon(':/icons/informations_icon'),
-                                    "Informations")
+                                    self.tr("Informations"))
 
             # fix bug refresh_nodes launch on destroyed NetworkTabWidget
             logging.debug('Disconnect community.network.nodes_changed')
@@ -128,7 +128,7 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
             self.tab_network = NetworkTabWidget(self.community)
             self.tabs_account.addTab(self.tab_network,
                                      QIcon(":/icons/network_icon"),
-                                     "Network")
+                                     self.tr("Network"))
             self.tab_informations.refresh()
             self.refresh_status()
             self.refresh_wallets()
@@ -167,15 +167,13 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
         Refresh status bar
         '''
         logging.debug("Refresh status")
+        text = self.tr(" Block {0}").format(self.community.network.latest_block)
         if self.community.network_quality() > 0.66:
             icon = '<img src=":/icons/connected" width="12" height="12"/>'
-            text = " Block {0}".format(self.community.network.latest_block)
         elif self.community.network_quality() > 0.33:
             icon = '<img src=":/icons/weak_connect" width="12" height="12"/>'
-            text = " Block {0}".format(self.community.network.latest_block)
         else:
             icon = '<img src=":/icons/disconnected" width="12" height="12"/>'
-            text = " Block {0}".format(self.community.network.latest_block)
         self.status_label.setText("{0}{1}".format(icon, text))
 
     def refresh_wallets(self):
diff --git a/src/cutecoin/gui/homescreen.py b/src/cutecoin/gui/homescreen.py
index 1613d588..2bb33a10 100644
--- a/src/cutecoin/gui/homescreen.py
+++ b/src/cutecoin/gui/homescreen.py
@@ -29,15 +29,15 @@ class HomeScreenWidget(QWidget, Ui_HomeScreenWidget):
         version_info = ""
         version_url = ""
         if not latest[0]:
-            version_info = "Please get the latest release {version}" \
+            version_info = self.tr("Please get the latest release {version}") \
                             .format(version='.'.join(latest[1]))
             version_url = latest[2]
 
         self.label_welcome.setText(
-            """
+            self.tr("""
             <h1>Welcome to Cutecoin {version}</h1>
             <h2>{version_info}</h2>
             <h3><a href={version_url}>Download link</a></h3>
-            """.format(version=__version__,
+            """).format(version=__version__,
                        version_info=version_info,
                        version_url=version_url))
diff --git a/src/cutecoin/gui/import_account.py b/src/cutecoin/gui/import_account.py
index 5550e5a9..dae6192c 100644
--- a/src/cutecoin/gui/import_account.py
+++ b/src/cutecoin/gui/import_account.py
@@ -31,19 +31,19 @@ class ImportAccountDialog(QDialog, Ui_ImportAccountDialog):
         try:
             self.app.import_account(self.selected_file, account_name)
         except Exception as e:
-            QMessageBox.critical(self, "Error",
+            QMessageBox.critical(self, self.tr("Error"),
                                  "{0}".format(e),
                                  QMessageBox.Ok)
             return
-        QMessageBox.information(self, "Account import",
-                                "Account imported succefully !")
+        QMessageBox.information(self, self.tr("Account import"),
+                                self.tr("Account imported succefully !"))
         super().accept()
 
     def import_account(self):
         self.selected_file = QFileDialog.getOpenFileName(self,
-                                          "Import an account file",
+                                          self.tr("Import an account file"),
                                           "",
-                                          "All account files (*.acc)")
+                                          self.tr("All account files (*.acc)"))
         self.selected_file = self.selected_file[0]
         self.edit_file.setText(self.selected_file)
         self.check()
@@ -55,16 +55,16 @@ class ImportAccountDialog(QDialog, Ui_ImportAccountDialog):
         name = self.edit_name.text()
         if name == "":
             self.button_box.button(QDialogButtonBox.Ok).setEnabled(False)
-            self.label_errors.setText("Please enter a name")
+            self.label_errors.setText(self.tr("Please enter a name"))
             return
         for account in self.app.accounts:
             if name == account:
                 self.button_box.button(QDialogButtonBox.Ok).setEnabled(False)
-                self.label_errors.setText("Name already exists")
+                self.label_errors.setText(self.tr("Name already exists"))
                 return
         if self.selected_file[-4:] != ".acc":
             self.button_box.button(QDialogButtonBox.Ok).setEnabled(False)
-            self.label_errors.setText("File is not an account format")
+            self.label_errors.setText(self.tr("File is not an account format"))
             return
         self.label_errors.setText("")
         self.button_box.button(QDialogButtonBox.Ok).setEnabled(True)
diff --git a/src/cutecoin/gui/informations_tab.py b/src/cutecoin/gui/informations_tab.py
index e201623e..1f8fd399 100644
--- a/src/cutecoin/gui/informations_tab.py
+++ b/src/cutecoin/gui/informations_tab.py
@@ -65,7 +65,7 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
 
             # set infos in label
             self.label_general.setText(
-                """
+                self.tr("""
                 <table cellpadding="5">
                 <tr><td align="right"><b>{:}</b></div></td><td>{:} {:}</td></tr>
                 <tr><td align="right"><b>{:}</b></td><td>{:} {:}</td></tr>
@@ -74,27 +74,27 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
                 <tr><td align="right"><b>{:2.2%} / {:} days</b></td><td>{:}</td></tr>
                 <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
                 </table>
-                """.format(
+                """).format(
                     localized_ud,
-                    'Universal Dividend UD(t) in',
+                    self.tr('Universal Dividend UD(t) in'),
                     self.get_referential_name(),
                     localized_monetary_mass,
-                    'Monetary Mass M(t) in',
+                    self.tr('Monetary Mass M(t) in'),
                     self.get_referential_name(),
                     block['membersCount'],
-                    'Members N(t)',
+                    self.tr('Members N(t)'),
                     localized_mass_per_member,
-                    'Monetary Mass per member M(t)/N(t) in',
+                    self.tr('Monetary Mass per member M(t)/N(t) in'),
                     self.get_referential_name(),
                     block['dividend'] / (block_t_minus_1['monetaryMass'] / block['membersCount']),
                     params['dt'] / 86400,
-                    'Actual growth c = UD(t)/[M(t-1)/N(t)]',
+                    self.tr('Actual growth c = UD(t)/[M(t-1)/N(t)]'),
                     datetime.datetime.fromtimestamp(block['medianTime'] + params['dt']).strftime("%d/%m/%Y %I:%M"),
-                    'Next UD date and time (t+1)'
+                    self.tr('Next UD date and time (t+1)')
                 )
             )
         else:
-            self.label_general.setText('No Universal Dividend created yet.')
+            self.label_general.setText(self.tr('No Universal Dividend created yet.'))
 
         if block:
             if isinstance(ud, int):
@@ -114,18 +114,18 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
 
             # set infos in label
             self.label_rules.setText(
-                """
+                self.tr("""
                 <table cellpadding="5">
                 <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
                 <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
                 <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
                 </table>
-                """.format(
-                    '{:2.0%} / {:} days'.format(params['c'], params['dt'] / 86400),
-                    'Fundamental growth (c) / Delta time (dt)',
-                    'UD(t+1) = MAX { UD(t) ; c * M(t) / N(t) }',
-                    'Universal Dividend (formula)',
-                    '{:} = MAX {{ {:} {:} ; {:2.0%} * {:} {:} / {:} }}'.format(
+                """).format(
+                    self.tr('{:2.0%} / {:} days').format(params['c'], params['dt'] / 86400),
+                    self.tr('Fundamental growth (c) / Delta time (dt)'),
+                    self.tr('UD(t+1) = MAX { UD(t) ; c * M(t) / N(t) }'),
+                    self.tr('Universal Dividend (formula)'),
+                    self.tr('{:} = MAX {{ {:} {:} ; {:2.0%} * {:} {:} / {:} }}').format(
                         localized_ud_t1,
                         localized_ud,
                         self.get_referential_name(),
@@ -134,15 +134,15 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
                         self.get_referential_name(),
                         block['membersCount']
                     ),
-                    'Universal Dividend (computed)'
+                    self.tr('Universal Dividend (computed)')
                 )
             )
         else:
-            self.label_rules.setText('No Universal Dividend created yet.')
+            self.label_rules.setText(self.tr('No Universal Dividend created yet.'))
 
         # set infos in label
         self.label_money.setText(
-            """
+            self.tr("""
             <table cellpadding="5">
             <tr><td align="right"><b>{:2.0%} / {:} days</b></td><td>{:}</td></tr>
             <tr><td align="right"><b>{:}</b></td><td>{:} {:}</td></tr>
@@ -153,31 +153,31 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
             <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
             <tr><td align="right"><b>{:2.0%}</b></td><td>{:}</td></tr>
             </table>
-            """.format(
+            """).format(
                 params['c'],
                 params['dt'] / 86400,
-                'Fundamental growth (c)',
+                self.tr('Fundamental growth (c)'),
                 params['ud0'],
-                'Initial Universal Dividend UD(0) in',
+                self.tr('Initial Universal Dividend UD(0) in'),
                 self.community.short_currency,
                 params['dt'] / 86400,
-                'Time period (dt) in days (86400 seconds) between two UD',
+                self.tr('Time period (dt) in days (86400 seconds) between two UD'),
                 params['medianTimeBlocks'],
-                'Number of blocks used for calculating median time',
+                self.tr('Number of blocks used for calculating median time'),
                 params['avgGenTime'],
-                'The average time in seconds for writing 1 block (wished time)',
+                self.tr('The average time in seconds for writing 1 block (wished time)'),
                 params['dtDiffEval'],
-                'The number of blocks required to evaluate again PoWMin value',
+                self.tr('The number of blocks required to evaluate again PoWMin value'),
                 params['blocksRot'],
-                'The number of previous blocks to check for personalized difficulty',
+                self.tr('The number of previous blocks to check for personalized difficulty'),
                 params['percentRot'],
-                'The percent of previous issuers to reach for personalized difficulty'
+                self.tr('The percent of previous issuers to reach for personalized difficulty')
             )
         )
 
         # set infos in label
         self.label_wot.setText(
-            """
+            self.tr("""
             <table cellpadding="5">
             <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
             <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
@@ -186,19 +186,19 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
             <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
             <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
             </table>
-            """.format(
+            """).format(
                 params['sigDelay'] / 86400,
-                'Minimum delay between 2 identical certifications (in days)',
+                self.tr('Minimum delay between 2 identical certifications (in days)'),
                 params['sigValidity'] / 86400,
-                'Maximum age of a valid signature (in days)',
+                self.tr('Maximum age of a valid signature (in days)'),
                 params['sigQty'],
-                'Minimum quantity of signatures to be part of the WoT',
+                self.tr('Minimum quantity of signatures to be part of the WoT'),
                 params['sigWoT'],
-                'Minimum quantity of valid made certifications to be part of the WoT for distance rule',
+                self.tr('Minimum quantity of valid made certifications to be part of the WoT for distance rule'),
                 params['msValidity'] / 86400,
-                'Maximum age of a valid membership (in days)',
+                self.tr('Maximum age of a valid membership (in days)'),
                 params['stepMax'],
-                'Maximum distance between each WoT member and a newcomer',
+                self.tr('Maximum distance between each WoT member and a newcomer'),
             )
         )
 
diff --git a/src/cutecoin/gui/mainwindow.py b/src/cutecoin/gui/mainwindow.py
index 05912506..2546d17e 100644
--- a/src/cutecoin/gui/mainwindow.py
+++ b/src/cutecoin/gui/mainwindow.py
@@ -167,7 +167,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
         self.busybar.setMaximum(0)
         self.busybar.setValue(-1)
         self.busybar.show()
-        self.status_label.setText("Loading account {0}".format(account_name))
+        self.status_label.setText(self.tr("Loading account {0}").format(account_name))
         self.loader.set_account_name(account_name)
         self.loader_thread.start(QThread.LowPriority)
         self.homescreen.button_new.hide()
@@ -223,16 +223,16 @@ class MainWindow(QMainWindow, Ui_MainWindow):
         version_info = ""
         version_url = ""
         if not latest[0]:
-            version_info = "Latest release : {version}" \
+            version_info = self.tr("Latest release : {version}") \
                 .format(version='.'.join(latest[1]))
             version_url = latest[2]
 
-        new_version_text = """
+        new_version_text = self.tr("""
             <p><b>{version_info}</b></p>
             <p><a href={version_url}>Download link</a></p>
-            """.format(version_info=version_info,
+            """).format(version_info=version_info,
                        version_url=version_url)
-        text = """
+        text = self.tr("""
         <h1>Cutecoin</h1>
 
         <p>Python/Qt uCoin client</p>
@@ -247,7 +247,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
         <p>inso</p>
         <p>vit</p>
         <p>canercandan</p>
-        """.format(__version__,
+        """).format(__version__,
                    new_version_text=new_version_text)
         aboutUi.label.setText(text)
         aboutDialog.show()
@@ -286,10 +286,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
         if self.app.current_account:
             for index, contact in enumerate(self.app.current_account.contacts):
                 contact_menu = self.menu_contacts_list.addMenu(contact['name'])
-                edit_action = contact_menu.addAction("Edit")
+                edit_action = contact_menu.addAction(self.tr("Edit"))
                 edit_action.triggered.connect(self.edit_contact)
                 edit_action.setData(index)
-                delete_action = contact_menu.addAction("Delete")
+                delete_action = contact_menu.addAction(self.tr("Delete"))
                 delete_action.setData(contact)
                 delete_action.triggered.connect(self.delete_contact)
 
@@ -311,18 +311,18 @@ class MainWindow(QMainWindow, Ui_MainWindow):
         if self.app.current_account is None:
             self.currencies_tabwidget.hide()
             self.homescreen.show()
-            self.setWindowTitle("CuteCoin {0}".format(__version__))
+            self.setWindowTitle(self.tr("CuteCoin {0}").format(__version__))
             self.menu_contacts.setEnabled(False)
             self.menu_actions.setEnabled(False)
             self.action_configure_parameters.setEnabled(False)
             self.action_set_as_default.setEnabled(False)
             self.combo_referential.setEnabled(False)
-            self.status_label.setText("")
+            self.status_label.setText(self.tr(""))
             self.password_asker = None
         else:
-            logging.debug("Show currencies loading")
+            logging.debug(self.tr("Show currencies loading"))
             self.currencies_tabwidget.show()
-            logging.debug("Hide homescreen")
+            logging.debug(self.tr("Hide homescreen"))
             self.homescreen.hide()
             self.action_set_as_default.setEnabled(self.app.current_account.name
                                                   != self.app.default_account)
@@ -337,7 +337,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
             self.menu_contacts.setEnabled(True)
             self.action_configure_parameters.setEnabled(True)
             self.menu_actions.setEnabled(True)
-            self.setWindowTitle("CuteCoin {0} - Account : {1}".format(__version__,
+            self.setWindowTitle(self.tr("CuteCoin {0} - Account : {1}").format(__version__,
                                                                       self.app.current_account.name))
 
         self.refresh_communities()
@@ -351,9 +351,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
 
     def export_account(self):
         selected_file = QFileDialog.getSaveFileName(self,
-                                                    "Export an account",
+                                                    self.tr("Export an account"),
                                                     "",
-                                                    "All account files (*.acc)")
+                                                    self.tr("All account files (*.acc)"))
         path = ""
         if selected_file[0][-4:] == ".acc":
             path = selected_file[0]
diff --git a/src/cutecoin/gui/member.py b/src/cutecoin/gui/member.py
index e1877cae..85319508 100644
--- a/src/cutecoin/gui/member.py
+++ b/src/cutecoin/gui/member.py
@@ -29,7 +29,7 @@ class MemberDialog(QDialog, Ui_DialogMember):
             join_date = None
 
         if join_date is None:
-            join_date = 'not a member'
+            join_date = self.tr('not a member')
         else:
             join_date = datetime.datetime.fromtimestamp(join_date).strftime("%d/%m/%Y %I:%M")
 
@@ -41,29 +41,29 @@ class MemberDialog(QDialog, Ui_DialogMember):
             # add path from selected member to account member
             path = graph.get_shortest_path_between_members(person, self.account.get_person())
 
-        text = """
+        text = self.tr("""
             <table cellpadding="5">
             <tr><td align="right"><b>{:}</b></div></td><td>{:}</td></tr>
             <tr><td align="right"><b>{:}</b></div></td><td>{:}</td></tr>
-            """.format(
-                'Public key',
+            """).format(
+                self.tr('Public key'),
                 self.person.pubkey,
-                'Join date',
+                self.tr('Join date'),
                 join_date
             )
 
         if path:
             distance = len(path) - 1
-            text += """<tr><td align="right"><b>{:}</b></div></td><td>{:}</td></tr>""".format('Distance', distance)
+            text += self.tr("""<tr><td align="right"><b>{:}</b></div></td><td>{:}</td></tr>""".format(self.tr('Distance'), distance))
             if distance > 1:
                 index = 0
                 for node in path:
                     if index == 0:
-                        text += """<tr><td align="right"><b>{:}</b></div></td><td>{:}</td></tr>""".format('Path', node['text'])
+                        text += self.tr("""<tr><td align="right"><b>{:}</b></div></td><td>{:}</td></tr>""").format(self.tr('Path'), node['text'])
                     else:
-                        text += """<tr><td align="right"><b>{:}</b></div></td><td>{:}</td></tr>""".format('', node['text'])
+                        text += self.tr("""<tr><td align="right"><b>{:}</b></div></td><td>{:}</td></tr>""").format('', node['text'])
                     if index == distance and node['id'] != self.account.pubkey:
-                        text += """<tr><td align="right"><b>{:}</b></div></td><td>{:}</td></tr>""".format('', self.account.name)
+                        text += self.tr("""<tr><td align="right"><b>{:}</b></div></td><td>{:}</td></tr>""").format('', self.account.name)
                     index += 1
         # close html text
         text += "</table>"
diff --git a/src/cutecoin/gui/password_asker.py b/src/cutecoin/gui/password_asker.py
index 0773727c..2009f872 100644
--- a/src/cutecoin/gui/password_asker.py
+++ b/src/cutecoin/gui/password_asker.py
@@ -43,14 +43,14 @@ class PasswordAskerDialog(QDialog, Ui_PasswordAskerDialog):
         password = self.edit_password.text()
 
         if detect_non_printable(password):
-            QMessageBox.warning(self, "Bad password",
-                                "Non printable characters in password",
+            QMessageBox.warning(self, self.tr("Bad password"),
+                                self.tr("Non printable characters in password"),
                                 QMessageBox.Ok)
             return False
 
         if not self.account.check_password(password):
-            QMessageBox.warning(self, "Failed to get private key",
-                                "Wrong password typed. Cannot open the private key",
+            QMessageBox.warning(self, self.tr("Failed to get private key"),
+                                self.tr("Wrong password typed. Cannot open the private key"),
                                 QMessageBox.Ok)
             return False
 
diff --git a/src/cutecoin/gui/process_cfg_account.py b/src/cutecoin/gui/process_cfg_account.py
index 7a4ff8eb..cddae22e 100644
--- a/src/cutecoin/gui/process_cfg_account.py
+++ b/src/cutecoin/gui/process_cfg_account.py
@@ -66,24 +66,24 @@ class StepPageKey(Step):
 
     def is_valid(self):
         if len(self.config_dialog.edit_salt.text()) < 6:
-            self.config_dialog.label_info.setText("Forbidden : salt is too short")
+            self.config_dialog.label_info.setText(self.tr("Forbidden : salt is too short"))
             return False
 
         if len(self.config_dialog.edit_password.text()) < 6:
-            self.config_dialog.label_info.setText("Forbidden : password is too short")
+            self.config_dialog.label_info.setText(self.tr("Forbidden : password is too short"))
             return False
 
         if detect_non_printable(self.config_dialog.edit_salt.text()):
-            self.config_dialog.label_info.setText("Forbidden : Invalid characters in salt field")
+            self.config_dialog.label_info.setText(self.tr("Forbidden : Invalid characters in salt field"))
             return False
 
         if detect_non_printable(self.config_dialog.edit_password.text()):
-            self.config_dialog.label_info.setText("Forbidden : Invalid characters in password field")
+            self.config_dialog.label_info.setText(self.tr("Forbidden : Invalid characters in password field"))
             return False
 
         if self.config_dialog.edit_password.text() != \
             self.config_dialog.edit_password_repeat.text():
-            self.config_dialog.label_info.setText("Error : passwords are different")
+            self.config_dialog.label_info.setText(self.tr("Error : passwords are different"))
             return False
 
         self.config_dialog.label_info.setText("")
@@ -158,14 +158,14 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog):
         self.step = step_init
         self.step.display_page()
         if self.account is None:
-            self.setWindowTitle("New account")
+            self.setWindowTitle(self.tr("New account"))
             self.button_delete.hide()
         else:
             self.stacked_pages.removeWidget(self.stacked_pages.widget(1))
             step_init.next_step = step_communities
             self.button_next.setEnabled(True)
             self.stacked_pages.currentWidget()
-            self.setWindowTitle("Configure " + self.account.name)
+            self.setWindowTitle(self.tr("Configure {0}".format(self.account.name)))
 
     def open_process_add_community(self):
         logging.debug("Opening configure community dialog")
@@ -179,7 +179,7 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog):
         logging.debug("Action add community : done")
         self.list_communities.setModel(CommunitiesListModel(self.account))
         self.button_next.setEnabled(True)
-        self.button_next.setText("Ok")
+        self.button_next.setText(self.tr("Ok"))
 
     def action_remove_community(self):
         for index in self.list_communities.selectedIndexes():
@@ -200,8 +200,8 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog):
         salt = self.edit_salt.text()
         password = self.edit_password.text()
         pubkey = SigningKey(salt, password).pubkey
-        QMessageBox.information(self, "Public key",
-                                "These parameters pubkeys are : {0}".format(pubkey))
+        QMessageBox.information(self, self.tr("Public key"),
+                                self.tr("These parameters pubkeys are : {0}").format(pubkey))
 
     def action_edit_account_parameters(self):
         if self.step.is_valid():
@@ -214,11 +214,11 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog):
         try:
             dialog = ProcessConfigureCommunity(self.account, community, self.password_asker)
         except NoPeerAvailable as e:
-            QMessageBox.critical(self, "Error",
+            QMessageBox.critical(self, self.tr("Error"),
                                  str(e), QMessageBox.Ok)
             return
         except requests.exceptions.RequestException as e:
-            QMessageBox.critical(self, "Error",
+            QMessageBox.critical(self, self.tr("Error"),
                                  str(e), QMessageBox.Ok)
             return
 
@@ -226,11 +226,11 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog):
         dialog.exec_()
 
     def action_delete_account(self):
-        reply = QMessageBox.question(self, "Warning",
-                             """This action will delete your account locally.
+        reply = QMessageBox.question(self, self.tr("Warning"),
+                             self.tr("""This action will delete your account locally.
 Please note your key parameters (salt and password) if you wish to recover it later.
 Your account won't be removed from the networks it joined.
-Are you sure ?""")
+Are you sure ?"""))
         if reply == QMessageBox.Yes:
             account = self.app.current_account
             self.app.delete_account(account)
@@ -249,7 +249,7 @@ Are you sure ?""")
                 else:
                     self.accept()
             except Error as e:
-                QMessageBox.critical(self, "Error",
+                QMessageBox.critical(self, self.tr("Error"),
                                      str(e), QMessageBox.Ok)
 
     def previous(self):
diff --git a/src/cutecoin/gui/process_cfg_community.py b/src/cutecoin/gui/process_cfg_community.py
index 14fcd58e..2aae23fd 100644
--- a/src/cutecoin/gui/process_cfg_community.py
+++ b/src/cutecoin/gui/process_cfg_community.py
@@ -86,7 +86,7 @@ class StepPageAddpeers(Step):
 
         self.config_dialog.tree_peers.setModel(tree_model)
         self.config_dialog.button_previous.setEnabled(False)
-        self.config_dialog.button_next.setText("Ok")
+        self.config_dialog.button_next.setText(self.tr("Ok"))
 
 
 class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog):
@@ -114,11 +114,10 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog):
         if self.community is not None:
             self.stacked_pages.removeWidget(self.page_init)
             self.step = step_add_peers
-            self.setWindowTitle("Configure community "
-                                + self.community.currency)
+            self.setWindowTitle(self.tr("Configure community {0}").format(self.community.currency))
         else:
             self.step = step_init
-            self.setWindowTitle("Add a community")
+            self.setWindowTitle(self.tr("Add a community"))
 
         self.step.display_page()
 
@@ -159,7 +158,7 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog):
             node = Node.from_address(self.community.currency, server, port)
             self.community.add_node(node)
         except Exception as e:
-            QMessageBox.critical(self, "Error",
+            QMessageBox.critical(self, self.tr("Error"),
                                  str(e))
         self.tree_peers.setModel(PeeringTreeModel(self.community))
 
@@ -185,7 +184,7 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog):
         if self.stacked_pages.currentIndex() == self.nb_steps - 1:
             menu = QMenu()
             index = self.tree_peers.indexAt(point)
-            action = menu.addAction("Delete", self.remove_node)
+            action = menu.addAction(self.tr("Delete"), self.remove_node)
             action.setData(index.row())
             if self.community is not None:
                 if len(self.nodes) == 1:
@@ -196,10 +195,10 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog):
         try:
             Person.lookup(self.account.pubkey, self.community, cached=False)
         except PersonNotFoundError as e:
-            reply = QMessageBox.question(self, "Pubkey not found",
-                                 """The public key of your account wasn't found in the community. :\n
+            reply = QMessageBox.question(self, self.tr("Pubkey not found"),
+                                 self.tr("""The public key of your account wasn't found in the community. :\n
 {0}\n
-Would you like to publish the key ?""".format(self.account.pubkey))
+Would you like to publish the key ?""").format(self.account.pubkey))
             if reply == QMessageBox.Yes:
                 password = self.password_asker.exec_()
                 if self.password_asker.result() == QDialog.Rejected:
@@ -207,14 +206,14 @@ Would you like to publish the key ?""".format(self.account.pubkey))
                 try:
                     self.account.send_selfcert(password, self.community)
                 except ValueError as e:
-                    QMessageBox.critical(self, "Pubkey publishing error",
+                    QMessageBox.critical(self, self.tr("Pubkey publishing error"),
                                       e.message)
                 except NoPeerAvailable as e:
-                    QMessageBox.critical(self, "Network error",
-                                         "Couldn't connect to network : {0}".format(e),
+                    QMessageBox.critical(self, self.tr("Network error"),
+                                         self.tr("Couldn't connect to network : {0}").format(e),
                                          QMessageBox.Ok)
                 except Exception as e:
-                    QMessageBox.critical(self, "Error",
+                    QMessageBox.critical(self, self.tr("Error"),
                                          "{0}".format(e),
                                          QMessageBox.Ok)
 
diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py
index a7291a8a..65888a80 100644
--- a/src/cutecoin/gui/transactions_tab.py
+++ b/src/cutecoin/gui/transactions_tab.py
@@ -84,15 +84,15 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
             localized_balance = QLocale().toString(
                 self.app.current_account.units_to_diff_ref(balance, self.community), 'f', 2)
 
-        self.label_deposit.setText("Deposits: {:} {:}".format(
+        self.label_deposit.setText(self.tr("Deposits: {:} {:}").format(
             localized_deposits,
             self.app.current_account.ref_name(self.community.short_currency)
         ))
-        self.label_payment.setText("Payments: {:} {:}".format(
+        self.label_payment.setText(self.tr("Payments: {:} {:}").format(
             localized_payments,
             self.app.current_account.ref_name(self.community.short_currency)
         ))
-        self.label_balance.setText("Balance: {:} {:}".format(
+        self.label_balance.setText(self.tr("Balance: {:} {:}").format(
             localized_balance,
             self.app.current_account.ref_name(self.community.short_currency)
         ))
@@ -101,7 +101,7 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
         index = self.table_history.indexAt(point)
         model = self.table_history.model()
         if index.row() < model.rowCount(QModelIndex()):
-            menu = QMenu("Actions", self)
+            menu = QMenu(self.tr("Actions"), self)
             source_index = model.mapToSource(index)
             state_col = model.sourceModel().column_types.index('state')
             state_index = model.sourceModel().index(source_index.row(),
@@ -114,39 +114,39 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
             person = model.sourceModel().data(person_index, Qt.DisplayRole)
             transfer = model.sourceModel().transfers[source_index.row()]
             if state_data == Transfer.REFUSED or state_data == Transfer.TO_SEND:
-                send_back = QAction("Send again", self)
+                send_back = QAction(self.tr("Send again"), self)
                 send_back.triggered.connect(self.send_again)
                 send_back.setData(transfer)
                 menu.addAction(send_back)
 
-                cancel = QAction("Cancel", self)
+                cancel = QAction(self.tr("Cancel"), self)
                 cancel.triggered.connect(self.cancel_transfer)
                 cancel.setData(transfer)
                 menu.addAction(cancel)
             else:
                 if isinstance(person, Person):
-                    informations = QAction("Informations", self)
+                    informations = QAction(self.tr("Informations"), self)
                     informations.triggered.connect(self.currency_tab.tab_community.menu_informations)
                     informations.setData(person)
                     menu.addAction(informations)
 
-                    add_as_contact = QAction("Add as contact", self)
+                    add_as_contact = QAction(self.tr("Add as contact"), self)
                     add_as_contact.triggered.connect(self.currency_tab.tab_community.menu_add_as_contact)
                     add_as_contact.setData(person)
                     menu.addAction(add_as_contact)
 
-                send_money = QAction("Send money to", self)
+                send_money = QAction(self.tr("Send money to"), self)
                 send_money.triggered.connect(self.currency_tab.tab_community.menu_send_money)
                 send_money.setData(person)
                 menu.addAction(send_money)
 
                 if isinstance(person, Person):
-                    view_wot = QAction("View in WoT", self)
+                    view_wot = QAction(self.tr("View in WoT"), self)
                     view_wot.triggered.connect(self.currency_tab.tab_community.view_wot)
                     view_wot.setData(person)
                     menu.addAction(view_wot)
 
-            copy_pubkey = QAction("Copy pubkey to clipboard", self)
+            copy_pubkey = QAction(self.tr("Copy pubkey to clipboard"), self)
             copy_pubkey.triggered.connect(self.copy_pubkey_to_clipboard)
             copy_pubkey.setData(person)
             menu.addAction(copy_pubkey)
@@ -183,9 +183,9 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
             self.table_history.model().invalidate()
 
     def cancel_transfer(self):
-        reply = QMessageBox.warning(self, "Warning",
-                             """Are you sure ?
-This money transfer will be removed and not sent.""",
+        reply = QMessageBox.warning(self, self.tr("Warning"),
+                             self.tr("""Are you sure ?
+This money transfer will be removed and not sent."""),
 QMessageBox.Ok | QMessageBox.Cancel)
         if reply == QMessageBox.Ok:
             transfer = self.sender().data()
diff --git a/src/cutecoin/gui/transfer.py b/src/cutecoin/gui/transfer.py
index aa400995..e88ef53d 100644
--- a/src/cutecoin/gui/transfer.py
+++ b/src/cutecoin/gui/transfer.py
@@ -62,8 +62,8 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
         amount = self.spinbox_amount.value()
 
         if not amount:
-            QMessageBox.critical(self, "Money transfer",
-                                 "No amount. Please give the transfert amount",
+            QMessageBox.critical(self, self.tr("Money transfer"),
+                                 self.tr("No amount. Please give the transfert amount"),
                                  QMessageBox.Ok)
             return
 
@@ -76,26 +76,26 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
             QApplication.processEvents()
             self.wallet.send_money(self.account.salt, password, self.community,
                                        recipient, amount, comment)
-            QMessageBox.information(self, "Money transfer",
-                                 "Success transfering {0} {1} to {2}".format(amount,
+            QMessageBox.information(self, self.tr("Money transfer"),
+                                 self.tr("Success transfering {0} {1} to {2}").format(amount,
                                                                              self.community.currency,
                                                                              recipient))
         except ValueError as e:
-            QMessageBox.critical(self, "Money transfer",
-                                 "Something wrong happened : {0}".format(e),
+            QMessageBox.critical(self, self.tr("Money transfer"),
+                                 self.tr("Something wrong happened : {0}").format(e),
                                  QMessageBox.Ok)
             return
         except NotEnoughMoneyError as e:
-            QMessageBox.warning(self, "Money transfer",
-                                 """This transaction could not be sent on this block
-Please try again later""")
+            QMessageBox.warning(self, self.tr("Money transfer"),
+                                 self.tr("""This transaction could not be sent on this block
+Please try again later"""))
         except NoPeerAvailable as e:
-            QMessageBox.critical(self, "Money transfer",
-                                 "Couldn't connect to network : {0}".format(e),
+            QMessageBox.critical(self, self.tr("Money transfer"),
+                                 self.tr("Couldn't connect to network : {0}").format(e),
                                  QMessageBox.Ok)
             return
         except Exception as e:
-            QMessageBox.critical(self, "Error",
+            QMessageBox.critical(self, self.tr("Error"),
                                  "{0}".format(str(e)),
                                  QMessageBox.Ok)
             return
diff --git a/src/cutecoin/gui/wallets_tab.py b/src/cutecoin/gui/wallets_tab.py
index f0d1d7a7..efad8da5 100644
--- a/src/cutecoin/gui/wallets_tab.py
+++ b/src/cutecoin/gui/wallets_tab.py
@@ -55,35 +55,35 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab):
             date_expiration = QDateTime.fromTime_t(expiration).date().toString()
             # set infos in label
             self.label_general.setText(
-                """
+                self.tr("""
                 <table cellpadding="5">
                 <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
                 <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
                 <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
                 </table>
-                """.format(
+                """).format(
                     self.account.name, self.account.pubkey,
-                    "Membership",
-                    "Last renewal on {:}, expiration on {:}".format(date_renewal, date_expiration),
-                    "Your web of trust :",
-                    "Certified by : {:} members; Certifier of : {:} members".format(len(certifiers),
+                    self.tr("Membership"),
+                    self.tr("Last renewal on {:}, expiration on {:}").format(date_renewal, date_expiration),
+                    self.tr("Your web of trust :"),
+                    self.tr("Certified by : {:} members; Certifier of : {:} members").format(len(certifiers),
                                                                                     len(certified))
                 )
             )
         else:
             # set infos in label
             self.label_general.setText(
-                """
+                self.tr("""
                 <table cellpadding="5">
                 <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
                 <tr><td align="right"><b>{:}</b></td></tr>
                 <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
                 </table>
-                """.format(
+                """).format(
                     self.account.name, self.account.pubkey,
-                    "Not a member",
-                    "Your web of trust :",
-                    "Certified by : {:} members; Certifier of : {:} members".format(len(certifiers),
+                    self.tr("Not a member"),
+                    self.tr("Your web of trust :"),
+                    self.tr("Certified by : {:} members; Certifier of : {:} members").format(len(certifiers),
                                                                                     len(certified))
                 )
             )
@@ -103,13 +103,13 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab):
 
         # set infos in label
         self.label_balance.setText(
-            """
+            self.tr("""
             <table cellpadding="5">
             <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
             <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr>
             </table>
-            """.format("Your money share : ", "{:.2f}%".format(amount / maximum * 100) if maximum != 0 else "0%",
-                       "Your part : ", "{:} {:} in [{:.2f} - {:}] {:}"
+            """).format(self.tr("Your money share : ", "{:.2f}%").format(amount / maximum * 100) if maximum != 0 else "0%",
+                       self.tr("Your part : "), self.tr("{:} {:} in [{:.2f} - {:}] {:}")
                        .format(
                     localized_amount,
                     self.get_referential_name(),
@@ -151,16 +151,16 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab):
             pubkey = model.sourceModel().data(pubkey_index, Qt.DisplayRole)
             menu = QMenu(model.data(index, Qt.DisplayRole), self)
 
-            rename = QAction("Rename", self)
+            rename = QAction(self.tr("Rename"), self)
             rename.triggered.connect(self.rename_wallet)
             rename.setData(name_index)
 
-            copy_pubkey = QAction("Copy pubkey to clipboard", self)
+            copy_pubkey = QAction(self.tr("Copy pubkey to clipboard"), self)
             copy_pubkey.triggered.connect(self.copy_pubkey_to_clipboard)
             copy_pubkey.setData(pubkey)
 
             transfer_to = QMenu()
-            transfer_to.setTitle("Transfer to...")
+            transfer_to.setTitle(self.tr("Transfer to..."))
             for w in self.account.wallets:
                 if w == self.account.wallets[source_index.row()]:
                     continue
diff --git a/src/cutecoin/models/identities.py b/src/cutecoin/models/identities.py
index 8e80d44b..4bb0cde4 100644
--- a/src/cutecoin/models/identities.py
+++ b/src/cutecoin/models/identities.py
@@ -71,10 +71,10 @@ class IdentitiesTableModel(QAbstractTableModel):
         super().__init__(parent)
         self.community = community
         self.columns_titles = {
-                               'uid': 'UID',
-                               'pubkey': 'Pubkey',
-                               'renewed': 'Renewed',
-                               'expiration': 'Expiration'}
+                               'uid': self.tr('UID'),
+                               'pubkey': self.tr('Pubkey'),
+                               'renewed': self.tr('Renewed'),
+                               'expiration': self.tr('Expiration')}
         self.columns_ids = ('uid', 'pubkey', 'renewed', 'expiration')
         self.identities_data = []
 
diff --git a/src/cutecoin/models/network.py b/src/cutecoin/models/network.py
index 60597f8a..0c284ffa 100644
--- a/src/cutecoin/models/network.py
+++ b/src/cutecoin/models/network.py
@@ -36,12 +36,12 @@ class NetworkFilterProxyModel(QSortFilterProxyModel):
             return QVariant()
 
         header_names = {
-            'address': 'Address',
-            'port': 'Port',
-            'current_block': 'Block',
-            'uid': 'UID',
-            'is_member': 'Member',
-            'pubkey': 'Pubkey'
+            'address': self.tr('Address'),
+            'port': self.tr('Port'),
+            'current_block': self.tr('Block'),
+            'uid': self.tr('UID'),
+            'is_member': self.tr('Member'),
+            'pubkey': self.tr('Pubkey')
         }
         _type = self.sourceModel().headerData(section, orientation, role)
         return header_names[_type]
diff --git a/src/cutecoin/models/txhistory.py b/src/cutecoin/models/txhistory.py
index f5da92ef..e9c4ae1e 100644
--- a/src/cutecoin/models/txhistory.py
+++ b/src/cutecoin/models/txhistory.py
@@ -162,12 +162,12 @@ class HistoryTableModel(QAbstractTableModel):
         )
 
         self.column_headers = (
-            'Date',
-            'UID/Public key',
-            'Payment',
-            'Deposit',
-            'Comment',
-            'State'
+            self.tr('Date'),
+            self.tr('UID/Public key'),
+            self.tr('Payment'),
+            self.tr('Deposit'),
+            self.tr('Comment'),
+            self.tr('State')
         )
 
     @property
-- 
GitLab