diff --git a/makedeb/PKGBUILD b/makedeb/PKGBUILD
index 761c1d25..56b921be 100644
--- a/makedeb/PKGBUILD
+++ b/makedeb/PKGBUILD
@@ -1,6 +1,6 @@
# Maintainer: Hunter Wittenborn
pkgname=celeste
-pkgver=0.8.1
+pkgver=0.8.2
pkgrel=1
pkgdesc='Sync your cloud files'
arch=('any')
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 00000000..68125e36
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,380 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-23 20:35+0000\n"
+"PO-Revision-Date: 2023-10-30 18:02+0000\n"
+"Last-Translator: Ettore Atalan \n"
+"Language-Team: German \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"
+"X-Generator: Weblate 5.2-dev\n"
+
+#: src/about.rs:20
+msgid "App icons by"
+msgstr "App-Symbole von"
+
+#: src/gtk_util.rs:20 src/gtk_util.rs:43 src/launch.rs:614 src/launch.rs:776
+msgid "Ok"
+msgstr "Ok"
+
+#: src/launch.rs:99
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr ""
+"Sowohl '{}' als auch '{}' sind neuer als bei der letzten Synchronisation."
+
+#: src/launch.rs:158
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Konfigurationsverzeichnis von Celeste [{}] kann nicht erstellt werden."
+
+#: src/launch.rs:170
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Datenbankdatei von Celeste [{}] kann nicht erstellt werden."
+
+#: src/launch.rs:180
+msgid "Unable to connect to database [{}]."
+msgstr "Verbindung zur Datenbank [{}] nicht möglich."
+
+#: src/launch.rs:188
+msgid "Unable to run database migrations [{}]"
+msgstr "Datenbank-Migrationen können nicht ausgeführt werden [{}]"
+
+#: src/launch.rs:288
+msgid "Awaiting sync check..."
+msgstr "Warte auf Synchronisationsprüfung..."
+
+#: src/launch.rs:324
+msgid "Sync Errors"
+msgstr "Synchronisationsfehler"
+
+#: src/launch.rs:339
+msgid "File/Folder Exclusions"
+msgstr "Datei-/Ordnerausschlüsse"
+
+#: src/launch.rs:458
+msgid "Stop syncing this directory"
+msgstr "Dieses Verzeichnis nicht mehr synchronisieren"
+
+#: src/launch.rs:475
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Soll '{}' wirklich nicht mehr zu '{}' synchronisiert werden?"
+
+#: src/launch.rs:484
+msgid "This directory is currently being processed to no longer be synced."
+msgstr ""
+"Dieses Verzeichnis wird im Moment verarbeitet, sodass es künftig nicht mehr "
+"synchronisiert wird."
+
+#: src/launch.rs:574
+msgid "Directories"
+msgstr "Verzeichnisse"
+
+#. Get the local folder to sync with.
+#: src/launch.rs:597
+msgid "Local folder:"
+msgstr "Lokaler Ordner:"
+
+#: src/launch.rs:613 src/launch.rs:775 src/login/gdrive.rs:208
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: src/launch.rs:633
+msgid "Remote folder:"
+msgstr "Remote-Ordner:"
+
+#: src/launch.rs:820
+msgid "The specified remote directory doesn't exist"
+msgstr "Das angegebene Remote-Verzeichnis existiert nicht"
+
+#: src/launch.rs:828
+msgid "Failed to check if the specified remote directory exists"
+msgstr ""
+"Es konnte nicht überprüft werden, ob das angegebene Remote-Verzeichnis "
+"existiert"
+
+#: src/launch.rs:839
+msgid "The specified directory pair is already being synced"
+msgstr "Das angegebene Verzeichnispaar wird bereits synchronisiert"
+
+#: src/launch.rs:842
+msgid "The specified local directory doesn't exist"
+msgstr "Das angegebene lokale Verzeichnis existiert nicht"
+
+#: src/launch.rs:845
+msgid "The specified local path isn't a directory"
+msgstr "Der angegebene lokale Pfad ist kein Verzeichnis"
+
+#: src/launch.rs:848
+msgid "The specified local directory needs to be an absolute path"
+msgstr "Das angegebene lokale Verzeichnis muss ein absoluter Pfad sein"
+
+#: src/launch.rs:876
+msgid "Are you sure you want to delete this remote?"
+msgstr "Soll diese Gegenstelle wirklich gelöscht werden?"
+
+#: src/launch.rs:877
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Die Synchronisierung aller mit dieser Gegenstelle verknüpften Verzeichnisse "
+"wird ebenfalls beendet."
+
+#: src/launch.rs:1342 src/launch.rs:2509
+msgid "Files are synced."
+msgstr "Dateien sind synchronisiert."
+
+#: src/launch.rs:1352
+msgid "Syncing '{}'..."
+msgstr "Synchronisiere '{}'..."
+
+#: src/launch.rs:1373
+msgid "Checking for changes..."
+msgstr "Prüfe auf Änderungen..."
+
+#. Add an error for reporting in the UI.
+#: src/launch.rs:1380
+msgid "Please resolve the reported syncing issues."
+msgstr "Bitte die gemeldeten Synchronisierungsprobleme beheben."
+
+#: src/launch.rs:1407
+msgid "{} errors found. "
+msgstr "{} Fehler gefunden. "
+
+#: src/launch.rs:1421
+msgid "Would you like to dismiss this error?"
+msgstr "Soll dieser Fehler verworfen werden?"
+
+#: src/launch.rs:1448
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr ""
+"Die Synchronisierung von „{}“ mit „{}“ auf der Gegenstelle ist "
+"fehlgeschlagen."
+
+#: src/launch.rs:1456
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr ""
+"Die Synchronisierung von „{}“ auf der Gegenstelle mit „{}“ ist "
+"fehlgeschlagen."
+
+#: src/launch.rs:1481
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "Daten für '{}' können nicht von der Gegenstelle abgerufen werden."
+
+#: src/launch.rs:1490 src/launch.rs:1495 src/launch.rs:1503
+msgid "File Update"
+msgstr "Dateiaktualisierung"
+
+#: src/launch.rs:1490
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"Weder das lokale noch das Remote-Element existieren noch. Dieser Fehler wird "
+"nun entfernt."
+
+#: src/launch.rs:1495
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"Nur das lokale Element existiert nun und wird damit zur Gegenstelle "
+"synchronisiert."
+
+#: src/launch.rs:1503
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"Nur das Remote-Element existiert nun und wird damit zur lokalen Maschine "
+"synchronisiert."
+
+#: src/launch.rs:1513
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"Sowohl das lokale Element '{}' als auch das Remote-Element '{}' wurden seit "
+"der letzten Synchronisation aktualisiert."
+
+#: src/launch.rs:1515
+msgid "Which item would you like to keep?"
+msgstr "Welches Element soll behalten werden?"
+
+#: src/launch.rs:1517
+msgid "Local"
+msgstr "Lokal"
+
+#: src/launch.rs:1518
+msgid "Remote"
+msgstr "Remote"
+
+#: src/launch.rs:1567
+msgid "1 error found."
+msgstr "1 Fehler gefunden."
+
+#: src/launch.rs:1569
+msgid "{} errors found."
+msgstr "{} Fehler gefunden."
+
+#: src/launch.rs:1701
+msgid "Checking '{}' for changes..."
+msgstr "Prüfe '{}' auf Änderungen..."
+
+#: src/launch.rs:2117
+msgid "Checking '{}' on remote for changes..."
+msgstr "Prüfe '{}' auf der Gegenstelle auf Änderungen..."
+
+#: src/launch.rs:2530
+msgid "Finished sync checks with {} errors."
+msgstr "Synchronisationsprüfungen mit {} Fehlern abgeschlossen."
+
+#: src/launch.rs:2535
+msgid "Finished sync checks."
+msgstr "Synchronisationsprüfungen abgeschlossen."
+
+#: src/login/gdrive.rs:205
+msgid "Authenticating to {}..."
+msgstr "Authentifiziere bei {}..."
+
+#: src/login/gdrive.rs:206
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"Folgen Sie dem Link, der in Ihrem Browser geöffnet wurde, und kehren Sie "
+"zurück, wenn Sie fertig sind."
+
+#: src/login/gdrive.rs:233
+msgid "There was an issue while running the webserver for authentication"
+msgstr ""
+"Beim Ausführen des Webservers zur Authentifizierung ist ein Problem "
+"aufgetreten"
+
+#: src/login/gdrive.rs:242
+msgid "There was an issue authenticating to {}"
+msgstr "Es gab ein Problem bei der Authentifizierung bei {}"
+
+#: src/login/login_util.rs:15
+msgid "Server Name"
+msgstr "Servername"
+
+#: src/login/login_util.rs:27
+msgid "Server name already exists."
+msgstr "Servername existiert bereits."
+
+#: src/login/login_util.rs:29
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Ungültiger Servername. Servernamen dürfen:\n"
+"- Ausschließlich aus Zahlen, Buchstaben, '_', '-', '.', und Leerzeichen "
+"bestehen\n"
+"- Nicht mit einem '-' oder Leerzeichen beginnen\n"
+"- Nicht mit einem Leerzeichen enden"
+
+#: src/login/login_util.rs:43
+msgid "Server URL"
+msgstr "Server-URL"
+
+#: src/login/login_util.rs:49
+msgid "Invalid server URL ({})."
+msgstr "Ungültige Server-URL ({})."
+
+#: src/login/login_util.rs:58
+msgid "Invalid server URL (no domain specified)."
+msgstr "Ungültige Server-URL (keine Domain angegeben)."
+
+#: src/login/login_util.rs:62
+msgid "Invalid server URL (password was specified)."
+msgstr "Ungültige Server-URL (Password wurde angegeben)."
+
+#: src/login/login_util.rs:66
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Ungültige Server-URL (unbekanntes Serverschema {})."
+
+#: src/login/login_util.rs:78
+msgid "Don't specify '{}' as part of the URL."
+msgstr "'{}' darf nicht als Teil der URL angegeben werden."
+
+#: src/login/login_util.rs:91
+msgid "Username"
+msgstr "Benutzername"
+
+#: src/login/login_util.rs:97
+msgid "Password"
+msgstr "Passwort"
+
+#: src/login/login_util.rs:104
+msgid "2FA Code"
+msgstr "2FA-Code"
+
+#: src/login/login_util.rs:113
+msgid "The provided 2FA code is invalid (should only contain digits)."
+msgstr ""
+"Der bereitgestellte 2FA-Code ist ungültig (er sollte nur Ziffern enthalten)."
+
+#: src/login/login_util.rs:118
+msgid "The provided 2FA code is invalid (should be 6 digits long)."
+msgstr ""
+"Der bereitgestellte 2FA-Code ist ungültig (er sollte 6 Ziffern lang sein)."
+
+#: src/login/login_util.rs:142
+msgid "Log in"
+msgstr "Anmelden"
+
+#: src/login/mod.rs:77
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"Es kann keine Verbindung zum Server hergestellt werden. Überprüfen Sie Ihre "
+"Internetverbindung und versuchen Sie es erneut."
+
+#: src/login/mod.rs:80
+msgid "A 2FA code is required to log in to this account. Provide one and try again."
+msgstr ""
+"Für die Anmeldung bei diesem Konto ist ein 2FA-Code erforderlich. Geben Sie "
+"einen ein und versuchen Sie es erneut."
+
+#: src/login/mod.rs:83
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Die Authentifizierung beim Server ist nicht möglich. Überprüfen Sie Ihre "
+"Anmeldedaten und versuchen Sie es erneut."
+
+#: src/login/mod.rs:87
+msgid "Unable to log in"
+msgstr "Anmeldung nicht möglich"
+
+#. The dropdown for selecting the server type.
+#: src/login/mod.rs:124
+msgid "Server Type"
+msgstr "Servertyp"
+
+#: src/tray.rs:13
+msgid "Awaiting sync checks..."
+msgstr "Warte auf Synchronisationsprüfungen..."
+
+#: src/tray.rs:60
+msgid "Open"
+msgstr "Offen"
+
+#: src/tray.rs:67
+msgid "Close"
+msgstr "Geschlossen"
+
+#: src/main.rs:188
+msgid "Unknown Error"
+msgstr "Unbekannter Fehler"
+
+#: src/main.rs:195
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Bei der Ausführung ist ein unbekannter Fehler aufgetreten. Dies ist ein "
+"internes Problem mit Celeste und sollte gemeldet werden.\n"
+"\n"
+"Die folgende Rückverfolgung kann bei der Fehlersuche helfen. Beachten Sie, "
+"dass sie Informationen wie Anmeldetoken/-schlüssel enthalten kann, und "
+"vermeiden Sie es daher, die Informationen öffentlich zu verbreiten:"
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 00000000..2de036e2
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,357 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.4.6\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-02-25 02:14+0000\n"
+"PO-Revision-Date: 2023-05-01 19:13+0000\n"
+"Last-Translator: Konstantinos Polychronidis \n"
+"Language-Team: Greek \n"
+"Language: el\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"
+"X-Generator: Weblate 4.18-dev\n"
+
+#: celeste/src/gtk_util.rs:20 celeste/src/gtk_util.rs:43 celeste/src/launch.rs:681 celeste/src/launch.rs:819
+msgid "Ok"
+msgstr "Εντάξει"
+
+#: celeste/src/launch.rs:102
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr ""
+"Και τα δύο, '{}' και '{}', είναι πιο πρόσφατα από ότι στον τελευταίο "
+"συγχρονισμό."
+
+#: celeste/src/launch.rs:214
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Αδυναμία δημιουργίας του καταλόγου ρυθμίσεων του Celeste [{}]."
+
+#: celeste/src/launch.rs:226
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Αδυναμία δημιουργίας του αρχείου βάσης δεδομένων του Celeste [{}]."
+
+#: celeste/src/launch.rs:237
+msgid "Unable to connect to database [{}]."
+msgstr "Αδυναμία σύνδεσης στη βάση δεδομένων [{}]."
+
+#: celeste/src/launch.rs:247
+msgid "Unable to run database migrations [{}]"
+msgstr "Αδυναμία εκτέλεσης των μετακινήσεων της βάσης δεδομένων [{}]"
+
+#: celeste/src/launch.rs:354
+msgid "Awaiting sync check..."
+msgstr "Αναμονή ελέγχου συγχρονισμού..."
+
+#: celeste/src/launch.rs:390
+msgid "Sync Errors"
+msgstr "Σφάλματα συγχρονισμού"
+
+#: celeste/src/launch.rs:405
+msgid "File/Folder Exclusions"
+msgstr "Εξαιρέσεις αρχείων/φακέλων"
+
+#: celeste/src/launch.rs:524
+msgid "Stop syncing this directory"
+msgstr "Διακοπή συγχρονισμού αυτού του καταλόγου"
+
+#: celeste/src/launch.rs:541
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr ""
+"Είστε σίγουροι ότι θέλετε να σταματήσετε τον συγχρονισμό του '{}' προς το "
+"'{}';"
+
+#: celeste/src/launch.rs:550
+msgid "This directory is currently being processed to no longer be synced."
+msgstr ""
+"Αυτός ο κατάλογος υποβάλλεται αυτή τη στιγμή σε επεξεργασία ώστε να μην "
+"συγχρονίζεται πλέον."
+
+#: celeste/src/launch.rs:641
+msgid "Directories"
+msgstr "Κατάλογοι"
+
+#. Get the local folder to sync with.
+#: celeste/src/launch.rs:664
+msgid "Local folder:"
+msgstr "Τοπικός φάκελος:"
+
+#: celeste/src/launch.rs:680 celeste/src/launch.rs:818 celeste/src/login/gdrive.rs:197
+msgid "Cancel"
+msgstr "Άκυρο"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: celeste/src/launch.rs:700
+msgid "Remote folder:"
+msgstr "Απομακρυσμένος φάκελος:"
+
+#: celeste/src/launch.rs:863
+msgid "The specified remote directory doesn't exist"
+msgstr "Ο καθορισμένος απομακρυσμένος κατάλογος δεν υπάρχει"
+
+#: celeste/src/launch.rs:871
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Αποτυχία ελέγχου εάν ο καθορισμένος απομακρυσμένος διακομιστής υπάρχει"
+
+#: celeste/src/launch.rs:882
+msgid "The specified directory pair is already being synced"
+msgstr "Το καθορισμένο ζεύγος καταλόγων συγχρονίζεται ήδη"
+
+#: celeste/src/launch.rs:885
+msgid "The specified local directory doesn't exist"
+msgstr "Ο καθορισμένος τοπικός κατάλογος δεν υπάρχει"
+
+#: celeste/src/launch.rs:888
+msgid "The specified local path isn't a directory"
+msgstr "Το καθορισμένο τοπικό μονοπάτι δεν είναι κατάλογος"
+
+#: celeste/src/launch.rs:891
+msgid "The specified local directory needs to be an absolute path"
+msgstr "Ο καθορισμένος τοπικός κατάλογος χρειάζεται να είναι απόλυτο μονοπάτι"
+
+#: celeste/src/launch.rs:919
+msgid "Are you sure you want to delete this remote?"
+msgstr ""
+"Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον απομακρυσμένο διακομιστή;"
+
+#: celeste/src/launch.rs:920
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Όλοι οι κατάλογοι που σχετίζονται με αυτό το απομακρυσμένο στοιχείο θα "
+"σταματήσουν επίσης τον συγχρονισμό τους."
+
+#: celeste/src/launch.rs:1146 celeste-tray/src/main.rs:51
+msgid "Awaiting sync checks..."
+msgstr "Αναμονή για έλεγχο συγχρονισμού..."
+
+#. Notify the tray app that we're syncing this remote now.
+#: celeste/src/launch.rs:1242
+msgid "Syncing '{}'..."
+msgstr "Συγχρονισμός του '{}'..."
+
+#: celeste/src/launch.rs:1277
+msgid "Checking for changes..."
+msgstr "Έλεγχος για αλλαγές..."
+
+#. Add an error for reporting in the UI.
+#: celeste/src/launch.rs:1284
+msgid "Please resolve the reported syncing issues."
+msgstr "Παρακαλούμε επιλύστε τα αναφερόμενα προβλήματα συγχρονισμού."
+
+#: celeste/src/launch.rs:1311
+msgid "{} errors found. "
+msgstr "Βρέθηκαν {} σφάλματα. "
+
+#: celeste/src/launch.rs:1325
+msgid "Would you like to dismiss this error?"
+msgstr "Θέλετε να αγνοήσετε αυτό το σφάλμα;"
+
+#: celeste/src/launch.rs:1352
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr ""
+"Αποτυχία συγχρονισμού του '{}' με το '{}' στον απομακρυσμένο διακομιστή."
+
+#: celeste/src/launch.rs:1360
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr ""
+"Αποτυχία συγχρονισμού του '{}' από τον απομακρυσμένο διακομιστή στο '{}' ."
+
+#: celeste/src/launch.rs:1385
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "Αδυναμία λήψης δεδομένων για το '{}' από τον απομακρυσμένο διακομιστή."
+
+#: celeste/src/launch.rs:1394 celeste/src/launch.rs:1399 celeste/src/launch.rs:1407
+msgid "File Update"
+msgstr "Ενημέρωση αρχείου"
+
+#: celeste/src/launch.rs:1394
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"Ούτε το τοπικό αντικείμενο, ούτε το απομακρυσμένο αντικείμενο υπάρχει πλέον. "
+"Αυτό το σφάλμα θα αφαιρεθεί τώρα."
+
+#: celeste/src/launch.rs:1399
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"Υπάρχει μόνο το τοπικό αντικείμενο αυτή τη στιγμή, οπότε θα συγχρονιστεί "
+"προς τον απομακρυσμένο διακομιστή."
+
+#: celeste/src/launch.rs:1407
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"Υπάρχει μόνο το αντικείμενο στον απομακρυσμένο διακομιστή αυτή τη στιγμή, "
+"οπότε θα συγχρονιστεί προς την τοπική μηχανή."
+
+#: celeste/src/launch.rs:1417
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"Και το τοπικό αντικείμενο '{}' και το απομακρυσμένο αντικείμενο '{}' έχουν "
+"ενημερωθεί από τον τελευταίο συγχρονισμό."
+
+#: celeste/src/launch.rs:1419
+msgid "Which item would you like to keep?"
+msgstr "Ποιο αντικείμενο θέλετε να κρατήσετε;"
+
+#: celeste/src/launch.rs:1421
+msgid "Local"
+msgstr "Τοπικό"
+
+#: celeste/src/launch.rs:1422
+msgid "Remote"
+msgstr "Απομακρυσμένο"
+
+#: celeste/src/launch.rs:1471
+msgid "1 error found."
+msgstr "Βρέθηκε 1 σφάλμα."
+
+#: celeste/src/launch.rs:1473
+msgid "{} errors found."
+msgstr "Βρέθηκαν {} σφάλματα."
+
+#: celeste/src/launch.rs:1605
+msgid "Checking '{}' for changes..."
+msgstr "Έλεγχος του '{}' για αλλαγές..."
+
+#: celeste/src/launch.rs:2021
+msgid "Checking '{}' on remote for changes..."
+msgstr "Έλεγχος του '{}' για αλλαγές στον απομακρυσμένο υπολογιστή..."
+
+#: celeste/src/launch.rs:2412
+msgid "Directory has finished sync checks."
+msgstr "Ο έλέγχος συγχρονισμού για τον κατάλογο ολοκληρώθηκε."
+
+#: celeste/src/launch.rs:2432
+msgid "Finished sync checks with {} errors."
+msgstr "Ο έλεγχος συγχρονισμού ολοκληρώθηκε με {} σφάλματα."
+
+#: celeste/src/login/gdrive.rs:194
+msgid "Authenticating to {}..."
+msgstr "Έλεγχος διαπιεστευτηρίων για το {}..."
+
+#: celeste/src/login/gdrive.rs:195
+msgid "Open the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"Ακολουθήστε τον σύνδεσμο που άνοιξε στον φυλλομετρητή σας και επιστρέψτε "
+"στην εφαρμογή όταν είστε έτοιμοι."
+
+#: celeste/src/login/gdrive.rs:222
+msgid "There was an issue while running the webserver for authentication"
+msgstr ""
+"Παρουσιάστηκε πρόβλημα κατά την εκτέλεση του διακομιστή ιστού (webserver) "
+"για ταυτοποίηση στοιχείων"
+
+#: celeste/src/login/gdrive.rs:231
+msgid "There was an issue authenticating to {}"
+msgstr "Παρουσιάστηκε πρόβλημα κατά την ταυτοποίηση στο {}"
+
+#: celeste/src/login/login_util.rs:14
+msgid "Server Name"
+msgstr "Όνομα διακομιστή"
+
+#: celeste/src/login/login_util.rs:26
+msgid "Server name already exists."
+msgstr "Το όνομα του διακομιστή υπάρχει ήδη."
+
+#: celeste/src/login/login_util.rs:28
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Μη έγκυρο όνομα διακομιστή. Τα ονόματα διακομιστή πρέπει:\n"
+"- Να περιέχουν μόνο αριθμούς, γράμματα, '_', '-', '.', και κενά\n"
+"- Να μην ξεκινούν με '-' ή κενό\n"
+"- Να μην τελειώνουν με κενό"
+
+#: celeste/src/login/login_util.rs:42
+msgid "Server URL"
+msgstr "Διεύθυνση URL του διακομιστή"
+
+#: celeste/src/login/login_util.rs:48
+msgid "Invalid server URL ({})."
+msgstr "Μη έγκυρη διεύθυνση URL του διακομιστή ({})."
+
+#: celeste/src/login/login_util.rs:57
+msgid "Invalid server URL (no domain specified)."
+msgstr ""
+"Μη έγκυρη διεύθυνση URL διακομιστή [δεν έχει καθοριστεί τομέας (domain)]."
+
+#: celeste/src/login/login_util.rs:61
+msgid "Invalid server URL (password was specified)."
+msgstr "Μη έγκυρο URL διακομιστή (καθορίστηκε κωδικός πρόσβασης)."
+
+#: celeste/src/login/login_util.rs:65
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Μη έγκυρο URL διακομιστή (αγνωστό σχήμα διακομιστή {})."
+
+#: celeste/src/login/login_util.rs:77
+msgid "Don't specify '{}' as part of the URL."
+msgstr "Να μην καθορίζεται το '{}' ως μέρος του URL."
+
+#: celeste/src/login/login_util.rs:90
+msgid "Username"
+msgstr "Όνομα χρήστη"
+
+#: celeste/src/login/login_util.rs:96
+msgid "Password"
+msgstr "Κωδικός πρόσβασης"
+
+#: celeste/src/login/login_util.rs:102
+msgid "Log in"
+msgstr "Σύνδεση"
+
+#: celeste/src/login/mod.rs:82
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"Αδυναμία σύνδεσης στον διακομιστή. Ελέγξτε τη σύνδεσή σας στο διαδίκτυο και "
+"δοκιμάστε ξανά."
+
+#: celeste/src/login/mod.rs:86
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Αδυναμία πιστοποίησης στο διακομιστή. Ελέγξτε τα διαπιστευτήριά σας (όνομα "
+"χρήστη/κωδικό πρόσβασης) και προσπαθήστε ξανά."
+
+#: celeste/src/login/mod.rs:91
+msgid "Unable to log in"
+msgstr "Αδυναμία σύνδεσης"
+
+#. The dropdown for selecting the server type.
+#: celeste/src/login/mod.rs:147
+msgid "Server Type"
+msgstr "Τύπος διακομιστή"
+
+#: celeste/src/main.rs:187
+msgid "Unknown Error"
+msgstr "Άγνωστο σφάλμα"
+
+#: celeste/src/main.rs:194
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Παρουσιάστηκε άγνωστο σφάλμα κατά την εκτέλεση. Αφορά σε ένα εσωτερικό "
+"πρόβλημα με το Celeste και καλό θα ήταν να αναφερθεί.\n"
+"\n"
+"Η παρακάτω αναφορά (backtrace) μπορεί να βοηθήσει στον εντοπισμό του "
+"προβλήματος - σημειώστε ότι μπορεί να περιέχει πληροφορίες όπως διακριτικά/"
+"κλειδιά σύνδεσης, επομένως αποφύγετε να δημοσιεύσετε τις πληροφορίες δημόσια:"
+
+#: celeste-tray/src/main.rs:54
+msgid "Open"
+msgstr "Άνοιγμα"
+
+#: celeste-tray/src/main.rs:55
+msgid "Quit"
+msgstr "Έξοδος"
+
+#: celeste-tray/src/main.rs:116
+msgid "Quitting..."
+msgstr "Έξοδος..."
diff --git a/po/es.po b/po/es.po
index 383f7fad..66144b42 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,74 +8,75 @@ msgstr ""
"Project-Id-Version: Celeste 0.4.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-25 02:14+0000\n"
-"PO-Revision-Date: 2023-02-25 20:39+0000\n"
-"Last-Translator: Twilight is-the-best \n"
-"Language-Team: Spanish \n"
+"PO-Revision-Date: 2023-12-31 00:12+0000\n"
+"Last-Translator: Óscar Fernández Díaz \n"
+"Language-Team: Spanish \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"
-"X-Generator: Weblate 4.15.2\n"
+"X-Generator: Weblate 5.4-dev\n"
#: celeste/src/gtk_util.rs:20 celeste/src/gtk_util.rs:43
#: celeste/src/launch.rs:681 celeste/src/launch.rs:819
msgid "Ok"
-msgstr "Ok"
+msgstr "Vale"
#: celeste/src/launch.rs:102
msgid "Both '{}' and '{}' are more recent than at last sync."
-msgstr ""
+msgstr "Tanto '{}' como '{}' son más recientes que en la última sincronización."
#: celeste/src/launch.rs:214
msgid "Unable to create Celeste's config directory [{}]."
-msgstr ""
+msgstr "No se ha podido crear el directorio de configuración de Celeste [{}]."
#: celeste/src/launch.rs:226
msgid "Unable to create Celeste's database file [{}]."
-msgstr ""
+msgstr "No se ha podido crear el archivo de base de datos de Celeste [{}]."
#: celeste/src/launch.rs:237
msgid "Unable to connect to database [{}]."
-msgstr ""
+msgstr "No se ha podido conectar con la base de datos [{}]."
#: celeste/src/launch.rs:247
msgid "Unable to run database migrations [{}]"
-msgstr ""
+msgstr "No se pueden ejecutar migraciones de bases de datos [{}]"
#: celeste/src/launch.rs:354
msgid "Awaiting sync check..."
-msgstr ""
+msgstr "Esperando comprobación de sincronización…"
#: celeste/src/launch.rs:390
msgid "Sync Errors"
-msgstr ""
+msgstr "Errores de sincronización"
#: celeste/src/launch.rs:405
msgid "File/Folder Exclusions"
-msgstr ""
+msgstr "Exclusiones de archivos/carpetas"
#: celeste/src/launch.rs:524
msgid "Stop syncing this directory"
-msgstr ""
+msgstr "Dejar de sincronizar este directorio"
#: celeste/src/launch.rs:541
msgid "Are you sure you want to stop syncing '{}' to '{}'?"
-msgstr ""
+msgstr "¿Está seguro de que quiere dejar de sincronizar '{}' con '{}'?"
#: celeste/src/launch.rs:550
msgid "This directory is currently being processed to no longer be synced."
-msgstr ""
+msgstr "Este directorio está siendo procesado para dejar de estar sincronizado."
#: celeste/src/launch.rs:641
msgid "Directories"
-msgstr ""
+msgstr "Directorios"
#. Get the local folder to sync with.
#: celeste/src/launch.rs:664
msgid "Local folder:"
-msgstr ""
+msgstr "Carpeta local:"
#: celeste/src/launch.rs:680 celeste/src/launch.rs:818
#: celeste/src/login/gdrive.rs:197
@@ -86,165 +87,177 @@ msgstr "Cancelar"
#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
#: celeste/src/launch.rs:700
msgid "Remote folder:"
-msgstr ""
+msgstr "Carpeta remota:"
#: celeste/src/launch.rs:863
msgid "The specified remote directory doesn't exist"
-msgstr ""
+msgstr "El directorio remoto especificado no existe"
#: celeste/src/launch.rs:871
msgid "Failed to check if the specified remote directory exists"
-msgstr ""
+msgstr "Error al comprobar si existe el directorio remoto especificado"
#: celeste/src/launch.rs:882
msgid "The specified directory pair is already being synced"
-msgstr ""
+msgstr "El par de directorios especificado ya se está sincronizando"
#: celeste/src/launch.rs:885
msgid "The specified local directory doesn't exist"
-msgstr ""
+msgstr "El directorio local especificado no existe"
#: celeste/src/launch.rs:888
msgid "The specified local path isn't a directory"
-msgstr ""
+msgstr "La ruta local especificada no es un directorio"
#: celeste/src/launch.rs:891
msgid "The specified local directory needs to be an absolute path"
-msgstr ""
+msgstr "El directorio local especificado debe ser una ruta absoluta"
#: celeste/src/launch.rs:919
msgid "Are you sure you want to delete this remote?"
-msgstr ""
+msgstr "¿Seguro que quiere borrar este remoto?"
#: celeste/src/launch.rs:920
msgid "All the directories associated with this remote will also stop syncing."
msgstr ""
+"Todos los directorios asociados a este remoto también dejarán de "
+"sincronizarse."
#: celeste/src/launch.rs:1146 celeste-tray/src/main.rs:51
msgid "Awaiting sync checks..."
-msgstr ""
+msgstr "Esperando comprobaciones de sincronización…"
#. Notify the tray app that we're syncing this remote now.
#: celeste/src/launch.rs:1242
msgid "Syncing '{}'..."
-msgstr ""
+msgstr "Sincronizando '{}'…"
#: celeste/src/launch.rs:1277
msgid "Checking for changes..."
-msgstr ""
+msgstr "Comprobando si hay cambios…"
#. Add an error for reporting in the UI.
#: celeste/src/launch.rs:1284
msgid "Please resolve the reported syncing issues."
-msgstr ""
+msgstr "Por favor, solucione los problemas de sincronización reportados."
#: celeste/src/launch.rs:1311
msgid "{} errors found. "
-msgstr ""
+msgstr "{} errores encontrados. "
#: celeste/src/launch.rs:1325
msgid "Would you like to dismiss this error?"
-msgstr ""
+msgstr "¿Desea descartar este error?"
#: celeste/src/launch.rs:1352
msgid "Failed to sync '{}' to '{}' on remote."
-msgstr ""
+msgstr "Error al sincronizar '{}' con '{}' en remoto."
#: celeste/src/launch.rs:1360
msgid "Failed to sync '{}' on remote to '{}'."
-msgstr ""
+msgstr "Error al sincronizar '{}' en remoto con '{}'."
#: celeste/src/launch.rs:1385
msgid "Unable to fetch data for '{}' from the remote."
-msgstr ""
+msgstr "No se han podido obtener los datos de '{}' del remoto."
#: celeste/src/launch.rs:1394 celeste/src/launch.rs:1399
#: celeste/src/launch.rs:1407
msgid "File Update"
-msgstr ""
+msgstr "Actualización de archivos"
#: celeste/src/launch.rs:1394
msgid ""
"Neither the local item or remote item exists anymore. This error will now be "
"removed."
msgstr ""
+"Ya no existe ni el elemento local ni el elemento remoto. Este error se "
+"eliminará."
#: celeste/src/launch.rs:1399
msgid "Only the local item exists now, so it will be synced to the remote."
msgstr ""
+"Ahora sólo existe el elemento local, por lo que se sincronizará con el "
+"remoto."
#: celeste/src/launch.rs:1407
msgid ""
"Only the remote item exists now, so it will be synced to the local machine."
msgstr ""
+"Ahora sólo existe el elemento remoto, por lo que se sincronizará con la "
+"máquina local."
#: celeste/src/launch.rs:1417
msgid ""
"Both the local item '{}' and remote item '{}' have been updated since the "
"last sync."
msgstr ""
+"Tanto el elemento local '{}' como el elemento remoto '{}' se han actualizado "
+"desde la última sincronización."
#: celeste/src/launch.rs:1419
msgid "Which item would you like to keep?"
-msgstr ""
+msgstr "¿Qué elemento le gustaría conservar?"
#: celeste/src/launch.rs:1421
msgid "Local"
-msgstr ""
+msgstr "Local"
#: celeste/src/launch.rs:1422
msgid "Remote"
-msgstr ""
+msgstr "Remoto"
#: celeste/src/launch.rs:1471
msgid "1 error found."
-msgstr ""
+msgstr "1 error encontrado."
#: celeste/src/launch.rs:1473
msgid "{} errors found."
-msgstr ""
+msgstr "{} errores encontrados."
#: celeste/src/launch.rs:1605
msgid "Checking '{}' for changes..."
-msgstr ""
+msgstr "Comprobando '{}' por si hay cambios…"
#: celeste/src/launch.rs:2021
msgid "Checking '{}' on remote for changes..."
-msgstr ""
+msgstr "Comprobando '{}' en remoto por si hay cambios…"
#: celeste/src/launch.rs:2412
msgid "Directory has finished sync checks."
-msgstr ""
+msgstr "El directorio ha finalizado las comprobaciones de sincronización."
#: celeste/src/launch.rs:2432
msgid "Finished sync checks with {} errors."
-msgstr ""
+msgstr "Comprobaciones de sincronización finalizadas con {} errores."
#: celeste/src/login/gdrive.rs:194
msgid "Authenticating to {}..."
-msgstr ""
+msgstr "Autenticándose en {}…"
#: celeste/src/login/gdrive.rs:195
msgid ""
"Open the link that opened in your browser, and come back once you've "
"finished."
msgstr ""
+"Abra el enlace que se ha abierto en su navegador y vuelva cuando haya "
+"terminado."
#: celeste/src/login/gdrive.rs:222
msgid "There was an issue while running the webserver for authentication"
-msgstr ""
+msgstr "Hubo un problema al ejecutar el servidor web para la autenticación"
#: celeste/src/login/gdrive.rs:231
msgid "There was an issue authenticating to {}"
-msgstr ""
+msgstr "Hubo un problema autenticándose en {}"
#: celeste/src/login/login_util.rs:14
msgid "Server Name"
-msgstr ""
+msgstr "Nombre del servidor"
#: celeste/src/login/login_util.rs:26
msgid "Server name already exists."
-msgstr ""
+msgstr "El nombre del servidor ya existe."
#: celeste/src/login/login_util.rs:28
msgid ""
@@ -253,34 +266,38 @@ msgid ""
"- Not start with '-' or a space\n"
"- Not end with a space"
msgstr ""
+"Nombre de servidor no válido. Los nombres de servidor deben:\n"
+"- Contener sólo números, letras, '_', '-', '.' y espacios.\n"
+"- No empezar por \"-\" o un espacio\n"
+"- No terminar con un espacio"
#: celeste/src/login/login_util.rs:42
msgid "Server URL"
-msgstr ""
+msgstr "URL del servidor"
#: celeste/src/login/login_util.rs:48
msgid "Invalid server URL ({})."
-msgstr ""
+msgstr "URL de servidor no válida ({})."
#: celeste/src/login/login_util.rs:57
msgid "Invalid server URL (no domain specified)."
-msgstr ""
+msgstr "URL de servidor no válida (no se ha especificado ningún dominio)."
#: celeste/src/login/login_util.rs:61
msgid "Invalid server URL (password was specified)."
-msgstr ""
+msgstr "URL del servidor no válida (se ha especificado la contraseña)."
#: celeste/src/login/login_util.rs:65
msgid "Invalid server URL(unknown server scheme {})."
-msgstr ""
+msgstr "URL de servidor no válida (esquema de servidor desconocido {})."
#: celeste/src/login/login_util.rs:77
msgid "Don't specify '{}' as part of the URL."
-msgstr ""
+msgstr "No especifique '{}' como parte de la URL."
#: celeste/src/login/login_util.rs:90
msgid "Username"
-msgstr ""
+msgstr "Nombre de usuario"
#: celeste/src/login/login_util.rs:96
msgid "Password"
@@ -288,32 +305,36 @@ msgstr "Contraseña"
#: celeste/src/login/login_util.rs:102
msgid "Log in"
-msgstr ""
+msgstr "Iniciar sesión"
#: celeste/src/login/mod.rs:82
msgid ""
"Unable to connect to the server. Check your internet connection and try "
"again."
msgstr ""
+"No se puede conectar con el servidor. Compruebe su conexión a Internet e "
+"inténtelo de nuevo."
#: celeste/src/login/mod.rs:86
msgid ""
"Unable to authenticate to the server. Check your login credentials and try "
"again."
msgstr ""
+"No se ha podido autenticar en el servidor. Compruebe sus credenciales de "
+"inicio de sesión e inténtelo de nuevo."
#: celeste/src/login/mod.rs:91
msgid "Unable to log in"
-msgstr ""
+msgstr "No se puede iniciar sesión"
#. The dropdown for selecting the server type.
#: celeste/src/login/mod.rs:147
msgid "Server Type"
-msgstr ""
+msgstr "Tipo de servidor"
#: celeste/src/main.rs:187
msgid "Unknown Error"
-msgstr ""
+msgstr "Error desconocido"
#: celeste/src/main.rs:194
msgid ""
@@ -324,15 +345,21 @@ msgid ""
"contain information such as login tokens/keys, so avoid posting the "
"information publicly:"
msgstr ""
+"Se ha producido un error desconocido durante la ejecución. Este es un "
+"problema interno con Celeste y debe ser reportado.\n"
+"\n"
+"El siguiente registro puede ayudar a depurar el problema - tenga en cuenta "
+"que puede contener información como testigos/claves de acceso, así que evite "
+"publicar la información:"
#: celeste-tray/src/main.rs:54
msgid "Open"
-msgstr ""
+msgstr "Abrir"
#: celeste-tray/src/main.rs:55
msgid "Quit"
-msgstr ""
+msgstr "Salir"
#: celeste-tray/src/main.rs:116
msgid "Quitting..."
-msgstr ""
+msgstr "Saliendo…"
diff --git a/po/eu.po b/po/eu.po
new file mode 100644
index 00000000..3221416a
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,350 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.5.5\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-13 18:06+0000\n"
+"PO-Revision-Date: 2023-09-20 07:47+0000\n"
+"Last-Translator: Sergio Varela \n"
+"Language-Team: Basque \n"
+"Language: eu\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"
+"X-Generator: Weblate 5.1-dev\n"
+
+#: celeste/src/about.rs:17
+msgid "App icons by"
+msgstr "Aplikazioen ikonoak"
+
+#: celeste/src/gtk_util.rs:20 celeste/src/gtk_util.rs:43 celeste/src/launch.rs:678 celeste/src/launch.rs:840
+msgid "Ok"
+msgstr "Ongi da"
+
+#: celeste/src/launch.rs:102
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "'{}' eta '{}' azken sinkronizazioan baino berriagoak dira."
+
+#: celeste/src/launch.rs:214
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Ezin izan da Celesteren konfigurazio-direktorioa sortu [{}]."
+
+#: celeste/src/launch.rs:226
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Ezin izan da Celeste-ren datu-basearen fitxategia sortu [{}]."
+
+#: celeste/src/launch.rs:236
+msgid "Unable to connect to database [{}]."
+msgstr "Ezin izan da [{}] datu-basearekin konektatu."
+
+#: celeste/src/launch.rs:244
+msgid "Unable to run database migrations [{}]"
+msgstr "Ezin da datu-baseen migraziorik exekutatu [{}]"
+
+#: celeste/src/launch.rs:351
+msgid "Awaiting sync check..."
+msgstr "Sinkronizazio informatikoaren egiaztapenaren zain…"
+
+#: celeste/src/launch.rs:387
+msgid "Sync Errors"
+msgstr "Sinkronizazio-erroreak"
+
+#: celeste/src/launch.rs:402
+msgid "File/Folder Exclusions"
+msgstr "Fitxategien/karpeten esklusioak"
+
+#: celeste/src/launch.rs:521
+msgid "Stop syncing this directory"
+msgstr "Direktorio hau sinkronizatzeari utzi"
+
+#: celeste/src/launch.rs:538
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Ziur zaude '{}' eta '{}' sinkronizatzeari utzi nahi diozula?"
+
+#: celeste/src/launch.rs:547
+msgid "This directory is currently being processed to no longer be synced."
+msgstr "Direktorio hau prozesatzen ari dira sinkronizatuta egoteari uzteko."
+
+#: celeste/src/launch.rs:638
+msgid "Directories"
+msgstr "Direktorioak"
+
+#. Get the local folder to sync with.
+#: celeste/src/launch.rs:661
+msgid "Local folder:"
+msgstr "Karpeta lokala:"
+
+#: celeste/src/launch.rs:677 celeste/src/launch.rs:839 celeste/src/login/gdrive.rs:207
+msgid "Cancel"
+msgstr "Ezeztatu"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: celeste/src/launch.rs:697
+msgid "Remote folder:"
+msgstr "Urruneko karpeta:"
+
+#: celeste/src/launch.rs:884
+msgid "The specified remote directory doesn't exist"
+msgstr "Zehaztutako urruneko direktorioa ez dago"
+
+#: celeste/src/launch.rs:892
+msgid "Failed to check if the specified remote directory exists"
+msgstr ""
+"Errore bat gertatu da zehaztutako urruneko direktorioa dagoen egiaztatzean"
+
+#: celeste/src/launch.rs:903
+msgid "The specified directory pair is already being synced"
+msgstr "Zehaztutako direktorio parea sinkronizatzen ari da"
+
+#: celeste/src/launch.rs:906
+msgid "The specified local directory doesn't exist"
+msgstr "Zehaztutako direktorio lokala ez dago"
+
+#: celeste/src/launch.rs:909
+msgid "The specified local path isn't a directory"
+msgstr "Zehaztutako ibilbide lokala ez da direktorio bat"
+
+#: celeste/src/launch.rs:912
+msgid "The specified local directory needs to be an absolute path"
+msgstr "Zehaztutako direktorio lokala ibilbide absolutua izan behar du"
+
+#: celeste/src/launch.rs:940
+msgid "Are you sure you want to delete this remote?"
+msgstr "Ziur urruneko hau ezabatu nahi duzula?"
+
+#: celeste/src/launch.rs:941
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Urruneko horri lotutako direktorio guztiak ere sinkronizatzeari utziko diote."
+
+#: celeste/src/launch.rs:1167 celeste-tray/src/main.rs:51
+msgid "Awaiting sync checks..."
+msgstr "Sinkronizazio-egiaztapenen zain…"
+
+#. Notify the tray app that we're syncing this remote now.
+#: celeste/src/launch.rs:1263
+msgid "Syncing '{}'..."
+msgstr "Sinkronizatzen '{}'…"
+
+#: celeste/src/launch.rs:1298
+msgid "Checking for changes..."
+msgstr "Aldaketarik badagoen egiaztatzen…"
+
+#. Add an error for reporting in the UI.
+#: celeste/src/launch.rs:1305
+msgid "Please resolve the reported syncing issues."
+msgstr "Mesedez, konpondu jakinarazitako sinkronizazio-arazoak."
+
+#: celeste/src/launch.rs:1332
+msgid "{} errors found. "
+msgstr "{} akats aurkitu dira. "
+
+#: celeste/src/launch.rs:1346
+msgid "Would you like to dismiss this error?"
+msgstr "Akats hau baztertu nahi duzu?"
+
+#: celeste/src/launch.rs:1373
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "Errore bat gertatu da urruneko '{}'-rekin '{}' sinkronizatzean."
+
+#: celeste/src/launch.rs:1381
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "Errore beta gertatu da '{}' urrunetik '{}'-rekin sinkronizatzean."
+
+#: celeste/src/launch.rs:1406
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "Ezin izan dira urrutiko '{}'-ren datuak lortu."
+
+#: celeste/src/launch.rs:1415 celeste/src/launch.rs:1420 celeste/src/launch.rs:1428
+msgid "File Update"
+msgstr "Fitxategien eguneraketa"
+
+#: celeste/src/launch.rs:1415
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"Ez dago ez elementu lokalik, ezta urruneko elementurik ere. Errore hau "
+"ezabatu egingo da."
+
+#: celeste/src/launch.rs:1420
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"Orain elementu lokala baino ez dago, eta, beraz, urruneko elementuarekin "
+"sinkronizatuko da."
+
+#: celeste/src/launch.rs:1428
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"Orain urruneko elementua baino ez dago, eta, beraz, bertako makinarekin "
+"sinkronizatuko da."
+
+#: celeste/src/launch.rs:1438
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"'{}' elementu lokala eta '{}' urruneko elementua eguneratu egin dira azken "
+"sinkronizaziotik."
+
+#: celeste/src/launch.rs:1440
+msgid "Which item would you like to keep?"
+msgstr "Zer elementu gorde nahiko zenuke?"
+
+#: celeste/src/launch.rs:1442
+msgid "Local"
+msgstr "Lokala"
+
+#: celeste/src/launch.rs:1443
+msgid "Remote"
+msgstr "Urrutikoa"
+
+#: celeste/src/launch.rs:1492
+msgid "1 error found."
+msgstr "Akats bat aurkitu da."
+
+#: celeste/src/launch.rs:1494
+msgid "{} errors found."
+msgstr "{} akats aurkitu dira."
+
+#: celeste/src/launch.rs:1626
+msgid "Checking '{}' for changes..."
+msgstr "'{}' egiaztatzen, aldaketarik badagoen ikusteko…"
+
+#: celeste/src/launch.rs:2042
+msgid "Checking '{}' on remote for changes..."
+msgstr "Urruneko '{}' egiaztatzen, aldaketarik badagoen ikusteko…"
+
+#: celeste/src/launch.rs:2433
+msgid "Directory has finished sync checks."
+msgstr "Direktorioak sinkronizazio-egiaztapenak amaitu ditu."
+
+#: celeste/src/launch.rs:2454
+msgid "Finished sync checks with {} errors."
+msgstr "Sinkronizazio-egiaztapenak amaitu dira {} akatsekin."
+
+#: celeste/src/login/gdrive.rs:204
+msgid "Authenticating to {}..."
+msgstr "Hemen kautotzen {}…"
+
+#: celeste/src/login/gdrive.rs:205
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"Jarraitu zure nabigatzailean ireki den estekari, eta amaitzen duzunean, "
+"itzuli."
+
+#: celeste/src/login/gdrive.rs:232
+msgid "There was an issue while running the webserver for authentication"
+msgstr "Arazo bat egon zen autentifikaziorako web zerbitzaria exekutatzean"
+
+#: celeste/src/login/gdrive.rs:241
+msgid "There was an issue authenticating to {}"
+msgstr "Arazo bat egon zen {}-en autentifikatzerakoan"
+
+#: celeste/src/login/login_util.rs:14
+msgid "Server Name"
+msgstr "Zerbitzariaren izena"
+
+#: celeste/src/login/login_util.rs:26
+msgid "Server name already exists."
+msgstr "Zerbitzariaren izena existitzen da."
+
+#: celeste/src/login/login_util.rs:28
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Zerbitzariaren izena ez da baliozkoa. Zerbitzari-izenek honako hauek izan "
+"behar dituzte:\n"
+"- Zenbakiak, letrak, '_', '-', '.' eta espazioak soilik eduki.\n"
+"- Ez hasi \"-\" edo espazio batekin\n"
+"- Ez amaitu espazio batekin"
+
+#: celeste/src/login/login_util.rs:42
+msgid "Server URL"
+msgstr "Zerbitzariaren URLa"
+
+#: celeste/src/login/login_util.rs:48
+msgid "Invalid server URL ({})."
+msgstr "Zerbitzariaren URL baliogabea ({})."
+
+#: celeste/src/login/login_util.rs:57
+msgid "Invalid server URL (no domain specified)."
+msgstr "Zerbitzariaren URL baliogabea (ez da domeinurik zehaztu)."
+
+#: celeste/src/login/login_util.rs:61
+msgid "Invalid server URL (password was specified)."
+msgstr "Zerbitzariaren URL baliogabea (pasahitza zehaztu da)."
+
+#: celeste/src/login/login_util.rs:65
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Zerbitzariaren URL baliogabea (zerbitzariaren eskema ezezaguna {})."
+
+#: celeste/src/login/login_util.rs:77
+msgid "Don't specify '{}' as part of the URL."
+msgstr "Ez zehaztu '{}' URLaren zati gisa."
+
+#: celeste/src/login/login_util.rs:90
+msgid "Username"
+msgstr "Erabiltzailearen izena"
+
+#: celeste/src/login/login_util.rs:96
+msgid "Password"
+msgstr "Pasahitza"
+
+#: celeste/src/login/login_util.rs:102
+msgid "Log in"
+msgstr "Saioa hasi"
+
+#: celeste/src/login/mod.rs:72
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"Ezin da zerbitzariarekin konektatu. Egiaztatu zure Internet-eko konexioa eta "
+"saiatu berriro."
+
+#: celeste/src/login/mod.rs:76
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Ezin izan da zerbitzarian autentifikatu. Egiaztatu saioa hasteko "
+"kredentzialak eta saiatu berriro."
+
+#: celeste/src/login/mod.rs:80
+msgid "Unable to log in"
+msgstr "Ezin da saioa hasi"
+
+#. The dropdown for selecting the server type.
+#: celeste/src/login/mod.rs:116
+msgid "Server Type"
+msgstr "Zerbitzari mota"
+
+#: celeste/src/main.rs:187
+msgid "Unknown Error"
+msgstr "Errore ezezaguna"
+
+#: celeste/src/main.rs:194
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Exekuzioan errore ezezagun bat gertatu da. Hau barne arazo bat da Celeste-"
+"rekin eta informatu behar da.\n"
+"\n"
+"Hurrengo erregistroak arazoa argitzen lagun dezake. Kontuan izan informazioa "
+"lekuko/sarbide-gako gisa eduki dezakeela, informazioa argitaratzea "
+"saihesteko:"
+
+#: celeste-tray/src/main.rs:54
+msgid "Open"
+msgstr "Ireki"
+
+#: celeste-tray/src/main.rs:55
+msgid "Quit"
+msgstr "Irten"
+
+#: celeste-tray/src/main.rs:114
+msgid "Quitting..."
+msgstr "Saiotik irteten…"
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 00000000..e0966095
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,362 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-08 00:55+0000\n"
+"PO-Revision-Date: 2023-10-09 12:02+0000\n"
+"Last-Translator: Jiri Grönroos \n"
+"Language-Team: Finnish \n"
+"Language: fi\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"
+"X-Generator: Weblate 5.1-dev\n"
+
+#: src/about.rs:20
+msgid "App icons by"
+msgstr "Sovelluskuvakkeiden toteutus"
+
+#: src/gtk_util.rs:20 src/gtk_util.rs:43 src/launch.rs:614 src/launch.rs:776
+msgid "Ok"
+msgstr "OK"
+
+#: src/launch.rs:99
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "'{}' ja '{}' ovat uudempia kuin viimeisimmän synkronoinnin aikaan."
+
+#: src/launch.rs:158
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Celesten asetushakemiston [{}] luominen ei onnistunut."
+
+#: src/launch.rs:170
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Celesten tietokantatiedoston [{}] luominen ei onnistunut."
+
+#: src/launch.rs:180
+msgid "Unable to connect to database [{}]."
+msgstr "Yhteys tietokantaan [{}] ei onnistunut."
+
+#: src/launch.rs:188
+msgid "Unable to run database migrations [{}]"
+msgstr "Tietokantamigraatioita [{}] ei voitu suorittaa"
+
+#: src/launch.rs:288
+msgid "Awaiting sync check..."
+msgstr "Odotetaan synkronoinnin tarkistusta..."
+
+#: src/launch.rs:324
+msgid "Sync Errors"
+msgstr "Synkronointivirheitä"
+
+#: src/launch.rs:339
+msgid "File/Folder Exclusions"
+msgstr "Tiedoston/kansion poissulkemiset"
+
+#: src/launch.rs:458
+msgid "Stop syncing this directory"
+msgstr "Lopeta tämän kansion synkronointi"
+
+#: src/launch.rs:475
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Haluatko varmasti lopettaa kohteen '{}' synkronoinnin palveluun '{}'?"
+
+#: src/launch.rs:484
+msgid "This directory is currently being processed to no longer be synced."
+msgstr ""
+"Tätä kansiota käsitellään parhaillaan, jotta sitä ei enää jatkossa "
+"synkronoida."
+
+#: src/launch.rs:574
+msgid "Directories"
+msgstr "Kansiot"
+
+#. Get the local folder to sync with.
+#: src/launch.rs:597
+msgid "Local folder:"
+msgstr "Paikallinen kansio:"
+
+#: src/launch.rs:613 src/launch.rs:775 src/login/gdrive.rs:208
+msgid "Cancel"
+msgstr "Peru"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: src/launch.rs:633
+msgid "Remote folder:"
+msgstr "Etäkansio:"
+
+#: src/launch.rs:820
+msgid "The specified remote directory doesn't exist"
+msgstr "Määritettyä etäkansiota ei ole olemassa"
+
+#: src/launch.rs:828
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Määritetyn etäkansion olemassaolon tarkistaminen epäonnistui"
+
+#: src/launch.rs:839
+msgid "The specified directory pair is already being synced"
+msgstr "Määritetty kansiopari on jo synkronoituna"
+
+#: src/launch.rs:842
+msgid "The specified local directory doesn't exist"
+msgstr "Määritettyä paikallista kansiota ei ole olemassa"
+
+#: src/launch.rs:845
+msgid "The specified local path isn't a directory"
+msgstr "Määritetty paikallinen polku ei ole kansio"
+
+#: src/launch.rs:848
+msgid "The specified local directory needs to be an absolute path"
+msgstr "Määritetyn paikallisen kansion tulee olla absoluuttinen polku"
+
+#: src/launch.rs:876
+msgid "Are you sure you want to delete this remote?"
+msgstr "Haluatko varmasti poistaa tämän etäkohteen?"
+
+#: src/launch.rs:877
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Kaikkien tähän etäkohteeseen liittyvien kansioiden synkronointi pysäytetään."
+
+#. Notify the tray app that we're syncing this remote now.
+#: src/launch.rs:1160
+msgid "Syncing '{}'..."
+msgstr "Synkronoidaan '{}'..."
+
+#: src/launch.rs:1194
+msgid "Checking for changes..."
+msgstr "Tarkistetaan muutoksia..."
+
+#. Add an error for reporting in the UI.
+#: src/launch.rs:1201
+msgid "Please resolve the reported syncing issues."
+msgstr "Selvitä ilmoitetut synkronointiongelmat."
+
+#: src/launch.rs:1228
+msgid "{} errors found. "
+msgstr "{} virhettä löytyi. "
+
+#: src/launch.rs:1242
+msgid "Would you like to dismiss this error?"
+msgstr "Haluatko jättää tämän virheen huomiotta?"
+
+#: src/launch.rs:1269
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr ""
+
+#: src/launch.rs:1277
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr ""
+
+#: src/launch.rs:1302
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr ""
+
+#: src/launch.rs:1311 src/launch.rs:1316 src/launch.rs:1324
+msgid "File Update"
+msgstr "Tiedostopäivitys"
+
+#: src/launch.rs:1311
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+
+#: src/launch.rs:1316
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"Vain paikallinen kohde on nyt olemassa, joten se synkronoidaan etäkohteeseen."
+
+#: src/launch.rs:1324
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"Vain etäkohde on olemassa nyt, joten se synkronoidaan paikalliselle koneelle."
+
+#: src/launch.rs:1334
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"Sekä paikallinen kohde '{}' että etäkohde '{}' on päivitetty viimeisimmän "
+"synkronoinnin jälkeen."
+
+#: src/launch.rs:1336
+msgid "Which item would you like to keep?"
+msgstr "Kumman niistä haluat säilyttää?"
+
+#: src/launch.rs:1338
+msgid "Local"
+msgstr "Paikallinen"
+
+#: src/launch.rs:1339
+msgid "Remote"
+msgstr "Etä"
+
+#: src/launch.rs:1388
+msgid "1 error found."
+msgstr "1 virhe löytyi."
+
+#: src/launch.rs:1390
+msgid "{} errors found."
+msgstr "{} virhettä löytyi."
+
+#: src/launch.rs:1522
+msgid "Checking '{}' for changes..."
+msgstr "Tarkistetaan '{}' muutosten varalta..."
+
+#: src/launch.rs:1938
+msgid "Checking '{}' on remote for changes..."
+msgstr "Tarkistetaan '{}' etäpäässä muutosten varalta..."
+
+#: src/launch.rs:2329
+msgid "Directory has finished sync checks."
+msgstr "Kansion synkronointitarkistukset ovat valmistuneet."
+
+#: src/launch.rs:2350
+msgid "Finished sync checks with {} errors."
+msgstr "Synkronointitarkistukset valmistuivat {} virheen kera."
+
+#: src/launch.rs:2355
+msgid "Finished sync checks."
+msgstr "Synkronointitarkistukset valmistuivat."
+
+#: src/login/gdrive.rs:205
+msgid "Authenticating to {}..."
+msgstr "Tunnistaudutaan palveluun {}..."
+
+#: src/login/gdrive.rs:206
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr "Seuraa selaimeen avattua linkkiä, ja palaa takaisin kun olet valmis."
+
+#: src/login/gdrive.rs:233
+msgid "There was an issue while running the webserver for authentication"
+msgstr ""
+
+#: src/login/gdrive.rs:242
+msgid "There was an issue authenticating to {}"
+msgstr "Ongelma tunnistautuessa palveluun {}"
+
+#: src/login/login_util.rs:15
+msgid "Server Name"
+msgstr "Palvelimen nimi"
+
+#: src/login/login_util.rs:27
+msgid "Server name already exists."
+msgstr "Palvelimen nimi on jo olemassa."
+
+#: src/login/login_util.rs:29
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Virheellinen palvelimen nimi. Palvelimen nimi:\n"
+"- Voi sisältää numeroita, kirjaimia, '_', '-', '.', ja välilyöntejä\n"
+"- Ei saa alkaa merkillä '-' tai välilyönnillä\n"
+"- Ei saa päättyä välilyöntiin"
+
+#: src/login/login_util.rs:43
+msgid "Server URL"
+msgstr "Palvelimen osoite"
+
+#: src/login/login_util.rs:49
+msgid "Invalid server URL ({})."
+msgstr "Virheellinen palvelimen osoite ({})."
+
+#: src/login/login_util.rs:58
+msgid "Invalid server URL (no domain specified)."
+msgstr "Virheellinen palvelimen osoite (verkkotunnusta ei määritetty)."
+
+#: src/login/login_util.rs:62
+msgid "Invalid server URL (password was specified)."
+msgstr "Virheellinen palvelimen osoite (salasana määritettiin)."
+
+#: src/login/login_util.rs:66
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Virheellinen palvelimen osoite (tuntematon palvelinskeema {})."
+
+#: src/login/login_util.rs:78
+msgid "Don't specify '{}' as part of the URL."
+msgstr "Älä määritä '{}' osaksi osoitetta."
+
+#: src/login/login_util.rs:91
+msgid "Username"
+msgstr "Käyttäjätunnus"
+
+#: src/login/login_util.rs:97
+msgid "Password"
+msgstr "Salasana"
+
+#: src/login/login_util.rs:104
+msgid "2FA Code"
+msgstr "2FA-koodi"
+
+#: src/login/login_util.rs:113
+msgid "The provided 2FA code is invalid (should only contain digits)."
+msgstr "Annettu 2FA-koodi on virheellinen (se voi sisältää vain numeroja)."
+
+#: src/login/login_util.rs:118
+msgid "The provided 2FA code is invalid (should be 6 digits long)."
+msgstr "Annettu 2FA-koodi on virheellinen (pitää olla kuusinumeroinen)."
+
+#: src/login/login_util.rs:142
+msgid "Log in"
+msgstr "Kirjaudu"
+
+#: src/login/mod.rs:77
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"Palvelimeen ei voitu muodostaa yhteyttä. Tarkista Internet-yhteytesi tila ja "
+"yritä uudelleen."
+
+#: src/login/mod.rs:80
+msgid "A 2FA code is required to log in to this account. Provide one and try again."
+msgstr ""
+"2FA-koodi vaaditaan tähän tiliin kirjautumiseksi. Anna 2FA-koodi ja yritä "
+"uudelleen."
+
+#: src/login/mod.rs:83
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Tunnistautuminen palvelimelle ei onnistunut. Tarkista kirjautumistiedot ja "
+"yritä uudelleen."
+
+#: src/login/mod.rs:87
+msgid "Unable to log in"
+msgstr "Kirjautuminen ei onnistunut"
+
+#. The dropdown for selecting the server type.
+#: src/login/mod.rs:124
+msgid "Server Type"
+msgstr "Palvelimen tyyppi"
+
+#: src/tray.rs:13
+msgid "Awaiting sync checks..."
+msgstr "Odotetaan synkronointitarkistuksia..."
+
+#: src/tray.rs:57
+msgid "Open"
+msgstr "Avaa"
+
+#: src/tray.rs:64
+msgid "Close"
+msgstr "Sulje"
+
+#: src/main.rs:188
+msgid "Unknown Error"
+msgstr "Tuntematon virhe"
+
+#: src/main.rs:195
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Suorituksen aikana tapahjtui tuntematon virhe. Tämä on Celesten sisäinen "
+"virhe ja se pitäisi ilmoittaa kehittäjille.\n"
+"\n"
+"Seuraavat virheenjäljitystiedot voivat auttaa vian selvittämisessä - huomaa, "
+"että virheenjäljitystiedot saattavat sisältää arkaluonteista tietoa, kuten "
+"kirjautumispoletin tai avaimen, joten älä lähetä tätä tietoa julkisesti:"
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 00000000..0add85eb
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,352 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.5.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-05-01 18:51+0000\n"
+"PO-Revision-Date: 2023-10-26 10:01+0000\n"
+"Last-Translator: rene-coty \n"
+"Language-Team: French \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"
+"X-Generator: Weblate 5.1.1\n"
+
+#: celeste/src/gtk_util.rs:20 celeste/src/gtk_util.rs:43 celeste/src/launch.rs:678 celeste/src/launch.rs:840
+msgid "Ok"
+msgstr "OK"
+
+#: celeste/src/launch.rs:102
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "'{}' et '{}' sont plus récents qu’à la dernière synchronisation."
+
+#: celeste/src/launch.rs:214
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Impossible de créer le répertoire de configuration de Celeste [{}]."
+
+#: celeste/src/launch.rs:226
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Impossible de créer le fichier de configuration de Celeste [{}]."
+
+#: celeste/src/launch.rs:236
+msgid "Unable to connect to database [{}]."
+msgstr "Impossible de se connecter à la base de données [{}]."
+
+#: celeste/src/launch.rs:244
+msgid "Unable to run database migrations [{}]"
+msgstr "Impossible d’exécuter les migrations de base de données [{}]"
+
+#: celeste/src/launch.rs:351
+msgid "Awaiting sync check..."
+msgstr "En attente de la vérification de la synchronisation..."
+
+#: celeste/src/launch.rs:387
+msgid "Sync Errors"
+msgstr "Erreurs de synchronisation"
+
+#: celeste/src/launch.rs:402
+msgid "File/Folder Exclusions"
+msgstr "Exclusions de fichier/répertoire"
+
+#: celeste/src/launch.rs:521
+msgid "Stop syncing this directory"
+msgstr "Arrêter de synchroniser ce répertoire"
+
+#: celeste/src/launch.rs:538
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr ""
+"Êtes vous certains de vouloir arrêter la synchronisation de '{}' vers '{}' ?"
+
+#: celeste/src/launch.rs:547
+msgid "This directory is currently being processed to no longer be synced."
+msgstr ""
+"Ce répertoire est en cours de traitement afin de ne plus être synchronisé."
+
+#: celeste/src/launch.rs:638
+msgid "Directories"
+msgstr "Répertoires"
+
+#. Get the local folder to sync with.
+#: celeste/src/launch.rs:661
+msgid "Local folder:"
+msgstr "Répertoire local :"
+
+#: celeste/src/launch.rs:677 celeste/src/launch.rs:839 celeste/src/login/gdrive.rs:207
+msgid "Cancel"
+msgstr "Annuler"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: celeste/src/launch.rs:697
+msgid "Remote folder:"
+msgstr "Répertoire distant :"
+
+#: celeste/src/launch.rs:884
+msgid "The specified remote directory doesn't exist"
+msgstr "Le répertoire distant spécifié n’existe pas"
+
+#: celeste/src/launch.rs:892
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Impossible de vérifier si le répertoire distant spécifié existe"
+
+#: celeste/src/launch.rs:903
+msgid "The specified directory pair is already being synced"
+msgstr ""
+"Le répertoire distant correspondant est déjà en cours de synchronisation"
+
+#: celeste/src/launch.rs:906
+msgid "The specified local directory doesn't exist"
+msgstr "Le répertoire local spécifié n’existe pas"
+
+#: celeste/src/launch.rs:909
+msgid "The specified local path isn't a directory"
+msgstr "Le chemin local spécifié n’est pas un répertoire"
+
+#: celeste/src/launch.rs:912
+msgid "The specified local directory needs to be an absolute path"
+msgstr "Le chemin local du répertoire spécifié doit être un chemin absolu"
+
+#: celeste/src/launch.rs:940
+msgid "Are you sure you want to delete this remote?"
+msgstr "Êtes-vous certain de vouloir supprimer cette connexion ?"
+
+#: celeste/src/launch.rs:941
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Tous les répertoires associés à cette connexion ne seront plus synchronisés."
+
+#: celeste/src/launch.rs:1167 celeste-tray/src/main.rs:51
+msgid "Awaiting sync checks..."
+msgstr "En attente des vérifications de synchronisation…"
+
+#. Notify the tray app that we're syncing this remote now.
+#: celeste/src/launch.rs:1263
+msgid "Syncing '{}'..."
+msgstr "Synchronisation de '{}'…"
+
+#: celeste/src/launch.rs:1298
+msgid "Checking for changes..."
+msgstr "Recherche de modifications…"
+
+#. Add an error for reporting in the UI.
+#: celeste/src/launch.rs:1305
+msgid "Please resolve the reported syncing issues."
+msgstr "Veuillez corriger les problèmes de synchronisation signalés."
+
+#: celeste/src/launch.rs:1332
+msgid "{} errors found. "
+msgstr "{} erreurs trouvées. "
+
+#: celeste/src/launch.rs:1346
+msgid "Would you like to dismiss this error?"
+msgstr "Souhaitez-vous ignorer cette erreur ?"
+
+#: celeste/src/launch.rs:1373
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr ""
+"Échec de la synchronisation de '{}' vers '{}' de l’environnement distant."
+
+#: celeste/src/launch.rs:1381
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr ""
+"Échec de la synchronisation de '{}' sur l'environnement distant vers '{}'."
+
+#: celeste/src/launch.rs:1406
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr ""
+"Impossible de récupérer les données de '{}' depuis l’environnement distant."
+
+#: celeste/src/launch.rs:1415 celeste/src/launch.rs:1420 celeste/src/launch.rs:1428
+msgid "File Update"
+msgstr "Mise à jour du fichier"
+
+#: celeste/src/launch.rs:1415
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"L’élément local et l’élément distant n’existent plus. Cette erreur n’"
+"apparaîtra plus."
+
+#: celeste/src/launch.rs:1420
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"Seul l’élément local existe désormais, il sera donc synchronisé vers l’"
+"environnement distant."
+
+#: celeste/src/launch.rs:1428
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"Seul l’élément distant existe désormais, il sera donc synchronisé sur votre "
+"environnement local."
+
+#: celeste/src/launch.rs:1438
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"L’élément '{}' et sa version distante '{}' on tous les deux été mis à jour "
+"depuis la dernière synchronisation."
+
+#: celeste/src/launch.rs:1440
+msgid "Which item would you like to keep?"
+msgstr "Quel élément souhaitez-vous conserver ?"
+
+#: celeste/src/launch.rs:1442
+msgid "Local"
+msgstr "Environnement local"
+
+#: celeste/src/launch.rs:1443
+msgid "Remote"
+msgstr "Environnement distant"
+
+#: celeste/src/launch.rs:1492
+msgid "1 error found."
+msgstr "1 erreur rencontrée."
+
+#: celeste/src/launch.rs:1494
+msgid "{} errors found."
+msgstr "{} erreurs rencontrées."
+
+#: celeste/src/launch.rs:1626
+msgid "Checking '{}' for changes..."
+msgstr "Recherche de modifications dans '{}'…"
+
+#: celeste/src/launch.rs:2042
+msgid "Checking '{}' on remote for changes..."
+msgstr "Recherche de modification dans '{}' sur l’environnement distant…"
+
+#: celeste/src/launch.rs:2433
+msgid "Directory has finished sync checks."
+msgstr "Les contrôles de synchronisation sont terminés sur ce répertoire."
+
+#: celeste/src/launch.rs:2454
+msgid "Finished sync checks with {} errors."
+msgstr "Le contrôle de synchronisation est terminé et a rencontré {} erreurs."
+
+#: celeste/src/login/gdrive.rs:204
+msgid "Authenticating to {}..."
+msgstr "Authentification à {}…"
+
+#: celeste/src/login/gdrive.rs:205
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"Suivez le lien qui vient d’être ouvert dans votre navigateur et revenez une "
+"fois que vous avez terminé."
+
+#: celeste/src/login/gdrive.rs:232
+msgid "There was an issue while running the webserver for authentication"
+msgstr ""
+"Une erreur est survenue lors de l’exécution du service d’authentification"
+
+#: celeste/src/login/gdrive.rs:241
+msgid "There was an issue authenticating to {}"
+msgstr "Une erreur est survenue lors de l’authentification à {}"
+
+#: celeste/src/login/login_util.rs:14
+msgid "Server Name"
+msgstr "Nom du serveur"
+
+#: celeste/src/login/login_util.rs:26
+msgid "Server name already exists."
+msgstr "Ce nom de serveur existe déjà."
+
+#: celeste/src/login/login_util.rs:28
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Nom de serveur invalide. Un nom de serveur doit :\n"
+"- Contenir uniquement des chiffres, lettres, « _ », « - », « . », et "
+"espaces\n"
+"- Ne pas commencer par « - » ou un espace\n"
+"- Ne pas se terminer par un espace"
+
+#: celeste/src/login/login_util.rs:42
+msgid "Server URL"
+msgstr "Adresse du serveur"
+
+#: celeste/src/login/login_util.rs:48
+msgid "Invalid server URL ({})."
+msgstr "Adresse de serveur incorrecte ({})."
+
+#: celeste/src/login/login_util.rs:57
+msgid "Invalid server URL (no domain specified)."
+msgstr "Adresse de serveur incorrecte (aucun domaine spécifié)."
+
+#: celeste/src/login/login_util.rs:61
+msgid "Invalid server URL (password was specified)."
+msgstr "Adresse de serveur invalide (un mot de passe est requis)."
+
+#: celeste/src/login/login_util.rs:65
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Adresse de serveur invalide (schéma inconnu {})."
+
+#: celeste/src/login/login_util.rs:77
+msgid "Don't specify '{}' as part of the URL."
+msgstr "N’utilisez pas « {} » dans l’adresse."
+
+#: celeste/src/login/login_util.rs:90
+msgid "Username"
+msgstr "Nom d’utilisateur"
+
+#: celeste/src/login/login_util.rs:96
+msgid "Password"
+msgstr "Mot de passe"
+
+#: celeste/src/login/login_util.rs:102
+msgid "Log in"
+msgstr "Se connecter"
+
+#: celeste/src/login/mod.rs:72
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"La connexion au serveur a échoué. Vérifiez votre connexion internet et "
+"essayez à nouveau."
+
+#: celeste/src/login/mod.rs:76
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Impossible de s’authentifier au serveur. Vérifiez vos codes de connexion et "
+"essayez à nouveau."
+
+#: celeste/src/login/mod.rs:80
+msgid "Unable to log in"
+msgstr "Impossible de se connecter"
+
+#. The dropdown for selecting the server type.
+#: celeste/src/login/mod.rs:116
+msgid "Server Type"
+msgstr "Type de serveur"
+
+#: celeste/src/main.rs:187
+msgid "Unknown Error"
+msgstr "Erreur inconnue"
+
+#: celeste/src/main.rs:194
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Une erreur inconnue s’est produite lors de l’exécution. Il s’agit d’un "
+"problème interne à Celeste qui doit être signalé.\n"
+"\n"
+"Les information suivantes peuvent aider à déboguer le problème, notez qu’"
+"elles peuvent contenir des informations telles que des jetons/clés de "
+"connexion, évitez donc de diffuser ces informations publiquement :"
+
+#: celeste-tray/src/main.rs:54
+msgid "Open"
+msgstr "Ouvrir"
+
+#: celeste-tray/src/main.rs:55
+msgid "Quit"
+msgstr "Quitter"
+
+#: celeste-tray/src/main.rs:116
+msgid "Quitting..."
+msgstr "Arrêt en cours…"
diff --git a/po/gl.po b/po/gl.po
new file mode 100644
index 00000000..c48866fd
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,335 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.8.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-11-19 01:22+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/about.rs:20
+msgid "App icons by"
+msgstr ""
+
+#: src/gtk_util.rs:20 src/gtk_util.rs:43 src/launch.rs:614 src/launch.rs:776
+msgid "Ok"
+msgstr ""
+
+#: src/launch.rs:99
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr ""
+
+#: src/launch.rs:158
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr ""
+
+#: src/launch.rs:170
+msgid "Unable to create Celeste's database file [{}]."
+msgstr ""
+
+#: src/launch.rs:180
+msgid "Unable to connect to database [{}]."
+msgstr ""
+
+#: src/launch.rs:188
+msgid "Unable to run database migrations [{}]"
+msgstr ""
+
+#: src/launch.rs:288
+msgid "Awaiting sync check..."
+msgstr ""
+
+#: src/launch.rs:324
+msgid "Sync Errors"
+msgstr ""
+
+#: src/launch.rs:339
+msgid "File/Folder Exclusions"
+msgstr ""
+
+#: src/launch.rs:458
+msgid "Stop syncing this directory"
+msgstr ""
+
+#: src/launch.rs:475
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr ""
+
+#: src/launch.rs:484
+msgid "This directory is currently being processed to no longer be synced."
+msgstr ""
+
+#: src/launch.rs:574
+msgid "Directories"
+msgstr ""
+
+#. Get the local folder to sync with.
+#: src/launch.rs:597
+msgid "Local folder:"
+msgstr ""
+
+#: src/launch.rs:613 src/launch.rs:775 src/login/gdrive.rs:214
+msgid "Cancel"
+msgstr ""
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: src/launch.rs:633
+msgid "Remote folder:"
+msgstr ""
+
+#: src/launch.rs:820
+msgid "The specified remote directory doesn't exist"
+msgstr ""
+
+#: src/launch.rs:828
+msgid "Failed to check if the specified remote directory exists"
+msgstr ""
+
+#: src/launch.rs:839
+msgid "The specified directory pair is already being synced"
+msgstr ""
+
+#: src/launch.rs:842
+msgid "The specified local directory doesn't exist"
+msgstr ""
+
+#: src/launch.rs:845
+msgid "The specified local path isn't a directory"
+msgstr ""
+
+#: src/launch.rs:848
+msgid "The specified local directory needs to be an absolute path"
+msgstr ""
+
+#: src/launch.rs:876
+msgid "Are you sure you want to delete this remote?"
+msgstr ""
+
+#: src/launch.rs:877
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+
+#: src/launch.rs:1342 src/launch.rs:2509
+msgid "Files are synced."
+msgstr ""
+
+#: src/launch.rs:1352
+msgid "Syncing '{}'..."
+msgstr ""
+
+#: src/launch.rs:1373
+msgid "Checking for changes..."
+msgstr ""
+
+#. Add an error for reporting in the UI.
+#: src/launch.rs:1380
+msgid "Please resolve the reported syncing issues."
+msgstr ""
+
+#: src/launch.rs:1407
+msgid "{} errors found. "
+msgstr ""
+
+#: src/launch.rs:1421
+msgid "Would you like to dismiss this error?"
+msgstr ""
+
+#: src/launch.rs:1448
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr ""
+
+#: src/launch.rs:1456
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr ""
+
+#: src/launch.rs:1481
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr ""
+
+#: src/launch.rs:1490 src/launch.rs:1495 src/launch.rs:1503
+msgid "File Update"
+msgstr ""
+
+#: src/launch.rs:1490
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+
+#: src/launch.rs:1495
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+
+#: src/launch.rs:1503
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+
+#: src/launch.rs:1513
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+
+#: src/launch.rs:1515
+msgid "Which item would you like to keep?"
+msgstr ""
+
+#: src/launch.rs:1517
+msgid "Local"
+msgstr ""
+
+#: src/launch.rs:1518
+msgid "Remote"
+msgstr ""
+
+#: src/launch.rs:1567
+msgid "1 error found."
+msgstr ""
+
+#: src/launch.rs:1569
+msgid "{} errors found."
+msgstr ""
+
+#: src/launch.rs:1701
+msgid "Checking '{}' for changes..."
+msgstr ""
+
+#: src/launch.rs:2117
+msgid "Checking '{}' on remote for changes..."
+msgstr ""
+
+#: src/launch.rs:2530
+msgid "Finished sync checks with {} errors."
+msgstr ""
+
+#: src/launch.rs:2535
+msgid "Finished sync checks."
+msgstr ""
+
+#: src/login/gdrive.rs:211
+msgid "Authenticating to {}..."
+msgstr ""
+
+#: src/login/gdrive.rs:212
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+
+#: src/login/gdrive.rs:239
+msgid "There was an issue while running the webserver for authentication"
+msgstr ""
+
+#: src/login/gdrive.rs:248
+msgid "There was an issue authenticating to {}"
+msgstr ""
+
+#: src/login/login_util.rs:15
+msgid "Name"
+msgstr ""
+
+#: src/login/login_util.rs:27
+msgid "Name already exists."
+msgstr ""
+
+#: src/login/login_util.rs:29
+msgid "Invalid name. Names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+
+#: src/login/login_util.rs:43
+msgid "Server URL"
+msgstr ""
+
+#: src/login/login_util.rs:49
+msgid "Invalid server URL ({})."
+msgstr ""
+
+#: src/login/login_util.rs:58
+msgid "Invalid server URL (no domain specified)."
+msgstr ""
+
+#: src/login/login_util.rs:62
+msgid "Invalid server URL (password was specified)."
+msgstr ""
+
+#: src/login/login_util.rs:66
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr ""
+
+#: src/login/login_util.rs:78
+msgid "Don't specify '{}' as part of the URL."
+msgstr ""
+
+#: src/login/login_util.rs:91
+msgid "Username"
+msgstr ""
+
+#: src/login/login_util.rs:97
+msgid "Password"
+msgstr ""
+
+#: src/login/login_util.rs:104
+msgid "2FA Code"
+msgstr ""
+
+#: src/login/login_util.rs:113
+msgid "The provided 2FA code is invalid (should only contain digits)."
+msgstr ""
+
+#: src/login/login_util.rs:118
+msgid "The provided 2FA code is invalid (should be 6 digits long)."
+msgstr ""
+
+#: src/login/login_util.rs:142
+msgid "Log in"
+msgstr ""
+
+#: src/login/mod.rs:77
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+
+#: src/login/mod.rs:80
+msgid "A 2FA code is required to log in to this account. Provide one and try again."
+msgstr ""
+
+#: src/login/mod.rs:83
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+
+#: src/login/mod.rs:87
+msgid "Unable to log in"
+msgstr ""
+
+#. The dropdown for selecting the server type.
+#: src/login/mod.rs:124
+msgid "Server Type"
+msgstr ""
+
+#: src/tray.rs:13
+msgid "Awaiting sync checks..."
+msgstr ""
+
+#: src/tray.rs:60
+msgid "Open"
+msgstr ""
+
+#: src/tray.rs:67
+msgid "Close"
+msgstr ""
+
+#: src/main.rs:188
+msgid "Unknown Error"
+msgstr ""
+
+#: src/main.rs:195
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
diff --git a/po/hi.po b/po/hi.po
new file mode 100644
index 00000000..98901936
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,359 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.8.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-11-19 01:22+0000\n"
+"PO-Revision-Date: 2024-05-08 04:07+0000\n"
+"Last-Translator: Scrambled777 \n"
+"Language-Team: Hindi \n"
+"Language: hi\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"
+"X-Generator: Weblate 5.5.4-rc\n"
+
+#: src/about.rs:20
+msgid "App icons by"
+msgstr "ऐप आइकन इनके द्वारा"
+
+#: src/gtk_util.rs:20 src/gtk_util.rs:43 src/launch.rs:614 src/launch.rs:776
+msgid "Ok"
+msgstr "ठीक है"
+
+#: src/launch.rs:99
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "'{}' और '{}' दोनों पिछले समन्वयन की तुलना में अधिक हाल के हैं।"
+
+#: src/launch.rs:158
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Celeste की विन्यास निर्देशिका [{}] बनाने में असमर्थ।"
+
+#: src/launch.rs:170
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Celeste की डेटाबेस फाइल [{}] बनाने में असमर्थ।"
+
+#: src/launch.rs:180
+msgid "Unable to connect to database [{}]."
+msgstr "डेटाबेस से जुड़ने में असमर्थ है [{}]।"
+
+#: src/launch.rs:188
+msgid "Unable to run database migrations [{}]"
+msgstr "डेटाबेस प्रवासन चलाने में असमर्थ [{}]"
+
+#: src/launch.rs:288
+msgid "Awaiting sync check..."
+msgstr "समन्वयन जांच की प्रतीक्षा है…"
+
+#: src/launch.rs:324
+msgid "Sync Errors"
+msgstr "समन्वयन त्रुटियां"
+
+#: src/launch.rs:339
+msgid "File/Folder Exclusions"
+msgstr "फाइल/फोल्डर बहिष्करण"
+
+#: src/launch.rs:458
+msgid "Stop syncing this directory"
+msgstr "इस निर्देशिका को समन्वयित करना बंद करें"
+
+#: src/launch.rs:475
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "क्या आप वाकई '{}' को '{}' से समन्वयित करना बंद करना चाहते हैं?"
+
+#: src/launch.rs:484
+msgid "This directory is currently being processed to no longer be synced."
+msgstr "यह निर्देशिका वर्तमान में समन्वयित न होने के लिए संसाधित की जा रही है।"
+
+#: src/launch.rs:574
+msgid "Directories"
+msgstr "निर्देशिका"
+
+#. Get the local folder to sync with.
+#: src/launch.rs:597
+msgid "Local folder:"
+msgstr "स्थानीय फोल्डर:"
+
+#: src/launch.rs:613 src/launch.rs:775 src/login/gdrive.rs:214
+msgid "Cancel"
+msgstr "रद्द करें"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: src/launch.rs:633
+msgid "Remote folder:"
+msgstr "रिमोट फोल्डर:"
+
+#: src/launch.rs:820
+msgid "The specified remote directory doesn't exist"
+msgstr "निर्दिष्ट रिमोट निर्देशिका मौजूद नहीं है"
+
+#: src/launch.rs:828
+msgid "Failed to check if the specified remote directory exists"
+msgstr "यह जांचने में विफल रहा कि निर्दिष्ट रिमोट निर्देशिका मौजूद है या नहीं"
+
+#: src/launch.rs:839
+msgid "The specified directory pair is already being synced"
+msgstr "निर्दिष्ट निर्देशिका जोड़ी पहले से ही समन्वयित हो रही है"
+
+#: src/launch.rs:842
+msgid "The specified local directory doesn't exist"
+msgstr "निर्दिष्ट स्थानीय निर्देशिका मौजूद नहीं है"
+
+#: src/launch.rs:845
+msgid "The specified local path isn't a directory"
+msgstr "निर्दिष्ट स्थानीय पथ कोई निर्देशिका नहीं है"
+
+#: src/launch.rs:848
+msgid "The specified local directory needs to be an absolute path"
+msgstr "निर्दिष्ट स्थानीय निर्देशिका को एक पूर्ण पथ होना आवश्यक है"
+
+#: src/launch.rs:876
+msgid "Are you sure you want to delete this remote?"
+msgstr "क्या आप वाकई इस रिमोट को हटाना चाहते हैं?"
+
+#: src/launch.rs:877
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr "इस रिमोट से जुड़ी सभी निर्देशिकाएं भी समन्वयित होना बंद कर देंगी।"
+
+#: src/launch.rs:1342 src/launch.rs:2509
+msgid "Files are synced."
+msgstr "फाइलें समन्वयित हैं।"
+
+#: src/launch.rs:1352
+msgid "Syncing '{}'..."
+msgstr "'{}' समन्वयित हो रही है…"
+
+#: src/launch.rs:1373
+msgid "Checking for changes..."
+msgstr "परिवर्तनों की जाँच की जा रही है…"
+
+#. Add an error for reporting in the UI.
+#: src/launch.rs:1380
+msgid "Please resolve the reported syncing issues."
+msgstr "कृपया रिपोर्ट की गई समन्वयन समस्याओं का समाधान करें।"
+
+#: src/launch.rs:1407
+msgid "{} errors found. "
+msgstr "{} त्रुटियां पाई गई। "
+
+#: src/launch.rs:1421
+msgid "Would you like to dismiss this error?"
+msgstr "क्या आप इस त्रुटि को ख़ारिज करना चाहेंगे?"
+
+#: src/launch.rs:1448
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "रिमोट पर '{}' को '{}' से समन्वयित करने में विफल।"
+
+#: src/launch.rs:1456
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "रिमोट पर '{}' को '{}' से समन्वयित करने में विफल।"
+
+#: src/launch.rs:1481
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "रिमोट से '{}' के लिए डेटा लाने में असमर्थ।"
+
+#: src/launch.rs:1490 src/launch.rs:1495 src/launch.rs:1503
+msgid "File Update"
+msgstr "फाइल अद्यतन"
+
+#: src/launch.rs:1490
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"अब न तो स्थानीय वस्तु और न ही रिमोट वस्तु मौजूद है। अब यह त्रुटि दूर हो "
+"जाएगी।"
+
+#: src/launch.rs:1495
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr "अब केवल स्थानीय आइटम मौजूद है, इसलिए इसे रिमोट से समन्वयित किया जाएगा।"
+
+#: src/launch.rs:1503
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"अब केवल रिमोट वस्तु मौजूद है, इसलिए इसे स्थानीय मशीन से समन्वयित किया जाएगा।"
+
+#: src/launch.rs:1513
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"स्थानीय वस्तु '{}' और रिमोट वस्तु '{}' दोनों को अंतिम समन्वयन के बाद से अद्"
+"यतन किया गया है।"
+
+#: src/launch.rs:1515
+msgid "Which item would you like to keep?"
+msgstr "आप कौन सी वस्तु रखना चाहेंगे?"
+
+#: src/launch.rs:1517
+msgid "Local"
+msgstr "स्थानीय"
+
+#: src/launch.rs:1518
+msgid "Remote"
+msgstr "रिमोट"
+
+#: src/launch.rs:1567
+msgid "1 error found."
+msgstr "1 त्रुटि मिली।"
+
+#: src/launch.rs:1569
+msgid "{} errors found."
+msgstr "{} त्रुटियां पाई गई।"
+
+#: src/launch.rs:1701
+msgid "Checking '{}' for changes..."
+msgstr "परिवर्तनों के लिए '{}' की जाँच की जा रही है…"
+
+#: src/launch.rs:2117
+msgid "Checking '{}' on remote for changes..."
+msgstr "परिवर्तनों के लिए रिमोट पर '{}' की जाँच की जा रही है…"
+
+#: src/launch.rs:2530
+msgid "Finished sync checks with {} errors."
+msgstr "{} त्रुटियों के साथ समन्वयन जांच पूरी हो गई।"
+
+#: src/launch.rs:2535
+msgid "Finished sync checks."
+msgstr "समन्वयन जांच पूरी हो गई।"
+
+#: src/login/gdrive.rs:211
+msgid "Authenticating to {}..."
+msgstr "{} को प्रमाणित किया जा रहा है…"
+
+#: src/login/gdrive.rs:212
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"अपने ब्राउज़र में खुले लिंक का अनुसरण करें, और काम पूरा होने पर वापस आएं।"
+
+#: src/login/gdrive.rs:239
+msgid "There was an issue while running the webserver for authentication"
+msgstr "प्रमाणीकरण के लिए वेब सर्वर चलाते समय एक समस्या हुई"
+
+#: src/login/gdrive.rs:248
+msgid "There was an issue authenticating to {}"
+msgstr "{} को प्रमाणित करने में एक समस्या हुई"
+
+#: src/login/login_util.rs:15
+msgid "Name"
+msgstr "नाम"
+
+#: src/login/login_util.rs:27
+msgid "Name already exists."
+msgstr "नाम पहले से मौजूद है।"
+
+#: src/login/login_util.rs:29
+msgid "Invalid name. Names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"अमान्य नाम। नाम अवश्य होने चाहिए:\n"
+"- केवल संख्याएं, अक्षर, '_', '-', '.', और रिक्त स्थान शामिल हैं\n"
+"- '-' या रिक्त स्थान से प्रारंभ न करें\n"
+"- रिक्त स्थान के साथ समाप्त नहीं होता"
+
+#: src/login/login_util.rs:43
+msgid "Server URL"
+msgstr "सर्वर URL"
+
+#: src/login/login_util.rs:49
+msgid "Invalid server URL ({})."
+msgstr "अमान्य सर्वर URL ({})।"
+
+#: src/login/login_util.rs:58
+msgid "Invalid server URL (no domain specified)."
+msgstr "अमान्य सर्वर URL (कोई डोमेन निर्दिष्ट नहीं)।"
+
+#: src/login/login_util.rs:62
+msgid "Invalid server URL (password was specified)."
+msgstr "अमान्य सर्वर URL (पासवर्ड निर्दिष्ट किया गया था)।"
+
+#: src/login/login_util.rs:66
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "अमान्य सर्वर URL (अज्ञात सर्वर योजना {})।"
+
+#: src/login/login_util.rs:78
+msgid "Don't specify '{}' as part of the URL."
+msgstr "URL के भाग के रूप में '{}' निर्दिष्ट न करें।"
+
+#: src/login/login_util.rs:91
+msgid "Username"
+msgstr "उपयोक्तानाम"
+
+#: src/login/login_util.rs:97
+msgid "Password"
+msgstr "पासवर्ड"
+
+#: src/login/login_util.rs:104
+msgid "2FA Code"
+msgstr "2FA कोड"
+
+#: src/login/login_util.rs:113
+msgid "The provided 2FA code is invalid (should only contain digits)."
+msgstr "प्रदान किया गया 2FA कोड अमान्य है (इसमें केवल अंक होने चाहिए)।"
+
+#: src/login/login_util.rs:118
+msgid "The provided 2FA code is invalid (should be 6 digits long)."
+msgstr "प्रदान किया गया 2FA कोड अमान्य है (6 अंक लंबा होना चाहिए)।"
+
+#: src/login/login_util.rs:142
+msgid "Log in"
+msgstr "लॉगिन"
+
+#: src/login/mod.rs:77
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"सर्वर से जुड़ने में अक्षम। अपना इंटरनेट कनेक्शन जांचें और पुनः प्रयास करें।"
+
+#: src/login/mod.rs:80
+msgid "A 2FA code is required to log in to this account. Provide one and try again."
+msgstr ""
+"इस खाते में लॉग इन करने के लिए 2FA कोड आवश्यक है। एक प्रदान करें और पुनः "
+"प्रयास करें।"
+
+#: src/login/mod.rs:83
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"सर्वर पर प्रमाणित करने में असमर्थ। अपने लॉगिन क्रेडेंशियल जांचें और पुनः "
+"प्रयास करें।"
+
+#: src/login/mod.rs:87
+msgid "Unable to log in"
+msgstr "लॉगिन करने में असमर्थ"
+
+#. The dropdown for selecting the server type.
+#: src/login/mod.rs:124
+msgid "Server Type"
+msgstr "सर्वर प्रकार"
+
+#: src/tray.rs:13
+msgid "Awaiting sync checks..."
+msgstr "सिंक जांच की प्रतीक्षा है…"
+
+#: src/tray.rs:60
+msgid "Open"
+msgstr "खोलें"
+
+#: src/tray.rs:67
+msgid "Close"
+msgstr "बंद करें"
+
+#: src/main.rs:188
+msgid "Unknown Error"
+msgstr "अज्ञात त्रुटि"
+
+#: src/main.rs:195
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"चलते समय कोई अज्ञात त्रुटि उत्पन्न हुई है। यह Celeste का एक आंतरिक मुद्दा है "
+"और इसकी सूचना दी जानी चाहिए।\n"
+"\n"
+"निम्नलिखित बैकट्रेस समस्या को डीबग करने में मदद कर सकता है - ध्यान दें कि "
+"इसमें लॉगिन टोकन/कुंजी जैसी जानकारी हो सकती है, इसलिए जानकारी को सार्वजनिक रू"
+"प से पोस्ट करने से बचें:"
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 00000000..a40144fd
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,358 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.8.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-11-19 01:22+0000\n"
+"PO-Revision-Date: 2024-03-01 09:00+0000\n"
+"Last-Translator: H Tamás \n"
+"Language-Team: Hungarian \n"
+"Language: hu\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"
+"X-Generator: Weblate 5.5-dev\n"
+
+#: src/about.rs:20
+msgid "App icons by"
+msgstr "App ikonokat készítette"
+
+#: src/gtk_util.rs:20 src/gtk_util.rs:43 src/launch.rs:614 src/launch.rs:776
+msgid "Ok"
+msgstr "Ok"
+
+#: src/launch.rs:99
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "'{}' és '{}' frissebbek mint a legutolsó szinkelt."
+
+#: src/launch.rs:158
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "A Celeste konfig mappájának létrehozása sikertelen [{}]."
+
+#: src/launch.rs:170
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Sikertelen a Celesete adatbázis fájl létrehozása [{}]."
+
+#: src/launch.rs:180
+msgid "Unable to connect to database [{}]."
+msgstr "Sikertelen adatbázishoz való csatlakozás [{}]."
+
+#: src/launch.rs:188
+msgid "Unable to run database migrations [{}]"
+msgstr "Sikertelen adatbázis migráció futtatás [{}]"
+
+#: src/launch.rs:288
+msgid "Awaiting sync check..."
+msgstr "Szinkelési ellenőrzésre várás..."
+
+#: src/launch.rs:324
+msgid "Sync Errors"
+msgstr "Szinkronizációs Hibák"
+
+#: src/launch.rs:339
+msgid "File/Folder Exclusions"
+msgstr "Fájl/Mappa Kivételek"
+
+#: src/launch.rs:458
+msgid "Stop syncing this directory"
+msgstr "Ne szinkelje tovább ezt a mappát"
+
+#: src/launch.rs:475
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Biztos abban, hogy a '{}'-t nem szinkeli tovább '{}'-ba?"
+
+#: src/launch.rs:484
+msgid "This directory is currently being processed to no longer be synced."
+msgstr "Ez a mappa jelenleg szinkelés megszüntetési folyamat alatt áll."
+
+#: src/launch.rs:574
+msgid "Directories"
+msgstr "Mappák"
+
+#. Get the local folder to sync with.
+#: src/launch.rs:597
+msgid "Local folder:"
+msgstr "Helyi mappa:"
+
+#: src/launch.rs:613 src/launch.rs:775 src/login/gdrive.rs:214
+msgid "Cancel"
+msgstr "Mégse"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: src/launch.rs:633
+msgid "Remote folder:"
+msgstr "Távoli mappa:"
+
+#: src/launch.rs:820
+msgid "The specified remote directory doesn't exist"
+msgstr "A meghatározott távoli mappa nem létezik"
+
+#: src/launch.rs:828
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Nem sikerült ellenőrizni a távoli mappa létezését"
+
+#: src/launch.rs:839
+msgid "The specified directory pair is already being synced"
+msgstr "A megadott mappa páros már alapból szinkelődik"
+
+#: src/launch.rs:842
+msgid "The specified local directory doesn't exist"
+msgstr "A megadott helyi mappa nem létezik"
+
+#: src/launch.rs:845
+msgid "The specified local path isn't a directory"
+msgstr "A megadott helyi elérési útvonal nem mappára mutat"
+
+#: src/launch.rs:848
+msgid "The specified local directory needs to be an absolute path"
+msgstr "A megadott helyi mappa abszolút elérési úttal kell rendelkezzen"
+
+#: src/launch.rs:876
+msgid "Are you sure you want to delete this remote?"
+msgstr "Biztosan ki akarja törölni ezt a távoli elérést?"
+
+#: src/launch.rs:877
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr "Minden ezzel a távoli eléréssel kapcsolatos mappa szinkelése leáll."
+
+#: src/launch.rs:1342 src/launch.rs:2509
+msgid "Files are synced."
+msgstr "A fájlok szinkeltek."
+
+#: src/launch.rs:1352
+msgid "Syncing '{}'..."
+msgstr "'{}' szinkelése..."
+
+#: src/launch.rs:1373
+msgid "Checking for changes..."
+msgstr "Változások keresése..."
+
+#. Add an error for reporting in the UI.
+#: src/launch.rs:1380
+msgid "Please resolve the reported syncing issues."
+msgstr "Kérem oldja meg a jelentett szinkelési hibákat."
+
+#: src/launch.rs:1407
+msgid "{} errors found. "
+msgstr "{} hibát találtunk. "
+
+#: src/launch.rs:1421
+msgid "Would you like to dismiss this error?"
+msgstr "Szeretne eltekinteni ettől a hibától?"
+
+#: src/launch.rs:1448
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "'{}' szinkelése sikertelen ovlt '{}' o felé a távoli kapcsolatban."
+
+#: src/launch.rs:1456
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "'{}' sikertelenül szinkelt '{}' távolin."
+
+#: src/launch.rs:1481
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "'{}' adatinak lekérdezése nem lehetséges a távoli kapcsolatról."
+
+#: src/launch.rs:1490 src/launch.rs:1495 src/launch.rs:1503
+msgid "File Update"
+msgstr "Fájl Frissítés"
+
+#: src/launch.rs:1490
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"Sem a helyi sem a távoli elem nem áll rendelkezésre. Ez a hiba törlésre "
+"kerül."
+
+#: src/launch.rs:1495
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr "Csak a helyi elem létezik, szinkelődni fog a távolira is."
+
+#: src/launch.rs:1503
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr "Csak a távoli elem létezik, ezért lokálisan is szinkelődni fog."
+
+#: src/launch.rs:1513
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"Mind a helyi '{}' elem, mind a távoli '{}' elem frissítésre került a "
+"legutóbbi szinkronizáció óta."
+
+#: src/launch.rs:1515
+msgid "Which item would you like to keep?"
+msgstr "Melyik elemet kívánja meghagyni?"
+
+#: src/launch.rs:1517
+msgid "Local"
+msgstr "Helyi"
+
+#: src/launch.rs:1518
+msgid "Remote"
+msgstr "Távoli"
+
+#: src/launch.rs:1567
+msgid "1 error found."
+msgstr "1 hibát találtunk."
+
+#: src/launch.rs:1569
+msgid "{} errors found."
+msgstr "{} hibát találtunk."
+
+#: src/launch.rs:1701
+msgid "Checking '{}' for changes..."
+msgstr "'{}' változásainak ellenőrzése..."
+
+#: src/launch.rs:2117
+msgid "Checking '{}' on remote for changes..."
+msgstr "'{}' távoli változások ellenőrzése..."
+
+#: src/launch.rs:2530
+msgid "Finished sync checks with {} errors."
+msgstr "{} hibával zárult a szikelés ellenőrzés."
+
+#: src/launch.rs:2535
+msgid "Finished sync checks."
+msgstr "Szink ellenőrzés befejeződött."
+
+#: src/login/gdrive.rs:211
+msgid "Authenticating to {}..."
+msgstr "Hitelesítése {}-be..."
+
+#: src/login/gdrive.rs:212
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr "Kövesse a böngészőben megnyíló linket, majd térjen vissza ha végzett."
+
+#: src/login/gdrive.rs:239
+msgid "There was an issue while running the webserver for authentication"
+msgstr "Hiba lépett fel a webszerver hitelesítési futtatása során"
+
+#: src/login/gdrive.rs:248
+msgid "There was an issue authenticating to {}"
+msgstr "Hiba lépett fel a {} hitelesítése során"
+
+#: src/login/login_util.rs:15
+msgid "Name"
+msgstr "Név"
+
+#: src/login/login_util.rs:27
+msgid "Name already exists."
+msgstr "Már létező név."
+
+#: src/login/login_util.rs:29
+msgid "Invalid name. Names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Érvénytelen név. Tartalmaznia kell:\n"
+"- Csak számokat, betűket, '_', '-', '.', és szóközt tartalmazhat\n"
+"- Nem kezdődhet szóközzel vagy kötőjellel\n"
+"- Nem végződhet szóközzel"
+
+#: src/login/login_util.rs:43
+msgid "Server URL"
+msgstr "Szerver elérési cím"
+
+#: src/login/login_util.rs:49
+msgid "Invalid server URL ({})."
+msgstr "Hibás szerver elérési cím ({})."
+
+#: src/login/login_util.rs:58
+msgid "Invalid server URL (no domain specified)."
+msgstr "Hibás szerver elérési cím (domain nem került megadásra)."
+
+#: src/login/login_util.rs:62
+msgid "Invalid server URL (password was specified)."
+msgstr "Hibás szerver elérési cím (megadott jelszó)."
+
+#: src/login/login_util.rs:66
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Hibás szerver elérési cím (ismeretlen szerver séma {})."
+
+#: src/login/login_util.rs:78
+msgid "Don't specify '{}' as part of the URL."
+msgstr "Ne adja meg a '{}'-t a címben."
+
+#: src/login/login_util.rs:91
+msgid "Username"
+msgstr "Felhasználónév"
+
+#: src/login/login_util.rs:97
+msgid "Password"
+msgstr "Jelszó"
+
+#: src/login/login_util.rs:104
+msgid "2FA Code"
+msgstr "2FA Kód"
+
+#: src/login/login_util.rs:113
+msgid "The provided 2FA code is invalid (should only contain digits)."
+msgstr "A megadott 2FA kód helytelen (csak számokat tartalmazhat)."
+
+#: src/login/login_util.rs:118
+msgid "The provided 2FA code is invalid (should be 6 digits long)."
+msgstr "A megadott 2FA kód helytelen (csak 6 karakter hosszú lehet)."
+
+#: src/login/login_util.rs:142
+msgid "Log in"
+msgstr "Bejelentkezés"
+
+#: src/login/mod.rs:77
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"A szerverhez való csatlakozás sikertelen. Kérem ellenőrizze az internet "
+"kapcsolatát és próbálja újra."
+
+#: src/login/mod.rs:80
+msgid "A 2FA code is required to log in to this account. Provide one and try again."
+msgstr ""
+"2FA kód szükséges a fiókba való belépéshez. Kérem írja be a kódot és "
+"próbálja újra."
+
+#: src/login/mod.rs:83
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Sikertelen hitelesítés a szerver felé. Ellenőrizze a bejelentkezési adatait, "
+"és próbálja újra."
+
+#: src/login/mod.rs:87
+msgid "Unable to log in"
+msgstr "Sikertelen bejelentkezés"
+
+#. The dropdown for selecting the server type.
+#: src/login/mod.rs:124
+msgid "Server Type"
+msgstr "Szerver Típus"
+
+#: src/tray.rs:13
+msgid "Awaiting sync checks..."
+msgstr "Várakozás a szinkelési ellenőrzésre..."
+
+#: src/tray.rs:60
+msgid "Open"
+msgstr "Megnyitás"
+
+#: src/tray.rs:67
+msgid "Close"
+msgstr "Bezárás"
+
+#: src/main.rs:188
+msgid "Unknown Error"
+msgstr "Ismeretlen Hiba"
+
+#: src/main.rs:195
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"A futás során ismetelen hiba lépett fel. Ez egy belső Celeste hiba, emiatt "
+"jelentse be a hibát.\n"
+"\n"
+"A következő visszakövetés segíthet a hiba debugolásában - vegye figyelembe, "
+"hogy az információ tartalmazhat bejelentkezési tokent/kulcsokat, ezért "
+"tartózkodjon publikálásuktól:"
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 00000000..e1b32263
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,371 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-08 00:55+0000\n"
+"PO-Revision-Date: 2023-10-09 12:02+0000\n"
+"Last-Translator: albanobattistella \n"
+"Language-Team: Italian \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"
+"X-Generator: Weblate 5.1-dev\n"
+
+#: src/about.rs:20
+msgid "App icons by"
+msgstr "Icone app di"
+
+#: src/gtk_util.rs:20 src/gtk_util.rs:43 src/launch.rs:614 src/launch.rs:776
+msgid "Ok"
+msgstr "Ok"
+
+#: src/launch.rs:99
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr ""
+"Sia '{}' che '{}' sono più recenti rispetto all'ultima sincronizzazione."
+
+#: src/launch.rs:158
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Impossibile creare la directory di configurazione di Celeste [{}]."
+
+#: src/launch.rs:170
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Impossibile creare il file del database di Celeste [{}]."
+
+#: src/launch.rs:180
+msgid "Unable to connect to database [{}]."
+msgstr "Impossibile connettersi al database [{}]."
+
+#: src/launch.rs:188
+msgid "Unable to run database migrations [{}]"
+msgstr "Impossibile eseguire le migrazioni del database [{}]"
+
+#: src/launch.rs:288
+msgid "Awaiting sync check..."
+msgstr "In attesa del controllo della sincronizzazione..."
+
+#: src/launch.rs:324
+msgid "Sync Errors"
+msgstr "Errori di sincronizzazione"
+
+#: src/launch.rs:339
+msgid "File/Folder Exclusions"
+msgstr "Esclusioni di file/cartelle"
+
+#: src/launch.rs:458
+msgid "Stop syncing this directory"
+msgstr "Interrompi la sincronizzazione di questa directory"
+
+#: src/launch.rs:475
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Sei sicuro di voler interrompere la sincronizzazione da '{}' a '{}'?"
+
+#: src/launch.rs:484
+msgid "This directory is currently being processed to no longer be synced."
+msgstr ""
+"Questa directory è attualmente in fase di elaborazione per non essere più "
+"sincronizzata."
+
+#: src/launch.rs:574
+msgid "Directories"
+msgstr "Directory"
+
+#. Get the local folder to sync with.
+#: src/launch.rs:597
+msgid "Local folder:"
+msgstr "Cartella locale:"
+
+#: src/launch.rs:613 src/launch.rs:775 src/login/gdrive.rs:208
+msgid "Cancel"
+msgstr "Annulla"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: src/launch.rs:633
+msgid "Remote folder:"
+msgstr "Cartella remota:"
+
+#: src/launch.rs:820
+msgid "The specified remote directory doesn't exist"
+msgstr "La directory remota specificata non esiste"
+
+#: src/launch.rs:828
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Impossibile verificare se la directory remota specificata esiste"
+
+#: src/launch.rs:839
+msgid "The specified directory pair is already being synced"
+msgstr "La coppia di directory specificate è già in fase di sincronizzazione"
+
+#: src/launch.rs:842
+msgid "The specified local directory doesn't exist"
+msgstr "La directory locale specificata non esiste"
+
+#: src/launch.rs:845
+msgid "The specified local path isn't a directory"
+msgstr "Il percorso locale specificato non è una directory"
+
+#: src/launch.rs:848
+msgid "The specified local directory needs to be an absolute path"
+msgstr "La directory locale specificata deve essere un percorso assoluto"
+
+#: src/launch.rs:876
+msgid "Are you sure you want to delete this remote?"
+msgstr "Sei sicuro di voler eliminare questa remota?"
+
+#: src/launch.rs:877
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Anche tutte le directory associate a questa remota interromperanno la "
+"sincronizzazione."
+
+#. Notify the tray app that we're syncing this remote now.
+#: src/launch.rs:1160
+msgid "Syncing '{}'..."
+msgstr "Sincronizzazione di '{}'..."
+
+#: src/launch.rs:1194
+msgid "Checking for changes..."
+msgstr "Verifica delle modifiche in corso..."
+
+#. Add an error for reporting in the UI.
+#: src/launch.rs:1201
+msgid "Please resolve the reported syncing issues."
+msgstr "Risolvi i problemi di sincronizzazione segnalati."
+
+#: src/launch.rs:1228
+msgid "{} errors found. "
+msgstr "{} errori trovati. "
+
+#: src/launch.rs:1242
+msgid "Would you like to dismiss this error?"
+msgstr "Vuoi eliminare questo errore?"
+
+#: src/launch.rs:1269
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "Impossibile sincronizzare da '{}' a '{}' nell'ambiente remoto."
+
+#: src/launch.rs:1277
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "Impossibile sincronizzare da '{}' sull'ambiente remoto a '{}'."
+
+#: src/launch.rs:1302
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "Impossibile recuperare i dati per '{}' dall'ambiente remoto."
+
+#: src/launch.rs:1311 src/launch.rs:1316 src/launch.rs:1324
+msgid "File Update"
+msgstr "Aggiornamento del file"
+
+#: src/launch.rs:1311
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"L'elemento locale e l'elemento remoto non esistono più. Questo errore non "
+"verrà più visualizzato."
+
+#: src/launch.rs:1316
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"Ora esiste solo l'elemento locale, quindi verrà sincronizzato con l'ambiente "
+"remoto."
+
+#: src/launch.rs:1324
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"Ora esiste solo l'elemento remoto, quindi verrà sincronizzato con il tuo "
+"ambiente locale."
+
+#: src/launch.rs:1334
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"L'elemento '{}' e la sua versione remota '{}' sono stati entrambi aggiornati "
+"dall'ultima sincronizzazione."
+
+#: src/launch.rs:1336
+msgid "Which item would you like to keep?"
+msgstr "Quale elemento vorresti conservare?"
+
+#: src/launch.rs:1338
+msgid "Local"
+msgstr "Locale"
+
+#: src/launch.rs:1339
+msgid "Remote"
+msgstr "Remoto"
+
+#: src/launch.rs:1388
+msgid "1 error found."
+msgstr "1 errore trovato."
+
+#: src/launch.rs:1390
+msgid "{} errors found."
+msgstr "{} errori trovati."
+
+#: src/launch.rs:1522
+msgid "Checking '{}' for changes..."
+msgstr "Controllo delle modifiche su '{}' in corso..."
+
+#: src/launch.rs:1938
+msgid "Checking '{}' on remote for changes..."
+msgstr "Ricerca di modifiche in '{}' nell'ambiente remoto..."
+
+#: src/launch.rs:2329
+msgid "Directory has finished sync checks."
+msgstr "La directory ha terminato i controlli di sincronizzazione."
+
+#: src/launch.rs:2350
+msgid "Finished sync checks with {} errors."
+msgstr "Controlli di sincronizzazione terminati con {} errori."
+
+#: src/launch.rs:2355
+msgid "Finished sync checks."
+msgstr "Controlli di sincronizzazione terminati."
+
+#: src/login/gdrive.rs:205
+msgid "Authenticating to {}..."
+msgstr "Autenticazione su {}..."
+
+#: src/login/gdrive.rs:206
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"Segui il collegamento aperto nel tuo browser e torna una volta terminato."
+
+#: src/login/gdrive.rs:233
+msgid "There was an issue while running the webserver for authentication"
+msgstr ""
+"Si è verificato un problema durante l'esecuzione del server Web per "
+"l'autenticazione"
+
+#: src/login/gdrive.rs:242
+msgid "There was an issue authenticating to {}"
+msgstr "Si è verificato un problema durante l'autenticazione su {}"
+
+#: src/login/login_util.rs:15
+msgid "Server Name"
+msgstr "Nome del server"
+
+#: src/login/login_util.rs:27
+msgid "Server name already exists."
+msgstr "Il nome del server esiste già."
+
+#: src/login/login_util.rs:29
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Nome del server non valido. I nomi dei server devono:\n"
+"- Contiene solo numeri, lettere, '_', '-', '.' e spazi\n"
+"- Non iniziare con \"-\" o con uno spazio\n"
+"- Non terminare con uno spazio"
+
+#: src/login/login_util.rs:43
+msgid "Server URL"
+msgstr "URL server"
+
+#: src/login/login_util.rs:49
+msgid "Invalid server URL ({})."
+msgstr "URL del server non valido ({})."
+
+#: src/login/login_util.rs:58
+msgid "Invalid server URL (no domain specified)."
+msgstr "URL del server non valido (nessun dominio specificato)."
+
+#: src/login/login_util.rs:62
+msgid "Invalid server URL (password was specified)."
+msgstr "URL del server non valido (la password è stata specificata)."
+
+#: src/login/login_util.rs:66
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "URL del server non valido (schema server sconosciuto {})."
+
+#: src/login/login_util.rs:78
+msgid "Don't specify '{}' as part of the URL."
+msgstr "Non specificare \"{}\" come parte dell'URL."
+
+#: src/login/login_util.rs:91
+msgid "Username"
+msgstr "Nome utente"
+
+#: src/login/login_util.rs:97
+msgid "Password"
+msgstr "Password"
+
+#: src/login/login_util.rs:104
+msgid "2FA Code"
+msgstr "Codice 2FA"
+
+#: src/login/login_util.rs:113
+msgid "The provided 2FA code is invalid (should only contain digits)."
+msgstr "Il codice 2FA fornito non è valido (deve contenere solo cifre)."
+
+#: src/login/login_util.rs:118
+msgid "The provided 2FA code is invalid (should be 6 digits long)."
+msgstr "Il codice 2FA fornito non è valido (deve essere lungo 6 cifre)."
+
+#: src/login/login_util.rs:142
+msgid "Log in"
+msgstr "Log in"
+
+#: src/login/mod.rs:77
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"Impossibile connettersi al server. Controlla la connessione Internet e "
+"riprova."
+
+#: src/login/mod.rs:80
+msgid "A 2FA code is required to log in to this account. Provide one and try again."
+msgstr ""
+"Per accedere a questo account è necessario un codice 2FA. Fornirne uno e "
+"riprovare."
+
+#: src/login/mod.rs:83
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Impossibile autenticarsi sul server. Controlla le tue credenziali di accesso "
+"e riprova."
+
+#: src/login/mod.rs:87
+msgid "Unable to log in"
+msgstr "Impossibile fare il log in"
+
+#. The dropdown for selecting the server type.
+#: src/login/mod.rs:124
+msgid "Server Type"
+msgstr "Tipo di server"
+
+#: src/tray.rs:13
+msgid "Awaiting sync checks..."
+msgstr "In attesa dei controlli di sincronizzazione..."
+
+#: src/tray.rs:57
+msgid "Open"
+msgstr "Apri"
+
+#: src/tray.rs:64
+msgid "Close"
+msgstr "Chiudi"
+
+#: src/main.rs:188
+msgid "Unknown Error"
+msgstr "Errore sconosciuto"
+
+#: src/main.rs:195
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Si è verificato un errore sconosciuto durante l'esecuzione. Questo è un "
+"problema interno con Celeste e dovrebbe essere segnalato.\n"
+"\n"
+"Il seguente backtrace può aiutare a risolvere il problema: tieni presente "
+"che potrebbe contenere informazioni come token/chiavi di accesso, quindi "
+"evita di pubblicare le informazioni pubblicamente:"
diff --git a/po/nb_NO.po b/po/nb_NO.po
new file mode 100644
index 00000000..55d77d4b
--- /dev/null
+++ b/po/nb_NO.po
@@ -0,0 +1,320 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.5.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-05-01 18:51+0000\n"
+"PO-Revision-Date: 2023-05-05 11:52+0000\n"
+"Last-Translator: Allan Nordhøy \n"
+"Language-Team: Norwegian Bokmål \n"
+"Language: nb_NO\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"
+"X-Generator: Weblate 4.18-dev\n"
+
+#: celeste/src/gtk_util.rs:20 celeste/src/gtk_util.rs:43 celeste/src/launch.rs:678 celeste/src/launch.rs:840
+msgid "Ok"
+msgstr "OK"
+
+#: celeste/src/launch.rs:102
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr ""
+
+#: celeste/src/launch.rs:214
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr ""
+
+#: celeste/src/launch.rs:226
+msgid "Unable to create Celeste's database file [{}]."
+msgstr ""
+
+#: celeste/src/launch.rs:236
+msgid "Unable to connect to database [{}]."
+msgstr "Kunne ikke koble til database [{}]."
+
+#: celeste/src/launch.rs:244
+msgid "Unable to run database migrations [{}]"
+msgstr ""
+
+#: celeste/src/launch.rs:351
+msgid "Awaiting sync check..."
+msgstr "Venter på synkroniseringssjekk …"
+
+#: celeste/src/launch.rs:387
+msgid "Sync Errors"
+msgstr "Synkroniseringsfeil"
+
+#: celeste/src/launch.rs:402
+msgid "File/Folder Exclusions"
+msgstr ""
+
+#: celeste/src/launch.rs:521
+msgid "Stop syncing this directory"
+msgstr ""
+
+#: celeste/src/launch.rs:538
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Stopp synkronisering av «{}» til «{}»?"
+
+#: celeste/src/launch.rs:547
+msgid "This directory is currently being processed to no longer be synced."
+msgstr ""
+
+#: celeste/src/launch.rs:638
+msgid "Directories"
+msgstr "Mapper"
+
+#. Get the local folder to sync with.
+#: celeste/src/launch.rs:661
+msgid "Local folder:"
+msgstr "Lokal mappe:"
+
+#: celeste/src/launch.rs:677 celeste/src/launch.rs:839 celeste/src/login/gdrive.rs:207
+msgid "Cancel"
+msgstr "Avbryt"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: celeste/src/launch.rs:697
+msgid "Remote folder:"
+msgstr "Mappe annensteds hen:"
+
+#: celeste/src/launch.rs:884
+msgid "The specified remote directory doesn't exist"
+msgstr "Angitt mappe annensteds hen finnes ikke der"
+
+#: celeste/src/launch.rs:892
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Klarte ikke å finne ut om angitt mappe annensteds hen finnes"
+
+#: celeste/src/launch.rs:903
+msgid "The specified directory pair is already being synced"
+msgstr ""
+
+#: celeste/src/launch.rs:906
+msgid "The specified local directory doesn't exist"
+msgstr ""
+
+#: celeste/src/launch.rs:909
+msgid "The specified local path isn't a directory"
+msgstr "Angitt lokal sti er ikke en mappe"
+
+#: celeste/src/launch.rs:912
+msgid "The specified local directory needs to be an absolute path"
+msgstr ""
+
+#: celeste/src/launch.rs:940
+msgid "Are you sure you want to delete this remote?"
+msgstr ""
+
+#: celeste/src/launch.rs:941
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+
+#: celeste/src/launch.rs:1167 celeste-tray/src/main.rs:51
+msgid "Awaiting sync checks..."
+msgstr "Venter på synkroniseringssjekking …"
+
+#. Notify the tray app that we're syncing this remote now.
+#: celeste/src/launch.rs:1263
+msgid "Syncing '{}'..."
+msgstr "Synkroniserer «{}» …"
+
+#: celeste/src/launch.rs:1298
+msgid "Checking for changes..."
+msgstr "Ser etter endringer …"
+
+#. Add an error for reporting in the UI.
+#: celeste/src/launch.rs:1305
+msgid "Please resolve the reported syncing issues."
+msgstr "Løs de rapporterte synkroniseringsproblemene."
+
+#: celeste/src/launch.rs:1332
+#, fuzzy
+msgid "{} errors found. "
+msgstr "Fant {} feil. "
+
+#: celeste/src/launch.rs:1346
+msgid "Would you like to dismiss this error?"
+msgstr "Forkast denne feilen?"
+
+#: celeste/src/launch.rs:1373
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr ""
+
+#: celeste/src/launch.rs:1381
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr ""
+
+#: celeste/src/launch.rs:1406
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr ""
+
+#: celeste/src/launch.rs:1415 celeste/src/launch.rs:1420 celeste/src/launch.rs:1428
+msgid "File Update"
+msgstr "Filoppdatering"
+
+#: celeste/src/launch.rs:1415
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+
+#: celeste/src/launch.rs:1420
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+
+#: celeste/src/launch.rs:1428
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+
+#: celeste/src/launch.rs:1438
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+
+#: celeste/src/launch.rs:1440
+msgid "Which item would you like to keep?"
+msgstr "Hvilket element vil du beholde?"
+
+#: celeste/src/launch.rs:1442
+msgid "Local"
+msgstr "Lokalt"
+
+#: celeste/src/launch.rs:1443
+msgid "Remote"
+msgstr "Annensteds hen"
+
+#: celeste/src/launch.rs:1492
+msgid "1 error found."
+msgstr "Fant én feil."
+
+#: celeste/src/launch.rs:1494
+msgid "{} errors found."
+msgstr "Fant {} feil."
+
+#: celeste/src/launch.rs:1626
+msgid "Checking '{}' for changes..."
+msgstr "Sjekker «{}» for endringer …"
+
+#: celeste/src/launch.rs:2042
+msgid "Checking '{}' on remote for changes..."
+msgstr ""
+
+#: celeste/src/launch.rs:2433
+msgid "Directory has finished sync checks."
+msgstr ""
+
+#: celeste/src/launch.rs:2454
+msgid "Finished sync checks with {} errors."
+msgstr ""
+
+#: celeste/src/login/gdrive.rs:204
+msgid "Authenticating to {}..."
+msgstr ""
+
+#: celeste/src/login/gdrive.rs:205
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+
+#: celeste/src/login/gdrive.rs:232
+msgid "There was an issue while running the webserver for authentication"
+msgstr ""
+
+#: celeste/src/login/gdrive.rs:241
+msgid "There was an issue authenticating to {}"
+msgstr ""
+
+#: celeste/src/login/login_util.rs:14
+msgid "Server Name"
+msgstr "Tjenernavn"
+
+#: celeste/src/login/login_util.rs:26
+msgid "Server name already exists."
+msgstr "Tjenernavnet finnes allerede."
+
+#: celeste/src/login/login_util.rs:28
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+
+#: celeste/src/login/login_util.rs:42
+msgid "Server URL"
+msgstr "Tjenernettadresse"
+
+#: celeste/src/login/login_util.rs:48
+msgid "Invalid server URL ({})."
+msgstr "Ugyldig tjenernettadresse ({})."
+
+#: celeste/src/login/login_util.rs:57
+msgid "Invalid server URL (no domain specified)."
+msgstr "Ugyldig tjenernettadresse. (Ingen domenenavn angitt)."
+
+#: celeste/src/login/login_util.rs:61
+msgid "Invalid server URL (password was specified)."
+msgstr "Ugyldig tjenernettadresse. (Passord ble angitt)."
+
+#: celeste/src/login/login_util.rs:65
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr ""
+
+#: celeste/src/login/login_util.rs:77
+msgid "Don't specify '{}' as part of the URL."
+msgstr ""
+
+#: celeste/src/login/login_util.rs:90
+msgid "Username"
+msgstr "Brukernavn"
+
+#: celeste/src/login/login_util.rs:96
+msgid "Password"
+msgstr "Passord"
+
+#: celeste/src/login/login_util.rs:102
+msgid "Log in"
+msgstr "Logg inn"
+
+#: celeste/src/login/mod.rs:72
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+
+#: celeste/src/login/mod.rs:76
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+
+#: celeste/src/login/mod.rs:80
+msgid "Unable to log in"
+msgstr "Kan ikke logge inn"
+
+#. The dropdown for selecting the server type.
+#: celeste/src/login/mod.rs:116
+msgid "Server Type"
+msgstr "Tjenertype"
+
+#: celeste/src/main.rs:187
+msgid "Unknown Error"
+msgstr "Ukjent feil"
+
+#: celeste/src/main.rs:194
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+
+#: celeste-tray/src/main.rs:54
+msgid "Open"
+msgstr "Åpne"
+
+#: celeste-tray/src/main.rs:55
+msgid "Quit"
+msgstr "Avslutt"
+
+#: celeste-tray/src/main.rs:116
+msgid "Quitting..."
+msgstr "Avslutter …"
diff --git a/po/nn.po b/po/nn.po
new file mode 100644
index 00000000..969b3638
--- /dev/null
+++ b/po/nn.po
@@ -0,0 +1,364 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.8.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-11-19 01:22+0000\n"
+"PO-Revision-Date: 2024-06-03 23:09+0000\n"
+"Last-Translator: Vinjar Drage \n"
+"Language-Team: Norwegian Nynorsk \n"
+"Language: nn\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"
+"X-Generator: Weblate 5.6-dev\n"
+
+#: src/about.rs:20
+msgid "App icons by"
+msgstr "Appikon av"
+
+#: src/gtk_util.rs:20 src/gtk_util.rs:43 src/launch.rs:614 src/launch.rs:776
+msgid "Ok"
+msgstr "Ok"
+
+#: src/launch.rs:99
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "Både '{}' og '{}' er nyare enn ved siste synkronisering."
+
+#: src/launch.rs:158
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Kunne ikkje oppretta Celeste si konfigurasjonsmappe [{}]."
+
+#: src/launch.rs:170
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Kunne ikkje oppretta Celeste si databasefil [{}]."
+
+#: src/launch.rs:180
+msgid "Unable to connect to database [{}]."
+msgstr "Kunne ikkje tilkopla til databasen [{}]."
+
+#: src/launch.rs:188
+msgid "Unable to run database migrations [{}]"
+msgstr "Kunne ikkje køyra databasemigrasjonar [{}]"
+
+#: src/launch.rs:288
+msgid "Awaiting sync check..."
+msgstr "Ventar på synkroniseringssjekk..."
+
+#: src/launch.rs:324
+msgid "Sync Errors"
+msgstr "Synkroniseringsfeil"
+
+#: src/launch.rs:339
+msgid "File/Folder Exclusions"
+msgstr "Fil-/mappeekskludering"
+
+#: src/launch.rs:458
+msgid "Stop syncing this directory"
+msgstr "Stopp synkroniseringa av denne mappa"
+
+#: src/launch.rs:475
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Er du sikker på at du vil slutta å synkronisera '{}' til '{}'?"
+
+#: src/launch.rs:484
+msgid "This directory is currently being processed to no longer be synced."
+msgstr "Denne mappa held på å bli handsama for å ikkje lenger bli synkronisert."
+
+#: src/launch.rs:574
+msgid "Directories"
+msgstr "Mapper"
+
+#. Get the local folder to sync with.
+#: src/launch.rs:597
+msgid "Local folder:"
+msgstr "Lokal mappe:"
+
+#: src/launch.rs:613 src/launch.rs:775 src/login/gdrive.rs:214
+msgid "Cancel"
+msgstr "Avbryt"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: src/launch.rs:633
+msgid "Remote folder:"
+msgstr "Ekstern mappe:"
+
+#: src/launch.rs:820
+msgid "The specified remote directory doesn't exist"
+msgstr "Den valde eksterne mappa finst ikkje"
+
+#: src/launch.rs:828
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Klarte ikkje å finna ut om den valde eksterne mappa finst"
+
+#: src/launch.rs:839
+msgid "The specified directory pair is already being synced"
+msgstr "Det valde mappeparet held allereie på å bli synkronisert"
+
+#: src/launch.rs:842
+msgid "The specified local directory doesn't exist"
+msgstr "Den valde lokale mappa finst ikkje"
+
+#: src/launch.rs:845
+msgid "The specified local path isn't a directory"
+msgstr "Den valde lokale filbana er ikkje ei mappe"
+
+#: src/launch.rs:848
+msgid "The specified local directory needs to be an absolute path"
+msgstr "Den valde lokale katalogen må vera ei absolutt filbane"
+
+#: src/launch.rs:876
+msgid "Are you sure you want to delete this remote?"
+msgstr "Er du sikker på at du vil fjerne denne eksterne mappa?"
+
+#: src/launch.rs:877
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Alle katalogane knytt til denne eksterne tilkoplinga vil òg slutta å "
+"synkronisera."
+
+#: src/launch.rs:1342 src/launch.rs:2509
+msgid "Files are synced."
+msgstr "Filene er synkroniserte."
+
+#: src/launch.rs:1352
+msgid "Syncing '{}'..."
+msgstr "Synkroniserer '{}'..."
+
+#: src/launch.rs:1373
+msgid "Checking for changes..."
+msgstr "Ser etter endringar …"
+
+#. Add an error for reporting in the UI.
+#: src/launch.rs:1380
+msgid "Please resolve the reported syncing issues."
+msgstr "Løys dei rapporterte synkroniseringsproblema."
+
+#: src/launch.rs:1407
+msgid "{} errors found. "
+msgstr "Fann {} feil. "
+
+#: src/launch.rs:1421
+msgid "Would you like to dismiss this error?"
+msgstr "Forkast denne feilen?"
+
+#: src/launch.rs:1448
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "Kunne ikkje synkronisera '{}' til '{}' eksternt."
+
+#: src/launch.rs:1456
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "Kunne ikkje synkronisera '{}' eksternt til '{}'."
+
+#: src/launch.rs:1481
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "Kunne ikkje henta ekstern data for '{}'."
+
+#: src/launch.rs:1490 src/launch.rs:1495 src/launch.rs:1503
+msgid "File Update"
+msgstr "Filoppdatering"
+
+#: src/launch.rs:1490
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"Korkje det lokale elementet eller det eksterne elementet eksisterer lenger. "
+"Denne feilen vil no bli fjerna."
+
+#: src/launch.rs:1495
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"Berre det lokale elementet eksisterer no, så det vil bli synkronisert med "
+"det eksterne."
+
+#: src/launch.rs:1503
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"Berre det eksterne elementet eksisterer no, så det vil bli synkronisert til "
+"den lokale maskinen."
+
+#: src/launch.rs:1513
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"Både det lokale elementet '{}' og det eksterne elementet '{}' har blitt "
+"oppdatert sidan siste synkronisering."
+
+#: src/launch.rs:1515
+msgid "Which item would you like to keep?"
+msgstr "Kva slags element vil du halde fram å ha?"
+
+#: src/launch.rs:1517
+msgid "Local"
+msgstr "Lokalt"
+
+#: src/launch.rs:1518
+msgid "Remote"
+msgstr "Eksternt"
+
+#: src/launch.rs:1567
+msgid "1 error found."
+msgstr "Fann ein feil."
+
+#: src/launch.rs:1569
+msgid "{} errors found."
+msgstr "Fann {} feil."
+
+#: src/launch.rs:1701
+msgid "Checking '{}' for changes..."
+msgstr "Sjekkar «{}» for endringar…"
+
+#: src/launch.rs:2117
+msgid "Checking '{}' on remote for changes..."
+msgstr "Sjekkar '{}' eksternt for endringar..."
+
+#: src/launch.rs:2530
+msgid "Finished sync checks with {} errors."
+msgstr "Fullførte synkroniseringssjekk med {} feil."
+
+#: src/launch.rs:2535
+msgid "Finished sync checks."
+msgstr "Synkroniseringssjekk er fullført."
+
+#: src/login/gdrive.rs:211
+msgid "Authenticating to {}..."
+msgstr "Autentiserer til {}..."
+
+#: src/login/gdrive.rs:212
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"Følg lenkja som opna i nettlesaren din, og kom tilbake når du er ferdig."
+
+#: src/login/gdrive.rs:239
+msgid "There was an issue while running the webserver for authentication"
+msgstr ""
+"Det oppstod eit problem under køyringa av tenaren for autentiseringsprosessen"
+
+#: src/login/gdrive.rs:248
+msgid "There was an issue authenticating to {}"
+msgstr "Det oppstod eit problem med autentiseringa til {}"
+
+#: src/login/login_util.rs:15
+msgid "Name"
+msgstr "Namn"
+
+#: src/login/login_util.rs:27
+msgid "Name already exists."
+msgstr "Namnet er allereie i bruk."
+
+#: src/login/login_util.rs:29
+msgid "Invalid name. Names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Ugyldig namn. Namn kan:\n"
+"- Berre ha tal, bokstavar, '_', '-', '.' og mellomrom\n"
+"- Ikkje starta med '-' eller eit mellomrom\n"
+"- Ikkje slutta med eit mellomrom"
+
+#: src/login/login_util.rs:43
+msgid "Server URL"
+msgstr "Sørvar-URL"
+
+#: src/login/login_util.rs:49
+msgid "Invalid server URL ({})."
+msgstr "Ugyldig tenarnettadresse ({})."
+
+#: src/login/login_util.rs:58
+msgid "Invalid server URL (no domain specified)."
+msgstr "Ugyldig tenarnettadresse (ingen domenenamn spesifisert)."
+
+#: src/login/login_util.rs:62
+msgid "Invalid server URL (password was specified)."
+msgstr "Ugyldig tenarnettadresse (passord vart skrive inn)."
+
+#: src/login/login_util.rs:66
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Ugyldig sørvar URL (ukjend sørvarskjema {})."
+
+#: src/login/login_util.rs:78
+msgid "Don't specify '{}' as part of the URL."
+msgstr "Ikkje spesifiser '{}' som ein del av nettadressa."
+
+#: src/login/login_util.rs:91
+msgid "Username"
+msgstr "Brukarnamn"
+
+#: src/login/login_util.rs:97
+msgid "Password"
+msgstr "Passord"
+
+#: src/login/login_util.rs:104
+msgid "2FA Code"
+msgstr "2FA Kode"
+
+#: src/login/login_util.rs:113
+msgid "The provided 2FA code is invalid (should only contain digits)."
+msgstr "Den oppgitte 2FA-koden er ugyldig (skal berre innehalda siffer)."
+
+#: src/login/login_util.rs:118
+msgid "The provided 2FA code is invalid (should be 6 digits long)."
+msgstr "Den oppgjevne 2FA-koda er ugyldig (bør vera 6 siffer lang)."
+
+#: src/login/login_util.rs:142
+msgid "Log in"
+msgstr "Logg inn"
+
+#: src/login/mod.rs:77
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr "Kunne ikkje kopla til tenaren. Sjekk tilkoplinga di og prøv igjen."
+
+#: src/login/mod.rs:80
+msgid "A 2FA code is required to log in to this account. Provide one and try again."
+msgstr ""
+"Ein 2FA-kode krevjast for å logge på denne kontoen. Skriv den inn og prøv "
+"igjen."
+
+#: src/login/mod.rs:83
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Kunne ikkje autentisera til sørvaren. Sjekk påloggingsdataa dine og prøv "
+"igjen."
+
+#: src/login/mod.rs:87
+msgid "Unable to log in"
+msgstr "Kunne ikkje logga inn"
+
+#. The dropdown for selecting the server type.
+#: src/login/mod.rs:124
+msgid "Server Type"
+msgstr "Tenartype"
+
+#: src/tray.rs:13
+msgid "Awaiting sync checks..."
+msgstr "Ventar på synkroniseringssjekkar..."
+
+#: src/tray.rs:60
+msgid "Open"
+msgstr "Opna"
+
+#: src/tray.rs:67
+msgid "Close"
+msgstr "Lukk"
+
+#: src/main.rs:188
+msgid "Unknown Error"
+msgstr "Ukjend feil"
+
+#: src/main.rs:195
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Det har oppstått ein ukjend feil under køyring. Dette er eit internt problem "
+"med Celeste og bør rapporterast.\n"
+"\n"
+"Følgjande tilbakesporing kan hjelpa med å feilsøkja problemet - merk at det "
+"kan innehalda informasjon som til dømes påloggingstokenar/nyklar, så unngå å "
+"leggja ut informasjonen offentleg:"
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 00000000..82130aea
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,343 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.5.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-05-01 18:51+0000\n"
+"PO-Revision-Date: 2023-08-31 03:58+0000\n"
+"Last-Translator: Fernando Lopes <118869201+plasmus777@users.noreply.github."
+"com>\n"
+"Language-Team: Portuguese (Brazil) \n"
+"Language: pt_BR\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"
+"X-Generator: Weblate 5.0.1-dev\n"
+
+#: celeste/src/gtk_util.rs:20 celeste/src/gtk_util.rs:43 celeste/src/launch.rs:678 celeste/src/launch.rs:840
+msgid "Ok"
+msgstr "Ok"
+
+#: celeste/src/launch.rs:102
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "'{}' e '{}' são mais recentes que os da última sincronização."
+
+#: celeste/src/launch.rs:214
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Incapaz de criar diretório de configuração [{}] para a Celeste."
+
+#: celeste/src/launch.rs:226
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Incapaz de criar arquivo de banco de dados [{}] para a Celeste."
+
+#: celeste/src/launch.rs:236
+msgid "Unable to connect to database [{}]."
+msgstr "Conexão ao banco de dados [{}] não completada."
+
+#: celeste/src/launch.rs:244
+msgid "Unable to run database migrations [{}]"
+msgstr "Incapaz de prosseguir com migração do banco de dados [{}]"
+
+#: celeste/src/launch.rs:351
+msgid "Awaiting sync check..."
+msgstr "Esperando confirmação de sincronização..."
+
+#: celeste/src/launch.rs:387
+msgid "Sync Errors"
+msgstr "Erros de sincronização"
+
+#: celeste/src/launch.rs:402
+msgid "File/Folder Exclusions"
+msgstr "Exclusões de Arquivo/Pasta"
+
+#: celeste/src/launch.rs:521
+msgid "Stop syncing this directory"
+msgstr "Parar de sincronizar esse diretório"
+
+#: celeste/src/launch.rs:538
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Tem certeza que deseja parar de sincronizar '{}' para '{}'?"
+
+#: celeste/src/launch.rs:547
+msgid "This directory is currently being processed to no longer be synced."
+msgstr "Esse diretório está sendo processado para desativar a sincronização."
+
+#: celeste/src/launch.rs:638
+msgid "Directories"
+msgstr "Diretórios"
+
+#. Get the local folder to sync with.
+#: celeste/src/launch.rs:661
+msgid "Local folder:"
+msgstr "Pasta local:"
+
+#: celeste/src/launch.rs:677 celeste/src/launch.rs:839 celeste/src/login/gdrive.rs:207
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: celeste/src/launch.rs:697
+msgid "Remote folder:"
+msgstr "Pasta remota:"
+
+#: celeste/src/launch.rs:884
+msgid "The specified remote directory doesn't exist"
+msgstr "O diretório remoto especificado não existe"
+
+#: celeste/src/launch.rs:892
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Falha ao verificar se o diretório remoto especificado existe"
+
+#: celeste/src/launch.rs:903
+msgid "The specified directory pair is already being synced"
+msgstr "O par de diretórios especificado já está sendo sincronizado"
+
+#: celeste/src/launch.rs:906
+msgid "The specified local directory doesn't exist"
+msgstr "O diretório local especificado não existe"
+
+#: celeste/src/launch.rs:909
+msgid "The specified local path isn't a directory"
+msgstr "O caminho local especificado não é um diretório"
+
+#: celeste/src/launch.rs:912
+msgid "The specified local directory needs to be an absolute path"
+msgstr "O diretório local especificado precisa ser um caminho absoluto"
+
+#: celeste/src/launch.rs:940
+msgid "Are you sure you want to delete this remote?"
+msgstr "Tem certeza de que deseja excluir esse remoto?"
+
+#: celeste/src/launch.rs:941
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Todos os diretórios associados a esse remoto também interromperão a "
+"sincronização."
+
+#: celeste/src/launch.rs:1167 celeste-tray/src/main.rs:51
+msgid "Awaiting sync checks..."
+msgstr "Aguardando verificações de sincronização..."
+
+#. Notify the tray app that we're syncing this remote now.
+#: celeste/src/launch.rs:1263
+msgid "Syncing '{}'..."
+msgstr "Sincronizando '{}'..."
+
+#: celeste/src/launch.rs:1298
+msgid "Checking for changes..."
+msgstr "Verificando mudanças..."
+
+#. Add an error for reporting in the UI.
+#: celeste/src/launch.rs:1305
+msgid "Please resolve the reported syncing issues."
+msgstr "Resolva os problemas de sincronização relatados."
+
+#: celeste/src/launch.rs:1332
+msgid "{} errors found. "
+msgstr "{} erros encontrados. "
+
+#: celeste/src/launch.rs:1346
+msgid "Would you like to dismiss this error?"
+msgstr "Gostaria de ignorar esse erro?"
+
+#: celeste/src/launch.rs:1373
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "Falha ao sincronizar '{}' com '{}' no remoto."
+
+#: celeste/src/launch.rs:1381
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "Falha ao sincronizar '{}' no remoto para '{}'."
+
+#: celeste/src/launch.rs:1406
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "Não é possível buscar dados para '{}' do remoto."
+
+#: celeste/src/launch.rs:1415 celeste/src/launch.rs:1420 celeste/src/launch.rs:1428
+msgid "File Update"
+msgstr "Atualização de arquivo"
+
+#: celeste/src/launch.rs:1415
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"Item local e item remoto não existem mais. Esse erro será removido agora."
+
+#: celeste/src/launch.rs:1420
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"Somente o item local existe agora, portanto, ele será sincronizado com o "
+"remoto."
+
+#: celeste/src/launch.rs:1428
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"Apenas o item remoto existe agora, portanto ele será sincronizado com o "
+"computador local."
+
+#: celeste/src/launch.rs:1438
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"Tanto o item local '{}' quanto o item remoto '{}' foram atualizados desde a "
+"última sincronização."
+
+#: celeste/src/launch.rs:1440
+msgid "Which item would you like to keep?"
+msgstr "Qual item você gostaria de manter?"
+
+#: celeste/src/launch.rs:1442
+msgid "Local"
+msgstr "Local"
+
+#: celeste/src/launch.rs:1443
+msgid "Remote"
+msgstr "Remoto"
+
+#: celeste/src/launch.rs:1492
+msgid "1 error found."
+msgstr "1 erro encontrado."
+
+#: celeste/src/launch.rs:1494
+msgid "{} errors found."
+msgstr "{} erros encontrados."
+
+#: celeste/src/launch.rs:1626
+msgid "Checking '{}' for changes..."
+msgstr "Verificando se há alterações em '{}'..."
+
+#: celeste/src/launch.rs:2042
+msgid "Checking '{}' on remote for changes..."
+msgstr "Verificando se há alterações em '{}' no local remoto..."
+
+#: celeste/src/launch.rs:2433
+msgid "Directory has finished sync checks."
+msgstr "O diretório concluiu as verificações de sincronização."
+
+#: celeste/src/launch.rs:2454
+msgid "Finished sync checks with {} errors."
+msgstr "Verificações de sincronização concluídas com erros {}."
+
+#: celeste/src/login/gdrive.rs:204
+msgid "Authenticating to {}..."
+msgstr "Autenticação para {}..."
+
+#: celeste/src/login/gdrive.rs:205
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr "Siga o link que foi aberto em seu navegador e volte assim que terminar."
+
+#: celeste/src/login/gdrive.rs:232
+msgid "There was an issue while running the webserver for authentication"
+msgstr "Houve um problema ao executar o servidor da Web para autenticação"
+
+#: celeste/src/login/gdrive.rs:241
+msgid "There was an issue authenticating to {}"
+msgstr "Houve um problema de autenticação em {}"
+
+#: celeste/src/login/login_util.rs:14
+msgid "Server Name"
+msgstr "Nome do servidor"
+
+#: celeste/src/login/login_util.rs:26
+msgid "Server name already exists."
+msgstr "Servidor com esse nome já existe."
+
+#: celeste/src/login/login_util.rs:28
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Nome de servidor inválido. Os nomes devem:\n"
+"- Conter apenas números, letras, '_', '-', '.' e espaços\n"
+"- Não começar com '-' ou um espaço\n"
+"- Não terminar com um espaço"
+
+#: celeste/src/login/login_util.rs:42
+msgid "Server URL"
+msgstr "URL do Servidor"
+
+#: celeste/src/login/login_util.rs:48
+msgid "Invalid server URL ({})."
+msgstr "URL de servidor inválido ({})."
+
+#: celeste/src/login/login_util.rs:57
+msgid "Invalid server URL (no domain specified)."
+msgstr "URL de servidor inválido (nenhum domínio especificado)."
+
+#: celeste/src/login/login_util.rs:61
+msgid "Invalid server URL (password was specified)."
+msgstr "URL de servidor inválido (senha incorreta)."
+
+#: celeste/src/login/login_util.rs:65
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "URL de servidor inválido (esquema de servidor desconhecido {})."
+
+#: celeste/src/login/login_util.rs:77
+msgid "Don't specify '{}' as part of the URL."
+msgstr "Não especifique \"{}\" como parte da URL."
+
+#: celeste/src/login/login_util.rs:90
+msgid "Username"
+msgstr "Usuário"
+
+#: celeste/src/login/login_util.rs:96
+msgid "Password"
+msgstr "Senha"
+
+#: celeste/src/login/login_util.rs:102
+msgid "Log in"
+msgstr "Log In"
+
+#: celeste/src/login/mod.rs:72
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"Não foi possível conectar-se ao servidor. Verifique sua conexão com a "
+"Internet e tente novamente."
+
+#: celeste/src/login/mod.rs:76
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Não foi possível fazer a autenticação no servidor. Verifique suas "
+"credenciais de login e tente novamente."
+
+#: celeste/src/login/mod.rs:80
+msgid "Unable to log in"
+msgstr "Não é possível fazer login"
+
+#. The dropdown for selecting the server type.
+#: celeste/src/login/mod.rs:116
+msgid "Server Type"
+msgstr "Tipo de Servidor"
+
+#: celeste/src/main.rs:187
+msgid "Unknown Error"
+msgstr "Erro desconhecido"
+
+#: celeste/src/main.rs:194
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Ocorreu um erro desconhecido durante a execução. Esse é um problema interno "
+"do Celeste e deve ser relatado.\n"
+"\n"
+"O backtrace a seguir pode ajudar na depuração do problema - observe que ele "
+"pode conter informações como tokens/chaves de login, portanto, evite postar "
+"as informações publicamente:"
+
+#: celeste-tray/src/main.rs:54
+msgid "Open"
+msgstr "Abrir"
+
+#: celeste-tray/src/main.rs:55
+msgid "Quit"
+msgstr "Sair"
+
+#: celeste-tray/src/main.rs:116
+msgid "Quitting..."
+msgstr "Saindo..."
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 00000000..5421b3b3
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,335 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.8.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-11-19 01:22+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/about.rs:20
+msgid "App icons by"
+msgstr ""
+
+#: src/gtk_util.rs:20 src/gtk_util.rs:43 src/launch.rs:614 src/launch.rs:776
+msgid "Ok"
+msgstr ""
+
+#: src/launch.rs:99
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr ""
+
+#: src/launch.rs:158
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr ""
+
+#: src/launch.rs:170
+msgid "Unable to create Celeste's database file [{}]."
+msgstr ""
+
+#: src/launch.rs:180
+msgid "Unable to connect to database [{}]."
+msgstr ""
+
+#: src/launch.rs:188
+msgid "Unable to run database migrations [{}]"
+msgstr ""
+
+#: src/launch.rs:288
+msgid "Awaiting sync check..."
+msgstr ""
+
+#: src/launch.rs:324
+msgid "Sync Errors"
+msgstr ""
+
+#: src/launch.rs:339
+msgid "File/Folder Exclusions"
+msgstr ""
+
+#: src/launch.rs:458
+msgid "Stop syncing this directory"
+msgstr ""
+
+#: src/launch.rs:475
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr ""
+
+#: src/launch.rs:484
+msgid "This directory is currently being processed to no longer be synced."
+msgstr ""
+
+#: src/launch.rs:574
+msgid "Directories"
+msgstr ""
+
+#. Get the local folder to sync with.
+#: src/launch.rs:597
+msgid "Local folder:"
+msgstr ""
+
+#: src/launch.rs:613 src/launch.rs:775 src/login/gdrive.rs:214
+msgid "Cancel"
+msgstr ""
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: src/launch.rs:633
+msgid "Remote folder:"
+msgstr ""
+
+#: src/launch.rs:820
+msgid "The specified remote directory doesn't exist"
+msgstr ""
+
+#: src/launch.rs:828
+msgid "Failed to check if the specified remote directory exists"
+msgstr ""
+
+#: src/launch.rs:839
+msgid "The specified directory pair is already being synced"
+msgstr ""
+
+#: src/launch.rs:842
+msgid "The specified local directory doesn't exist"
+msgstr ""
+
+#: src/launch.rs:845
+msgid "The specified local path isn't a directory"
+msgstr ""
+
+#: src/launch.rs:848
+msgid "The specified local directory needs to be an absolute path"
+msgstr ""
+
+#: src/launch.rs:876
+msgid "Are you sure you want to delete this remote?"
+msgstr ""
+
+#: src/launch.rs:877
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+
+#: src/launch.rs:1342 src/launch.rs:2509
+msgid "Files are synced."
+msgstr ""
+
+#: src/launch.rs:1352
+msgid "Syncing '{}'..."
+msgstr ""
+
+#: src/launch.rs:1373
+msgid "Checking for changes..."
+msgstr ""
+
+#. Add an error for reporting in the UI.
+#: src/launch.rs:1380
+msgid "Please resolve the reported syncing issues."
+msgstr ""
+
+#: src/launch.rs:1407
+msgid "{} errors found. "
+msgstr ""
+
+#: src/launch.rs:1421
+msgid "Would you like to dismiss this error?"
+msgstr ""
+
+#: src/launch.rs:1448
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr ""
+
+#: src/launch.rs:1456
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr ""
+
+#: src/launch.rs:1481
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr ""
+
+#: src/launch.rs:1490 src/launch.rs:1495 src/launch.rs:1503
+msgid "File Update"
+msgstr ""
+
+#: src/launch.rs:1490
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+
+#: src/launch.rs:1495
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+
+#: src/launch.rs:1503
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+
+#: src/launch.rs:1513
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+
+#: src/launch.rs:1515
+msgid "Which item would you like to keep?"
+msgstr ""
+
+#: src/launch.rs:1517
+msgid "Local"
+msgstr ""
+
+#: src/launch.rs:1518
+msgid "Remote"
+msgstr ""
+
+#: src/launch.rs:1567
+msgid "1 error found."
+msgstr ""
+
+#: src/launch.rs:1569
+msgid "{} errors found."
+msgstr ""
+
+#: src/launch.rs:1701
+msgid "Checking '{}' for changes..."
+msgstr ""
+
+#: src/launch.rs:2117
+msgid "Checking '{}' on remote for changes..."
+msgstr ""
+
+#: src/launch.rs:2530
+msgid "Finished sync checks with {} errors."
+msgstr ""
+
+#: src/launch.rs:2535
+msgid "Finished sync checks."
+msgstr ""
+
+#: src/login/gdrive.rs:211
+msgid "Authenticating to {}..."
+msgstr ""
+
+#: src/login/gdrive.rs:212
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+
+#: src/login/gdrive.rs:239
+msgid "There was an issue while running the webserver for authentication"
+msgstr ""
+
+#: src/login/gdrive.rs:248
+msgid "There was an issue authenticating to {}"
+msgstr ""
+
+#: src/login/login_util.rs:15
+msgid "Name"
+msgstr ""
+
+#: src/login/login_util.rs:27
+msgid "Name already exists."
+msgstr ""
+
+#: src/login/login_util.rs:29
+msgid "Invalid name. Names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+
+#: src/login/login_util.rs:43
+msgid "Server URL"
+msgstr ""
+
+#: src/login/login_util.rs:49
+msgid "Invalid server URL ({})."
+msgstr ""
+
+#: src/login/login_util.rs:58
+msgid "Invalid server URL (no domain specified)."
+msgstr ""
+
+#: src/login/login_util.rs:62
+msgid "Invalid server URL (password was specified)."
+msgstr ""
+
+#: src/login/login_util.rs:66
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr ""
+
+#: src/login/login_util.rs:78
+msgid "Don't specify '{}' as part of the URL."
+msgstr ""
+
+#: src/login/login_util.rs:91
+msgid "Username"
+msgstr ""
+
+#: src/login/login_util.rs:97
+msgid "Password"
+msgstr ""
+
+#: src/login/login_util.rs:104
+msgid "2FA Code"
+msgstr ""
+
+#: src/login/login_util.rs:113
+msgid "The provided 2FA code is invalid (should only contain digits)."
+msgstr ""
+
+#: src/login/login_util.rs:118
+msgid "The provided 2FA code is invalid (should be 6 digits long)."
+msgstr ""
+
+#: src/login/login_util.rs:142
+msgid "Log in"
+msgstr ""
+
+#: src/login/mod.rs:77
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+
+#: src/login/mod.rs:80
+msgid "A 2FA code is required to log in to this account. Provide one and try again."
+msgstr ""
+
+#: src/login/mod.rs:83
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+
+#: src/login/mod.rs:87
+msgid "Unable to log in"
+msgstr ""
+
+#. The dropdown for selecting the server type.
+#: src/login/mod.rs:124
+msgid "Server Type"
+msgstr ""
+
+#: src/tray.rs:13
+msgid "Awaiting sync checks..."
+msgstr ""
+
+#: src/tray.rs:60
+msgid "Open"
+msgstr ""
+
+#: src/tray.rs:67
+msgid "Close"
+msgstr ""
+
+#: src/main.rs:188
+msgid "Unknown Error"
+msgstr ""
+
+#: src/main.rs:195
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 00000000..6c11a18a
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,367 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.8.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-11-19 01:22+0000\n"
+"PO-Revision-Date: 2024-03-26 05:01+0000\n"
+"Last-Translator: JustMarkov \n"
+"Language-Team: Russian \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"
+"X-Generator: Weblate 5.5-dev\n"
+
+#: src/about.rs:20
+msgid "App icons by"
+msgstr "Иконки приложения от"
+
+#: src/gtk_util.rs:20 src/gtk_util.rs:43 src/launch.rs:614 src/launch.rs:776
+msgid "Ok"
+msgstr "Ок"
+
+#: src/launch.rs:99
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "И '{}', и '{}' более свежие, чем при последней синхронизации."
+
+#: src/launch.rs:158
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Не удаётся создать каталог настроек Celeste [{}]."
+
+#: src/launch.rs:170
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Не удаётся создать файл базы данных Celeste [{}]."
+
+#: src/launch.rs:180
+msgid "Unable to connect to database [{}]."
+msgstr "Не удаётся подключиться к базе данных [{}]."
+
+#: src/launch.rs:188
+msgid "Unable to run database migrations [{}]"
+msgstr "Не удаётся запустить миграцию базы данных [{}]"
+
+#: src/launch.rs:288
+msgid "Awaiting sync check..."
+msgstr "Ожидается проверка синхронизации…"
+
+#: src/launch.rs:324
+msgid "Sync Errors"
+msgstr "Ошибка синхронизации"
+
+#: src/launch.rs:339
+msgid "File/Folder Exclusions"
+msgstr "Исключения файлов/папок"
+
+#: src/launch.rs:458
+msgid "Stop syncing this directory"
+msgstr "Перестать синхронизировать этот каталог"
+
+#: src/launch.rs:475
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Вы уверены, что хотите перестать синхронизировать '{}' с '{}'?"
+
+#: src/launch.rs:484
+msgid "This directory is currently being processed to no longer be synced."
+msgstr "Идёт процесс остановки синхронизации для данного каталога."
+
+#: src/launch.rs:574
+msgid "Directories"
+msgstr "Каталоги"
+
+#. Get the local folder to sync with.
+#: src/launch.rs:597
+msgid "Local folder:"
+msgstr "Локальная папка:"
+
+#: src/launch.rs:613 src/launch.rs:775 src/login/gdrive.rs:214
+msgid "Cancel"
+msgstr "Отмена"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: src/launch.rs:633
+msgid "Remote folder:"
+msgstr "Удалённая папка:"
+
+#: src/launch.rs:820
+msgid "The specified remote directory doesn't exist"
+msgstr "Выбранный удалённый каталог не существует"
+
+#: src/launch.rs:828
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Не удалось проверить, существует ли выбранный удалённый каталог"
+
+#: src/launch.rs:839
+msgid "The specified directory pair is already being synced"
+msgstr "Выбранная пара каталогов уже синхронизируется"
+
+#: src/launch.rs:842
+msgid "The specified local directory doesn't exist"
+msgstr "Выбранная локальный каталог не существует"
+
+#: src/launch.rs:845
+msgid "The specified local path isn't a directory"
+msgstr "Выбранный локальный путь не является каталогом"
+
+#: src/launch.rs:848
+msgid "The specified local directory needs to be an absolute path"
+msgstr "Выбранный локальный каталог должен быть абсолютным путем"
+
+#: src/launch.rs:876
+msgid "Are you sure you want to delete this remote?"
+msgstr "Вы уверены, что хотите удалить это подключение?"
+
+#: src/launch.rs:877
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Все каталоги, связанный с этим подключением также перестанут "
+"синхронизироваться."
+
+#: src/launch.rs:1342 src/launch.rs:2509
+msgid "Files are synced."
+msgstr "Файлы синхронизированы."
+
+#: src/launch.rs:1352
+msgid "Syncing '{}'..."
+msgstr "'{}' синхронизируется…"
+
+#: src/launch.rs:1373
+msgid "Checking for changes..."
+msgstr "Проверяются изменения…"
+
+#. Add an error for reporting in the UI.
+#: src/launch.rs:1380
+msgid "Please resolve the reported syncing issues."
+msgstr "Пожалуйста, исправьте обнаруженные ошибки синхронизации."
+
+#: src/launch.rs:1407
+msgid "{} errors found. "
+msgstr "Найдено {} ошибок. "
+
+#: src/launch.rs:1421
+msgid "Would you like to dismiss this error?"
+msgstr "Хотите отклонить эту ошибку?"
+
+#: src/launch.rs:1448
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "Не удалось синхронизировать '{}' с '{}' на сервере."
+
+#: src/launch.rs:1456
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "Не удалось синхронизировать '{}' на сервере с '{}'."
+
+#: src/launch.rs:1481
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "Не удалось получить данные о '{}' с сервера."
+
+#: src/launch.rs:1490 src/launch.rs:1495 src/launch.rs:1503
+msgid "File Update"
+msgstr "Обновление файлов"
+
+#: src/launch.rs:1490
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"Либо локальный файл, либо файл на удалённом сервере больше не существует. "
+"Эта ошибка будет удалена."
+
+#: src/launch.rs:1495
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"На данный момент существует только локальный файл, поэтому он будет "
+"синхронизирован с сервером."
+
+#: src/launch.rs:1503
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"На данный момент существует только удалённый файл, поэтому он будет "
+"синхронизирован с локальным устройством."
+
+#: src/launch.rs:1513
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"И локальный файл '{}', и удалённый файл '{}' были обновлены с момента "
+"последней синхронизации."
+
+#: src/launch.rs:1515
+msgid "Which item would you like to keep?"
+msgstr "Какой файл вы хотели бы оставить?"
+
+#: src/launch.rs:1517
+msgid "Local"
+msgstr "Локальный"
+
+#: src/launch.rs:1518
+msgid "Remote"
+msgstr "Удалённый"
+
+#: src/launch.rs:1567
+msgid "1 error found."
+msgstr "Обнаружена 1 ошибка."
+
+#: src/launch.rs:1569
+msgid "{} errors found."
+msgstr "Обнаружено {} ошибок."
+
+#: src/launch.rs:1701
+msgid "Checking '{}' for changes..."
+msgstr "'{}' проверяется на изменения…"
+
+#: src/launch.rs:2117
+msgid "Checking '{}' on remote for changes..."
+msgstr "'{}' на сервере проверяется на изменения…"
+
+#: src/launch.rs:2530
+msgid "Finished sync checks with {} errors."
+msgstr "Проверки синхронизации завершены с {} ошибками."
+
+#: src/launch.rs:2535
+msgid "Finished sync checks."
+msgstr "Проверки синхронизации завершены."
+
+#: src/login/gdrive.rs:211
+msgid "Authenticating to {}..."
+msgstr "Авторизация на {}…"
+
+#: src/login/gdrive.rs:212
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"Перейдите по ссылке, открывшейся в вашем браузере и возвращайтесь, как "
+"только закончите."
+
+#: src/login/gdrive.rs:239
+msgid "There was an issue while running the webserver for authentication"
+msgstr "Произошла ошибка при запуске веб-сервера для авторизации"
+
+#: src/login/gdrive.rs:248
+msgid "There was an issue authenticating to {}"
+msgstr "Произошла ошибка при авторизации на {}"
+
+#: src/login/login_util.rs:15
+msgid "Name"
+msgstr "Имя"
+
+#: src/login/login_util.rs:27
+msgid "Name already exists."
+msgstr "Это имя уже существует."
+
+#: src/login/login_util.rs:29
+msgid "Invalid name. Names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Недопустимое имя. Имена должны:\n"
+"- Содержать только цифры, буквы, '_', '-', '.' и пробелы\n"
+"- Не начинаться с '-' или пробела\n"
+"- Не заканчиваться пробелом"
+
+#: src/login/login_util.rs:43
+msgid "Server URL"
+msgstr "URL-адрес сервера"
+
+#: src/login/login_util.rs:49
+msgid "Invalid server URL ({})."
+msgstr "Недопустимый URL-адрес сервера ({})."
+
+#: src/login/login_util.rs:58
+msgid "Invalid server URL (no domain specified)."
+msgstr "Недопустимый URL-адрес сервера (не указан домен)."
+
+#: src/login/login_util.rs:62
+msgid "Invalid server URL (password was specified)."
+msgstr "Недопустимый URL-адрес сервера (был указан пароль)."
+
+#: src/login/login_util.rs:66
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Недопустимый URL-адрес сервера (неизвестная схема сервера {})."
+
+#: src/login/login_util.rs:78
+msgid "Don't specify '{}' as part of the URL."
+msgstr "Не указывайте '{}' как часть URL-адреса."
+
+#: src/login/login_util.rs:91
+msgid "Username"
+msgstr "Имя пользователя"
+
+#: src/login/login_util.rs:97
+msgid "Password"
+msgstr "Пароль"
+
+#: src/login/login_util.rs:104
+msgid "2FA Code"
+msgstr "Код 2FA"
+
+#: src/login/login_util.rs:113
+msgid "The provided 2FA code is invalid (should only contain digits)."
+msgstr "Предоставленный код 2FA недействителен (должен содержать только цифры)."
+
+#: src/login/login_util.rs:118
+msgid "The provided 2FA code is invalid (should be 6 digits long)."
+msgstr ""
+"Предоставленный код 2FA недействителен (должен быть длинной в 6 символов)."
+
+#: src/login/login_util.rs:142
+msgid "Log in"
+msgstr "Войти"
+
+#: src/login/mod.rs:77
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"Не удаётся подключиться к серверу. Проверьте ваше интернет-соединение и "
+"попробуйте снова."
+
+#: src/login/mod.rs:80
+msgid "A 2FA code is required to log in to this account. Provide one and try again."
+msgstr ""
+"Для входа в этот аккаунт требуется код 2FA. Введите его и попробуйте снова."
+
+#: src/login/mod.rs:83
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Не удаётся авторизоваться на сервере. Проверьте ваши учётные данные и "
+"попробуйте снова."
+
+#: src/login/mod.rs:87
+msgid "Unable to log in"
+msgstr "Не удаётся войти"
+
+#. The dropdown for selecting the server type.
+#: src/login/mod.rs:124
+msgid "Server Type"
+msgstr "Тип сервера"
+
+#: src/tray.rs:13
+msgid "Awaiting sync checks..."
+msgstr "Ожидаются проверки синхронизации…"
+
+#: src/tray.rs:60
+msgid "Open"
+msgstr "Открыть"
+
+#: src/tray.rs:67
+msgid "Close"
+msgstr "Закрыть"
+
+#: src/main.rs:188
+msgid "Unknown Error"
+msgstr "Неизвестная ошибка"
+
+#: src/main.rs:195
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Во время работы произошла неизвестная ошибка. Это внутренняя ошибка Celeste, "
+"о которой следует сообщить.\n"
+"\n"
+"Данная трассировка может помочь в выявлении ошибки. Учтите, что трассировка "
+"может содержать конфиденциальную информацию, такую как токены/ключи для "
+"входа, поэтому не размещайте её публично:"
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 00000000..4a145060
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,344 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.4.6\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-02-25 02:14+0000\n"
+"PO-Revision-Date: 2023-05-01 19:13+0000\n"
+"Last-Translator: Konstantinos Polychronidis \n"
+"Language-Team: Swedish \n"
+"Language: sv\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"
+"X-Generator: Weblate 4.18-dev\n"
+
+#: celeste/src/gtk_util.rs:20 celeste/src/gtk_util.rs:43 celeste/src/launch.rs:681 celeste/src/launch.rs:819
+msgid "Ok"
+msgstr "Okej"
+
+#: celeste/src/launch.rs:102
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "Både '{}' och '{}' är nyare än vid senaste synkronisering."
+
+#: celeste/src/launch.rs:214
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Det går inte att skapa Celestes konfigurationskatalog [{}]."
+
+#: celeste/src/launch.rs:226
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Det går inte att skapa Celestes databasfil [{}]."
+
+#: celeste/src/launch.rs:237
+msgid "Unable to connect to database [{}]."
+msgstr "Kunde inte ansluta till databasen [{}]."
+
+#: celeste/src/launch.rs:247
+msgid "Unable to run database migrations [{}]"
+msgstr "Det går inte att köra databasmigreringar [{}]"
+
+#: celeste/src/launch.rs:354
+msgid "Awaiting sync check..."
+msgstr "Väntar på synkroniseringskontroll..."
+
+#: celeste/src/launch.rs:390
+msgid "Sync Errors"
+msgstr "Synkroniseringsfel"
+
+#: celeste/src/launch.rs:405
+msgid "File/Folder Exclusions"
+msgstr "Fil-/mapputeslutningar"
+
+#: celeste/src/launch.rs:524
+msgid "Stop syncing this directory"
+msgstr "Sluta synkronisera den här katalogen"
+
+#: celeste/src/launch.rs:541
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Är du säker på att du vill sluta synkronisera '{}' till '{}'?"
+
+#: celeste/src/launch.rs:550
+msgid "This directory is currently being processed to no longer be synced."
+msgstr "Denna katalog bearbetas just nu för att inte längre synkroniseras."
+
+#: celeste/src/launch.rs:641
+msgid "Directories"
+msgstr "Kataloger"
+
+#. Get the local folder to sync with.
+#: celeste/src/launch.rs:664
+msgid "Local folder:"
+msgstr "Lokal mapp:"
+
+#: celeste/src/launch.rs:680 celeste/src/launch.rs:818 celeste/src/login/gdrive.rs:197
+msgid "Cancel"
+msgstr "Avbryt"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: celeste/src/launch.rs:700
+msgid "Remote folder:"
+msgstr "Fjärrmapp:"
+
+#: celeste/src/launch.rs:863
+msgid "The specified remote directory doesn't exist"
+msgstr "Den angivna fjärrkatalogen finns inte"
+
+#: celeste/src/launch.rs:871
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Det gick inte att kontrollera om den angivna fjärrkatalogen finns"
+
+#: celeste/src/launch.rs:882
+msgid "The specified directory pair is already being synced"
+msgstr "Det angivna katalogparet synkroniseras redan"
+
+#: celeste/src/launch.rs:885
+msgid "The specified local directory doesn't exist"
+msgstr "Den angivna lokala katalogen finns inte"
+
+#: celeste/src/launch.rs:888
+msgid "The specified local path isn't a directory"
+msgstr "Den angivna lokala sökvägen är inte en katalog"
+
+#: celeste/src/launch.rs:891
+msgid "The specified local directory needs to be an absolute path"
+msgstr "Den angivna lokala katalogen måste vara en absolut sökväg"
+
+#: celeste/src/launch.rs:919
+msgid "Are you sure you want to delete this remote?"
+msgstr "Är du säker på att du vill ta bort den här fjärrkontrollen?"
+
+#: celeste/src/launch.rs:920
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Alla kataloger associerade med denna fjärranslutning kommer också att sluta "
+"synkroniseras."
+
+#: celeste/src/launch.rs:1146 celeste-tray/src/main.rs:51
+msgid "Awaiting sync checks..."
+msgstr "Väntar på synkroniseringskontroller..."
+
+#. Notify the tray app that we're syncing this remote now.
+#: celeste/src/launch.rs:1242
+msgid "Syncing '{}'..."
+msgstr "Synkroniserar '{}'..."
+
+#: celeste/src/launch.rs:1277
+msgid "Checking for changes..."
+msgstr "Söker efter ändringar..."
+
+#. Add an error for reporting in the UI.
+#: celeste/src/launch.rs:1284
+msgid "Please resolve the reported syncing issues."
+msgstr "Lös de rapporterade synkroniseringsproblemen."
+
+#: celeste/src/launch.rs:1311
+msgid "{} errors found. "
+msgstr "{} fel har hittats. "
+
+#: celeste/src/launch.rs:1325
+msgid "Would you like to dismiss this error?"
+msgstr "Vill du avvisa det här felet?"
+
+#: celeste/src/launch.rs:1352
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "Misslyckades med att synkronisera '{}' till '{}' på fjärranslutningen."
+
+#: celeste/src/launch.rs:1360
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "Misslyckades med att synkronisera '{}' på fjärranslutningen till '{}'."
+
+#: celeste/src/launch.rs:1385
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "Kan inte hämta data för '{}' från fjärranslutningen."
+
+#: celeste/src/launch.rs:1394 celeste/src/launch.rs:1399 celeste/src/launch.rs:1407
+msgid "File Update"
+msgstr "Filuppdatering"
+
+#: celeste/src/launch.rs:1394
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"Varken det lokala objektet eller fjärrobjektet finns längre. Detta fel "
+"kommer nu att tas bort."
+
+#: celeste/src/launch.rs:1399
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"Endast den lokala föremålet finns nu, så den kommer att synkroniseras till "
+"fjärranslutningen."
+
+#: celeste/src/launch.rs:1407
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"Endast fjärrobjektet finns nu, så det kommer att synkroniseras till den "
+"lokala datorn."
+
+#: celeste/src/launch.rs:1417
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"Både det lokala objektet '{}' och fjärrobjektet '{}' har uppdaterats sedan "
+"den senaste synkroniseringen."
+
+#: celeste/src/launch.rs:1419
+msgid "Which item would you like to keep?"
+msgstr "Vilket föremål skulle du vilja behålla?"
+
+#: celeste/src/launch.rs:1421
+msgid "Local"
+msgstr "Lokal"
+
+#: celeste/src/launch.rs:1422
+msgid "Remote"
+msgstr "Fjärranslutning"
+
+#: celeste/src/launch.rs:1471
+msgid "1 error found."
+msgstr "1 fel hittades."
+
+#: celeste/src/launch.rs:1473
+msgid "{} errors found."
+msgstr "{} fel har hittats."
+
+#: celeste/src/launch.rs:1605
+msgid "Checking '{}' for changes..."
+msgstr "Kontrollerar '{}' för ändringar..."
+
+#: celeste/src/launch.rs:2021
+msgid "Checking '{}' on remote for changes..."
+msgstr "Kontrollerar om det finns ändringar i '{}' på fjärranslutningen..."
+
+#: celeste/src/launch.rs:2412
+msgid "Directory has finished sync checks."
+msgstr "Synkroniseringskontroller på denna katalog har slutförts."
+
+#: celeste/src/launch.rs:2432
+msgid "Finished sync checks with {} errors."
+msgstr "Synkroniseringskontroller slutfördes med {} fel."
+
+#: celeste/src/login/gdrive.rs:194
+msgid "Authenticating to {}..."
+msgstr "Autentiserar till {}..."
+
+#: celeste/src/login/gdrive.rs:195
+msgid "Open the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"Följ länken som öppnades i din webbläsare och kom tillbaka när du är klar."
+
+#: celeste/src/login/gdrive.rs:222
+msgid "There was an issue while running the webserver for authentication"
+msgstr "Det uppstod ett problem när webbservern kördes för autentisering"
+
+#: celeste/src/login/gdrive.rs:231
+msgid "There was an issue authenticating to {}"
+msgstr "Det uppstod ett problem med autentisering till {}"
+
+#: celeste/src/login/login_util.rs:14
+msgid "Server Name"
+msgstr "Server namn"
+
+#: celeste/src/login/login_util.rs:26
+msgid "Server name already exists."
+msgstr "Servernamnet finns redan."
+
+#: celeste/src/login/login_util.rs:28
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Ogiltigt servernamn. Servernamn måste:\n"
+"- Endast innehålla siffror, bokstäver, '_', '-', '.', och mellanslag\n"
+"- Inte börja med '-' eller ett mellanslag\n"
+"- Inte avslutas med ett mellanslag"
+
+#: celeste/src/login/login_util.rs:42
+msgid "Server URL"
+msgstr "Server URL"
+
+#: celeste/src/login/login_util.rs:48
+msgid "Invalid server URL ({})."
+msgstr "Ogiltig server-URL ({})."
+
+#: celeste/src/login/login_util.rs:57
+msgid "Invalid server URL (no domain specified)."
+msgstr "Ogiltig server-URL (ingen domän angiven)."
+
+#: celeste/src/login/login_util.rs:61
+msgid "Invalid server URL (password was specified)."
+msgstr "Ogiltig server-URL (lösenord har angetts)."
+
+#: celeste/src/login/login_util.rs:65
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Ogiltig server-URL (okänt serverschema {})."
+
+#: celeste/src/login/login_util.rs:77
+msgid "Don't specify '{}' as part of the URL."
+msgstr "Ange inte '{}' som en del av webbadressen."
+
+#: celeste/src/login/login_util.rs:90
+msgid "Username"
+msgstr "Användarnamn"
+
+#: celeste/src/login/login_util.rs:96
+msgid "Password"
+msgstr "Lösenord"
+
+#: celeste/src/login/login_util.rs:102
+msgid "Log in"
+msgstr "Logga in"
+
+#: celeste/src/login/mod.rs:82
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"Kan inte ansluta till servern. Kontrollera din internetanslutning och försök "
+"igen."
+
+#: celeste/src/login/mod.rs:86
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Det går inte att autentisera till servern. Kontrollera dina "
+"inloggningsuppgifter och försök igen."
+
+#: celeste/src/login/mod.rs:91
+msgid "Unable to log in"
+msgstr "Kan inte logga in"
+
+#. The dropdown for selecting the server type.
+#: celeste/src/login/mod.rs:147
+msgid "Server Type"
+msgstr "Servertyp"
+
+#: celeste/src/main.rs:187
+msgid "Unknown Error"
+msgstr "Okänt fel"
+
+#: celeste/src/main.rs:194
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Ett okänt fel har uppstått. Detta är ett internt problem med Celeste och bör "
+"rapporteras.\n"
+"\n"
+"Följande bakåtspårning kan hjälpa till med att felsöka problemet - observera "
+"att det kan innehålla information som inloggningstokens/nycklar, så undvik "
+"att publicera informationen offentligt:"
+
+#: celeste-tray/src/main.rs:54
+msgid "Open"
+msgstr "Öppna"
+
+#: celeste-tray/src/main.rs:55
+msgid "Quit"
+msgstr "Avsluta"
+
+#: celeste-tray/src/main.rs:116
+msgid "Quitting..."
+msgstr "Avslutar..."
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 00000000..f8e64cda
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,337 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.5.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-05-01 18:51+0000\n"
+"PO-Revision-Date: 2023-08-20 16:52+0000\n"
+"Last-Translator: Sabri Ünal \n"
+"Language-Team: Turkish \n"
+"Language: tr\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"
+"X-Generator: Weblate 5.0-dev\n"
+
+#: celeste/src/gtk_util.rs:20 celeste/src/gtk_util.rs:43 celeste/src/launch.rs:678 celeste/src/launch.rs:840
+msgid "Ok"
+msgstr "Tamam."
+
+#: celeste/src/launch.rs:102
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "Hem '{}' hem de '{}' son eşzamanlamadan daha yeni."
+
+#: celeste/src/launch.rs:214
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Celeste'nin yapılandırma dizini oluşturulamıyor [{}]."
+
+#: celeste/src/launch.rs:226
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Celeste'nin veri tabanı dosyası oluşturulamıyor [{}]."
+
+#: celeste/src/launch.rs:236
+msgid "Unable to connect to database [{}]."
+msgstr "Veri tabanına bağlanılamıyor [{}]."
+
+#: celeste/src/launch.rs:244
+msgid "Unable to run database migrations [{}]"
+msgstr "Veri tabanı geçişleri çalıştırılamıyor [{}]"
+
+#: celeste/src/launch.rs:351
+msgid "Awaiting sync check..."
+msgstr "Eşzamanlama denetimi bekleniyor..."
+
+#: celeste/src/launch.rs:387
+msgid "Sync Errors"
+msgstr "Eşzamanlama Hataları"
+
+#: celeste/src/launch.rs:402
+msgid "File/Folder Exclusions"
+msgstr "Dosya/Klasör Dışlamaları"
+
+#: celeste/src/launch.rs:521
+msgid "Stop syncing this directory"
+msgstr "Bu dizini eşzamanlamayı durdur"
+
+#: celeste/src/launch.rs:538
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr ""
+"'{}' ile '{}' arasında eşzamanlamayı durdurmak istediğinizden emin misiniz?"
+
+#: celeste/src/launch.rs:547
+msgid "This directory is currently being processed to no longer be synced."
+msgstr "Bu dizin şu anda artık eşzamanlanmamak üzere işlenmektedir."
+
+#: celeste/src/launch.rs:638
+msgid "Directories"
+msgstr "Dizinler"
+
+#. Get the local folder to sync with.
+#: celeste/src/launch.rs:661
+msgid "Local folder:"
+msgstr "Yerel klasör:"
+
+#: celeste/src/launch.rs:677 celeste/src/launch.rs:839 celeste/src/login/gdrive.rs:207
+msgid "Cancel"
+msgstr "İptal"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: celeste/src/launch.rs:697
+msgid "Remote folder:"
+msgstr "Uzak klasör:"
+
+#: celeste/src/launch.rs:884
+msgid "The specified remote directory doesn't exist"
+msgstr "Belirtilen uzak dizin yok"
+
+#: celeste/src/launch.rs:892
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Belirtilen uzak dizinin varlığı denetlenemedi"
+
+#: celeste/src/launch.rs:903
+msgid "The specified directory pair is already being synced"
+msgstr "Belirtilen dizin çifti zaten eşzamanlanıyor"
+
+#: celeste/src/launch.rs:906
+msgid "The specified local directory doesn't exist"
+msgstr "Belirtilen yerel dizin yok"
+
+#: celeste/src/launch.rs:909
+msgid "The specified local path isn't a directory"
+msgstr "Belirtilen yerel yol dizin değil"
+
+#: celeste/src/launch.rs:912
+msgid "The specified local directory needs to be an absolute path"
+msgstr "Belirtilen yerel dizinin mutlak bir yol olması gerekir"
+
+#: celeste/src/launch.rs:940
+msgid "Are you sure you want to delete this remote?"
+msgstr "Bu uzağı silmek istediğinizden emin misiniz?"
+
+#: celeste/src/launch.rs:941
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr "Bu uzakla ilişkili tüm dizinlerin de eşitlenmesi durduracak."
+
+#: celeste/src/launch.rs:1167 celeste-tray/src/main.rs:51
+msgid "Awaiting sync checks..."
+msgstr "Eşzamanlama denetimleri bekleniyor..."
+
+#. Notify the tray app that we're syncing this remote now.
+#: celeste/src/launch.rs:1263
+msgid "Syncing '{}'..."
+msgstr "'{}' eşitleniyor..."
+
+#: celeste/src/launch.rs:1298
+msgid "Checking for changes..."
+msgstr "Değişiklikler denetleniyor..."
+
+#. Add an error for reporting in the UI.
+#: celeste/src/launch.rs:1305
+msgid "Please resolve the reported syncing issues."
+msgstr "Lütfen bildirilen eşzamanlama sorunlarını çözün."
+
+#: celeste/src/launch.rs:1332
+msgid "{} errors found. "
+msgstr "{} hata bulundu. "
+
+#: celeste/src/launch.rs:1346
+msgid "Would you like to dismiss this error?"
+msgstr "Bu hatayı gözden çıkarmak ister misiniz?"
+
+#: celeste/src/launch.rs:1373
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "'{}', '{}' uzağı ile eşitlenemedi."
+
+#: celeste/src/launch.rs:1381
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "'{}', '{}' uzağına eşitlenemedi."
+
+#: celeste/src/launch.rs:1406
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "'{}' uzağı için veri alınamadı."
+
+#: celeste/src/launch.rs:1415 celeste/src/launch.rs:1420 celeste/src/launch.rs:1428
+msgid "File Update"
+msgstr "Dosya Güncelle"
+
+#: celeste/src/launch.rs:1415
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr "Yerel öge de, uzak öge artık yok. Bu hata şimdi kaldırılacak."
+
+#: celeste/src/launch.rs:1420
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr "Şu anda yalnızca yerel öge var, bu nedenle uzakla eşitlenecek."
+
+#: celeste/src/launch.rs:1428
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr "Şu anda yalnızca uzak öge var, dolayısıyla yerel makineyle eşitlenecek."
+
+#: celeste/src/launch.rs:1438
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"Son eşzamanlamadan sonra hem yerel '{}' ögesi hem de uzak '{}' ögesi "
+"güncellendi."
+
+#: celeste/src/launch.rs:1440
+msgid "Which item would you like to keep?"
+msgstr "Hangi ögeyi korumak istersiniz?"
+
+#: celeste/src/launch.rs:1442
+msgid "Local"
+msgstr "Yerel"
+
+#: celeste/src/launch.rs:1443
+msgid "Remote"
+msgstr "Uzak"
+
+#: celeste/src/launch.rs:1492
+msgid "1 error found."
+msgstr "1 hata bulundu."
+
+#: celeste/src/launch.rs:1494
+msgid "{} errors found."
+msgstr "{} hata bulundu."
+
+#: celeste/src/launch.rs:1626
+msgid "Checking '{}' for changes..."
+msgstr "'{}' değişiklikleri denetleniyor..."
+
+#: celeste/src/launch.rs:2042
+msgid "Checking '{}' on remote for changes..."
+msgstr "Değişiklikler için '{}' uzağı denetleniyor..."
+
+#: celeste/src/launch.rs:2433
+msgid "Directory has finished sync checks."
+msgstr "Dizinler eşzamanlama denetimleri tamamlandı."
+
+#: celeste/src/launch.rs:2454
+msgid "Finished sync checks with {} errors."
+msgstr "Eşzamanlama denetimleri {} hatayla tamamlandı."
+
+#: celeste/src/login/gdrive.rs:204
+msgid "Authenticating to {}..."
+msgstr "{} kimlik doğrulanıyor..."
+
+#: celeste/src/login/gdrive.rs:205
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"Tarayıcınızda açılan bağlantıyı takip edin ve işlem tamamlandığında geri "
+"gelin."
+
+#: celeste/src/login/gdrive.rs:232
+msgid "There was an issue while running the webserver for authentication"
+msgstr "Kimlik doğrulama için web sunucusu çalıştırılırken hata oluştu"
+
+#: celeste/src/login/gdrive.rs:241
+msgid "There was an issue authenticating to {}"
+msgstr "{} için kimlik doğrulanırken hata oluştu"
+
+#: celeste/src/login/login_util.rs:14
+msgid "Server Name"
+msgstr "Sunucu Adı"
+
+#: celeste/src/login/login_util.rs:26
+msgid "Server name already exists."
+msgstr "Sunucu adı zaten var."
+
+#: celeste/src/login/login_util.rs:28
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Geçersiz sunucu adı. Sunucu adları:\n"
+"- Yalnızca sayı, harf, '_', '-', '.', ve boşluk içerebilir\n"
+"- '-' veya boşluk ile başlayamaz\n"
+"- Boşluk ile bitemez\n"
+"- Türkçe karakter gibi yabancı karakter içeremez"
+
+#: celeste/src/login/login_util.rs:42
+msgid "Server URL"
+msgstr "Sunucu URL"
+
+#: celeste/src/login/login_util.rs:48
+msgid "Invalid server URL ({})."
+msgstr "Geçersiz sunucu URL ({})."
+
+#: celeste/src/login/login_util.rs:57
+msgid "Invalid server URL (no domain specified)."
+msgstr "Geçersiz sunucu URL (alan adı belirtilmedi)."
+
+#: celeste/src/login/login_util.rs:61
+msgid "Invalid server URL (password was specified)."
+msgstr "Geçersiz sunucu URL (parola belirtildi)."
+
+#: celeste/src/login/login_util.rs:65
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Geçersiz sunucu URL (bilinmeyen sunucu şeması)."
+
+#: celeste/src/login/login_util.rs:77
+msgid "Don't specify '{}' as part of the URL."
+msgstr "URL parçası olarak '{}' belirtmeyin."
+
+#: celeste/src/login/login_util.rs:90
+msgid "Username"
+msgstr "Kullanıcı Adı"
+
+#: celeste/src/login/login_util.rs:96
+msgid "Password"
+msgstr "Parola"
+
+#: celeste/src/login/login_util.rs:102
+msgid "Log in"
+msgstr "Giriş"
+
+#: celeste/src/login/mod.rs:72
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr "Sunucuya bağlanamıyor. İnternet bağlantınızı denetleyip tekrar deneyin."
+
+#: celeste/src/login/mod.rs:76
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Sunucuda kimlik doğrulanamıyor. Giriş kimlik bilgilerinizi denetleyip tekrar "
+"deneyin."
+
+#: celeste/src/login/mod.rs:80
+msgid "Unable to log in"
+msgstr "Giriş yapılamıyor"
+
+#. The dropdown for selecting the server type.
+#: celeste/src/login/mod.rs:116
+msgid "Server Type"
+msgstr "Sunucu Türü"
+
+#: celeste/src/main.rs:187
+msgid "Unknown Error"
+msgstr "Bilinmeyen Hata"
+
+#: celeste/src/main.rs:194
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Çalışırken bilinmeyen bir hata oluştu. Bu, Celesteʼnin içsel bir sorunudur "
+"ve bildirilmesi gerekir.\n"
+"\n"
+"Aşağıdaki hata çıktısı, hata ayıklamaya yardımcı olabilir - oturum açma "
+"jetonları/anahtarları gibi bilgiler içerebileceğini unutmayın, bu nedenle "
+"bilgileri herkese açık olarak yayınlamaktan kaçının:"
+
+#: celeste-tray/src/main.rs:54
+msgid "Open"
+msgstr "Aç"
+
+#: celeste-tray/src/main.rs:55
+msgid "Quit"
+msgstr "Çık"
+
+#: celeste-tray/src/main.rs:116
+msgid "Quitting..."
+msgstr "Çıkış yapılıyor..."
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 00000000..5bfef649
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,346 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.5.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-05-01 18:51+0000\n"
+"PO-Revision-Date: 2023-05-05 11:52+0000\n"
+"Last-Translator: Dan \n"
+"Language-Team: Ukrainian \n"
+"Language: uk\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"
+"X-Generator: Weblate 4.18-dev\n"
+
+#: celeste/src/gtk_util.rs:20 celeste/src/gtk_util.rs:43 celeste/src/launch.rs:678 celeste/src/launch.rs:840
+msgid "Ok"
+msgstr "Ок"
+
+#: celeste/src/launch.rs:102
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "І '{}', і '{}' є більш свіжими, ніж під час останньої синхронізації."
+
+#: celeste/src/launch.rs:214
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "Не вдалося створити каталог конфігурації Celeste [{}]."
+
+#: celeste/src/launch.rs:226
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "Не вдалося створити файл бази даних Celeste [{}]."
+
+#: celeste/src/launch.rs:236
+msgid "Unable to connect to database [{}]."
+msgstr "Не вдалося під'єднатися до бази даних [{}]."
+
+#: celeste/src/launch.rs:244
+msgid "Unable to run database migrations [{}]"
+msgstr "Не вдається запустити перенесення бази даних [{}]"
+
+#: celeste/src/launch.rs:351
+msgid "Awaiting sync check..."
+msgstr "Очікуємо на перевірку синхронізації..."
+
+#: celeste/src/launch.rs:387
+msgid "Sync Errors"
+msgstr "Помилки синхронізації"
+
+#: celeste/src/launch.rs:402
+msgid "File/Folder Exclusions"
+msgstr "Виключення файлу/папки"
+
+#: celeste/src/launch.rs:521
+msgid "Stop syncing this directory"
+msgstr "Зупинити синхронізацію цього каталогу"
+
+#: celeste/src/launch.rs:538
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "Ви впевнені, що хочете припинити синхронізацію '{}' з '{}'?"
+
+#: celeste/src/launch.rs:547
+msgid "This directory is currently being processed to no longer be synced."
+msgstr "Наразі цей каталог обробляється, щоб більше не синхронізуватися."
+
+#: celeste/src/launch.rs:638
+msgid "Directories"
+msgstr "Каталоги"
+
+#. Get the local folder to sync with.
+#: celeste/src/launch.rs:661
+msgid "Local folder:"
+msgstr "Локальна папка:"
+
+#: celeste/src/launch.rs:677 celeste/src/launch.rs:839 celeste/src/login/gdrive.rs:207
+msgid "Cancel"
+msgstr "Скасувати"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: celeste/src/launch.rs:697
+msgid "Remote folder:"
+msgstr "Віддалена папка:"
+
+#: celeste/src/launch.rs:884
+msgid "The specified remote directory doesn't exist"
+msgstr "Вказаний віддалений каталог не існує"
+
+#: celeste/src/launch.rs:892
+msgid "Failed to check if the specified remote directory exists"
+msgstr "Не вдалося перевірити, чи існує вказаний віддалений каталог"
+
+#: celeste/src/launch.rs:903
+msgid "The specified directory pair is already being synced"
+msgstr "Зазначена пара каталогів вже синхронізується"
+
+#: celeste/src/launch.rs:906
+msgid "The specified local directory doesn't exist"
+msgstr "Вказаний локальний каталог не існує"
+
+#: celeste/src/launch.rs:909
+msgid "The specified local path isn't a directory"
+msgstr "Вказаний локальний шлях не є каталогом"
+
+#: celeste/src/launch.rs:912
+msgid "The specified local directory needs to be an absolute path"
+msgstr "Вказаний локальний каталог має бути абсолютним шляхом"
+
+#: celeste/src/launch.rs:940
+msgid "Are you sure you want to delete this remote?"
+msgstr "Ви впевнені, що хочете видалити цей віддалений пристрій?"
+
+#: celeste/src/launch.rs:941
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr ""
+"Всі каталоги, пов'язані з цим віддаленим пристроєм, також припинять "
+"синхронізацію."
+
+#: celeste/src/launch.rs:1167 celeste-tray/src/main.rs:51
+msgid "Awaiting sync checks..."
+msgstr "Очікуємо перевірки синхронізації..."
+
+#. Notify the tray app that we're syncing this remote now.
+#: celeste/src/launch.rs:1263
+msgid "Syncing '{}'..."
+msgstr "Синхронізація \"{}\"..."
+
+#: celeste/src/launch.rs:1298
+msgid "Checking for changes..."
+msgstr "Перевірка змін..."
+
+#. Add an error for reporting in the UI.
+#: celeste/src/launch.rs:1305
+msgid "Please resolve the reported syncing issues."
+msgstr "Будь ласка, вирішіть проблеми з синхронізацією, про які повідомлялося."
+
+#: celeste/src/launch.rs:1332
+msgid "{} errors found. "
+msgstr "Знайдено помилок: {}. "
+
+#: celeste/src/launch.rs:1346
+msgid "Would you like to dismiss this error?"
+msgstr "Бажаєте відхилити цю помилку?"
+
+#: celeste/src/launch.rs:1373
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "Не вдалося синхронізувати \"{}\" з \"{}\" на віддаленому пристрої."
+
+#: celeste/src/launch.rs:1381
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "Не вдалося синхронізувати \"{}\" на віддаленому пристрої з \"{}\"."
+
+#: celeste/src/launch.rs:1406
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "Не вдається отримати дані для '{}' з віддаленого пристрою."
+
+#: celeste/src/launch.rs:1415 celeste/src/launch.rs:1420 celeste/src/launch.rs:1428
+msgid "File Update"
+msgstr "Оновлення файлу"
+
+#: celeste/src/launch.rs:1415
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr ""
+"Ні локального, ні віддаленого елемента більше не існує. Тепер цю помилку "
+"буде видалено."
+
+#: celeste/src/launch.rs:1420
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr ""
+"Наразі існує лише локальний елемент, тому його буде синхронізовано з "
+"віддаленим."
+
+#: celeste/src/launch.rs:1428
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr ""
+"Наразі існує лише віддалений елемент, тому його буде синхронізовано з "
+"локальною машиною."
+
+#: celeste/src/launch.rs:1438
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr ""
+"І локальний елемент '{}', і віддалений елемент '{}' було оновлено з моменту "
+"останньої синхронізації."
+
+#: celeste/src/launch.rs:1440
+msgid "Which item would you like to keep?"
+msgstr "Яку річ ви хотіли б залишити?"
+
+#: celeste/src/launch.rs:1442
+msgid "Local"
+msgstr "Локально"
+
+#: celeste/src/launch.rs:1443
+msgid "Remote"
+msgstr "Віддалено"
+
+#: celeste/src/launch.rs:1492
+msgid "1 error found."
+msgstr "Знайдено 1 помилку."
+
+#: celeste/src/launch.rs:1494
+msgid "{} errors found."
+msgstr "Знайдено помилок: {}."
+
+#: celeste/src/launch.rs:1626
+msgid "Checking '{}' for changes..."
+msgstr "Перевірка '{}' на наявність змін..."
+
+#: celeste/src/launch.rs:2042
+msgid "Checking '{}' on remote for changes..."
+msgstr "Перевірка '{}' на віддаленому пристрої на наявність змін..."
+
+#: celeste/src/launch.rs:2433
+msgid "Directory has finished sync checks."
+msgstr "Каталог завершив перевірку синхронізації."
+
+#: celeste/src/launch.rs:2454
+msgid "Finished sync checks with {} errors."
+msgstr "Завершено перевірку синхронізації з помилками {}."
+
+#: celeste/src/login/gdrive.rs:204
+msgid "Authenticating to {}..."
+msgstr "Автентифікація до {}..."
+
+#: celeste/src/login/gdrive.rs:205
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr ""
+"Перейдіть за посиланням, яке відкрилося у вашому браузері, і поверніться, "
+"коли закінчите."
+
+#: celeste/src/login/gdrive.rs:232
+msgid "There was an issue while running the webserver for authentication"
+msgstr "Виникла проблема під час запуску вебсервера для автентифікації"
+
+#: celeste/src/login/gdrive.rs:241
+msgid "There was an issue authenticating to {}"
+msgstr "Виникла проблема з автентифікацією до {}"
+
+#: celeste/src/login/login_util.rs:14
+msgid "Server Name"
+msgstr "Ім'я сервера"
+
+#: celeste/src/login/login_util.rs:26
+msgid "Server name already exists."
+msgstr "Ім'я сервера вже існує."
+
+#: celeste/src/login/login_util.rs:28
+msgid "Invalid server name. Server names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"Неправильне ім'я сервера. Імена серверів повинні:\n"
+"- містити лише цифри, літери, '_', '-', '.' та пробіли\n"
+"- Не починатися з '-' або пробілу\n"
+"- Не закінчуватися пробілом"
+
+#: celeste/src/login/login_util.rs:42
+msgid "Server URL"
+msgstr "URL сервера"
+
+#: celeste/src/login/login_util.rs:48
+msgid "Invalid server URL ({})."
+msgstr "Невірна URL-адреса сервера ({})."
+
+#: celeste/src/login/login_util.rs:57
+msgid "Invalid server URL (no domain specified)."
+msgstr "Невірна URL-адреса сервера (не вказано домен)."
+
+#: celeste/src/login/login_util.rs:61
+msgid "Invalid server URL (password was specified)."
+msgstr "Невірна URL-адреса сервера (вказано пароль)."
+
+#: celeste/src/login/login_util.rs:65
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "Невірна URL-адреса сервера (невідома схема сервера {})."
+
+#: celeste/src/login/login_util.rs:77
+msgid "Don't specify '{}' as part of the URL."
+msgstr "Не вказуйте '{}' як частину URL-адреси."
+
+#: celeste/src/login/login_util.rs:90
+msgid "Username"
+msgstr "Ім’я користувача"
+
+#: celeste/src/login/login_util.rs:96
+msgid "Password"
+msgstr "Пароль"
+
+#: celeste/src/login/login_util.rs:102
+msgid "Log in"
+msgstr "Ввійти"
+
+#: celeste/src/login/mod.rs:72
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr ""
+"Не вдалося під'єднатися до сервера. Перевірте з'єднання з інтернетом та "
+"спробуйте ще раз."
+
+#: celeste/src/login/mod.rs:76
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr ""
+"Не вдалося авторизуватися на сервері. Перевірте свої облікові дані та "
+"спробуйте ще раз."
+
+#: celeste/src/login/mod.rs:80
+msgid "Unable to log in"
+msgstr "Не вдається ввійти"
+
+#. The dropdown for selecting the server type.
+#: celeste/src/login/mod.rs:116
+msgid "Server Type"
+msgstr "Тип сервера"
+
+#: celeste/src/main.rs:187
+msgid "Unknown Error"
+msgstr "Невідома помилка"
+
+#: celeste/src/main.rs:194
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"Під час запуску сталася невідома помилка. Це внутрішня проблема Celeste, про "
+"яку слід повідомити.\n"
+"\n"
+"Наведене нижче технічне повідомлення може допомогти у налагодженні проблеми -"
+" зверніть увагу, що воно може містити таку інформацію, як токени/ключі для "
+"входу в систему, тому уникайте публічного розміщення цієї інформації:"
+
+#: celeste-tray/src/main.rs:54
+msgid "Open"
+msgstr "Відкрити"
+
+#: celeste-tray/src/main.rs:55
+msgid "Quit"
+msgstr "Вийти"
+
+#: celeste-tray/src/main.rs:116
+msgid "Quitting..."
+msgstr "Вихід..."
diff --git a/po/zh_Hant.po b/po/zh_Hant.po
new file mode 100644
index 00000000..4a60948e
--- /dev/null
+++ b/po/zh_Hant.po
@@ -0,0 +1,346 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Hunter Wittenborn
+# This file is distributed under the same license as the Celeste package.
+# FIRST AUTHOR , YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Celeste 0.8.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-11-19 01:22+0000\n"
+"PO-Revision-Date: 2024-03-03 16:01+0000\n"
+"Last-Translator: Kisaragi Hiu \n"
+"Language-Team: Chinese (Traditional) \n"
+"Language: zh_Hant\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 5.5-dev\n"
+
+#: src/about.rs:20
+msgid "App icons by"
+msgstr "應用程式圖示製作"
+
+#: src/gtk_util.rs:20 src/gtk_util.rs:43 src/launch.rs:614 src/launch.rs:776
+msgid "Ok"
+msgstr "確定"
+
+#: src/launch.rs:99
+msgid "Both '{}' and '{}' are more recent than at last sync."
+msgstr "'{}' 和 '{}' 都比上次同步還要更新。"
+
+#: src/launch.rs:158
+msgid "Unable to create Celeste's config directory [{}]."
+msgstr "無法建立 Celeste 的設定目錄 [{}]。"
+
+#: src/launch.rs:170
+msgid "Unable to create Celeste's database file [{}]."
+msgstr "無法建立 Celeste 的資料庫檔案 [{}]。"
+
+#: src/launch.rs:180
+msgid "Unable to connect to database [{}]."
+msgstr "無法連線到資料庫 [{}]。"
+
+#: src/launch.rs:188
+msgid "Unable to run database migrations [{}]"
+msgstr "無法執行資料庫遷移 [{}]"
+
+#: src/launch.rs:288
+msgid "Awaiting sync check..."
+msgstr "正在等待同步檢查..."
+
+#: src/launch.rs:324
+msgid "Sync Errors"
+msgstr "同步錯誤"
+
+#: src/launch.rs:339
+msgid "File/Folder Exclusions"
+msgstr "檔案/資料夾排除"
+
+#: src/launch.rs:458
+msgid "Stop syncing this directory"
+msgstr "停止同步這個目錄"
+
+#: src/launch.rs:475
+msgid "Are you sure you want to stop syncing '{}' to '{}'?"
+msgstr "您確定要停止將 '{}' 同步到 '{}' 嗎?"
+
+#: src/launch.rs:484
+msgid "This directory is currently being processed to no longer be synced."
+msgstr "這個目錄目前正在進行不再繼續同步的處理。"
+
+#: src/launch.rs:574
+msgid "Directories"
+msgstr "目錄"
+
+#. Get the local folder to sync with.
+#: src/launch.rs:597
+msgid "Local folder:"
+msgstr "本地資料夾:"
+
+#: src/launch.rs:613 src/launch.rs:775 src/login/gdrive.rs:214
+msgid "Cancel"
+msgstr "取消"
+
+#. Get the remote folder to sync with, and add it.
+#. The entry completion code is largely inspired by https://github.com/gtk-rs/gtk4-rs/blob/master/examples/entry_completion/main.rs. I honestly have no clue what half the code for that is doing, I just know the current code is working well enough, and it can be fixed later if it breaks.
+#: src/launch.rs:633
+msgid "Remote folder:"
+msgstr "遠端資料夾:"
+
+#: src/launch.rs:820
+msgid "The specified remote directory doesn't exist"
+msgstr "指定的遠端目錄不存在"
+
+#: src/launch.rs:828
+msgid "Failed to check if the specified remote directory exists"
+msgstr "檢查指定遠端目錄是否存在時失敗"
+
+#: src/launch.rs:839
+msgid "The specified directory pair is already being synced"
+msgstr "指定的目錄對已進行同步"
+
+#: src/launch.rs:842
+msgid "The specified local directory doesn't exist"
+msgstr "指定的本地目錄不存在"
+
+#: src/launch.rs:845
+msgid "The specified local path isn't a directory"
+msgstr "指定的本地路徑不是目錄"
+
+#: src/launch.rs:848
+msgid "The specified local directory needs to be an absolute path"
+msgstr "指定的本地路徑必須是絕對路徑"
+
+#: src/launch.rs:876
+msgid "Are you sure you want to delete this remote?"
+msgstr "您確定要刪除這個遠端嗎?"
+
+#: src/launch.rs:877
+msgid "All the directories associated with this remote will also stop syncing."
+msgstr "所有與此遠端配對的目錄也會停止同步。"
+
+#: src/launch.rs:1342 src/launch.rs:2509
+msgid "Files are synced."
+msgstr "檔案已同步。"
+
+#: src/launch.rs:1352
+msgid "Syncing '{}'..."
+msgstr "正在同步 '{}'..."
+
+#: src/launch.rs:1373
+msgid "Checking for changes..."
+msgstr "正在檢查變更..."
+
+#. Add an error for reporting in the UI.
+#: src/launch.rs:1380
+msgid "Please resolve the reported syncing issues."
+msgstr "請解決回報的同步問題。"
+
+#: src/launch.rs:1407
+msgid "{} errors found. "
+msgstr "找到 {} 個錯誤。 "
+
+#: src/launch.rs:1421
+msgid "Would you like to dismiss this error?"
+msgstr "您要忽略這個錯誤嗎?"
+
+#: src/launch.rs:1448
+msgid "Failed to sync '{}' to '{}' on remote."
+msgstr "將 '{}' 同步到遠端上的 '{}' 失敗。"
+
+#: src/launch.rs:1456
+msgid "Failed to sync '{}' on remote to '{}'."
+msgstr "將遠端上的 '{}' 同步到 '{}' 失敗。"
+
+#: src/launch.rs:1481
+msgid "Unable to fetch data for '{}' from the remote."
+msgstr "無法從遠端取得 '{}' 的資料。"
+
+#: src/launch.rs:1490 src/launch.rs:1495 src/launch.rs:1503
+msgid "File Update"
+msgstr "檔案更新"
+
+#: src/launch.rs:1490
+msgid "Neither the local item or remote item exists anymore. This error will now be removed."
+msgstr "本地或遠端項目皆已不存在。此錯誤將被移除。"
+
+#: src/launch.rs:1495
+msgid "Only the local item exists now, so it will be synced to the remote."
+msgstr "只有本地項目存在,將會將其同步到遠端。"
+
+#: src/launch.rs:1503
+msgid "Only the remote item exists now, so it will be synced to the local machine."
+msgstr "只有遠端項目存在,將會將其同步到本地。"
+
+#: src/launch.rs:1513
+msgid "Both the local item '{}' and remote item '{}' have been updated since the last sync."
+msgstr "上次同步以來本地項目 '{}' 與遠端項目 '{}' 皆有被更新。"
+
+#: src/launch.rs:1515
+msgid "Which item would you like to keep?"
+msgstr "您要保留哪一個版本?"
+
+#: src/launch.rs:1517
+msgid "Local"
+msgstr "本地"
+
+#: src/launch.rs:1518
+msgid "Remote"
+msgstr "遠端"
+
+#: src/launch.rs:1567
+msgid "1 error found."
+msgstr "找到 1 個錯誤。"
+
+#: src/launch.rs:1569
+msgid "{} errors found."
+msgstr "找到 {} 個錯誤。"
+
+#: src/launch.rs:1701
+msgid "Checking '{}' for changes..."
+msgstr "正在檢查 '{}' 的變更..."
+
+#: src/launch.rs:2117
+msgid "Checking '{}' on remote for changes..."
+msgstr "正在檢查遠端的 '{}' 的變更..."
+
+#: src/launch.rs:2530
+msgid "Finished sync checks with {} errors."
+msgstr "已完成同步檢查,有 {} 個錯誤。"
+
+#: src/launch.rs:2535
+msgid "Finished sync checks."
+msgstr "已完成同步檢查。"
+
+#: src/login/gdrive.rs:211
+msgid "Authenticating to {}..."
+msgstr "正在與 {} 進行驗證..."
+
+#: src/login/gdrive.rs:212
+msgid "Follow the link that opened in your browser, and come back once you've finished."
+msgstr "跟隨已在您的瀏覽器開啟的連結,完成後再回到此處。"
+
+#: src/login/gdrive.rs:239
+msgid "There was an issue while running the webserver for authentication"
+msgstr "執行驗證用的伺服器時發生問題"
+
+#: src/login/gdrive.rs:248
+msgid "There was an issue authenticating to {}"
+msgstr "與 {} 進行驗證時發生問題"
+
+#: src/login/login_util.rs:15
+msgid "Name"
+msgstr "名稱"
+
+#: src/login/login_util.rs:27
+msgid "Name already exists."
+msgstr "名稱已存在。"
+
+#: src/login/login_util.rs:29
+msgid "Invalid name. Names must:\n"
+"- Only contain numbers, letters, '_', '-', '.', and spaces\n"
+"- Not start with '-' or a space\n"
+"- Not end with a space"
+msgstr ""
+"無效的名稱。名稱必須符合以下條件:\n"
+"- 只能包含數字、字母、底線 ('_')、dash ('-')、半形句點 ('.') 或空格\n"
+"- 不能以 dash ('-') 或空格開頭\n"
+"- 不能以空格結尾"
+
+#: src/login/login_util.rs:43
+msgid "Server URL"
+msgstr "伺服器網址"
+
+#: src/login/login_util.rs:49
+msgid "Invalid server URL ({})."
+msgstr "無效的伺服器網址({})。"
+
+#: src/login/login_util.rs:58
+msgid "Invalid server URL (no domain specified)."
+msgstr "無效的伺服器網址(未指定網域)。"
+
+#: src/login/login_util.rs:62
+msgid "Invalid server URL (password was specified)."
+msgstr "無效的伺服器網址(指定了密碼)。"
+
+#: src/login/login_util.rs:66
+msgid "Invalid server URL(unknown server scheme {})."
+msgstr "無效的伺服器網址(未知的伺服器機制 {})。"
+
+#: src/login/login_util.rs:78
+msgid "Don't specify '{}' as part of the URL."
+msgstr "請不要將 '{}' 包含在網址中。"
+
+#: src/login/login_util.rs:91
+msgid "Username"
+msgstr "使用者名稱"
+
+#: src/login/login_util.rs:97
+msgid "Password"
+msgstr "密碼"
+
+#: src/login/login_util.rs:104
+msgid "2FA Code"
+msgstr "兩步驟驗證碼"
+
+#: src/login/login_util.rs:113
+msgid "The provided 2FA code is invalid (should only contain digits)."
+msgstr "提供的兩步驟驗證碼是無效的(應該只有數字)。"
+
+#: src/login/login_util.rs:118
+msgid "The provided 2FA code is invalid (should be 6 digits long)."
+msgstr "提供的兩步驟驗證碼是無效的(應該是六碼長)。"
+
+#: src/login/login_util.rs:142
+msgid "Log in"
+msgstr "登入"
+
+#: src/login/mod.rs:77
+msgid "Unable to connect to the server. Check your internet connection and try again."
+msgstr "無法連線到伺服器。請檢查您的網路連線然後再試一次。"
+
+#: src/login/mod.rs:80
+msgid "A 2FA code is required to log in to this account. Provide one and try again."
+msgstr "需要提供兩步驟驗證碼才能登入此帳戶。請提供驗證碼再試一次。"
+
+#: src/login/mod.rs:83
+msgid "Unable to authenticate to the server. Check your login credentials and try again."
+msgstr "無法與伺服器進行驗證。請檢查您的登入資訊然後再試一次。"
+
+#: src/login/mod.rs:87
+msgid "Unable to log in"
+msgstr "無法登入"
+
+#. The dropdown for selecting the server type.
+#: src/login/mod.rs:124
+msgid "Server Type"
+msgstr "伺服器類型"
+
+#: src/tray.rs:13
+msgid "Awaiting sync checks..."
+msgstr "正在等待同步檢查..."
+
+#: src/tray.rs:60
+msgid "Open"
+msgstr "開啟"
+
+#: src/tray.rs:67
+msgid "Close"
+msgstr "關閉"
+
+#: src/main.rs:188
+msgid "Unknown Error"
+msgstr "未知錯誤"
+
+#: src/main.rs:195
+msgid "An unknown error has occurred while running. This is an internal issue with Celeste and should be reported.\n"
+"\n"
+"The following backtrace may help with debugging the issue - note that it may contain information such as login tokens/keys, so avoid posting the information publicly:"
+msgstr ""
+"執行時發生了未知錯誤。這是 Celeste 的內部錯誤而應被回報。\n"
+"\n"
+"以下回溯追蹤可能可以幫忙為此問題偵錯 — "
+"請注意,它可能包含登入權杖或金鑰等秘密資訊,所以請不要將它公開:"
diff --git a/src/launch.rs b/src/launch.rs
index 237ed467..eb41772f 100644
--- a/src/launch.rs
+++ b/src/launch.rs
@@ -153,10 +153,12 @@ fn get_image(icon_name: &str) -> Image {
pub fn launch(app: &Application, background: bool) {
// Create the configuration directory if it doesn't exist.
let config_path = util::get_config_dir();
- if !config_path.exists() && let Err(err) = fs::create_dir_all(&config_path) {
+ if !config_path.exists()
+ && let Err(err) = fs::create_dir_all(&config_path)
+ {
gtk_util::show_error(
&tr::tr!("Unable to create Celeste's config directory [{}].", err),
- None
+ None,
);
return;
}
@@ -1888,11 +1890,19 @@ pub fn launch(app: &Application, background: bool) {
file_type.is_dir() && remote_item.as_ref().unwrap().is_dir;
if !same_type {
- if file_type.is_dir() && let Err(err) = fs::remove_dir_all(item.path()) {
- add_error(SyncError::General(local_path.clone(), err.to_string()));
+ if file_type.is_dir()
+ && let Err(err) = fs::remove_dir_all(item.path())
+ {
+ add_error(SyncError::General(
+ local_path.clone(),
+ err.to_string(),
+ ));
return Err(());
} else if let Err(err) = fs::remove_file(item.path()) {
- add_error(SyncError::General(local_path.clone(), err.to_string()));
+ add_error(SyncError::General(
+ local_path.clone(),
+ err.to_string(),
+ ));
return Err(());
}
}
@@ -1953,44 +1963,79 @@ pub fn launch(app: &Application, background: bool) {
// let the user decide which to keep.
// Since `db_model.last_sync_timestamp` is an `i32`, we should be able
// to safely convert it to an `i64` and `u64`.
- if local_utc_timestamp > db_model.last_local_timestamp as u64 && let Some(remote_timestamp) = remote_utc_timestamp && remote_timestamp > db_model.last_remote_timestamp as i64 {
- // Only add the error if one of the items is not a directory - there's no point in saying both directories are more current, and it's probably because one of the items in the directory got updated anyway.
- if let Some(r_item) = remote_item && (!item.path().is_dir() || !r_item.is_dir) {
- add_error(SyncError::BothMoreCurrent(local_path.clone(), remote_path.clone()));
+ if local_utc_timestamp > db_model.last_local_timestamp as u64
+ && let Some(remote_timestamp) = remote_utc_timestamp
+ && remote_timestamp > db_model.last_remote_timestamp as i64
+ {
+ // Only add the error if one of the items is not a directory -
+ // there's no point in saying both directories are more current, and
+ // it's probably because one of the items in the directory got
+ // updated anyway.
+ if let Some(r_item) = remote_item
+ && (!item.path().is_dir() || !r_item.is_dir)
+ {
+ add_error(SyncError::BothMoreCurrent(
+ local_path.clone(),
+ remote_path.clone(),
+ ));
}
// The local item is more recent.
} else if local_utc_timestamp > db_model.last_local_timestamp as u64 {
if let Ok(rclone_item) = push_local_to_remote() {
- update_db_item(get_local_file_timestamp().try_into().unwrap(), rclone_item.mod_time.unix_timestamp().try_into().unwrap());
+ update_db_item(
+ get_local_file_timestamp().try_into().unwrap(),
+ rclone_item.mod_time.unix_timestamp().try_into().unwrap(),
+ );
continue;
} else {
continue;
}
// The remote item is more recent.
- } else if let Some(remote_timestamp) = remote_utc_timestamp && remote_timestamp > db_model.last_remote_timestamp as i64 {
+ } else if let Some(remote_timestamp) = remote_utc_timestamp
+ && remote_timestamp > db_model.last_remote_timestamp as i64
+ {
if pull_remote_to_local().is_err() {
continue;
} else {
- update_db_item(get_local_file_timestamp().try_into().unwrap(), remote_timestamp.try_into().unwrap());
+ update_db_item(
+ get_local_file_timestamp().try_into().unwrap(),
+ remote_timestamp.try_into().unwrap(),
+ );
}
- // The item is missing from the remote, but the last recorded timestamp for the local item is still the same. This means the item got deleted on the server, and we need to reflect such locally.
- } else if remote_item.is_none() && local_utc_timestamp == db_model.last_local_timestamp as u64 {
+ // The item is missing from the remote, but the last
+ // recorded timestamp for the local item is still
+ // the same. This means the item got deleted on the
+ // server, and we need to reflect such locally.
+ } else if remote_item.is_none()
+ && local_utc_timestamp == db_model.last_local_timestamp as u64
+ {
if item.path().is_dir() {
if let Err(err) = fs::remove_dir_all(&local_path) {
- add_error(SyncError::General(local_path.clone(), err.to_string()));
+ add_error(SyncError::General(
+ local_path.clone(),
+ err.to_string(),
+ ));
continue;
}
} else if let Err(err) = fs::remove_file(&local_path) {
- add_error(SyncError::General(local_path.clone(), err.to_string()));
+ add_error(SyncError::General(
+ local_path.clone(),
+ err.to_string(),
+ ));
continue;
}
delete_db_entry();
continue;
- // Both the local and remote item remain unchanged - do nothing.
- } else if local_utc_timestamp == db_model.last_local_timestamp as u64 && let Some(remote_timestamp) = remote_utc_timestamp && remote_timestamp == db_model.last_remote_timestamp as i64 {
+ // Both the local and remote item remain unchanged -
+ // do nothing.
+ } else if local_utc_timestamp == db_model.last_local_timestamp as u64
+ && let Some(remote_timestamp) = remote_utc_timestamp
+ && remote_timestamp == db_model.last_remote_timestamp as i64
+ {
continue;
- // Every possible scenario should have been covered above, so panic if not.
+ // Every possible scenario should have been covered
+ // above, so panic if not.
} else {
unreachable!();
}
@@ -2299,8 +2344,13 @@ pub fn launch(app: &Application, background: bool) {
}
if item.is_dir {
- if !local_path.exists() && let Err(err) = fs::create_dir(local_path) {
- add_error(SyncError::General(local_path_string.clone(), err.to_string()));
+ if !local_path.exists()
+ && let Err(err) = fs::create_dir(local_path)
+ {
+ add_error(SyncError::General(
+ local_path_string.clone(),
+ err.to_string(),
+ ));
return Err(());
}
@@ -2364,16 +2414,30 @@ pub fn launch(app: &Application, background: bool) {
};
// Both items are more recent.
- if let Some(l_timestamp) = local_timestamp && l_timestamp > db_model.last_local_timestamp as u64 && remote_timestamp > db_model.last_remote_timestamp as i64 {
- // Only add the error if one of the items is not a directory - there's no point in saying both directories are more current, and it's probably because one of the items in the directory got updated anyway.
+ if let Some(l_timestamp) = local_timestamp
+ && l_timestamp > db_model.last_local_timestamp as u64
+ && remote_timestamp > db_model.last_remote_timestamp as i64
+ {
+ // Only add the error if one of the items is not a directory -
+ // there's no point in saying both directories are more current, and
+ // it's probably because one of the items in the directory got
+ // updated anyway.
if !local_path.is_dir() || !item.is_dir {
- add_error(SyncError::BothMoreCurrent(local_path_string.clone(), remote_path_string.clone()));
+ add_error(SyncError::BothMoreCurrent(
+ local_path_string.clone(),
+ remote_path_string.clone(),
+ ));
}
continue;
// The local item is more recent.
- } else if let Some(l_timestamp) = local_timestamp && l_timestamp > db_model.last_local_timestamp as u64 {
+ } else if let Some(l_timestamp) = local_timestamp
+ && l_timestamp > db_model.last_local_timestamp as u64
+ {
if let Ok(rclone_item) = push_local_to_remote() {
- update_db_item(get_local_file_timestamp().unwrap().try_into().unwrap(), rclone_item.mod_time.unix_timestamp().try_into().unwrap());
+ update_db_item(
+ get_local_file_timestamp().unwrap().try_into().unwrap(),
+ rclone_item.mod_time.unix_timestamp().try_into().unwrap(),
+ );
continue;
} else {
continue;
@@ -2384,24 +2448,43 @@ pub fn launch(app: &Application, background: bool) {
if pull_remote_to_local().is_err() {
continue;
} else {
- update_db_item(get_local_file_timestamp().unwrap().try_into().unwrap(), remote_timestamp.try_into().unwrap());
+ update_db_item(
+ get_local_file_timestamp().unwrap().try_into().unwrap(),
+ remote_timestamp.try_into().unwrap(),
+ );
}
- // The item is missing locally, but the last recorded timestamp for the remote item is still the same. This means the item got deleted locally, and we need to reflect such on the server.
- } else if !local_path.exists() && remote_timestamp == db_model.last_remote_timestamp as i64 {
- if let Err(err) = rclone::sync::purge(&remote.name, &remote_path_string) {
- add_error(SyncError::General(remote_path_string.clone(), err.error));
+ // The item is missing locally, but the last
+ // recorded timestamp for the remote item is still
+ // the same. This means the item got deleted
+ // locally, and we need to reflect such on the
+ // server.
+ } else if !local_path.exists()
+ && remote_timestamp == db_model.last_remote_timestamp as i64
+ {
+ if let Err(err) =
+ rclone::sync::purge(&remote.name, &remote_path_string)
+ {
+ add_error(SyncError::General(
+ remote_path_string.clone(),
+ err.error,
+ ));
delete_db_entry();
continue;
} else {
continue;
}
- // Both the local and remote item remain unchanged - do nothing.
- } else if let Some(l_timestamp) = local_timestamp && l_timestamp == db_model.last_local_timestamp as u64 && remote_timestamp == db_model.last_remote_timestamp as i64 {
+ // Both the local and remote item remain unchanged -
+ // do nothing.
+ } else if let Some(l_timestamp) = local_timestamp
+ && l_timestamp == db_model.last_local_timestamp as u64
+ && remote_timestamp == db_model.last_remote_timestamp as i64
+ {
continue;
- // Every possible scenario should have been covered above, so panic if not.
+ // Every possible scenario should have been covered
+ // above, so panic if not.
} else {
unreachable!();
}
diff --git a/src/migrations/m20230220_215840_remote_sync_items_fix.rs b/src/migrations/m20230220_215840_remote_sync_items_fix.rs
index 5956d99a..fb464e46 100644
--- a/src/migrations/m20230220_215840_remote_sync_items_fix.rs
+++ b/src/migrations/m20230220_215840_remote_sync_items_fix.rs
@@ -19,12 +19,14 @@ impl MigrationTrait for Migration {
.await?;
for item in sync_items {
- if let Some(item_str) = item["remote_path"].as_str() && item_str.starts_with('/') {
+ if let Some(item_str) = item["remote_path"].as_str()
+ && item_str.starts_with('/')
+ {
db.execute(Statement::from_string(
- backend,
- format!(r#"DELETE FROM sync_items where remote_path = "{item_str}""#)
- ))
- .await?;
+ backend,
+ format!(r#"DELETE FROM sync_items where remote_path = "{item_str}""#),
+ ))
+ .await?;
}
}