diff --git a/cmd/bitmask-vpn/catalog.go b/cmd/bitmask-vpn/catalog.go
index aaa3a29598312c00cb53e4b220b767cd39ecddca..1f41f776845fafc1364974b8f7374179d8b84f64 100644
--- a/cmd/bitmask-vpn/catalog.go
+++ b/cmd/bitmask-vpn/catalog.go
@@ -48,6 +48,7 @@ func init() {
 		"ru":    &dictionary{index: ruIndex, data: ruData},
 		"sk":    &dictionary{index: skIndex, data: skData},
 		"sv":    &dictionary{index: svIndex, data: svData},
+		"tr":    &dictionary{index: trIndex, data: trData},
 		"ug":    &dictionary{index: ugIndex, data: ugData},
 		"zh":    &dictionary{index: zhIndex, data: zhData},
 		"zh_TW": &dictionary{index: zh_TWIndex, data: zh_TWData},
@@ -731,34 +732,36 @@ const pt_PTData string = "" + // Size: 1196 bytes
 
 var roIndex = []uint32{ // 27 elements
 	0x00000000, 0x00000030, 0x00000147, 0x00000150,
-	0x0000031f, 0x00000326, 0x0000033e, 0x00000394,
-	0x000003b7, 0x000003db, 0x000003f2, 0x00000406,
-	0x00000411, 0x0000041c, 0x00000426, 0x00000432,
-	0x0000043c, 0x00000447, 0x0000045e, 0x00000480,
-	0x00000491, 0x000004a2, 0x000004aa, 0x000004bd,
-	0x000004ca, 0x000004d6, 0x000004fb,
+	0x00000393, 0x0000039a, 0x000003b2, 0x00000408,
+	0x0000042b, 0x0000044f, 0x00000466, 0x0000047a,
+	0x00000485, 0x00000490, 0x0000049a, 0x000004a6,
+	0x000004b0, 0x000004bb, 0x000004d2, 0x000004f4,
+	0x00000505, 0x00000516, 0x0000051e, 0x00000531,
+	0x0000053e, 0x0000054a, 0x0000056f,
 } // Size: 132 bytes
 
-const roData string = "" + // Size: 1275 bytes
+const roData string = "" + // Size: 1391 bytes
 	"\x02A apărut o eroare la inițializarea VPN: %[1]v\x02Serviciul %[1]s est" +
 	"e scump pentru a rula. Deoarece nu dorim să stocăm informații personale " +
 	"despre dvs., nu există conturi sau facturare pentru acest serviciu. Dar " +
 	"dacă doriți ca serviciul să continue, donați cel puțin 5 USD în fiecare " +
-	"lună.\x0a\x09\x0aVreți să donați acum?\x02Donație\x02%[1]s is an easy, f" +
-	"ast, and secure VPN service from %[2]s. %[1]s does not require a user ac" +
-	"count, keep logs, or track you in any way.\x0a\x09    \x0aThis service i" +
-	"s paid for entirely by donations from users like you. Please donate at %" +
-	"[3]s.\x0a\x09\x09\x0aBy using this application, you agree to the Terms o" +
-	"f Service available at %[4]s. This service is provided as-is, without an" +
-	"y warranty, and is intended for people who work to make the world a bett" +
-	"er place.\x0a\x0a\x0a%[1]v version: %[5]s\x02Despre\x02Eroare de inițial" +
-	"izare\x02Nu am găsit un agent de autentificare polkit. Porniți unul și î" +
-	"ncercați din nou.\x02Lipsește agentul de autentificare\x02Nu se poate co" +
-	"necta la %[1]s: %[2]v\x02Eroare la pornirea VPN\x02Verificare stare..." +
-	"\x02Deschidere\x02Închidere\x02Ajutor...\x02Donație...\x02Despre...\x02Î" +
-	"nchidere\x02Route traffic through:\x02Utilizați gateway-ul %[1]s %[2]v" +
-	"\x02Am deschis %[1]s\x02Am închis %[1]s\x02Anulare\x02Conectare la %[1]s" +
-	"\x02Oprire %[1]s\x02Reconectare\x02%[1]s blochează accesul la internet"
+	"lună.\x0a\x09\x0aVreți să donați acum?\x02Donație\x02%[1]s este un servi" +
+	"ciu VPN ușor, rapid și sigur de la %[2]s. %[1]s nu necesită un cont de u" +
+	"tilizator, nu păstrează jurnalele și nu vă urmărește în niciun fel.\x0a" +
+	"\x09    \x0aAcest serviciu este plătit în întregime prin donații de la u" +
+	"tilizatori cum sunteți dvs. Vă rugăm să donați la %[3]s.\x0a\x09\x09\x0a" +
+	"Prin utilizarea acestei aplicații, sunteți de acord cu Termenii și condi" +
+	"țiile disponibile la %[4]s. Acest serviciu este oferit așa cum este, fă" +
+	"ră nicio garanție și este destinat persoanelor care lucrează pentru a fa" +
+	"ce lumea un loc mai bun.\x0a\x0a\x0a%[1]v versiunea: %[5]s\x02Despre\x02" +
+	"Eroare de inițializare\x02Nu am găsit un agent de autentificare polkit. " +
+	"Porniți unul și încercați din nou.\x02Lipsește agentul de autentificare" +
+	"\x02Nu se poate conecta la %[1]s: %[2]v\x02Eroare la pornirea VPN\x02Ver" +
+	"ificare stare...\x02Deschidere\x02Închidere\x02Ajutor...\x02Donație..." +
+	"\x02Despre...\x02Închidere\x02Traficul rutelor prin:\x02Utilizați gatewa" +
+	"y-ul %[1]s %[2]v\x02Am deschis %[1]s\x02Am închis %[1]s\x02Anulare\x02Co" +
+	"nectare la %[1]s\x02Oprire %[1]s\x02Reconectare\x02%[1]s blochează acces" +
+	"ul la internet"
 
 var ruIndex = []uint32{ // 27 elements
 	0x00000000, 0x0000004d, 0x00000250, 0x0000027a,
@@ -857,6 +860,38 @@ const svData string = "" + // Size: 1298 bytes
 	"s %[2]v gateway\x02%[1]s startad\x02%[1]s stoppad\x02Avbryt\x02Ansluter " +
 	"till %[1]s\x02Stoppar %[1]s\x02Återanslut\x02%[1]s blockerar internet"
 
+var trIndex = []uint32{ // 27 elements
+	0x00000000, 0x0000002d, 0x0000014a, 0x00000157,
+	0x00000393, 0x0000039d, 0x000003af, 0x0000040d,
+	0x00000433, 0x0000045d, 0x00000473, 0x00000485,
+	0x00000489, 0x0000048f, 0x0000049a, 0x000004aa,
+	0x000004b7, 0x000004c1, 0x000004e8, 0x00000505,
+	0x00000512, 0x00000520, 0x00000527, 0x00000548,
+	0x0000055b, 0x0000056b, 0x00000586,
+} // Size: 132 bytes
+
+const trData string = "" + // Size: 1414 bytes
+	"\x02VPN başlatılırken bir hata oluştu: %[1]v\x02%[1]s hizmetini çalıştır" +
+	"mak pahalıdır. Sizin hakkınızda kişisel bilgi saklamak istemediğimiz içi" +
+	"n, bu hizmete ilişkin hesaplar veya fatura yok. Ancak hizmetin sürmesini" +
+	" istiyorsanız, her ay en azından 5$ bağış yapmalısınız.\x0a\x09\x0aŞimdi" +
+	" bağış yapmak ister misiniz?\x02Bağış Yap\x02%[1]s, %[2]s tarafından sağ" +
+	"lanan kolay, hızlı ve güvenli bir VPN hizmetidir. %[1]s kullanıcı hesabı" +
+	" gerektirmez, kayıt tutmaz veya sizi hiç bir şekilde izlemez. \x0a\x09" +
+	"\x0aBu hizmetin ücreti sizin gibi kullanıcıların bağışlarıyla ödeniyor. " +
+	"Lütfen %[3]s bağlantısıyla bağış yapın.\x0a\x09\x09\x0aBu uygulamayı kul" +
+	"lanarak, %[4]s adresindeki Hizmet Kullanım Şartlarını kabul etmiş olursu" +
+	"nuz. Bu hizmet olduğu gibi, herhangi bir garanti olmadan sunulmaktadır v" +
+	"e dünyayı daha iyi bir yer kılmak için çalışan insanlara yöneliktir.\x0a" +
+	"\x0a\x0a%[1]v sürüm: %[5]s\x02Hakkında\x02Başlatma hatası\x02Bir polkit " +
+	"kimlik doğrulama vekili bulunamıyor. Bir tane çalıştırın ve tekrar deney" +
+	"in.\x02Kimlik doğrulama vekili bulunamıyor\x02%[1]s uygulamasına bağlana" +
+	"mıyor: %[2]v\x02VPN başlatma hatası\x02Durum denetimi...\x02Aç\x02Kapat" +
+	"\x02Yardım...\x02Bağış yap...\x02Hakkında...\x02Çıkış\x02Trafiği şunun ü" +
+	"zerinden yönlendir:\x02%[1]s %[2]v geçidini kullan\x02%[1]s açık\x02%[1]" +
+	"s kapalı\x02İptal\x02%[1]s uygulamasına bağlanıyor\x02%[1]s durduruluyor" +
+	"\x02Yeniden bağlan\x02%[1]s interneti engelliyor"
+
 var ugIndex = []uint32{ // 27 elements
 	0x00000000, 0x00000058, 0x00000266, 0x00000273,
 	0x00000652, 0x00000661, 0x00000693, 0x00000706,
@@ -939,4 +974,4 @@ const zh_TWData string = "" + // Size: 1182 bytes
 	"捐獻...\x02關於...\x02退出\x02流量將會通過路由:\x02使用 %[1]s %[2]v 閘道\x02%[1]s 開啟\x02" +
 	"%[1]s 關閉\x02取消\x02正在連線到 %[1]s\x02正在停止 %[1]s\x02重新連線\x02%[1]s 正在封鎖網際網路"
 
-	// Total table size 44924 bytes (43KiB); checksum: A7DC7BE4
+	// Total table size 46586 bytes (45KiB); checksum: 6D4C7E6A
diff --git a/locales/en/messages.gotext.json b/locales/en/messages.gotext.json
index 24552e9399668a505bffbd2d3acb7466757f8886..c33a31a3556cf65442f2dbd35f4e69624945bb18 100644
--- a/locales/en/messages.gotext.json
+++ b/locales/en/messages.gotext.json
@@ -1,6 +1,25 @@
 {
     "language": "en",
     "messages": [
+        {
+            "id": [
+                "errorMsg",
+                "An error has ocurred initializing the VPN: {Err}"
+            ],
+            "message": "An error has ocurred initializing the VPN: {Err}",
+            "translation": "An error has ocurred initializing the VPN: {Err}",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Err",
+                    "string": "%[1]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 1,
+                    "expr": "err"
+                }
+            ]
+        },
         {
             "id": [
                 "donationText",
@@ -311,25 +330,6 @@
                     "expr": "config.ApplicationName"
                 }
             ]
-        },
-        {
-            "id": [
-                "errorMsg",
-                "An error has ocurred initializing the VPN: {Err}"
-            ],
-            "message": "An error has ocurred initializing the VPN: {Err}",
-            "translation": "An error has ocurred initializing the VPN: {Err}",
-            "translatorComment": "Copied from source.",
-            "placeholders": [
-                {
-                    "id": "Err",
-                    "string": "%[1]v",
-                    "type": "error",
-                    "underlyingType": "interface{Error() string}",
-                    "argNum": 1,
-                    "expr": "err"
-                }
-            ]
         }
     ]
 }
