Merge pull request #7940 from Bo98/languages

os/mac: silence AppleLanguages error, fallback to system prefs
This commit is contained in:
Jonathan Chang 2020-07-11 22:36:32 +10:00 committed by GitHub
commit 9879df4ece
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -59,13 +59,30 @@ module OS
end
def languages
@languages ||= [
return @languages if @languages
os_langs = Utils.popen_read("defaults", "read", "-g", "AppleLanguages")
if os_langs.blank?
# User settings don't exist so check the system-wide one.
os_langs = Utils.popen_read("defaults", "read", "/Library/Preferences/.GlobalPreferences", "AppleLanguages")
end
os_langs = os_langs.scan(/[^ \n"(),]+/)
@languages = [
*Homebrew.args.value("language")&.split(","),
*ENV["HOMEBREW_LANGUAGES"]&.split(","),
*Open3.capture2("defaults", "read", "-g", "AppleLanguages")
.first
.scan(/[^ \n"(),]+/),
*os_langs,
].uniq
# Ensure all languages are valid
@languages.select! do |lang|
Locale.parse(lang)
true
rescue Locale::ParserError
false
end
@languages
end
def language