diff --git a/Makefile b/Makefile
index a5639d813ff19d488818d1c0040b264e8954d5bf..086729d7a3da9fbe6520fcdbf584060be4151c74 100644
--- a/Makefile
+++ b/Makefile
@@ -325,4 +325,4 @@ generate_locales:
 	@lupdate bitmask.pro
 
 get_%:
-	@curl -L -X GET --user "api:${API_TOKEN}" "https://www.transifex.com/api/2/project/bitmask/resource/riseupvpn-test/translation/${subst -,_,$*}/?file" > gui/i18n/main_$*.ts
+	@curl -L -X GET --user "api:${API_TOKEN}" "https://www.transifex.com/api/2/project/bitmask/resource/bitmask-vpn/translation/${subst -,_,$*}/?file" > gui/i18n/main_$*.ts
diff --git a/gui/i18n/base.ts b/gui/i18n/base.ts
index 9110c3622e9215383bead802e068e5ec50b3f6e8..bf4a459a06f60448c8c05c057333afbc7e74f4da 100644
--- a/gui/i18n/base.ts
+++ b/gui/i18n/base.ts
@@ -10,12 +10,18 @@
     </message>
     <message>
         <location filename="../qml/AboutDialog.qml" line="19"/>
-        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; &lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%3&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
-        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation URL %4 -&gt; TOS URL</extracomment>
+        <source>&lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%1&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt;</source>
+        <extracomment>donation text of the about dialog %1 -&gt; donation URL</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/AboutDialog.qml" line="29"/>
+        <location filename="../qml/AboutDialog.qml" line="26"/>
+        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; %3 &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
+        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation text if activated %4 -&gt; TOS URL</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qml/AboutDialog.qml" line="36"/>
         <source>%1 version: %2</source>
         <extracomment>%1 -&gt; application name %2 -&gt; version string</extracomment>
         <translation type="unfinished"></translation>
@@ -37,135 +43,232 @@ Do you want to donate now?</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>FailDialog</name>
+    <message>
+        <location filename="../qml/FailDialog.qml" line="5"/>
+        <source>Initialization Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>LoginDialog</name>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="7"/>
+        <location filename="../qml/LoginDialog.qml" line="6"/>
         <source>Login</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="11"/>
+        <location filename="../qml/LoginDialog.qml" line="35"/>
+        <source>Enter your Patron ID</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="37"/>
         <source>Log in with your library credentials</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="15"/>
+        <location filename="../qml/LoginDialog.qml" line="42"/>
+        <source>You can check your Patron ID number in the back of your library card</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="20"/>
         <source>patron id</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="19"/>
+        <location filename="../qml/LoginDialog.qml" line="24"/>
         <source>password</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>LoginOKDialog</name>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="7"/>
+        <source>Login Successful</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="11"/>
+        <source>Login successful. You can now start the VPN.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>main</name>
     <message>
-        <location filename="../qml/main.qml" line="25"/>
+        <location filename="../qml/main.qml" line="38"/>
         <source>Could not find helpers. Check your installation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="27"/>
+        <location filename="../qml/main.qml" line="40"/>
         <source>Could not find polkit agent.</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../qml/main.qml" line="55"/>
+        <source>Oops! The authentication service seems down. Please try again later</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../qml/main.qml" line="56"/>
+        <source>Service Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="62"/>
+        <source>Please check your Patron ID</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="64"/>
+        <source>Could not log in with those credentials, please retry</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="66"/>
+        <source>Login Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="70"/>
+        <source>Got an error starting %1: %2</source>
+        <extracomment>%1 -&gt; application name %2 -&gt; error string</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="104"/>
         <source>%1 off</source>
         <extracomment>%1 -&gt; application name</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="59"/>
+        <location filename="../qml/main.qml" line="107"/>
         <source>%1 on</source>
         <extracomment>%1 -&gt; application name</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="62"/>
+        <location filename="../qml/main.qml" line="110"/>
         <source>Connecting to %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="65"/>
+        <location filename="../qml/main.qml" line="113"/>
         <source>Stopping %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="68"/>
+        <location filename="../qml/main.qml" line="116"/>
         <source>%1 blocking internet</source>
         <extracomment>%1 -&gt; application name</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="105"/>
-        <location filename="../qml/main.qml" line="151"/>
+        <location filename="../qml/main.qml" line="163"/>
+        <location filename="../qml/main.qml" line="211"/>
         <source>Checking status...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="158"/>
+        <location filename="../qml/main.qml" line="218"/>
         <source>Reconnect</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="160"/>
+        <location filename="../qml/main.qml" line="220"/>
         <source>Turn on</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="171"/>
+        <location filename="../qml/main.qml" line="231"/>
         <source>Cancel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="173"/>
+        <location filename="../qml/main.qml" line="233"/>
         <source>Turn off</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="184"/>
+        <location filename="../qml/main.qml" line="244"/>
         <source>Help...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="189"/>
+        <location filename="../qml/main.qml" line="254"/>
         <source>Donate...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="195"/>
+        <location filename="../qml/main.qml" line="260"/>
         <source>About...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="202"/>
+        <location filename="../qml/main.qml" line="267"/>
         <source>Quit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="227"/>
+        <location filename="../qml/main.qml" line="297"/>
         <source>Error starting VPN</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="237"/>
+        <location filename="../qml/main.qml" line="307"/>
         <source>Missing authentication agent</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="238"/>
+        <location filename="../qml/main.qml" line="308"/>
         <source>Could not find a polkit authentication agent. Please run one and try again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="246"/>
