devex: migrate to vue-i18n (#4966)

* sample languages refactor

* feat: consistency + dedupe impl of i18n

* fix: broken imports

* fix: intl formatted component

* fix: use relative imports

* fix: imports

* fix: comment out incomplete locales + fix imports

* feat: cleanup

* fix: ui imports

* fix: lint

* fix: admonition import

* make footer a component, fix language reactivity

* make copyright notice untranslatable

---------

Co-authored-by: Calum H. <contact@cal.engineer>
This commit is contained in:
Prospector
2025-12-27 13:37:37 -08:00
committed by GitHub
parent 3cabc3b967
commit 1bbb01bd42
161 changed files with 1449 additions and 2314 deletions

View File

@@ -1,4 +1,4 @@
import { defineMessages } from '@vintl/vintl'
import { defineMessages } from '../composables/i18n'
export const commonMessages = defineMessages({
affiliateLinksButton: {

View File

@@ -1,5 +1,6 @@
import { BlocksIcon, CompassIcon, EyeIcon, PickaxeIcon, UnknownIcon } from '@modrinth/assets'
import { defineMessage } from '@vintl/vintl'
import { defineMessage } from '../composables/i18n'
export const GAME_MODES = {
survival: {

View File

@@ -1,4 +1,4 @@
import { defineMessage, type MessageDescriptor } from '@vintl/vintl'
import { defineMessage, type MessageDescriptor } from '../composables/i18n'
export const NOTICE_LEVELS: Record<
string,

View File

@@ -1,4 +1,4 @@
import { defineMessage, type MessageDescriptor } from '@vintl/vintl'
import { defineMessage, type MessageDescriptor } from '../composables/i18n'
export const regionOverrides = {
'us-vin': {

View File

@@ -1,10 +1,11 @@
import type { Labrinth } from '@modrinth/api-client'
import { ClientIcon, ServerIcon } from '@modrinth/assets'
import { formatCategory, formatCategoryHeader, sortByNameOrNumber } from '@modrinth/utils'
import { defineMessage, useVIntl } from '@vintl/vintl'
import { type Component, computed, readonly, type Ref, ref } from 'vue'
import { type LocationQueryRaw, type LocationQueryValue, useRoute } from 'vue-router'
import { defineMessage, useVIntl } from '../composables/i18n'
type BaseOption = {
id: string
formatted_name?: string