diff --git a/web/i18n/sr/a11y/dialog.json b/web/i18n/sr/a11y/dialog.json
new file mode 100644
index 00000000..2609ac90
--- /dev/null
+++ b/web/i18n/sr/a11y/dialog.json
@@ -0,0 +1,5 @@
+{
+ "picker.item.photo": "минијатура фотографије",
+ "picker.item.video": "минијатура видеа",
+ "picker.item.gif": "минијатура gif-а"
+}
diff --git a/web/i18n/sr/a11y/donate.json b/web/i18n/sr/a11y/donate.json
new file mode 100644
index 00000000..0251ab7d
--- /dev/null
+++ b/web/i18n/sr/a11y/donate.json
@@ -0,0 +1,4 @@
+{
+ "share.qr.collapse": "проширени QR код. притисните да бисте скупили.",
+ "share.qr.expand": "QR код. притисните да бисте проширили."
+}
diff --git a/web/i18n/sr/a11y/general.json b/web/i18n/sr/a11y/general.json
new file mode 100644
index 00000000..0baa66a6
--- /dev/null
+++ b/web/i18n/sr/a11y/general.json
@@ -0,0 +1,3 @@
+{
+ "back": "врати се назад"
+}
diff --git a/web/i18n/sr/a11y/queue.json b/web/i18n/sr/a11y/queue.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/a11y/queue.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/a11y/save.json b/web/i18n/sr/a11y/save.json
new file mode 100644
index 00000000..a424f7c1
--- /dev/null
+++ b/web/i18n/sr/a11y/save.json
@@ -0,0 +1,12 @@
+{
+ "link_area": "поље за унос везе",
+ "link_area.turnstile": "поље за унос везе. провера да ли сте робот.",
+ "clear_input": "очисти унис",
+ "download": "преузми",
+ "download.think": "обрада везе…",
+ "download.check": "потврђивање преузимања…",
+ "download.done": "преузимање завршено",
+ "download.error": "грешка при преузимању",
+ "tutorial.shortcut.photos": "додај пречицу за фотографије",
+ "tutorial.shortcut.files": "додај пречицу за датотеке"
+}
diff --git a/web/i18n/sr/a11y/tabs.json b/web/i18n/sr/a11y/tabs.json
new file mode 100644
index 00000000..2806eee3
--- /dev/null
+++ b/web/i18n/sr/a11y/tabs.json
@@ -0,0 +1,3 @@
+{
+ "tab_panel": "панел са картицама"
+}
diff --git a/web/i18n/sr/about.json b/web/i18n/sr/about.json
new file mode 100644
index 00000000..a634e2d4
--- /dev/null
+++ b/web/i18n/sr/about.json
@@ -0,0 +1,30 @@
+{
+ "page.faq": "ЧПП",
+ "page.privacy": "политика приватности",
+ "page.terms": "услови и етика",
+ "page.credits": "хвала и лиценце",
+ "heading.general": "општи услови",
+ "heading.licenses": "лиценце",
+ "heading.summary": "најбољи начин да сачувате оно што волите",
+ "heading.privacy": "водећа приватност",
+ "heading.community": "отворена заједница",
+ "heading.local": "обрада на уређају",
+ "heading.saving": "чување",
+ "heading.encryption": "шифровање",
+ "heading.cloudflare": "веб приватност и безбедност",
+ "heading.responsibility": "одговорности корисника",
+ "heading.abuse": "пријављивање злоупотребе",
+ "heading.motivation": "мотивacija",
+ "page.community": "заједница и подршка",
+ "heading.plausible": "анонимна анализа саобраћаја",
+ "page.general": "шта је cobalt?",
+ "support.github": "погледајте изворни код cobalt-a, допринесите променама или пријавите проблеме",
+ "heading.testers": "бета тестери",
+ "support.discord": "разговарајте са заједницом и програмерима о cobalt-у или затражите помоћ",
+ "support.twitter": "пратите cobalt-ове актуелности и развој на вашој twitter временској линији",
+ "support.telegram": "будите у току са најновијим cobalt-овим актуелностима преко telegram канала",
+ "support.bluesky": "пратите cobalt-ове актуелности и развој на вашем bluesky фиду",
+ "support.description.issue": "ако желите да пријавите грешку или неки други понављајући проблем, молимо вас да то урадите на github-у.",
+ "support.description.help": "користите discord за сва остала питања. правилно опишите проблем у #cobalt-support или нико неће моћи да вам помогне.",
+ "support.description.best-effort": "подршку пружамо како можемо али није загарантована, одговор може потрајати."
+}
diff --git a/web/i18n/sr/about/credits.md b/web/i18n/sr/about/credits.md
new file mode 100644
index 00000000..6028badb
--- /dev/null
+++ b/web/i18n/sr/about/credits.md
@@ -0,0 +1,89 @@
+
+
+
+
+
+cobalt is made with love and care by [imput](https://imput.net/) ❤️
+
+we're a small team of two guys, but we work really hard to make great software
+that benefits everyone. if you like our work, please consider supporting it on
+the [donate page](/donate)!
+
+
+
+
+
+huge shout-out to our testers for testing updates early and making sure they're
+stable. they also helped us ship cobalt 10!
+
+све везе су спољашње и воде на њихове личне веб странице или друштвене мреже.
+
+
+
+
+
+a portion of cobalt's processing infrastructure is provided by our long-standing
+partner, [royalehosting.net]({partners.royalehosting})!
+
+
+
+
+
+meowbalt is cobalt's speedy mascot, a very expressive cat who loves fast
+internet.
+
+all amazing art of meowbalt that you see in cobalt was made by
+[GlitchyPSI](https://glitchypsi.xyz/). he's also the original creator of the
+character.
+
+imput holds legal rights to meowbalt's character design, but not specific
+artworks that were created by GlitchyPSI.
+
+we love meowbalt, so we have to set a few rules in place to protect him:
+- you cannot use meowbalt's character design in any form that isn't fan art.
+- you cannot use meowbalt's design or artworks commercially.
+- you cannot use meowbalt's design or artworks in your own projects.
+- you cannot use or modify GlitchyPSI's artworks of meowbalt in any form.
+
+if you create fan art of meowbalt, please share it in [our discord
+server](/about/community), we'd love to see it!
+
+
+
+
+
+cobalt api (processing server) code is open source and licensed under
+[AGPL-3.0]({docs.apiLicense}).
+
+cobalt frontend code is [source first](https://sourcefirst.com/) and is licensed
+under [CC-BY-NC-SA 4.0]({docs.webLicense}).
+
+we had to make frontend source first to stop grifters from profiting off our
+work & from creating malicious clones that deceive people and hurt our public
+identity. other than commercial use, it follows same principles as many open
+source licenses.
+
+we rely on many open source libraries, but also create & distribute our own. you
+can see the full list of dependencies on [github]({contacts.github})!
+
diff --git a/web/i18n/sr/about/general.md b/web/i18n/sr/about/general.md
new file mode 100644
index 00000000..a9802ffc
--- /dev/null
+++ b/web/i18n/sr/about/general.md
@@ -0,0 +1,75 @@
+
+
+
+
+
+cobalt helps you save anything from your favorite websites: video, audio, photos
+or gifs. just paste the link and you're ready to rock!
+
+no ads, trackers, paywalls, or other nonsense. just a convenient web app that
+works anywhere, whenever you need it.
+
+
+
+
+
+cobalt was created for public benefit, to protect people from ads and malware
+pushed by alternative downloaders. we believe that the best software is safe,
+open, and accessible. all imput project follow these basic principles.
+
+
+
+
+
+all requests to the backend are anonymous and all information about potential
+file tunnels is encrypted. we have a strict zero log policy and don't store or
+track *anything* about individual people.
+
+if a request requires additional processing, such as remuxing or transcoding,
+cobalt processes media directly on your device. this ensures best efficiency and
+privacy.
+
+if your device doesn't support local processing, then server-based live
+processing is used instead. in this scenario, processed media is streamed
+directly to client, without ever being stored on server's disk.
+
+you can [enable forced tunneling](/settings/privacy#tunnel) to boost privacy
+even further. when enabled, cobalt will tunnel all downloaded files, not just
+those that require it. no one will know where you download something from, even
+your network provider. all they'll see is that you're using a cobalt instance.
+
+
+
diff --git a/web/i18n/sr/about/privacy.md b/web/i18n/sr/about/privacy.md
new file mode 100644
index 00000000..d4cb2d84
--- /dev/null
+++ b/web/i18n/sr/about/privacy.md
@@ -0,0 +1,123 @@
+
+
+
+
+
+cobalt's privacy policy is simple: we don't collect or store anything about you.
+what you do is solely your business, not ours or anyone else's.
+
+these terms are applicable only when using the official cobalt instance. in
+other cases, you may need to contact the instance hoster for accurate info.
+
+
+
+
+
+tools that use on-device processing work offline, locally, and never send any
+processed data anywhere. they are explicitly marked as such whenever applicable.
+
+
+
+
+
+when using saving functionality, cobalt may need to proxy or remux/transcode
+files. if that's the case, then a temporary tunnel is created for this purpose
+and minimal required information about the media is stored for 90 seconds.
+
+on an unmodified & official cobalt instance, **all tunnel data is encrypted with
+a key that only the end user has access to**.
+
+encrypted tunnel data may include:
+- origin service's name.
+- original URLs for media files.
+- internal arguments needed to differentiate between types of processing.
+- minimal file metadata (generated filename, title, author, creation year,
+ copyright info).
+- minimal information about the original request that may be used in case of an
+ URL failure during the tunnelling process.
+
+this data is irreversibly purged from server's RAM after 90 seconds. no one has
+access to cached tunnel data, even instance owners, as long as cobalt's source
+code is not modified.
+
+media data from tunnels is never stored/cached anywhere. everything is processed
+live, even during remuxing and transcoding. cobalt tunnels function like an
+anonymous proxy.
+
+if your device supports local processing, then encrypted tunnel info includes
+way less info, because it's returned to client instead.
+
+see the [related source code on
+github](https://github.com/imputnet/cobalt/tree/main/api/src/stream) to learn
+more about how it works.
+
+
+
+
+
+temporarily stored tunnel data is encrypted using the AES-256 standard.
+decryption keys are only included in the access link and never
+logged/cached/stored anywhere. only the end user has access to the link &
+encryption keys. keys are generated uniquely for each requested tunnel.
+
+
+{#if env.PLAUSIBLE_ENABLED}
+
+
+
+we use [plausible](https://plausible.io/) to get an approximate number of active
+cobalt users, fully anonymously. no identifiable information about you or your
+requests is ever stored. all data is anonymized and aggregated. we self-host and
+manage the [plausible instance](https://{env.PLAUSIBLE_HOST}/) that cobalt uses.
+
+plausible doesn't use cookies and is fully compliant with GDPR, CCPA, and PECR.
+
+if you wish to opt out of anonymous analytics, you can do it in [privacy
+settings](/settings/privacy#analytics). if you opt out, the plausible script
+will not be loaded at all.
+
+[learn more about plausible's dedication to
+privacy](https://plausible.io/privacy-focused-web-analytics).
+
+{/if}
+
+
+
+
+we use cloudflare services for:
+- ddos & abuse protection.
+- bot protection (cloudflare turnstile).
+- hosting & deploying the statically rendered web app (cloudflare workers).
+
+all of these are required to provide the best experience for everyone.
+cloudflare is the most private & reliable provider for all mentioned solutions
+that we know of.
+
+cloudflare is fully compliant with GDPR and HIPAA.
+
+[learn more about cloudflare's dedication to
+privacy](https://www.cloudflare.com/trust-hub/privacy-and-data-protection/).
+
diff --git a/web/i18n/sr/about/terms.md b/web/i18n/sr/about/terms.md
new file mode 100644
index 00000000..39df9098
--- /dev/null
+++ b/web/i18n/sr/about/terms.md
@@ -0,0 +1,65 @@
+
+
+
+
+
+these terms are applicable only when using the official cobalt instance. in
+other cases, you may need to contact the instance hoster for accurate info.
+
+
+
+
+
+saving functionality simplifies downloading content from the internet and we
+take zero liability for what the saved content is used for.
+
+processing servers operate like advanced proxies and don't ever write any
+requested content to disk. everything is handled in RAM and permanently purged
+once the tunnel is completed. we have no downloading logs and cannot identify
+anyone.
+
+you can learn more about how tunnels work in [privacy policy](/about/privacy).
+
+
+
+
+
+you (end user) are responsible for what you do with our tools, how you use and
+distribute resulting content. please be mindful when using content of others and
+always credit original creators. make sure you don't violate any terms or
+licenses.
+
+when used in educational purposes, always cite sources and credit original
+creators.
+
+fair use and credits benefit everyone.
+
+
+
+
+
+we have no way of detecting abusive behavior automatically because cobalt is
+fully anonymous. however, you can report such activities to us via email and
+we'll do our best to comply manually: abuse[at]imput.net
+
+**this email is not intended for user support, you will not get a response if
+your concern is not related to abuse.**
+
+if you're experiencing issues, you can reach out for support via any preferred
+method on [the community page](/about/community).
+
diff --git a/web/i18n/sr/button.json b/web/i18n/sr/button.json
new file mode 100644
index 00000000..6424d268
--- /dev/null
+++ b/web/i18n/sr/button.json
@@ -0,0 +1,3 @@
+{
+ "download": "преузми"
+}
diff --git a/web/i18n/sr/dialog.json b/web/i18n/sr/dialog.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/dialog.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/donate.json b/web/i18n/sr/donate.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/donate.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/error.json b/web/i18n/sr/error.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/error.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/error/api.json b/web/i18n/sr/error/api.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/error/api.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/error/queue.json b/web/i18n/sr/error/queue.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/error/queue.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/general.json b/web/i18n/sr/general.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/general.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/notification.json b/web/i18n/sr/notification.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/notification.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/queue.json b/web/i18n/sr/queue.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/queue.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/receiver.json b/web/i18n/sr/receiver.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/receiver.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/remux.json b/web/i18n/sr/remux.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/remux.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/save.json b/web/i18n/sr/save.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/save.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/settings.json b/web/i18n/sr/settings.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/settings.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/tabs.json b/web/i18n/sr/tabs.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/tabs.json
@@ -0,0 +1 @@
+{}
diff --git a/web/i18n/sr/updates.json b/web/i18n/sr/updates.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/web/i18n/sr/updates.json
@@ -0,0 +1 @@
+{}