-        <source>Initialization Error</source>
+        <location filename="../main.cpp" line="76"/>
+        <source>: a fast and secure VPN. Powered by Bitmask.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="83"/>
+        <source>Do not show the systray icon (useful together with gnome shell extension, or to control VPN by other means).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="90"/>
+        <source>Enable web api.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="96"/>
+        <source>Install helpers (linux only, requires sudo).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="102"/>
+        <source>Use obfs4 to obfuscate the traffic, if available in the provider.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="108"/>
+        <source>Disable autostart for the next run.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="113"/>
+        <source>Web api port (default: 8080)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="115"/>
+        <source>Start the vpn, either &apos;on&apos; or &apos;off&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
diff --git a/gui/i18n/main_ar.ts b/gui/i18n/main_ar.ts
index 5a8869afe847bb73dfe5c07876c2442f673bbcbb..d94cbceaec0088ada8b8b020a54babc18014a178 100644
--- a/gui/i18n/main_ar.ts
+++ b/gui/i18n/main_ar.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="ar">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="ar" version="2.1">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -10,15 +8,21 @@
     </message>
     <message>
         <location filename="../qml/AboutDialog.qml" line="19"/>
-        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; &lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%3&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
-        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation URL %4 -&gt; TOS URL</extracomment>
-        <translation type="unfinished"></translation>
+        <source>&lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%1&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt;</source>
+        <extracomment>donation text of the about dialog %1 -&gt; donation URL</extracomment>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/AboutDialog.qml" line="29"/>
+        <location filename="../qml/AboutDialog.qml" line="26"/>
+        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; %3 &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
+        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation text if activated %4 -&gt; TOS URL</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/AboutDialog.qml" line="36"/>
         <source>%1 version: %2</source>
         <extracomment>%1 -&gt; application name %2 -&gt; version string</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -30,143 +34,240 @@
     </message>
     <message>
         <location filename="../qml/DonateDialog.qml" line="14"/>
-        <source>The %1 service is expensive to run. Because we don&apos;t want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
+        <source>The %1 service is expensive to run. Because we don't want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
 
 Do you want to donate now?</source>
         <extracomment>donate dialog %1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>FailDialog</name>
+    <message>
+        <location filename="../qml/FailDialog.qml" line="5"/>
+        <source>Initialization Error</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>LoginDialog</name>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="7"/>
+        <location filename="../qml/LoginDialog.qml" line="6"/>
         <source>Login</source>
         <translation>تسجيل الدخول </translation>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="11"/>
+        <location filename="../qml/LoginDialog.qml" line="35"/>
+        <source>Enter your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="37"/>
         <source>Log in with your library credentials</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="15"/>
+        <location filename="../qml/LoginDialog.qml" line="42"/>
+        <source>You can check your Patron ID number in the back of your library card</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="20"/>
         <source>patron id</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="19"/>
+        <location filename="../qml/LoginDialog.qml" line="24"/>
         <source>password</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>LoginOKDialog</name>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="7"/>
+        <source>Login Successful</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="11"/>
+        <source>Login successful. You can now start the VPN.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>main</name>
     <message>
-        <location filename="../qml/main.qml" line="25"/>
+        <location filename="../qml/main.qml" line="38"/>
         <source>Could not find helpers. Check your installation</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="27"/>
+        <location filename="../qml/main.qml" line="40"/>
         <source>Could not find polkit agent.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="55"/>
+        <source>Oops! The authentication service seems down. Please try again later</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../qml/main.qml" line="56"/>
+        <source>Service Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="62"/>
+        <source>Please check your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="64"/>
+        <source>Could not log in with those credentials, please retry</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="66"/>
+        <source>Login Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="70"/>
+        <source>Got an error starting %1: %2</source>
+        <extracomment>%1 -&gt; application name %2 -&gt; error string</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="104"/>
         <source>%1 off</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="59"/>
+        <location filename="../qml/main.qml" line="107"/>
         <source>%1 on</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="62"/>
+        <location filename="../qml/main.qml" line="110"/>
         <source>Connecting to %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="65"/>
+        <location filename="../qml/main.qml" line="113"/>
         <source>Stopping %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="68"/>
+        <location filename="../qml/main.qml" line="116"/>
         <source>%1 blocking internet</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="105"/>
-        <location filename="../qml/main.qml" line="151"/>
+        <location filename="../qml/main.qml" line="163"/>
+        <location filename="../qml/main.qml" line="211"/>
         <source>Checking status...</source>
         <translation>جارى التحقق من الوضع...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="158"/>
+        <location filename="../qml/main.qml" line="218"/>
         <source>Reconnect</source>
         <translation>إعادة الاتصال</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="160"/>
+        <location filename="../qml/main.qml" line="220"/>
         <source>Turn on</source>
         <translation>تشغيل</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="171"/>
+        <location filename="../qml/main.qml" line="231"/>
         <source>Cancel</source>
         <translation>إلغاء </translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="173"/>
+        <location filename="../qml/main.qml" line="233"/>
         <source>Turn off</source>
         <translation>إغلاق</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="184"/>
+        <location filename="../qml/main.qml" line="244"/>
         <source>Help...</source>
         <translation>المساعدة...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="189"/>
+        <location filename="../qml/main.qml" line="254"/>
         <source>Donate...</source>
         <translation>تبرع...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="195"/>
+        <location filename="../qml/main.qml" line="260"/>
         <source>About...</source>
         <translation>عن الخدمة...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="202"/>
+        <location filename="../qml/main.qml" line="267"/>
         <source>Quit</source>
         <translation>خروج</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="227"/>
+        <location filename="../qml/main.qml" line="297"/>
         <source>Error starting VPN</source>
         <translation>حدث خطأ فى تشغيل VPN</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="237"/>
