From 3a9f558672b24b4c4fb6390b7722037a2c8aa645 Mon Sep 17 00:00:00 2001 From: Jorge Vargas Date: Sun, 18 May 2025 11:57:15 -0600 Subject: [PATCH] Update localization setup --- astro.config.mjs | 24 ++++++++++++++---------- package.json | 8 +++----- project.inlang/project_id | 2 +- project.inlang/settings.json | 17 ++++++----------- src/layouts/base.astro | 3 +-- src/middleware.ts | 3 ++- tsconfig.json | 3 ++- 7 files changed, 29 insertions(+), 31 deletions(-) diff --git a/astro.config.mjs b/astro.config.mjs index 97d55b2..48f9029 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -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 diff --git a/package.json b/package.json index 51d1604..2eec9e3 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/project.inlang/project_id b/project.inlang/project_id index 332bd3f..7a68dbe 100644 --- a/project.inlang/project_id +++ b/project.inlang/project_id @@ -1 +1 @@ -021513eea48bfa4e8387b34adaf7bdc8f8f2c6a7b8fa2a20bc5f8a2a424f5295 \ No newline at end of file +52m6ykHaIPT1QnSo04 \ No newline at end of file diff --git a/project.inlang/settings.json b/project.inlang/settings.json index da85713..20ec58d 100644 --- a/project.inlang/settings.json +++ b/project.inlang/settings.json @@ -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" } -} \ No newline at end of file +} diff --git a/src/layouts/base.astro b/src/layouts/base.astro index 622c160..d325cce 100644 --- a/src/layouts/base.astro +++ b/src/layouts/base.astro @@ -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' --- - + diff --git a/src/middleware.ts b/src/middleware.ts index 1cd6e7c..1bd6ed7 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -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()) }) diff --git a/tsconfig.json b/tsconfig.json index e55115b..5f40c7d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,7 @@ "jsx": "react-jsx", "jsxImportSource": "react", "baseUrl": "src", - "strictNullChecks": true + "strictNullChecks": true, + "allowJs": true } }