Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
097c930
web/i18n/lv: add translation
imput-i18n Sep 9, 2025
cd104a3
web/i18n/gl: add translation
imput-i18n Sep 9, 2025
fa81833
web/i18n/vi: add translation
imput-i18n Sep 9, 2025
3afc17b
web/i18n: update translations
imput-i18n Sep 9, 2025
b5974cf
web/i18n/he: add translation
imput-i18n Sep 9, 2025
a9df1da
web/i18n: update translations
imput-i18n Sep 9, 2025
dfd8bb3
web/i18n: update translations
imput-i18n Sep 9, 2025
96c22c4
web/i18n/ga: add translation
imput-i18n Sep 9, 2025
6998550
web/i18n/el: add translation
imput-i18n Sep 9, 2025
87c7a99
web/i18n/tok: add translation
imput-i18n Sep 9, 2025
b3ff870
web/i18n/tts: add translation
imput-i18n Sep 9, 2025
549b2d8
web/i18n/id: add translation
imput-i18n Sep 9, 2025
177832c
web/i18n/ko: add translation
imput-i18n Sep 9, 2025
d9180e1
web/i18n: update translations
imput-i18n Sep 9, 2025
bc7fb2f
web/i18n/lt: add translation
imput-i18n Sep 9, 2025
d87867f
web/i18n/nn: add translation
imput-i18n Sep 9, 2025
11405d3
web/i18n/ro: add translation
imput-i18n Sep 9, 2025
36c194e
web/i18n: update translations
imput-i18n Sep 9, 2025
4e0a39e
web/i18n: update translations
imput-i18n Sep 9, 2025
22691c9
web/i18n/sv: add translation
imput-i18n Sep 9, 2025
85c9ef5
web/i18n/nl: add translation
imput-i18n Sep 9, 2025
3feca3d
web/i18n/et: add translation
imput-i18n Sep 9, 2025
aa4f47a
web/i18n/ca: add translation
imput-i18n Sep 9, 2025
b53da96
web/i18n/az: add translation
imput-i18n Sep 9, 2025
108e708
web/i18n/pt_BR: add translation
imput-i18n Sep 9, 2025
8a8eac4
web/i18n: update translations
imput-i18n Sep 9, 2025
8086953
web/i18n/nb_NO: add translation
imput-i18n Sep 9, 2025
70dba98
web/i18n/th: add translation
imput-i18n Sep 9, 2025
022d24f
web/i18n/fi: add translation
imput-i18n Sep 9, 2025
e4f1695
web/i18n/hr: add translation
imput-i18n Sep 9, 2025
40994f2
web/i18n: update translations
imput-i18n Sep 9, 2025
74acebb
web/i18n: update translations
imput-i18n Sep 9, 2025
1b76726
web/i18n: update translations
imput-i18n Sep 9, 2025
72044b4
web/i18n/eo: add translation
imput-i18n Sep 9, 2025
f791392
web/i18n/zh_Hant: add translation
imput-i18n Sep 9, 2025
2fdf318
web/i18n: update translations
imput-i18n Sep 9, 2025
e486d4b
web/i18n/fil: add translation
imput-i18n Sep 9, 2025
1286b24
web/i18n: update translations
imput-i18n Sep 9, 2025
a94c269
web/i18n: update translations
imput-i18n Sep 9, 2025
f4d57c1
web/i18n: update translations
imput-i18n Sep 9, 2025
d10c9c3
web/i18n: update translations
imput-i18n Sep 9, 2025
1bc47f4
web/i18n/bg: add translation
imput-i18n Sep 9, 2025
dd68e94
web/i18n/be: add translation
imput-i18n Sep 9, 2025
b709f8b
web/i18n/ur: add translation
imput-i18n Sep 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions web/i18n/ar/a11y/dialog.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"picker.item.photo": "الصورة المصغرة",
"picker.item.video": "المقطع المصغر"
}
4 changes: 4 additions & 0 deletions web/i18n/ar/a11y/donate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"share.qr.expand": "رمز مربع. إضغط للتوسعة.",
"share.qr.collapse": "وُسِع الرمز المربع. إضغط للتقلص."
}
3 changes: 3 additions & 0 deletions web/i18n/ar/a11y/general.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"back": "إرجع للخلف"
}
1 change: 1 addition & 0 deletions web/i18n/ar/a11y/queue.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
4 changes: 4 additions & 0 deletions web/i18n/ar/a11y/save.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"link_area": "منطقة إدخال الرابط",
"link_area.turnstile": "منطقة إدخال الرابط. يجري التأكد من أنك لست آليًا."
}
3 changes: 3 additions & 0 deletions web/i18n/ar/a11y/tabs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"tab_panel": "لوحة الألسنة"
}
3 changes: 3 additions & 0 deletions web/i18n/ar/about.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"page.general": "ما هو كوبالت؟"
}
89 changes: 89 additions & 0 deletions web/i18n/ar/about/credits.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<script lang="ts">
import { contacts, docs, partners } from "$lib/env";
import { t } from "$lib/i18n/translations";

import SectionHeading from "$components/misc/SectionHeading.svelte";
import BetaTesters from "$components/misc/BetaTesters.svelte";
</script>

<section id="imput">
<SectionHeading
title="imput"
sectionId="imput"
/>

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)!
</section>

