Internationalization (i18n) (#627)

* `feat: added internationalization lib, added english labels`
* `fixes from code review`
* `feat: add crowdin github actions`
* `fix: added support for i18n in testing. Fixed broken tests`
* `fix: missing translations`
* `removed unneded import`
* `more components updated with missing translations`
* `fixed lint issue`
* `Refactor: updated how translations are scoped, updated all references`
* `fixing broken tests`
* `feat: added language switcher, updated some translations`
* `fixed linting issues`
* `reverting vite config`
* `add english group id's to command palette`
* `updated PR template for i18n`
This commit is contained in:
Dan Ditomaso
2025-05-27 08:33:43 -04:00
committed by GitHub
parent 9d74fe2d6e
commit eb2a2717b1
95 changed files with 4651 additions and 1497 deletions
+23 -24
View File
@@ -1,48 +1,47 @@
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import { VitePWA } from 'vite-plugin-pwa';
import { execSync } from 'node:child_process';
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { VitePWA } from "vite-plugin-pwa";
import { execSync } from "node:child_process";
import process from "node:process";
import path from 'node:path';
import path from "node:path";
let hash = '';
let hash = "";
try {
hash = execSync('git rev-parse --short HEAD', { encoding: 'utf8' }).trim();
hash = execSync("git rev-parse --short HEAD", { encoding: "utf8" }).trim();
} catch (error) {
console.error('Error getting git hash:', error);
hash = 'DEV';
console.error("Error getting git hash:", error);
hash = "DEV";
}
export default defineConfig({
plugins: [
react(),
VitePWA({
registerType: 'autoUpdate',
strategies: 'generateSW',
registerType: "autoUpdate",
strategies: "generateSW",
devOptions: {
enabled: false
enabled: false,
},
workbox: {
cleanupOutdatedCaches: true,
sourcemap: true
}
})
sourcemap: true,
},
}),
],
define: {
'import.meta.env.VITE_COMMIT_HASH': JSON.stringify(hash),
"import.meta.env.VITE_COMMIT_HASH": JSON.stringify(hash),
},
build: {
emptyOutDir: true,
assetsDir: './',
assetsDir: "./",
},
resolve: {
alias: {
'@app': path.resolve(process.cwd(), './src'),
'@pages': path.resolve(process.cwd(), './src/pages'),
'@components': path.resolve(process.cwd(), './src/components'),
'@core': path.resolve(process.cwd(), './src/core'),
'@layouts': path.resolve(process.cwd(), './src/layouts'),
"@app": path.resolve(process.cwd(), "./src"),
"@pages": path.resolve(process.cwd(), "./src/pages"),
"@components": path.resolve(process.cwd(), "./src/components"),
"@core": path.resolve(process.cwd(), "./src/core"),
"@layouts": path.resolve(process.cwd(), "./src/layouts"),
},
},
server: {
@@ -52,4 +51,4 @@ export default defineConfig({
"Cross-Origin-Embedder-Policy": "require-corp",
},
},
});
});