diff --git a/locales/hu/messages.gotext.json b/locales/hu/messages.gotext.json
index 1fe21f9bada4402760e76dce98fffe0db7e4b90f..959d659362e027d4e4389fec80210c902b603fb1 100644
--- a/locales/hu/messages.gotext.json
+++ b/locales/hu/messages.gotext.json
@@ -1,6 +1,24 @@
 {
     "language": "hu",
     "messages": [
+        {
+            "id": [
+                "errorMsg",
+                "An error has ocurred initializing the VPN: {Err}"
+            ],
+            "message": "An error has ocurred initializing the VPN: {Err}",
+            "translation": "Hiba történt a VPN inicializálásánál: {Err}",
+            "placeholders": [
+                {
+                    "id": "Err",
+                    "string": "%[1]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 1,
+                    "expr": "err"
+                }
+            ]
+        },
         {
             "id": [
                 "donationText",
@@ -291,24 +309,6 @@
                     "expr": "config.ApplicationName"
                 }
             ]
-        },
-        {
-            "id": [
-                "errorMsg",
-                "An error has ocurred initializing the VPN: {Err}"
-            ],
-            "message": "An error has ocurred initializing the VPN: {Err}",
-            "translation": "Hiba történt a VPN inicializálásánál: {Err}",
-            "placeholders": [
-                {
-                    "id": "Err",
-                    "string": "%[1]v",
-                    "type": "error",
-                    "underlyingType": "interface{Error() string}",
-                    "argNum": 1,
-                    "expr": "err"
-                }
-            ]
         }
     ]
 }