+        <location filename="../qml/main.qml" line="307"/>
         <source>Missing authentication agent</source>
         <translation>أداة الدخول للحساب مفقودة</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="238"/>
+        <location filename="../qml/main.qml" line="308"/>
         <source>Could not find a polkit authentication agent. Please run one and try again.</source>
         <translation>لم يجد البرنامج أداة الدخول (polkit). من فضلك شغل واحدة وحاول ثانية.</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="246"/>
-        <source>Initialization Error</source>
-        <translation type="unfinished"></translation>
+        <location filename="../main.cpp" line="76"/>
+        <source>: a fast and secure VPN. Powered by Bitmask.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="83"/>
+        <source>Do not show the systray icon (useful together with gnome shell extension, or to control VPN by other means).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="90"/>
+        <source>Enable web api.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="96"/>
+        <source>Install helpers (linux only, requires sudo).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="102"/>
+        <source>Use obfs4 to obfuscate the traffic, if available in the provider.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="108"/>
+        <source>Disable autostart for the next run.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="113"/>
+        <source>Web api port (default: 8080)</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="115"/>
+        <source>Start the vpn, either &apos;on&apos; or &apos;off&apos;.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
-</TS>
+</TS>
\ No newline at end of file
diff --git a/gui/i18n/main_es.ts b/gui/i18n/main_es.ts
index 48e98ef04832d5feadd40b6b79f775e7e926aeaf..cedf6bffeeb0479cffbb20bae53c575d4ae1c778 100644
--- a/gui/i18n/main_es.ts
+++ b/gui/i18n/main_es.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="es">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="es" version="2.1">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -10,15 +8,21 @@
     </message>
     <message>
         <location filename="../qml/AboutDialog.qml" line="19"/>
-        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; &lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%3&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
-        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation URL %4 -&gt; TOS URL</extracomment>
-        <translation type="unfinished"></translation>
+        <source>&lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%1&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt;</source>
+        <extracomment>donation text of the about dialog %1 -&gt; donation URL</extracomment>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/AboutDialog.qml" line="29"/>
+        <location filename="../qml/AboutDialog.qml" line="26"/>
+        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; %3 &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
+        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation text if activated %4 -&gt; TOS URL</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/AboutDialog.qml" line="36"/>
         <source>%1 version: %2</source>
         <extracomment>%1 -&gt; application name %2 -&gt; version string</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -30,143 +34,240 @@
     </message>
     <message>
         <location filename="../qml/DonateDialog.qml" line="14"/>
-        <source>The %1 service is expensive to run. Because we don&apos;t want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
+        <source>The %1 service is expensive to run. Because we don't want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
 
 Do you want to donate now?</source>
         <extracomment>donate dialog %1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>FailDialog</name>
+    <message>
+        <location filename="../qml/FailDialog.qml" line="5"/>
+        <source>Initialization Error</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>LoginDialog</name>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="7"/>
+        <location filename="../qml/LoginDialog.qml" line="6"/>
         <source>Login</source>
         <translation>Acceder</translation>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="11"/>
+        <location filename="../qml/LoginDialog.qml" line="35"/>
+        <source>Enter your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="37"/>
         <source>Log in with your library credentials</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="15"/>
+        <location filename="../qml/LoginDialog.qml" line="42"/>
+        <source>You can check your Patron ID number in the back of your library card</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="20"/>
         <source>patron id</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="19"/>
+        <location filename="../qml/LoginDialog.qml" line="24"/>
         <source>password</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>LoginOKDialog</name>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="7"/>
+        <source>Login Successful</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="11"/>
+        <source>Login successful. You can now start the VPN.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>main</name>
     <message>
-        <location filename="../qml/main.qml" line="25"/>
+        <location filename="../qml/main.qml" line="38"/>
         <source>Could not find helpers. Check your installation</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="27"/>
+        <location filename="../qml/main.qml" line="40"/>
         <source>Could not find polkit agent.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="55"/>
+        <source>Oops! The authentication service seems down. Please try again later</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../qml/main.qml" line="56"/>
+        <source>Service Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="62"/>
+        <source>Please check your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="64"/>
+        <source>Could not log in with those credentials, please retry</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="66"/>
+        <source>Login Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="70"/>
+        <source>Got an error starting %1: %2</source>
+        <extracomment>%1 -&gt; application name %2 -&gt; error string</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="104"/>
         <source>%1 off</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="59"/>
+        <location filename="../qml/main.qml" line="107"/>
         <source>%1 on</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="62"/>
+        <location filename="../qml/main.qml" line="110"/>
         <source>Connecting to %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="65"/>
+        <location filename="../qml/main.qml" line="113"/>
         <source>Stopping %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="68"/>
+        <location filename="../qml/main.qml" line="116"/>
         <source>%1 blocking internet</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="105"/>
-        <location filename="../qml/main.qml" line="151"/>
+        <location filename="../qml/main.qml" line="163"/>
+        <location filename="../qml/main.qml" line="211"/>
         <source>Checking status...</source>
         <translation>Comprobando el estado...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="158"/>
+        <location filename="../qml/main.qml" line="218"/>
         <source>Reconnect</source>
         <translation>Volver a conectar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="160"/>
+        <location filename="../qml/main.qml" line="220"/>
         <source>Turn on</source>
         <translation>Encender</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="171"/>
+        <location filename="../qml/main.qml" line="231"/>
         <source>Cancel</source>
         <translation>Cancelar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="173"/>
+        <location filename="../qml/main.qml" line="233"/>
         <source>Turn off</source>
         <translation>Apagar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="184"/>
