diff --git a/web/i18n/en/a11y/meowbalt.json b/web/i18n/en/a11y/meowbalt.json
new file mode 100644
index 00000000..fa9ee6d6
--- /dev/null
+++ b/web/i18n/en/a11y/meowbalt.json
@@ -0,0 +1,3 @@
+{
+    "smile": "meowbalt, cobalt's black and white cat mascot, smiling and loafing."
+}
diff --git a/web/i18n/en/a11y/save.json b/web/i18n/en/a11y/save.json
new file mode 100644
index 00000000..93f66bbc
--- /dev/null
+++ b/web/i18n/en/a11y/save.json
@@ -0,0 +1,3 @@
+{
+    "linkArea": "link input area"
+}
diff --git a/web/i18n/en/save.json b/web/i18n/en/save.json
new file mode 100644
index 00000000..f3b6e6c5
--- /dev/null
+++ b/web/i18n/en/save.json
@@ -0,0 +1,8 @@
+{
+    "paste": "paste",
+    "pasteAndDownload": "paste and download",
+    "auto": "auto",
+    "audio": "audio",
+    "mute": "mute",
+    "inputPlaceholder": "paste the link here"
+}
diff --git a/web/i18n/ru/a11y/meowbalt.json b/web/i18n/ru/a11y/meowbalt.json
new file mode 100644
index 00000000..59289062
--- /dev/null
+++ b/web/i18n/ru/a11y/meowbalt.json
@@ -0,0 +1,3 @@
+{
+    "smile": "мяубальт, чёрно-белый маскот кобальта. батонится, сложа лапы под себя, и улыбается."
+}
diff --git a/web/i18n/ru/a11y/save.json b/web/i18n/ru/a11y/save.json
new file mode 100644
index 00000000..0123401a
--- /dev/null
+++ b/web/i18n/ru/a11y/save.json
@@ -0,0 +1,3 @@
+{
+    "linkArea": "зона вставки ссылки"
+}
diff --git a/web/i18n/ru/save.json b/web/i18n/ru/save.json
new file mode 100644
index 00000000..f751a63d
--- /dev/null
+++ b/web/i18n/ru/save.json
@@ -0,0 +1,8 @@
+{
+    "paste": "вставить",
+    "pasteAndDownload": "вставить и скачать",
+    "auto": "авто",
+    "audio": "аудио",
+    "mute": "без звука",
+    "inputPlaceholder": "вставь ссылку сюда"
+}
diff --git a/web/src/components/buttons/Switcher.svelte b/web/src/components/buttons/Switcher.svelte
index 499dfa5a..8deb0587 100644
--- a/web/src/components/buttons/Switcher.svelte
+++ b/web/src/components/buttons/Switcher.svelte
@@ -17,6 +17,10 @@
         border-radius: var(--border-radius);
     }
 
+    .switcher :global(.button) {
+        white-space: pre;
+    }
+
     .switcher:not(.big) :global(.button:first-child) {
         border-top-right-radius: 0;
         border-bottom-right-radius: 0;
diff --git a/web/src/components/meowbalt/MeowbaltLoaf.svelte b/web/src/components/meowbalt/MeowbaltLoaf.svelte
index 36ff14af..908b1ec8 100644
--- a/web/src/components/meowbalt/MeowbaltLoaf.svelte
+++ b/web/src/components/meowbalt/MeowbaltLoaf.svelte
@@ -1,10 +1,15 @@
+<script lang="ts">
+    import { t } from "$lib/i18n/translations";
+</script>
+
 <img
     id="meowbalt-loaf"
     src="/meowbalt/smile.png"
     height="152"
     width="141"
-    alt="black and white cat smiling and loafing"
+    alt={$t("a11y.meowbalt.smile")}
 />
+
 <style>
     #meowbalt-loaf {
         display: block;
diff --git a/web/src/components/save/Omnibox.svelte b/web/src/components/save/Omnibox.svelte
index 59e98b5a..2b248562 100644
--- a/web/src/components/save/Omnibox.svelte
+++ b/web/src/components/save/Omnibox.svelte
@@ -1,6 +1,8 @@
 <script lang="ts">
     import { SvelteComponent, tick } from "svelte";
 
+    import { t } from "$lib/i18n/translations";
+
     import IconLink from "@tabler/icons-svelte/IconLink.svelte";
 
     import ClearButton from "$components/save/buttons/ClearButton.svelte";
@@ -60,8 +62,8 @@
             autocomplete="off"
             autocapitalize="off"
             maxlength="256"
-            placeholder="paste the link here"
-            aria-label="link input area"
+            placeholder={$t("save.inputPlaceholder")}
+            aria-label={$t("a11y.save.linkArea")}
             data-form-type="other"
         />
 
@@ -76,19 +78,19 @@
     <div id="action-container">
         <Switcher>
             <SettingsButton settingContext="save" settingId="downloadMode" settingValue="auto">
-                <IconSparkles /> auto
+                <IconSparkles /> {$t("save.auto")}
             </SettingsButton>
             <SettingsButton settingContext="save" settingId="downloadMode" settingValue="audio">
-                <IconMusic /> audio
+                <IconMusic /> {$t("save.audio")}
             </SettingsButton>
             <SettingsButton settingContext="save" settingId="downloadMode" settingValue="mute">
-                <IconMute /> mute
+                <IconMute /> {$t("save.mute")}
             </SettingsButton>
         </Switcher>
         <ActionButton id="paste" click={pasteClipboard}>
             <IconClipboard />
-            <span id="paste-desktop-text">paste</span>
-            <span id="paste-mobile-text">paste and download</span>
+            <span id="paste-desktop-text">{$t("save.paste")}</span>
+            <span id="paste-mobile-text">{$t("save.pasteAndDownload")}</span>
         </ActionButton>
     </div>
 </div>
diff --git a/web/src/lib/i18n/translations.ts b/web/src/lib/i18n/translations.ts
index cd02a8a7..03814a1b 100644
--- a/web/src/lib/i18n/translations.ts
+++ b/web/src/lib/i18n/translations.ts
@@ -25,6 +25,28 @@ export const config: Config = {
                 await import(`$i18n/en/a11y/tabs.json`)
             ).default,
         },
+        {
+            locale: 'en',
+            key: 'save',
+            loader: async () => (
+                await import(`$i18n/en/save.json`)
+            ).default,
+        },
+        {
+            locale: 'en',
+            key: 'a11y.save',
+            loader: async () => (
+                await import(`$i18n/en/a11y/save.json`)
+            ).default,
+        },
+        {
+            locale: 'en',
+            key: 'a11y.meowbalt',
+            loader: async () => (
+                await import(`$i18n/en/a11y/meowbalt.json`)
+            ).default,
+        },
+
         {
             locale: 'ru',
             key: 'tabs',
@@ -39,6 +61,27 @@ export const config: Config = {
                 await import(`$i18n/ru/a11y/tabs.json`)
             ).default,
         },
+        {
+            locale: 'ru',
+            key: 'save',
+            loader: async () => (
+                await import(`$i18n/ru/save.json`)
+            ).default,
+        },
+        {
+            locale: 'ru',
+            key: 'a11y.save',
+            loader: async () => (
+                await import(`$i18n/ru/a11y/save.json`)
+            ).default,
+        },
+        {
+            locale: 'ru',
+            key: 'a11y.meowbalt',
+            loader: async () => (
+                await import(`$i18n/ru/a11y/meowbalt.json`)
+            ).default,
+        },
     ],
 };