diff --git a/src/i18n/ca.json b/src/i18n/ca.json
index b15b69f7..2536656f 100644
--- a/src/i18n/ca.json
+++ b/src/i18n/ca.json
@@ -10,11 +10,12 @@
     "text_limit": "Límit de text",
     "title": "Funcionalitats",
     "who_to_follow": "A qui seguir",
-    "pleroma_chat_messages": "Xat de Pleroma"
+    "pleroma_chat_messages": "Xat de Pleroma",
+    "upload_limit": "Límit de càrrega"
   },
   "finder": {
     "error_fetching_user": "No s'ha pogut carregar l'usuari/a",
-    "find_user": "Find user"
+    "find_user": "Trobar usuari"
   },
   "general": {
     "apply": "Aplica",
@@ -32,7 +33,16 @@
     "error_retry": "Si us plau, prova de nou",
     "generic_error": "Hi ha hagut un error",
     "loading": "Carregant…",
-    "more": "Més"
+    "more": "Més",
+    "flash_content": "Fes clic per mostrar el contingut Flash utilitzant Ruffle (experimental, pot no funcionar).",
+    "flash_security": "Tingues en compte que això pot ser potencialment perillós, ja que el contingut Flash encara és un codi arbitrari.",
+    "flash_fail": "No s'ha pogut carregar el contingut del flaix, consulta la consola per als detalls.",
+    "role": {
+      "moderator": "Moderador/a",
+      "admin": "Administrador/a"
+    },
+    "dismiss": "Descartar",
+    "peek": "Donar un cop d'ull"
   },
   "login": {
     "login": "Inicia sessió",
@@ -45,15 +55,20 @@
     "enter_recovery_code": "Posa un codi de recuperació",
     "authentication_code": "Codi d'autenticació",
     "hint": "Entra per participar a la conversa",
-    "description": "Entra amb OAuth"
+    "description": "Entra amb OAuth",
+    "heading": {
+      "totp": "Autenticació de dos factors",
+      "recovery": "Recuperació de dos factors"
+    },
+    "enter_two_factor_code": "Introdueix un codi de dos factors"
   },
   "nav": {
     "chat": "Xat local públic",
-    "friend_requests": "Soŀlicituds de connexió",
+    "friend_requests": "Sol·licituds de seguiment",
     "mentions": "Mencions",
-    "public_tl": "Flux públic del node",
+    "public_tl": "Línia temporal pública",
     "timeline": "Flux personal",
-    "twkn": "Flux de la xarxa coneguda",
+    "twkn": "Xarxa coneguda",
     "chats": "Xats",
     "timelines": "Línies de temps",
     "preferences": "Preferències",
@@ -62,19 +77,25 @@
     "dms": "Missatges directes",
     "interactions": "Interaccions",
     "back": "Enrere",
-    "administration": "Administració"
+    "administration": "Administració",
+    "about": "Quant a",
+    "bookmarks": "Marcadors",
+    "user_search": "Cerca d'usuaris",
+    "home_timeline": "Línea temporal personal"
   },
   "notifications": {
-    "broken_favorite": "No es coneix aquest estat. S'està cercant.",
+    "broken_favorite": "Publicació desconeguda, s'està cercant…",
     "favorited_you": "ha marcat un estat teu",
     "followed_you": "ha començat a seguir-te",
     "load_older": "Carrega més notificacions",
     "notifications": "Notificacions",
-    "read": "Read!",
+    "read": "Llegit!",
     "repeated_you": "ha repetit el teu estat",
     "migrated_to": "migrat a",
     "no_more_notifications": "No més notificacions",
-    "follow_request": "et vol seguir"
+    "follow_request": "et vol seguir",
+    "reacted_with": "ha reaccionat amb {0}",
+    "error": "Error obtenint notificacions: {0}"
   },
   "post_status": {
     "account_not_locked_warning": "El teu compte no està {0}. Qualsevol persona pot seguir-te per llegir les teves entrades reservades només a seguidores.",
@@ -83,24 +104,33 @@
     "content_type": {
       "text/plain": "Text pla",
       "text/markdown": "Markdown",
-      "text/html": "HTML"
+      "text/html": "HTML",
+      "text/bbcode": "BBCode"
     },
     "content_warning": "Assumpte (opcional)",
-    "default": "Em sento…",
+    "default": "Acabe d'aterrar a L.A.",
     "direct_warning": "Aquesta entrada només serà visible per les usuràries que etiquetis",
     "posting": "Publicació",
     "scope": {
-      "direct": "Directa - Publica només per les usuàries etiquetades",
-      "private": "Només seguidors/es - Publica només per comptes que et segueixin",
-      "public": "Pública - Publica als fluxos públics",
-      "unlisted": "Silenciosa - No la mostris en fluxos públics"
+      "direct": "Directa - publica només per als usuaris etiquetats",
+      "private": "Només seguidors/es - publica només per comptes que et segueixin",
+      "public": "Pública - publica als fluxos públics",
+      "unlisted": "Silenciosa - no la mostris en fluxos públics"
     },
     "scope_notice": {
       "private": "Aquesta entrada serà visible només per a qui et segueixi",
-      "public": "Aquesta entrada serà visible per a tothom"
+      "public": "Aquesta entrada serà visible per a tothom",
+      "unlisted": "Aquesta entrada no es veurà ni a la Línia de temps local ni a la Línia de temps federada"
     },
     "preview_empty": "Buida",
-    "preview": "Vista prèvia"
+    "preview": "Vista prèvia",
+    "direct_warning_to_first_only": "Aquesta publicació només serà visible per als usuaris mencionats al principi del missatge.",
+    "empty_status_error": "No es pot publicar un estat buit sense fitxers adjunts",
+    "media_description": "Descripció multimèdia",
+    "direct_warning_to_all": "Aquesta publicació serà visible per a tots els usuaris mencionats.",
+    "new_status": "Publicar un nou estat",
+    "post": "Publicació",
+    "media_description_error": "Ha fallat la pujada del contingut. Prova de nou"
   },
   "registration": {
     "bio": "Presentació",
@@ -118,13 +148,19 @@
       "username_required": "no es pot deixar en blanc"
     },
     "fullname_placeholder": "p. ex. Lain Iwakura",
-    "username_placeholder": "p. ex. lain"
+    "username_placeholder": "p. ex. lain",
+    "captcha": "CAPTCHA",
+    "register": "Registrar-se",
+    "reason": "Raó per a registrar-se",
+    "bio_placeholder": "p.e.\nHola, sóc la Lain.\nSóc una noia anime que viu a un suburbi de Japó. Potser em coneixes per Wired.",
+    "reason_placeholder": "Aquesta instància aprova els registres manualment.\nExplica a l'administració per què vols registrar-te.",
+    "new_captcha": "Clica a la imatge per obtenir un nou captcha"
   },
   "settings": {
     "attachmentRadius": "Adjunts",
     "attachments": "Adjunts",
     "avatar": "Avatar",
-    "avatarAltRadius": "Avatars en les notificacions",
+    "avatarAltRadius": "Avatars (notificacions)",
     "avatarRadius": "Avatars",
     "background": "Fons de pantalla",
     "bio": "Presentació",
@@ -134,8 +170,8 @@
     "cOrange": "Taronja (marca com a preferit)",
     "cRed": "Vermell (canceŀla)",
     "change_password": "Canvia la contrasenya",
-    "change_password_error": "No s'ha pogut canviar la contrasenya",
-    "changed_password": "S'ha canviat la contrasenya",
+    "change_password_error": "No s'ha pogut canviar la contrasenya.",
+    "changed_password": "S'ha canviat la contrasenya correctament!",
     "collapse_subject": "Replega les entrades amb títol",
     "confirm_new_password": "Confirma la nova contrasenya",
     "current_avatar": "L'avatar actual",
@@ -176,7 +212,7 @@
     "new_password": "Contrasenya nova",
     "notification_visibility": "Notifica'm quan algú",
     "notification_visibility_follows": "Comença a seguir-me",
-    "notification_visibility_likes": "Marca com a preferida una entrada meva",
+    "notification_visibility_likes": "Favorits",
     "notification_visibility_mentions": "Em menciona",
     "notification_visibility_repeats": "Republica una entrada meva",
     "no_rich_text_description": "Neteja el formatat de text de totes les entrades",
@@ -193,7 +229,7 @@
     "profile_banner": "Fons de perfil",
     "profile_tab": "Perfil",
     "radii_help": "Configura l'arrodoniment de les vores (en píxels)",
-    "replies_in_timeline": "Replies in timeline",
+    "replies_in_timeline": "Respostes al flux",
     "reply_visibility_all": "Mostra totes les respostes",
     "reply_visibility_following": "Mostra només les respostes a entrades meves o d'usuàries que jo segueixo",
     "reply_visibility_self": "Mostra només les respostes a entrades meves",
@@ -216,7 +252,7 @@
       "true": "sí"
     },
     "show_moderator_badge": "Mostra una insígnia de Moderació en el meu perfil",
-    "show_admin_badge": "Mostra una insígnia d'Administració en el meu perfil",
+    "show_admin_badge": "Mostra una insígnia \"d'Administració\" en el meu perfil",
     "hide_followers_description": "No mostris qui m'està seguint",
     "hide_follows_description": "No mostris a qui segueixo",
     "notification_visibility_emoji_reactions": "Reaccions",
@@ -254,25 +290,257 @@
     "allow_following_move": "Permet el seguiment automàtic quan un compte a qui seguim es mou",
     "mfa": {
       "scan": {
-        "secret_code": "Clau"
+        "secret_code": "Clau",
+        "title": "Escanejar",
+        "desc": "S'està usant l'aplicació two-factor, escaneja aquest codi QR o introdueix la clau de text:"
       },
       "authentication_methods": "Mètodes d'autenticació",
       "waiting_a_recovery_codes": "Rebent còpies de seguretat dels codis…",
       "recovery_codes": "Codis de recuperació.",
       "warning_of_generate_new_codes": "Quan generes nous codis de recuperació, els antics ja no funcionaran més.",
-      "generate_new_recovery_codes": "Genera nous codis de recuperació"
+      "generate_new_recovery_codes": "Genera nous codis de recuperació",
+      "otp": "OTP",
+      "confirm_and_enable": "Confirmar i habilitar OTP",
+      "recovery_codes_warning": "Anote els codis o guarda'ls en un lloc segur, o no els veuràs una altra volta. Si perds l'accés a la teua aplicació 2FA i els codis de recuperació, no podràs accedir al compte.",
+      "title": "Autenticació de dos factors",
+      "setup_otp": "Configurar OTP",
+      "wait_pre_setup_otp": "preconfiguració OTP",
+      "verify": {
+        "desc": "Per habilitar l'autenticació two-factor, introdueix el codi des de la teva aplicació two-factor:"
+      }
     },
     "enter_current_password_to_confirm": "Posar la contrasenya actual per confirmar la teva identitat",
     "security": "Seguretat",