diff --git a/locales/pl/messages.gotext.json b/locales/pl/messages.gotext.json
index bc15181331d5d3c3b65489fc3c44ebc93372818c..2e450732d72219052aafdfba1a8abd36ca128931 100644
--- a/locales/pl/messages.gotext.json
+++ b/locales/pl/messages.gotext.json
@@ -1,6 +1,24 @@
 {
     "language": "pl",
     "messages": [
+        {
+            "id": [
+                "errorMsg",
+                "An error has ocurred initializing the VPN: {Err}"
+            ],
+            "message": "An error has ocurred initializing the VPN: {Err}",
+            "translation": "Powstał błąd podczas inicjowania VPN'a: {Err}",
+            "placeholders": [
+                {
+                    "id": "Err",
+                    "string": "%[1]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 1,
+                    "expr": "err"
+                }
+            ]
+        },
         {
             "id": [
                 "donationText",
@@ -291,24 +309,6 @@
                     "expr": "config.ApplicationName"
                 }
             ]
-        },
-        {
-            "id": [
-                "errorMsg",
-                "An error has ocurred initializing the VPN: {Err}"
-            ],
-            "message": "An error has ocurred initializing the VPN: {Err}",
-            "translation": "Powstał błąd podczas inicjowania VPN'a: {Err}",
-            "placeholders": [
-                {
-                    "id": "Err",
-                    "string": "%[1]v",
-                    "type": "error",
-                    "underlyingType": "interface{Error() string}",
-                    "argNum": 1,
-                    "expr": "err"
-                }
-            ]
         }
     ]
 }
