finish up translations and setup doc server stuff

This commit is contained in:
ngn
2025-01-10 00:16:06 +03:00
parent ac307de76c
commit 5fb3c03e40
30 changed files with 591 additions and 104 deletions

View File

@ -1,7 +1,7 @@
import { urljoin } from "$lib/util.js";
const version = "v1";
const url = urljoin(import.meta.env.VITE_API_URL, version);
const url = urljoin(import.meta.env.APP_API_URL, version);
function api_url(path = null, query = {}) {
return urljoin(url, path, query);

View File

@ -15,7 +15,7 @@
{error}
{/if}
</code>
<Link link={import.meta.env.VITE_BUG_REPORT_URL}>
<Link link={import.meta.env.APP_REPORT_URL}>
{$_("error.report")}
</Link>
<img src="/profile/sad.png" alt="" />

View File

@ -1,5 +1,5 @@
<script>
import { color, date_from_ts } from "$lib/util.js";
import { urljoin, color, date_from_ts, language } from "$lib/util.js";
import { get_metrics } from "$lib/api.js";
import Link from "$lib/link.svelte";
@ -17,15 +17,21 @@
<div class="info">
<div class="links">
<span>
<Link href="/" bold={true}>{$_("footer.source")}</Link>
<Link link={import.meta.env.APP_SOURCE_URL} bold={true}>{$_("footer.source")}</Link>
</span>
<span>/</span>
<span>
<Link href="/" bold={true}>{$_("footer.license")}</Link>
<Link
link={urljoin(import.meta.env.APP_DOC_URL, "license", { lang: $language })}
bold={true}>{$_("footer.license")}</Link
>
</span>
<span>/</span>
<span>
<Link href="/" bold={true}>{$_("footer.privacy")}</Link>
<Link
link={urljoin(import.meta.env.APP_DOC_URL, "privacy", { lang: $language })}
bold={true}>{$_("footer.privacy")}</Link
>
</span>
</div>
<span>

View File

@ -2,20 +2,30 @@
import { language, set_lang } from "$lib/util.js";
import languages from "$lib/lang.js";
let icon = "",
let icon = null,
indx = 0,
len = languages.length;
function next() {
if (indx >= languages.length) indx = 0;
function next_indx() {
if (indx + 1 >= len) return 0;
return indx + 1;
}
icon = languages[indx].icon;
set_lang(languages[indx++].code);
function next_lang(inc) {
let new_indx = next_indx();
if (inc) indx = new_indx;
return languages[new_indx];
}
function next() {
set_lang(next_lang(true).code);
icon = next_lang(false).icon;
}
for (indx = 0; indx < len; indx++) {
if (languages[indx].code == $language) {
icon = languages[indx++].icon;
set_lang(languages[indx].code);
icon = next_lang(false).icon;
break;
}
}

View File

@ -6,12 +6,9 @@
import { _ } from "svelte-i18n";
export let service = {};
let style = "";
if (service.check_res == 0) style = "opacity: 70%";
</script>
<main {style}>
<main>
<div class="info">
<div class="title">
<h1>{service.name}</h1>
@ -44,7 +41,7 @@
{$_("services.status.up")}
</span>
{:else if service.check_res == 2}
<span style="background: var(--white-2)">
<span style="background: var(--{color()}); filter: brightness(50%);">
{$_("services.status.slow")}
</span>
{/if}
@ -70,6 +67,7 @@
align-items: center;
justify-content: space-between;
color: var(--white-1);
flex: 1;
}
main .info .title h1 {

View File

@ -49,13 +49,13 @@ function urljoin(url, path = null, query = {}) {
else if (path[0] === "/") url = new URL(path.slice(1), url);
else url = new URL(path, url);
for (let k in query) url.searchParams.append(query[k]);
for (let k in query) url.searchParams.append(k, query[k]);
return url.href;
}
function frontend_url(path = null, query = {}) {
return urljoin(import.meta.env.VITE_FRONTEND_URL, path, query);
return urljoin(import.meta.env.APP_URL, path, query);
}
function color() {