Compare commits

...

2 commits

Author SHA1 Message Date
sam
f1f777ff82
fix(frontend): localize footer 2025-02-24 20:37:51 +01:00
sam
a72c0f41c3
add build script 2025-02-24 18:25:49 +01:00
4 changed files with 62 additions and 10 deletions
.gitignore
Foxnouns.Frontend/src/lib
components
i18n/locales
build.sh

3
.gitignore vendored
View file

@ -14,3 +14,6 @@ docker/proxy-config.json
docker/frontend.env
Foxnouns.DataMigrator/apps.json
out/
build/

View file

@ -8,6 +8,7 @@
import Envelope from "svelte-bootstrap-icons/lib/Envelope.svelte";
import CashCoin from "svelte-bootstrap-icons/lib/CashCoin.svelte";
import Logo from "./Logo.svelte";
import { t } from "$lib/i18n";
type Props = { meta: Meta };
let { meta }: Props = $props();
@ -18,13 +19,13 @@
<div class="align-start flex-grow-1">
<Logo />
<ul class="mt-2 list-unstyled">
<li><strong>Version</strong> {meta.version}</li>
<li><strong>{$t("footer.version")}</strong> {meta.version}</li>
</ul>
</div>
<div class="align-end">
<ul class="list-unstyled">
<li>{meta.users.total.toLocaleString()} <strong>users</strong></li>
<li>{meta.members.toLocaleString()} <strong>members</strong></li>
<li>{meta.users.total.toLocaleString()} <strong>{$t("footer.users")}</strong></li>
<li>{meta.members.toLocaleString()} <strong>{$t("footer.members")}</strong></li>
</ul>
</div>
</div>
@ -36,7 +37,7 @@
>
<li class="list-inline-item">
<Git />
Source code
{$t("footer.source")}
</li>
</a>
<a
@ -46,37 +47,37 @@
>
<li class="list-inline-item">
<Reception4 />
Status
{$t("footer.status")}
</li>
</a>
<a class="list-inline-item link-underline link-underline-opacity-0" href="/page/about">
<li class="list-inline-item">
<Envelope />
About and contact
{$t("footer.about-contact")}
</li>
</a>
<a class="list-inline-item link-underline link-underline-opacity-0" href="/page/tos">
<li class="list-inline-item">
<CardText />
Terms of service
{$t("footer.terms")}
</li>
</a>
<a class="list-inline-item link-underline link-underline-opacity-0" href="/page/privacy">
<li class="list-inline-item">
<Shield />
Privacy policy
{$t("footer.privacy")}
</li>
</a>
<a class="list-inline-item link-underline link-underline-opacity-0" href="/page/changelog">
<li class="list-inline-item">
<Newspaper />
Changelog
{$t("footer.changelog")}
</li>
</a>
<a class="list-inline-item link-underline link-underline-opacity-0" href="/page/donate">
<li class="list-inline-item">
<CashCoin />
Donate
{$t("footer.donate")}
</li>
</a>
</ul>

View file

@ -327,5 +327,17 @@
"alert": {
"auth-method-remove-success": "Successfully unlinked account!",
"auth-required": "You must log in to access this page."
},
"footer": {
"version": "Version",
"users": "users",
"members": "members",
"source": "Source code",
"status": "Status",
"terms": "Terms of service",
"privacy": "Privacy policy",
"changelog": "Changelog",
"donate": "Donate",
"about-contact": "About and contact"
}
}

36
build.sh Executable file
View file

@ -0,0 +1,36 @@
#!/usr/bin/env bash
set -euxo pipefail
ROOT_DIR=$(pwd)
echo "Cleaning output directory ($ROOT_DIR/build)"
[ -d "$ROOT_DIR/build" ] && rm -r "$ROOT_DIR/build"
mkdir "$ROOT_DIR/build"
echo "Building .NET backend"
cd "$ROOT_DIR/Foxnouns.Backend"
[ -d "$ROOT_DIR/Foxnouns.Backend/out" ] && rm -r "$ROOT_DIR/Foxnouns.Backend/out"
dotnet publish --artifacts-path "$ROOT_DIR/Foxnouns.Backend/out"
mv "$ROOT_DIR/Foxnouns.Backend/out/publish/Foxnouns.Backend/"* "$ROOT_DIR/build/bin"
echo "Building Go rate limiter"
cd "$ROOT_DIR/Foxnouns.RateLimiter"
go build -o rate -v .
mv rate "$ROOT_DIR/build/rate"
echo "Building Node.js frontend"
cd "$ROOT_DIR/Foxnouns.Frontend"
[ -d "$ROOT_DIR/Foxnouns.Frontend/build" ] && rm -r "$ROOT_DIR/Foxnouns.Frontend/build"
pnpm install
pnpm build
mkdir "$ROOT_DIR/build/fe"
cp -r build .env* package.json pnpm-lock.yaml "$ROOT_DIR/build/fe"
cd "$ROOT_DIR/build/fe"
pnpm install -P
echo "Finished building Foxnouns.NET"