diff --git a/locales/pt-PT/messages.gotext.json b/locales/pt-PT/messages.gotext.json
index 64581742012a4ee54a09a61d34d4764be4ded3b1..6aed8cfad63cc2d329995a55875559d171dd6a7c 100644
--- a/locales/pt-PT/messages.gotext.json
+++ b/locales/pt-PT/messages.gotext.json
@@ -1,6 +1,24 @@
 {
     "language": "pt-PT",
     "messages": [
+        {
+            "id": [
+                "errorMsg",
+                "An error has ocurred initializing the VPN: {Err}"
+            ],
+            "message": "An error has ocurred initializing the VPN: {Err}",
+            "translation": "Ocorreu um erro ao inicializar a VPN: {Err}",
+            "placeholders": [
+                {
+                    "id": "Err",
+                    "string": "%[1]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 1,
+                    "expr": "err"
+                }
+            ]
+        },
         {
             "id": [
                 "donationText",
@@ -291,24 +309,6 @@
                     "expr": "config.ApplicationName"
                 }
             ]
-        },
-        {
-            "id": [
-                "errorMsg",
-                "An error has ocurred initializing the VPN: {Err}"
-            ],
-            "message": "An error has ocurred initializing the VPN: {Err}",
-            "translation": "Ocorreu um erro ao inicializar a VPN: {Err}",
-            "placeholders": [
-                {
-                    "id": "Err",
-                    "string": "%[1]v",
-                    "type": "error",
-                    "underlyingType": "interface{Error() string}",
-                    "argNum": 1,
-                    "expr": "err"
-                }
-            ]
         }
     ]
 }
diff --git a/locales/ro/messages.gotext.json b/locales/ro/messages.gotext.json
index c100337eedddd4942fd8931c46ed6926c47208cb..600d630bd289a3055cab4149c3a72a4519a74239 100644
--- a/locales/ro/messages.gotext.json
+++ b/locales/ro/messages.gotext.json
@@ -1,6 +1,25 @@
 {
     "language": "ro",
     "messages": [
+        {
+            "id": [
+                "errorMsg",
+                "An error has ocurred initializing the VPN: {Err}"
+            ],
+            "message": "An error has ocurred initializing the VPN: {Err}",
+            "translation": "A apărut o eroare la inițializarea VPN: {Err}",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Err",
+                    "string": "%[1]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 1,
+                    "expr": "err"
+                }
+            ]
+        },
         {
             "id": [
                 "donationText",
@@ -32,7 +51,7 @@
                 "{ApplicationName} is an easy, fast, and secure VPN service from {Provider}. {ApplicationName} does not require a user account, keep logs, or track you in any way.\n\t    \nThis service is paid for entirely by donations from users like you. Please donate at {DonateURL}.\n\t\t\nBy using this application, you agree to the Terms of Service available at {TosURL}. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.\n\n\n{ApplicationName_1} version: {Version}"
             ],
             "message": "{ApplicationName} is an easy, fast, and secure VPN service from {Provider}. {ApplicationName} does not require a user account, keep logs, or track you in any way.\n\t    \nThis service is paid for entirely by donations from users like you. Please donate at {DonateURL}.\n\t\t\nBy using this application, you agree to the Terms of Service available at {TosURL}. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.\n\n\n{ApplicationName_1} version: {Version}",
-            "translation": "{ApplicationName} is an easy, fast, and secure VPN service from {Provider}. {ApplicationName} does not require a user account, keep logs, or track you in any way.\n\t    \nThis service is paid for entirely by donations from users like you. Please donate at {DonateURL}.\n\t\t\nBy using this application, you agree to the Terms of Service available at {TosURL}. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.\n\n\n{ApplicationName_1} version: {Version}",
+            "translation": "{ApplicationName} este un serviciu VPN ușor, rapid și sigur de la {Provider}. {ApplicationName} nu necesită un cont de utilizator, nu păstrează jurnalele și nu vă urmărește în niciun fel.\n\t    \nAcest serviciu este plătit în întregime prin donații de la utilizatori cum sunteți dvs. Vă rugăm să donați la {DonateURL}.\n\t\t\nPrin utilizarea acestei aplicații, sunteți de acord cu Termenii și condițiile disponibile la {TosURL}. Acest serviciu este oferit așa cum este, fără nicio garanție și este destinat persoanelor care lucrează pentru a face lumea un loc mai bun.\n\n\n{ApplicationName_1} versiunea: {Version}",
             "translatorComment": "Copied from source.",
             "placeholders": [
                 {
@@ -194,7 +213,7 @@
         {
             "id": "Route traffic through:",
             "message": "Route traffic through:",
-            "translation": "Route traffic through:"
+            "translation": "Traficul rutelor prin:"
         },
         {
             "id": "Use {ApplicationName} {City} gateway",
@@ -310,25 +329,6 @@
                     "expr": "config.ApplicationName"
                 }
             ]
-        },
-        {
-            "id": [
-                "errorMsg",
-                "An error has ocurred initializing the VPN: {Err}"
-            ],
-            "message": "An error has ocurred initializing the VPN: {Err}",
-            "translation": "A apărut o eroare la inițializarea VPN: {Err}",
-            "translatorComment": "Copied from source.",
-            "placeholders": [
-                {
-                    "id": "Err",
-                    "string": "%[1]v",
-                    "type": "error",
-                    "underlyingType": "interface{Error() string}",
-                    "argNum": 1,
-                    "expr": "err"
-                }
-            ]
         }
     ]
 }
