diff --git a/locale/de/LC_MESSAGES/de.mo b/locale/de/LC_MESSAGES/de.mo
new file mode 100644
index 0000000..0ca8df5
Binary files /dev/null and b/locale/de/LC_MESSAGES/de.mo differ
diff --git a/locale/de/LC_MESSAGES/netspeedsimplified.mo b/locale/de/LC_MESSAGES/netspeedsimplified.mo
new file mode 100644
index 0000000..0ca8df5
Binary files /dev/null and b/locale/de/LC_MESSAGES/netspeedsimplified.mo differ
diff --git a/locale/es/LC_MESSAGES/es.mo b/locale/es/LC_MESSAGES/es.mo
new file mode 100644
index 0000000..09828ea
Binary files /dev/null and b/locale/es/LC_MESSAGES/es.mo differ
diff --git a/locale/es/LC_MESSAGES/netspeedsimplified.mo b/locale/es/LC_MESSAGES/netspeedsimplified.mo
new file mode 100644
index 0000000..09828ea
Binary files /dev/null and b/locale/es/LC_MESSAGES/netspeedsimplified.mo differ
diff --git a/locale/fr/LC_MESSAGES/fr.mo b/locale/fr/LC_MESSAGES/fr.mo
new file mode 100644
index 0000000..c386641
Binary files /dev/null and b/locale/fr/LC_MESSAGES/fr.mo differ
diff --git a/locale/fr/LC_MESSAGES/netspeedsimplified.mo b/locale/fr/LC_MESSAGES/netspeedsimplified.mo
new file mode 100644
index 0000000..c386641
Binary files /dev/null and b/locale/fr/LC_MESSAGES/netspeedsimplified.mo differ
diff --git a/locale/it/LC_MESSAGES/it.mo b/locale/it/LC_MESSAGES/it.mo
new file mode 100644
index 0000000..5ba72c5
Binary files /dev/null and b/locale/it/LC_MESSAGES/it.mo differ
diff --git a/locale/it/LC_MESSAGES/netspeedsimplified.mo b/locale/it/LC_MESSAGES/netspeedsimplified.mo
new file mode 100644
index 0000000..5ba72c5
Binary files /dev/null and b/locale/it/LC_MESSAGES/netspeedsimplified.mo differ
diff --git a/locale/ru/LC_MESSAGES/netspeedsimplified.mo b/locale/ru/LC_MESSAGES/netspeedsimplified.mo
new file mode 100644
index 0000000..b5c9e7d
Binary files /dev/null and b/locale/ru/LC_MESSAGES/netspeedsimplified.mo differ
diff --git a/locale/ru/LC_MESSAGES/ru.mo b/locale/ru/LC_MESSAGES/ru.mo
new file mode 100644
index 0000000..b5c9e7d
Binary files /dev/null and b/locale/ru/LC_MESSAGES/ru.mo differ
diff --git a/metadata.json b/metadata.json
index 25205d5..3a58588 100644
--- a/metadata.json
+++ b/metadata.json
@@ -10,5 +10,6 @@
],
"url": "https://github.com/prateekmedia/netspeedsimplified",
"uuid": "netspeedsimplified@prateekmedia.extension",
+ "gettext-domain": "netspeedsimplified",
"version": 44
}
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..085284c
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,316 @@
+# German translations for PACKAGE package.
+# Copyright (C) 2025 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Il Craccatore 2011, 2025.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-09-23 01:34+0200\n"
+"PO-Revision-Date: 2025-09-23 01:34+0200\n"
+"Last-Translator: Il Craccatore 2011\n"
+"Language-Team: none\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: prefs.js:96 prefs.js:134 prefs.js:169 prefs.js:206
+msgid "The Value is Changed"
+msgstr "Der Wert wurde geändert"
+
+#: prefs.js:218
+msgid "Press Enter to apply"
+msgstr "Drücke Enter zum Übernehmen"
+
+#: prefs.js:244
+msgid "General Settings"
+msgstr "Allgemeine Einstellungen"
+
+#: prefs.js:258
+msgid "Restore Defaults"
+msgstr "Standards wiederherstellen"
+
+#: prefs.js:280
+msgid "Position on the Panel"
+msgstr "Position im Panel"
+
+#: prefs.js:280 prefs.js:312
+msgid "Right"
+msgstr "Rechts"
+
+#: prefs.js:280 prefs.js:312
+msgid "Left"
+msgstr "Links"
+
+#: prefs.js:280 prefs.js:312
+msgid "Center"
+msgstr "Mitte"
+
+#: prefs.js:280
+msgid "Choose where to Place the extension on the Panel"
+msgstr "Wähle, wo die Erweiterung im Panel platziert werden soll"
+
+#: prefs.js:284
+msgid "Position(Advanced)"
+msgstr "Position (Erweitert)"
+
+#: prefs.js:284
+msgid "Prefer Right Side"
+msgstr "Bevorzuge rechte Seite"
+
+#: prefs.js:284
+msgid "Prefer Left Side"
+msgstr "Bevorzuge linke Seite"
+
+#: prefs.js:284
+msgid "Choose further where to Place the extension"
+msgstr "Wähle genauer, wo die Erweiterung platziert werden soll"
+
+#: prefs.js:288
+msgid "Refresh Time"
+msgstr "Aktualisierungszeit"
+
+#: prefs.js:288
+msgid "Change Refresh time value from anywhere b/w 1 to 10"
+msgstr "Ändere den Aktualisierungszeitwert zwischen 1 und 10"
+
+#: prefs.js:292
+msgid "Mode"
+msgstr "Modus"
+
+#: prefs.js:292
+msgid "Mode 1"
+msgstr "Modus 1"
+
+#: prefs.js:292
+msgid "Mode 2"
+msgstr "Modus 2"
+
+#: prefs.js:292
+msgid "Mode 3"
+msgstr "Modus 3"
+
+#: prefs.js:292
+msgid "Mode 4"
+msgstr "Modus 4"
+
+#: prefs.js:292
+msgid "Mode 5"
+msgstr "Modus 5"
+
+#: prefs.js:292
+msgid "Choose which mode to load"
+msgstr "Wähle, welchen Modus zu laden"
+
+#: prefs.js:296
+msgid "Font Mode"
+msgstr "Schriftmodus"
+
+#: prefs.js:296
+msgid "Default"
+msgstr "Standard"
+
+#: prefs.js:296
+msgid "Smallest"
+msgstr "Sehr klein"
+
+#: prefs.js:296
+msgid "Smaller"
+msgstr "Kleiner"
+
+#: prefs.js:296
+msgid "Small"
+msgstr "Klein"
+
+#: prefs.js:296
+msgid "Large"
+msgstr "Groß"
+
+#: prefs.js:296
+msgid "Choose which font to display"
+msgstr "Wähle, welche Schrift angezeigt werden soll"
+
+#: prefs.js:300
+msgid "Vertical Align"
+msgstr "Vertikale Ausrichtung"
+
+#: prefs.js:300
+msgid "Changing it will toggle Vertical Alignment"
+msgstr "Ändern schaltet die vertikale Ausrichtung um"
+
+#: prefs.js:304
+msgid "Show Total Data Transfer"
+msgstr "Gesamt-Datenübertragung anzeigen"
+
+#: prefs.js:304
+msgid "Enabling it will always show the sigma"
+msgstr "Wenn aktiviert, wird immer die Summe angezeigt"
+
+#: prefs.js:308
+msgid "Choose Icons Set"
+msgstr "Symbolsatz auswählen"
+
+#: prefs.js:308
+msgid " ⬇, ⬆"
+msgstr " ⬇, ⬆"
+
+#: prefs.js:308
+msgid " 🡳, 🡱"
+msgstr " 🡳, 🡱"
+
+#: prefs.js:308
+msgid " ↓, ↑"
+msgstr " ↓, ↑"
+
+#: prefs.js:308
+msgid "Choose which icon set to display"
+msgstr "Wähle, welchen Symbolsatz angezeigt werden soll"
+
+#: prefs.js:312
+msgid "Text Align"
+msgstr "Textausrichtung"
+
+#: prefs.js:312
+msgid "Align Text of net speed"
+msgstr "Text der Netzwerkgeschwindigkeit ausrichten"
+
+#: prefs.js:316
+msgid "Move icons to the right"
+msgstr "Symbole nach rechts verschieben"
+
+#: prefs.js:320
+msgid "Limit Unit"
+msgstr "Einheitenbegrenzung"
+
+#: prefs.js:320
+msgid "(None)"
+msgstr "(Keine)"
+
+#: prefs.js:320
+msgid "K"
+msgstr "K"
+
+#: prefs.js:320
+msgid "M"
+msgstr "M"
+
+#: prefs.js:320
+msgid "G"
+msgstr "G"
+
+#: prefs.js:320
+msgid "T"
+msgstr "T"
+
+#: prefs.js:320
+msgid "P"
+msgstr "P"
+
+#: prefs.js:320
+msgid "E"
+msgstr "E"
+
+#: prefs.js:320
+msgid "Z"
+msgstr "Z"
+
+#: prefs.js:320
+msgid "Choose unit limitation set to display"
+msgstr "Wähle, welcher Einheitenumfang angezeigt werden soll"
+
+#: prefs.js:324
+msgid "Hide When Disconnected"
+msgstr "Bei Trennung verbergen"
+
+#: prefs.js:324
+msgid "Enabling it will Hide Indicator when disconnected"
+msgstr "Wenn aktiviert, zeigt der Indikator nichts bei Verbindungsverlust"
+
+#: prefs.js:328
+msgid "Shorten Units"
+msgstr "Einheiten abkürzen"
+
+#: prefs.js:328
+msgid "Enabling it will result in shorten units like K instead of KB"
+msgstr "Wenn aktiviert, werden Einheiten wie K statt KB verwendet"
+
+#: prefs.js:332
+msgid "Show Upload First"
+msgstr "Erst Upload anzeigen"
+
+#: prefs.js:332
+msgid "Enabling it will reverse the upload and download speed indicators"
+msgstr "Wenn aktiviert, wird die Anzeige von Upload und Download vertauscht"
+
+#: prefs.js:336
+msgid "Lock Mouse Actions"
+msgstr "Mausaktionen sperren"
+
+#: prefs.js:336
+msgid "Enabling it will Lock Mouse Actions"
+msgstr "Wenn aktiviert, werden Mausaktionen gesperrt"
+
+#: prefs.js:340
+msgid "Minimum Width"
+msgstr "Mindestbreite"
+
+#: prefs.js:340
+msgid "Change Minimum Width value from anywhere b/w 3em to 10em"
+msgstr "Ändere den Mindestbreitenwert zwischen 3em und 10em"
+
+#: prefs.js:344
+msgid "Custom Font Name"
+msgstr "Benutzerdefinierter Schriftname"
+
+#: prefs.js:344
+msgid ""
+"Enter the font name you want, you can also write style here for all elements "
+"except indicators"
+msgstr ""
+"Gib den gewünschten Schriftname ein; du kannst auch Stil hier für alle Elemente "
+"außer den Indikatoren angeben"
+
+#: prefs.js:348
+msgid "Use System Color Scheme"
+msgstr "Systemfarbschema verwenden"
+
+#: prefs.js:348
+msgid ""
+"Enabling it will allow changing font color dynamically based on panel color"
+msgstr ""
+"Wenn aktiviert, wird die Schriftfarbe abhängig von der Farbe des Panels dynamisch geändert"
+
+#: prefs.js:352
+msgid "Upload Speed Color"
+msgstr "Farbe der Upload-Geschwindigkeit"
+
+#: prefs.js:352
+msgid "Select the upload speed color"
+msgstr "Wähle die Farbe der Upload-Geschwindigkeit"
+
+#: prefs.js:356
+msgid "Download Speed Color"
+msgstr "Farbe der Download-Geschwindigkeit"
+
+#: prefs.js:356
+msgid "Select the download speed color"
+msgstr "Wähle die Farbe der Download-Geschwindigkeit"
+
+#: prefs.js:360
+msgid "Total Speed Color"
+msgstr "Farbe der Gesamtgeschwindigkeit"
+
+#: prefs.js:360
+msgid "Select the total speed color"
+msgstr "Wähle die Farbe der Gesamtgeschwindigkeit"
+
+#: prefs.js:364
+msgid "Total Download Color"
+msgstr "Farbe des gesamten Downloads"
+
+#: prefs.js:364
+msgid "Select the total download color"
+msgstr "Wähle die Farbe des gesamten Downloads"
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..8b0ae43
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,316 @@
+# Spanish translations for PACKAGE package.
+# Copyright (C) 2025 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Il Craccatore 2011, 2025.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-09-23 01:34+0200\n"
+"PO-Revision-Date: 2025-09-23 01:34+0200\n"
+"Last-Translator: Il Craccatore 2011\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: prefs.js:96 prefs.js:134 prefs.js:169 prefs.js:206
+msgid "The Value is Changed"
+msgstr "El valor ha cambiado"
+
+#: prefs.js:218
+msgid "Press Enter to apply"
+msgstr "Presiona Enter para aplicar"
+
+#: prefs.js:244
+msgid "General Settings"
+msgstr "Configuración general"
+
+#: prefs.js:258
+msgid "Restore Defaults"
+msgstr "Restaurar valores predeterminados"
+
+#: prefs.js:280
+msgid "Position on the Panel"
+msgstr "Posición en el panel"
+
+#: prefs.js:280 prefs.js:312
+msgid "Right"
+msgstr "Derecha"
+
+#: prefs.js:280 prefs.js:312
+msgid "Left"
+msgstr "Izquierda"
+
+#: prefs.js:280 prefs.js:312
+msgid "Center"
+msgstr "Centro"
+
+#: prefs.js:280
+msgid "Choose where to Place the extension on the Panel"
+msgstr "Elige dónde colocar la extensión en el panel"
+
+#: prefs.js:284
+msgid "Position(Advanced)"
+msgstr "Posición (Avanzada)"
+
+#: prefs.js:284
+msgid "Prefer Right Side"
+msgstr "Preferir el lado derecho"
+
+#: prefs.js:284
+msgid "Prefer Left Side"
+msgstr "Preferir el lado izquierdo"
+
+#: prefs.js:284
+msgid "Choose further where to Place the extension"
+msgstr "Elige con más detalle dónde colocar la extensión"
+
+#: prefs.js:288
+msgid "Refresh Time"
+msgstr "Tiempo de actualización"
+
+#: prefs.js:288
+msgid "Change Refresh time value from anywhere b/w 1 to 10"
+msgstr "Cambia el valor del tiempo de actualización entre 1 y 10"
+
+#: prefs.js:292
+msgid "Mode"
+msgstr "Modo"
+
+#: prefs.js:292
+msgid "Mode 1"
+msgstr "Modo 1"
+
+#: prefs.js:292
+msgid "Mode 2"
+msgstr "Modo 2"
+
+#: prefs.js:292
+msgid "Mode 3"
+msgstr "Modo 3"
+
+#: prefs.js:292
+msgid "Mode 4"
+msgstr "Modo 4"
+
+#: prefs.js:292
+msgid "Mode 5"
+msgstr "Modo 5"
+
+#: prefs.js:292
+msgid "Choose which mode to load"
+msgstr "Elige qué modo cargar"
+
+#: prefs.js:296
+msgid "Font Mode"
+msgstr "Modo de fuente"
+
+#: prefs.js:296
+msgid "Default"
+msgstr "Predeterminado"
+
+#: prefs.js:296
+msgid "Smallest"
+msgstr "El más pequeño"
+
+#: prefs.js:296
+msgid "Smaller"
+msgstr "Más pequeño"
+
+#: prefs.js:296
+msgid "Small"
+msgstr "Pequeño"
+
+#: prefs.js:296
+msgid "Large"
+msgstr "Grande"
+
+#: prefs.js:296
+msgid "Choose which font to display"
+msgstr "Elige qué fuente mostrar"
+
+#: prefs.js:300
+msgid "Vertical Align"
+msgstr "Alineación vertical"
+
+#: prefs.js:300
+msgid "Changing it will toggle Vertical Alignment"
+msgstr "Cambiar esto alternará la alineación vertical"
+
+#: prefs.js:304
+msgid "Show Total Data Transfer"
+msgstr "Mostrar transferencia total de datos"
+
+#: prefs.js:304
+msgid "Enabling it will always show the sigma"
+msgstr "Habilitarlo siempre mostrará el total"
+
+#: prefs.js:308
+msgid "Choose Icons Set"
+msgstr "Elige conjunto de íconos"
+
+#: prefs.js:308
+msgid " ⬇, ⬆"
+msgstr " ⬇, ⬆"
+
+#: prefs.js:308
+msgid " 🡳, 🡱"
+msgstr " 🡳, 🡱"
+
+#: prefs.js:308
+msgid " ↓, ↑"
+msgstr " ↓, ↑"
+
+#: prefs.js:308
+msgid "Choose which icon set to display"
+msgstr "Elige qué conjunto de íconos mostrar"
+
+#: prefs.js:312
+msgid "Text Align"
+msgstr "Alineación del texto"
+
+#: prefs.js:312
+msgid "Align Text of net speed"
+msgstr "Alinear el texto de la velocidad de red"
+
+#: prefs.js:316
+msgid "Move icons to the right"
+msgstr "Mover íconos hacia la derecha"
+
+#: prefs.js:320
+msgid "Limit Unit"
+msgstr "Unidad límite"
+
+#: prefs.js:320
+msgid "(None)"
+msgstr "(Ninguna)"
+
+#: prefs.js:320
+msgid "K"
+msgstr "K"
+
+#: prefs.js:320
+msgid "M"
+msgstr "M"
+
+#: prefs.js:320
+msgid "G"
+msgstr "G"
+
+#: prefs.js:320
+msgid "T"
+msgstr "T"
+
+#: prefs.js:320
+msgid "P"
+msgstr "P"
+
+#: prefs.js:320
+msgid "E"
+msgstr "E"
+
+#: prefs.js:320
+msgid "Z"
+msgstr "Z"
+
+#: prefs.js:320
+msgid "Choose unit limitation set to display"
+msgstr "Elige qué límite de unidad mostrar"
+
+#: prefs.js:324
+msgid "Hide When Disconnected"
+msgstr "Ocultar cuando esté desconectado"
+
+#: prefs.js:324
+msgid "Enabling it will Hide Indicator when disconnected"
+msgstr "Al habilitarlo, el indicador se ocultará cuando esté desconectado"
+
+#: prefs.js:328
+msgid "Shorten Units"
+msgstr "Abreviar unidades"
+
+#: prefs.js:328
+msgid "Enabling it will result in shorten units like K instead of KB"
+msgstr "Al habilitarlo, las unidades se abreviarán: K en lugar de KB"
+
+#: prefs.js:332
+msgid "Show Upload First"
+msgstr "Mostrar primero subida"
+
+#: prefs.js:332
+msgid "Enabling it will reverse the upload and download speed indicators"
+msgstr "Al habilitarlo, se invertirá el orden de los indicadores de subida y bajada"
+
+#: prefs.js:336
+msgid "Lock Mouse Actions"
+msgstr "Bloquear acciones del ratón"
+
+#: prefs.js:336
+msgid "Enabling it will Lock Mouse Actions"
+msgstr "Al habilitarlo, se bloquearán las acciones del ratón"
+
+#: prefs.js:340
+msgid "Minimum Width"
+msgstr "Ancho mínimo"
+
+#: prefs.js:340
+msgid "Change Minimum Width value from anywhere b/w 3em to 10em"
+msgstr "Cambia el valor del ancho mínimo entre 3em y 10em"
+
+#: prefs.js:344
+msgid "Custom Font Name"
+msgstr "Nombre de fuente personalizado"
+
+#: prefs.js:344
+msgid ""
+"Enter the font name you want, you can also write style here for all elements "
+"except indicators"
+msgstr ""
+"Introduce el nombre de fuente que deseas; también puedes escribir estilo aquí para todos los elementos "
+"excepto los indicadores"
+
+#: prefs.js:348
+msgid "Use System Color Scheme"
+msgstr "Usar esquema de color del sistema"
+
+#: prefs.js:348
+msgid ""
+"Enabling it will allow changing font color dynamically based on panel color"
+msgstr ""
+"Al habilitarlo, el color de la fuente cambiará dinámicamente basado en el color del panel"
+
+#: prefs.js:352
+msgid "Upload Speed Color"
+msgstr "Color de velocidad de subida"
+
+#: prefs.js:352
+msgid "Select the upload speed color"
+msgstr "Selecciona el color de la velocidad de subida"
+
+#: prefs.js:356
+msgid "Download Speed Color"
+msgstr "Color de velocidad de bajada"
+
+#: prefs.js:356
+msgid "Select the download speed color"
+msgstr "Selecciona el color de la velocidad de bajada"
+
+#: prefs.js:360
+msgid "Total Speed Color"
+msgstr "Color de velocidad total"
+
+#: prefs.js:360
+msgid "Select the total speed color"
+msgstr "Selecciona el color de la velocidad total"
+
+#: prefs.js:364
+msgid "Total Download Color"
+msgstr "Color del total de descargas"
+
+#: prefs.js:364
+msgid "Select the total download color"
+msgstr "Selecciona el color del total de descargas"
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..4da8b9c
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,316 @@
+# French translations for PACKAGE package.
+# Copyright (C) 2025 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Il Craccatore 2011, 2025.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-09-23 01:34+0200\n"
+"PO-Revision-Date: 2025-09-23 01:34+0200\n"
+"Last-Translator: Il Craccatore 2011\n"
+"Language-Team: none\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: prefs.js:96 prefs.js:134 prefs.js:169 prefs.js:206
+msgid "The Value is Changed"
+msgstr "La valeur a été modifiée"
+
+#: prefs.js:218
+msgid "Press Enter to apply"
+msgstr "Appuyez sur Entrée pour appliquer"
+
+#: prefs.js:244
+msgid "General Settings"
+msgstr "Paramètres généraux"
+
+#: prefs.js:258
+msgid "Restore Defaults"
+msgstr "Rétablir les valeurs par défaut"
+
+#: prefs.js:280
+msgid "Position on the Panel"
+msgstr "Position sur le panneau"
+
+#: prefs.js:280 prefs.js:312
+msgid "Right"
+msgstr "Droite"
+
+#: prefs.js:280 prefs.js:312
+msgid "Left"
+msgstr "Gauche"
+
+#: prefs.js:280 prefs.js:312
+msgid "Center"
+msgstr "Centre"
+
+#: prefs.js:280
+msgid "Choose where to Place the extension on the Panel"
+msgstr "Choisissez où placer l’extension sur le panneau"
+
+#: prefs.js:284
+msgid "Position(Advanced)"
+msgstr "Position (avancée)"
+
+#: prefs.js:284
+msgid "Prefer Right Side"
+msgstr "Préférer le côté droit"
+
+#: prefs.js:284
+msgid "Prefer Left Side"
+msgstr "Préférer le côté gauche"
+
+#: prefs.js:284
+msgid "Choose further where to Place the extension"
+msgstr "Déterminez plus précisément où placer l’extension"
+
+#: prefs.js:288
+msgid "Refresh Time"
+msgstr "Temps de rafraîchissement"
+
+#: prefs.js:288
+msgid "Change Refresh time value from anywhere b/w 1 to 10"
+msgstr "Modifiez la valeur du temps de rafraîchissement entre 1 et 10"
+
+#: prefs.js:292
+msgid "Mode"
+msgstr "Mode"
+
+#: prefs.js:292
+msgid "Mode 1"
+msgstr "Mode 1"
+
+#: prefs.js:292
+msgid "Mode 2"
+msgstr "Mode 2"
+
+#: prefs.js:292
+msgid "Mode 3"
+msgstr "Mode 3"
+
+#: prefs.js:292
+msgid "Mode 4"
+msgstr "Mode 4"
+
+#: prefs.js:292
+msgid "Mode 5"
+msgstr "Mode 5"
+
+#: prefs.js:292
+msgid "Choose which mode to load"
+msgstr "Choisissez quel mode charger"
+
+#: prefs.js:296
+msgid "Font Mode"
+msgstr "Mode de police"
+
+#: prefs.js:296
+msgid "Default"
+msgstr "Par défaut"
+
+#: prefs.js:296
+msgid "Smallest"
+msgstr "Le plus petit"
+
+#: prefs.js:296
+msgid "Smaller"
+msgstr "Plus petit"
+
+#: prefs.js:296
+msgid "Small"
+msgstr "Petit"
+
+#: prefs.js:296
+msgid "Large"
+msgstr "Grand"
+
+#: prefs.js:296
+msgid "Choose which font to display"
+msgstr "Choisissez quelle police afficher"
+
+#: prefs.js:300
+msgid "Vertical Align"
+msgstr "Alignement vertical"
+
+#: prefs.js:300
+msgid "Changing it will toggle Vertical Alignment"
+msgstr "Le changer activera/désactivera l’alignement vertical"
+
+#: prefs.js:304
+msgid "Show Total Data Transfer"
+msgstr "Afficher le transfert total de données"
+
+#: prefs.js:304
+msgid "Enabling it will always show the sigma"
+msgstr "L’activer affichera toujours la somme totale"
+
+#: prefs.js:308
+msgid "Choose Icons Set"
+msgstr "Choisissez le jeu d’icônes"
+
+#: prefs.js:308
+msgid " ⬇, ⬆"
+msgstr " ⬇, ⬆"
+
+#: prefs.js:308
+msgid " 🡳, 🡱"
+msgstr " 🡳, 🡱"
+
+#: prefs.js:308
+msgid " ↓, ↑"
+msgstr " ↓, ↑"
+
+#: prefs.js:308
+msgid "Choose which icon set to display"
+msgstr "Choisissez quel jeu d’icônes afficher"
+
+#: prefs.js:312
+msgid "Text Align"
+msgstr "Alignement du texte"
+
+#: prefs.js:312
+msgid "Align Text of net speed"
+msgstr "Aligner le texte de la vitesse réseau"
+
+#: prefs.js:316
+msgid "Move icons to the right"
+msgstr "Déplacer les icônes vers la droite"
+
+#: prefs.js:320
+msgid "Limit Unit"
+msgstr "Unité limite"
+
+#: prefs.js:320
+msgid "(None)"
+msgstr "(Aucun)"
+
+#: prefs.js:320
+msgid "K"
+msgstr "K"
+
+#: prefs.js:320
+msgid "M"
+msgstr "M"
+
+#: prefs.js:320
+msgid "G"
+msgstr "G"
+
+#: prefs.js:320
+msgid "T"
+msgstr "T"
+
+#: prefs.js:320
+msgid "P"
+msgstr "P"
+
+#: prefs.js:320
+msgid "E"
+msgstr "E"
+
+#: prefs.js:320
+msgid "Z"
+msgstr "Z"
+
+#: prefs.js:320
+msgid "Choose unit limitation set to display"
+msgstr "Choisissez quelle limite d’unité afficher"
+
+#: prefs.js:324
+msgid "Hide When Disconnected"
+msgstr "Masquer en cas de déconnexion"
+
+#: prefs.js:324
+msgid "Enabling it will Hide Indicator when disconnected"
+msgstr "Si activé, l’indicateur sera masqué lorsqu’il sera déconnecté"
+
+#: prefs.js:328
+msgid "Shorten Units"
+msgstr "Abbreviate les unités"
+
+#: prefs.js:328
+msgid "Enabling it will result in shorten units like K instead of KB"
+msgstr "Si activé, les unités seront abrégées, par exemple K au lieu de KB"
+
+#: prefs.js:332
+msgid "Show Upload First"
+msgstr "Afficher d’abord l’upload"
+
+#: prefs.js:332
+msgid "Enabling it will reverse the upload and download speed indicators"
+msgstr "Si activé, l’ordre des indicateurs d’upload et de téléchargement sera inversé"
+
+#: prefs.js:336
+msgid "Lock Mouse Actions"
+msgstr "Verrouiller les actions de la souris"
+
+#: prefs.js:336
+msgid "Enabling it will Lock Mouse Actions"
+msgstr "Si activé, les actions de la souris seront verrouillées"
+
+#: prefs.js:340
+msgid "Minimum Width"
+msgstr "Largeur minimale"
+
+#: prefs.js:340
+msgid "Change Minimum Width value from anywhere b/w 3em to 10em"
+msgstr "Modifier la largeur minimale entre 3em et 10em"
+
+#: prefs.js:344
+msgid "Custom Font Name"
+msgstr "Nom de police personnalisé"
+
+#: prefs.js:344
+msgid ""
+"Enter the font name you want, you can also write style here for all elements "
+"except indicators"
+msgstr ""
+"Entrez le nom de la police souhaitée ; vous pouvez aussi définir un style ici pour tous les éléments "
+"sauf les indicateurs"
+
+#: prefs.js:348
+msgid "Use System Color Scheme"
+msgstr "Utiliser le schéma de couleurs du système"
+
+#: prefs.js:348
+msgid ""
+"Enabling it will allow changing font color dynamically based on panel color"
+msgstr ""
+"Si activé, la couleur de la police changera dynamiquement selon la couleur du panneau"
+
+#: prefs.js:352
+msgid "Upload Speed Color"
+msgstr "Couleur de la vitesse d’envoi"
+
+#: prefs.js:352
+msgid "Select the upload speed color"
+msgstr "Sélectionnez la couleur de la vitesse d’envoi"
+
+#: prefs.js:356
+msgid "Download Speed Color"
+msgstr "Couleur de la vitesse de téléchargement"
+
+#: prefs.js:356
+msgid "Select the download speed color"
+msgstr "Sélectionnez la couleur de la vitesse de téléchargement"
+
+#: prefs.js:360
+msgid "Total Speed Color"
+msgstr "Couleur de la vitesse totale"
+
+#: prefs.js:360
+msgid "Select the total speed color"
+msgstr "Sélectionnez la couleur de la vitesse totale"
+
+#: prefs.js:364
+msgid "Total Download Color"
+msgstr "Couleur du téléchargement total"
+
+#: prefs.js:364
+msgid "Select the total download color"
+msgstr "Sélectionnez la couleur du téléchargement total"
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 0000000..b559c18
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,316 @@
+# Italian translations for PACKAGE package.
+# Copyright (C) 2025 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Il Craccatore 2011, 2025.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-09-23 01:34+0200\n"
+"PO-Revision-Date: 2025-09-23 01:34+0200\n"
+"Last-Translator: Il Craccatore 2011\n"
+"Language-Team: none\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: prefs.js:96 prefs.js:134 prefs.js:169 prefs.js:206
+msgid "The Value is Changed"
+msgstr "Il valore è stato modificato"
+
+#: prefs.js:218
+msgid "Press Enter to apply"
+msgstr "Premi Invio per applicare"
+
+#: prefs.js:244
+msgid "General Settings"
+msgstr "Impostazioni generali"
+
+#: prefs.js:258
+msgid "Restore Defaults"
+msgstr "Ripristina predefiniti"
+
+#: prefs.js:280
+msgid "Position on the Panel"
+msgstr "Posizione nel pannello"
+
+#: prefs.js:280 prefs.js:312
+msgid "Right"
+msgstr "Destra"
+
+#: prefs.js:280 prefs.js:312
+msgid "Left"
+msgstr "Sinistra"
+
+#: prefs.js:280 prefs.js:312
+msgid "Center"
+msgstr "Centro"
+
+#: prefs.js:280
+msgid "Choose where to Place the extension on the Panel"
+msgstr "Scegli dove posizionare l'estensione nel pannello"
+
+#: prefs.js:284
+msgid "Position(Advanced)"
+msgstr "Posizione (avanzata)"
+
+#: prefs.js:284
+msgid "Prefer Right Side"
+msgstr "Preferisci lato destro"
+
+#: prefs.js:284
+msgid "Prefer Left Side"
+msgstr "Preferisci lato sinistro"
+
+#: prefs.js:284
+msgid "Choose further where to Place the extension"
+msgstr "Scegli con maggior precisione dove posizionare l'estensione"
+
+#: prefs.js:288
+msgid "Refresh Time"
+msgstr "Intervallo di aggiornamento"
+
+#: prefs.js:288
+msgid "Change Refresh time value from anywhere b/w 1 to 10"
+msgstr "Modifica il valore dell'intervallo di aggiornamento da 1 a 10"
+
+#: prefs.js:292
+msgid "Mode"
+msgstr "Modalità"
+
+#: prefs.js:292
+msgid "Mode 1"
+msgstr "Modalità 1"
+
+#: prefs.js:292
+msgid "Mode 2"
+msgstr "Modalità 2"
+
+#: prefs.js:292
+msgid "Mode 3"
+msgstr "Modalità 3"
+
+#: prefs.js:292
+msgid "Mode 4"
+msgstr "Modalità 4"
+
+#: prefs.js:292
+msgid "Mode 5"
+msgstr "Modalità 5"
+
+#: prefs.js:292
+msgid "Choose which mode to load"
+msgstr "Scegli quale modalità caricare"
+
+#: prefs.js:296
+msgid "Font Mode"
+msgstr "Modalità carattere"
+
+#: prefs.js:296
+msgid "Default"
+msgstr "Predefinito"
+
+#: prefs.js:296
+msgid "Smallest"
+msgstr "Più piccolo"
+
+#: prefs.js:296
+msgid "Smaller"
+msgstr "Piccolo"
+
+#: prefs.js:296
+msgid "Small"
+msgstr "Medio-piccolo"
+
+#: prefs.js:296
+msgid "Large"
+msgstr "Grande"
+
+#: prefs.js:296
+msgid "Choose which font to display"
+msgstr "Scegli quale carattere visualizzare"
+
+#: prefs.js:300
+msgid "Vertical Align"
+msgstr "Allineamento verticale"
+
+#: prefs.js:300
+msgid "Changing it will toggle Vertical Alignment"
+msgstr "Modificandolo, cambierai l'allineamento verticale"
+
+#: prefs.js:304
+msgid "Show Total Data Transfer"
+msgstr "Mostra traffico dati totale"
+
+#: prefs.js:304
+msgid "Enabling it will always show the sigma"
+msgstr "Abilitandolo verrà sempre mostrata la somma totale"
+
+#: prefs.js:308
+msgid "Choose Icons Set"
+msgstr "Scegli set di icone"
+
+#: prefs.js:308
+msgid " ⬇, ⬆"
+msgstr " ⬇, ⬆"
+
+#: prefs.js:308
+msgid " 🡳, 🡱"
+msgstr " 🡳, 🡱"
+
+#: prefs.js:308
+msgid " ↓, ↑"
+msgstr " ↓, ↑"
+
+#: prefs.js:308
+msgid "Choose which icon set to display"
+msgstr "Scegli quale set di icone visualizzare"
+
+#: prefs.js:312
+msgid "Text Align"
+msgstr "Allineamento testo"
+
+#: prefs.js:312
+msgid "Align Text of net speed"
+msgstr "Allinea il testo della velocità di rete"
+
+#: prefs.js:316
+msgid "Move icons to the right"
+msgstr "Sposta le icone a destra"
+
+#: prefs.js:320
+msgid "Limit Unit"
+msgstr "Unità limite"
+
+#: prefs.js:320
+msgid "(None)"
+msgstr "(Nessuna)"
+
+#: prefs.js:320
+msgid "K"
+msgstr "K"
+
+#: prefs.js:320
+msgid "M"
+msgstr "M"
+
+#: prefs.js:320
+msgid "G"
+msgstr "G"
+
+#: prefs.js:320
+msgid "T"
+msgstr "T"
+
+#: prefs.js:320
+msgid "P"
+msgstr "P"
+
+#: prefs.js:320
+msgid "E"
+msgstr "E"
+
+#: prefs.js:320
+msgid "Z"
+msgstr "Z"
+
+#: prefs.js:320
+msgid "Choose unit limitation set to display"
+msgstr "Scegli l'unità di misura da visualizzare"
+
+#: prefs.js:324
+msgid "Hide When Disconnected"
+msgstr "Nascondi se disconnesso"
+
+#: prefs.js:324
+msgid "Enabling it will Hide Indicator when disconnected"
+msgstr "Abilitandolo, l'indicatore verrà nascosto se disconnesso"
+
+#: prefs.js:328
+msgid "Shorten Units"
+msgstr "Abbrevia unità"
+
+#: prefs.js:328
+msgid "Enabling it will result in shorten units like K instead of KB"
+msgstr "Abilitandolo, le unità verranno abbreviate, ad esempio K invece di KB"
+
+#: prefs.js:332
+msgid "Show Upload First"
+msgstr "Mostra prima l’upload"
+
+#: prefs.js:332
+msgid "Enabling it will reverse the upload and download speed indicators"
+msgstr "Abilitandolo, verrà invertito l’ordine di visualizzazione di upload e download"
+
+#: prefs.js:336
+msgid "Lock Mouse Actions"
+msgstr "Blocca azioni del mouse"
+
+#: prefs.js:336
+msgid "Enabling it will Lock Mouse Actions"
+msgstr "Abilitandolo verranno bloccate le azioni del mouse"
+
+#: prefs.js:340
+msgid "Minimum Width"
+msgstr "Larghezza minima"
+
+#: prefs.js:340
+msgid "Change Minimum Width value from anywhere b/w 3em to 10em"
+msgstr "Modifica il valore della larghezza minima tra 3em e 10em"
+
+#: prefs.js:344
+msgid "Custom Font Name"
+msgstr "Nome carattere personalizzato"
+
+#: prefs.js:344
+msgid ""
+"Enter the font name you want, you can also write style here for all elements "
+"except indicators"
+msgstr ""
+"Inserisci il nome del carattere desiderato; puoi anche specificare lo stile "
+"per tutti gli elementi tranne gli indicatori"
+
+#: prefs.js:348
+msgid "Use System Color Scheme"
+msgstr "Usa schema colori di sistema"
+
+#: prefs.js:348
+msgid ""
+"Enabling it will allow changing font color dynamically based on panel color"
+msgstr ""
+"Abilitandolo il colore del testo cambierà dinamicamente in base al colore del pannello"
+
+#: prefs.js:352
+msgid "Upload Speed Color"
+msgstr "Colore velocità di upload"
+
+#: prefs.js:352
+msgid "Select the upload speed color"
+msgstr "Seleziona il colore della velocità di upload"
+
+#: prefs.js:356
+msgid "Download Speed Color"
+msgstr "Colore velocità di download"
+
+#: prefs.js:356
+msgid "Select the download speed color"
+msgstr "Seleziona il colore della velocità di download"
+
+#: prefs.js:360
+msgid "Total Speed Color"
+msgstr "Colore velocità totale"
+
+#: prefs.js:360
+msgid "Select the total speed color"
+msgstr "Seleziona il colore della velocità totale"
+
+#: prefs.js:364
+msgid "Total Download Color"
+msgstr "Colore download totale"
+
+#: prefs.js:364
+msgid "Select the total download color"
+msgstr "Seleziona il colore del download totale"
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 0000000..e514f4a
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,317 @@
+# Russian translations for PACKAGE package.
+# Copyright (C) 2025 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Il Craccatore 2011, 2025.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-09-23 01:34+0200\n"
+"PO-Revision-Date: 2025-09-23 01:34+0200\n"
+"Last-Translator: Il Craccatore 2011\n"
+"Language-Team: none\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: prefs.js:96 prefs.js:134 prefs.js:169 prefs.js:206
+msgid "The Value is Changed"
+msgstr "Значение изменено"
+
+#: prefs.js:218
+msgid "Press Enter to apply"
+msgstr "Нажмите Enter, чтобы применить"
+
+#: prefs.js:244
+msgid "General Settings"
+msgstr "Общие настройки"
+
+#: prefs.js:258
+msgid "Restore Defaults"
+msgstr "Восстановить настройки по умолчанию"
+
+#: prefs.js:280
+msgid "Position on the Panel"
+msgstr "Позиция на панели"
+
+#: prefs.js:280 prefs.js:312
+msgid "Right"
+msgstr "Справа"
+
+#: prefs.js:280 prefs.js:312
+msgid "Left"
+msgstr "Слева"
+
+#: prefs.js:280 prefs.js:312
+msgid "Center"
+msgstr "По центру"
+
+#: prefs.js:280
+msgid "Choose where to Place the extension on the Panel"
+msgstr "Выберите, где разместить расширение на панели"
+
+#: prefs.js:284
+msgid "Position(Advanced)"
+msgstr "Позиция (расширенные)"
+
+#: prefs.js:284
+msgid "Prefer Right Side"
+msgstr "Предпочитать правую сторону"
+
+#: prefs.js:284
+msgid "Prefer Left Side"
+msgstr "Предпочитать левую сторону"
+
+#: prefs.js:284
+msgid "Choose further where to Place the extension"
+msgstr "Выберите более точно, где разместить расширение"
+
+#: prefs.js:288
+msgid "Refresh Time"
+msgstr "Время обновления"
+
+#: prefs.js:288
+msgid "Change Refresh time value from anywhere b/w 1 to 10"
+msgstr "Измените значение времени обновления от 1 до 10"
+
+#: prefs.js:292
+msgid "Mode"
+msgstr "Режим"
+
+#: prefs.js:292
+msgid "Mode 1"
+msgstr "Режим 1"
+
+#: prefs.js:292
+msgid "Mode 2"
+msgstr "Режим 2"
+
+#: prefs.js:292
+msgid "Mode 3"
+msgstr "Режим 3"
+
+#: prefs.js:292
+msgid "Mode 4"
+msgstr "Режим 4"
+
+#: prefs.js:292
+msgid "Mode 5"
+msgstr "Режим 5"
+
+#: prefs.js:292
+msgid "Choose which mode to load"
+msgstr "Выберите режим для загрузки"
+
+#: prefs.js:296
+msgid "Font Mode"
+msgstr "Режим шрифта"
+
+#: prefs.js:296
+msgid "Default"
+msgstr "По умолчанию"
+
+#: prefs.js:296
+msgid "Smallest"
+msgstr "Самый маленький"
+
+#: prefs.js:296
+msgid "Smaller"
+msgstr "Меньше"
+
+#: prefs.js:296
+msgid "Small"
+msgstr "Небольшой"
+
+#: prefs.js:296
+msgid "Large"
+msgstr "Большой"
+
+#: prefs.js:296
+msgid "Choose which font to display"
+msgstr "Выберите шрифт для отображения"
+
+#: prefs.js:300
+msgid "Vertical Align"
+msgstr "Вертикальное выравнивание"
+
+#: prefs.js:300
+msgid "Changing it will toggle Vertical Alignment"
+msgstr "Изменение переключит вертикальное выравнивание"
+
+#: prefs.js:304
+msgid "Show Total Data Transfer"
+msgstr "Показать общий обмен данными"
+
+#: prefs.js:304
+msgid "Enabling it will always show the sigma"
+msgstr "Включение всегда показывает сумму"
+
+#: prefs.js:308
+msgid "Choose Icons Set"
+msgstr "Выберите набор иконок"
+
+#: prefs.js:308
+msgid " ⬇, ⬆"
+msgstr " ⬇, ⬆"
+
+#: prefs.js:308
+msgid " 🡳, 🡱"
+msgstr " 🡳, 🡱"
+
+#: prefs.js:308
+msgid " ↓, ↑"
+msgstr " ↓, ↑"
+
+#: prefs.js:308
+msgid "Choose which icon set to display"
+msgstr "Выберите, какой набор иконок отображать"
+
+#: prefs.js:312
+msgid "Text Align"
+msgstr "Выравнивание текста"
+
+#: prefs.js:312
+msgid "Align Text of net speed"
+msgstr "Выравнять текст скорости сети"
+
+#: prefs.js:316
+msgid "Move icons to the right"
+msgstr "Переместить иконки вправо"
+
+#: prefs.js:320
+msgid "Limit Unit"
+msgstr "Ограничение единиц"
+
+#: prefs.js:320
+msgid "(None)"
+msgstr "(Нет)"
+
+#: prefs.js:320
+msgid "K"
+msgstr "K"
+
+#: prefs.js:320
+msgid "M"
+msgstr "M"
+
+#: prefs.js:320
+msgid "G"
+msgstr "G"
+
+#: prefs.js:320
+msgid "T"
+msgstr "T"
+
+#: prefs.js:320
+msgid "P"
+msgstr "P"
+
+#: prefs.js:320
+msgid "E"
+msgstr "E"
+
+#: prefs.js:320
+msgid "Z"
+msgstr "Z"
+
+#: prefs.js:320
+msgid "Choose unit limitation set to display"
+msgstr "Выберите ограничение единиц для отображения"
+
+#: prefs.js:324
+msgid "Hide When Disconnected"
+msgstr "Скрывать при отключении"
+
+#: prefs.js:324
+msgid "Enabling it will Hide Indicator when disconnected"
+msgstr "Если включено, индикатор будет скрываться при отключении"
+
+#: prefs.js:328
+msgid "Shorten Units"
+msgstr "Сокращать единицы"
+
+#: prefs.js:328
+msgid "Enabling it will result in shorten units like K instead of KB"
+msgstr "Если включено, единицы будут сокращаться: K вместо KB"
+
+#: prefs.js:332
+msgid "Show Upload First"
+msgstr "Показать сначала загрузку"
+
+#: prefs.js:332
+msgid "Enabling it will reverse the upload and download speed indicators"
+msgstr "Если включено, индикаторы загрузки и выгрузки поменяются местами"
+
+#: prefs.js:336
+msgid "Lock Mouse Actions"
+msgstr "Блокировать действия мыши"
+
+#: prefs.js:336
+msgid "Enabling it will Lock Mouse Actions"
+msgstr "Если включено, действия мыши будут заблокированы"
+
+#: prefs.js:340
+msgid "Minimum Width"
+msgstr "Минимальная ширина"
+
+#: prefs.js:340
+msgid "Change Minimum Width value from anywhere b/w 3em to 10em"
+msgstr "Измените значение минимальной ширины между 3em и 10em"
+
+#: prefs.js:344
+msgid "Custom Font Name"
+msgstr "Пользовательское имя шрифта"
+
+#: prefs.js:344
+msgid ""
+"Enter the font name you want, you can also write style here for all elements "
+"except indicators"
+msgstr ""
+"Введите имя шрифта, который вы хотите; вы также можете указать стиль здесь для всех элементов "
+"кроме индикаторов"
+
+#: prefs.js:348
+msgid "Use System Color Scheme"
+msgstr "Использовать схему цветов системы"
+
+#: prefs.js:348
+msgid ""
+"Enabling it will allow changing font color dynamically based on panel color"
+msgstr ""
+"Если включено, цвет шрифта будет динамически изменяться в зависимости от цвета панели"
+
+#: prefs.js:352
+msgid "Upload Speed Color"
+msgstr "Цвет скорости загрузки"
+
+#: prefs.js:352
+msgid "Select the upload speed color"
+msgstr "Выберите цвет скорости загрузки"
+
+#: prefs.js:356
+msgid "Download Speed Color"
+msgstr "Цвет скорости скачивания"
+
+#: prefs.js:356
+msgid "Select the download speed color"
+msgstr "Выберите цвет скорости скачивания"
+
+#: prefs.js:360
+msgid "Total Speed Color"
+msgstr "Цвет общей скорости"
+
+#: prefs.js:360
+msgid "Select the total speed color"
+msgstr "Выберите цвет общей скорости"
+
+#: prefs.js:364
+msgid "Total Download Color"
+msgstr "Цвет цвета общего скачивания"
+
+#: prefs.js:364
+msgid "Select the total download color"
+msgstr "Выберите цвет общего скачивания"
diff --git a/prefs.js b/prefs.js
index 4929dc7..41c6edf 100644
--- a/prefs.js
+++ b/prefs.js
@@ -50,14 +50,15 @@ function newGtkBox() {
class NssSpinBtn {
constructor(name, whichHbox, getLbl = "", getTooTip = "", lwer, uper, stpInc = 1, digs = 0, nume = true, pgeInc = 1, pgeSiz = 0, clmrate = 1) {
let boolComp = (currentSettings[name] === settings.get_default_value(name).unpack())
- getLbl = boolComp ? getLbl :
- `${getLbl}`
+ getLbl = boolComp ? getLbl : `${getLbl}`
+
let whichLbl = new Gtk.Label({
- label: getLbl,
+ label: _(getLbl),
use_markup: true,
xalign: 0,
- tooltip_text: getTooTip
+ tooltip_text: _(getTooTip)
})
+
let whichSpinBtn = new Gtk.SpinButton({
adjustment: new Gtk.Adjustment({
lower: lwer,
@@ -70,6 +71,7 @@ class NssSpinBtn {
digits: digs,
numeric: nume,
})
+
whichSpinBtn.set_value(currentSettings[name])
whichSpinBtn.connect('value-changed', () => {
this.rTValue = parseFloat(whichSpinBtn.get_value().toFixed(1))
@@ -77,13 +79,12 @@ class NssSpinBtn {
settings.set_double(name, this.rTValue)
settings.set_boolean('restartextension', true)
}
-
currentSettings[name] = this.rTValue
})
+
whichLbl.set_hexpand(true)
addIt(whichHbox, whichLbl)
addIt(whichHbox, whichSpinBtn)
-
addIt(vbox, whichHbox)
}
}
@@ -91,36 +92,34 @@ class NssSpinBtn {
class NssComboBox {
constructor(name, whichHbox, getLbl, aRray = [], getTooTip = "") {
let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack())
- getLbl = boolComp ? getLbl :
- `${getLbl}`
- let tootext = boolComp ? "" : "The Value is Changed"
+ getLbl = boolComp ? getLbl : `${getLbl}`
+ let tootext = boolComp ? "" : _("The Value is Changed")
let whichLbl = new Gtk.Label({
- label: getLbl,
+ label: _(getLbl),
use_markup: true,
xalign: 0,
- tooltip_text: getTooTip
+ tooltip_text: _(getTooTip)
})
+
let whichVlue = new Gtk.ComboBoxText({
halign: Gtk.Align.END,
- tooltip_text: tootext
+ tooltip_text: _(tootext)
})
- aRray.forEach((val, _, __) => whichVlue.append_text(val))
-
-
+ aRray.forEach((val) => whichVlue.append_text(_(val)))
whichVlue.set_active(currentSettings[name])
+
whichVlue.connect('changed', (widget) => {
let valueMode = widget.get_active()
settings.set_int(name, valueMode)
settings.set_boolean('restartextension', true)
-
currentSettings[name] = valueMode
})
+
whichLbl.set_hexpand(true)
addIt(whichHbox, whichLbl)
addIt(whichHbox, whichVlue)
-
addIt(vbox, whichHbox)
}
}
@@ -130,75 +129,72 @@ class NssToggleBtn {
let boolComp = true
if (func == undefined) {
boolComp = (currentSettings[name] == settings.get_default_value(name).unpack())
- getLbl = boolComp ? getLbl :
- `${getLbl}`
+ getLbl = boolComp ? getLbl : `${getLbl}`
}
- let tootext = boolComp ? "" : "The Value is Changed"
+ let tootext = boolComp ? "" : _("The Value is Changed")
+
let whichLbl = new Gtk.Label({
- label: getLbl,
+ label: _(getLbl),
use_markup: true,
xalign: 0,
- tooltip_text: getTooTip
+ tooltip_text: _(getTooTip)
})
+
let whichVlue = new Gtk.Switch({
active: name ? currentSettings[name] : false,
- tooltip_text: tootext
+ tooltip_text: _(tootext)
})
+
whichVlue.connect('notify::active', (widget) => {
- if (func != undefined)
- func(widget.active)
+ if (func != undefined) func(widget.active)
else {
settings.set_boolean(name, widget.active)
settings.set_boolean('restartextension', true)
}
-
currentSettings[name] = widget.active
})
whichLbl.set_hexpand(true)
addIt(whichHbox, whichLbl)
addIt(whichHbox, whichVlue)
-
addIt(vbox, whichHbox)
}
}
class NssColorBtn {
constructor(whichHbox, getLbl, name, getToolTip = "") {
- //Deterime whether the option value is changed from default value
+ // Determine whether the option value is changed from default value
let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack())
getLbl = boolComp ? getLbl : `${getLbl}`
- let tootext = boolComp ? "" : "The Value is Changed"
+ let tootext = boolComp ? "" : _("The Value is Changed")
- //Create the option name
+ //Create the option name
let whichLbl = new Gtk.Label({
- label: getLbl,
+ label: _(getLbl),
use_markup: true,
xalign: 0,
- tooltip_text: getToolTip
+ tooltip_text: _(getToolTip)
})
- //Create RGBA
+ //Create RGBA
let rgba = new Gdk.RGBA()
rgba.parse(currentSettings[name])
- //Create ColorButton
+ //Create ColorButton
let colorButton = new Gtk.ColorButton({
- tooltip_text: tootext
+ tooltip_text: _(tootext)
})
colorButton.set_rgba(rgba)
colorButton.connect('color-set', (widget) => {
rgba = widget.get_rgba()
settings.set_string(name, rgba.to_string())
settings.set_boolean('restartextension', true)
-
currentSettings[name] = rgba.to_string()
})
whichLbl.set_hexpand(true)
addIt(whichHbox, whichLbl)
addIt(whichHbox, colorButton)
-
addIt(vbox, whichHbox)
}
}
@@ -206,35 +202,32 @@ class NssColorBtn {
class NssEntry {
constructor(whichHbox, getLbl, name, getTooTip = "", func) {
let boolComp = (currentSettings[name] == settings.get_default_value(name).unpack())
- getLbl = boolComp ? getLbl :
- `${getLbl}`
- let tootext = boolComp ? "" : "The Value is Changed"
+ getLbl = boolComp ? getLbl : `${getLbl}`
+ let tootext = boolComp ? "" : _("The Value is Changed")
+
let whichLbl = new Gtk.Label({
- label: getLbl,
+ label: _(getLbl),
use_markup: true,
xalign: 0,
- tooltip_text: getTooTip
+ tooltip_text: _(getTooTip)
})
+
let whichVlue = new Gtk.Entry({
text: currentSettings[name],
- tooltip_text: tootext,
- placeholder_text: "Press Enter to apply"
+ tooltip_text: _(tootext),
+ placeholder_text: _("Press Enter to apply")
})
+
whichVlue.connect('activate', (widget) => {
settings.set_string(name, widget.get_text())
- if (func != undefined) {
- func(widget.active)
- } else {
- settings.set_boolean('restartextension', true)
- }
-
+ if (func != undefined) func(widget.active)
+ else settings.set_boolean('restartextension', true)
currentSettings[name] = widget.get_text()
})
whichLbl.set_hexpand(true)
addIt(whichHbox, whichLbl)
addIt(whichHbox, whichVlue)
-
addIt(vbox, whichHbox)
}
}
@@ -243,24 +236,26 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences
getPreferencesWidget() {
settings = this.getSettings(schema)
window._settings = settings
-
fetchSettings()
let frame = new Gtk.ScrolledWindow()
+
let label = new Gtk.Label({
- label: "General Settings",
+ label: _("General Settings"),
use_markup: true,
xalign: 0,
margin_top: 15
})
+
vbox = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL,
margin_start: 25,
margin_end: 25,
vexpand: true,
})
+
let resetBtn = new Gtk.Button({
- label: "Restore Defaults",
+ label: _("Restore Defaults"),
margin_bottom: 15
})
@@ -269,114 +264,108 @@ export default class NetSpeedSimplifiedPreferences extends ExtensionPreferences
let intArray = ["wpos", "wposext", "mode", "fontmode", "chooseiconset", "textalign"]
let doubleArray = ["refreshtime", "minwidth"]
let boolArray = ["isvertical", "togglebool", "reverseindicators", "lockmouseactions", "hideindicator", "shortenunits", "iconstoright"]
- for (const i in strArray) {
- settings.set_string(strArray[i], settings.get_default_value(strArray[i]).unpack())
- }
- for (const j in intArray) {
- settings.set_int(intArray[j], settings.get_default_value(intArray[j]).unpack())
- }
- for (const k in doubleArray) {
- settings.set_double(doubleArray[k], settings.get_default_value(doubleArray[k]).unpack())
- }
- for (const l in boolArray) {
- settings.set_boolean(boolArray[l], settings.get_default_value(boolArray[l]).unpack())
- }
+
+ for (const i in strArray) settings.set_string(strArray[i], settings.get_default_value(strArray[i]).unpack())
+ for (const j in intArray) settings.set_int(intArray[j], settings.get_default_value(intArray[j]).unpack())
+ for (const k in doubleArray) settings.set_double(doubleArray[k], settings.get_default_value(doubleArray[k]).unpack())
+ for (const l in boolArray) settings.set_boolean(boolArray[l], settings.get_default_value(boolArray[l]).unpack())
+
settings.set_boolean('restartextension', true)
fetchSettings()
})
addIt(vbox, label)
- // For Position
+ // For Position
let hboxWPos = newGtkBox()
- new NssComboBox("wpos", hboxWPos, "Position on the Panel", ["Right", "Left", "Center"], "Choose where to Place the extension on the Panel")
+ new NssComboBox("wpos", hboxWPos, _("Position on the Panel"), [_("Right"), _("Left"), _("Center")], _("Choose where to Place the extension on the Panel"))
- // For Position Extras
+ // For Position Extras
let hboxWPosExt = newGtkBox()
- new NssComboBox("wposext", hboxWPosExt, "Position(Advanced)", ["Prefer Right Side", "Prefer Left Side"], "Choose further where to Place the extension")
+ new NssComboBox("wposext", hboxWPosExt, _("Position(Advanced)"), [_("Prefer Right Side"), _("Prefer Left Side")], _("Choose further where to Place the extension"))
- // Refresh time
+ // Refresh time
let hboxRTime = newGtkBox()
- new NssSpinBtn("refreshtime", hboxRTime, "Refresh Time", "Change Refresh time value from anywhere b/w 1 to 10", 1.0, 10.0, .1, 1)
+ new NssSpinBtn("refreshtime", hboxRTime, _("Refresh Time"), _("Change Refresh time value from anywhere b/w 1 to 10"), 1.0, 10.0, .1, 1)
- // For Modes
+ // For Modes
let hboxMode = newGtkBox()
- new NssComboBox("mode", hboxMode, "Mode", ["Mode 1", "Mode 2", "Mode 3", "Mode 4", "Mode 5"], "Choose which mode to load")
+ new NssComboBox("mode", hboxMode, _("Mode"), [_("Mode 1"), _("Mode 2"), _("Mode 3"), _("Mode 4"), _("Mode 5")], _("Choose which mode to load"))
- // For FontModes
+ // For FontModes
let hboxFontMode = newGtkBox()
- new NssComboBox("fontmode", hboxFontMode, "Font Mode", ["Default", "Smallest", "Smaller", "Small", "Large"], "Choose which font to display")
+ new NssComboBox("fontmode", hboxFontMode, _("Font Mode"), [_("Default"), _("Smallest"), _("Smaller"), _("Small"), _("Large")], _("Choose which font to display"))
- // For Vertical Alignment
+ // For Vertical Alignment
let hboxVertical = newGtkBox()
- new NssToggleBtn(hboxVertical, "Vertical Align", "isvertical", "Changing it will toggle Vertical Alignment")
+ new NssToggleBtn(hboxVertical, _("Vertical Align"), "isvertical", _("Changing it will toggle Vertical Alignment"))
- // For Default sigma View
+ // For Default sigma View
let hboxToggleBool = newGtkBox()
- new NssToggleBtn(hboxToggleBool, "Show Total Data Transfer", "togglebool", "Enabling it will always show the sigma")
+ new NssToggleBtn(hboxToggleBool, _("Show Total Data Transfer"), "togglebool", _("Enabling it will always show the sigma"))
- // For Toggling Old Icons
+ // For Toggling Old Icons
let hboxIconset = newGtkBox()
- new NssComboBox("chooseiconset", hboxIconset, "Choose Icons Set", [" ⬇, ⬆", " 🡳, 🡱", " ↓, ↑"], "Choose which icon set to display")
+ new NssComboBox("chooseiconset", hboxIconset, _("Choose Icons Set"), [_(" ⬇, ⬆"), _(" ↓, ↑")], _("Choose which icon set to display"))
- // Text align for net speed
+ // Text align for net speed
let hboxText = newGtkBox()
- new NssComboBox("textalign", hboxText, "Text Align", ["Left", "Right", "Center"], "Align Text of net speed")
+ new NssComboBox("textalign", hboxText, _("Text Align"), [_("Left"), _("Right"), _("Center")], _("Align Text of net speed"))
- // Toggle icon to right
+ // Toggle icon to right
let hboxIconsRight = newGtkBox()
- new NssToggleBtn(hboxIconsRight, "Move icons to the right", "iconstoright", "Move icons to the right")
+ new NssToggleBtn(hboxIconsRight, _("Move icons to the right"), "iconstoright", _("Move icons to the right"))
- // For Limiting upper limit of speed
+ // For Limiting upper limit of speed
let hboxLimitUnit = newGtkBox()
- new NssComboBox("limitunit", hboxLimitUnit, "Limit Unit", ["(None)", 'K', 'M', 'G', 'T', 'P', 'E', 'Z'], "Choose unit limitation set to display")
+ new NssComboBox("limitunit", hboxLimitUnit, _("Limit Unit"), [_("(None)"), _("K"), _("M"), _("G"), _("T"), _("P"), _("E"), _("Z")], _("Choose unit limitation set to display"))
- // For Hide When Disconnected
+ // For Hide When Disconnected
let hboxHideInd = newGtkBox()
- new NssToggleBtn(hboxHideInd, "Hide When Disconnected", "hideindicator", "Enabling it will Hide Indicator when disconnected")
+ new NssToggleBtn(hboxHideInd, _("Hide When Disconnected"), "hideindicator", _("Enabling it will Hide Indicator when disconnected"))
- // For Shorten Units
+ // For Shorten Units
let hboxShUni = newGtkBox()
- new NssToggleBtn(hboxShUni, "Shorten Units", "shortenunits", "Enabling it will result in shorten units like K instead of KB")
+ new NssToggleBtn(hboxShUni, _("Shorten Units"), "shortenunits", _("Enabling it will result in shorten units like K instead of KB"))
- // For Reversing the download and upload indicators
+ // For Reversing the download and upload indicators
let hboxRevInd = newGtkBox()
- new NssToggleBtn(hboxRevInd, "Show Upload First", "reverseindicators", "Enabling it will reverse the upload and download speed indicators")
+ new NssToggleBtn(hboxRevInd, _("Show Upload First"), "reverseindicators", _("Enabling it will reverse the upload and download speed indicators"))
- // For Lock Mouse Actions
+ // For Lock Mouse Actions
let hboxLckMuseAct = newGtkBox()
- new NssToggleBtn(hboxLckMuseAct, "Lock Mouse Actions", "lockmouseactions", "Enabling it will Lock Mouse Actions")
+ new NssToggleBtn(hboxLckMuseAct, _("Lock Mouse Actions"), "lockmouseactions", _("Enabling it will Lock Mouse Actions"))
- // Minimum Width
+ // Minimum Width
let hboxMinWidth = newGtkBox()
- new NssSpinBtn("minwidth", hboxMinWidth, "Minimum Width", "Change Minimum Width value from anywhere b/w 3em to 10em", 3.0, 10.0, .5, 1)
+ new NssSpinBtn("minwidth", hboxMinWidth, _("Minimum Width"), _("Change Minimum Width value from anywhere b/w 3em to 10em"), 3.0, 10.0, .5, 1)
- // For Custom Font name
+ // For Custom Font name
let hboxCustFont = newGtkBox()
- new NssEntry(hboxCustFont, "Custom Font Name", "customfont", "Enter the font name you want, you can also write style here for all elements except indicators")
+ new NssEntry(hboxCustFont, _("Custom Font Name"), "customfont", _("Enter the font name you want, you can also write style here for all elements except indicators"))
- // For Custom Font name
+ // For Custom Font name
let hboxSysColr = newGtkBox()
- new NssToggleBtn(hboxSysColr, "Use System Color Scheme", "systemcolr", "Enabling it will allow changing font color dynamically based on panel color")
+ new NssToggleBtn(hboxSysColr, _("Use System Color Scheme"), "systemcolr", _("Enabling it will allow changing font color dynamically based on panel color"))
- // Upload Speed Color
+ // Upload Speed Color
let usColorButton = newGtkBox()
- new NssColorBtn(usColorButton, "Upload Speed Color", "uscolor", "Select the upload speed color")
+ new NssColorBtn(usColorButton, _("Upload Speed Color"), "uscolor", _("Select the upload speed color"))
- // Download Speed Color
+ // Download Speed Color
let dsColorButton = newGtkBox()
- new NssColorBtn(dsColorButton, "Download Speed Color", "dscolor", "Select the download speed color")
+ new NssColorBtn(dsColorButton, _("Download Speed Color"), "dscolor", _("Select the download speed color"))
- // Total Speed Color
+ // Total Speed Color
let tsColorButton = newGtkBox()
- new NssColorBtn(tsColorButton, "Total Speed Color", "tscolor", "Select the total speed color")
+ new NssColorBtn(tsColorButton, _("Total Speed Color"), "tscolor", _("Select the total speed color"))
- // Total Download Color
+ // Total Download Color
let tdColorButton = newGtkBox()
- new NssColorBtn(tdColorButton, "Total Download Color", "tdcolor", "Select the total download color")
+ new NssColorBtn(tdColorButton, _("Total Download Color"), "tdcolor", _("Select the total download color"))
addIt(vbox, resetBtn)
frame.child = vbox
-
+
return frame
}
}