@pyxo/quasar-app-extension-int

A Quasar app extension to add internationalization support.
465
Install
npm install @pyxo/quasar-app-extension-int@0.0.3
Latest Version:0.0.3
Vue:3
License:MIT
Last Updated:May 20, 2021
Links: GitHub  ·  npm
Maintainer: ejez

Introduction

Quasar Int is an app extension that makes use of Qint to facilitate the i18n of Quasar apps.

Installation

yarn add vue-i18n@next # or: npm install vue-i18n@next
quasar ext add @pyxo/int

The extension will add a directory src/int/ that contains the configuration. It adds also a boot file src/boot/int.(ts|js).

The extension will also scaffold an example implementation in src-int/.

Prompts

You will be prompted if your app has typescript support, if you answer yes, *.ts files will be added instead of *.js.

Setup

To use the scaffolded example:

  • Register the boot file in quasar.conf.js > boot.

  • Make the following changes in src/router/index.(ts|js)

       const Router = createRouter({
         scrollBehavior: () => ({ left: 0, top: 0 }),
    -    routes,
    +    routes: [],
         ...
    
  • Change vueRouterMode in quasar.conf.js > build to history mode.

  • Enable rtl in quasar.conf.js > build (as the scaffold example uses "Arabic").

To use the hreflang link tags:

  • Make the following changes in src/App.vue

     <script lang="ts">
    +import { useMeta } from 'quasar'
    +import { qint } from 'src/boot/int'
     import { defineComponent } from 'vue'
    
     export default defineComponent({
       name: 'App',
    
    +  setup() {
    +    useMeta(() => qint.meta.value)
    +  },
     })
     </script>
    
    
  • Enable Quasar meta plugin.

SSR mode

Uncomment ssrContext in src/boot/int.(ts|js) as indicated.

Uninstall

quasar ext remove @quasar/int

You might also wish to remove the added directories src/int, src-int and the boot file src/boot/int.(ts|js).

Features

  • SSR support.
  • Supports different URL modes: prefix (example.com/en), subdomain (en.example.com), host (example.co.uk), search-param (example.com?l=en), none (example.com)
  • Supports the use of a language tag cookie.
  • Can make use of the user's client language preferences (e.g. browser settings).
  • Support for hreflang link tags.
  • Lazy loading of Quasar language packs and vue-i18n locale messages.
  • Language tags, Qint uses the term "language tag" to denote a language or a locale, and recommends the use of BCP 47 language tags.

Documentation

API docs: wint | vint | qint

Source code

Repository: github.com/pyxo-dev/quasar-app-extension-int Qint repository: github.com/pyxo-dev/qint

Contributions are welcome!

See also

Related Packages

@tolgee/vue

Vue implementation for Tolgee localization framework

410,505 261
langie

Lightweight translation SDK for Vue.js applications with smart interface languag...

4,147
gt-vue

A lightweight Vue internationalization library for General Translation.

3,971 1,069

Version History

Version Released Vue License
0.0.3 ^3.0.0 MIT
0.0.2 ^3.0.0 MIT
0.0.1 ^3.0.0 MIT
Pre-releases (8)
Version Released Vue License
1.0.0-beta.8 ^3.0.0 MIT
1.0.0-beta.7 ^3.0.0 MIT
1.0.0-beta.6 ^3.0.0 MIT
1.0.0-beta.5 ^3.0.0 MIT
1.0.0-beta.4 ^3.0.0 MIT