I would like to launch a Google Chrome browser with language Spanish es
using Puppeteer.
I've tried puppeteer.launch(args:['--lang=es',...],...)
but it didn't work.
I've tried passing the environment variable LANGUAGE=es mocha puppeteer-test.js
but it didn't work.
I've tried using the userDataDir
option and passing a folder with a Preferences
file a { "intl": { "accept_languages": "es" } }
but the browser Settings - Languages still don't show Spanish and neither does window.navigator.languages
neither window.navigator.language
I'm using
Puppeteer 0.11.0
Node 8.4.0
NPM 5.2.0
macOS El Capitan 10.11.6
MacBook Pro Retina, 15-inch, Mid 2015
There are several ways to change locale, you can try all of them to find what works for you,
Use Args when launching
const browser = await puppeteer.launch({
headless: false,
args: ['--lang=bn-BD,bn']
});
Send the language as Header
await page.setExtraHTTPHeaders({
'Accept-Language': 'bn'
});
Forcefully set the language
// Set the language forcefully on javascript
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, "language", {
get: function() {
return ["bn-BD"];
}
});
Object.defineProperty(navigator, "languages", {
get: function() {
return ["bn-BD", "bn"];
}
});
});
For the sake of testing, I'll test this in multiple languages, including es
, and here is the result.
Google search:
BrowserLeaks: