in this commit:
- enhanced css (hover border, less annoying donate highlight, checkbox width fix for mobile, more consistent color scheme)
- addition of an urgent notice (in this case it mentions all issues related to old infra being fixed)
- updated twitter picker test
- changelog for 6.0
- removed partial translations
This commit is contained in:
wukko 2023-06-07 21:41:06 +06:00
parent 8d39096977
commit 527ca29215
21 changed files with 107 additions and 904 deletions

View file

@ -65,7 +65,22 @@ On-demand website element loading. Currently used only for older changelogs.<br>
| blockId | ``0`` | Block ID to be rendered on the server. |
### Response Body Variables
| key | type | variables |
|:-----------|:-------|:-----------------------------|
| status | string | ``error / success`` |
| text | string | Error text or rendered block |
| key | type | variables |
|:-------|:-------|:-----------------------------|
| status | string | ``error / success`` |
| text | string | Error text or rendered block |
## GET: ``/api/serverInfo``
Returns current basic server info.<br>
Response Body Type: ``application/json``
### Response Body Variables
| key | type | variables |
|:----------|:-------|:------------------|
| version | string | cobalt version |
| commit | string | Git commit |
| branch | string | Git branch |
| name | string | Server name |
| url | string | Server url |
| cors | string | CORS status |
| startTime | string | Server start time |

View file

@ -1,7 +1,7 @@
{
"name": "cobalt",
"description": "save what you love",
"version": "6.0-dev",
"version": "6.0",
"author": "wukko",
"exports": "./src/cobalt.js",
"type": "module",

View file

@ -155,7 +155,7 @@ export function runAPI(express, app, gitCommit, gitBranch, __dirname) {
branch: gitBranch,
name: process.env.apiName ? process.env.apiName : "unknown",
url: process.env.apiURL,
cors: process.env.cors,
cors: process.env.cors && process.env.cors === "0" ? 0 : 1,
startTime: `${startTimestamp}`
});
break;

View file

@ -160,7 +160,7 @@ export async function runBoth(express, app, gitCommit, gitBranch, __dirname) {
branch: gitBranch,
name: process.env.apiName ? process.env.apiName : "unknown",
url: process.env.apiURL,
cors: process.env.cors,
cors: process.env.cors && process.env.cors === "0" ? 0 : 1,
startTime: `${startTimestamp}`
});
break;

View file

@ -9,51 +9,46 @@
--red: rgb(255, 0, 61);
--gap: 0.5rem;
--gap-no-icon: 0.6rem;
--rainbow-gradient: linear-gradient(161deg,#ffe454,#ff6964,#fe85e5,#bd26fe,#587ae9,#8ded95);
}
@media (prefers-color-scheme: dark) {
:root {
--accent: rgb(225, 225, 225);
--accent-highlight: rgb(225, 225, 225, 4%);
--accent-subtext: rgb(110, 110, 110);
--accent-hover: rgb(25, 25, 25);
--accent-button-bg: rgb(20, 20, 20);
--accent-press: rgb(10, 10, 10);
--accent-unhover: rgb(100, 100, 100);
--accent-unhover-2: rgb(110, 110, 110);
--accent-button: rgb(20, 20, 20);
--subbackground: rgb(10, 10, 10);
--background: rgb(0, 0, 0);
--glow-transparency: 0.45;
}
}
@media (prefers-color-scheme: light) {
:root {
--accent: rgb(25, 25, 25);
--accent-highlight: rgb(25, 25, 25, 6%);
--accent-subtext: rgb(110, 110, 110);
--accent-hover: rgb(225, 225, 225);
--accent-button-bg: rgb(230, 230, 230);
--accent-press: rgb(240, 240, 240);
--accent-unhover: rgb(190, 190, 190);
--accent-unhover-2: rgb(110, 110, 110);
--accent-button: rgb(230, 230, 230);
--subbackground: rgb(240, 240, 240);
--background: rgb(255, 255, 255);
--glow-transparency: 0.6;
}
}
[data-theme="dark"] {
--accent: rgb(225, 225, 225);
--accent-highlight: rgb(225, 225, 225, 4%);
--accent-subtext: rgb(110, 110, 110);
--accent-hover: rgb(25, 25, 25);
--accent-button-bg: rgb(20, 20, 20);
--accent-press: rgb(10, 10, 10);
--accent-unhover: rgb(100, 100, 100);
--accent-unhover-2: rgb(110, 110, 110);
--accent-button: rgb(20, 20, 20);
--subbackground: rgb(10, 10, 10);
--background: rgb(0, 0, 0);
--glow-transparency: 0.45;
}
[data-theme="light"] {
--accent: rgb(25, 25, 25);
--accent-highlight: rgb(25, 25, 25, 6%);
--accent-subtext: rgb(110, 110, 110);
--accent-hover: rgb(225, 225, 225);
--accent-button-bg: rgb(230, 230, 230);
--accent-press: rgb(240, 240, 240);
--accent-unhover: rgb(190, 190, 190);
--accent-unhover-2: rgb(110, 110, 110);
--accent-button: rgb(230, 230, 230);
--subbackground: rgb(240, 240, 240);
--background: rgb(255, 255, 255);
--glow-transparency: 0.6;
}
html,
body {
@ -75,7 +70,7 @@ a {
-webkit-user-select: none;
}
::placeholder {
color: var(--accent-unhover-2);
color: var(--accent-subtext);
}
.switches::-webkit-scrollbar, #popup-content::-webkit-scrollbar {
display: none;
@ -92,7 +87,7 @@ a {
width: auto;
margin-right: var(--padding-1);
margin-bottom: var(--padding-1);
background: var(--accent-button-bg);
background: var(--accent-button);
}
.checkbox-label {
line-height: 1.3rem;
@ -148,19 +143,19 @@ input[type="text"],
.desktop .collapse-header:hover,
.desktop #close-button:hover {
background: var(--accent-hover);
box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset;
cursor: pointer;
}
button:active,
.switch:active,
.checkbox:active,
.text-to-copy:active {
background: var(--accent-press);
box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset;
cursor: pointer;
transform: scale(0.95);
}
.collapse-header:active {
background: var(--accent-press);
cursor: pointer;
box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset;
}
.switch.text-backdrop,
.switch.text-backdrop:hover,
@ -170,10 +165,11 @@ button:active,
.text-to-copy.text-backdrop:active {
background: var(--accent);
color: var(--background);
box-shadow: 0 0 0 0.1rem var(--accent-highlight) inset;
}
.picker-image:active {
cursor: pointer;
transform: scale(0.95)
transform: scale(0.95);
}
.button {
background: none;
@ -234,7 +230,7 @@ button:active,
color: var(--accent);
border: 0;
float: right;
border-bottom: 0.1rem solid var(--accent-unhover);
border-bottom: 0.1rem solid var(--accent-subtext);
outline: none;
font-size: 0.8rem;
}
@ -244,6 +240,7 @@ button:active,
padding: 0 1rem 0.2rem;
transform: none;
font-size: 1rem;
box-shadow: none!important;
}
#url-input-area:focus {
outline: none;
@ -260,7 +257,7 @@ button:active,
letter-spacing: -0.36rem;
}
#download-button:disabled {
color: var(--accent-unhover);
color: var(--accent-subtext);
cursor: not-allowed;
}
#footer {
@ -284,7 +281,7 @@ button:active,
}
.footer-button {
width: auto!important;
color: var(--accent-unhover-2);
color: var(--accent-subtext);
padding: var(--gap) 1.2rem!important;
align-content: center;
}
@ -404,12 +401,12 @@ button:active,
.popup-footer-content {
font-size: 0.8rem;
line-height: var(--line-height);
color: var(--accent-unhover-2);
border-top: 0.05rem solid var(--accent-unhover-2);
color: var(--accent-subtext);
border-top: 0.05rem solid var(--accent-subtext);
padding-top: 0.4rem;
}
#popup-above-title {
color: var(--accent-unhover-2);
color: var(--accent-subtext);
font-size: 0.8rem;
}
#popup-content {
@ -439,8 +436,8 @@ button:active,
.separator,
.category-title {
width: 100%;
color: var(--accent-unhover-2);
border-bottom: 0.05rem solid var(--accent-unhover-2);
color: var(--accent-subtext);
border-bottom: 0.05rem solid var(--accent-subtext);
padding-bottom: 0.25rem;
margin-bottom: calc(var(--gap-no-icon)*1.5);
}
@ -480,17 +477,17 @@ button:active,
font-size: 0.8rem;
text-align: left;
line-height: 1.3rem!important;
color: var(--accent-unhover-2);
color: var(--accent-subtext);
}
.subtext {
color: var(--accent-unhover-2);
color: var(--accent-subtext);
}
.switch {
padding: var(--gap-no-icon);
width: 100%;
text-align: left;
color: var(--accent);
background: var(--accent-button-bg);
background: var(--accent-button);
display: flex;
justify-content: center;
align-items: center;
@ -532,7 +529,7 @@ button:active,
.text-to-copy {
user-select: text;
-webkit-user-select: text;
background: var(--accent-button-bg);
background: var(--accent-button);
padding: var(--padding-1);
overflow: auto;
}
@ -572,19 +569,20 @@ button:active,
object-fit: cover;
width: inherit;
height: inherit;
cursor: pointer;
}
.picker-image-container {
width: 8rem;
height: 8rem;
margin-bottom: var(--padding-1);
background-color: var(--accent-button-bg);
background-color: var(--accent-button);
}
.picker-various-container {
height: 20rem;
width: 25rem;
margin-bottom: var(--padding-1);
background-color: var(--accent-button-bg);
border: var(--accent-button-bg) 0.18rem solid;
background-color: var(--accent-button);
border: var(--accent-button) 0.18rem solid;
position: relative;
}
#picker-holder {
@ -623,7 +621,7 @@ button:active,
padding: var(--gap) 1.2rem;
}
.collapse-list {
background: var(--accent-press);
background: var(--subbackground);
user-select: none;
-webkit-user-select: none;
}
@ -634,7 +632,7 @@ button:active,
flex-direction: row;
align-items: center;
cursor: pointer;
background: var(--accent-button-bg);
background: var(--accent-button);
}
.collapse-indicator {
transform: rotate(180deg);
@ -664,22 +662,22 @@ button:active,
#pd-share {
display: none;
}
#about-donate-footer::before {
content: "";
position: absolute;
height: 110%;
width: 32%;
background: var(--rainbow-gradient);
z-index: -2;
filter: blur(5px);
opacity: var(--glow-transparency);
}
#about-donate-footer:active::before {
opacity: 0;
#about-donate-footer {
box-shadow: 0 0 0 0.1rem var(--accent) inset;
}
.popup-tabs-child {
width: 100%;
}
.urgent-notice {
top: 1.7rem;
width: auto;
text-align: left;
position: absolute;
cursor: pointer;
display: flex;
justify-content: center;
align-items: center;
}
/* adapt the page according to screen size */
@media screen and (min-width: 2300px) {
html {
@ -770,7 +768,7 @@ button:active,
width: 90%;
}
.checkbox {
width: 100%;
width: calc(100% - 1.3rem);
}
}
@media screen and (max-width: 320px) {
@ -783,6 +781,9 @@ button:active,
font-size: 1.07rem;
line-height: 1.5rem;
}
.checkbox {
width: calc(100% - 1rem);
}
.footer-button,
#audioMode-false,
#audioMode-true,
@ -866,10 +867,6 @@ button:active,
flex-direction: column;
align-items: stretch;
}
#about-donate-footer::before {
height: 50%;
width: 50%;
}
.footer-pair .footer-button {
width: 100%!important;
}
@ -885,6 +882,9 @@ button:active,
flex-direction: column;
gap: var(--gap);
}
.urgent-notice {
width: 100%;
}
}
@media screen and (max-width: 949px) {
#picker-holder::-webkit-scrollbar {

View file

@ -1,7 +1,7 @@
const ua = navigator.userAgent.toLowerCase();
const isIOS = ua.match("iphone os");
const isMobile = ua.match("android") || ua.match("iphone os");
const version = 26;
const version = 30;
const regex = new RegExp(/https:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/);
const notification = `<div class="notification-dot"></div>`;
@ -448,6 +448,7 @@ window.onload = () => {
changeDownloadButton(0, '>>');
eid("cobalt-main-box").style.visibility = 'visible';
eid("footer").style.visibility = 'visible';
if (eid("urgent-notice")) eid("urgent-notice").style.visibility = 'visible';
eid("url-input-area").value = "";
notificationCheck();
loadCelebrationsEmoji();

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

View file

@ -94,7 +94,7 @@
"ChangelogPressToHide": "collapse",
"Donate": "donate",
"DonateSub": "help me keep it up",
"DonateExplanation": "{appName} does not (and will never) serve ads or sell your data, therefore it's <span class=\"text-backdrop\">completely free to use</span>. but turns out developing and keeping up a web service used by over 150,000 people is not that easy.\n\nif you ever found {appName} useful and want to help continue its development and support, or simply want to thank the developer, consider chipping in! every cent helps and is VERY appreciated :D\n\ncurrently, i have big (scaling) plans, and i need your help. {appName}'s usage is growing daily, so i need to make up for it. <span class=\"text-backdrop\">donations are more appreciated than ever.</span>\n\ni am yet to earn anything from {appName}, everything goes back to users, so you're essentially helping everyone.",
"DonateExplanation": "{appName} does not (and will never) serve ads or sell your data, therefore it's <span class=\"text-backdrop\">completely free to use</span>. but turns out developing and keeping up a web service used by over 200,000 people is not that easy.\n\nif you ever found {appName} useful and want to help continue its development and support, or simply want to thank the developer, consider chipping in! every cent helps and is VERY appreciated :D\n\ncurrently, i have big (scaling) plans, and i need your help. {appName}'s usage is growing daily, so i need to make up for it. <span class=\"text-backdrop\">donations are more appreciated than ever.</span>\n\ni am yet to earn anything from {appName}, everything goes back to users, so you're essentially helping everyone.",
"DonateVia": "donate via",
"DonateHireMe": "...or you can <a class=\"text-backdrop italic\" href=\"{s}\" target=\"_blank\">hire me</a> :)",
"SettingsVideoMute": "mute audio",
@ -104,7 +104,7 @@
"CollapseSupport": "support & source code",
"CollapsePrivacy": "privacy policy",
"ServicesNote": "this list is not final and keeps expanding over time, make sure to check it once in a while!",
"FollowSupport": "follow {appName} on mastodon or twitter for support, polls, news, and more:",
"FollowSupport": "keep in touch with {appName} for support, polls, news, and more:",
"SupportNote": "please note that questions and issues may take a while to respond to, there's only one person managing everything.",
"SourceCode": "report issues, explore source code, star or fork the repo:",
"PrivacyPolicy": "{appName}'s privacy policy is simple: no data about you is ever collected or stored. zero, zilch, nada, nothing.\nwhat you download is your business, not mine.\n\nsome non-backtraceable data does get temporarily stored when requested download requires live render. it's necessary for that feature to function.\n\nin that case, <span class=\"text-backdrop\">salted sha256 hash of your ip address</span> and information about requested stream are temporarily stored in server's RAM for <span class=\"text-backdrop\">2 minutes</span>. after 2 minutes all previously stored information is permanently removed. hash of your ip address is <span class=\"text-backdrop\">used for limiting stream access only to you</span>.\nno one (even me) has access to this data, because official {appName} codebase doesn't provide a way to read it outside of processing functions in the first place.\n\nyou can check {appName}'s <a class=\"text-backdrop italic\" href=\"{repo}\" target=\"_blank\">github repo</a> yourself and see that everything is as stated.",
@ -119,6 +119,8 @@
"SettingsVimeoPrefer": "vimeo downloads type",
"SettingsVimeoPreferDescription": "progressive: direct file link to vimeo's cdn. max quality is 1080p.\ndash: video and audio are merged by {appName} into one file. max quality is 4k.\n\npick \"progressive\" if you want best editor/player/social media compatibility. if progressive download isn't available, dash is used instead.",
"ShareURL": "share",
"ErrorTweetUnavailable": "couldn't find anything about this tweet. this could be because its visibility is limited. try another one!"
"ErrorTweetUnavailable": "couldn't find anything about this tweet. this could be because its visibility is limited. try another one!",
"UrgentUpdate6": "all network issues have been fixed!",
"ErrorReload": "i couldn't verify whether you have access to this stream. try again or refresh the page!"
}
}