+        <location filename="../qml/main.qml" line="244"/>
         <source>Help...</source>
         <translation>Ayuda...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="189"/>
+        <location filename="../qml/main.qml" line="254"/>
         <source>Donate...</source>
         <translation>Dona...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="195"/>
+        <location filename="../qml/main.qml" line="260"/>
         <source>About...</source>
         <translation>Acerca de...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="202"/>
+        <location filename="../qml/main.qml" line="267"/>
         <source>Quit</source>
         <translation>Cerrar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="227"/>
+        <location filename="../qml/main.qml" line="297"/>
         <source>Error starting VPN</source>
         <translation>Error al iniciar la VPN</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="237"/>
+        <location filename="../qml/main.qml" line="307"/>
         <source>Missing authentication agent</source>
         <translation>Falta un agente de autenticación</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="238"/>
+        <location filename="../qml/main.qml" line="308"/>
         <source>Could not find a polkit authentication agent. Please run one and try again.</source>
         <translation>No se pudo encontrar ningún agente de autenticacion de polkit. Por favor lanza uno y prueba de nuevo.</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="246"/>
-        <source>Initialization Error</source>
-        <translation type="unfinished"></translation>
+        <location filename="../main.cpp" line="76"/>
+        <source>: a fast and secure VPN. Powered by Bitmask.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="83"/>
+        <source>Do not show the systray icon (useful together with gnome shell extension, or to control VPN by other means).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="90"/>
+        <source>Enable web api.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="96"/>
+        <source>Install helpers (linux only, requires sudo).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="102"/>
+        <source>Use obfs4 to obfuscate the traffic, if available in the provider.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="108"/>
+        <source>Disable autostart for the next run.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="113"/>
+        <source>Web api port (default: 8080)</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="115"/>
+        <source>Start the vpn, either &apos;on&apos; or &apos;off&apos;.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
-</TS>
+</TS>
\ No newline at end of file
diff --git a/gui/i18n/main_es_ES.ts b/gui/i18n/main_es_ES.ts
index 48ca2c2f069572ef8fe7afc933de924a5378edc4..027b1bb7aba61ebd6f6d1cd08e2363a238b01b76 100644
--- a/gui/i18n/main_es_ES.ts
+++ b/gui/i18n/main_es_ES.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="es_ES">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="es_ES" version="2.1">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -10,15 +8,21 @@
     </message>
     <message>
         <location filename="../qml/AboutDialog.qml" line="19"/>
-        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; &lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%3&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
-        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation URL %4 -&gt; TOS URL</extracomment>
-        <translation type="unfinished"></translation>
+        <source>&lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%1&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt;</source>
+        <extracomment>donation text of the about dialog %1 -&gt; donation URL</extracomment>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/AboutDialog.qml" line="29"/>
+        <location filename="../qml/AboutDialog.qml" line="26"/>
+        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; %3 &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
+        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation text if activated %4 -&gt; TOS URL</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/AboutDialog.qml" line="36"/>
         <source>%1 version: %2</source>
         <extracomment>%1 -&gt; application name %2 -&gt; version string</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -30,143 +34,240 @@
     </message>
     <message>
         <location filename="../qml/DonateDialog.qml" line="14"/>
-        <source>The %1 service is expensive to run. Because we don&apos;t want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
+        <source>The %1 service is expensive to run. Because we don't want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
 
 Do you want to donate now?</source>
         <extracomment>donate dialog %1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>FailDialog</name>
+    <message>
+        <location filename="../qml/FailDialog.qml" line="5"/>
+        <source>Initialization Error</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>LoginDialog</name>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="7"/>
+        <location filename="../qml/LoginDialog.qml" line="6"/>
         <source>Login</source>
         <translation>Iniciar Sesión</translation>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="11"/>
+        <location filename="../qml/LoginDialog.qml" line="35"/>
+        <source>Enter your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="37"/>
         <source>Log in with your library credentials</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="15"/>
+        <location filename="../qml/LoginDialog.qml" line="42"/>
+        <source>You can check your Patron ID number in the back of your library card</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="20"/>
         <source>patron id</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="19"/>
+        <location filename="../qml/LoginDialog.qml" line="24"/>
         <source>password</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>LoginOKDialog</name>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="7"/>
+        <source>Login Successful</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="11"/>
+        <source>Login successful. You can now start the VPN.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>main</name>
     <message>
-        <location filename="../qml/main.qml" line="25"/>
+        <location filename="../qml/main.qml" line="38"/>
         <source>Could not find helpers. Check your installation</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="27"/>
+        <location filename="../qml/main.qml" line="40"/>
         <source>Could not find polkit agent.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="55"/>
+        <source>Oops! The authentication service seems down. Please try again later</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../qml/main.qml" line="56"/>
+        <source>Service Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="62"/>
+        <source>Please check your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="64"/>
+        <source>Could not log in with those credentials, please retry</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="66"/>
+        <source>Login Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="70"/>
+        <source>Got an error starting %1: %2</source>
+        <extracomment>%1 -&gt; application name %2 -&gt; error string</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="104"/>
         <source>%1 off</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="59"/>
+        <location filename="../qml/main.qml" line="107"/>
         <source>%1 on</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="62"/>
+        <location filename="../qml/main.qml" line="110"/>
         <source>Connecting to %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="65"/>
+        <location filename="../qml/main.qml" line="113"/>
         <source>Stopping %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="68"/>
+        <location filename="../qml/main.qml" line="116"/>
         <source>%1 blocking internet</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="105"/>
-        <location filename="../qml/main.qml" line="151"/>
+        <location filename="../qml/main.qml" line="163"/>
+        <location filename="../qml/main.qml" line="211"/>
         <source>Checking status...</source>
         <translation>Comprobando estado...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="158"/>
