diff --git a/src/data/catalogs.json b/src/data/catalogs.json
index 7d078672f7..2782f7a3d9 100644
--- a/src/data/catalogs.json
+++ b/src/data/catalogs.json
@@ -66,14 +66,14 @@
"code": "fr-FR",
"nativeName": "français",
"name": "French",
- "completion": 81,
+ "completion": 95,
"listed": true
},
{
"code": "gl-ES",
"nativeName": "galego",
"name": "Galician",
- "completion": 99,
+ "completion": 100,
"listed": true
},
{
diff --git a/src/locales/es-ES.po b/src/locales/es-ES.po
index ca3258440f..f057cda784 100644
--- a/src/locales/es-ES.po
+++ b/src/locales/es-ES.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-19 17:53\n"
+"PO-Revision-Date: 2026-06-19 23:29\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -3806,7 +3806,7 @@ msgstr "Error: {e}"
#: src/pages/collection.jsx:508
msgid "Switch to collection's server ({serverDomain})"
-msgstr ""
+msgstr "Cambiar al servidor de la colección ({serverDomain})"
#: src/pages/collection.jsx:532
msgid "Unable to load collection."
diff --git a/src/locales/fr-FR.po b/src/locales/fr-FR.po
index 95c847ec84..ee6f8d4c50 100644
--- a/src/locales/fr-FR.po
+++ b/src/locales/fr-FR.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: fr\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-19 17:53\n"
+"PO-Revision-Date: 2026-06-19 20:19\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -2721,7 +2721,7 @@ msgstr "Coller les raccourcis ici"
#: src/components/shortcuts-settings.jsx:860
msgid "Downloading saved shortcuts from server…"
-msgstr ""
+msgstr "Téléchargement des raccourcis sauvegardés depuis le serveur…"
#: src/components/shortcuts-settings.jsx:888
msgid "Unable to download shortcuts"
@@ -2794,7 +2794,7 @@ msgstr "Les raccourcis n’ont pas pu être copiés."
#: src/components/shortcuts-settings.jsx:1136
msgid "Saving shortcuts to server…"
-msgstr ""
+msgstr "Sauvegarde des raccourcis vers le serveur…"
#: src/components/shortcuts-settings.jsx:1143
msgid "Shortcuts saved"
@@ -2806,7 +2806,7 @@ msgstr "Les raccourcis n’ont pas pu être sauvegardés."
#: src/components/shortcuts-settings.jsx:1151
msgid "Sync to server"
-msgstr ""
+msgstr "Synchroniser vers le serveur"
#: src/components/shortcuts-settings.jsx:1166
msgid "Shortcut settings copied"
@@ -2835,7 +2835,7 @@ msgstr ""
#: src/components/status.jsx:292
msgid "Private posts cannot be quoted"
-msgstr ""
+msgstr "Les messages privés ne peuvent pas être cités"
#: src/components/status.jsx:293
msgid "Request to quote"
@@ -2858,7 +2858,7 @@ msgstr "Vous n'êtes pas autorisé à citer ce message"
#: src/components/status.jsx:3266
#: src/components/status.jsx:3267
msgid "Post unavailable"
-msgstr ""
+msgstr "Publication indisponible"
#: src/components/status.jsx:634
msgid "<0/> <1>boosted1>"
@@ -2908,13 +2908,13 @@ msgstr ""
#: src/components/status.jsx:1122
msgid "{mentionsCount, plural, other {# mentions}}"
-msgstr ""
+msgstr "{mentionsCount, plural, one {}other {# mentions}}"
#. placeholder {0}: mentionsCount - 1
#. placeholder {1}: username || acct
#: src/components/status.jsx:1136
msgid "{0, plural, other {<0>@{1}0> first, # others below}}"
-msgstr ""
+msgstr "{0, plural, one {}other {<0>@{1}0> d'abord, # autres ci-dessous}}"
#. placeholder {0}: username || acct
#: src/components/status.jsx:1158
@@ -3163,7 +3163,7 @@ msgstr ""
#: src/components/status.jsx:3264
msgid "Post pending"
-msgstr ""
+msgstr "Publication en attente"
#: src/components/status.jsx:3268
msgid "Post removed by author"
@@ -3171,15 +3171,15 @@ msgstr ""
#: src/components/status.jsx:3269
msgid "Post hidden because you've blocked @{name}."
-msgstr ""
+msgstr "Publication masquée parce que vous avez bloqué @{name}."
#: src/components/status.jsx:3271
msgid "Post hidden because you've blocked {domain}."
-msgstr ""
+msgstr "Publication masquée parce que vous avez bloqué {domain}."
#: src/components/status.jsx:3272
msgid "Post hidden because you've muted @{name}."
-msgstr ""
+msgstr "Publication masquée parce que vous avez bloqué @{name}."
#: src/components/status.jsx:3347
msgid "Show anyway"
@@ -3211,22 +3211,22 @@ msgstr "Fils"
#: src/components/thread-badge.jsx:28
msgid "Thread {index}/{total}"
-msgstr ""
+msgstr "Fil {index}/{total}"
#. X is the unspecified total number of posts in a thread
#: src/components/thread-badge.jsx:32
msgid "Thread {index}/X"
-msgstr ""
+msgstr "Fil {index}/X"
#. index/total posts in a thread
#: src/components/thread-badge.jsx:41
msgid "{index}/{total}"
-msgstr ""
+msgstr "{index}/{total}"
#. X is the unspecified total number of posts in a thread
#: src/components/thread-badge.jsx:46
msgid "{index}/X"
-msgstr ""
+msgstr "{index}/X"
#: src/components/timeline.jsx:562
#: src/pages/settings.jsx:1373
@@ -3310,7 +3310,7 @@ msgstr ""
#: src/pages/account-collections.jsx:74
msgid "Collections by {username}"
-msgstr ""
+msgstr "Collections de {username}"
#: src/pages/account-collections.jsx:190
msgid "Created by you"
@@ -3335,7 +3335,7 @@ msgstr ""
#: src/pages/account-collections.jsx:264
msgid "No collections yet."
-msgstr ""
+msgstr "Aucune collection pour le moment."
#: src/pages/account-statuses.jsx:285
msgid "Account posts"
@@ -3355,7 +3355,7 @@ msgstr ""
#: src/pages/account-statuses.jsx:303
msgid "Media posts by {accountDisplay}"
-msgstr ""
+msgstr "Publications média par {accountDisplay}"
#: src/pages/account-statuses.jsx:392
#: src/pages/account-statuses.jsx:401
@@ -3377,7 +3377,7 @@ msgstr ""
#: src/pages/account-statuses.jsx:438
msgid "Hiding boosts"
-msgstr ""
+msgstr "Cacher les boosts"
#: src/pages/account-statuses.jsx:455
msgid "Showing posts with media"
@@ -3422,12 +3422,12 @@ msgstr "Les informations sur le compte n’ont pas pu être chargés."
#. placeholder {0}: accountInstance ? ( <> {' '} ({punycode.toUnicode(accountInstance)}) > ) : null
#: src/pages/account-statuses.jsx:700
msgid "Switch to account's server {0}"
-msgstr ""
+msgstr "Basculer vers le serveur du compte {0}"
#: src/pages/account-statuses.jsx:730
#: src/pages/collection.jsx:497
msgid "Switch to my server (<0>{currentInstance}0>)"
-msgstr ""
+msgstr "Basculer vers mon serveur (<0>{currentInstance}0>)"
#: src/pages/account-statuses.jsx:803
msgid "Month"
@@ -3439,7 +3439,7 @@ msgstr "Actuel"
#: src/pages/accounts.jsx:135
msgid "Logged out"
-msgstr ""
+msgstr " Déconnecté "
#: src/pages/accounts.jsx:141
msgid "Default"
@@ -3469,7 +3469,7 @@ msgstr "Se déconnecter de <0>@{0}0> ?"
#. placeholder {0}: account.info.acct
#: src/pages/accounts.jsx:275
msgid "Log out and remove <0>@{0}0>"
-msgstr ""
+msgstr "Se déconnecter et supprimer <0>@{0}0>"
#: src/pages/accounts.jsx:287
msgid "Log out…"
@@ -3478,7 +3478,7 @@ msgstr "Se déconnecter…"
#. placeholder {0}: account.info.acct
#: src/pages/accounts.jsx:297
msgid "Remove <0>@{0}0>?"
-msgstr ""
+msgstr "Supprimer <0>@{0}0> ?"
#: src/pages/accounts.jsx:315
msgid "Remove account…"
@@ -3487,7 +3487,7 @@ msgstr ""
#. placeholder {0}: niceDateTime(account.createdAt)
#: src/pages/accounts.jsx:323
msgid "Connected on {0} (<0/>)"
-msgstr ""
+msgstr "Connecté sur {0} (<0/>)"
#: src/pages/accounts.jsx:340
msgid "Add an existing account"
@@ -4508,19 +4508,19 @@ msgstr ""
#: src/pages/settings.jsx:383
msgid "Wellbeing"
-msgstr ""
+msgstr "Bien-être"
#: src/pages/settings.jsx:396
msgid "Hide Trending timeline"
-msgstr ""
+msgstr "Cacher le fil de tendance"
#: src/pages/settings.jsx:408
msgid "Hide Local timeline"
-msgstr ""
+msgstr "Masquer la chronologie locale"
#: src/pages/settings.jsx:421
msgid "Hide Federated timeline"
-msgstr ""
+msgstr "Cacher la chronologie fédérée"
#: src/pages/settings.jsx:429
msgid "Experiments"
@@ -4553,7 +4553,7 @@ msgstr "{0, plural, one {}=0 {Masquer le bouton \"Traduire\" pour:} other {Masqu
#: src/pages/settings.jsx:574
msgid "Note: This feature uses external translation services, powered by <0>{TRANSLATION_API_NAME}0>."
-msgstr ""
+msgstr "Remarque : Cette fonctionnalité utilise des services de traduction externes, propulsés par <0>{TRANSLATION_API_NAME}0>."
#: src/pages/settings.jsx:602
msgid "Auto inline translation"
@@ -4565,7 +4565,7 @@ msgstr "Affiche automatiquement la traduction des messages sur le fil d’actual
#: src/pages/settings.jsx:627
msgid "Paginated timeline (beta)"
-msgstr ""
+msgstr "Chronologie paginée (bêta)"
#: src/pages/settings.jsx:631
msgid "Manual pagination of timeline posts instead of infinite scrolling. Only works for Home/Following timeline for now. Auto refresh and boosts carousel will not work when this is enabled."
@@ -4601,7 +4601,7 @@ msgstr "⚠️⚠️⚠️ Très expérimental.<0/>Enregistré dans les notes pe
#: src/pages/settings.jsx:740
msgid "Note: This feature uses currently-logged-in server API."
-msgstr ""
+msgstr "Note : Cette fonctionnalité utilise l'API du serveur actuellement connectée."
#: src/pages/settings.jsx:756
msgid "Cloak mode <0>(<1>Text1> → <2>████2>)0>"
@@ -4613,7 +4613,7 @@ msgstr "Masque le texte avec des rectangles, pratique pour prendre des captures
#: src/pages/settings.jsx:794
msgid "Install {CLIENT_NAME}"
-msgstr ""
+msgstr "Installer {CLIENT_NAME}"
#: src/pages/settings.jsx:802
msgid "About"
@@ -4633,7 +4633,7 @@ msgstr "Faire un don"
#: src/pages/settings.jsx:894
msgid "What's new"
-msgstr ""
+msgstr "Nouveautés"
#: src/pages/settings.jsx:898
msgid "Privacy Policy"
diff --git a/src/locales/gl-ES.po b/src/locales/gl-ES.po
index 69b2443747..2fd912192d 100644
--- a/src/locales/gl-ES.po
+++ b/src/locales/gl-ES.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: gl\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-19 17:53\n"
+"PO-Revision-Date: 2026-06-20 05:26\n"
"Last-Translator: \n"
"Language-Team: Galician\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -3792,7 +3792,7 @@ msgstr "Publicar colección"
#: src/pages/collection.jsx:453
msgid "Report collection…"
-msgstr ""
+msgstr "Denunciar a colección…"
#: src/pages/collection.jsx:463
#: src/pages/status.jsx:1648
@@ -3806,23 +3806,23 @@ msgstr "Erro: {e}"
#: src/pages/collection.jsx:508
msgid "Switch to collection's server ({serverDomain})"
-msgstr ""
+msgstr "Cambia o servidor da colección {serverDomain}"
#: src/pages/collection.jsx:532
msgid "Unable to load collection."
-msgstr ""
+msgstr "Non se puido cargar a colección."
#: src/pages/collection.jsx:550
msgid " Collection by "
-msgstr ""
+msgstr " Colección creada por "
#: src/pages/collection.jsx:627
msgid "No accounts in this collection yet."
-msgstr ""
+msgstr "Non hai contas nesta colección."
#: src/pages/collection.jsx:690
msgid "Marked as sensitive"
-msgstr ""
+msgstr "Marcada como sensible"
#: src/pages/favourites.jsx:28
msgid "No likes yet. Go like something!"
@@ -4192,27 +4192,27 @@ msgstr "Non se cargaron as mencións."
#: src/pages/notifications.jsx:135
msgid "People you don't follow"
-msgstr ""
+msgstr "Persoas que ti non segues"
#: src/pages/notifications.jsx:136
msgid "People not following you"
-msgstr ""
+msgstr "Persoas que non te seguen"
#: src/pages/notifications.jsx:137
msgid "New accounts"
-msgstr ""
+msgstr "Novas contas"
#: src/pages/notifications.jsx:138
msgid "Unsolicited private mentions"
-msgstr ""
+msgstr "Mencións privadas non solicitadas"
#: src/pages/notifications.jsx:139
msgid "Moderated accounts"
-msgstr ""
+msgstr "Contas moderadas"
#: src/pages/notifications.jsx:140
msgid "Bot accounts"
-msgstr ""
+msgstr "Contas automatizadas"
#: src/pages/notifications.jsx:764
#: src/pages/notifications.jsx:1117
@@ -4269,7 +4269,7 @@ msgstr "Actualizáronse os axustes das notificacións"
#: src/pages/notifications.jsx:1156
msgid "Filter notifications from:"
-msgstr ""
+msgstr "Filtrar as notificacións de:"
#: src/pages/notifications.jsx:1172
msgid "Filter"
diff --git a/src/locales/pt-BR.po b/src/locales/pt-BR.po
index 59acfd87fc..7808bcd805 100644
--- a/src/locales/pt-BR.po
+++ b/src/locales/pt-BR.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-19 17:52\n"
+"PO-Revision-Date: 2026-06-19 21:35\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -3807,7 +3807,7 @@ msgstr "Erro: {e}"
#: src/pages/collection.jsx:508
msgid "Switch to collection's server ({serverDomain})"
-msgstr ""
+msgstr "Alterar para o servidor da coleção ({serverDomain})"
#: src/pages/collection.jsx:532
msgid "Unable to load collection."
diff --git a/src/locales/zh-CN.po b/src/locales/zh-CN.po
index 3ce8b97bf3..bc9f9f6a5d 100644
--- a/src/locales/zh-CN.po
+++ b/src/locales/zh-CN.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: phanpy\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-19 17:53\n"
+"PO-Revision-Date: 2026-06-19 23:29\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -3806,7 +3806,7 @@ msgstr "错误: {e}"
#: src/pages/collection.jsx:508
msgid "Switch to collection's server ({serverDomain})"
-msgstr ""
+msgstr "切换到此合集所在的实例 ({serverDomain})"
#: src/pages/collection.jsx:532
msgid "Unable to load collection."