-    "app_name": "Nom de l'aplicació"
+    "app_name": "Nom de l'aplicació",
+    "subject_line_mastodon": "Com a mastodon: copiar com és",
+    "mute_export_button": "Exportar silenciats a un fitxer csv",
+    "mute_import_error": "Error al importar silenciats",
+    "mutes_imported": "Silenciats importats! Processar-los portarà una estona.",
+    "import_mutes_from_a_csv_file": "Importar silenciats des d'un fitxer csv",
+    "word_filter": "Filtre de paraules",
+    "hide_media_previews": "Ocultar les vistes prèvies multimèdia",
+    "hide_filtered_statuses": "Amagar estats filtrats",
+    "play_videos_in_modal": "Reproduir vídeos en un marc emergent",
+    "file_export_import": {
+      "errors": {
+        "invalid_file": "El fitxer seleccionat no és vàlid com a còpia de seguretat de la configuració. No s'ha realitzat cap canvi."
+      },
+      "backup_settings": "Còpia de seguretat de la configuració a un fitxer",
+      "backup_settings_theme": "Còpia de seguretat de la configuració i tema a un fitxer",
+      "restore_settings": "Restaurar configuració des d'un fitxer",
+      "backup_restore": "Còpia de seguretat de la configuració"
+    },
+    "user_mutes": "Usuaris",
+    "subject_line_email": "Com a l'email: \"re: tema\"",
+    "search_user_to_block": "Busca a qui vols bloquejar",
+    "save": "Guardar els canvis",
+    "use_contain_fit": "No retallar els adjunts en miniatures",
+    "reset_profile_background": "Restablir fons del perfil",
+    "reset_profile_banner": "Restablir banner del perfil",
+    "emoji_reactions_on_timeline": "Mostrar reaccions emoji al flux",
+    "max_thumbnails": "Quantitat màxima de miniatures per publicació",
+    "hide_user_stats": "Amagar les estadístiques de l'usuari (p. ex. el nombre de seguidors)",
+    "reset_banner_confirm": "Realment vols restablir el banner?",
+    "reset_background_confirm": "Realment vols restablir el fons del perfil?",
+    "subject_input_always_show": "Sempre mostrar el camp del tema",
+    "subject_line_noop": "No copiar",
+    "subject_line_behavior": "Copiar el tema a les respostes",
+    "search_user_to_mute": "Busca a qui vols silenciar",
+    "mute_export": "Exportar silenciats",
+    "scope_copy": "Copiar visibilitat quan contestes (En els missatges directes sempre es copia)",
+    "reset_avatar": "Restablir avatar",
+    "right_sidebar": "Mostrar barra lateral a la dreta",
+    "no_blocks": "No hi han bloquejats",
+    "no_mutes": "No hi han silenciats",
+    "hide_follows_count_description": "No mostrar el nombre de comptes que segueixo",
+    "mute_import": "Importar silenciats",
+    "hide_all_muted_posts": "Ocultar publicacions silenciades",
+    "hide_wallpaper": "Amagar el fons de la instància",
+    "notification_visibility_moves": "Usuari Migrat",
+    "reply_visibility_following_short": "Mostrar respostes als meus seguidors",
+    "reply_visibility_self_short": "Mostrar respostes només a un mateix",
+    "autohide_floating_post_button": "Ocultar automàticament el botó 'Nova Publicació' (mòbil)",
+    "minimal_scopes_mode": "Minimitzar les opcions de visibilitat de la publicació",
+    "sensitive_by_default": "Marcar publicacions com a sensibles per defecte",
+    "useStreamingApi": "Rebre publicacions i notificacions en temps real",
+    "hide_isp": "Ocultar el panell especific de la instància",
+    "preload_images": "Precarregar les imatges",
+    "setting_changed": "La configuració és diferent a la predeterminada",
+    "hide_followers_count_description": "No mostrar el nombre de seguidors",
+    "reset_avatar_confirm": "Realment vols restablir l'avatar?",
+    "accent": "Accent",
+    "useStreamingApiWarning": "(No recomanat, experimental, pot ometre publicacions)",
+    "style": {
+      "fonts": {
+        "family": "Nom de la font",
+        "size": "Mida (en píxels)",
+        "custom": "Personalitza",
+        "_tab_label": "Fonts",
+        "help": "Selecciona la font per als elements de la interfície. Per a \"personalitzat\" deus escriure el nom de la font exactament com apareix al sistema.",
+        "components": {
+          "post": "Text de les publicacions",
+          "postCode": "Text monoespai en publicació (text enriquit)",
+          "input": "Camps d'entrada",
+          "interface": "Interfície"
+        }
+      },
+      "preview": {
+        "input": "Acabo d'aterrar a Los Angeles.",
+        "button": "Botó",
+        "mono": "contingut",
+        "content": "Contingut",
+        "header": "Previsualització",
+        "header_faint": "Això està bé",
+        "error": "Exemple d'error",
+        "faint_link": "Manual d'ajuda",
+        "checkbox": "He llegit els termes i condicions",
+        "link": "un bonic enllaç"
+      },
+      "shadows": {
+        "spread": "Difon",
+        "filter_hint": {
+          "drop_shadow_syntax": "{0} no suporta el paràmetre {1} i la paraula clau {2}.",
+          "avatar_inset": "Tingues en compte que combinar ombres interiors i no interiors als avatars podria donar resultats inesperats amb avatars transparents.",
+          "inset_classic": "Les ombres interiors estaran usant {0}",
+          "always_drop_shadow": "Advertència, aquesta ombra sempre utilitza {0} quan el navegador ho suporta.",
+          "spread_zero": "Ombres amb propagació > 0 apareixeran com si estigueren posades a zero"
+        },
+        "components": {
+          "popup": "Texts i finestres emergents (popups & tooltips)",
+          "panel": "Panell",
+          "panelHeader": "Capçalera del panell",
+          "avatar": "Avatar de l'usuari (en vista de perfil)",
+          "input": "Camp d'entrada",
+          "buttonHover": "Botó (surant)",
+          "buttonPressed": "Botó (pressionat)",
+          "topBar": "Barra superior",
+          "buttonPressedHover": "Botó (surant i pressionat)",
+          "avatarStatus": "Avatar de l'usuari (en vista de publicació)",
+          "button": "Botó"
+        },
+        "hintV3": "per a les ombres també pots usar la notació {0} per a utilitzar un altre espai de color.",
+        "blur": "Difuminat",
+        "component": "Component",
+        "override": "Sobreescriure",
+        "shadow_id": "Ombra #{value}",
+        "_tab_label": "Ombra i il·luminació",
+        "inset": "Ombra interior"
+      },
+      "switcher": {
+        "use_snapshot": "Versió antiga",
+        "help": {
+          "future_version_imported": "El fitxer importat es va crear per a una versió del front-end més recent.",
+          "migration_snapshot_ok": "Per a estar segurs, s'ha carregat la instantània del tema. Pots intentar carregar les dades del tema.",
+          "migration_napshot_gone": "Per alguna raó, faltava la instantània, algunes coses podrien veure's diferents del que recordes.",
+          "snapshot_source_mismatch": "Conflicte de versions: probablement el front-end s'ha revertit i actualitzat una altra volta, si has canviat el tema en una versió anterior, segurament vols utilitzar la versió antiga; d'altra banda utilitza la nova versió.",
+          "v2_imported": "El fitxer que has importat va ser creat per a un front-end més antic. Intentem maximitzar la compatibilitat, però podrien haver inconsistències.",
+          "fe_upgraded": "El motor de temes de PleromaFE es va actualitzar després de l'actualització de la versió.",
+          "snapshot_missing": "No hi havia cap instantània del tema al fitxer, per tant podria veure's diferent del previst originalment.",
+          "upgraded_from_v2": "PleromaFE s'ha actualitzat, el tema pot veure's un poc diferent de com recordes.",
+          "fe_downgraded": "Versió de PleromaFE revertida.",
+          "older_version_imported": "El fitxer que has importat va ser creat en una versió del front-end més antiga."
+        },
+        "keep_as_is": "Mantindre com està",
+        "save_load_hint": "Les opcions \"Mantindre\" conserven les opcions configurades actualment al seleccionar o carregar temes, també emmagatzema aquestes opcions quan s'exporta un tema. Quan es desactiven totes les caselles de verificació, el tema exportat ho guardarà tot.",
+        "keep_color": "Mantindre colors",
+        "keep_opacity": "Mantindre opacitat",
+        "keep_shadows": "Mantindre ombres",
+        "keep_fonts": "Mantindre fonts",
+        "keep_roundness": "Mantindre rodoneses",
+        "clear_all": "Netejar tot",
+        "reset": "Reinciar",
+        "load_theme": "Carregar tema",
+        "use_source": "Nova versió",
+        "clear_opacity": "Netejar opacitat"
+      },
+      "common": {
+        "contrast": {
+          "hint": "El ràtio de contrast és {ratio}. {level} {context}",
+          "level": {
+            "bad": "no compleix amb cap pauta d'accecibilitat",
+            "aaa": "Compleix amb el nivell AA (recomanat)",
+            "aa": "Compleix amb el nivell AA (mínim)"
+          },
+          "context": {
+            "18pt": "per a textos grans (+18pt)",
+            "text": "per a textos"
+          }
+        },
+        "opacity": "Opacitat",
+        "color": "Color"
+      },
+      "advanced_colors": {
+        "badge": "Fons de insígnies",
+        "inputs": "Camps d'entrada",
+        "wallpaper": "Fons de pantalla",
+        "pressed": "Pressionat",
+        "chat": {
+          "outgoing": "Eixint",
+          "border": "Borde",
+          "incoming": "Entrants"
+        },
+        "borders": "Bordes",
+        "panel_header": "Capçalera del panell",
+        "buttons": "Botons",
+        "faint_text": "Text esvaït",
+        "poll": "Gràfica de l'enquesta",
+        "toggled": "Commutat",
+        "alert": "Fons d'alertes",
+        "alert_error": "Error",
+        "alert_warning": "Precaució",
+        "post": "Publicacions/Biografies d'usuaris",
+        "badge_notification": "Notificacions",
+        "selectedMenu": "Element del menú seleccionat",
+        "tabs": "Pestanyes",
+        "_tab_label": "Avançat",
+        "alert_neutral": "Neutral",
+        "popover": "Suggeriments, menús, superposicions",
+        "top_bar": "Barra superior",
+        "highlight": "Elements destacats",
+        "disabled": "Deshabilitat",
+        "icons": "Icones",
+        "selectedPost": "Publicació seleccionada",
+        "underlay": "Subratllat"
+      },
+      "common_colors": {
+        "main": "Colors comuns",
+        "rgbo": "Icones, accents, insígnies",
+        "foreground_hint": "mira la pestanya \"Avançat\" per a un control més detallat",
+        "_tab_label": "Comú"
+      },
+      "radii": {
+        "_tab_label": "Rodonesa"
+      }
+    },
+    "version": {
+      "frontend_version": "Versió \"Frontend\"",
+      "backend_version": "Versió \"backend\"",
+      "title": "Versió"
+    },
+    "theme_help_v2_1": "També pots anular alguns components de color i opacitat activant la casella. Usa el botó \"Esborrar tot\" per esborrar totes les anulacions.",
+    "type_domains_to_mute": "Buscar dominis per a silenciar",
+    "greentext": "Text verd (meme arrows)",
+    "fun": "Divertit",
+    "notification_setting_filters": "Filtres",
+    "virtual_scrolling": "Optimitzar la representació del flux",
+    "notification_setting_block_from_strangers": "Bloqueja les notificacions dels usuaris que no segueixes",
+    "enable_web_push_notifications": "Habilitar notificacions del navegador",
+    "notification_blocks": "Bloquejar a un usuari para totes les notificacions i també les cancel·la.",
+    "more_settings": "Més opcions",
+    "notification_setting_privacy": "Privacitat",
+    "upload_a_photo": "Pujar una foto",
+    "notification_setting_hide_notification_contents": "Amagar el remitent i els continguts de les notificacions push",
+    "notifications": "Notificacions",
+    "notification_mutes": "Per a deixar de rebre notificacions d'un usuari en concret, silencia'l-ho.",
+    "theme_help_v2_2": "Les icones per baix d'algunes entrades són indicadors del contrast del fons/text, desplaça el ratolí per a més informació. Tingues en compte que quan s'utilitzen indicadors de contrast de transparència es mostra el pitjor cas possible."
   },
   "time": {
     "day": "{0} dia",
     "days": "{0} dies",
     "day_short": "{0} dia",
     "days_short": "{0} dies",
-    "hour": "{0} hour",
-    "hours": "{0} hours",
+    "hour": "{0} hora",
+    "hours": "{0} hores",
     "hour_short": "{0}h",
     "hours_short": "{0}h",
     "in_future": "in {0}",
@@ -287,12 +555,12 @@
     "months_short": "{0} mesos",
     "now": "ara mateix",
     "now_short": "ara mateix",
-    "second": "{0} second",
-    "seconds": "{0} seconds",
+    "second": "{0} segon",
+    "seconds": "{0} segons",
     "second_short": "{0}s",
     "seconds_short": "{0}s",
-    "week": "{0} setm.",
-    "weeks": "{0} setm.",
+    "week": "{0} setmana",
+    "weeks": "{0} setmanes",
     "week_short": "{0} setm.",
     "weeks_short": "{0} setm.",
     "year": "{0} any",
@@ -308,7 +576,13 @@
     "no_retweet_hint": "L'entrada és només per a seguidores o és \"directa\", i per tant no es pot republicar",
     "repeated": "republicat",
     "show_new": "Mostra els nous",
-    "up_to_date": "Actualitzat"
+    "up_to_date": "Actualitzat",
+    "socket_reconnected": "Connexió a temps real establerta",
+    "socket_broke": "Connexió a temps real perduda: codi CloseEvent {0}",
+    "error": "Error de càrrega de la línia de temps: {0}",
+    "no_statuses": "No hi ha entrades",
+    "reload": "Recarrega",
+    "no_more_statuses": "No hi ha més entrades"
   },
   "user_card": {
     "approve": "Aprova",
@@ -324,13 +598,60 @@
     "muted": "Silenciat",
     "per_day": "per dia",
     "remote_follow": "Seguiment remot",
-    "statuses": "Estats"
+    "statuses": "Estats",
+    "unblock_progress": "Desbloquejant…",
+    "unmute": "Deixa de silenciar",
+    "follow_progress": "Sol·licitant…",
+    "admin_menu": {
+      "force_nsfw": "Marca totes les entrades amb \"No segur per a entorns laborals\"",
+      "strip_media": "Esborra els audiovisuals de les entrades",
+      "disable_any_subscription": "Deshabilita completament seguir algú",
+      "quarantine": "Deshabilita la federació a les entrades de les usuàries",
+      "moderation": "Moderació",
+      "delete_user_confirmation": "Estàs completament segur/a? Aquesta acció no es pot desfer.",
+      "revoke_admin": "Revoca l'Admin",
+      "activate_account": "Activa el compte",
+      "deactivate_account": "Desactiva el compte",
+      "revoke_moderator": "Revoca Moderació",
+      "delete_account": "Esborra el compte",
+      "disable_remote_subscription": "Deshabilita seguir algú des d'una instància remota",
+      "delete_user": "Esborra la usuària",
+      "grant_admin": "Concedir permisos d'Administració",
+      "grant_moderator": "Concedir permisos de Moderació"
+    },
+    "edit_profile": "Edita el perfil",
+    "follow_again": "Envia de nou la petició?",
+    "hidden": "Amagat",
+    "follow_sent": "Petició enviada!",
+    "unmute_progress": "Deixant de silenciar…",
+    "bot": "Bot",
+    "mute_progress": "Silenciant…",
+    "favorites": "Favorits",
+    "mention": "Menció",
+    "follow_unfollow": "Deixa de seguir",
+    "subscribe": "Subscriu-te",
+    "show_repeats": "Mostra les repeticions",
+    "report": "Report",
+    "its_you": "Ets tu!",
+    "unblock": "Desbloqueja",
+    "block_progress": "Bloquejant…",
+    "message": "Missatge",
+    "unsubscribe": "Anul·la la subscripció",
+    "hide_repeats": "Amaga les repeticions",
+    "highlight": {
+      "disabled": "Sense ressaltat",
+      "solid": "Fons sòlid",
+      "striped": "Fons a ratlles",
+      "side": "Ratlla lateral"
+    }
   },
   "user_profile": {
-    "timeline_title": "Flux personal"
+    "timeline_title": "Flux personal",
+    "profile_loading_error": "Disculpes, hi ha hagut un error carregant aquest perfil.",
+    "profile_does_not_exist": "Disculpes, aquest perfil no existeix."
   },
   "who_to_follow": {
-    "more": "More",
+    "more": "Més",
     "who_to_follow": "A qui seguir"
   },
   "selectable_list": {
@@ -342,10 +663,19 @@
   },
   "interactions": {
     "load_older": "Carrega antigues interaccions",
-    "favs_repeats": "Repeticions i favorits"
+    "favs_repeats": "Repeticions i favorits",
+    "follows": "Nous seguidors"
   },
   "emoji": {
-    "stickers": "Adhesius"
+    "stickers": "Adhesius",
+    "keep_open": "Mantindre el selector obert",
+    "custom": "Emojis personalitzats",
+    "unicode": "Emojis unicode",
+    "load_all_hint": "Carregat el primer emoji {saneAmount}, carregar tots els emoji pot causar problemes de rendiment.",
+    "emoji": "Emoji",
+    "search_emoji": "Buscar un emoji",
+    "add_emoji": "Inserir un emoji",
+    "load_all": "Carregant tots els {emojiAmount} emoji"
   },
   "polls": {
     "expired": "L'enquesta va acabar fa {0}",
@@ -357,7 +687,11 @@
     "votes": "vots",
     "option": "Opció",
     "add_option": "Afegeix opció",
-    "add_poll": "Afegeix enquesta"
+    "add_poll": "Afegeix enquesta",
+    "expiry": "Temps de vida de l'enquesta",
+    "people_voted_count": "{count} persona ha votat | {count} persones han votat",
+    "votes_count": "{count} vot | {count} vots",
+    "not_enough_options": "L'enquesta no té suficients opcions úniques"
   },
   "media_modal": {
     "next": "Següent",
@@ -365,7 +699,8 @@
   },
   "importer": {
     "error": "Ha succeït un error mentre s'importava aquest arxiu.",
-    "success": "Importat amb èxit."
+    "success": "Importat amb èxit.",
+    "submit": "Enviar"
   },
   "image_cropper": {
     "cancel": "Cancel·la",
@@ -379,7 +714,9 @@
   },
   "domain_mute_card": {
     "mute_progress": "Silenciant…",
-    "mute": "Silencia"
+    "mute": "Silencia",
+    "unmute": "Deixar de silenciar",
+    "unmute_progress": "Deixant de silenciar…"
   },
   "about": {
     "staff": "Equip responsable",
@@ -391,16 +728,132 @@
         "reject": "Rebutja",
         "accept_desc": "Aquesta instància només accepta missatges de les següents instàncies:",
         "accept": "Accepta",
-        "simple_policies": "Polítiques específiques de la instància"
+        "simple_policies": "Polítiques específiques de la instància",
+        "ftl_removal_desc": "Aquesta instància elimina les següents instàncies del flux de la xarxa coneguda:",
+        "ftl_removal": "Eliminació de la línia de temps coneguda",
+        "media_nsfw_desc": "Aquesta instància obliga el contingut multimèdia a establir-se com a sensible dins de les publicacions en les següents instàncies:",
+        "media_removal": "Eliminació de la multimèdia",
+        "media_removal_desc": "Aquesta instància elimina els suports multimèdia de les publicacions en les següents instàncies:",
+        "media_nsfw": "Forçar contingut multimèdia com a sensible"
       },
       "mrf_policies_desc": "Les polítiques MRF controlen el comportament federat de la instància. Les següents polítiques estan habilitades:",
       "mrf_policies": "Polítiques MRF habilitades",
       "keyword": {
         "replace": "Reemplaça",
         "reject": "Rebutja",
-        "keyword_policies": "Polítiques de paraules clau"
+        "keyword_policies": "Filtratge per paraules clau",
+        "is_replaced_by": "→",
+        "ftl_removal": "Eliminació de la línia de temps federada"
       },
       "federation": "Federació"
     }
