diff --git a/res/i18n/ts/fr.ts b/res/i18n/ts/fr.ts
index 8c7a66f53a0a488abf91f628204882d25d3ab401..61406db2da44f786ca39051a321c16ac362c8847 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 5f4d668d6dc2e4f959b3c42a6828e99f9e1c1269..ef778167e77f726302098bcc7b39ad599da5812a 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 8f5de09f26972f5a9eeefbcd8f6b1c6dff37aa82..33f526fc222d88a64b632bf610d930a9fd8adf59 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 b2b43d7298c1a6c779b9f03702958c3c9b7b60c9..2f50c58e3a74cd2746762d8561adc18f0d69553b 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 7455d9bb102d80204b0c26964157709b9ddb31c1..fbcbe4c6be9452e90e3d09ef86265cfddcecac32 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 1613d58876dfb1060ec186128d5b296dc31912d3..2bb33a10181215602d2c9759b32accea5391c800 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 5550e5a99a7e6d7dafdeb562de9cafaf476e911a..dae6192c02afc00e3fddef31ab2e000ebedf5be4 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 e201623e4d4ce77e8581c332367e4547f071e310..1f8fd399c46f03c5da67dd3d9e1d4e21fb8533ba 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 05912506cff60a16b7d29c7b5b95d5d0dd710675..2546d17e0d5886cf95f7e1ffb8367a16078bb8af 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 e1877caea6b9b75dfac0950472f94e3691932c7a..853195085ab25eefbe0d6a36e4e3ad6325d2feb9 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 0773727c15ce089ec80c57953c8e4efd5a78f110..2009f8720f92613fed576275609968eddfba08b6 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 7a4ff8ebb5a4b249538dd97acea5bab982d158a3..cddae22e304204b5558474395d941a9f97ea5bee 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 14fcd58ecd240b3f4c9769e9a082b17c55af7109..2aae23fd708407ac90d0e72ff686c22b99d96b7d 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 a7291a8ac617b6e66d8c78e59de1939508067a37..65888a8033d9427602a771b534ce9e31dbc9fefb 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 aa4009954ad60c70dbd46b8f042162c59a0c1439..e88ef53defd877378adf1daff2f4ff7afec4a242 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 f0d1d7a7f1c2cd8880a7be78e043ffe250ebae11..efad8da500092084d43c12131da46595b24082cb 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 8e80d44b1d4bd97abe78061d7834649e41de2714..4bb0cde4113430feb8c84a99faec725de3da2fcb 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 60597f8a546a3ec18c76413d2e50ff5983e217cd..0c284ffa9ca14330ae5f61d8118d07920cba49b9 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 f5da92ef4e98092d485a5f2d440c8bbe74c18022..e9c4ae1eedcc22a1cec1aede09d9eaaa51731845 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