i18n Support and Task improvements (#80)

* fix: release workflow

* feat: move mostly to internal tasks system

* feat: migrate object clean to new task system

* fix: release not  getting good base version

* chore: set version v0.3.0

* chore: style

* feat: basic task concurrency

* feat: temp pages to fill in page links

* feat: inital i18n support

* feat: localize store page

* chore: style

* fix: weblate doesn't like multifile thing

* fix: update nuxt

* feat: improved error logging

* fix: using old task api

* feat: basic translation docs

* feat: add i18n eslint plugin

* feat: translate store and auth pages

* feat: more translation progress

* feat: admin dash i18n progress

* feat: enable update check by default in prod

* fix: using wrong i18n keys

* fix: crash in library sources page

* feat: finish i18n work

* fix: missing i18n translations

* feat: use twemoji for emojis

* feat: sanatize object ids

* fix: EmojiText's alt text

* fix: UserWidget not using links

* feat: cache and auth for emoji api

* fix: add more missing translations
This commit is contained in:
Husky
2025-06-04 19:53:30 -04:00
committed by GitHub
parent 05af43b622
commit 2233aec23f
86 changed files with 5175 additions and 2816 deletions
+15 -6
View File
@@ -54,6 +54,7 @@
</transition>
</Menu>
</li>
<UserHeaderSelectLang />
<UserHeaderUserWidget />
</ol>
</div>
@@ -76,7 +77,7 @@
class="-m-2.5 p-2.5 text-zinc-400 lg:hidden"
@click="sidebarOpen = true"
>
<span class="sr-only">Open sidebar</span>
<span class="sr-only">{{ $t("header.openSidebar") }}</span>
<Bars3Icon class="h-6 w-6" aria-hidden="true" />
</button>
</div>
@@ -125,7 +126,9 @@
class="-m-2.5 p-2.5"
@click="sidebarOpen = false"
>
<span class="sr-only">Close sidebar</span>
<span class="sr-only">{{
$t("userHeader.closeSidebar")
}}</span>
<XMarkIcon class="h-6 w-6 text-zinc-400" aria-hidden="true" />
</button>
</div>
@@ -172,6 +175,11 @@
<BellIcon class="h-5" />
</UserHeaderWidget>
</li>
<li class="w-full">
<UserHeaderWidget class="w-full">
<UserHeaderSelectLang />
</UserHeaderWidget>
</li>
</div>
</nav>
</div>
@@ -198,28 +206,29 @@ import { Bars3Icon } from "@heroicons/vue/24/outline";
import { XMarkIcon } from "@heroicons/vue/24/solid";
const router = useRouter();
const { t } = useI18n();
const homepageURL = "/store";
const navigation: Array<NavigationItem> = [
{
prefix: "/store",
route: "/store",
label: "Store",
label: t("store.title"),
},
{
prefix: "/library",
route: "/library",
label: "Library",
label: t("userHeader.links.library"),
},
{
prefix: "/community",
route: "/community",
label: "Community",
label: t("userHeader.links.community"),
},
{
prefix: "/news",
route: "/news",
label: "News",
label: t("userHeader.links.news"),
},
];