Skip to content

Latest commit

 

History

History
109 lines (85 loc) · 2.75 KB

README.md

File metadata and controls

109 lines (85 loc) · 2.75 KB

Introduction

npm version

This package shows an overview of your translations. Check which keys are not yet translated.

Getting started

Source can be loaded via npm or via jsdelivr CDN.

# npm package
$ npm install translation-check
<script src="https://cdn.jsdelivr.net/npm/translation-check/dist/umd/translationCheck.min.js" ></script>
<script>
  // window.translationCheck.i18nextPlugin
  // window.translationCheck.showTranslations()
</script>

Usage with i18next

Use it as plugin:

import i18next from 'i18next'
import { i18nextPlugin } from 'translation-check'

i18next.use(i18nextPlugin).init({
  // ...your i18next options
})
// or with custom options
// i18next.use(i18nextPlugin).init({
//   translationStats: { // optional options, if not provided it will guess based on your i18next config
//     queryStringParam: 'showtranslations',
//     sourceLng: 'en',
//     targetLngs: ['de', 'it'],
//     preserveEmptyStrings: false
//   }
// })

Then open your app or website and add ?showtranslations in your url, i.e. http://localhost:3000?showtranslations.

Alternatively, call it after i18next has loaded all your translations:

import i18next from 'i18next'
import { showTranslations } from 'translation-check'

i18next.init({
  // ...your i18next options
}, (err, t) => {
  // ...
  // somewhere in your UI create a button or link or similar, like that:
  $('#open-editor').click(() => {
    showTranslations(i18next)
    // showTranslations(i18next, { // optional options, if not provided it will guess based on your i18next config
    //   sourceLng: 'en',
    //   targetLngs: ['de', 'it'],
    //   preserveEmptyStrings: false
    // }) 
  })
})

Usage without i18next

import { showTranslations } from 'translation-check'

// ...
// somewhere in your UI create a button or link or similar, like that:
$('#open-editor').click(() => {
  showTranslations({
    en: {
      // this is a namespace, you can also have multiple namespaces
      translation: {
        salutation: 'hello world'
      },
      anotherNS: {
        nice: 'This is a nice day!'
      }
    },
    de: {
      translation: {
        salutation: 'hallo welt'
      },
      anotherNS: {
        nice: 'Es ist ein schöner Tag!'
      }
    }
  })
})

What's that mini.locize.com?

The overview of your translations is displayed in a React.js app hosted on Github pages.

This is all done on the client side only, which means locize does NOT collect ANY of your data.