+  },
+  "shoutbox": {
+    "title": "Gàbia de Grills"
+  },
+  "status": {
+    "delete": "Esborra l'entrada",
+    "delete_confirm": "Segur que vols esborrar aquesta entrada?",
+    "thread_muted_and_words": ", té les paraules:",
+    "show_full_subject": "Mostra tot el tema",
+    "show_content": "Mostra el contingut",
+    "repeats": "Repeticions",
+    "bookmark": "Marcadors",
+    "status_unavailable": "Entrada no disponible",
+    "expand": "Expandeix",
+    "copy_link": "Copia l'enllaç a l'entrada",
+    "hide_full_subject": "Amaga tot el tema",
+    "favorites": "Favorits",
+    "replies_list": "Contestacions:",
+    "mute_conversation": "Silencia la conversa",
+    "thread_muted": "Fil silenciat",
+    "hide_content": "Amaga el contingut",
+    "status_deleted": "S'ha esborrat aquesta entrada",
+    "nsfw": "No segur per a entorns laborals",
+    "unbookmark": "Desmarca",
+    "external_source": "Font externa",
+    "unpin": "Deixa de destacar al perfil",
+    "pinned": "Destacat",
+    "reply_to": "Contesta a",
+    "pin": "Destaca al perfil",
+    "unmute_conversation": "Deixa de silenciar la conversa"
+  },
+  "user_reporting": {
+    "additional_comments": "Comentaris addicionals",
+    "forward_description": "Aquest compte és d'un altre servidor. Vols enviar una còpia del report allà també?",
+    "forward_to": "Endavant a {0}",
+    "generic_error": "Hi ha hagut un error mentre s'estava processant la teva sol·licitud.",
+    "title": "Reportant {0}",
+    "add_comment_description": "Aquest report serà enviat a la moderació a la instància. Pots donar una explicació de per què estàs reportant aquest compte:",
+    "submit": "Envia"
+  },
+  "tool_tip": {
+    "add_reaction": "Afegeix una Reacció",
+    "accept_follow_request": "Accepta la sol·licitud de seguir",
+    "repeat": "Repeteix",
+    "reply": "Respon",
+    "favorite": "Favorit",
+    "user_settings": "Configuració d'usuària",
+    "reject_follow_request": "Rebutja la sol·licitud de seguir",
+    "bookmark": "Marcador",
+    "media_upload": "Pujar multimèdia"
+  },
+  "search": {
+    "no_results": "No hi ha resultats",
+    "people": "Persones",
+    "hashtags": "Etiquetes",
+    "people_talking": "{count} persones parlant"
+  },
+  "upload": {
+    "file_size_units": {
+      "B": "B",
+      "KiB": "KiB",
+      "GiB": "GiB",
+      "TiB": "TiB",
+      "MiB": "MiB"
+    },
+    "error": {
+      "base": "La pujada ha fallat.",
+      "file_too_big": "Fitxer massa gran [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
+      "default": "Prova de nou d'aquí una estona",
+      "message": "La pujada ha fallat: {0}"
+    }
+  },
+  "errors": {
+    "storage_unavailable": "Pleroma no ha pogut accedir a l'emmagatzematge del navegador. El teu inici de sessió o configuració no es desaran i et pots trobar algun altre problema. Prova a habilitar les galetes."
+  },
+  "password_reset": {
+    "password_reset": "Reinicia la contrasenya",
+    "forgot_password": "Has oblidat la contrasenya?",
+    "too_many_requests": "Has arribat al límit d'intents. Prova de nou d'aquí una estona.",
+    "password_reset_required_but_mailer_is_disabled": "Has de reiniciar la teva contrasenya però el reinici de la contrasenya està deshabilitat. Si us plau, contacta l'administració de la teva instància.",
+    "placeholder": "El teu correu electrònic o nom d'usuària",
+    "instruction": "Introdueix la teva adreça de correu electrònic o nom d'usuària. T'enviarem un enllaç per reiniciar la teva contrasenya.",
+    "return_home": "Torna a la pàgina principal",
+    "password_reset_required": "Has de reiniciar la teva contrasenya per iniciar la sessió.",
+    "password_reset_disabled": "El reinici de la contrasenya està deshabilitat. Si us plau, contacta l'administració de la teva instància.",
+    "check_email": "Comprova que has rebut al correu electrònic un enllaç per reiniciar la teva contrasenya."
+  },
+  "file_type": {
+    "image": "Imatge",
+    "file": "Fitxer",
+    "video": "Vídeo",
+    "audio": "Àudio"
+  },
+  "chats": {
+    "chats": "Xats",
+    "new": "Nou xat",
+    "delete_confirm": "Realment vols esborrar aquest missatge?",
+    "error_sending_message": "Alguna cosa ha fallat quan s'enviava el missatge.",
+    "more": "Més",
+    "delete": "Esborra",
+    "empty_message_error": "No es pot publicar un missatge buit",
+    "you": "Tu:",
+    "message_user": "Missatge {nickname}",
+    "error_loading_chat": "Alguna cosa ha fallat quan es carregava el xat.",
+    "empty_chat_list_placeholder": "Encara no tens cap xat. Crea un nou xat!"
+  },
+  "display_date": {
+    "today": "Avui"
   }
 }
diff --git a/src/i18n/de.json b/src/i18n/de.json
index 6655479b..7439f494 100644
--- a/src/i18n/de.json
+++ b/src/i18n/de.json
@@ -9,7 +9,7 @@
     "scope_options": "Reichweitenoptionen",
     "text_limit": "Zeichenlimit",
     "title": "Funktionen",
-    "who_to_follow": "Wem folgen?",
+    "who_to_follow": "Vorschläge",
     "upload_limit": "Maximale Upload Größe",
     "pleroma_chat_messages": "Pleroma Chat"
   },
@@ -39,7 +39,10 @@
     "close": "Schliessen",
     "retry": "Versuche es erneut",
     "error_retry": "Bitte versuche es erneut",
