Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac: opening a packaged app from Finder uses a different locale than opening from the terminal #558

Closed
joews opened this issue Jan 14, 2017 · 4 comments
Labels
build-target:mac 🍎 Bundling an Electron app specifically for macOS needs info Issue reporter needs to provide more information for maintainers to take action

Comments

@joews
Copy link

joews commented Jan 14, 2017

Running a packaged app on macOS 10.12.2, with System language set to en-GB:

  • Opening from the terminal, app.getLocale() returns en-GB.
  • Opening from Finder, app.getLocale() returns an empty String.

Date#toLocaleString is also affected (Terminal: "14/01/2017, 00:20:36"; Finder: "1/14/2017, 00:20:36"

This was raised in microsoft/vscode#16261. I'm not sure if it's an electron or packaging issue, but I don't know how to repro on vanilla Electron so I'm raising here first.

N.B. vscode uses https://github.com/joaomoreno/gulp-atom-electron to package for Mac.

Console output when you run electron-packager with the environment variable DEBUG=electron-packager. Please include the stack trace if one exists.

❯ DEBUG=electron-packager ./node_modules/.bin/electron-packager . --platform=darwin --overwrite
  electron-packager Electron Packager 8.5.0 +0ms
  electron-packager Node v7.2.0 +2ms
  electron-packager Host Operating system: darwin (x64) +1ms
  electron-packager Packager Options: {"_":["."],"all":false,"deref-symlinks":true,"download":{"strictSSL":true},"overwrite":true,"prune":true,"quiet":false,"platform":"darwin","dir":".","protocols":[]} +0ms
  electron-packager Target Platforms: darwin +1ms
  electron-packager Target Architectures: x64 +0ms
  electron-packager Inferring application name from name in /Users/joe/code/electron-quick-start/package.json +9ms
  electron-packager Inferring app-version from version in /Users/joe/code/electron-quick-start/package.json +0ms
  electron-packager Inferring target Electron version from electron in /Users/joe/code/electron-quick-start/package.json +2ms
  electron-packager Application name: electron-quick-start +0ms
  electron-packager Target Electron version: 1.4.14 +0ms
  electron-packager Ignored path regular expressions: [ '/node_modules/electron($|/)',
  '/node_modules/electron-prebuilt($|/)',
  '/node_modules/electron-packager($|/)',
  '/\\.git($|/)',
  '/node_modules/\\.bin($|/)',
  '\\.o(bj)?$' ] +0ms
  electron-packager Downloading Electron with options {"strictSSL":true,"platform":"darwin","arch":"x64","version":"1.4.14"} +5ms
Packaging app for platform darwin x64 using electron v1.4.14
  electron-packager Creating /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64-template +213ms
  electron-packager Extracting /Users/joe/.electron/electron-v1.4.14-darwin-x64.zip to /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64-template +0ms
  electron-packager Initializing app in /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64/electron-quick-start-darwin-x64 from /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64-template template +964ms
  electron-packager Ignored paths based on the out param: [ '/Users/joe/code/electron-quick-start/electron-quick-start-darwin-ia32',
  '/Users/joe/code/electron-quick-start/electron-quick-start-darwin-x64',
  '/Users/joe/code/electron-quick-start/electron-quick-start-darwin-armv7l',
  '/Users/joe/code/electron-quick-start/electron-quick-start-linux-ia32',
  '/Users/joe/code/electron-quick-start/electron-quick-start-linux-x64',
  '/Users/joe/code/electron-quick-start/electron-quick-start-linux-armv7l',
  '/Users/joe/code/electron-quick-start/electron-quick-start-mas-ia32',
  '/Users/joe/code/electron-quick-start/electron-quick-start-mas-x64',
  '/Users/joe/code/electron-quick-start/electron-quick-start-mas-armv7l',
  '/Users/joe/code/electron-quick-start/electron-quick-start-win32-ia32',
  '/Users/joe/code/electron-quick-start/electron-quick-start-win32-x64',
  '/Users/joe/code/electron-quick-start/electron-quick-start-win32-armv7l' ] +2ms
  electron-packager Running npm prune --production +446ms
  electron-packager Renaming Electron to electron-quick-start in /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64/electron-quick-start-darwin-x64/Electron.app/Contents/MacOS +2s
  electron-packager Renaming Electron Helper to electron-quick-start Helper in /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64/electron-quick-start-darwin-x64/Electron.app/Contents/Frameworks/Electron Helper.app/Contents/MacOS +1ms
  electron-packager Renaming Electron Helper.app to electron-quick-start Helper.app in /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64/electron-quick-start-darwin-x64/Electron.app/Contents/Frameworks +1ms
  electron-packager Renaming Electron Helper EH to electron-quick-start Helper EH in /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64/electron-quick-start-darwin-x64/Electron.app/Contents/Frameworks/Electron Helper EH.app/Contents/MacOS +0ms
  electron-packager Renaming Electron Helper EH.app to electron-quick-start Helper EH.app in /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64/electron-quick-start-darwin-x64/Electron.app/Contents/Frameworks +1ms
  electron-packager Renaming Electron Helper NP to electron-quick-start Helper NP in /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64/electron-quick-start-darwin-x64/Electron.app/Contents/Frameworks/Electron Helper NP.app/Contents/MacOS +0ms
  electron-packager Renaming Electron Helper NP.app to electron-quick-start Helper NP.app in /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64/electron-quick-start-darwin-x64/Electron.app/Contents/Frameworks +0ms
  electron-packager Moving /var/folders/7n/sh3llf257vz_hcwm50k1qknw0000gn/T/electron-packager/darwin-x64/electron-quick-start-darwin-x64 to /Users/joe/code/electron-quick-start/electron-quick-start-darwin-x64 +1ms