View file

@ -1,115 +0,0 @@
{
"name": "español",
"substrings": {
"ContactLink": "<a class=\"text-backdrop\" href=\"{repo}\" target=\"_blank\">presenta un problema en github</a>"
},
"strings": {
"LinkInput": "pega tu enlace aquí",
"AboutSummary": "{appName} es tu lugar ideal para descargas de redes sociales. sin anuncios u otras mierdas sospechosas. ¡solo necesitas pegar un enlace y listo!",
"AboutSupportedServices": "servicios compatibles:",
"EmbedBriefDescription": "guarda contenido de redes sociales sin preocuparte por rastreadores",
"MadeWithLove": "hecho con <3 por wukko",
"AccessibilityInputArea": "cuadro de captura",
"AccessibilityOpenAbout": "abrir ventana emergente de acerca de",
"AccessibilityDownloadButton": "botón de descarga",
"AccessibilityOpenSettings": "abrir ventana emergente de ajustes",
"AccessibilityClosePopup": "cerrar la ventana emergente",
"AccessibilityOpenDonate": "abrir ventana emergente de donación",
"TitlePopupAbout": "¿qué es {appName}?",
"TitlePopupSettings": "ajustes",
"TitlePopupError": "oh-no...",
"TitlePopupChangelog": "¿qué hay de nuevo?",
"TitlePopupDonate": "apoya a {appName}",
"TitlePopupDownload": "descargar",
"ErrorSomethingWentWrong": "algo salió mal y no pude encontrar nada para ti. puedes intentar de nuevo, pero si el problema persiste, por favor {ContactLink}.",
"ErrorUnsupported": "parece que este servicio aún no es compatible o tu enlace no es válido.",
"ErrorBrokenLink": "{s} es compatible con cobalt, pero algo está mal con tu enlace. ¿tal vez no lo copiaste completamente?",
"ErrorNoLink": "¡no puedo adivinar qué quieres descargar! por favor introduce un enlace.",
"ErrorPageRenderFail": "algo salió mal y la página no se pudo procesar. si quieres que solucione esto, por favor {ContactLink}. sería útil si proporcionas el commit hash ({s}) junto con pasos de recreación, gracias :D",
"ErrorRateLimit": "estás haciendo demasiadas solicitudes. cálmate y vuelve a intentarlo en unos minutos.",
"ErrorCouldntFetch": "no se pudo obtener ninguna información sobre tu enlace. comprueba si tu enlace es correcto e inténtalo de nuevo.",
"ErrorLengthLimit": "el limite de duración actual es de {s} minutos. lo que intentaste descargar es mas largo que eso. ¡escoge otra cosa que descargar!",
"ErrorBadFetch": "algo salió mal con la obtención de info. puedes probar con un formato y una resolución diferentes o simplemente intentarlo de nuevo más tarde.",
"ErrorCorruptedStream": "parece que esta descarga está corrupta. inténtalo de nuevo o intenta con otro formato o resolución.",
"ErrorNoInternet": "parece que no hay internet o la api de {appName} no está disponible. revisa tu conexión e intenta de nuevo.",
"ErrorCantConnectToServiceAPI": "no pude conectarme a la api de {s} . parace que {s} no está disponible o la ip del servidor de {appName} fue bloqueada. inténtalo de nuevo mas tarde.",
"ErrorEmptyDownload": "parece que no hay nada que descargar. ¡intentalo de nuevo con otro enlace!",
"ErrorLiveVideo": "no se puede descargar un video en vivo. espera que termine la transmisión y vuelve a intentarlo.",
"SettingsAppearanceSubtitle": "apariencia",
"SettingsThemeSubtitle": "tema",
"SettingsFormatSubtitle": "formato de descarga",
"SettingsQualitySubtitle": "calidad",
"SettingsThemeAuto": "auto",
"SettingsThemeLight": "claro",
"SettingsThemeDark": "oscuro",
"SettingsQualitySwitchMax": "max",
"SettingsQualitySwitchHigh": "alta",
"SettingsQualitySwitchMedium": "media",
"SettingsQualitySwitchLow": "baja",
"SettingsQualitySwitchLowest": "mas baja",
"SettingsKeepDownloadButton": "mantener &gt;&gt; visible",
"AccessibilityKeepDownloadButton": "mantener el botón de descarga siempre visible",
"SettingsEnableDownloadPopup": "pregunta por la forma de guardar",
"AccessibilityEnableDownloadPopup": "preguntar qué hacer con las descargas",
"SettingsFormatDescription": "selecciona webm si necesitas la máxima calidad disponible. los videos webm suelen tener un mayor bitrate, pero los dispositivos ios no pueden reproducirlos de forma nativa.",
"SettingsQualityDescription": "si la calidad seleccionada no está disponible, la más cercana es elegida en su lugar.\nsi quieres publicar un vídeo de youtube en las redes sociales, selecciona una combinación de mp4 y 720p. esos videos normalmente no están en el códec av1, por lo que deberían reproducirse bien básicamente en todas partes.",
"LinkGitHubIssues": "&gt;&gt; informa sobre problemas y consulta el código fuente en github",
"LinkGitHubChanges": "&gt;&gt; mira los cambios anteriores y contribuye en github",
"NoScriptMessage": "{appName} usa javascript para las solicitudes de api y para la interfaz interactiva. tienes que permitir javascript en tu navegador para usar este sitio. no tenemos ningún anuncio ni rastreadores, lo prometo con el meñique.",
"DownloadPopupDescriptionIOS": "como tienes un dispositivo ios, debes mantener presionado el botón de descarga y luego seleccionar \"descargar video\" en la ventana emergente que aparece para guardar el video. esto será necesario mientras apple obligue a todos los desarrolladores de navegadores en ios a usar safari webview",
"DownloadPopupDescription": "el botón de descarga abre una nueva pestaña con el archivo solicitado. puedes desactivar esta ventana emergente en los ajustes.",
"DownloadPopupWayToSave": "elige una forma de guardar",
"ClickToCopy": "click para copiar",
"Download": "descargar",
"CopyURL": "copiar url",
"AboutTab": "acerca de",
"ChangelogTab": "changelog",
"DonationsTab": "donaciones",
"SettingsVideoTab": "vídeo",
"SettingsAudioTab": "audio",
"SettingsOtherTab": "otros",
"ChangelogLastMajor": "versión actual y commit",
"AccessibilityModeToggle": "cambiar el modo de descarga",
"DonateLinksDescription": "los enlaces de donación se abren en una nueva pestaña. esta es la mejor manera para donar dinero si quieres que lo reciba directamente.",
"SettingsAudioFormatBest": "mejor",
"SettingsAudioFormatDescription": "cuando seleccionas el formato mejor, obtienes audio en la mejor calidad disponible, porque el audio se mantiene en su formato original. si seleccionas otro formato obtendrás un archivo ligeramente comprimido",
"Keyphrase": "guarda lo que amas",
"SettingsRemoveWatermark": "desactivar marca de agua",
"ErrorPopupCloseButton": "vale",
"ErrorLengthAudioConvert": "el límite de duración actual para la conversión de audio es de {s} minutos. escoge el formato \"mejor\" !",
"SettingsAudioFullTikTok": "descargar el audio completo",
"SettingsAudioFullTikTokDescription": "se descarga el audio original o el sonido usado en el vídeo sin ningún cambio adicional por el autor del vídeo",
"ErrorCantGetID": "No pude obtener la info completa del enlace acortado. asegúrate de que funciona o prueba un enlace completo.",
"ErrorNoVideosInTweet": "este tweet no tiene videos o gifs. ¡inténtalo con otro!",
"ImagePickerTitle": "elige imágenes para descargar",
"ImagePickerDownloadAudio": "descargar audio",
"ImagePickerExplanationPC": "haz clic derecho en una imagen para guardarla.",
"ImagePickerExplanationPhone": "mantén presionada una imagen para guardarla.",
"ErrorNoUrlReturned": "el servidor no devolvió un enlace de descarga. Esto nunca debería suceder. recarga la página y vuelve a intentarlo, pero si eso no ayuda, {ContactLink}.",
"ErrorUnknownStatus": "he recibido una respuesta que no puedo procesar. lo más probable es que algo con el status esté mal. esto nunca debería suceder. recarga la página y vuelve a intentarlo, pero si eso no ayuda, {ContactLink}.",
"PasteFromClipboard": "pegar desde el portapapeles",
"FollowTwitter": "sigue la cuenta de {appName} en twitter para encuestas, actualizaciones y más: <a class=\"text-backdrop\" href=\"https://twitter.com/justusecobalt\" target=\"_blank\">@justusecobalt</a>",
"ChangelogOlder": "versiones anteriores",
"ChangelogPressToExpand": "presiona para expandir",
"Miscellaneous": "otros",
"ModeToggleAuto": "modo automático ",
"ModeToggleAudio": "modo audio",
"SettingsDisableNotifications": "ocultar burbujas de notificación",
"MediaPickerTitle": "elige qué guardar",
"MediaPickerExplanationPC": "haz clic o clic derecho para descargar lo que quieras.",
"MediaPickerExplanationPhone": "presiona o presiona y mantén pulsado para descargar lo que quieras.",
"MediaPickerExplanationPhoneIOS": "mantén presionado, oculta la vista previa, y luego selecciona \"descargar archivo enlazado\" para guardar.",
"TwitterSpaceWasntRecorded": "este espacio de twitter no fue grabado, así que no hay nada que descargar. ¡prueba con otro!",
"ErrorCantProcess": "no he podido procesar tu solicitud :(\npuedes intentarlo de nuevo, pero si el problema persiste, por favor {ContactLink}.",
"ChangelogPressToHide": "presiona para ocultar",
"Donate": "donar",
"DonateSub": "ayúdame a mantenerlo",
"DonateExplanation": "{appName} no muestra anuncios (y nunca lo hará) o vende tus datos, por lo tanto es <span class=\"text-backdrop\">completamente gratis de usar</span>. pero resulta ser que mantener un servicio web usado por miles de personas es más o menos costoso\n\nsi alguna vez has encontrado que {appName} te es útil y quieres mantenerlo en línea, o simplemente quieres darle las gracias al desarrollador, ¡concidera aportar algo! cada centavo ayuda y es MUY apreciado\n",
"DonateVia": "donar vía",
"DonateHireMe": "o, como alternativa, puedes <a class=\"text-backdrop\" href=\"{s}\" target=\"_blank\">contratarme</a>.",
"SettingsVideoMute": "silenciar audio",
"SettingsVideoMuteExplanation": "deshabilita el audio en el vídeo descargado cuando sea posible. obtendrás el archivo de vídeo fuente si los canales de vídeo y audio se sirven en dos archivos por el servicio de origen. se ignora cuando el modo de audio está encendido o si el servicio solo soporta audio.",
"SettingsVideoGeneral": "general",
"ErrorSoundCloudNoClientId": "no se pudo encontrar el client_id necesario para obtener datos de audio de soundcloud. Inténtalo de nuevo, y si el problema persiste, {ContactLink}."
}
}

