private void InitMenu() { // Recording device recordingDevicePickerControl = new(recordingDevicePicker, Microphone.devices.ToList()); recordingDevicePickerControl.SelectItem(settings.MicProfile.Name); recordingDevicePickerControl.Selection.Subscribe(newValue => settings.SetMicProfileName(newValue)); // Language languagePickerControl = new LabeledItemPickerControl <SystemLanguage>(languagePicker, translationManager.GetTranslatedLanguages()); languagePickerControl.SelectItem(settings.GameSettings.language); languagePickerControl.Selection.Subscribe(newValue => settings.GameSettings.language = newValue); settings.ObserveEveryValueChanged(it => it.GameSettings.language) .Subscribe(newValue => { translationManager.currentLanguage = newValue; translationManager.ReloadTranslationsAndUpdateScene(); }); // Dev Mode devModePickerControl = new BoolPickerControl(devModePicker); devModePickerControl.SelectItem(settings.IsDevModeEnabled); devModePickerControl.Selection.Subscribe(newValue => settings.IsDevModeEnabled = newValue); settings .ObserveEveryValueChanged(it => it.IsDevModeEnabled) .Subscribe(newValue => OnDevModeEnabledChanged(newValue)); // Show/hide menu overlay HideMenu(); showMenuButton.RegisterCallbackButtonTriggered(() => ShowMenu()); hiddenCloseMenuButton.RegisterCallbackButtonTriggered(() => HideMenu()); closeMenuButton.RegisterCallbackButtonTriggered(() => HideMenu()); }
public void OnSceneInjectionFinished() { if (translationManager.currentLanguage != settings.Language) { translationManager.currentLanguage = settings.Language; translationManager.ReloadTranslationsAndUpdateScene(); } if (Application.isPlaying) { // Fix: the method of the translationManager does not work, because scene.isLoaded is false for some reason. UpdateTranslatorsInScene(); } }
private void SetLanguage(SystemLanguage newValue) { settings.GameSettings.language = newValue; translationManager.currentLanguage = settings.GameSettings.language; translationManager.ReloadTranslationsAndUpdateScene(); }