Wrote new app to /Users/joe/code/electron-quick-start/electron-quick-start-darwin-x64

What command line arguments are you passing? Alternatively, if you are using the API, what
parameters are you passing to the packager() function?

 --platform=darwin --overwrite

Test case

This clone of electron-quick-start has a dialog window showing the issue.

git clone git@github.com:jwhitfieldseed/electron-locale-issue.git
cd electron-locale-issue
npm i

# check output from `electron` respects system locale:
npm start

# build
./node_modules/.bin/electron-packager . --platform=darwin --overwrite

# run from terminal (respects system locale)
./electron-quick-start-darwin-x64/electron-quick-start.app/Contents/MacOS/electron-quick-start

# run from finder (does not respect system locale):
open .
# double-click the "electron-quick-start" app.
joews added a commit to joews/electron-locale-issue that referenced this issue Jan 14, 2017
@malept malept added the build-target:mac 🍎 Bundling an Electron app specifically for macOS label Jan 14, 2017
@malept
Copy link
Member

malept commented Jan 14, 2017

My inclination is that this is either an Electron or a general OSX issue. There's nothing in Electron Packager specifically that would limit access to the locale depending on the method of opening the app.

@joews
Copy link
Author

joews commented Jan 14, 2017

Thanks. I also thought that, but I see different results when running Electron.app. (v1.4.14).

I realised that I can also repro the issue by opening bundles with open from the terminal.

The Electron Packager-built app reproduces the bug:

open ./electron-quick-start-darwin-x64/electron-quick-start.app/Contents/MacOS/electron-quick-start
# logs empty app.locale

Electron.app does not:

open ./node_modules/electron/dist/Electron.app .
# logs en-GB

@malept
Copy link
Member

malept commented Jan 14, 2017

The only thing I can think of is that something in one of the .plist files is the culprit. For OSX builds we do not modify the binary, only rename it. Unfortunately, my area of expertise is not OSX apps (and I do not own a Mac), so I can't really debug this.

@malept malept added help wanted Needs a contributor from the community needs info Issue reporter needs to provide more information for maintainers to take action labels Feb 7, 2017
@malept
Copy link
Member

malept commented Jun 4, 2017

It occurs to me that open ./electron-quick-start-darwin-x64/electron-quick-start.app/Contents/MacOS/electron-quick-start and open ./node_modules/electron/dist/Electron.app . are comparing apples and oranges. If it was comparing open Electron.app . vs open electron-quick-start.app or open [...]/Contents/MacOS/Electron . and open [...]/Contents/MacOS/electron-quick-start, it would make more sense.

At any rate, no one's stepped forward to look at this, so my opinion is still the same as my earlier comment. As a result, I'm closing this due to lack of data, but if there's new evidence, I will be happy to consider reopening.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build-target:mac 🍎 Bundling an Electron app specifically for macOS needs info Issue reporter needs to provide more information for maintainers to take action
Projects
None yet
Development

No branches or pull requests

2 participants