+        <location filename="../qml/main.qml" line="218"/>
         <source>Reconnect</source>
         <translation>Reconectar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="160"/>
+        <location filename="../qml/main.qml" line="220"/>
         <source>Turn on</source>
         <translation>Activar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="171"/>
+        <location filename="../qml/main.qml" line="231"/>
         <source>Cancel</source>
         <translation>Cancelar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="173"/>
+        <location filename="../qml/main.qml" line="233"/>
         <source>Turn off</source>
         <translation>Desactivar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="184"/>
+        <location filename="../qml/main.qml" line="244"/>
         <source>Help...</source>
         <translation>Ayuda...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="189"/>
+        <location filename="../qml/main.qml" line="254"/>
         <source>Donate...</source>
         <translation>Donar...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="195"/>
+        <location filename="../qml/main.qml" line="260"/>
         <source>About...</source>
         <translation>Acerca de...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="202"/>
+        <location filename="../qml/main.qml" line="267"/>
         <source>Quit</source>
         <translation>Salir</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="227"/>
+        <location filename="../qml/main.qml" line="297"/>
         <source>Error starting VPN</source>
         <translation>Error iniciando VPN</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="237"/>
+        <location filename="../qml/main.qml" line="307"/>
         <source>Missing authentication agent</source>
-        <translation>Falta agente de autenticación</translation>
+        <translation>Falta agente de autentificación</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="238"/>
+        <location filename="../qml/main.qml" line="308"/>
         <source>Could not find a polkit authentication agent. Please run one and try again.</source>
-        <translation>No se pudo encontrar un agente de autenticación polkit. Por favor corre uno e intenta de nuevo.</translation>
+        <translation>No se pudo encontrar un agente de autentificación polkit. Por favor corre uno e intenta de nuevo.</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="246"/>
-        <source>Initialization Error</source>
-        <translation type="unfinished"></translation>
+        <location filename="../main.cpp" line="76"/>
+        <source>: a fast and secure VPN. Powered by Bitmask.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="83"/>
+        <source>Do not show the systray icon (useful together with gnome shell extension, or to control VPN by other means).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="90"/>
+        <source>Enable web api.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="96"/>
+        <source>Install helpers (linux only, requires sudo).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="102"/>
+        <source>Use obfs4 to obfuscate the traffic, if available in the provider.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="108"/>
+        <source>Disable autostart for the next run.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="113"/>
+        <source>Web api port (default: 8080)</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="115"/>
+        <source>Start the vpn, either &apos;on&apos; or &apos;off&apos;.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
-</TS>
+</TS>
\ No newline at end of file
diff --git a/gui/i18n/main_nl.ts b/gui/i18n/main_nl.ts
index 4709f71d49a825703932e4b2d9dd670d23d03ca7..99fef55a2c5098e35cf5651ba04e9f52101a2456 100644
--- a/gui/i18n/main_nl.ts
+++ b/gui/i18n/main_nl.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="nl">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="nl" version="2.1">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -10,15 +8,21 @@
     </message>
     <message>
         <location filename="../qml/AboutDialog.qml" line="19"/>
-        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; &lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%3&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
-        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation URL %4 -&gt; TOS URL</extracomment>
-        <translation type="unfinished"></translation>
+        <source>&lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%1&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt;</source>
+        <extracomment>donation text of the about dialog %1 -&gt; donation URL</extracomment>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/AboutDialog.qml" line="29"/>
+        <location filename="../qml/AboutDialog.qml" line="26"/>
+        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; %3 &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
+        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation text if activated %4 -&gt; TOS URL</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/AboutDialog.qml" line="36"/>
         <source>%1 version: %2</source>
         <extracomment>%1 -&gt; application name %2 -&gt; version string</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -30,143 +34,240 @@
     </message>
     <message>
         <location filename="../qml/DonateDialog.qml" line="14"/>
-        <source>The %1 service is expensive to run. Because we don&apos;t want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
+        <source>The %1 service is expensive to run. Because we don't want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
 
 Do you want to donate now?</source>
         <extracomment>donate dialog %1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>FailDialog</name>
+    <message>
+        <location filename="../qml/FailDialog.qml" line="5"/>
+        <source>Initialization Error</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>LoginDialog</name>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="7"/>
+        <location filename="../qml/LoginDialog.qml" line="6"/>
         <source>Login</source>
         <translation>Inloggen</translation>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="11"/>
+        <location filename="../qml/LoginDialog.qml" line="35"/>
+        <source>Enter your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="37"/>
         <source>Log in with your library credentials</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="15"/>
+        <location filename="../qml/LoginDialog.qml" line="42"/>
+        <source>You can check your Patron ID number in the back of your library card</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="20"/>
         <source>patron id</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="19"/>
+        <location filename="../qml/LoginDialog.qml" line="24"/>
         <source>password</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>LoginOKDialog</name>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="7"/>
+        <source>Login Successful</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="11"/>
+        <source>Login successful. You can now start the VPN.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>main</name>
     <message>
-        <location filename="../qml/main.qml" line="25"/>
+        <location filename="../qml/main.qml" line="38"/>
         <source>Could not find helpers. Check your installation</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="27"/>
+        <location filename="../qml/main.qml" line="40"/>
         <source>Could not find polkit agent.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="55"/>
+        <source>Oops! The authentication service seems down. Please try again later</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../qml/main.qml" line="56"/>
+        <source>Service Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="62"/>
+        <source>Please check your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="64"/>
+        <source>Could not log in with those credentials, please retry</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="66"/>
+        <source>Login Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="70"/>
+        <source>Got an error starting %1: %2</source>
+        <extracomment>%1 -&gt; application name %2 -&gt; error string</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="104"/>
         <source>%1 off</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="59"/>
