Skip to content

fluent-vue/fluent-vue

SWUbanner

fluent-vue logo

Internationalization plugin for Vue.js

GitHub Workflow Status codecov GitHub license

fluent-vue is a Vue.js integration for Fluent.js - JavaScript implementation of Mozilla's Project Fluent

🚀 Features

  • Simple api for developers: Just 2 methods, 1 directive and 1 component
  • Powerfull syntax for translators: Use the entire expressive power of every language without need for changes to application source code
  • Isolation: Locale-specific logic doesn't leak to other locales. A simple string in English can map to a complex multi-variant translation in another language
  • Seamless migration: Works for both Vue 3 and 2
  • No bundler required: Usable via CDN

🎉 Example

<template>
  <div>
    <div>{{ $t('hello-user', { userName }) }}</div>
    <div>{{ $t('shared-photos', { userName, photoCount, userGender }) }}</div>
  </div>
</template>

<fluent locale="en">
# Simple things are simple.
hello-user = Hello, {$userName}!

# Complex things are possible.
shared-photos =
  {$userName} {$photoCount ->
     [one] added one photo
    *[other] added {$photoCount} new photos
  } to {$userGender ->
     [male] his stream
     [female] her stream
    *[other] their stream
  }.
</fluent>

📖 Documentation

Documentation can be found here: https://fluent-vue.demivan.me

Examples for different Vue.js versions and build systems can be found here.

📦 Packages

This repository is a monorepo managed with pnpm workspaces.

Package NPM Source
fluent-vue fluent-vue packages/fluent-vue
unplugin-fluent-vue unplugin-fluent-vue packages/unplugin-fluent-vue

🛠️ Development

pnpm install
pnpm build
pnpm test
pnpm typecheck

📄 License

MIT License © 2020 Ivan Demchuk