langie

Lightweight translation SDK for Vue.js applications with smart interface language selection and limit monitoring
4,147
Install
npm install langie
Latest Version:2.3.0
Vue:3
License:Apache-2.0
Last Updated:Sep 14, 2026
Links: GitLab  ·  npm
Maintainer: nlit

Langie API SDK

npm version Apache 2.0 License

Lightweight translation SDK for Vue.js, Nuxt.js, and vanilla JavaScript applications with smart interface language selection and limit monitoring.

🚀 Live Demo

Requirements

  • Node.js 18.0.0 or higher
  • Vue 3.2.0 or higher
  • Nuxt 3.0.0 or higher (optional)
  • Modern browser with ES2020+ support

Installation

npm install langie

Dependencies

The SDK uses the following external libraries:

  • countries-and-timezones - For accurate timezone to country mapping (316KB, MIT license)
  • @vueform/multiselect - For the language selection dropdown component

Quick Start

Basic Usage

<script setup>
import { useLangie } from 'langie'
import { lt } from 'langie/components'

const { lr, setLanguage } = useLangie()
</script>

<template>
  <h1>{{ lr('Welcome to our application') }}</h1>
  <lt>Hello world!</lt>
  <button @click="setLanguage('es')">Switch to Spanish</button>
</template>

Global Component Registration

You can register the lt component globally for easier usage throughout your application:

// main.js
import { createApp } from 'vue'
import App from './App.vue'
import { lt } from 'langie/components'

const app = createApp(App)

// Register lt component globally
app.component('lt', lt)

app.mount('#app')

Then use it directly in templates without importing:

<template>
  <div>
    <h1><lt>Welcome to our application!</lt></h1>
    <p><lt>This text will be translated automatically.</lt></p>
    <button><lt>Click me</lt></button>
  </div>
</template>

<script setup>
import { useLangie } from 'langie'

const { setLanguage } = useLangie()
</script>

Documentation

Required CSS

For LanguageSelect component:

// main.js
import '@vueform/multiselect/themes/default.css'
import 'langie/dist/index.css'

Advanced Usage

Global Translation Defaults

You can set global defaults for all translation functions and the lt component to avoid repeating common parameters:

// main.js
import { createApp } from 'vue'
import App from './App.vue'
import { lt, setLtDefaults } from 'langie/components'

const app = createApp(App)

// Register lt component globally
app.component('lt', lt)

// Set global defaults (optional)
setLtDefaults({
  ctx: 'ui', // default context
  orig: 'en' // optional original language (no default)
})

app.mount('#app')

Now you can use simplified syntax:

<template>
  <!-- Uses global defaults: ctx="ui" -->
  <lt>Cancel</lt>

  <!-- Override specific props -->
  <lt ctx="content">Article title</lt>
  <lt orig="fr">Bonjour</lt>

  <!-- Both overrides -->
  <lt ctx="content" orig="es">Hola mundo</lt>
</template>
// Functions also use global defaults
const { l, lr } = useLangie()

// Uses global defaults: ctx="ui"
l('Hello world') // Not reactive, for JS only
lr('Welcome message') // Reactive, for Vue templates/computed

// Override specific parameters
l('Article title', 'content') // Not reactive
lr('French text', 'ui', 'fr') // Reactive

Features

  • Reactive translations with automatic UI updates
  • SSR support for Nuxt.js applications
  • Smart caching with context-aware storage
  • Language detection with browser locale support
  • Limit monitoring with usage tracking
  • TypeScript support with full type definitions
  • Multiple frameworks - Vue.js, Nuxt.js, vanilla JavaScript

Backend Requirements

Your translation service needs these endpoints:

  • POST /translate - Translate texts
  • GET /languages - Available languages
  • GET /limit - API usage limits
  • GET /health - Service health check

See Backend Integration for detailed API specifications and setup guide.

License

Apache 2.0

Related Packages

gt-vue

A lightweight Vue internationalization library for General Translation.

3,971 1,069
@tolgee/vue

Vue implementation for Tolgee localization framework

410,505 261
@dialpad/i18n

Internationalization library for Vue 3 apps using Mozilla's Fluent syntax, with...

10,073
@byjohann/vue-i18n

Lightweight internationalization plugin for Vue

8,721 7
vue-simple-i18n

Probably the thinnest library to end all Vue i18n library within 1kb

470 33

Version History

Version Released Vue License
2.3.0 ^3.5.0 Apache-2.0
2.2.0 ^3.5.0 Apache-2.0
2.1.0 ^3.5.0 Apache-2.0
2.0.5 ^3.5.0 Apache-2.0
2.0.4 ^3.5.0 Apache-2.0