aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Mac/AppController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Mac/AppController.cs')
-rw-r--r--MediaBrowser.Server.Mac/AppController.cs51
1 files changed, 46 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Mac/AppController.cs b/MediaBrowser.Server.Mac/AppController.cs
index d2ef0cd92..1823e2152 100644
--- a/MediaBrowser.Server.Mac/AppController.cs
+++ b/MediaBrowser.Server.Mac/AppController.cs
@@ -20,9 +20,11 @@ namespace MediaBrowser.Server.Mac
private NSMenuItem apiMenuItem;
private NSMenuItem communityMenuItem;
+ public static AppController Instance;
+
public AppController()
{
-
+ Instance = this;
}
public override void AwakeFromNib()
@@ -71,13 +73,14 @@ namespace MediaBrowser.Server.Mac
statusItem.Menu.AddItem (quitMenuItem);
}
- private IServerApplicationHost AppHost{ get; set;}
- private ILogger Logger{ get; set;}
+ public IServerApplicationHost AppHost{ get; set;}
+ public IServerConfigurationManager ConfigurationManager { get; set;}
+ public ILogger Logger{ get; set;}
+ public ILocalizationManager Localization { get; set;}
private void Quit(NSObject sender)
{
- NSApplication.SharedApplication.Terminate(this);
- //AppHost.Shutdown();
+ AppHost.Shutdown();
}
private void Community(NSObject sender)
@@ -104,6 +107,44 @@ namespace MediaBrowser.Server.Mac
{
BrowserLauncher.OpenSwagger(AppHost, Logger);
}
+
+ public void Terminate()
+ {
+ InvokeOnMainThread (() => NSApplication.SharedApplication.Terminate(this));
+ }
+
+ private string _uiCulture;
+ /// <summary>
+ /// Handles the ConfigurationUpdated event of the Instance control.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
+ void Instance_ConfigurationUpdated(object sender, EventArgs e)
+ {
+ if (!string.Equals(ConfigurationManager.Configuration.UICulture, _uiCulture,
+ StringComparison.OrdinalIgnoreCase))
+ {
+ LocalizeText();
+ }
+ }
+
+ private void LocalizeText()
+ {
+ _uiCulture = ConfigurationManager.Configuration.UICulture;
+
+ BeginInvokeOnMainThread (LocalizeInternal);
+ }
+
+ private void LocalizeInternal() {
+
+ quitMenuItem.Title = Localization.GetLocalizedString("LabelExit");
+ communityMenuItem.Title = Localization.GetLocalizedString("LabelVisitCommunity");
+ githubMenuItem.Title = Localization.GetLocalizedString("LabelGithub");
+ apiMenuItem.Title = Localization.GetLocalizedString("LabelApiDocumentation");
+ developerMenuItem.Title = Localization.GetLocalizedString("LabelDeveloperResources");
+ browseMenuItem.Title = Localization.GetLocalizedString("LabelBrowseLibrary");
+ configureMenuItem.Title = Localization.GetLocalizedString("LabelConfigureMediaBrowser");
+ }
}
}