diff --git a/locales/sk/messages.gotext.json b/locales/sk/messages.gotext.json
index 4843ba4073fdf3ae45142d0e72b11ecfcdb1af00..18d01e1e0784e326411726dab9fa850da5157058 100644
--- a/locales/sk/messages.gotext.json
+++ b/locales/sk/messages.gotext.json
@@ -1,6 +1,24 @@
 {
     "language": "sk",
     "messages": [
+        {
+            "id": [
+                "errorMsg",
+                "An error has ocurred initializing the VPN: {Err}"
+            ],
+            "message": "An error has ocurred initializing the VPN: {Err}",
+            "translation": "Pri spustení VPN nastala chyba: {Err}",
+            "placeholders": [
+                {
+                    "id": "Err",
+                    "string": "%[1]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 1,
+                    "expr": "err"
+                }
+            ]
+        },
         {
             "id": [
                 "donationText",
@@ -291,24 +309,6 @@
                     "expr": "config.ApplicationName"
                 }
             ]
-        },
-        {
-            "id": [
-                "errorMsg",
-                "An error has ocurred initializing the VPN: {Err}"
-            ],
-            "message": "An error has ocurred initializing the VPN: {Err}",
-            "translation": "Pri spustení VPN nastala chyba: {Err}",
-            "placeholders": [
-                {
-                    "id": "Err",
-                    "string": "%[1]v",
-                    "type": "error",
-                    "underlyingType": "interface{Error() string}",
-                    "argNum": 1,
-                    "expr": "err"
-                }
-            ]
         }
     ]
 }