View file

@ -1,101 +0,0 @@
{
"name": "français",
"substrings": {
"ContactLink": "<a class=\"text-backdrop\" href=\"{repo}\" target=\"_blank\">fais-moi signe</a>"
},
"strings": {
"LinkInput": "collez le lien ici",
"AboutSummary": "{appName} est l'endroit idéal pour télécharger sur les réseaux sociaux. zero pubs, trackers, ou toute autre connerie effrayante attachée. il suffit de coller un lien de partage et vous êtes prêt à vous lancer!",
"AboutSupportedServices": "services actuellement supportés:",
"EmbedBriefDescription": "sauvegarder le contenu des médias sociaux sans être suivi par des personnes mal intentionnées",
"MadeWithLove": "crée avec <3 par wukko et tous les contributeurs sur github (traduction par Greep)",
"AccessibilityInputArea": "zone de saisie du lien",
"AccessibilityOpenAbout": "ouvrir la fenêtre popup à propos",
"AccessibilityDownloadButton": "bouton de téléchargement",
"AccessibilityOpenSettings": "ouvrir la fenêtre popup des paramètres",
"AccessibilityOpenChangelog": "voir la fenêtre popup du journal des modifications",
"AccessibilityClosePopup": "fermer la popup",
"AccessibilityOpenDonate": "ouvrir une popup de donation",
"TitlePopupAbout": "c'est quoi {appName}?",
"TitlePopupSettings": "paramètres",
"TitlePopupError": "ah! c'est cringe là...",
"TitlePopupChangelog": "Quoi de neuf ?",
"TitlePopupDonate": "supporter {appName}",
"TitlePopupDownload": "télecharger",
"ErrorSomethingWentWrong": "quelque chose s'est mal passé et je n'ai rien pu obtenir pour vous. vous pouvez réessayer, mais si le problème persiste, s'il vous plaît {ContactLink}.",
"ErrorUnsupported": "il semble que ce service ne soit pas encore supporté ou que votre lien ne soit pas valide.",
"ErrorBrokenLink": "{s} est supporté, mais quelque chose ne va pas avec votre lien. peut-être que vous ne l'avez pas copié entièrement ?",
"ErrorNoLink": "je ne peux pas deviner ce que vous voulez télécharger ! s'il vous plaît donnez-moi un lien.",
"ErrorPageRenderFail": "quelque chose s'est mal passé et la page n'a pas pu s'afficher. Si c'est un problème récurrent ou critique, veuillez {ContactLink}. il serait utile de fournir le hash du commit actuel ({s}) et les étapes de recréation d'erreur. merci :D",
"ErrorRateLimit": "vous faites beaucoup trop de demandes. calmez-vous et réessayez dans quelques minutes.",
"ErrorCouldntFetch": "Impossible de récupérer les métadonnées. Vérifiez si votre lien est correct et réessayez.",
"ErrorLengthLimit": "la durée limite actuelle est de {s} minutes. ce que vous avez essayé de télécharger est plus long que {s} minutes. choisissez autre chose à télécharger !",
"ErrorBadFetch": "Quelque chose s'est mal passé avec la récupération des informations. Vous pouvez essayer un autre format et une autre résolution ou réessayer plus tard.",
"ErrorCorruptedStream": "ce téléchargement est malheureusement corrompu. essayez à nouveau ou essayez un format et une résolution différents.",
"ErrorNoInternet": "il n'y a pas d'internet ou l'api de {appName} est en panne. Vérifiez votre connexion et réessayez.",
"ErrorCantConnectToServiceAPI": "je n'ai pas pu me connecter à l'api de {s}. il semble que {s} soit hors service ou que l'ip du serveur {appName} soit bloqué. réessayez plus tard.",
"ErrorEmptyDownload": "il n'y a rien à télécharger. essayez autre chose !",
"ErrorLiveVideo": "je ne peux pas télécharger une vidéo en direct. attendez que le flux se termine et réessayez.",
"SettingsAppearanceSubtitle": "apparence",
"SettingsThemeSubtitle": "thème",
"SettingsFormatSubtitle": "télecharger le format",
"SettingsMiscSubtitle": "plus de paramètres",
"SettingsDownloadsSubtitle": "télechargement",
"SettingsQualitySubtitle": "qualité",
"SettingsThemeAuto": "auto",
"SettingsThemeLight": "clair",
"SettingsThemeDark": "sombre",
"SettingsQualitySwitchMax": "max",
"SettingsQualitySwitchHigh": "haute",
"SettingsQualitySwitchMedium": "moyenne",
"SettingsQualitySwitchLow": "basse",
"SettingsQualitySwitchLowest": "plus basse",
"SettingsKeepDownloadButton": "garder &gt;&gt; visible",
"AccessibilityKeepDownloadButton": "garder le bouton de téléchargement toujours visible",
"SettingsEnableDownloadPopup": "demander un moyen de sauvegarder",
"AccessibilityEnableDownloadPopup": "demander ce qu'il faut faire avec les téléchargements",
"SettingsFormatDescription": "sélectionnez webm si vous avez besoin de la qualité maximale disponible. les vidéos webm sont généralement de meilleure qualité mais les appareils ios ne peuvent pas les lire en natif.",
"SettingsQualityDescription": "si la résolution choisie n'est pas disponible, la résolution la plus proche est choisie à la place. si vous voulez poster une vidéo youtube sur twitter, choisissez une combinaison de mp4 et 720p. twitter aime beaucoup plus les vidéos de ce type.",
"DonateSubtitle": "aidez-moi à payer l'hébergement",
"DonateDescription": "je n'aime pas vraiment la crypto dans son état actuel, mais c'est le seul moyen fiable pour moi de recevoir de l'argent et de payer quoi que ce soit à l'étranger.",
"LinkGitHubIssues": "&gt;&gt; signaler les problèmes et consulter le code source sur github",
"LinkGitHubChanges": "&gt;&gt; voir les changements précédents et contribuer sur github",
"LinkDonateContact": "&gt;&gt; faites-moi savoir si la monnaie que vous voulez donner n'est pas listée",
"NoScriptMessage": "{appName} utilise javascript pour les demandes d'api et l'interface interactive. vous devez autoriser javascript pour utiliser ce site. nous n'avons pas de publicités ou de traceurs, c'est promis.",
"DownloadPopupDescriptionIOS": "comme vous avez un appareil ios, vous devez appuyer sur le bouton de téléchargement et le maintenir enfoncé, puis sélectionner \"télécharger la vidéo\" dans la fenêtre popup qui apparaît pour enregistrer la vidéo. cela sera nécessaire tant qu'apple imposera safari webview à tous les développeurs de navigateurs sur ios.",
"DownloadPopupDescription": "le bouton de téléchargement ouvre un nouvel onglet avec le fichier demandé. vous pouvez désactiver cette popup dans les paramètres.",
"DownloadPopupWayToSave": "choisissez un moyen de sauvegarder",
"ClickToCopy": "appuyer pour copier",
"Download": "télecharger",
"CopyURL": "copier l'url",
"AboutTab": "à propos",
"ChangelogTab": "journal de modifications",
"DonationsTab": "donations",
"SettingsVideoTab": "vidéo",
"SettingsAudioTab": "audio",
"SettingsOtherTab": "autre",
"ChangelogLastCommit": "dernier commit",
"ChangelogLastMajor": "dernière mise à jour majeure",
"AccessibilityModeToggle": "basculer le mode de téléchargement",
"DonateLinksDescription": "les liens vers les dons s'ouvrent dans un nouvel onglet. c'est la meilleure façon de donner de l'argent, si vous voulez que je le reçoive directement.",
"SettingsAudioFormatBest": "meilleure",
"SettingsAudioFormatDescription": "lorsque le meilleur format est sélectionné, vous obtenez l'audio dans la meilleure qualité disponible, car l'audio est conservé dans son format d'origine. si vous sélectionnez autre chose, vous obtiendrez un fichier légèrement compressé.",
"Keyphrase": "sauvegardez ce que vous aimez",
"SettingsDisableChangelogOnUpdate": "ne pas afficher le journal de modifications après les mises à jour majeures",
"SettingsRemoveWatermark": "désactiver le filigrane",
"ErrorPopupCloseButton": "fermer",
"ModeToggle": "mode",
"ModeToggleSmart": "intélligent",
"ErrorLengthAudioConvert": "la longueur limite actuelle pour la conversion audio est de {s} minutes. choisissez plutôt le format \"meilleure\" !",
"SettingsAudioFullTikTok": "télécharger l'audio complet",
"SettingsAudioFullTikTokDescription": "cet audio est le plus souvent de la musique ou un son original utilisé dans une vidéo. un audio sans voix off, tts, ou découpage sera téléchargé, s'il est disponible, bien sûr.",
"ErrorCantGetID": "Je n'ai pas pu obtenir les informations complètes à partir du lien raccourci. Assurez-vous que cela fonctionne ou essayez un lien complet.",
"ErrorNoVideosInTweet": "Ce tweet n'a pas de vidéos ou de gifs. Essayez un autre !",
"ImagePickerTitle": "choisir les images à télécharger",
"ImagePickerDownloadAudio": "Télécharger l'audio",
"ImagePickerExplanationPC": "faites un clic droit sur une image pour l'enregistrer.",
"ImagePickerExplanationPhone": "appuyez et maintenez une image enfoncée pour l'enregistrer.",
"ErrorNoUrlReturned": "le serveur n'a pas retourné de lien de téléchargement. Cela ne devrait jamais se produire. Rechargez la page et réessayez, mais si cela n'aide pas, {ContactLink}.",
"ErrorUnknownStatus": "J'ai reçu une réponse que je ne peux pas traiter. Il est fort probable que quelque chose avec le statut est erroné. cela ne devrait jamais arriver. Rechargez la page et réessayez, mais si cela n'aide pas, {ContactLink}."
}
}

View file

