mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-07-25 09:32:49 +00:00
Set preferred locale in constructor, make it default in applyPreferred
This commit is contained in:
@@ -35,13 +35,15 @@ public class Cryptomator {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(Cryptomator.class);
|
||||
|
||||
private final DebugMode debugMode;
|
||||
private final SupportedLanguages supportedLanguages;
|
||||
private final Environment env;
|
||||
private final Lazy<IpcMessageHandler> ipcMessageHandler;
|
||||
private final ShutdownHook shutdownHook;
|
||||
|
||||
@Inject
|
||||
Cryptomator(DebugMode debugMode, Environment env, Lazy<IpcMessageHandler> ipcMessageHandler, ShutdownHook shutdownHook) {
|
||||
Cryptomator(DebugMode debugMode, SupportedLanguages supportedLanguages, Environment env, Lazy<IpcMessageHandler> ipcMessageHandler, ShutdownHook shutdownHook) {
|
||||
this.debugMode = debugMode;
|
||||
this.supportedLanguages = supportedLanguages;
|
||||
this.env = env;
|
||||
this.ipcMessageHandler = ipcMessageHandler;
|
||||
this.shutdownHook = shutdownHook;
|
||||
@@ -78,6 +80,7 @@ public class Cryptomator {
|
||||
LOG.debug("Dagger graph initialized after {}ms", System.currentTimeMillis() - STARTUP_TIME);
|
||||
LOG.info("Starting Cryptomator {} on {} {} ({})", env.getAppVersion(), SystemUtils.OS_NAME, SystemUtils.OS_VERSION, SystemUtils.OS_ARCH);
|
||||
debugMode.initialize();
|
||||
supportedLanguages.applyPreferred();
|
||||
|
||||
/*
|
||||
* Attempts to create an IPC connection to a running Cryptomator instance and sends it the given args.
|
||||
|
||||
@@ -25,28 +25,29 @@ public class SupportedLanguages {
|
||||
|
||||
private final List<String> sortedLanguageTags;
|
||||
|
||||
private final Locale preferredLocale;
|
||||
|
||||
@Inject
|
||||
public SupportedLanguages(Settings settings) {
|
||||
var preferredLanguage = settings.languageProperty().get();
|
||||
if (preferredLanguage == null) {
|
||||
LOG.debug("Using system locale");
|
||||
} else {
|
||||
var preferredLocale = Locale.forLanguageTag(preferredLanguage);
|
||||
LOG.debug("Applying preferred locale {}", preferredLocale.getDisplayName(Locale.ENGLISH));
|
||||
Locale.setDefault(preferredLocale);
|
||||
}
|
||||
sortedLanguageTags = LANGUAGE_TAGS.stream().sorted((a, b) -> {
|
||||
var collator = Collator.getInstance(Locale.getDefault());
|
||||
preferredLocale = preferredLanguage == null ? Locale.getDefault() : Locale.forLanguageTag(preferredLanguage);
|
||||
var sorted = LANGUAGE_TAGS.stream().sorted((a, b) -> {
|
||||
var collator = Collator.getInstance(preferredLocale);
|
||||
collator.setStrength(Collator.PRIMARY);
|
||||
return collator.compare(Locale.forLanguageTag(a).getDisplayName(), Locale.forLanguageTag(b).getDisplayName());
|
||||
}).collect(Collectors.toList());
|
||||
sortedLanguageTags.add(0, Settings.DEFAULT_LANGUAGE);
|
||||
sortedLanguageTags.add(1, ENGLISH);
|
||||
sorted.add(0, Settings.DEFAULT_LANGUAGE);
|
||||
sorted.add(1, ENGLISH);
|
||||
sortedLanguageTags = Collections.unmodifiableList(sorted);
|
||||
}
|
||||
|
||||
public void applyPreferred() {
|
||||
LOG.debug("Using locale {}", preferredLocale);
|
||||
Locale.setDefault(preferredLocale);
|
||||
}
|
||||
|
||||
public List<String> getLanguageTags() {
|
||||
return Collections.unmodifiableList(sortedLanguageTags);
|
||||
return sortedLanguageTags;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user