+        <location filename="../qml/main.qml" line="107"/>
         <source>%1 on</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="62"/>
+        <location filename="../qml/main.qml" line="110"/>
         <source>Connecting to %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="65"/>
+        <location filename="../qml/main.qml" line="113"/>
         <source>Stopping %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="68"/>
+        <location filename="../qml/main.qml" line="116"/>
         <source>%1 blocking internet</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="105"/>
-        <location filename="../qml/main.qml" line="151"/>
+        <location filename="../qml/main.qml" line="163"/>
+        <location filename="../qml/main.qml" line="211"/>
         <source>Checking status...</source>
         <translation>Status controleren...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="158"/>
+        <location filename="../qml/main.qml" line="218"/>
         <source>Reconnect</source>
         <translation>Opnieuw verbinden</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="160"/>
+        <location filename="../qml/main.qml" line="220"/>
         <source>Turn on</source>
         <translation>Inschakelen</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="171"/>
+        <location filename="../qml/main.qml" line="231"/>
         <source>Cancel</source>
         <translation>Annuleren</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="173"/>
+        <location filename="../qml/main.qml" line="233"/>
         <source>Turn off</source>
         <translation>Uitschakelen</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="184"/>
+        <location filename="../qml/main.qml" line="244"/>
         <source>Help...</source>
         <translation>Hulp...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="189"/>
+        <location filename="../qml/main.qml" line="254"/>
         <source>Donate...</source>
         <translation>Doneren...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="195"/>
+        <location filename="../qml/main.qml" line="260"/>
         <source>About...</source>
         <translation>Over...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="202"/>
+        <location filename="../qml/main.qml" line="267"/>
         <source>Quit</source>
         <translation>Stoppen</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="227"/>
+        <location filename="../qml/main.qml" line="297"/>
         <source>Error starting VPN</source>
         <translation>Fout bij het opstarten van de VPN</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="237"/>
+        <location filename="../qml/main.qml" line="307"/>
         <source>Missing authentication agent</source>
         <translation>Authenticatieagent ontbreekt</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="238"/>
+        <location filename="../qml/main.qml" line="308"/>
         <source>Could not find a polkit authentication agent. Please run one and try again.</source>
         <translation>Kan geen polkit authenticatieagent vinden. Voer er een uit en probeer opnieuw.</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="246"/>
-        <source>Initialization Error</source>
-        <translation type="unfinished"></translation>
+        <location filename="../main.cpp" line="76"/>
+        <source>: a fast and secure VPN. Powered by Bitmask.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="83"/>
+        <source>Do not show the systray icon (useful together with gnome shell extension, or to control VPN by other means).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="90"/>
+        <source>Enable web api.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="96"/>
+        <source>Install helpers (linux only, requires sudo).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="102"/>
+        <source>Use obfs4 to obfuscate the traffic, if available in the provider.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="108"/>
+        <source>Disable autostart for the next run.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="113"/>
+        <source>Web api port (default: 8080)</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="115"/>
+        <source>Start the vpn, either &apos;on&apos; or &apos;off&apos;.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
-</TS>
+</TS>
\ No newline at end of file
diff --git a/gui/i18n/main_pl.ts b/gui/i18n/main_pl.ts
index 768b383238b683f45607b0f20ab79c201dbe12d4..2eb9881e89d57f06d11180dd5b40c21c5107fcc4 100644
--- a/gui/i18n/main_pl.ts
+++ b/gui/i18n/main_pl.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="pl">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="pl" version="2.1">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -10,15 +8,21 @@
     </message>
     <message>
         <location filename="../qml/AboutDialog.qml" line="19"/>
-        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; &lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%3&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
-        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation URL %4 -&gt; TOS URL</extracomment>
-        <translation type="unfinished"></translation>
+        <source>&lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%1&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt;</source>
+        <extracomment>donation text of the about dialog %1 -&gt; donation URL</extracomment>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/AboutDialog.qml" line="29"/>
+        <location filename="../qml/AboutDialog.qml" line="26"/>
+        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; %3 &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
+        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation text if activated %4 -&gt; TOS URL</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/AboutDialog.qml" line="36"/>
         <source>%1 version: %2</source>
         <extracomment>%1 -&gt; application name %2 -&gt; version string</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -30,143 +34,240 @@
     </message>
     <message>
         <location filename="../qml/DonateDialog.qml" line="14"/>
-        <source>The %1 service is expensive to run. Because we don&apos;t want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
+        <source>The %1 service is expensive to run. Because we don't want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
 
 Do you want to donate now?</source>
         <extracomment>donate dialog %1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>FailDialog</name>
+    <message>
+        <location filename="../qml/FailDialog.qml" line="5"/>
+        <source>Initialization Error</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>LoginDialog</name>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="7"/>
+        <location filename="../qml/LoginDialog.qml" line="6"/>
         <source>Login</source>
         <translation>Login</translation>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="11"/>
+        <location filename="../qml/LoginDialog.qml" line="35"/>
+        <source>Enter your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="37"/>
         <source>Log in with your library credentials</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="15"/>
+        <location filename="../qml/LoginDialog.qml" line="42"/>
+        <source>You can check your Patron ID number in the back of your library card</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="20"/>
         <source>patron id</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="19"/>
+        <location filename="../qml/LoginDialog.qml" line="24"/>
         <source>password</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>LoginOKDialog</name>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="7"/>
+        <source>Login Successful</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="11"/>
+        <source>Login successful. You can now start the VPN.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>main</name>
     <message>