@ -1,74 +0,0 @@
{
"name": "indonesia",
"substrings": {
"ContactLink": "<a class=\"text-backdrop\" href=\"{repo}\" target=\"_blank\">beri tau saya</a>"
},
"strings": {
"LinkInput": "tempel link kamu disini",
"AboutSummary": "{appName} adalah tempat terbaik kamu untuk download video sosial media tanpa iklan, pelacak, atau omong kosong lainnya. tinggal tempel link dan udah deh",
"AboutSupportedServices": "layanan yang didukung:",
"EmbedBriefDescription": "simpan konten dari sosial media tanpa hal aneh mengikuti kamu",
"AccessibilityInputArea": "tempat tempel link",
"AccessibilityOpenAbout": "buka bagian pengantar",
"AccessibilityDownloadButton": "tombol download",
"AccessibilityOpenSettings": "buka pengaturan",
"AccessibilityOpenChangelog": "buka log perubahan",
"AccessibilityClosePopup": "tutup popup ini",
"AccessibilityOpenDonate": "buka bagian donasi",
"TitlePopupAbout": "apa itu {appName}?",
"TitlePopupSettings": "pengaturan",
"TitlePopupError": "uh-oh...",
"TitlePopupChangelog": "apa yang baru?",
"TitlePopupDonate": "dukung {appName}",
"TitlePopupDownload": "download",
"ErrorSomethingWentWrong": "ada yang tidak beres dan saya tidak bisa mendapatkan apa-apa untuk kamu. tolong coba lagi, tapi kalo masih tidak bisa, tolong kontak {ContactLink}.",
"ErrorUnsupported": "sepertinya layanan atau sosial media kamu belom didukung oleh kita atau link kamu tidak sah.",
"ErrorBrokenLink": "{s} sudah didukung kita, tapi ada sesuatu yang salah dengan link kamu, mungkin kamu belom salin sepenuhnya?",
"ErrorNoLink": "saya tidak bisa menebak apa yang kamu mau download! tolong tempel link yang benar.",
"ErrorPageRenderFail": "ada sesuatu yang salah dan halaman tidak bisa dirender. kalo masalah ini terus berulang tolong beritahu {ContactLink}. akan sangat membantu kalo kamu juga tuliskan commit hash sekarang ({s}) dan langkah-langkah rekreasi error ini, terima kasih :D",
"ErrorRateLimit": "kamu membuat terlalu banyak permintaan. tunggu sebentar dan coba sebentar lagi.",
"ErrorCouldntFetch": "kita tidak bisa mendapatkan metadata. coba cek link kamu benar atau tidak dan coba lagi.",
"ErrorLengthLimit": "batas panjang file saat ini adalah {s} menit. hal yang kamu coba download itu lebih panjang dari {s} menit, pilih file lain untuk didownload!",
"ErrorBadFetch": "ada sesuatu yang salah saat pengambilan info. coba ganti pilihan format atau resolusi file, atau coba lagi nanti.",
"ErrorCorruptedStream": "download file ini sayangnya rusak. coba lagi atau coba memakai pilihan format dan resolusi yang beda.",
"ErrorNoInternet": "tidak ada internet atau api {AppName} sedang tidak tersedia. coba cek internet kamu dan coba lagi.",
"ErrorCantConnectToServiceAPI": "kita tidak bisa tidak bisa menghubungi api {s}. sepertinya {s} lagi tidak tersedia atau ip server {appName} diblokir. coba lagi nanti.",
"ErrorEmptyDownload": "tidak ada konten media untuk didownload. coba sesuatu yang lain!",
"ErrorLiveVideo": "kita tidak bisa mendownload video siaran langsung yang sedang berlangsung. tunggu untuk siaran langsungnya untuk selesai dan coba lagi.",
"ErrorNoStreamID": "streamId itu tidak ditemukan.",
"ErrorNoType": "tidak ada tipe respons yang diekspektasikan.",
"SettingsAppearanceSubtitle": "penampilan",
"SettingsThemeSubtitle": "tema",
"SettingsFormatSubtitle": "format download",
"SettingsMiscSubtitle": "pengaturan lebih lanjut",
"SettingsDownloadsSubtitle": "download",
"SettingsQualitySubtitle": "kualitas",
"SettingsThemeAuto": "otomatis",
"SettingsThemeLight": "terang",
"SettingsThemeDark": "gelap",
"SettingsQualitySwitchMax": "maksimal",
"SettingsQualitySwitchHigh": "tinggi",
"SettingsQualitySwitchMedium": "sedang",
"SettingsQualitySwitchLow": "rendah",
"SettingsQualitySwitchLowest": "paling rendah",
"SettingsFormatSwitchAudio": "audio saja",
"SettingsKeepDownloadButton": "biarkan &gt;&gt; tetap terlihat",
"AccessibilityKeepDownloadButton": "biarkan tombol download selalu kelihatan",
"SettingsEnableDownloadPopup": "tanya cara untuk simpan",
"AccessibilityEnableDownloadPopup": "tanyakan apa yang dilakukan dengan file yang baru didownload",
"SettingsFormatDescription": "pilih webm kalo kamu butuh kualitas tertinggi. kualitas video webm biasanya lebih tinggi tapi perangkat ios tidak bisa menjalankannya secara native.",
"SettingsQualityDescription": "jika resolusi yang dipilih tidak tersedia, resolusi yang dipilih akan diganti dengan resolusi tersedia yang terdekat. kalo kamu mau kirim video youtube di twitter, pilih kombinasi mp4 dan 720p. twitter lebih suka video seperti itu.",
"DonateSubtitle": "sekarang lagi susah untuk bayar hosting bagi saya",
"DonateDescription": "saya tidak suka crypto dengan keadaannya sekarang, tetapi saat ini itu adalah satu-satunya cara bagi saya untuk membayar apa pun yang di luar negeri. kartu mastercard/visa dan layanan yang mirip seperti paypal tidak lagi menjadi pilihan.",
"LinkGitHubIssues": "&gt;&gt; laporkan masalah atau liat source code di github",
"LinkGitHubChanges": "&gt;&gt; liat perubahan sebelumnya dan berkontribusi di github",
"LinkDonateContact": "&gt;&gt; beri tau saya jika mata uang yg kamu mau donasi belom ada di atas",
"NoScriptMessage": "{appName} memakai javascript untuk permintaan api dan ui interaktif. kamu harus mengizinkan javascript untuk menggunakan situs ini. kita tidak punya iklan atau pelacak, saya janji.",
"DownloadPopupDescriptionIOS": "karena kamu punya perangkat ios, kamu harus teken lama tombol download dan pilih \"download video\" di popup yang muncul untuk menyimpan videonya. ini akan diperlukan selama apple memaksa webview safari pada semua browser developer di ios.",
"DownloadPopupDescription": "tombol download membuka tab baru dengan file yang diminta. kamu bisa menonaktifkan popup ini di pengaturan.",
"DownloadPopupWayToSave": "pilih cara untuk disimpan",
"ClickToCopy": "tekan untuk salin",
"Download": "download",
"CopyURL": "salin url"
}
}

View file

@ -1,101 +0,0 @@
{
"name": "italiano",
"substrings": {
"ContactLink": "<a class=\"text-backdrop\" href=\"{repo}\" target=\"_blank\">contatta il gestore/a>"
},
"strings": {
"LinkInput": "incolla qui il link",
"AboutSummary": "{appName} è il sito perfetto per scaricare media dai social. niente pubblicità, trackers, o altre minchiate. incolla un link e via!",
"AboutSupportedServices": "servizi attualmente supportati:",
"EmbedBriefDescription": "salva contenuti dai social media senza alcun fastidio",
"MadeWithLove": "realizzato con <3 da wukko",
"AccessibilityInputArea": "qui puoi inserire un link",
"AccessibilityOpenAbout": "apri la sezione info",
"AccessibilityDownloadButton": "tasto download",
"AccessibilityOpenSettings": "apri le impostazioni",
"AccessibilityOpenChangelog": "apri la sezione aggiornamenti",
"AccessibilityClosePopup": "chiudi la finestra",
"AccessibilityOpenDonate": "apri sezione donazioni",
"TitlePopupAbout": "cos'è {appName}?",
"TitlePopupSettings": "impostazioni",
"TitlePopupError": "uh-oh...",
"TitlePopupChangelog": "cosa c'è di nuovo?",
"TitlePopupDonate": "supporta {appName}",
"TitlePopupDownload": "scarica",
"ErrorSomethingWentWrong": "qualcosa è andato storto e non ho potuto effettuare il download. puoi riprovare, ma se il problema persiste, {ContactLink}",
"ErrorUnsupported": "il servizio non è ancora supportato, oppure il tuo link è invalido.",
"ErrorBrokenLink": "{s} è supportato, ma c'è qualcosa che non va con il tuo link. forse non lo hai copiato completamente?",
"ErrorNoLink": "non posso indovinare cosa vuoi scaricare! inserisci un link.",
"ErrorPageRenderFail": "qualcosa è andato storto e la pagina non è riuscita a renderizzare. se il problema persiste, {ContactLink}. se è possibile, specifica l'hash del commit attuale ({s}) e i passaggi per ricreare l'errore. grazie in anticipo :D",
"ErrorRateLimit": "stai facendo troppe richieste! datti una calmata e riprova tra un po'.",
"ErrorCouldntFetch": "non ho potuto ottenere informazioni sul tuo link. controlla di averlo inserito correttamente e riprova.",
"ErrorLengthLimit": "spiacenti! il limite di lunghezza attuale è di {s} minuti. il video che hai provato a scaricare è più lungo di {s} minuti.",
"ErrorBadFetch": "si è verificato un errore quando ho cercato di ottenere informazioni sul tuo link. controlla se sia funzionante e riprova.",
"ErrorCorruptedStream": "purtroppo questo download è corrotto. prova di nuovo, oppure prova a cambiare formato o risoluzione.",
"ErrorNoInternet": "la connessione è assente oppure ci sono problemi con l'api di {appName}. controlla la tua connessione e riprova.",
"ErrorCantConnectToServiceAPI": "non riesco a connettermi all'api di {s}. sembra ci siano problemi con {s} o che l'ip di {appName} sia stato bloccato. riprova più tardi.",
"ErrorEmptyDownload": "non vedo nulla che possa scaricare da qui. prova un link diverso.",
"ErrorLiveVideo": "non posso guardare nel futuro e scaricare una diretta in corso! aspetta che la diretta finisca e riprova.",
"SettingsAppearanceSubtitle": "aspetto",
"SettingsThemeSubtitle": "tema",
"SettingsFormatSubtitle": "formato download",
"SettingsMiscSubtitle": "altre impostazioni",
"SettingsDownloadsSubtitle": "download",
"SettingsQualitySubtitle": "qualità",
"SettingsThemeAuto": "automatico",
"SettingsThemeLight": "chiaro",
"SettingsThemeDark": "scuro",
"SettingsQualitySwitchMax": "massima",
"SettingsQualitySwitchHigh": "alta",
"SettingsQualitySwitchMedium": "media",
"SettingsQualitySwitchLow": "bassa",
"SettingsQualitySwitchLowest": "minima",
"SettingsKeepDownloadButton": "mantieni &gt;&gt; visibile",
"AccessibilityKeepDownloadButton": "mantieni il tasto download sempre visibile",
"SettingsEnableDownloadPopup": "abilita il popup di esplora risorse al download",
"AccessibilityEnableDownloadPopup": "abilita il popup di esplora risorse al download",
"SettingsFormatDescription": "il formato webm offre qualità maggiore, ma potrebbe non essere supportato da alcuni sistemi operativi, come ios.",
"SettingsQualityDescription": "se la risoluzione selezionata non è disponibile, verrà scelta quella più vicina. se vuoi postare il video su twitter, scegliere il formato mp4 a 720p creerà meno problemi.",
"DonateSubtitle": "aiutami a pagare per l'hosting",
"DonateDescription": "le crypto nel loro stato attuale non mi fanno impazzire, ma per me è l'unico modo affidabile per ricevere e pagare soldi con i paesi esteri.",
"LinkGitHubIssues": "&gt;&gt; segnala problemi e visualizza il codice sorgente su github",
"LinkGitHubChanges": "&gt;&gt; vedi i cambiamenti precedenti e contribuisci su github",
"LinkDonateContact": "&gt;&gt; fammi sapere se la valuta che vuoi donare non è elencata",
"NoScriptMessage": "{appName} utilizza javascript per le richieste api e l'interfaccia utente. devi abilitare javascript per questo sito. non ci sono tracker o pubblicità, promesso!",
"DownloadPopupDescriptionIOS": "visto che hai un dispositivo ios, devi tenere premuto il tasto download e selezionare \"scarica video\" nel popup che appare. questo sarà necessario fin quando apple non smetterà di forzare safari webview su tutti i browser per ios.",
"DownloadPopupDescription": "il tasto download apre una nuova scheda con il file richiesto. puoi disabilitare questo popup nelle impostazioni.",
"DownloadPopupWayToSave": "scegli un modo per scaricare",
"ClickToCopy": "premi per copiare",
"Download": "scarica",
"CopyURL": "copia url",
"AboutTab": "info",
"ChangelogTab": "cambiamenti",
"DonationsTab": "donazioni",
"SettingsVideoTab": "video",
"SettingsAudioTab": "audio",
"SettingsOtherTab": "altro",
"ChangelogLastCommit": "ultimo commit (in inglese)",
"ChangelogLastMajor": "ultimo aggiornamento principale (in inglese)",
"AccessibilityModeToggle": "alternare la modalità download",
"DonateLinksDescription": "i link di donazione si apriranno in una nuova scheda. questo è il modo migliore per donare soldi, se vuoi che li riceva direttamente.",
"SettingsAudioFormatBest": "migliore",
"SettingsAudioFormatDescription": "quando il formato \"migliore\" viene selezionato, sarà scaricato in formato originale, con la qualità migliore possibile. scegliendo altri formati, ci sarà una leggera compressione.",
"Keyphrase": "salva ciò che ami",
"SettingsDisableChangelogOnUpdate": "non mostrare le novità dopo aggiornamenti principali",
"SettingsRemoveWatermark": "rimuovi filigrana",
"ErrorPopupCloseButton": "capito",
"ModeToggle": "modalità",
"ModeToggleSmart": "inteligente",
"ErrorLengthAudioConvert": "il limite di lunghezza attuale per la conversione audio è di {s} minuti. scegli il formato \"migliore\" se vuoi evitare limitazioni.",
"SettingsAudioFullTikTok": "scarica l'audio completo",
"SettingsAudioFullTikTokDescription": "scarica l'audio originale del video senza cambiamenti aggiuntivi dell'autore.",
"ErrorCantGetID": "non ho potuto ottenere informazioni sufficienti dal link accorciato. assicurati che funzioni, o prova con il link completo.",
"ErrorNoVideosInTweet": "questo tweet non contiene video o gif. provane un altro.",
"ImagePickerTitle": "scegli le immagini da scaricare",
"ImagePickerDownloadAudio": "scarica l'audio",
"ImagePickerExplanationPC": "fai clic destro su un'immagine per salvarla.",
"ImagePickerExplanationPhone": "tieni premuto su un'immagine per salvarla.",
"ErrorNoUrlReturned": "il server non ha restituito un link di download. questo non avrebbe dovuto succedere. ricarica la pagina e riprova, ma se il problema persiste, {ContactLink}",
"ErrorUnknownStatus": "ho ricevuto una risposta che non posso elaborare. questo non avrebbe dovuto succedere. ricarica la pagina e riprova, ma se il problema persiste, {ContactLink}"
}
}

