Collection of Vite plugins and utilities for GJS (GNOME JavaScript) development. Build native GNOME applications using TypeScript/JavaScript with our specialized plugins for translation management, UI compilation, and more.
Comprehensive gettext translation management for GJS applications:
- Extract translatable strings from TypeScript/JavaScript source files
- Compile PO files to binary MO format for GNOME's translation system
- Support for metainfo XML with ITS rules
- Multiple output formats (MO, XML, JSON, desktop entries)
- Automatic file watching and recompilation
Compile GNOME Blueprint UI files (.blp) to XML for GJS applications:
- Seamless
.blpfile imports in your TypeScript/JavaScript code - Optional XML minification
- Direct integration with Vite build process
- TypeScript support included
# Install individual plugins
npm install @gjsify/vite-plugin-gettext --save-dev
npm install @gjsify/vite-plugin-blueprint --save-dev// vite.config.js
import { defineConfig } from "vite";
import { gettextPlugin, msgfmtPlugin } from "@gjsify/vite-plugin-gettext";
import blueprintPlugin from "@gjsify/vite-plugin-blueprint";
export default defineConfig({
plugins: [
// Extract and compile translations
gettextPlugin({
poDirectory: "po",
moDirectory: "public",
}),
// Compile Blueprint UI files
blueprintPlugin({
minify: true,
}),
],
});- Vite 2.x or higher
- Node.js 12.x or higher
- GNU Gettext tools (for gettext plugin)
- Blueprint compiler (for blueprint plugin)
We welcome contributions! Please feel free to submit issues and pull requests.
MIT License - see LICENSE file for details.