Update localization setup

This commit is contained in:
Jorge Vargas 2025-05-18 11:57:15 -06:00
parent a5fde1b6c8
commit 3a9f558672
7 changed files with 29 additions and 31 deletions

View file

@ -3,10 +3,10 @@ import { defineConfig, envField } from 'astro/config'
import tailwindcss from '@tailwindcss/vite'
import node from '@astrojs/node'
import react from '@astrojs/react'
import paraglide from '@inlang/paraglide-astro'
import { paraglideVitePlugin } from '@inlang/paraglide-js'
import icon from 'astro-icon'
import { languageTags } from './project.inlang/settings.json'
import { locales } from './project.inlang/settings.json'
// https://astro.build/config
export default defineConfig({
@ -31,19 +31,23 @@ export default defineConfig({
},
site: 'https://sittingonclouds.net',
i18n: {
locales: languageTags,
locales,
defaultLocale: 'en',
routing: {
prefixDefaultLocale: false,
redirectToDefaultLocale: true
}
},
integrations: [
paraglide({ project: './project.inlang', outdir: './src/paraglide' }),
icon({ iconDir: 'src/img/icons' }),
react()
],
vite: { plugins: [tailwindcss()] },
integrations: [icon({ iconDir: 'src/img/icons' }), react()],
vite: {
plugins: [
tailwindcss(),
paraglideVitePlugin({
project: './project.inlang',
outdir: './src/paraglide'
})
]
},
image: { domains: ['cdn.sittingonclouds.net'] },
output: 'server',
adapter: node({ mode: 'standalone' }),
@ -51,7 +55,7 @@ export default defineConfig({
'/en/[...params]': '/[...params]',
'/profile': { status: 307, destination: '/maintenance' },
'/profile/[username]': { status: 307, destination: '/maintenance' },
'/request': { status: 307, destination: '/maintenance' }
'/request': { status: 308, destination: '/requests' }
},
security: {
checkOrigin: false

View file

@ -4,16 +4,14 @@
"version": "1.0.0",
"scripts": {
"dev": "astro dev",
"build": "npm run prisma:migrate && npm run paraglide:compile && astro build",
"build": "npm run prisma:migrate && astro build",
"preview": "astro preview",
"prisma:build": "prisma migrate deploy && prisma generate --sql && tsx ./prisma/migrate.ts",
"paraglide:compile": "paraglide-js compile --project ./project.inlang --outdir ./src\\paraglide"
"prisma:build": "prisma migrate deploy && prisma generate --sql && tsx ./prisma/migrate.ts"
},
"dependencies": {
"@astrojs/node": "9.0.0",
"@astrojs/react": "4.1.3",
"@astrojs/rss": "4.0.11",
"@inlang/paraglide-astro": "^0.2.2",
"@prisma/client": "^6.4.1",
"@tailwindcss/vite": "^4.0.7",
"@types/react": "^18.3.12",
@ -41,7 +39,7 @@
"use-immer": "^0.11.0"
},
"devDependencies": {
"@inlang/paraglide-js": "1.11.2",
"@inlang/paraglide-js": "^2.0.12",
"@parcel/watcher": "^2.4.1",
"@types/nodemailer": "^6.4.17",
"concurrently": "^8.2.2",

View file

@ -1 +1 @@
021513eea48bfa4e8387b34adaf7bdc8f8f2c6a7b8fa2a20bc5f8a2a424f5295
52m6ykHaIPT1QnSo04

View file

@ -1,17 +1,12 @@
{
"$schema": "https://inlang.com/schema/project-settings",
"sourceLanguageTag": "en",
"languageTags": [
"en"
],
"baseLocale": "en",
"locales": ["en"],
"modules": [
"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@latest/dist/index.js",
"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-missing-translation@latest/dist/index.js",
"https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-without-source@latest/dist/index.js",
"https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@latest/dist/index.js",
"https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@latest/dist/index.js"
"https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@4/dist/index.js",
"https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@2/dist/index.js"
],
"plugin.inlang.messageFormat": {
"pathPattern": "./messages/{languageTag}.json"
"pathPattern": "./messages/{locale}.json"
}
}

View file

@ -1,14 +1,13 @@
---
import { Toaster } from 'react-hot-toast'
import { languageTag } from '../paraglide/runtime'
import Header from 'components/Header.astro'
import Footer from 'components/Footer.astro'
import 'styles/global.css'
---
<html lang={languageTag()} dir={Astro.locals.paraglide.dir} class='h-full'>
<html class='h-full'>
<head>
<link rel='preconnect' href='https://fonts.googleapis.com' />
<link rel='preconnect' href='https://fonts.gstatic.com' crossorigin />

View file

@ -1,5 +1,6 @@
import { auth } from 'auth'
import { defineMiddleware } from 'astro:middleware'
import { paraglideMiddleware } from 'paraglide/server'
import PAGES from 'utils/pages.json'
import prismaClient from 'utils/prisma-client'
@ -30,5 +31,5 @@ export const onRequest = defineMiddleware(async (context, next) => {
context.locals.pages = []
}
return next()
return paraglideMiddleware(context.request, () => next())
})

View file

@ -6,6 +6,7 @@
"jsx": "react-jsx",
"jsxImportSource": "react",
"baseUrl": "src",
"strictNullChecks": true
"strictNullChecks": true,
"allowJs": true
}
}