mirror of https://github.com/jiahaog/Nativefier
parent
7dc189ef3f
commit
895c11a53e
|
@ -31,6 +31,7 @@ if (require('electron-squirrel-startup')) {
|
|||
|
||||
const appArgs = JSON.parse(fs.readFileSync(APP_ARGS_FILE_PATH, 'utf8'));
|
||||
|
||||
log.debug('appArgs', appArgs);
|
||||
// Do this relatively early so that we can start storing appData with the app
|
||||
if (appArgs.portable) {
|
||||
log.debug(
|
||||
|
@ -124,9 +125,20 @@ if (appArgs.basicAuthPassword) {
|
|||
);
|
||||
}
|
||||
|
||||
const isRunningMacos = isOSX();
|
||||
if (appArgs.lang) {
|
||||
const langParts = (appArgs.lang as string).split(',');
|
||||
// Convert locales to languages, because for some reason locales don't work. Stupid Chromium
|
||||
const langPartsParsed = Array.from(
|
||||
// Convert to set to dedupe in case something like "en-GB,en-US" was passed
|
||||
new Set(langParts.map((l) => l.split('-')[0])),
|
||||
);
|
||||
const langFlag = langPartsParsed.join(',');
|
||||
log.debug('Setting --lang flag to', langFlag);
|
||||
app.commandLine.appendSwitch('--lang', langFlag);
|
||||
}
|
||||
|
||||
let currentBadgeCount = 0;
|
||||
const setDockBadge = isRunningMacos
|
||||
const setDockBadge = isOSX()
|
||||
? (count: number, bounce = false) => {
|
||||
app.dock.setBadge(count.toString());
|
||||
if (bounce && count > currentBadgeCount) app.dock.bounce();
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
- [[show-menu-bar]](#show-menu-bar)
|
||||
- [[fast-quit]](#fast-quit)
|
||||
- [[user-agent]](#user-agent)
|
||||
- [[lang]](#lang)
|
||||
- [[honest]](#honest)
|
||||
- [[ignore-certificate]](#ignore-certificate)
|
||||
- [[disable-gpu]](#disable-gpu)
|
||||
|
@ -405,6 +406,14 @@ Specifies if the menu bar should be shown.
|
|||
|
||||
Set the user agent to run the created app with.
|
||||
|
||||
#### [lang]
|
||||
|
||||
```
|
||||
--lang <value>
|
||||
```
|
||||
|
||||
Set the language or locale to render the web site as (e.g., "fr", "en-US", "es", etc.)
|
||||
|
||||
#### [honest]
|
||||
|
||||
```
|
||||
|
|
|
@ -58,6 +58,7 @@ function pickElectronAppArgs(options: AppOptions): any {
|
|||
internalUrls: options.nativefier.internalUrls,
|
||||
isUpgrade: options.packager.upgrade,
|
||||
junk: options.packager.junk,
|
||||
lang: options.nativefier.lang,
|
||||
maximize: options.nativefier.maximize,
|
||||
maxHeight: options.nativefier.maxHeight,
|
||||
maxWidth: options.nativefier.maxWidth,
|
||||
|
|
|
@ -173,6 +173,10 @@ if (require.main === module) {
|
|||
'(macOS only) quit app on window close; defaults to false',
|
||||
)
|
||||
.option('-u, --user-agent <value>', 'set the app user agent string')
|
||||
.option(
|
||||
'--lang <value>',
|
||||
'set the language or locale to render the web site as (e.g., "fr", "en-US", "es", etc.)',
|
||||
)
|
||||
.option(
|
||||
'--honest',
|
||||
'prevent the normal changing of the user agent string to appear as a regular Chrome browser',
|
||||
|
|
|
@ -74,6 +74,9 @@ async function checkApp(appRoot: string, inputOptions: any): Promise<void> {
|
|||
inputOptions.platform,
|
||||
),
|
||||
);
|
||||
|
||||
// Test lang
|
||||
expect(nativefierConfig.lang).toBe(inputOptions.lang);
|
||||
}
|
||||
|
||||
describe('Nativefier', () => {
|
||||
|
@ -88,6 +91,7 @@ describe('Nativefier', () => {
|
|||
out: tempDirectory,
|
||||
overwrite: true,
|
||||
platform,
|
||||
lang: 'en-US',
|
||||
};
|
||||
const appPath = await buildNativefierApp(options);
|
||||
await checkApp(appPath, options);
|
||||
|
|
|
@ -16,6 +16,7 @@ export interface AppOptions {
|
|||
backgroundColor: string;
|
||||
basicAuthPassword: string;
|
||||
basicAuthUsername: string;
|
||||
blockExternalUrls: boolean;
|
||||
bookmarksMenu: string;
|
||||
bounce: boolean;
|
||||
browserwindowOptions: any;
|
||||
|
@ -40,7 +41,7 @@ export interface AppOptions {
|
|||
inject: string[];
|
||||
insecure: boolean;
|
||||
internalUrls: string;
|
||||
blockExternalUrls: boolean;
|
||||
lang?: string;
|
||||
maximize: boolean;
|
||||
nativefierVersion: string;
|
||||
processEnvs: string;
|
||||
|
|
|
@ -58,6 +58,7 @@ export async function getOptions(rawOptions: any): Promise<AppOptions> {
|
|||
backgroundColor: rawOptions.backgroundColor || null,
|
||||
basicAuthPassword: rawOptions.basicAuthPassword || null,
|
||||
basicAuthUsername: rawOptions.basicAuthUsername || null,
|
||||
blockExternalUrls: rawOptions.blockExternalUrls || false,
|
||||
bookmarksMenu: rawOptions.bookmarksMenu || null,
|
||||
bounce: rawOptions.bounce || false,
|
||||
browserwindowOptions: rawOptions.browserwindowOptions,
|
||||
|
@ -82,7 +83,7 @@ export async function getOptions(rawOptions: any): Promise<AppOptions> {
|
|||
inject: rawOptions.inject || [],
|
||||
insecure: rawOptions.insecure || false,
|
||||
internalUrls: rawOptions.internalUrls || null,
|
||||
blockExternalUrls: rawOptions.blockExternalUrls || false,
|
||||
lang: rawOptions.lang || undefined,
|
||||
maximize: rawOptions.maximize || false,
|
||||
nativefierVersion: packageJson.version,
|
||||
processEnvs: rawOptions.processEnvs,
|
||||
|
|
Loading…
Reference in New Issue