-        <location filename="../qml/main.qml" line="25"/>
+        <location filename="../qml/main.qml" line="38"/>
         <source>Could not find helpers. Check your installation</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="27"/>
+        <location filename="../qml/main.qml" line="40"/>
         <source>Could not find polkit agent.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="55"/>
+        <source>Oops! The authentication service seems down. Please try again later</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../qml/main.qml" line="56"/>
+        <source>Service Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="62"/>
+        <source>Please check your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="64"/>
+        <source>Could not log in with those credentials, please retry</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="66"/>
+        <source>Login Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="70"/>
+        <source>Got an error starting %1: %2</source>
+        <extracomment>%1 -&gt; application name %2 -&gt; error string</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="104"/>
         <source>%1 off</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="59"/>
+        <location filename="../qml/main.qml" line="107"/>
         <source>%1 on</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="62"/>
+        <location filename="../qml/main.qml" line="110"/>
         <source>Connecting to %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="65"/>
+        <location filename="../qml/main.qml" line="113"/>
         <source>Stopping %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="68"/>
+        <location filename="../qml/main.qml" line="116"/>
         <source>%1 blocking internet</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="105"/>
-        <location filename="../qml/main.qml" line="151"/>
+        <location filename="../qml/main.qml" line="163"/>
+        <location filename="../qml/main.qml" line="211"/>
         <source>Checking status...</source>
         <translation>Sprawdzanie statusu</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="158"/>
+        <location filename="../qml/main.qml" line="218"/>
         <source>Reconnect</source>
         <translation>Połącz ponownie</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="160"/>
+        <location filename="../qml/main.qml" line="220"/>
         <source>Turn on</source>
         <translation>WÅ‚Ä…cz</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="171"/>
+        <location filename="../qml/main.qml" line="231"/>
         <source>Cancel</source>
         <translation>Anuluj</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="173"/>
+        <location filename="../qml/main.qml" line="233"/>
         <source>Turn off</source>
         <translation>Wyłącz</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="184"/>
+        <location filename="../qml/main.qml" line="244"/>
         <source>Help...</source>
         <translation>Pomoc...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="189"/>
+        <location filename="../qml/main.qml" line="254"/>
         <source>Donate...</source>
         <translation>Wesprzyj...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="195"/>
+        <location filename="../qml/main.qml" line="260"/>
         <source>About...</source>
         <translation>O programie...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="202"/>
+        <location filename="../qml/main.qml" line="267"/>
         <source>Quit</source>
         <translation>Zamknij</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="227"/>
+        <location filename="../qml/main.qml" line="297"/>
         <source>Error starting VPN</source>
         <translation>BÅ‚Ä…d przy uruchamianiu VPN&apos;a</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="237"/>
+        <location filename="../qml/main.qml" line="307"/>
         <source>Missing authentication agent</source>
         <translation>BrakujÄ…cy agent autoryzacji</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="238"/>
+        <location filename="../qml/main.qml" line="308"/>
         <source>Could not find a polkit authentication agent. Please run one and try again.</source>
         <translation>Nie znaleziono agenta autentykacji polkit. Proszę uruchom go i spróbuj ponownie.</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="246"/>
-        <source>Initialization Error</source>
-        <translation type="unfinished"></translation>
+        <location filename="../main.cpp" line="76"/>
+        <source>: a fast and secure VPN. Powered by Bitmask.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="83"/>
+        <source>Do not show the systray icon (useful together with gnome shell extension, or to control VPN by other means).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="90"/>
+        <source>Enable web api.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="96"/>
+        <source>Install helpers (linux only, requires sudo).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="102"/>
+        <source>Use obfs4 to obfuscate the traffic, if available in the provider.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="108"/>
+        <source>Disable autostart for the next run.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="113"/>
+        <source>Web api port (default: 8080)</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="115"/>
+        <source>Start the vpn, either &apos;on&apos; or &apos;off&apos;.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
-</TS>
+</TS>
\ No newline at end of file
diff --git a/gui/i18n/main_pt_BR.ts b/gui/i18n/main_pt_BR.ts
index ad04d47c182e8c5d82008805710ea20832c218d0..69bdcfe783a50079d38c40f22c0f2df2568482c5 100644
--- a/gui/i18n/main_pt_BR.ts
+++ b/gui/i18n/main_pt_BR.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="pt_BR">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="pt_BR" version="2.1">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -10,15 +8,21 @@
     </message>
     <message>
         <location filename="../qml/AboutDialog.qml" line="19"/>
-        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; &lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%3&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
-        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation URL %4 -&gt; TOS URL</extracomment>
-        <translation type="unfinished"></translation>
+        <source>&lt;p&gt;This service is paid for entirely by donations from users like you. &lt;a href=&quot;%1&quot;&gt;Please donate&lt;/a&gt;.&lt;/p&gt;</source>
+        <extracomment>donation text of the about dialog %1 -&gt; donation URL</extracomment>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/AboutDialog.qml" line="29"/>
+        <location filename="../qml/AboutDialog.qml" line="26"/>
+        <source>&lt;p&gt;%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.&lt;/p&gt; %3 &lt;p&gt;By using this application, you agree to the &lt;a href=&quot;%4&quot;&gt;Terms of Service&lt;/a&gt;. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.&lt;/p&gt;</source>
+        <extracomment>about dialog %1 -&gt; application name %2 -&gt; provider name %3 -&gt; donation text if activated %4 -&gt; TOS URL</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/AboutDialog.qml" line="36"/>
         <source>%1 version: %2</source>
         <extracomment>%1 -&gt; application name %2 -&gt; version string</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