View file

@ -1,101 +0,0 @@
{
"name": "nederlands",
"substrings": {
"ContactLink": "<a class=\"text-backdrop\" href=\"{repo}\" target=\"_blank\">laat het me weten</a>"
},
"strings": {
"LinkInput": "plak de link hier",
"AboutSummary": "{appName} is je go-to plaats voor social media downloads. zonder advertenties, trackers, of wat voor creepy bullshit dan ook. plak gewoon een link en je bent er klaar voor!",
"AboutSupportedServices": "ondersteunde apps:",
"EmbedBriefDescription": "bewaar content van sociale media zonder creeps die je volgen",
"MadeWithLove": "met <3 gemaakt door wukko",
"AccessibilityInputArea": "link input plek",
"AccessibilityOpenAbout": "open over popup",
"AccessibilityDownloadButton": "download knop",
"AccessibilityOpenSettings": "instellingen openen popup",
"AccessibilityOpenChangelog": "bekijk de changelog popup ",
"AccessibilityClosePopup": "sluit de popup",
"AccessibilityOpenDonate": "open donatie popup",
"TitlePopupAbout": "wat is {appName}?",
"TitlePopupSettings": "instellingen",
"TitlePopupError": "oeps...",
"TitlePopupChangelog": "wat is er nieuw?",
"TitlePopupDonate": "ondersteun {appName}",
"TitlePopupDownload": "download",
"ErrorSomethingWentWrong": "er is iets misgegaan en ik kon niks voor je krijgen. je kan het opnieuw proberen, maar als het probleem door blijft gaan, please {ContactLink}.",
"ErrorUnsupported": "het lijkt erop dat deze service nog niet ondersteund word, of je link is ongeldig.",
"ErrorBrokenLink": "{s} wordt ondersteund, maar er is iets mis met de link, misschien heb je de link niet volledig gekopieerd?",
"ErrorNoLink": "ik kan je gedachten niet lezen! voer hier een link in.",
"ErrorPageRenderFail": "er is iets misgegaan en de pagina kan niet worden weergegeven. als het de hele tijd gebeurt, neem dan contact op: {ContactLink}. het zou handig zijn als je de huidige commit-hash ({s}) en de stappen om de error te laten gebeuren zou opgeven. bedankt :D",
"ErrorRateLimit": "je maakt te veel verzoeken. probeer opnieuw in een paar minuten.",
"ErrorCouldntFetch": "kan metadata niet ophalen. kijk of de link correct is en probeer opnieuw.",
"ErrorLengthLimit": "huidige lengtelimiet is {s} minuten. wat je geprobeerd hebt om te downloaden is langer dan {s} minuten. kies iets anders om te downloaden!",
"ErrorBadFetch": "er is iets misgegaan met het ophalen van info. je kan een ander formaat en resolutie kiezen of opnieuw proberen.",
"ErrorCorruptedStream": "deze download is helaas beschadigd. probeer het opnieuw of probeer een ander formaat en resolutie",
"ErrorNoInternet": "er is geen internet of de api van {appName} is niet beschikbaar. controleer je verbinding en probeer het opnieuw.",
"ErrorCantConnectToServiceAPI": "ik kon geen verbinding maken met {s} api. het lijkt erop dat {s} niet beschikbaar is of dat het server-ip van {appName} is geblokkeerd. probeer later opnieuw",
"ErrorEmptyDownload": "er is niks te downloaden. probeer iets anders!",
"ErrorLiveVideo": "ik kan geen live video downloaden. wacht tot de stream afgelopen is en probeer opnieuw.",
"SettingsAppearanceSubtitle": "uiterlijk",
"SettingsThemeSubtitle": "thema",
"SettingsFormatSubtitle": "download formaat",
"SettingsMiscSubtitle": "meer instellingen",
"SettingsDownloadsSubtitle": "downloads",
"SettingsQualitySubtitle": "kwaliteit",
"SettingsThemeAuto": "automatisch",
"SettingsThemeLight": "licht",
"SettingsThemeDark": "donker",
"SettingsQualitySwitchMax": "max",
"SettingsQualitySwitchHigh": "hoog",
"SettingsQualitySwitchMedium": "medium",
"SettingsQualitySwitchLow": "laag",
"SettingsQualitySwitchLowest": "laagst",
"SettingsKeepDownloadButton": "laat &gt;&gt; zichtbaar blijven",
"AccessibilityKeepDownloadButton": "laat de download know altijd zichtbaar blijven",
"SettingsEnableDownloadPopup": "vraag voor een manier om op te slaan",
"AccessibilityEnableDownloadPopup": "vraag wat te doen met de downloads",
"SettingsFormatDescription": "selecteer webm als je maximale beschikbare kwaliteit nodig hebt. webm video's zijn meestal van hogere kwaliteit, maar ios apparaten kunnen ze niet native afspelen.",
"SettingsQualityDescription": "als de geselecteerde resolutie niet beschikbaar is, wordt in plaats daarvan de dichtstbijzijnde gekozen. als je een youtube video op twitter wil plaatsen, selecteer dan een combinatie van mp4 en 720p. twitter houdt meer van zulke video's.",
"DonateSubtitle": "help me met het betalen van hosting",
"DonateDescription": "ik hou niet echt van crypto in zijn huidige staat, maar het is de enige betrouwbare manier voor mij om geld te ontvangen en te betalen voor iets in het buitenland.",
"LinkGitHubIssues": "&gt;&gt; meld problemen en bekijk de broncode op github",
"LinkGitHubChanges": "&gt;&gt; zie eerdere wijzigingen en draag bij op github",
"LinkDonateContact": "&gt;&gt; laat het me weten als de geld soort die je wil doneren niet in de lijst staat",
"NoScriptMessage": "{appName} gebruikt javascript voor api-verzoeken en interactieve interface. je moet javascript toestaan om deze site te gebruiken. we hebben geen advertenties of trackers, pinky promise.",
"DownloadPopupDescriptionIOS": "omdat je een ios-apparaat hebt, moet je de downloadknop ingedrukt houden en vervolgens \"download video\" selecteren in de verschenen pop-up om de video op te slaan. dit moet zolang Apple alle browserontwikkelaars op ios een safari webview forceert.",
"DownloadPopupDescription": "download knop opent een nieuw tabblad met het gevraagde bestand. je kunt deze popup uitschakelen in instellingen.",
"DownloadPopupWayToSave": "kies een manier om op te slaan",
"ClickToCopy": "click om te kopiëren",
"Download": "download",
"CopyURL": "kopieër url",
"AboutTab": "over",
"ChangelogTab": "veranderingen",
"DonationsTab": "donaties",
"SettingsVideoTab": "video",
"SettingsAudioTab": "audio",
"SettingsOtherTab": "ander",
"ChangelogLastCommit": "laatste commit",
"ChangelogLastMajor": "laatste grote update",
"AccessibilityModeToggle": "zet download modus aan of uit",
"DonateLinksDescription": "donatie linken openen in een nieuw tabblad. dit is de beste manier om geld te doneren, als je wil dat ik het direct krijg.",
"SettingsAudioFormatBest": "beste",
"SettingsAudioFormatDescription": "wanneer het formaat geselecteerd wordt, krijg je de audio in de beste kwaliteit beschikbaar, omdat de audio in zijn originele formaat is gebleven. als je iets anders selecteert dan dat, krijg je een lichtelijk gecompresseerd bestand.",
"Keyphrase": "sla op wat je houdt",
"SettingsDisableChangelogOnUpdate": "laat changelog niet zien na grote updates",
"SettingsRemoveWatermark": "zet watermark uit",
"ErrorPopupCloseButton": "snappie",
"ModeToggle": "modus",
"ModeToggleSmart": "slim",
"ErrorLengthAudioConvert": "huidige limit voor de lengte van audioconversie is {s} minuten. kies optie \"beste\" om limieten te voorkomen.",
"SettingsAudioFullTikTok": "download volledige audio",
"SettingsAudioFullTikTokDescription": "download de originele audio/geluid dat in de video gebruikt is, zonder extra veranderingen van de video auteur.",
"ErrorCantGetID": "ik kon niet de volledige info krijgen van de verkorte link, zorg ervoor dat het werkt of probeer de volledige link.",
"ErrorNoVideosInTweet": "deze tweet heeft geen video's of gifs. probeer een andere!",
"ImagePickerTitle": "kies afbeeldingen om te downloaden",
"ImagePickerDownloadAudio": "download audio",
"ImagePickerExplanationPC": "klik met de rechtermuisknop om een afbeelding op te slaan.",
"ImagePickerExplanationPhone": "houd een afbeelding ingedrukt om op te slaan.",
"ErrorNoUrlReturned": "server heeft geen downloadlink teruggegeven, dit zou nooit moeten gebeuren. ververs de pagina en probeer opnieuw, maar wanneer dit niet helpt, {ContactLink}.",
"ErrorUnknownStatus": "ik heb een antwoord ontvangen dat ik niet kan verwerken. hoogstwaarschijnlijk iets dat met de status fout is, dit hoort nooit te gebeuren. ververs de pagina en probeer opnieuw, maar wanneer dit niet helpt, {ContactLink}."
}
}

View file

