
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Automatic i18n markdown translation and i18n phrase translation using Google Translate
Automatic i18n markdown translation and i18n phrase translation using Google Translate
npm:
npm install mandarin
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.
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.
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 your en.json file translated to the locales es (Spanish) and zh (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
| Name | Website |
|---|---|
| Nick Baugh | http://niftylettuce.com/ |
FAQs
Automatic i18n markdown translation and i18n phrase translation using Google Translate
The npm package mandarin receives a total of 138 weekly downloads. As such, mandarin popularity was classified as not popular.
We found that mandarin demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.