@cvo/plugin-i18n
v0.0.0
Published
Internationalization plugin for CVO Framework
Downloads
53
Readme
@cvo/plugin-i18n
A lightweight, key-value based internationalization (i18n) plugin for CVO Framework. Perfect for small projects or simple frontend-only translations where the advanced features of Fluent are not required.
🚀 Features
- Simple JSON Format: Uses standard JSON objects for translation resources.
- Zero Dependencies: Extremely small footprint, ideal for performance-sensitive applications.
- Parameter Substitution: Basic support for
{variable}placeholders. - Vue 3 Integration: Includes an
installmethod for seamless Vue 3 usage.
🛠 Configuration (Server)
Configure the simple i18n provider in your cvo.config.ts:
import { defineConfig } from '@cvo/core';
import { SimpleI18nProvider } from '@cvo/plugin-i18n';
const provider = new SimpleI18nProvider();
provider.addResource('en-US', JSON.stringify({ "hello": "Hello {name}!" }));
export default defineConfig({
i18n: {
provider,
defaultLocale: 'en-US',
locales: ['en-US', 'zh-CN']
}
});🛠 Configuration (Vue)
import { createApp } from 'vue';
import { createI18n, SimpleI18nProvider } from '@cvo/plugin-i18n';
const app = createApp(App);
const provider = new SimpleI18nProvider();
// ... add resources ...
const i18n = createI18n({ provider, locale: 'en-US' });
app.use(i18n);
// In components:
// {{ $t('hello', { name: 'CVO' }) }}🧠 Usage
Backend API
You can use either the useI18n hook or the @I18n() parameter decorator.
Using Hook
import { useI18n } from '@cvo/server';
export async function sayHello(name: string) {
const { t } = useI18n();
return t('hello', { name });
}Using Decorator
import { http, I18n } from '@cvo/core';
export class HelloController {
@http('GET', '/hello')
async hello(@I18n() t: (key: string, args?: any) => string) {
return { message: t('hello', { name: 'CVO' }) };
}
}⚖️ vs. @cvo/plugin-i18n-fluent
- Simple I18n: Best for simple static strings and lightweight apps.
- I18n Fluent: Recommended for production apps requiring complex plurals, gender-specific translations, and professional localization workflows.
