https://github.com/locize/locize-lastused
Using API lastUsed using in node.js, in the browser and for deno.
https://github.com/locize/locize-lastused
i18n i18next internationalization l10n localization locize
Last synced: 5 months ago
JSON representation
Using API lastUsed using in node.js, in the browser and for deno.
- Host: GitHub
- URL: https://github.com/locize/locize-lastused
- Owner: locize
- License: mit
- Created: 2018-01-01T16:04:24.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-01-23T09:25:52.000Z (12 months ago)
- Last Synced: 2025-08-29T04:53:20.156Z (5 months ago)
- Topics: i18n, i18next, internationalization, l10n, localization, locize
- Language: JavaScript
- Homepage:
- Size: 238 KB
- Stars: 3
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/locize/locize-lastused/actions?query=workflow%3Anode)
[](https://www.npmjs.com/package/locize-lastused)
This is an i18next plugin or standalone script to be used for [locize](http://locize.com) service. It will update last used timestamps on reference keys (so only on your reference/source language) from your locize project using http requests.
# Troubleshooting
**Seems not working**
Per default only `localhost` is allowed to send last used information (to avoid using this feature accidentally in production). If you're not using `localhost` during development you will have to set the `allowedHosts: ['your.domain.tld']` for the options.
# Getting started
Source can be loaded via [npm](https://www.npmjs.com/package/locize-lastused) or [downloaded](https://cdn.rawgit.com/locize/locize-lastused/master/locizeLastUsed.min.js) from this repo.
```bash
# npm package
$ npm install locize-lastused
```
## Options
**IMPORTANT** make sure you do not add your apiKey in the production build to avoid misuse by strangers
```js
{
// the id of your locize project
projectId: '[PROJECTID]',
// add an api key if you want to send missing keys
apiKey: '[APIKEY]',
// the reference language of your project
referenceLng: '[LNG]',
// version - defaults to latest
version: '[VERSION]',
// debounce interval to send data in milliseconds
debounceSubmit: 90000,
// hostnames that are allowed to send last used data
// please keep those to your local system, staging, test servers (not production)
allowedHosts: ['localhost']
}
```
## Using with i18next
Options can be passed in by setting options.locizeLastUsed in i18next.init:
```js
import i18next from 'i18next';
import locizeLastUsed from 'locize-lastused';
// or
const i18next = require('i18next');
const locizeLastUsed = require('locize-lastused');
i18next.use(locizeLastUsed).init({
locizeLastUsed: options
});
```
- If you don't use a module loader it will be added to `window.locizeLastUsed`
## Using without i18next
Directly call locizeLastUsed.init:
```js
import locizeLastUsed from 'locize-lastused';
locizeLastUsed.init(options);
```
then call used function with namespace and key:
```js
import locizeLastUsed from 'locize-lastused';
locizeLastUsed.used('myNamespace', 'myKey.as.in.locize');
```
## TypeScript
To properly type the options, you can import the `LocizeLastusedOptions` interface and use it as a generic type parameter to the i18next's `init` method, e.g.:
```ts
import i18n from 'i18next'
import LocizeLastusedPlugin, { LocizeLastusedOptions } from 'locize-lastused'
i18n
.use(LocizeLastusedPlugin)
.init({
locizeLastUsed: {
// locize lastused options
projectId: '1234123424234',
apiKey: 'my-api-key'
},
// other i18next options
})
```