-    "loading": "Lade…"
+    "loading": "Lade…",
+    "flash_content": "Klicken, um den Flash-Inhalt mit Ruffle anzuzeigen (Die Funktion ist experimentell und funktioniert daher möglicherweise nicht).",
+    "flash_security": "Diese Funktion stellt möglicherweise eine Risiko dar, weil Flash-Inhalte weiterhin potentiell gefährlich sind.",
+    "flash_fail": "Falsh-Inhalt konnte nicht geladen werden, Details werden in der Konsole angezeigt."
   },
   "login": {
     "login": "Anmelden",
@@ -538,7 +541,9 @@
     "reset_background_confirm": "Hintergrund wirklich zurücksetzen?",
     "reset_banner_confirm": "Banner wirklich zurücksetzen?",
     "reset_avatar_confirm": "Avatar wirklich zurücksetzen?",
-    "reset_profile_banner": "Profilbanner zurücksetzen"
+    "reset_profile_banner": "Profilbanner zurücksetzen",
+    "hide_shoutbox": "Shoutbox der Instanz verbergen",
+    "right_sidebar": "Seitenleiste rechts anzeigen"
   },
   "timeline": {
     "collapse": "Einklappen",
@@ -779,7 +784,7 @@
     "error_sending_message": "Beim Senden der Nachricht ist ein Fehler aufgetreten.",
     "error_loading_chat": "Beim Laden des Chats ist ein Fehler aufgetreten.",
     "delete_confirm": "Soll diese Nachricht wirklich gelöscht werden?",
-    "empty_message_error": "Die Nachricht darf nicht leer sein.",
+    "empty_message_error": "Die Nachricht darf nicht leer sein",
     "delete": "Löschen",
     "message_user": "Nachricht an {nickname} senden",
     "empty_chat_list_placeholder": "Es sind noch keine Chats vorhanden. Jetzt einen Chat starten!",
diff --git a/src/i18n/eo.json b/src/i18n/eo.json
index 0d24a8f8..16a904b7 100644
--- a/src/i18n/eo.json
+++ b/src/i18n/eo.json
@@ -39,7 +39,10 @@
     "role": {
       "moderator": "Reguligisto",
       "admin": "Administranto"
-    }
+    },
+    "flash_content": "Klaku por montri enhavon de Flash per Ruffle. (Eksperimente, eble ne funkcios.)",
+    "flash_security": "Sciu, ke tio povas esti danĝera, ĉar la enhavo de Flash ja estas arbitra programo.",
+    "flash_fail": "Malsukcesis enlegi enhavon de Flash; vidu detalojn en konzolo."
   },
   "image_cropper": {
     "crop_picture": "Tondi bildon",
@@ -87,7 +90,8 @@
     "interactions": "Interagoj",
     "administration": "Administrado",
     "bookmarks": "Legosignoj",
-    "timelines": "Historioj"
+    "timelines": "Historioj",
+    "home_timeline": "Hejma historio"
   },
   "notifications": {
     "broken_favorite": "Nekonata stato, serĉante ĝin…",
@@ -119,10 +123,10 @@
     "direct_warning": "Ĉi tiu afiŝo estos videbla nur por ĉiuj menciitaj uzantoj.",
     "posting": "Afiŝante",
     "scope": {
-      "direct": "Rekta – Afiŝi nur al menciitaj uzantoj",
-      "private": "Nur abonantoj – Afiŝi nur al abonantoj",
-      "public": "Publika – Afiŝi al publikaj historioj",
-      "unlisted": "Nelistigita – Ne afiŝi al publikaj historioj"
+      "direct": "Rekta – afiŝi nur al menciitaj uzantoj",
+      "private": "Nur abonantoj – afiŝi nur al abonantoj",
+      "public": "Publika – afiŝi al publikaj historioj",
+      "unlisted": "Nelistigita – ne afiŝi al publikaj historioj"
     },
     "scope_notice": {
       "unlisted": "Ĉi tiu afiŝo ne estos videbla en la Publika historio kaj La tuta konata reto",
@@ -135,7 +139,8 @@
     "preview": "Antaŭrigardo",
     "direct_warning_to_first_only": "Ĉi tiu afiŝo estas nur videbla al uzantoj menciitaj je la komenco de la mesaĝo.",
     "direct_warning_to_all": "Ĉi tiu afiŝo estos videbla al ĉiuj menciitaj uzantoj.",
-    "media_description": "Priskribo de vidaŭdaĵo"
+    "media_description": "Priskribo de vidaŭdaĵo",
+    "post": "Afiŝo"
   },
   "registration": {
     "bio": "Priskribo",
@@ -143,7 +148,7 @@
     "fullname": "Prezenta nomo",
     "password_confirm": "Konfirmo de pasvorto",
     "registration": "Registriĝo",
-    "token": "Invita ĵetono",
+    "token": "Invita peco",
     "captcha": "TESTO DE HOMECO",
     "new_captcha": "Klaku la bildon por akiri novan teston",
     "username_placeholder": "ekz. lain",
@@ -158,7 +163,8 @@
       "password_confirmation_match": "samu la pasvorton"
     },
     "reason_placeholder": "Ĉi-node oni aprobas registriĝojn permane.\nSciigu la administrantojn kial vi volas registriĝi.",
-    "reason": "Kialo registriĝi"
+    "reason": "Kialo registriĝi",
+    "register": "Registriĝi"
   },
   "settings": {
     "app_name": "Nomo de aplikaĵo",
@@ -244,9 +250,9 @@
     "show_admin_badge": "Montri la insignon de administranto en mia profilo",
     "show_moderator_badge": "Montri la insignon de reguligisto en mia profilo",
     "nsfw_clickthrough": "Ŝalti traklakan kaŝadon de kunsendaĵoj kaj antaŭmontroj de ligiloj por konsternaj statoj",
-    "oauth_tokens": "Ĵetonoj de OAuth",
-    "token": "Ĵetono",
-    "refresh_token": "Ĵetono de aktualigo",
+    "oauth_tokens": "Pecoj de OAuth",
+    "token": "Peco",
+    "refresh_token": "Aktualiga peco",
     "valid_until": "Valida ĝis",
     "revoke_token": "Senvalidigi",
     "panelRadius": "Bretoj",
@@ -532,7 +538,22 @@
     "hide_all_muted_posts": "Kaŝi silentigitajn afiŝojn",
     "hide_media_previews": "Kaŝi antaŭrigardojn al vidaŭdaĵoj",
     "word_filter": "Vortofiltro",
-    "reply_visibility_self_short": "Montri nur respondojn por mi"
+    "reply_visibility_self_short": "Montri nur respondojn por mi",
+    "file_export_import": {
+      "errors": {
+        "file_slightly_new": "Etversio de dosiero malsamas, iuj agordoj eble ne funkcios",
+        "file_too_old": "Nekonforma ĉefa versio: {fileMajor}, versio de dosiero estas tro malnova kaj nesubtenata (minimuma estas {feMajor})",
+        "file_too_new": "Nekonforma ĉefa versio: {fileMajor}, ĉi tiu PleromaFE (agordoj je versio {feMajor}) tro malnovas por tio",
+        "invalid_file": "La elektita dosiero ne estas subtenata savkopio de agordoj de Pleroma. Nenio ŝanĝiĝis."
+      },
+      "restore_settings": "Rehavi agordojn el dosiero",
+      "backup_settings_theme": "Savkopii agordojn kaj haŭton al dosiero",
+      "backup_settings": "Savkopii agordojn al dosiero",
+      "backup_restore": "Savkopio de agordoj"
+    },
+    "right_sidebar": "Montri flankan breton dekstre",
+    "save": "Konservi ŝanĝojn",
+    "hide_shoutbox": "Kaŝi kriujon de nodo"
   },
   "timeline": {
     "collapse": "Maletendi",
@@ -546,7 +567,9 @@
     "no_more_statuses": "Neniuj pliaj statoj",
     "no_statuses": "Neniuj statoj",
     "reload": "Enlegi ree",
-    "error": "Eraris akirado de historio: {0}"
+    "error": "Eraris akirado de historio: {0}",
+    "socket_reconnected": "Realtempa konekto fariĝis",
+    "socket_broke": "Realtempa konekto perdiĝis: CloseEvent code {0}"
   },
   "user_card": {
     "approve": "Aprobi",
@@ -696,7 +719,7 @@
         "media_nsfw": "Devige marki vidaŭdaĵojn konsternaj",
         "media_removal_desc": "Ĉi tiu nodo forigas vidaŭdaĵojn de afiŝoj el la jenaj nodoj:",
         "media_removal": "Forigo de vidaŭdaĵoj",
-        "ftl_removal": "Forigo el la historio de «La tuta konata reto»",
+        "ftl_removal": "Forigo el la historio de «Konata reto»",
         "quarantine_desc": "Ĉi tiu nodo sendos nur publikajn afiŝojn al la jenaj nodoj:",
         "quarantine": "Kvaranteno",
         "reject_desc": "Ĉi tiu nodo ne akceptos mesaĝojn de la jenaj nodoj:",
@@ -704,7 +727,7 @@
         "accept_desc": "Ĉi tiu nodo nur akceptas mesaĝojn de la jenaj nodoj:",
         "accept": "Akcepti",
         "simple_policies": "Specialaj politikoj de la nodo",
-        "ftl_removal_desc": "Ĉi tiu nodo forigas la jenajn nodojn el la historio de «La tuta konata reto»:"
+        "ftl_removal_desc": "Ĉi tiu nodo forigas la jenajn nodojn el la historio de «Konata reto»:"
       },
       "mrf_policies": "Ŝaltis politikon de Mesaĝa ŝanĝilaro (MRF)",
       "keyword": {
diff --git a/src/i18n/es.json b/src/i18n/es.json
index b8a87ec7..0d343e8c 100644
--- a/src/i18n/es.json
+++ b/src/i18n/es.json
@@ -43,7 +43,10 @@
     "role": {
       "admin": "Administrador/a",
       "moderator": "Moderador/a"
-    }
+    },
+    "flash_content": "Haga clic para mostrar contenido Flash usando Ruffle (experimental, puede que no funcione).",
+    "flash_security": "Tenga en cuenta que esto puede ser potencialmente peligroso ya que el contenido Flash sigue siendo código arbitrario.",
+    "flash_fail": "No se pudo cargar el contenido flash, consulte la consola para obtener más detalles."
   },
   "image_cropper": {
     "crop_picture": "Recortar la foto",
@@ -147,7 +150,7 @@
     "favs_repeats": "Favoritos y repetidos",
     "follows": "Nuevos seguidores",
     "load_older": "Cargar interacciones más antiguas",
-    "moves": "Usuario Migrado"
+    "moves": "Usuario migrado"
   },
   "post_status": {
     "new_status": "Publicar un nuevo estado",
@@ -181,7 +184,7 @@
     "preview_empty": "Vacío",
     "preview": "Vista previa",
     "media_description": "Descripción multimedia",
-    "post": "Publicación"
+    "post": "Publicar"
   },
   "registration": {
     "bio": "Biografía",
@@ -585,13 +588,18 @@
     "save": "Guardar los cambios",
     "file_export_import": {
       "errors": {
-        "invalid_file": "El archivo seleccionado no es válido como copia de seguridad de Pleroma. No se han realizado cambios."
+        "invalid_file": "El archivo seleccionado no es válido como copia de seguridad de Pleroma. No se han realizado cambios.",
+        "file_too_new": "Versión principal incompatible: {fileMajor}, este \"FrontEnd\" de Pleroma (versión de configuración {feMajor}) es demasiado antiguo para manejarlo",
+        "file_too_old": "Versión principal incompatible: {fileMajor}, la versión del archivo es demasiado antigua y no es compatible (versión mínima {FeMajor})",
+        "file_slightly_new": "La versión secundaria del archivo es diferente, es posible que algunas configuraciones no se carguen"
       },
       "restore_settings": "Restaurar ajustes desde archivo",
-      "backup_settings_theme": "Copia de seguridad de la configuración y tema a archivo",
-      "backup_settings": "Copia de seguridad de la configuración a archivo",
+      "backup_settings_theme": "Descargar la copia de seguridad de la configuración y del tema",
+      "backup_settings": "Descargar la copia de seguridad de la configuración",
       "backup_restore": "Copia de seguridad de la configuración"
-    }
+    },
+    "hide_shoutbox": "Ocultar cuadro de diálogo de la instancia",
+    "right_sidebar": "Mostrar la barra lateral a la derecha"
   },
   "time": {
     "day": "{0} día",
@@ -735,7 +743,8 @@
       "solid": "Fondo sólido",
       "disabled": "Sin resaltado"
     },