<section id="testers">
<SectionHeading
title={$t("about.heading.testers")}
sectionId="testers"
/>

huge shout-out to our testers for testing updates early and making sure they're
stable. they also helped us ship cobalt 10! <BetaTesters />

all links are external and lead to their personal websites or social media.
</section>

<section id="partners">
<SectionHeading
title={$t("about.heading.partners")}
sectionId="partners"
/>

a portion of cobalt's processing infrastructure is provided by our long-standing
partner, [royalehosting.net]({partners.royalehosting})!
</section>

<section id="meowbalt">
<SectionHeading
title={$t("general.meowbalt")}
sectionId="meowbalt"
/>

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!
</section>

<section id="licenses">
<SectionHeading
title={$t("about.heading.licenses")}
sectionId="licenses"
/>

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})!
</section>
75 changes: 75 additions & 0 deletions web/i18n/ar/about/general.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<script lang="ts">
import { t } from "$lib/i18n/translations";
import { contacts, docs } from "$lib/env";

import SectionHeading from "$components/misc/SectionHeading.svelte";
</script>

<section id="summary">
<SectionHeading
title={$t("about.heading.summary")}
sectionId="summary"
/>

يساعدك cobalt بتنزيل أي شيء من مواقعك المفضلة: مقاطع، أصوات، صور أو صور متحركة
بمجرد لصق رابط!

لا إعلانات، ولا أدوات تعقّب، ولا جدران مدفوعة أو غير ذلك من الخرابيط. مجرد تطبيق
ويب مريح يعمل في أي مكان، وفي أي وقت تحتاج إليه.
</section>

<section id="motivation">
<SectionHeading
title={$t("about.heading.motivation")}
sectionId="motivation"
/>

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.
</section>

<section id="privacy-efficiency">
<SectionHeading
title={$t("about.heading.privacy_efficiency")}
sectionId="privacy-efficiency"
/>

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.
</section>

<section id="community">
<SectionHeading
title={$t("about.heading.community")}
sectionId="community"
/>

cobalt is used by countless artists, educators, and content creators to do what
they love. we're always on the line with our community and work together to make
cobalt even more useful. feel free to [join the conversation](/about/community)!

we believe that the future of the internet is open, which is why cobalt is
[source first](https://sourcefirst.com/) and [easily
self-hostable]({docs.instanceHosting}).

if your friend hosts a processing instance, just ask them for a domain and [add
it in instance settings](/settings/instances#community).

you can check the source code and contribute [on github]({contacts.github}) at
any time. we welcome all contributions and suggestions!
</section>
123 changes: 123 additions & 0 deletions web/i18n/ar/about/privacy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
<script lang="ts">
import env from "$lib/env";
import { t } from "$lib/i18n/translations";

import SectionHeading from "$components/misc/SectionHeading.svelte";
</script>

<section id="general">
<SectionHeading
title={$t("about.heading.general")}
sectionId="general"
/>

سياسة خصوصية كوبالت بسيطة: نحن لا نجمع أو نخزن أي شيء عنك. ما تفعله هو شأنك
وحدك، وليس شأننا ولا شأن أي أحد.

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.
</section>

<section id="local">
<SectionHeading
title={$t("about.heading.local")}
sectionId="local"
/>

tools that use on-device processing work offline, locally, and never send any
processed data anywhere. they are explicitly marked as such whenever applicable.
</section>

<section id="saving">
<SectionHeading
title={$t("about.heading.saving")}
sectionId="saving"
/>

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.
</section>

<section id="encryption">
<SectionHeading
title={$t("about.heading.encryption")}
sectionId="encryption"
/>

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.
</section>

{#if env.PLAUSIBLE_ENABLED}
<section id="plausible">
<SectionHeading
title={$t("about.heading.plausible")}
sectionId="plausible"
/>

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).
</section>
{/if}

<section id="cloudflare">
<SectionHeading
title={$t("about.heading.cloudflare")}
sectionId="cloudflare"
/>

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/).
</section>
65 changes: 65 additions & 0 deletions web/i18n/ar/about/terms.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<script lang="ts">
import { t } from "$lib/i18n/translations";
import SectionHeading from "$components/misc/SectionHeading.svelte";
</script>

<section id="general">
<SectionHeading
title={$t("about.heading.general")}
sectionId="general"
/>

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.
</section>

<section id="saving">
<SectionHeading
title={$t("about.heading.saving")}
sectionId="saving"
/>

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).
</section>

<section id="responsibility">
<SectionHeading
title={$t("about.heading.responsibility")}
sectionId="responsibility"
/>

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.
</section>

<section id="abuse">
<SectionHeading
title={$t("about.heading.abuse")}
sectionId="abuse"
/>

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).
</section>
5 changes: 5 additions & 0 deletions web/i18n/ar/button.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"gotit": "فهمت",
"cancel": "ألغِ",
"reset": "أعِد"
}
1 change: 1 addition & 0 deletions web/i18n/ar/dialog.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
4 changes: 4 additions & 0 deletions web/i18n/ar/donate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"banner.title": "إدعــم إنــتـرنـت\nآمــنًـا مــطــمـئـنًا",
"body.motivation": "يساعد كوبالت المنتجين والمعلمين وصانعي المحتوى وغيرهم الكثير على فعل ما يحبون. إنها خدمة من نوع مختلف مصنوعة بحب وليس من أجل الربح."
}
Loading
Loading