@@ -30,143 +34,240 @@
     </message>
     <message>
         <location filename="../qml/DonateDialog.qml" line="14"/>
-        <source>The %1 service is expensive to run. Because we don&apos;t want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
+        <source>The %1 service is expensive to run. Because we don't want to store personal information about you, there are no accounts or billing for this service. But if you want the service to continue, donate at least $5 each month.
 
 Do you want to donate now?</source>
         <extracomment>donate dialog %1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>FailDialog</name>
+    <message>
+        <location filename="../qml/FailDialog.qml" line="5"/>
+        <source>Initialization Error</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>LoginDialog</name>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="7"/>
+        <location filename="../qml/LoginDialog.qml" line="6"/>
         <source>Login</source>
         <translation>Conectar</translation>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="11"/>
+        <location filename="../qml/LoginDialog.qml" line="35"/>
+        <source>Enter your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="37"/>
         <source>Log in with your library credentials</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="15"/>
+        <location filename="../qml/LoginDialog.qml" line="42"/>
+        <source>You can check your Patron ID number in the back of your library card</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginDialog.qml" line="20"/>
         <source>patron id</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/LoginDialog.qml" line="19"/>
+        <location filename="../qml/LoginDialog.qml" line="24"/>
         <source>password</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+</context>
+<context>
+    <name>LoginOKDialog</name>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="7"/>
+        <source>Login Successful</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/LoginOKDialog.qml" line="11"/>
+        <source>Login successful. You can now start the VPN.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
 <context>
     <name>main</name>
     <message>
-        <location filename="../qml/main.qml" line="25"/>
+        <location filename="../qml/main.qml" line="38"/>
         <source>Could not find helpers. Check your installation</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="27"/>
+        <location filename="../qml/main.qml" line="40"/>
         <source>Could not find polkit agent.</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="55"/>
+        <source>Oops! The authentication service seems down. Please try again later</source>
+        <translation type="unfinished"/>
     </message>
     <message>
         <location filename="../qml/main.qml" line="56"/>
+        <source>Service Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="62"/>
+        <source>Please check your Patron ID</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="64"/>
+        <source>Could not log in with those credentials, please retry</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="66"/>
+        <source>Login Error</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="70"/>
+        <source>Got an error starting %1: %2</source>
+        <extracomment>%1 -&gt; application name %2 -&gt; error string</extracomment>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../qml/main.qml" line="104"/>
         <source>%1 off</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="59"/>
+        <location filename="../qml/main.qml" line="107"/>
         <source>%1 on</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="62"/>
+        <location filename="../qml/main.qml" line="110"/>
         <source>Connecting to %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="65"/>
+        <location filename="../qml/main.qml" line="113"/>
         <source>Stopping %1</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="68"/>
+        <location filename="../qml/main.qml" line="116"/>
         <source>%1 blocking internet</source>
         <extracomment>%1 -&gt; application name</extracomment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"/>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="105"/>
-        <location filename="../qml/main.qml" line="151"/>
+        <location filename="../qml/main.qml" line="163"/>
+        <location filename="../qml/main.qml" line="211"/>
         <source>Checking status...</source>
         <translation>Verificando estado...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="158"/>
+        <location filename="../qml/main.qml" line="218"/>
         <source>Reconnect</source>
         <translation>Reconectar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="160"/>
+        <location filename="../qml/main.qml" line="220"/>
         <source>Turn on</source>
         <translation>Ligar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="171"/>
+        <location filename="../qml/main.qml" line="231"/>
         <source>Cancel</source>
         <translation>Cancelar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="173"/>
+        <location filename="../qml/main.qml" line="233"/>
         <source>Turn off</source>
         <translation>Desligar</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="184"/>
+        <location filename="../qml/main.qml" line="244"/>
         <source>Help...</source>
         <translation>Ajuda...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="189"/>
+        <location filename="../qml/main.qml" line="254"/>
         <source>Donate...</source>
         <translation>Fazer uma doação...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="195"/>
+        <location filename="../qml/main.qml" line="260"/>
         <source>About...</source>
         <translation>Sobre...</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="202"/>
+        <location filename="../qml/main.qml" line="267"/>
         <source>Quit</source>
         <translation>Sair</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="227"/>
+        <location filename="../qml/main.qml" line="297"/>
         <source>Error starting VPN</source>
         <translation>Erro ao iniciar a VPN</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="237"/>
+        <location filename="../qml/main.qml" line="307"/>
         <source>Missing authentication agent</source>
         <translation>Um agente de autenticação está faltando</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="238"/>
+        <location filename="../qml/main.qml" line="308"/>
         <source>Could not find a polkit authentication agent. Please run one and try again.</source>
         <translation>Não foi possível encontrar um agente de autenticação polkit. Por favor, execute um agente e tente novamente.</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="246"/>
-        <source>Initialization Error</source>
-        <translation type="unfinished"></translation>
+        <location filename="../main.cpp" line="76"/>
+        <source>: a fast and secure VPN. Powered by Bitmask.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="83"/>
+        <source>Do not show the systray icon (useful together with gnome shell extension, or to control VPN by other means).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="90"/>
+        <source>Enable web api.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="96"/>
+        <source>Install helpers (linux only, requires sudo).</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="102"/>
+        <source>Use obfs4 to obfuscate the traffic, if available in the provider.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="108"/>
+        <source>Disable autostart for the next run.</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="113"/>
+        <source>Web api port (default: 8080)</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="115"/>
+        <source>Start the vpn, either &apos;on&apos; or &apos;off&apos;.</source>
+        <translation type="unfinished"/>
     </message>
 </context>
-</TS>
+</TS>
\ No newline at end of file