-    "bot": "Bot"
+    "bot": "Bot",
+    "edit_profile": "Edita el perfil"
   },
   "user_profile": {
     "timeline_title": "Línea temporal del usuario",
diff --git a/src/i18n/eu.json b/src/i18n/eu.json
index e543fda0..55fb8d55 100644
--- a/src/i18n/eu.json
+++ b/src/i18n/eu.json
@@ -43,7 +43,10 @@
     "role": {
       "moderator": "Moderatzailea",
       "admin": "Administratzailea"
-    }
+    },
+    "flash_content": "Klik egin Flash edukia erakusteko Ruffle erabilita (esperimentala, baliteke ez ibiltzea).",
+    "flash_security": "Kontuan izan arriskutsua izan daitekeela, Flash edukia kode arbitrarioa baita.",
+    "flash_fail": "Ezin izan da Flash edukia kargatu. Ikusi kontsola xehetasunetarako."
   },
   "image_cropper": {
     "crop_picture": "Moztu argazkia",
@@ -96,7 +99,8 @@
     "preferences": "Hobespenak",
     "chats": "Txatak",
     "timelines": "Denbora-lerroak",
-    "bookmarks": "Laster-markak"
+    "bookmarks": "Laster-markak",
+    "home_timeline": "Denbora-lerro pertsonala"
   },
   "notifications": {
     "broken_favorite": "Egoera ezezaguna, bilatzen…",
@@ -136,7 +140,8 @@
     "add_emoji": "Emoji bat gehitu",
     "custom": "Ohiko emojiak",
     "unicode": "Unicode emojiak",
-    "load_all": "{emojiAmount} emoji guztiak kargatzen"
+    "load_all": "{emojiAmount} emoji guztiak kargatzen",
+    "load_all_hint": "Lehenengo {saneAmount} emojia kargatuta, emoji guztiak kargatzeak errendimendu arazoak sor ditzake."
   },
   "stickers": {
     "add_sticker": "Pegatina gehitu"
@@ -144,7 +149,8 @@
   "interactions": {
     "favs_repeats": "Errepikapen eta gogokoak",
     "follows": "Jarraitzaile berriak",
-    "load_older": "Kargatu elkarrekintza zaharragoak"
+    "load_older": "Kargatu elkarrekintza zaharragoak",
+    "moves": "Erabiltzailea migratuta"
   },
   "post_status": {
     "new_status": "Mezu berri bat idatzi",
@@ -172,14 +178,20 @@
       "private": "Jarraitzaileentzako bakarrik: bidali jarraitzaileentzat bakarrik",
       "public": "Publikoa: bistaratu denbora-lerro publikoetan",
       "unlisted": "Zerrendatu gabea: ez bidali denbora-lerro publikoetara"
-    }
+    },
+    "media_description_error": "Ezin izan da artxiboa eguneratu, saiatu berriro",
+    "preview": "Aurrebista",
+    "media_description": "Media deskribapena",
+    "preview_empty": "Hutsik",
+    "post": "Bidali",
+    "empty_status_error": "Ezin da argitaratu ezer idatzi gabe edo eranskinik gabe"
   },
   "registration": {
     "bio": "Biografia",
     "email": "E-posta",
     "fullname": "Erakutsi izena",
     "password_confirm": "Pasahitza berretsi",
-    "registration": "Izena ematea",
+    "registration": "Sortu kontua",
     "token": "Gonbidapen txartela",
     "captcha": "CAPTCHA",
     "new_captcha": "Klikatu irudia captcha berri bat lortzeko",
@@ -193,7 +205,10 @@
       "password_required": "Ezin da hutsik utzi",
       "password_confirmation_required": "Ezin da hutsik utzi",
       "password_confirmation_match": "Pasahitzaren berdina izan behar du"
-    }
+    },
+    "reason": "Kontua sortzeko arrazoia",
+    "reason_placeholder": "Instantzia honek kontu berriak eskuz onartzen ditu.\nJakinarazi administrazioari zergatik erregistratu nahi duzun.",
+    "register": "Erregistratu"
   },
   "selectable_list": {
     "select_all": "Hautatu denak"
@@ -480,7 +495,9 @@
       "title": "Bertsioa",
       "backend_version": "Backend bertsioa",
       "frontend_version": "Frontend bertsioa"
-    }
+    },
+    "save": "Aldaketak gorde",
+    "setting_changed": "Ezarpena lehenetsitakoaren desberdina da"
   },
   "time": {
     "day": "{0} egun",
@@ -691,5 +708,12 @@
   },
   "shoutbox": {
     "title": "Oihu-kutxa"
+  },
+  "errors": {
+    "storage_unavailable": "Pleromak ezin izan du nabigatzailearen biltegira sartu. Hasiera-saioa edo tokiko ezarpenak ez dira gordeko eta ustekabeko arazoak sor ditzake. Saiatu cookie-ak gaitzen."
+  },
+  "remote_user_resolver": {
+    "searching_for": "Bilatzen",
+    "error": "Ez da aurkitu."
   }
 }
diff --git a/src/i18n/fr.json b/src/i18n/fr.json
index e51657e4..41f54393 100644
--- a/src/i18n/fr.json
+++ b/src/i18n/fr.json
@@ -43,7 +43,10 @@
     "role": {
       "moderator": "Modo'",
       "admin": "Admin"
-    }
+    },
+    "flash_content": "Clique pour afficher le contenu Flash avec Ruffle (Expérimental, peut ne pas fonctionner).",
+    "flash_security": "Cela reste potentiellement dangereux, Flash restant du code arbitraire.",
+    "flash_fail": "Échec de chargement du contenu Flash, voir la console pour les détails."
   },
   "image_cropper": {
     "crop_picture": "Rogner l'image",
@@ -282,7 +285,7 @@
     "new_password": "Nouveau mot de passe",
     "notification_visibility": "Types de notifications à afficher",
     "notification_visibility_follows": "Suivis",
-    "notification_visibility_likes": "J'aime",
+    "notification_visibility_likes": "Favoris",
     "notification_visibility_mentions": "Mentionnés",
     "notification_visibility_repeats": "Partages",
     "no_rich_text_description": "Ne formatez pas le texte",
@@ -553,7 +556,21 @@
     "hide_wallpaper": "Cacher le fond d'écran",
     "hide_all_muted_posts": "Cacher les messages masqués",
     "word_filter": "Filtrage par mots",
-    "save": "Enregistrer les changements"
+    "save": "Enregistrer les changements",
+    "file_export_import": {
+      "backup_settings_theme": "Sauvegarder les paramètres et le thème dans un fichier",
+      "errors": {
+        "invalid_file": "Le fichier sélectionné n'est pas un format supporté pour les sauvegarde Pleroma. Aucun changement n'a été fait.",
+        "file_too_new": "Version majeure incompatible. {fileMajor}, ce PleromaFE ({feMajor}) est trop ancien",
+        "file_too_old": "Version majeure incompatible : {fileMajor}, la version du fichier est trop vielle et n'est plus supportée (vers. min. {feMajor})",
+        "file_slightly_new": "La version mineure du fichier est différente, quelques paramètres on pût ne pas chargés"
+      },
+      "backup_restore": "Sauvegarde des Paramètres",
+      "backup_settings": "Sauvegarder les paramètres dans un fichier",
+      "restore_settings": "Restaurer les paramètres depuis un fichier"
+    },
+    "hide_shoutbox": "Cacher la shoutbox de l'instance",
+    "right_sidebar": "Afficher le paneau latéral à droite"
   },
   "timeline": {
     "collapse": "Fermer",
@@ -663,7 +680,8 @@
       "side": "Coté rayé",
       "striped": "Fond rayé"
     },