@ -1,111 +0,0 @@
{
"name": "polski",
"substrings": {
"ContactLink": "<a class=\"text-backdrop\" href=\"{repo}\" target=\"_blank\">daj mi znać</a>"
},
"strings": {
"LinkInput": "wklej link tutaj",
"AboutSummary": "{appName} to najlepsze miejsce do pobierania z mediów społecznościowych. zero reklam, śledzenia i innych podobnych głupot. po prostu wklejasz link i lecisz!",
"AboutSupportedServices": "aktualnie wspierane strony:",
"EmbedBriefDescription": "pobieraj rzeczy z social mediów bez reklam i śledzenia",
"MadeWithLove": "zrobione z <3 przez wukko",
"AccessibilityInputArea": "pole wklejania linku",
"AccessibilityOpenAbout": "otwórz okno informacji",
"AccessibilityDownloadButton": "przycisk pobierania",
"AccessibilityOpenSettings": "otwórz okno ustawień",
"AccessibilityOpenChangelog": "otwórz okno aktualizacji",
"AccessibilityClosePopup": "zamknij okno",
"AccessibilityOpenDonate": "otwórz okno darowizn",
"TitlePopupAbout": "czym jest {appName}?",
"TitlePopupSettings": "ustawienia",
"TitlePopupError": "ups...",
"TitlePopupChangelog": "co nowego?",
"TitlePopupDonate": "wesprzyj {appName}",
"TitlePopupDownload": "pobierz",
"ErrorSomethingWentWrong": "coś poszło nie tak i nie udało się niczego dla ciebie pobrać. możesz spróbować jeszcze raz, ale jeżeli problem nie ustąpi, {ContactLink}.",
"ErrorUnsupported": "wygląda na to, że ta strona nie jest jeszcze wspierana, albo twój link jest nieprawidłowy.",
"ErrorBrokenLink": "{s} jest wspierany, ale coś jest nie tak z twoim linkiem. może nie został skopiowany w całości?",
"ErrorNoLink": "nie potrafię czytać ci w myślach! proszę, daj mi link",
"ErrorPageRenderFail": "coś poszło nie tak i strona nie mogła zostać wyrenderowana. jeżeli problem jest krytyczny lub się powtarza, proszę {ContactLink}. byłoby dobrze gdybym otrzymał hash commita ({s}) i kroki do odtworzenia błędu. dzięki :D",
"ErrorRateLimit": "wysyłasz zbyt dużo żądań. uspokój się i spróbuj ponownie za parę minut.",
"ErrorCouldntFetch": "nie udało się pobrać metadanych. sprawdź, czy twój link jest poprawny i spróbuj ponownie.",
"ErrorLengthLimit": "aktualny limit długości to {s} minut. to, co próbujesz pobrać, jest dłuższe niż {s} minut. pobierz coś innego!",
"ErrorBadFetch": "coś poszło nie tak z pobieraniem informacji. wybierz inny format i rozdzielczość albo po prostu spróbuj ponownie później.",
"ErrorCorruptedStream": "niestety ten plik jest uszkodzony. spróbuj ponownie lub wybierz inny format i rozdzielczość.",
"ErrorNoInternet": "nie masz dostępu do internetu albo api {appName} nie działa. sprawdź swoje połączenie i spróbuj ponownie.",
"ErrorCantConnectToServiceAPI": "nie mogę połączyć się z api {s}. wygląda na to, że {s} nie działa albo adres ip serwera {appName} został zablokowany. spróbuj ponownie później.",
"ErrorEmptyDownload": "nie ma tu nic do pobrania! spróbuj pobrać coś innego.",
"ErrorLiveVideo": "nie mogę pobierać transmisji na żywo. poczekaj, aż stream się zakończy i spróbuj ponownie.",
"SettingsAppearanceSubtitle": "wygląd",
"SettingsThemeSubtitle": "motyw",
"SettingsFormatSubtitle": "format pliku",
"SettingsDownloadsSubtitle": "pobrane pliki",
"SettingsQualitySubtitle": "jakość",
"SettingsThemeAuto": "automatyczny",
"SettingsThemeLight": "jasny",
"SettingsThemeDark": "ciemny",
"SettingsQualitySwitchMax": "maksymalna",
"SettingsQualitySwitchHigh": "wysoka",
"SettingsQualitySwitchMedium": "średnia",
"SettingsQualitySwitchLow": "niska",
"SettingsQualitySwitchLowest": "minimalna",
"SettingsKeepDownloadButton": "pozostaw &gt;&gt; widoczny",
"AccessibilityKeepDownloadButton": "pozostaw przycisk pobierania zawsze widoczny",
"SettingsEnableDownloadPopup": "pytaj o sposób zapisu",
"AccessibilityEnableDownloadPopup": "pytaj co zrobić z pobranymi plikami",
"SettingsFormatDescription": "wybierz webm, jeżeli potrzebujesz najwyższej możliwej jakości. filmy webm są zwykle wyższej jakości, ale urządzenia z ios nie odtwarzają ich natywnie.",
"SettingsQualityDescription": "jeżeli wybrana jakość nie będzie dostępna, zostanie wybrana najbliższa pasująca.\njeżeli chcesz wrzucić film z youtube na social media, wybierz połączenie mp4 i 720p. te filmy zazwyczaj nie używają kodeka av1, więc powinny się odtwarzać w zasadzie wszędzie.",
"DonateSubtitle": "ciężko się teraz płaci za hosting",
"DonateDescription": "nie podoba mi się stan w jakim są teraz kryptowaluty, ale na razie jest to dla mnie jedyny sposób żeby płacić za coś za granicą. karty mastercard/visa i usługi takie jak paypal nie są już dostępną opcją.",
"LinkGitHubIssues": "&gt;&gt; zgłoś problem lub zobacz kod źródłowy na githubie",
"LinkGitHubChanges": "&gt;&gt; zobacz poprzednie zmiany lub pomóż nam tworzyć na githubie",
"LinkDonateContact": "&gt;&gt; daj mi znać, jeżeli waluta, którą chcesz wesprzeć nie jest na liście",
"NoScriptMessage": "{appName} używa javascriptu do żądań api i interaktywnego interfejsu. musisz zezwolić na javascript, jeżeli chcesz używać tej strony. nie mamy żadnych reklam ani śledzenia, obiecujemy.",
"DownloadPopupDescriptionIOS": "ponieważ masz urządzenie z systemem ios, musisz nacisnąć i przytrzymać przycisk pobierania i wybrać \"pobierz film\" w wyskakującym oknie aby zapisać film. będzie to wymagane tak długo, jak apple będzie wymuszało safari webview na wszystkich deweloperach przeglądarek na ios.",
"DownloadPopupDescription": "przycisk pobierania otwiera nową kartę z pobieranym plikiem. możesz wyłączyć to okno w ustawieniach.",
"DownloadPopupWayToSave": "wybierz sposób zapisu",
"ClickToCopy": "kliknij, aby skopiować",
"Download": "pobierz",
"CopyURL": "skopiuj url",
"AboutTab": "o aplikacji",
"ChangelogTab": "lista zmian",
"DonationsTab": "darowizny",
"SettingsVideoTab": "wideo",
"SettingsAudioTab": "audio",
"SettingsOtherTab": "inne",
"ChangelogLastMajor": "bieżąca wersja i commit",
"AccessibilityModeToggle": "przełącz tryb pobierania",
"DonateLinksDescription": "linki do darowizn otwierają się w nowej karcie. to najlepszy sposób podarowania pieniędzy, jeśli chcesz, aby dotarły do mnie bezpośrednio.",
"SettingsAudioFormatBest": "najlepszy",
"SettingsAudioFormatDescription": "gdy wybierzesz najlepszy format, dostaniesz audio w najlepszej możliwej jakości, ponieważ jest zachowane w oryginalnym formacie. gdy wybierzesz któryś inny, dostaniesz lekko skompresowany plik.",
"Keyphrase": "zapisz to, co kochasz",
"SettingsRemoveWatermark": "wyłącz znak wodny",
"ErrorPopupCloseButton": "rozumiem",
"ErrorLengthAudioConvert": "aktualny limit długości konwersji dźwięku wynosi {s} minut. wybierz \"najlepszy\" format, jeśli chcesz uniknąć ograniczeń.",
"SettingsAudioFullTikTok": "pobierz pełny dźwięk",
"SettingsAudioFullTikTokDescription": "pobiera oryginalny dźwięk lub dźwięk używany w filmie bez żadnych dodatkowych zmian ze strony autora wideo.",
"ErrorCantGetID": "nie można było uzyskać informacji ze skróconego linku. upewnij się, że link działa lub spróbuj pełnego.",
"ErrorNoVideosInTweet": "ten tweet nie zawiera filmów ani gifów. spróbuj innego!",
"ImagePickerTitle": "wybierz obrazy do pobrania",
"ImagePickerDownloadAudio": "pobierz dźwięk",
"ImagePickerExplanationPC": "kliknij prawym przyciskiem myszy na obraz, aby go zapisać.",
"ImagePickerExplanationPhone": "naciśnij i przytrzymaj obraz, aby go zapisać.",
"ErrorNoUrlReturned": "serwer nie zwrócił linku do pobrania. to nie powinno się zdarzyć. odśwież stronę i spróbuj ponownie, ale jeśli to nie pomoże, {ContactLink}.",
"ErrorUnknownStatus": "otrzymano odpowiedź, której nie można przetworzyć. prawdopodobnie coś o statusie jest nieprawidłowe. to nigdy nie powinno się zdarzyć. odśwież stronę i spróbuj ponownie, ale jeśli to nie pomoże, {ContactLink}.",
"PasteFromClipboard": "wklej ze schowka",
"FollowTwitter": "obserwuj {appName} na twitterze po ankiety, aktualizacje i więcej: <a class=\"text-backdrop\" href=\"https://twitter.com/justusecobalt\" target=\"_blank\">@justusecobalt</a>",
"ChangelogOlder": "poprzednie wersje",
"ChangelogPressToExpand": "pokaż",
"Miscellaneous": "pozostałe",
"ModeToggleAuto": "tryb auto",
"ModeToggleAudio": "tryb audio",
"SettingsDisableNotifications": "ukryj plakietki z powiadomieniami",
"MediaPickerTitle": "wybierz co zapisać",
"MediaPickerExplanationPC": "kliknij lub kliknij prawym przyciskiem, aby pobrać to, co chcesz",
"MediaPickerExplanationPhone": "naciśnij lub naciśnij i przytrzymaj, aby zapisać to, co chcesz",
"MediaPickerExplanationPhoneIOS": "naciśnij i przytrzymaj, ukryj podgląd i wybierz \"odnośnik pobierania\", aby zapisać.",
"TwitterSpaceWasntRecorded": "ten pokój na twitterze nie był nagrywany, więc nie mogę nic pobrać. spróbuj inny!",
"ErrorCantProcess": "no i chuj, nie udało się :(\nmożesz spróbować ponownie, ale jeśli problem będzie się powtarzał, {ContactLink}.",
"ChangelogPressToHide": "zwiń"
}
}

View file

@ -1,115 +0,0 @@
{
"name": "português (brasil)",
"substrings": {
"ContactLink": "<a class=\"text-backdrop\" href=\"{repo}\" target=\"_blank\">abra um issue no github</a>"
},
"strings": {
"LinkInput": "cole seu link aqui",
"AboutSummary": "{appName} é o lugar ideal para baixar conteúdo das redes sociais. sem anúncios, rastreadores ou outras coisas suspeitas. apenas cole um link e pronto!",
"AboutSupportedServices": "serviços suportados atualmente:",
"EmbedBriefDescription": "salve conteúdo das redes sociais sem irritações",
"MadeWithLove": "feito com <3 por wukko",
"AccessibilityInputArea": "área de entrada de link",
"AccessibilityOpenAbout": "abrir janela sobre",
"AccessibilityDownloadButton": "botão de download",
"AccessibilityOpenSettings": "abrir janela de configurações",
"AccessibilityClosePopup": "fechar a janela",
"AccessibilityOpenDonate": "abrir janela de doação",
"TitlePopupAbout": "o que é {appName}?",
"TitlePopupSettings": "configurações",
"TitlePopupError": "Ah não...",
"TitlePopupChangelog": "o que há de novo?",
"TitlePopupDonate": "apoie {appName}",
"TitlePopupDownload": "baixar",
"ErrorSomethingWentWrong": "algo deu errado e eu não consegui encontrar nada para você. você pode tentar novamente, mas se o problema persistir, por favor {ContactLink}.",
"ErrorUnsupported": "parece que esse serviço ainda não é suportado, ou o link é inválido.",
"ErrorBrokenLink": "{s} é suportado, mas tem algo de errado com o link. talvez você não o copiou completamente?",
"ErrorNoLink": "não consigo adivinhar o que você quer baixar! por favor, me dê um link.",
"ErrorPageRenderFail": "algo deu errado e a página não pôde ser renderizada. se for um problema recorrente ou crítico, por favor {ContactLink}. seria útil se você fornecesse o hash da commit atual ({s}) e passos para recriar o erro. obrigado :D",
"ErrorRateLimit": "você está fazendo pedidos de mais. se acalme e tente novamente daqui a pouco.",
"ErrorCouldntFetch": "não consegui obter nenhuma informação sobre seu link. verifique se ele está correto e tente novamente.",
"ErrorLengthLimit": "o limite de duração atual é {s} minutos. o vídeo que você tentou baixar é maior que {s} minutos. escolha outra coisa para baixar!",
"ErrorBadFetch": "ocorreu um erro quando tentei obter informações sobre seu link. tem certeza de ele funciona? verifique e tente novamente.",
"ErrorCorruptedStream": "infelizmente, esse download está corrompido. tente novamente, ou tente um formato e resolução diferentes.",
"ErrorNoInternet": "não há internet, ou a api de {appName} está fora do ar. verifique sua conexão e tente novamente.",
"ErrorCantConnectToServiceAPI": "não foi possível conectar à api de {s}. parece que {s} está com problemas, ou o ip do {appName} foi bloqueado. tente novamente mais tarde.",
"ErrorEmptyDownload": "não vejo nada que eu poderia baixar daqui. tente um link diferente.",
"ErrorLiveVideo": "não tenho bola de cristal para conseguir baixar o vídeo de uma live que ainda não terminou. espere o fim da stream e tente de novo!",
"SettingsAppearanceSubtitle": "aparência",
"SettingsThemeSubtitle": "tema",
"SettingsFormatSubtitle": "formato do download",
"SettingsQualitySubtitle": "qualidade",
"SettingsThemeAuto": "auto",
"SettingsThemeLight": "claro",
"SettingsThemeDark": "escuro",
"SettingsQualitySwitchMax": "máx.",
"SettingsQualitySwitchHigh": "alta",
"SettingsQualitySwitchMedium": "média",
"SettingsQualitySwitchLow": "baixa",
"SettingsQualitySwitchLowest": "mais baixa",
"SettingsKeepDownloadButton": "manter &gt;&gt; visível",
"AccessibilityKeepDownloadButton": "manter o botão de download sempre visível",
"SettingsEnableDownloadPopup": "pergunte a maneira de salvar",
"AccessibilityEnableDownloadPopup": "perguntar o que fazer com os downloads",
"SettingsFormatDescription": "selecione o formato webm se você quer a melhor qualidade disponível. este formato normalmente tem uma taxa de bits maior, mas dispositivos ios não conseguem reproduzi-lo nativamente.",
"SettingsQualityDescription": "se a qualidade selecionada não estiver disponível, a mais próxima será usada.\nse quiser postar um vídeo do youtube nas redes sociais, selecione uma combinação de mp4 e 720p.",
"LinkGitHubIssues": "&gt;&gt; reporte problemas e confira o código-fonte no github",
"LinkGitHubChanges": "&gt;&gt; veja commits anteriores e contribua no github",
"NoScriptMessage": "{appName} usa javascript para a interface interativa e solicitações de api. você dever habilitar o javascript para usar este site. não tenho nenhum anúncio ou rastreador, eu prometo.",
"DownloadPopupDescriptionIOS": "pressione e segure o botão de download, esconda a pré-visualização do vídeo e, em seguida, selecione \"baixar arquivo\" para salvar.",
"DownloadPopupDescription": "o botão de download abre uma nova aba com o arquivo solicitado. você pode desativar este pop-up nas configurações.",
"DownloadPopupWayToSave": "escolha como salvar",
"ClickToCopy": "pressione para copiar",
"Download": "baixar",
"CopyURL": "copiar url",
"AboutTab": "sobre",
"ChangelogTab": "log de alterações (em inglês)",
"DonationsTab": "doações",
"SettingsVideoTab": "vídeo",
"SettingsAudioTab": "áudio",
"SettingsOtherTab": "outros",
"ChangelogLastMajor": "versão atual & commit",
"AccessibilityModeToggle": "alternar o modo de download",
"DonateLinksDescription": "links de doação abrem em uma nova aba. essa é a melhor maneira para doar se você deseja que eu receba sua doação diretamente.",
"SettingsAudioFormatBest": "melhor",
"SettingsAudioFormatDescription": "quando o melhor formato é selecionado, você obtém o áudio na melhor qualidade disponível, pois ele não é recodificado. ao selecionar outro formato, você obterá um arquivo um pouco comprimido. ",
"Keyphrase": "salve o que você ama",
"SettingsRemoveWatermark": "desativar marca d'água",
"ErrorPopupCloseButton": "entendido",
"ErrorLengthAudioConvert": "o limite de duração para a conversão de áudio é {s} minutos. selecione o formato \"melhor\" se você quiser evitar limitações.",
"SettingsAudioFullTikTok": "baixar áudio completo",
"SettingsAudioFullTikTokDescription": "baixa o áudio ou som original usado no vídeo sem as mudanças feitas pelo autor do vídeo.",
"ErrorCantGetID": "não conseguir obter toda a informação do link encurtado. verifique se o link funciona, ou tente usar um completo.",
"ErrorNoVideosInTweet": "não achei nenhum vídeo ou gif nesse tweet. tente outro!",
"ImagePickerTitle": "escolha imagens pra baixar",
"ImagePickerDownloadAudio": "baixar áudio",
"ImagePickerExplanationPC": "clique com o botão direito em uma imagem para salvá-la",
"ImagePickerExplanationPhone": "pressione e segure uma imagem para salvá-la",
"ErrorNoUrlReturned": "o servidor não retornou um link de download. isso nunca deveria acontecer. recarregue a página e tente novamente, mas se isso não ajudar, {ContactLink}.",
"ErrorUnknownStatus": "eu recebi uma resposta que não consigo processar. o provável é que há algo de errado com o status. isso nunca deveria acontecer. recarregue a página e tente novamente. se isso não ajudar, {ContactLink}.",
"PasteFromClipboard": "colar da área de transferência",
"FollowTwitter": "siga a conta do {appName} no twitter para enquetes, atualizações e muito mais: <a class=\"text-backdrop\" href=\"https://twitter.com/justusecobalt\" target=\"_blank\">@justusecobalt</a>",
"ChangelogOlder": "versões anteriores (em inglês)",
"ChangelogPressToExpand": "clique para expandir",
"Miscellaneous": "outros",
"ModeToggleAuto": "modo automático",
"ModeToggleAudio": "modo áudio",
"SettingsDisableNotifications": "esconder pontos de notificação",
"MediaPickerTitle": "escolha o que salvar",
"MediaPickerExplanationPC": "clique ou clique com o botão direito para baixar o que você quer.",
"MediaPickerExplanationPhone": "pressione ou pressione e segure para baixar o que você quer.",
"MediaPickerExplanationPhoneIOS": "aperte e segure, oculte a pré-visualização e então selecione \"baixar arquivo\" para salvar.",
"TwitterSpaceWasntRecorded": "este espaço do twitter não foi gravado, então não há nada para baixar. tente outro!",
"ErrorCantProcess": "não pude processar o seu pedido :(\nvocê pode tentar novamente, mas se eu problema persistir, por favor {ContactLink}.",
"ChangelogPressToHide": "pressione aqui para recolher",
"Donate": "doar",
"DonateSub": "me ajude a mantê-lo",
"DonateExplanation": "{appName} não serve anúncios ou vende os seus dados (e nunca irá), portanto é <span class=\"text-backdrop\">completamente gratuito para uso</span>. mas ei! aparentemente, a manutenção de um serviço usado por milhares de pessoas é uma coisa cara.\n\nse alguma vez você achou o {appName} útil e quer ajudar a mantê-lo online, ou simplesmente deseja agradecer ao desenvolvedor, considere doar algo! cada centavo ajuda, e é aceito com MUITA gratidão.",
"DonateVia": "doar via",
"DonateHireMe": "ou, alternativamente, você pode <a class=\"text-backdrop\" href=\"{s}\" target=\"_blank\">me contratar</a>.",
"SettingsVideoMute": "silenciar áudio",
"SettingsVideoMuteExplanation": "desativa o áudio do vídeo baixado, quando possível. ignorado quando o modo áudio está ativado ou se o serviço só suporta áudio.",
"SettingsVideoGeneral": "geral",
"ErrorSoundCloudNoClientId": "não consegui encontrar o client_id necessário para obter os dados de áudio do soundclound. tente novamente, e se o problema persistir, {ContactLink}"
}
}

