mandarin
v5.0.6
Published
Automatic i18n markdown translation and i18n phrase translation using Google Translate
Downloads
173
Readme
mandarin
Automatic i18n markdown translation and i18n phrase translation using Google Translate
Table of Contents
Install
npm:
npm install mandarin
Requirements
Redis
You will need to have Redis installed in order for caching to work properly.
If you do not plan to use Redis, then set redis: false
as an option.
Google Application Credentials
You will also need Google Application Credentials, and you will need to set them as environment variables (e.g. GOOGLE_APPLICATION_CREDENTIALS=/home/user/Downloads/service-account-file.json
).
For more information on Google Application credentials, see https://cloud.google.com/docs/authentication/getting-started#setting_the_environment_variable.
Usage
Implement Mandarin and pass it an instance of i18n
const Mandarin = require('mandarin'); const I18N = require('@ladjs/i18n'); const i18n = new I18N(); // you can also pass a custom `logger` option (it defaults to `console`) const mandarin = new Mandarin({ // REQUIRED: i18n // OPTIONAL: // logger: console, // OPTIONAL (see index.js for defaults): // redis: ... // OPTIONAL (see index.js for defaults): // redisMonitor: ... // OPTIONAL: // see all commented options from this following link: // <https://googleapis.dev/nodejs/translate/5.0.1/v2_index.js.html> // // clientConfig: {}, // OPTIONAL (see index.js for defaults): // Files to convert from `index.md` to `index-es.md` // Or `README.md` to `README-ZH.md` for example // <https://github.com/sindresorhus/globby> // // markdown: ... (note we expose `Mandarin.DEFAULT_PATTERNS` for you) }); // // Translate Phrases // // with async/await (async () => { try { await mandarin.translate(); } catch (err) { console.log(err); } })(); // with promises and then/catch mandarin .translate() .then(() => { console.log('done'); }) .catch(console.error); // with callbacks mandarin.translate(err => { if (err) throw err; console.log('done'); }); // // Translate Markdown Files // // with async/await (async () => { try { await mandarin.markdown(); } catch (err) { console.log(err); } })(); // with promises and then/catch mandarin .markdown() .then(() => { console.log('done'); }) .catch(console.error); // with callbacks mandarin.markdown(err => { if (err) throw err; console.log('done'); });
This assumes that you have locale files already and a default locale file (e.g.
./locales/en.json
with phrases that need translated to other languages you support). Based off the defaults from i18n, you would automatically get youren.json
file translated to the localeses
(Spanish) andzh
(Chinese).Follow the "Before you begin" steps here https://cloud.google.com/translate/docs/basic/setup-basic (basically you download a JSON file after creating a Google Cloud Project with Cloud Translation API enabled).
Specify the path to the JSON file and run your script that uses
mandarin
:
GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json" node app.js
Contributors
| Name | Website | | -------------- | -------------------------- | | Nick Baugh | http://niftylettuce.com/ |