-    "bot": "Robot"
+    "bot": "Robot",
+    "edit_profile": "Éditer le profil"
   },
   "user_profile": {
     "timeline_title": "Flux du compte",
diff --git a/src/i18n/id.json b/src/i18n/id.json
new file mode 100644
index 00000000..ae8428f6
--- /dev/null
+++ b/src/i18n/id.json
@@ -0,0 +1,567 @@
+{
+  "settings": {
+    "style": {
+      "preview": {
+        "link": "sebuah tautan yang kecil nan bagus",
+        "header": "Pratinjau",
+        "error": "Contoh kesalahan",
+        "button": "Tombol",
+        "input": "Baru saja mendarat di L.A.",
+        "faint_link": "manual berguna",
+        "fine_print": "Baca {0} kami untuk belajar sesuatu yang tak ada gunanya!",
+        "header_faint": "Ini baik-baik saja",
+        "checkbox": "Saya telah membaca sekilas syarat dan ketentuan"
+      },
+      "advanced_colors": {
+        "alert_neutral": "Neutral",
+        "alert_warning": "Peringatan",
+        "alert_error": "Kesalahan"
+      },
+      "common_colors": {
+        "main": "Warna umum",
+        "_tab_label": "Umum"
+      },
+      "common": {
+        "contrast": {
+          "context": {
+            "text": "untuk teks",
+            "18pt": "Untuk teks besar (18pt+)"
+          }
+        },
+        "color": "Warna"
+      },
+      "switcher": {
+        "help": {
+          "upgraded_from_v2": "PleromaFE telah diperbarui, tema dapat terlihat sedikit berbeda dari apa yang Anda ingat."
+        },
+        "use_source": "Versi baru",
+        "use_snapshot": "Versi lama",
+        "load_theme": "Muat tema"
+      },
+      "fonts": {
+        "_tab_label": "Font",
+        "components": {
+          "interface": "Antarmuka",
+          "post": "Teks postingan"
+        },
+        "family": "Nama font",
+        "size": "Ukuran (dalam px)",
+        "weight": "Berat (ketebalan)"
+      }
+    },
+    "notification_setting_privacy": "Privasi",
+    "notifications": "Notifikasi",
+    "values": {
+      "true": "ya",
+      "false": "tidak"
+    },
+    "user_settings": "Pengaturan Pengguna",
+    "upload_a_photo": "Unggah foto",
+    "theme": "Tema",
+    "text": "Teks",
+    "settings": "Pengaturan",
+    "security_tab": "Keamanan",
+    "saving_ok": "Pengaturan disimpan",
+    "profile_tab": "Profil",
+    "profile_background": "Latar belakang profil",
+    "token": "Token",
+    "oauth_tokens": "Token OAuth",
+    "show_moderator_badge": "Tampilkan lencana \"Moderator\" di profil saya",
+    "show_admin_badge": "Tampilkan lencana \"Admin\" di profil saya",
+    "new_password": "Kata sandi baru",
+    "new_email": "Surel baru",
+    "name_bio": "Nama & bio",
+    "name": "Nama",
+    "profile_fields": {
+      "value": "Isi",
+      "name": "Label",
+      "label": "Metadata profil"
+    },
+    "limited_availability": "Tidak tersedia di browser Anda",
+    "invalid_theme_imported": "Berkas yang dipilih bukan sebuah tema yang didukung Pleroma. Tidak ada perbuahan yang dibuat pada tema Anda.",
+    "interfaceLanguage": "Bahasa antarmuka",
+    "interface": "Antarmuka",
+    "instance_default_simple": "(bawaan)",
+    "instance_default": "(bawaan: {value})",
+    "general": "Umum",
+    "delete_account_error": "Ada masalah ketika menghapus akun Anda. Jika ini terus terjadi harap hubungi adminstrator instansi Anda.",
+    "delete_account_description": "Hapus data Anda secara permanen dan menonaktifkan akun Anda.",
+    "delete_account": "Hapus akun",
+    "data_import_export_tab": "Impor / ekspor data",
+    "current_password": "Kata sandi saat ini",
+    "confirm_new_password": "Konfirmasi kata sandi baru",
+    "version": {
+      "title": "Versi",
+      "backend_version": "Versi backend",
+      "frontend_version": "Versi frontend"
+    },
+    "security": "Keamanan",
+    "changed_password": "Kata sandi berhasil diubah!",
+    "change_password_error": "Ada masalah ketika mengubah kata sandi Anda.",
+    "change_password": "Ubah kata sandi",
+    "changed_email": "Surel berhasil diubah!",
+    "change_email_error": "Ada masalah ketika mengubah surel Anda.",
+    "change_email": "Ubah surel",
+    "cRed": "Merah (Batal)",
+    "cBlue": "Biru (Balas, ikuti)",
+    "btnRadius": "Tombol",
+    "bot": "Ini adalah akun bot",
+    "block_export": "Ekspor blokiran",
+    "bio": "Bio",
+    "background": "Latar belakang",
+    "avatarRadius": "Avatar",
+    "avatar": "Avatar",
+    "attachments": "Lampiran",
+    "mfa": {
+      "scan": {
+        "title": "Pindai"
+      },
+      "confirm_and_enable": "Konfirmasi & aktifkan OTP",
+      "setup_otp": "Siapkan OTP",
+      "otp": "OTP",
+      "recovery_codes_warning": "Tulis kode-kode nya atau simpan mereka di tempat yang aman - jika tidak Anda tidak akan melihat mereka lagi. Jika Anda tidak dapat mengakses aplikasi 2FA Anda dan kode pemulihan Anda hilang Anda tidak akan bisa mengakses akun Anda.",
+      "authentication_methods": "Metode otentikasi",
+      "recovery_codes": "Kode pemulihan.",
+      "warning_of_generate_new_codes": "Ketika Anda menghasilkan kode pemulihan baru, kode lama Anda berhenti bekerja.",
+      "generate_new_recovery_codes": "Hasilkan kode pemulihan baru",
+      "title": "Otentikasi Dua-faktor"
+    },
+    "app_name": "Nama aplikasi",
+    "save": "Simpan perubahan",
+    "valid_until": "Valid hingga",
+    "follow_import_error": "Terjadi kesalahan ketika mengimpor pengikut",
+    "emoji_reactions_on_timeline": "Tampilkan reaksi emoji pada linimasa",
+    "chatMessageRadius": "Pesan obrolan",
+    "cOrange": "Jingga (Favorit)",
+    "avatarAltRadius": "Avatar (notifikasi)",
+    "hide_shoutbox": "Sembunyikan kotak suara instansi",
+    "hide_followers_count_description": "Jangan tampilkan jumlah pengikut",
+    "hide_follows_count_description": "Jangan tampilkan jumlah mengikuti",
+    "hide_followers_description": "Jangan tampilkan siapa yang mengikuti saya",
+    "hide_follows_description": "Jangan tampilkan siapa yang saya ikuti",
+    "notification_visibility_emoji_reactions": "Reaksi",
+    "notification_visibility_follows": "Diikuti",
+    "notification_visibility_moves": "Pengguna Bermigrasi",
+    "notification_visibility_repeats": "Ulangan",
+    "notification_visibility_mentions": "Sebutan",
+    "notification_visibility_likes": "Favorit",
+    "notification_visibility": "Jenis notifikasi yang perlu ditampilkan",
+    "links": "Tautan",
+    "hide_user_stats": "Sembunyikan statistik pengguna (contoh. jumlah pengikut)",
+    "hide_post_stats": "Sembunyikan statistik postingan (contoh. jumlah favorit)",
+    "use_one_click_nsfw": "Buka lampiran NSFW hanya dengan satu klik",
+    "hide_wallpaper": "Sembunyikan latar belakang instansi",
+    "blocks_imported": "Blokiran diimpor! Pemrosesannya mungkin memakan sedikit waktu.",
+    "block_import_error": "Terjadi kesalahan ketika mengimpor blokiran",
+    "block_import": "Impor blokiran",
+    "block_export_button": "Ekspor blokiran Anda menjadi berkas csv",
+    "blocks_tab": "Blokiran",
+    "delete_account_instructions": "Ketik kata sandi Anda pada input di bawah untuk mengkonfirmasi penghapusan akun.",
+    "mutes_and_blocks": "Bisuan dan Blokiran",
+    "enter_current_password_to_confirm": "Masukkan kata sandi Anda saat ini untuk mengkonfirmasi identitas Anda",
+    "filtering": "Penyaringan",
+    "word_filter": "Penyaring kata",
+    "avatar_size_instruction": "Ukuran minimum gambar avatar yang disarankan adalah 150x150 piksel.",
+    "attachmentRadius": "Lampiran"
+  },
+  "about": {
+    "mrf": {
+      "keyword": {
+        "reject": "Tolak",
+        "is_replaced_by": "→"
+      },
+      "simple": {
+        "quarantine_desc": "Instansi ini hanya akan mengirim postingan publik ke instansi-instansi berikut:",
+        "quarantine": "Karantina",
+        "reject_desc": "Instansi ini tidak akan menerima pesan dari instansi-instansi berikut:",
+        "reject": "Tolak",
+        "accept_desc": "Instansi ini hanya menerima pesan dari instansi-instansi berikut:",
+        "accept": "Terima"
+      },
+      "federation": "Federasi"
+    },
+    "staff": "Staf"
+  },
+  "time": {
+    "day": "{0} hari",
+    "days": "{0} hari",
+    "day_short": "{0}h",
+    "days_short": "{0}h",
+    "hour": "{0} jam",
+    "hours": "{0} jam",
+    "hour_short": "{0}j",
+    "hours_short": "{0}j",
+    "in_future": "dalam {0}",
+    "in_past": "{0} yang lalu",
+    "minute": "{0} menit",
+    "minutes": "{0} menit",
+    "minute_short": "{0}m",
+    "minutes_short": "{0}m",
+    "month": "{0} bulan",
+    "months": "{0} bulan",
+    "month_short": "{0}b",
+    "months_short": "{0}b",
+    "now": "baru saja",
+    "now_short": "sekarang",
+    "second": "{0} detik",
+    "seconds": "{0} detik",
+    "second_short": "{0}d",
+    "seconds_short": "{0}d",
+    "week": "{0} pekan",
+    "weeks": "{0} pekan",
+    "week_short": "{0}p",
+    "weeks_short": "{0}p",
+    "year": "{0} tahun",
+    "years": "{0} tahun",
+    "year_short": "{0}t",
+    "years_short": "{0}t"
+  },
+  "timeline": {
+    "conversation": "Percakapan",
+    "error": "Terjadi kesalahan memuat linimasa: {0}",
+    "no_retweet_hint": "Postingan ditandai sebagai hanya-pengikut atau langsung dan tidak dapat diulang",
+    "repeated": "diulangi",
+    "reload": "Muat ulang",
+    "no_more_statuses": "Tidak ada status lagi",
+    "no_statuses": "Tidak ada status"
+  },
+  "status": {
+    "favorites": "Favorit",
+    "repeats": "Ulangan",
+    "delete": "Hapus status",
+    "pin": "Sematkan di profil",
+    "unpin": "Berhenti menyematkan dari profil",
+    "pinned": "Disematkan",
+    "delete_confirm": "Apakah Anda benar-benar ingin menghapus status ini?",
+    "reply_to": "Balas ke",
+    "replies_list": "Balasan:",
+    "mute_conversation": "Bisukan percakapan",
+    "unmute_conversation": "Berhenti membisikan percakapan",
+    "status_unavailable": "Status tidak tersedia",
+    "thread_muted_and_words": ", memiliki kata:",
+    "hide_content": "",
+    "show_content": "",
+    "status_deleted": "Postingan ini telah dihapus",
+    "nsfw": "NSFW"
+  },
+  "user_card": {
+    "block": "Blokir",
+    "blocked": "Diblokir!",
+    "deny": "Tolak",
+    "edit_profile": "Sunting profil",
+    "favorites": "Favorit",
+    "follow": "Ikuti",
+    "follow_sent": "Permintaan dikirim!",
+    "follow_progress": "Meminta…",
+    "mute": "Bisukan",
+    "muted": "Dibisukan",
+    "per_day": "per hari",
+    "report": "Laporkan",
+    "statuses": "Status",
+    "unblock": "Berhenti memblokir",
+    "block_progress": "Memblokir…",
+    "unmute": "Berhenti membisukan",
+    "mute_progress": "Membisukan…",
+    "hide_repeats": "Sembunyikan ulangan",
+    "show_repeats": "Tampilkan ulangan",
+    "bot": "Bot",
+    "admin_menu": {
+      "moderation": "Moderasi",
+      "activate_account": "Aktifkan akun",
+      "deactivate_account": "Nonaktifkan akun",
+      "delete_account": "Hapus akun",
+      "force_nsfw": "Tandai semua postingan sebagai NSFW",
+      "strip_media": "Hapus media dari postingan-postingan",
+      "delete_user": "Hapus pengguna",
+      "delete_user_confirmation": "Apakah Anda benar-benar yakin? Tindakan ini tidak dapat dibatalkan."
+    },
+    "follow_again": "Kirim permintaan lagi?",
+    "follow_unfollow": "Berhenti mengikuti",
+    "followees": "Mengikuti",
+    "followers": "Pengikut",
+    "following": "Diikuti!",
+    "follows_you": "Mengikuti Anda!",
+    "hidden": "Disembunyikan",
+    "its_you": "Ini Anda!",
+    "media": "Media",
+    "mention": "Sebut",
+    "message": "Kirimkan pesan"
+  },
+  "user_profile": {
+    "timeline_title": "Linimasa pengguna"
+  },
+  "user_reporting": {
+    "title": "Melaporkan {0}",
+    "add_comment_description": "Laporan ini akan dikirim ke moderator instansi Anda. Anda dapat menyediakan penjelasan mengapa Anda melaporkan akun ini di bawah:",
+    "additional_comments": "Komentar tambahan",
+    "forward_description": "Akun ini berada di server lain. Kirim salinan dari laporannya juga?",
+    "submit": "Kirim",
+    "generic_error": "Sebuah kesalahan terjadi ketika memproses permintaan Anda."
+  },
+  "notifications": {
+    "favorited_you": "memfavoritkan status Anda",
+    "reacted_with": "bereaksi dengan {0}",
+    "no_more_notifications": "Tidak ada notifikasi lagi",
+    "repeated_you": "mengulangi status Anda",
+    "read": "Dibaca!",
+    "notifications": "Notifikasi",
+    "follow_request": "ingin mengikuti Anda",
+    "followed_you": "mengikuti Anda",
+    "error": "Terjadi kesalahan ketika memuat notifikasi: {0}",
+    "migrated_to": "bermigrasi ke",
+    "load_older": "Muat notifikasi yang lebih lama",
+    "broken_favorite": "Status tak diketahui, mencarinya…"
+  },
+  "who_to_follow": {
+    "more": "Lebih banyak"
+  },
+  "tool_tip": {
+    "media_upload": "Unggah media",
+    "repeat": "Ulangi",
+    "reply": "Balas",
+    "favorite": "Favorit",
+    "add_reaction": "Tambahkan Reaksi",
+    "user_settings": "Pengaturan Pengguna"
+  },
+  "upload": {
+    "error": {
+      "base": "Pengunggahan gagal.",
+      "message": "Pengunggahan gagal: {0}",
+      "file_too_big": "Berkas terlalu besar [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
+      "default": "Coba lagi nanti"
+    },
+    "file_size_units": {
+      "B": "B",
+      "KiB": "KiB",
+      "MiB": "MiB",
+      "GiB": "GiB",
+      "TiB": "TiB"
+    }
+  },
+  "search": {
+    "people": "Orang",
+    "hashtags": "Tagar",
+    "person_talking": "{count} orang berbicara",
+    "people_talking": "{count} orang berbicara",
+    "no_results": "Tidak ada hasil"
+  },
+  "password_reset": {
+    "forgot_password": "Lupa kata sandi?",
+    "placeholder": "Surel atau nama pengguna Anda",
+    "return_home": "Kembali ke halaman beranda",
+    "too_many_requests": "Anda telah mencapai batas percobaan, coba lagi nanti."
+  },
+  "chats": {
+    "you": "Anda:",
+    "message_user": "Kirim Pesan ke {nickname}",
+    "delete": "Hapus",
+    "chats": "Obrolan",
+    "new": "Obrolan Baru",
+    "empty_message_error": "Tidak dapat memposting pesan yang kosong",
+    "more": "Lebih banyak",
+    "delete_confirm": "Apakah Anda benar-benar ingin menghapus pesan ini?",
+    "error_loading_chat": "Sesuatu yang salah terjadi ketika memuat obrolan.",
+    "error_sending_message": "Sesuatu yang salah terjadi ketika mengirim pesan.",
+    "empty_chat_list_placeholder": "Anda belum memiliki obrolan. Buat sbeuah obrolan baru!"
+  },
+  "file_type": {
+    "audio": "Audio",
+    "video": "Video",
+    "image": "Gambar",
+    "file": "Berkas"
+  },
+  "registration": {
+    "bio_placeholder": "contoh.\nHai, aku Lain.\nAku seorang putri anime yang tinggal di pinggiran kota Jepang. Kamu mungkin mengenal aku dari Wired.",
+    "validations": {
+      "password_confirmation_required": "tidak boleh kosong",
+      "password_required": "tidak boleh kosong",
+      "email_required": "tidak boleh kosong",
+      "fullname_required": "tidak boleh kosong",
+      "username_required": "tidak boleh kosong"
+    },
+    "register": "Daftar",
+    "fullname_placeholder": "contoh. Lain Iwakura",
+    "username_placeholder": "contoh. lain",
+    "new_captcha": "Klik gambarnya untuk mendapatkan captcha baru",
+    "captcha": "CAPTCHA",
+    "token": "Token undangan",
+    "password_confirm": "Konfirmasi kata sandi",
+    "email": "Surel",
+    "bio": "Bio",
+    "reason_placeholder": "Instansi ini menerima pendaftaran secara manual.\nBeritahu administrasinya mengapa Anda ingin mendaftar.",
+    "reason": "Alasan mendaftar",
+    "registration": "Pendaftaran"
+  },
+  "post_status": {
+    "preview_empty": "Kosong",
+    "default": "Baru saja mendarat di L.A.",
+    "content_warning": "Subyek (opsional)",
+    "content_type": {
+      "text/bbcode": "BBCode",
+      "text/markdown": "Markdown",
+      "text/html": "HTML",
+      "text/plain": "Teks biasa"
+    },
+    "media_description": "Keterangan media",
+    "attachments_sensitive": "Tandai lampiran sebagai sensitif",
+    "scope": {
+      "public": "Publik - posting ke linimasa publik",
+      "private": "Hanya-pengikut - posting hanya kepada pengikut",
+      "direct": "Langsung - posting hanya kepada pengguna yang disebut"
+    },
+    "preview": "Pratinjau",
+    "post": "Posting",
+    "posting": "Memposting",
+    "direct_warning_to_first_only": "Postingan ini akan terlihat oleh pengguna yang disebutkan di awal pesan.",
+    "direct_warning_to_all": "Postingan ini akan terlihat oleh pengguna yang disebutkan.",
+    "scope_notice": {
+      "private": "Postingan ini akan terlihat hanya oleh pengikut Anda",
+      "public": "Postingan ini akan terlihat oleh siapa saja"
+    },
+    "media_description_error": "Gagal memperbarui media, coba lagi",
+    "empty_status_error": "Tidak dapat memposting status kosong tanpa berkas",
+    "account_not_locked_warning_link": "terkunci",
+    "account_not_locked_warning": "Akun Anda tidak {0}. Siapapun dapat mengikuti Anda untuk melihat postingan hanya-pengikut Anda.",
+    "new_status": "Posting status baru"
+  },
+  "general": {
+    "apply": "Terapkan",
+    "flash_fail": "Gagal memuat konten flash, lihat console untuk keterangan.",
+    "flash_security": "Harap ingat ini dapat menjadi berbahaya karena konten Flash masih termasuk arbitrary code.",
+    "flash_content": "Klik untuk menampilkan konten Flash menggunakan Ruffle (Eksperimental, mungkin tidak bekerja).",
+    "role": {
+      "moderator": "Moderator",
+      "admin": "Admin"
+    },
+    "peek": "Intip",
+    "close": "Tutup",
+    "verify": "Verifikasi",
+    "confirm": "Konfirmasi",
+    "enable": "Aktifkan",
+    "disable": "Nonaktifkan",
+    "cancel": "Batal",
+    "show_less": "Tampilkan lebih sedikit",
+    "show_more": "Tampilkan lebih banyak",
+    "optional": "opsional",
+    "retry": "Coba lagi",
+    "error_retry": "Harap coba lagi",
+    "generic_error": "Terjadi kesalahan",
+    "loading": "Memuat…",
+    "more": "Lebih banyak",
+    "submit": "Kirim"
+  },
+  "remote_user_resolver": {
+    "error": "Tidak ditemukan."
+  },
+  "emoji": {
+    "load_all": "Memuat semua {emojiAmount} emoji",
+    "load_all_hint": "Memuat {saneAmount} emoji pertama, memuat semua emoji dapat menyebabkan masalah performa.",
+    "unicode": "Emoji unicode",
+    "add_emoji": "Sisipkan emoji",
+    "search_emoji": "Cari emoji",
+    "emoji": "Emoji",
+    "stickers": "Stiker",
+    "keep_open": "Tetap buka pemilih",
+    "custom": "Emoji kustom"
+  },
+  "polls": {
+    "expired": "Japat berakhir {0} yang lalu",
+    "expires_in": "Japat berakhir dalam {0}",
+    "expiry": "Usia japat",
+    "type": "Jenis japat",
+    "vote": "Pilih",
+    "votes_count": "{count} suara | {count} suara",
+    "people_voted_count": "{count} orang memilih | {count} orang memilih",
+    "votes": "suara",
+    "option": "Opsi",
+    "add_option": "Tambahkan opsi",
+    "add_poll": "Tambahkan japat"
+  },
+  "nav": {
+    "preferences": "Preferensi",
+    "search": "Cari",
+    "user_search": "Pencarian Pengguna",
+    "home_timeline": "Linimasa beranda",
+    "timeline": "Linimasa",
+    "public_tl": "Linimasa publik",
+    "interactions": "Interaksi",
+    "mentions": "Sebutan",
+    "back": "Kembali",
+    "administration": "Administrasi",
+    "about": "Tentang",
+    "timelines": "Linimasa",
+    "chats": "Obrolan",
+    "dms": "Pesan langsung",
+    "friend_requests": "Ingin mengikuti"
+  },
+  "media_modal": {
+    "next": "Selanjutnya",
+    "previous": "Sebelum"
+  },
+  "login": {
+    "recovery_code": "Kode pemulihan",
+    "enter_recovery_code": "Masukkan kode pemulihan",
+    "authentication_code": "Kode otentikasi",
+    "hint": "Masuk untuk ikut berdiskusi",
+    "username": "Nama pengguna",
+    "register": "Daftar",
+    "placeholder": "contoh: lain",
+    "password": "Kata sandi",
+    "logout": "Keluar",
+    "description": "Masuk dengan OAuth",
+    "login": "Masuk",
+    "heading": {
+      "totp": "Otentikasi dua-faktor"
+    }
+  },
+  "importer": {
+    "error": "Terjadi kesalahan ketika mnengimpor berkas ini.",
+    "success": "Berhasil mengimpor.",
+    "submit": "Kirim"
+  },
+  "image_cropper": {
+    "cancel": "Batal",
+    "save_without_cropping": "Simpan tanpa memotong",
+    "save": "Simpan",
+    "crop_picture": "Potong gambar"
+  },
+  "finder": {
+    "find_user": "Cari pengguna",
+    "error_fetching_user": "Terjadi kesalahan ketika memuat pengguna"
+  },
+  "features_panel": {
+    "title": "Fitur-fitur",
+    "text_limit": "Batas teks",
+    "gopher": "Gopher",
+    "pleroma_chat_messages": "Pleroma Obrolan",
+    "chat": "Obrolan",
+    "upload_limit": "Batas unggahan"
+  },
+  "exporter": {
+    "processing": "Memproses, Anda akan segera diminta untuk mengunduh berkas Anda",
+    "export": "Ekspor"
+  },
+  "domain_mute_card": {
+    "unmute": "Berhenti membisukan",
+    "mute_progress": "Membisukan…",
+    "mute": "Bisukan",
+    "unmute_progress": "Memberhentikan pembisuan…"
+  },
+  "display_date": {
+    "today": "Hari Ini"
+  },
+  "selectable_list": {
+    "select_all": "Pilih semua"
+  },
+  "interactions": {
+    "moves": "Pengguna yang bermigrasi",
+    "follows": "Pengikut baru",
+    "favs_repeats": "Ulangan dan favorit"
+  },
+  "errors": {
+    "storage_unavailable": "Pleroma tidak dapat mengakses penyimpanan browser. Login Anda atau pengaturan lokal Anda tidak akan tersimpan dan masalah yang tidak terduga dapat terjadi. Coba mengaktifkan kuki."
+  },
+  "shoutbox": {
+    "title": "Kotak Suara"
+  }
+}
diff --git a/src/i18n/it.json b/src/i18n/it.json
index a88686ae..ee872328 100644
--- a/src/i18n/it.json
+++ b/src/i18n/it.json
@@ -21,7 +21,10 @@
     "role": {
       "moderator": "Moderatore",
       "admin": "Amministratore"
-    }
+    },
+    "flash_fail": "Contenuto Flash non caricato, vedi console del browser.",
+    "flash_content": "Mostra contenuto Flash tramite Ruffle (funzione in prova).",
+    "flash_security": "Può essere pericoloso perché i contenuti in Flash sono eseguibili."
   },
   "nav": {
     "mentions": "Menzioni",
@@ -65,13 +68,13 @@
     "current_avatar": "La tua icona attuale",
     "current_profile_banner": "Il tuo stendardo attuale",
     "filtering": "Filtri",
-    "filtering_explanation": "Tutti i post contenenti queste parole saranno silenziati, una per riga",
+    "filtering_explanation": "Tutti i messaggi contenenti queste parole saranno silenziati, una per riga",
     "hide_attachments_in_convo": "Nascondi gli allegati presenti nelle conversazioni",
     "hide_attachments_in_tl": "Nascondi gli allegati presenti nelle sequenze",
     "name": "Nome",
     "name_bio": "Nome ed introduzione",
     "nsfw_clickthrough": "Fai click per visualizzare gli allegati offuscati",
-    "profile_background": "Sfondo della tua pagina",
+    "profile_background": "Sfondo del tuo profilo",
     "profile_banner": "Gonfalone del tuo profilo",
     "set_new_avatar": "Scegli una nuova icona",
     "set_new_profile_background": "Scegli un nuovo sfondo",
@@ -365,8 +368,8 @@
     "search_user_to_mute": "Cerca utente da silenziare",
     "search_user_to_block": "Cerca utente da bloccare",
     "autohide_floating_post_button": "Nascondi automaticamente il pulsante di composizione (mobile)",
-    "show_moderator_badge": "Mostra l'insegna di moderatore sulla mia pagina",
-    "show_admin_badge": "Mostra l'insegna di amministratore sulla mia pagina",
+    "show_moderator_badge": "Mostra l'insegna di moderatore sul mio profilo",
+    "show_admin_badge": "Mostra l'insegna di amministratore sul mio profilo",
     "hide_followers_count_description": "Non mostrare quanti seguaci ho",
     "hide_follows_count_description": "Non mostrare quanti utenti seguo",
     "hide_followers_description": "Non mostrare i miei seguaci",
@@ -443,7 +446,9 @@
       "backup_settings_theme": "Archivia impostazioni e tema localmente",
       "backup_settings": "Archivia impostazioni localmente",
       "backup_restore": "Archiviazione impostazioni"
-    }
+    },
+    "right_sidebar": "Mostra barra laterale a destra",
+    "hide_shoutbox": "Nascondi muro dei graffiti"
   },
   "timeline": {
     "error_fetching": "Errore nell'aggiornamento",
@@ -522,7 +527,8 @@
       "striped": "A righe",
       "solid": "Un colore",
       "disabled": "Nessun risalto"
-    }
+    },
+    "edit_profile": "Modifica profilo"
   },
   "chat": {
     "title": "Chat"
@@ -660,7 +666,7 @@
   },
   "domain_mute_card": {
     "mute": "Silenzia",
-    "mute_progress": "Silenzio…",
+    "mute_progress": "Procedo…",
     "unmute": "Ascolta",
     "unmute_progress": "Procedo…"
   },