View file

@ -94,7 +94,7 @@
"ChangelogPressToHide": "скрыть",
"Donate": "задонатить",
"DonateSub": "ты можешь помочь!",
"DonateExplanation": "{appName} не пихает рекламу тебе в лицо и не продаёт твои личные данные, а значит работает <span class=\"text-backdrop\">совершенно бесплатно</span>. но оказывается, что разработка и поддержка сервиса, которым пользуются более 150 тысяч людей, обходится довольно затратно.\n\nесли {appName} тебе помог и ты хочешь поблагодарить разработчика, то это можно сделать через донаты! каждый рубль помогает мне, моим котам, и {appName}! спасибо :)",
"DonateExplanation": "{appName} не пихает рекламу тебе в лицо и не продаёт твои личные данные, а значит работает <span class=\"text-backdrop\">совершенно бесплатно</span>. но оказывается, что разработка и поддержка сервиса, которым пользуются более 200 тысяч людей, обходится довольно затратно.\n\nесли {appName} тебе помог и ты хочешь поблагодарить разработчика, то это можно сделать через донаты! каждый рубль помогает мне, моим котам, и {appName}! спасибо :)",
"DonateVia": "открыть",
"DonateHireMe": "...или же ты можешь <a class=\"text-backdrop italic\" href=\"{s}\" target=\"_blank\">пригласить меня на работу</a> :)",
"SettingsVideoMute": "убрать аудио",
@ -104,8 +104,8 @@
"CollapseSupport": "поддержка и исходный код",
"CollapsePrivacy": "политика конфиденциальности",
"ServicesNote": "этот список далеко не финальный и постоянно пополняется. заглядывай сюда почаще, тогда точно будешь знать, что поддерживается!",
"FollowSupport": "подписывайся на аккаунты {appName} на mastodon или twitter для новостей, поддержки, участия в опросах, и многого другого:",
"SupportNote": "так как я один занимаюсь разработкой и поддержкой в одиночку, время ожидания ответа может достигать нескольких часов. я отвечаю всем, не стесняйся.",
"FollowSupport": "оставайтесь на связи с {appName} для новостей, поддержки, участия в опросах, и многого другого:",
"SupportNote": "так как я один занимаюсь разработкой и поддержкой в одиночку, время ожидания ответа может достигать нескольких часов. но я отвечаю всем, так что не стесняйся.",
"SourceCode": "пиши о проблемах, шарься в исходнике, или же форкай репозиторий:",
"PrivacyPolicy": "политика конфиденциальности {appName} довольно проста: ничего не хранится об истории твоих действий или загрузок. совсем. даже ошибки.\nто, что ты скачиваешь - только твоё личное дело.\n\nв случаях, когда твоей загрузке требуется лайв-рендер, временно хранится неотслеживаемая информация. это необходимо для работы такого типа загрузок.\n\nв этом случае, <span class=\"text-backdrop\">sha256 хэш (с солью) твоего ip адреса</span> и данные о запрошенном стриме хранятся в ОЗУ сервера в течение <span class=\"text-backdrop\">двух минут</span>. по истечении этого периода всё стирается. хэш твоего ip адреса используется для предоставления доступа к стриму только тебе. ни у кого (даже у меня) нет доступа к временно хранящимся данным, так как оригинальный код {appName} не предоставляет такой возможности.\n\nты всегда можешь посмотреть <a class=\"text-backdrop italic\" href=\"{repo}\" target=\"_blank\">исходный код {appName}</a> и убедиться, что всё так, как описано.",
"ErrorYTUnavailable": "это видео недоступно или же ограничено по возрасту на youtube. пока что я не умею скачивать подобные видео. попробуй другое!",
@ -119,6 +119,8 @@
"SettingsVimeoPrefer": "тип загрузок с vimeo",
"SettingsVimeoPreferDescription": "progressive: прямая ссылка на файл с сервера vimeo. максимальное качество: 1080p.\ndash: {appName} совмещает видео и аудио в один файл. максимальное качество: 4k.\n\nвыбирай \"progressive\", если тебе нужна наилучшая совместимость с плеерами/редакторами/соцсетями. если \"progressive\" файл недоступен, {appName} скачает \"dash\".",
"ShareURL": "поделиться",
"ErrorTweetUnavailable": "не смог найти что-либо об этом твите. возможно его видимость была ограничена. попробуй другой!"
"ErrorTweetUnavailable": "не смог найти что-либо об этом твите. возможно его видимость была ограничена. попробуй другой!",
"UrgentUpdate6": "теперь всё работает!",
"ErrorReload": "я не смог удостовериться, что у тебя есть доступ к этому стриму. попробуй ещё раз или перезагрузи страницу!"
}
}

View file

