Awesome
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/ |