@@ -701,7 +707,7 @@
   },
   "interactions": {
     "favs_repeats": "Condivisi e Graditi",
-    "load_older": "Carica vecchie interazioni",
+    "load_older": "Carica interazioni precedenti",
     "moves": "Utenti migrati",
     "follows": "Nuovi seguìti"
   },
diff --git a/src/i18n/pl.json b/src/i18n/pl.json
index 7cf06796..11409169 100644
--- a/src/i18n/pl.json
+++ b/src/i18n/pl.json
@@ -19,8 +19,8 @@
         "reject_desc": "Ta instancja odrzuca posty z wymienionych instancji:",
         "quarantine": "Kwarantanna",
         "quarantine_desc": "Ta instancja wysyła tylko publiczne posty do wymienionych instancji:",
-        "ftl_removal": "Usunięcie z \"Całej znanej sieci\"",
-        "ftl_removal_desc": "Ta instancja usuwa wymienionych instancje z \"Całej znanej sieci\":",
+        "ftl_removal": "Usunięcie z „Całej znanej sieci”",
+        "ftl_removal_desc": "Ta instancja usuwa wymienionych instancje z „Całej znanej sieci”:",
         "media_removal": "Usuwanie multimediów",
         "media_removal_desc": "Ta instancja usuwa multimedia z postów od wymienionych instancji:",
         "media_nsfw": "Multimedia ustawione jako wrażliwe",