@ -1,106 +0,0 @@
{
"name": "українська",
"substrings": {
"ContactLink": "<a class=\"text-backdrop\" href=\"{repo}\" target=\"_blank\">звернись до творця</a>"
},
"strings": {
"LinkInput": "встав посилання сюди",
"AboutSummary": "{appName} - твій помічник з завантаження контенту з соцмереж. ніякої реклами, трекерів та іншого лайна. вставляєш посилання, отримуєш файл, і допиваєш свій смузі у спокої.",
"AboutSupportedServices": "сервіси, що підтримуються станом на зараз:",
"EmbedBriefDescription": "зберігай контент із соцмереж без роздратувань",
"MadeWithLove": "wukko створив це все з <3",
"AccessibilityInputArea": "місце для посилання",
"AccessibilityOpenAbout": "про {appName}",
"AccessibilityDownloadButton": "кнопка завантаження",
"AccessibilityOpenSettings": "відкрити налаштування",
"AccessibilityOpenChangelog": "відкрити список змін",
"AccessibilityClosePopup": "закрити вікно",
"AccessibilityOpenDonate": "відкрити інфу щодо пожертв",
"TitlePopupAbout": "що таке {appName}?",
"TitlePopupSettings": "налаштування",
"TitlePopupError": "от халепа...",
"TitlePopupChangelog": "що нового?",
"TitlePopupDonate": "підтримай {appName}",
"TitlePopupDownload": "завантажити",
"ErrorSomethingWentWrong": "щось пішло не так, і нічого з того, що ти просив, отримати не вдалось. ти можеш спробувати ще раз, але якщо проблема не зникне, будь ласка, {ContactLink}",
"ErrorUnsupported": "схоже, цей сервіс ще не підтримується, або твоє посилання недійсне.",
"ErrorBrokenLink": "{s} підтримується, але з твоїм посиланням щось не так. можливо, ти не повністю його скопіював?",
"ErrorNoLink": "я не вмію вгадувати, що ти хочеш завантажити! будь ласка, дай мені посилання.",
"ErrorPageRenderFail": "щось пішло не так і сторінку відобразити не вдалося. якщо ця проблема повторюється або надзвичайно важлива, будь ласка, {ContactLink}. було б корисно, якби ти надав поточний хеш коміту ({s}) та кроки відтворення помилки. наперед дякую :D",
"ErrorRateLimit": "ти надсилаєш забагато запитів. заспокойся та спробуй ще раз пізніше.",
"ErrorCouldntFetch": "не зміг отримати ніякої інформації з твого посилання. перевір, щоб посилання було дійсним, та спробуй ще раз.",
"ErrorLengthLimit": "поточний ліміт тривалості становить {s} хв. відео, яке ти намагався завантажити, триває більше {s} хв. спробуй щось інше!",
"ErrorBadFetch": "я намагався отримати інформацію з твого посилання, але сталася помилка. ти впевнений, що воно працює? переконайся у правильності посилання та спробуй ще раз.",
"ErrorCorruptedStream": "на жаль, це завантаження пошкоджено. повтори спробу або спробуй інший формат та роздільну здатність.",
"ErrorNoInternet": "немає інтернету, або api {appName} не працює. перевір з'єднання з інтернетом та спробуй ще раз.",
"ErrorCantConnectToServiceAPI": "у мене не вийшло під'єднатися до api {s}. можливо, {s} не працює, або ip сервера {appName} було заблоковано. спробуй ще раз пізніше.",
"ErrorEmptyDownload": "тут я не бачу нічого, що можна було б завантажити. спробуй інше посилання.",
"ErrorLiveVideo": "я не можу дивитися в майбутнє і завантажувати відео з прямого етеру. почекай, доки трансляція закінчиться, та спробуй ще раз!",
"SettingsAppearanceSubtitle": "вигляд",
"SettingsThemeSubtitle": "тема",
"SettingsFormatSubtitle": "формат завантаження",
"SettingsMiscSubtitle": "інші налаштування",
"SettingsDownloadsSubtitle": "завантаження",
"SettingsQualitySubtitle": "якість",
"SettingsThemeAuto": "авто",
"SettingsThemeLight": "світла",
"SettingsThemeDark": "темна",
"SettingsQualitySwitchMax": "макс",
"SettingsQualitySwitchHigh": "висока",
"SettingsQualitySwitchMedium": "середня",
"SettingsQualitySwitchLow": "низька",
"SettingsQualitySwitchLowest": "найнижча",
"SettingsKeepDownloadButton": "зробити &gt;&gt; видимим",
"AccessibilityKeepDownloadButton": "завжди показувати кнопку завантаження",
"SettingsEnableDownloadPopup": "питати щодо методу зберігання",
"AccessibilityEnableDownloadPopup": "питати, що робити з завантаженнями",
"SettingsFormatDescription": "обери webm, якщо ти бажаєш максимальної якості. webm зазвичай кращий за якістю, але пристрої на ios не можуть програвати їх без сторонніх програм.",
"SettingsQualityDescription": "якщо вибрана роздільна здатність недоступна, замість неї вибирається найближча. якщо ти хочеш опублікувати відео з youtube у twitter, вибери комбінацію mp4 і 720p. з такими відео twitter працює найкраще.",
"DonateSubtitle": "допоможи платити за оренду серверу",
"DonateDescription": "мені не дуже подобається криптовалюта у її сучасному стані, але наразі для мене це єдиний надійний спосіб отримувати гроші та платити за що-небудь за кордоном.",
"LinkGitHubIssues": "&gt;&gt; повідомляй про помилки та переглядай код на github",
"LinkGitHubChanges": "&gt;&gt; ознайомся з попередніми комітами та зроби свій внесок на github",
"LinkDonateContact": "&gt;&gt; дай нам знати, якщо валюти, у якій ти б хотів задонатити, немає у списку",
"NoScriptMessage": "{appName} використовує javascript, щоб отримувати інформацію з сайтів та мати інтерактивний інтерфейс. тобі доведеться дозволити javascript, щоб користуватися сайтом. тут ніколи не буде ніякої реклами чи трекерів.",
"DownloadPopupDescriptionIOS": "в тебе пристрій на ios, тож для завантаження тобі треба натиснути та утримувати кнопку завантаження, а потім у вікні, яке з'явиться, вибрати \"завантажити відео\". такий обряд доведеться виконувати допоки apple не припинить змушувати розробників використовувати safari webview в усіх браузерах.",
"DownloadPopupDescription": "кнопка завантаження відкриває нову вкладку з запитуваним файлом. це можна змінити у налаштуваннях.",
"DownloadPopupWayToSave": "вибери спосіб зберігання",
"ClickToCopy": "натисни, щоб скопіювати",
"Download": "завантажити",
"CopyURL": "скопіювати url",
"AboutTab": "інфа",
"ChangelogTab": "список змін",
"DonationsTab": "донати",
"SettingsVideoTab": "відео",
"SettingsAudioTab": "аудіо",
"SettingsOtherTab": "інше",
"ChangelogLastCommit": "останній коміт (англійською мовою)",
"ChangelogLastMajor": "останнє оновлення",
"AccessibilityModeToggle": "змінити режим завантаження",
"DonateLinksDescription": "лінки на донати відкриваються у нових вкладках. це найкращий спосіб донатити, якщо хочеш, щоб ми безпосередньо отримували гроші.",
"SettingsAudioFormatBest": "найкращий",
"SettingsAudioFormatDescription": "якщо вибрано найкращий формат, буде завантажено оригінал аудіо. якщо вибрано щось інше, завантажений файл буде трохи стисненим.",
"Keyphrase": "зберігай те, що любиш",
"SettingsDisableChangelogOnUpdate": "не показувати \"що нового\" після суттєвих оновлень",
"SettingsRemoveWatermark": "прибрати вотермарку",
"ErrorPopupCloseButton": "зрозуміло",
"ModeToggle": "режим",
"ModeToggleSmart": "розумний",
"ErrorLengthAudioConvert": "я не можу конвертувати аудіо, якщо воно довше ніж {s} хв. вибери \"найкращий\" формат аудіо, щоб завантажити аудіо такої тривалості.",
"SettingsAudioFullTikTok": "завантажувати повне аудіо",
"SettingsAudioFullTikTokDescription": "зазвичай таке аудіо - оригінальний звук або пісня, яке використовується у відео. тобто це аудіо без обрізань, голосу за кадром тощо.",
"ErrorCantGetID": "я не зміг отримати повну інформацію за скороченим посиланням. переконайся, що воно працює, або спробуй повне посилання.",
"ErrorNoVideosInTweet": "цей твіт не містить відео чи gif. спробуй інший!",
"ImagePickerTitle": "вибери зображення для завантаження",
"ImagePickerDownloadAudio": "завантажити аудіо",
"ImagePickerExplanationPC": "клацни на зображення правою кнопкою миші, щоб зберегти.",
"ImagePickerExplanationPhone": "натисни та утримуй зображення, щоб зберегти.",
"ErrorNoUrlReturned": "сервер не повернув посилання для завантаження. таке не має траплятись. онови сторінку і спробуй ще раз, але якщо це не допоможе, {ContactLink}",
"ErrorUnknownStatus": "я отримав відповідь, яку я не можу обробити. найімовірніше, щось не так зі статусом. таке не має траплятись. онови сторінку і спробуй ще раз, але якщо це не допоможе, {ContactLink}",
"PasteFromClipboard": "вставити з буфера обміну",
"SettingsDisableClipboard": "приховати кнопку буфера обміну",
"FollowTwitter": "читай твіттер акаунт {appName}, щоб слідкувати за опитуваннями, новинами та більше: <a class=\"text-backdrop\" href=\"https://twitter.com/justusecobalt\" target=\"_blank\">@justusecobalt</a>",
"ChangelogOlder": "попередні оновлення",
"ChangelogPressToExpand": "натисни, щоб завантажити"
}
}

View file

@ -1,11 +1,16 @@
{
"current": {
"version": "6.0",
"title": "better reliability, new infrastructure, pinterest support, and way more!",
"banner": "catswitchboxes.webp",
"content": "hey! long time no see, hopefully over 40 changes will make up for it :)\n\ncobalt now has an official community discord server. you can go there for news, support, or just to chat. <a class=\"text-backdrop italic\" href=\"https://discord.gg/pQPt8HBUPu\" target=\"_blank\">go check it out!</a>\n\n<span class='text-backdrop'>tl;dr</span>\n*; new infra, new hosting structure, new main instance api url. developers, <a class=\"text-backdrop italic\" href=\"https://github.com/wukko/cobalt/blob/current/docs/API.md\" target=\"_blank\">get it here.</a>\n*; added support for pinterest, vine archive, tumblr audio, youtube vr videos.\n*; better web app performance and look.\n*; better stability thanks to load balancing.\n*; (hopefully) no more random video/audio download drops.\n\nservice improvements:\n*; added support for pinterest videos and stories (pr by <a class=\"text-backdrop italic\" href=\"https://github.com/wukko/cobalt/commit/40291c4d24cb5f441cdddfd26104f149bc4ee27c\" target=\"_blank\">@Snazzah</a>).\n*; added support for tumblr audio. sorry, tumblr.\n*; added support for youtube vr videos. please note that they're in youtube's proprietary ratio.\n*; added support for vine archive.\n*; added support for ancient vk videos in 240p.\n*; fixed an issue related to muted video downloads from tumblr.\n*; moved to twitter v2 api.\n*; soundcloud share links are now processed without errors.\n\nui improvements:\n*; lazy image loading. should significantly speed up the page load.\n*; fixed checkbox width on mobile devices.\n*; addition of a temporary urgent notice.\n*; added hover border to all buttons.\n*; less annoying donation button highlight.\n*; more consistent color scheme.\n*; added link to a discord server into about popup.\n*; remember celebratory emoji changes? they've been fixed, and are now dynamically loaded!\n*; changelog history now lets you try to load it again if first attempt failed for whatever reason.\n*; padding (everywhere) has been slightly reduced to fit in more content and be consistent across ui.\n*; added more info to the \"how to save\" popup for ios devices.\n*; crypto wallet press-to-copy buttons now look like buttons.\n*; improved ui layout for smallest screens (iphone 5, 5s, se, etc).\n*; removed partial translations for sake of clarity and consistency.\n\ninternal improvements:\n*; separated web and api servers. they're now completely independent and therefore more stress-resistant.\n*; added a dedicated script for building the web app if you don't want to reload the frontend server.\n*; web app building improvements.\n*; async localization preloading.\n*; consistent server start time reporting.\n*; dynamic stream and ip hashing salt generation.\n\ninfrastructure improvements:\n*; load balancing: your api requests are now sent to the least busy server. yes, there are now several of them with more to come in the future.\n*; when possible, server in closest region is used instead of a far-away one. this should help with download speeds.\n*; currently there are servers in two locations: netherlands and kazakhstan. i will let you know when (and if) i manage to get an american one.\n\nupdates for developers and instance hosters:\n*; server info api endpoint: you can now check up on the api server of choice. it reports all the basic info you may need. <a class=\"text-backdrop italic\" href=\"https://github.com/wukko/cobalt/blob/current/docs/API.md#get-apiserverinfo\" target=\"_blank\">check the api docs</a> for more info.\n*; api names: each and every api instance should have a distinctive name. this will be useful in the future :)\n*; added docker compose sample config.\n*; updated and more granular setup script.\n*; better api scalability and faster server start up thanks to web and api separation.\n*; added ability to specify ffmpeg threads. simply add ffmpegThreads to your environment variables!\n\ni'm still in awe from how popular cobalt has become. there are now over 200k of unique users monthly, and that number only keeps growing. i even had to come up with something to accommodate for larger traffic, it's absolutely insane.\n\nlove you all, have a great day :D"
},
"history": [{
"version": "5.4",
"title": "instagram support, docker, and more!",
"banner": "catphonestand.webp",
"content": "something many of you've been waiting for is finally here! try it out and let me know what you think :)\n\n<span class='text-backdrop'>tl;dr:</span>\n*; added experimental instagram support! download any reels or videos you like, and make sure to report any issues you encounter. yes, you can convert either to audio.\n*; fixed support for on.soundcloud links.\n*; added share button to \"how to save?\" popup.\n*; added docker support.\n\nservice improvements:\n*; added experimental support for videos from instagram. currently only reels and post videos are downloadable, but i'm looking into ways to save high resolution photos too. if you experience any issues, please report them on either of support platforms.\n*; fixed support for on.soundcloud share links. should work just as well as other versions!\n*; fixed an issue that made some youtube videos impossible to download.\n\ninterface improvements:\n*; new css-only checkmark! yes, i can't stop tinkering with it because slight flashing on svg load annoyed me. now it loads instantly (and also looks slightly better).\n*; fixed copy animation.\n*; minor localization improvements.\n*; fixed the embed logo that i broke somewhere in between 5.3 and 5.4.\n\ninternal improvements:\n*; now using nanoid for live render stream ids.\n*; added support for docker. it's kind of clumsy because of how i get .git folder inside the container, but if you know how to do it better, feel free to make a pr.\n*; cobalt now checks only for existence of environment variables, not exactly the .env file.\n*; changed the way user ip address is retrieved for instances using cloudflare.\n*; added ability to disable cors, both to setup script and environment variables.\n\ni can't believe how diverse and widespread cobalt has become. it's used in all fields: music production, education, content creation, and even game development. <span class='text-backdrop'>thank you</span>. this is absolutely nuts.\nif you don't mind sharing, please tell me about your use case. i'd really love to hear how you use cobalt and how i could make it even more useful for you."
},
"history": [{
}, {
"version": "5.3",
"title": "better looks, better feel",
"banner": "cattired.webp",

View file

@ -27,6 +27,7 @@ const names = {
"👾": "alien_monster"
}
let sizing = {
18: 0.8,
22: 0.4,
30: 0.7,
48: 0.9,

View file

@ -364,6 +364,7 @@ export default function(obj) {
body: `<div id="desc-error" class="desc-padding subtext"></div>`
})}
<div id="popup-backdrop" style="visibility: hidden;" onclick="hideAllPopups()"></div>
<div id="urgent-notice" class="urgent-notice explanation center" onclick="popup('about', 1, 'changelog')" style="visibility: hidden;">${emoji("🎉", 18)} ${t("UrgentUpdate6")}</div>
<div id="cobalt-main-box" class="center" style="visibility: hidden;">
<div id="logo">${appName}</div>
<div id="download-area">

View file

@ -36,8 +36,8 @@
"status": "redirect"
}
}, {
"name": "picker: mixed media (2 videos)",
"url": "https://twitter.com/taehyungsflow/status/1583411488433516544",
"name": "picker: mixed media (3 videos)",
"url": "https://twitter.com/DankGameAlert/status/1584726006094794774",
"params": {
"aFormat": "mp3",
"isAudioOnly": false,