diff --git a/locales/tr/messages.gotext.json b/locales/tr/messages.gotext.json
new file mode 100644
index 0000000000000000000000000000000000000000..86f3474ac20a3d146dcf0af261c88466ec1915dd
--- /dev/null
+++ b/locales/tr/messages.gotext.json
@@ -0,0 +1,314 @@
+{
+    "language": "tr",
+    "messages": [
+        {
+            "id": [
+                "errorMsg",
+                "An error has ocurred initializing the VPN: {Err}"
+            ],
+            "message": "An error has ocurred initializing the VPN: {Err}",
+            "translation": "VPN başlatılırken bir hata oluştu: {Err}",
+            "placeholders": [
+                {
+                    "id": "Err",
+                    "string": "%[1]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 1,
+                    "expr": "err"
+                }
+            ]
+        },
+        {
+            "id": [
+                "donationText",
+                "The {ApplicationName} 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.\n\t\nDo you want to donate now?"
+            ],
+            "message": "The {ApplicationName} 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.\n\t\nDo you want to donate now?",
+            "translation": "{ApplicationName} hizmetini çalıştırmak pahalıdır. Sizin hakkınızda kişisel bilgi saklamak istemediğimiz için, bu hizmete ilişkin hesaplar veya fatura yok. Ancak hizmetin sürmesini istiyorsanız, her ay en azından 5$ bağış yapmalısınız.\n\t\nŞimdi bağış yapmak ister misiniz?",
+            "placeholders": [
+                {
+                    "id": "ApplicationName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                }
+            ]
+        },
+        {
+            "id": "Donate",
+            "message": "Donate",
+            "translation": "Bağış Yap"
+        },
+        {
+            "id": [
+                "aboutText",
+                "{ApplicationName} is an easy, fast, and secure VPN service from {Provider}. {ApplicationName} does not require a user account, keep logs, or track you in any way.\n\t    \nThis service is paid for entirely by donations from users like you. Please donate at {DonateURL}.\n\t\t\nBy using this application, you agree to the Terms of Service available at {TosURL}. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.\n\n\n{ApplicationName_1} version: {Version}"
+            ],
+            "message": "{ApplicationName} is an easy, fast, and secure VPN service from {Provider}. {ApplicationName} does not require a user account, keep logs, or track you in any way.\n\t    \nThis service is paid for entirely by donations from users like you. Please donate at {DonateURL}.\n\t\t\nBy using this application, you agree to the Terms of Service available at {TosURL}. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.\n\n\n{ApplicationName_1} version: {Version}",
+            "translation": "{ApplicationName}, {Provider} tarafından sağlanan kolay, hızlı ve güvenli bir VPN hizmetidir. {ApplicationName} kullanıcı hesabı gerektirmez, kayıt tutmaz veya sizi hiç bir şekilde izlemez. \n\t\nBu hizmetin ücreti sizin gibi kullanıcıların bağışlarıyla ödeniyor. Lütfen {DonateURL} bağlantısıyla bağış yapın.\n\t\t\nBu uygulamayı kullanarak, {TosURL} adresindeki Hizmet Kullanım Şartlarını kabul etmiş olursunuz. Bu hizmet olduğu gibi, herhangi bir garanti olmadan sunulmaktadır ve dünyayı daha iyi bir yer kılmak için çalışan insanlara yöneliktir.\n\n\n{ApplicationName_1} sürüm: {Version}",
+            "placeholders": [
+                {
+                    "id": "ApplicationName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                },
+                {
+                    "id": "Provider",
+                    "string": "%[2]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 2,
+                    "expr": "config.Provider"
+                },
+                {
+                    "id": "ApplicationName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                },
+                {
+                    "id": "DonateURL",
+                    "string": "%[3]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 3,
+                    "expr": "config.DonateURL"
+                },
+                {
+                    "id": "TosURL",
+                    "string": "%[4]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 4,
+                    "expr": "config.TosURL"
+                },
+                {
+                    "id": "ApplicationName_1",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                },
+                {
+                    "id": "Version",
+                    "string": "%[5]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 5,
+                    "expr": "version"
+                }
+            ]
+        },
+        {
+            "id": "About",
+            "message": "About",
+            "translation": "Hakkında"
+        },
+        {
+            "id": "Initialization error",
+            "message": "Initialization error",
+            "translation": "Başlatma hatası"
+        },
+        {
+            "id": [
+                "missingAuthAgent",
+                "Could not find a polkit authentication agent. Please run one and try again."
+            ],
+            "message": "Could not find a polkit authentication agent. Please run one and try again.",
+            "translation": "Bir polkit kimlik doğrulama vekili bulunamıyor. Bir tane çalıştırın ve tekrar deneyin."
+        },
+        {
+            "id": "Missing authentication agent",
+            "message": "Missing authentication agent",
+            "translation": "Kimlik doğrulama vekili bulunamıyor"
+        },
+        {
+            "id": [
+                "errorStartingVPN",
+                "Can't connect to {ApplicationName}: {Err}"
+            ],
+            "message": "Can't connect to {ApplicationName}: {Err}",
+            "translation": "{ApplicationName} uygulamasına bağlanamıyor: {Err}",
+            "placeholders": [
+                {
+                    "id": "ApplicationName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                },
+                {
+                    "id": "Err",
+                    "string": "%[2]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 2,
+                    "expr": "err"
+                }
+            ]
+        },
+        {
+            "id": "Error starting VPN",
+            "message": "Error starting VPN",
+            "translation": "VPN başlatma hatası"
+        },
+        {
+            "id": "Checking status...",
+            "message": "Checking status...",
+            "translation": "Durum denetimi..."
+        },
+        {
+            "id": "Turn on",
+            "message": "Turn on",
+            "translation": "Aç"
+        },
+        {
+            "id": "Turn off",
+            "message": "Turn off",
+            "translation": "Kapat"
+        },
+        {
+            "id": "Help...",
+            "message": "Help...",
+            "translation": "Yardım..."
+        },
+        {
+            "id": "Donate...",
+            "message": "Donate...",
+            "translation": "Bağış yap..."
+        },
+        {
+            "id": "About...",
+            "message": "About...",
+            "translation": "Hakkında..."
+        },
+        {
+            "id": "Quit",
+            "message": "Quit",
+            "translation": "Çıkış"
+        },
+        {
+            "id": "Route traffic through:",
+            "message": "Route traffic through:",
+            "translation": "Trafiği şunun üzerinden yönlendir:"
+        },
+        {
+            "id": "Use {ApplicationName} {City} gateway",
+            "message": "Use {ApplicationName} {City} gateway",
+            "translation": "{ApplicationName} {City} geçidini kullan",
+            "placeholders": [
+                {
+                    "id": "ApplicationName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                },
+                {
+                    "id": "City",
+                    "string": "%[2]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 2,
+                    "expr": "city"
+                }
+            ]
+        },
+        {
+            "id": "{ApplicationName} on",
+            "message": "{ApplicationName} on",
+            "translation": "{ApplicationName} açık",
+            "placeholders": [
+                {
+                    "id": "ApplicationName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                }
+            ]
+        },
+        {
+            "id": "{ApplicationName} off",
+            "message": "{ApplicationName} off",
+            "translation": "{ApplicationName} kapalı",
+            "placeholders": [
+                {
+                    "id": "ApplicationName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                }
+            ]
+        },
+        {
+            "id": "Cancel",
+            "message": "Cancel",
+            "translation": "İptal"
+        },
+        {
+            "id": "Connecting to {ApplicationName}",
+            "message": "Connecting to {ApplicationName}",
+            "translation": "{ApplicationName} uygulamasına bağlanıyor",
+            "placeholders": [
+                {
+                    "id": "ApplicationName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                }
+            ]
+        },
+        {
+            "id": "Stopping {ApplicationName}",
+            "message": "Stopping {ApplicationName}",
+            "translation": "{ApplicationName} durduruluyor",
+            "placeholders": [
+                {
+                    "id": "ApplicationName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                }
+            ]
+        },
+        {
+            "id": "Reconnect",
+            "message": "Reconnect",
+            "translation": "Yeniden bağlan"
+        },
+        {
+            "id": "{ApplicationName} blocking internet",
+            "message": "{ApplicationName} blocking internet",
+            "translation": "{ApplicationName} interneti engelliyor",
+            "placeholders": [
+                {
+                    "id": "ApplicationName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.ApplicationName"
+                }
+            ]
+        }
+    ]
+}
diff --git a/locales/zh/messages.gotext.json b/locales/zh/messages.gotext.json
index e20a2d72f0808569827f77872b76fb9f19330641..627d7c0b9d4e9ad294ff79ca87236322dc634934 100644
--- a/locales/zh/messages.gotext.json
+++ b/locales/zh/messages.gotext.json
@@ -1,6 +1,24 @@
 {
     "language": "zh",
     "messages": [
+        {
+            "id": [
+                "errorMsg",
+                "An error has ocurred initializing the VPN: {Err}"
+            ],
+            "message": "An error has ocurred initializing the VPN: {Err}",
+            "translation": "初始化 VPN 时发生错误:{Err}",
+            "placeholders": [
+                {
+                    "id": "Err",
+                    "string": "%[1]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 1,
+                    "expr": "err"
+                }
+            ]
+        },
         {
             "id": [
                 "donationText",
@@ -291,24 +309,6 @@
                     "expr": "config.ApplicationName"
                 }
             ]
-        },
-        {
-            "id": [
-                "errorMsg",
-                "An error has ocurred initializing the VPN: {Err}"
-            ],
-            "message": "An error has ocurred initializing the VPN: {Err}",
-            "translation": "初始化 VPN 时发生错误:{Err}",
-            "placeholders": [
-                {
-                    "id": "Err",
-                    "string": "%[1]v",
-                    "type": "error",
-                    "underlyingType": "interface{Error() string}",
-                    "argNum": 1,
-                    "expr": "err"
-                }
-            ]
         }
     ]
 }