@@ -75,7 +75,13 @@
     "loading": "Ładowanie…",
     "retry": "Spróbuj ponownie",
     "peek": "Spójrz",
-    "error_retry": "Spróbuj ponownie"
+    "error_retry": "Spróbuj ponownie",
+    "flash_content": "Naciśnij, aby wyświetlić zawartości Flash z użyciem Ruffle (eksperymentalnie, może nie działać).",
+    "flash_fail": "Nie udało się załadować treści flash, zajrzyj do konsoli, aby odnaleźć szczegóły.",
+    "role": {
+      "moderator": "Moderator",
+      "admin": "Administrator"
+    }
   },
   "image_cropper": {
     "crop_picture": "Przytnij obrazek",
@@ -118,7 +124,7 @@
     "friend_requests": "Prośby o możliwość obserwacji",
     "mentions": "Wzmianki",
     "interactions": "Interakcje",
-    "dms": "Wiadomości prywatne",
+    "dms": "Wiadomości bezpośrednie",
     "public_tl": "Publiczna oś czasu",
     "timeline": "Oś czasu",
     "twkn": "Znana sieć",
@@ -128,7 +134,8 @@
     "preferences": "Preferencje",
     "bookmarks": "Zakładki",
     "chats": "Czaty",
-    "timelines": "Osie czasu"
+    "timelines": "Osie czasu",
+    "home_timeline": "Główna oś czasu"
   },
   "notifications": {
     "broken_favorite": "Nieznany status, szukam go…",
@@ -156,7 +163,9 @@
     "expiry": "Czas trwania ankiety",
     "expires_in": "Ankieta kończy się za {0}",
     "expired": "Ankieta skończyła się {0} temu",
-    "not_enough_options": "Zbyt mało unikalnych opcji w ankiecie"
+    "not_enough_options": "Zbyt mało unikalnych opcji w ankiecie",
+    "people_voted_count": "{count} osoba zagłosowała | {count} osoby zagłosowały | {count} osób zagłosowało",
+    "votes_count": "{count} głos | {count} głosy | {count} głosów"
   },
   "emoji": {
     "stickers": "Naklejki",
@@ -197,16 +206,17 @@
       "unlisted": "Ten post nie będzie widoczny na publicznej osi czasu i całej znanej sieci"
     },
     "scope": {
-      "direct": "Bezpośredni – Tylko dla wspomnianych użytkowników",
-      "private": "Tylko dla obserwujących – Umieść dla osób, które cię obserwują",
-      "public": "Publiczny – Umieść na publicznych osiach czasu",
-      "unlisted": "Niewidoczny – Nie umieszczaj na publicznych osiach czasu"
+      "direct": "Bezpośredni – tylko dla wspomnianych użytkowników",
+      "private": "Tylko dla obserwujących – umieść dla osób, które cię obserwują",
+      "public": "Publiczny – umieść na publicznych osiach czasu",
+      "unlisted": "Niewidoczny – nie umieszczaj na publicznych osiach czasu"
     },
     "preview_empty": "Pusty",
     "preview": "Podgląd",
     "empty_status_error": "Nie można wysłać pustego wpisu bez plików",
     "media_description_error": "Nie udało się zaktualizować mediów, spróbuj ponownie",
-    "media_description": "Opis mediów"
+    "media_description": "Opis mediów",
+    "post": "Opublikuj"
   },
   "registration": {
     "bio": "Bio",
@@ -227,7 +237,10 @@
       "password_required": "nie może być puste",
       "password_confirmation_required": "nie może być puste",
       "password_confirmation_match": "musi być takie jak hasło"
-    }
+    },
+    "reason": "Powód rejestracji",
+    "reason_placeholder": "Ta instancja ręcznie zatwierdza rejestracje.\nPoinformuj administratora, dlaczego chcesz się zarejestrować.",
+    "register": "Zarejestruj się"
   },
   "remote_user_resolver": {
     "remote_user_resolver": "Wyszukiwarka użytkowników nietutejszych",
@@ -281,7 +294,7 @@
     "cGreen": "Zielony (powtórzenia)",
     "cOrange": "Pomarańczowy (ulubione)",
     "cRed": "Czerwony (anuluj)",
-    "change_email": "Zmień email",
+    "change_email": "Zmień e-mail",
     "change_email_error": "Wystąpił problem podczas zmiany emaila.",
     "changed_email": "Pomyślnie zmieniono email!",
     "change_password": "Zmień hasło",
@@ -345,7 +358,7 @@
     "use_contain_fit": "Nie przycinaj załączników na miniaturach",
     "name": "Imię",
     "name_bio": "Imię i bio",
-    "new_email": "Nowy email",
+    "new_email": "Nowy e-mail",
     "new_password": "Nowe hasło",
     "notification_visibility": "Rodzaje powiadomień do wyświetlania",
     "notification_visibility_follows": "Obserwacje",
@@ -361,8 +374,8 @@
     "hide_followers_description": "Nie pokazuj kto mnie obserwuje",
     "hide_follows_count_description": "Nie pokazuj licznika obserwowanych",
     "hide_followers_count_description": "Nie pokazuj licznika obserwujących",
-    "show_admin_badge": "Pokazuj odznakę Administrator na moim profilu",
-    "show_moderator_badge": "Pokazuj odznakę Moderator na moim profilu",
+    "show_admin_badge": "Pokazuj odznakę „Administrator” na moim profilu",
+    "show_moderator_badge": "Pokazuj odznakę „Moderator” na moim profilu",
     "nsfw_clickthrough": "Włącz domyślne ukrywanie załączników o treści nieprzyzwoitej (NSFW)",
     "oauth_tokens": "Tokeny OAuth",
     "token": "Token",
@@ -600,7 +613,27 @@
     "mute_import": "Import wyciszeń",
     "mute_export_button": "Wyeksportuj swoje wyciszenia do pliku .csv",
     "mute_export": "Eksport wyciszeń",
-    "hide_wallpaper": "Ukryj tło instancji"
+    "hide_wallpaper": "Ukryj tło instancji",
+    "save": "Zapisz zmiany",
+    "setting_changed": "Opcja różni się od domyślnej",
+    "right_sidebar": "Pokaż pasek boczny po prawej",
+    "file_export_import": {
+      "errors": {
+        "invalid_file": "Wybrany plik nie jest obsługiwaną kopią zapasową ustawień Pleromy. Nie dokonano żadnych zmian."
+      },
+      "backup_restore": "Kopia zapasowa ustawień",
+      "backup_settings": "Kopia zapasowa ustawień do pliku",
+      "backup_settings_theme": "Kopia zapasowa ustawień i motywu do pliku",
+      "restore_settings": "Przywróć ustawienia z pliku"
+    },
+    "more_settings": "Więcej ustawień",
+    "word_filter": "Filtr słów",
+    "hide_media_previews": "Ukryj podgląd mediów",
+    "hide_all_muted_posts": "Ukryj wyciszone słowa",
+    "reply_visibility_following_short": "Pokazuj odpowiedzi obserwującym",
+    "reply_visibility_self_short": "Pokazuj odpowiedzi tylko do mnie",
+    "sensitive_by_default": "Domyślnie oznaczaj wpisy jako wrażliwe",
+    "hide_shoutbox": "Ukryj shoutbox instancji"
   },
   "time": {
     "day": "{0} dzień",
@@ -648,7 +681,9 @@
     "no_more_statuses": "Brak kolejnych statusów",
     "no_statuses": "Brak statusów",
     "reload": "Odśwież",
-    "error": "Błąd pobierania osi czasu: {0}"
+    "error": "Błąd pobierania osi czasu: {0}",
+    "socket_broke": "Utracono połączenie w czasie rzeczywistym: kod CloseEvent {0}",
+    "socket_reconnected": "Osiągnięto połączenie w czasie rzeczywistym"
   },
   "status": {
     "favorites": "Ulubione",
@@ -731,7 +766,12 @@
       "delete_user": "Usuń użytkownika",
       "delete_user_confirmation": "Czy jesteś absolutnie pewny(-a)? Ta operacja nie może być cofnięta."
     },
-    "message": "Napisz"
+    "message": "Napisz",
+    "edit_profile": "Edytuj profil",
+    "highlight": {
+      "disabled": "Bez wyróżnienia"
+    },
+    "bot": "Bot"
   },
   "user_profile": {
     "timeline_title": "Oś czasu użytkownika",
diff --git a/src/i18n/uk.json b/src/i18n/uk.json
index e616291e..10a7375f 100644
--- a/src/i18n/uk.json
+++ b/src/i18n/uk.json
@@ -21,7 +21,10 @@
     "role": {
       "moderator": "Модератор",
       "admin": "Адміністратор"
-    }
+    },
+    "flash_content": "Натисніть для перегляду змісту Flash за допомогою Ruffle (експериментально, може не працювати).",
+    "flash_security": "Ця функція може становити ризик, оскільки Flash-вміст все ще є потенційно небезпечним.",
+    "flash_fail": "Не вдалося завантажити Flash-вміст, докладнішу інформацію дивись у консолі."
   },
   "finder": {
     "error_fetching_user": "Користувача не знайдено",
@@ -633,7 +636,9 @@
       "backup_settings_theme": "Резервне копіювання налаштувань та теми у файл",
       "backup_settings": "Резервне копіювання налаштувань у файл",
       "backup_restore": "Резервне копіювання налаштувань"
-    }
+    },
+    "right_sidebar": "Показувати бокову панель справа",
+    "hide_shoutbox": "Приховати оголошення інстансу"
   },
   "selectable_list": {
     "select_all": "Вибрати все"
@@ -799,7 +804,8 @@
       "solid": "Суцільний фон",
       "disabled": "Не виділяти"
     },
-    "bot": "Бот"
+    "bot": "Бот",
+    "edit_profile": "Редагувати профіль"
   },
   "status": {
     "copy_link": "Скопіювати посилання на допис",
diff --git a/src/i18n/vi.json b/src/i18n/vi.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/src/i18n/vi.json
@@ -0,0 +1 @@
+{}
diff --git a/src/i18n/zh.json b/src/i18n/zh.json
index bee75d84..f1a78c0c 100644
--- a/src/i18n/zh.json
+++ b/src/i18n/zh.json
@@ -43,7 +43,10 @@
     "role": {
       "moderator": "监察员",
       "admin": "管理员"
-    }
+    },
+    "flash_content": "点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。",
+    "flash_security": "注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。",
+    "flash_fail": "Flash 内容加载失败,请在控制台查看详情。"
   },
   "image_cropper": {
     "crop_picture": "裁剪图片",
@@ -584,7 +587,8 @@
       "backup_settings_theme": "备份设置和主题到文件",
       "backup_settings": "备份设置到文件",
       "backup_restore": "设置备份"
-    }
+    },
+    "right_sidebar": "在右侧显示侧边栏"
   },
   "time": {
     "day": "{0} 天",
diff --git a/src/i18n/zh_Hant.json b/src/i18n/zh_Hant.json
index 8579ebd3..7af2cf39 100644
--- a/src/i18n/zh_Hant.json
+++ b/src/i18n/zh_Hant.json
@@ -115,7 +115,10 @@
     "role": {
       "moderator": "主持人",
       "admin": "管理員"
-    }
+    },
+    "flash_content": "點擊以使用 Ruffle 顯示 Flash 內容(實驗性,可能無效)。",
+    "flash_security": "請注意,這可能有潜在的危險,因為Flash內容仍然是武斷的程式碼。",
+    "flash_fail": "無法加載flash內容,請參閱控制台瞭解詳細資訊。"
   },
   "finder": {
     "find_user": "尋找用戶",
@@ -556,7 +559,9 @@
       "backup_settings": "備份設置到文件",
       "backup_restore": "設定備份"
     },
-    "sensitive_by_default": "默認標記發文為敏感內容"
+    "sensitive_by_default": "默認標記發文為敏感內容",
+    "right_sidebar": "在右側顯示側邊欄",
+    "hide_shoutbox": "隱藏實例留言框"
   },
   "chats": {
     "more": "更多",
@@ -797,7 +802,8 @@
       "striped": "條紋背景",
       "side": "彩條"
     },
-    "bot": "機器人"
+    "bot": "機器人",
+    "edit_profile": "編輯個人資料"
   },
   "user_profile": {
     "timeline_title": "用戶時間線",