diff --git a/Configuration/Arguments.cs b/Configuration/Arguments.cs
index eca41c98..a18c5fd2 100644
--- a/Configuration/Arguments.cs
+++ b/Configuration/Arguments.cs
@@ -5,7 +5,6 @@ namespace TweetDuck.Configuration{
     static class Arguments{
         // public args
         public const string ArgDataFolder = "-datafolder";
-        public const string ArgLocale = "-locale";
         public const string ArgLogging = "-log";
         public const string ArgDebugUpdates = "-debugupdates";
 
diff --git a/Configuration/UserConfig.cs b/Configuration/UserConfig.cs
index 04bdcf87..fa0ea261 100644
--- a/Configuration/UserConfig.cs
+++ b/Configuration/UserConfig.cs
@@ -46,11 +46,13 @@ static UserConfig(){
         public bool OpenSearchInFirstColumn { get; set; } = true;
         public bool BestImageQuality        { get; set; } = true;
         public bool EnableAnimatedImages    { get; set; } = true;
-        public bool EnableSpellCheck        { get; set; } = false;
         public int VideoPlayerVolume        { get; set; } = 50;
         private int _zoomLevel                            = 100;
         private bool _muteNotifications;
         
+        public bool EnableSpellCheck    { get; set; } = false;
+        public string AppLocale         { get; set; } = "en-US";
+        
         private TrayIcon.Behavior _trayBehavior       = TrayIcon.Behavior.Disabled;
         public bool EnableTrayHighlight { get; set; } = true;
 
diff --git a/Core/Other/FormSettings.cs b/Core/Other/FormSettings.cs
index 14a7f647..2930834a 100644
--- a/Core/Other/FormSettings.cs
+++ b/Core/Other/FormSettings.cs
@@ -37,6 +37,7 @@ public FormSettings(FormBrowser browser, PluginManager plugins, UpdateHandler up
             this.buttonHeight = BrowserUtils.Scale(39, this.GetDPIScale()) | 1;
 
             AddButton("General", () => new TabSettingsGeneral(this.browser, updates));
+            AddButton("Locales", () => new TabSettingsLocales(this.browser));
             AddButton("System Tray", () => new TabSettingsTray());
             AddButton("Notifications", () => new TabSettingsNotifications(new FormNotificationExample(this.browser, this.plugins)));
             AddButton("Sounds", () => new TabSettingsSounds());
diff --git a/Core/Other/Settings/Dialogs/DialogSettingsRestart.Designer.cs b/Core/Other/Settings/Dialogs/DialogSettingsRestart.Designer.cs
index 0a19d6e6..7f73f034 100644
--- a/Core/Other/Settings/Dialogs/DialogSettingsRestart.Designer.cs
+++ b/Core/Other/Settings/Dialogs/DialogSettingsRestart.Designer.cs
@@ -29,10 +29,8 @@ private void InitializeComponent() {
             this.cbLogging = new System.Windows.Forms.CheckBox();
             this.toolTip = new System.Windows.Forms.ToolTip(this.components);
             this.cbDebugUpdates = new System.Windows.Forms.CheckBox();
-            this.comboLocale = new System.Windows.Forms.ComboBox();
             this.tbDataFolder = new System.Windows.Forms.TextBox();
             this.tbShortcutTarget = new System.Windows.Forms.TextBox();
-            this.labelLocale = new System.Windows.Forms.Label();
             this.labelDataFolder = new System.Windows.Forms.Label();
             this.labelShortcutTarget = new System.Windows.Forms.Label();
             this.SuspendLayout();
@@ -40,7 +38,7 @@ private void InitializeComponent() {
             // btnCancel
             // 
             this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnCancel.Location = new System.Drawing.Point(216, 217);
+            this.btnCancel.Location = new System.Drawing.Point(215, 163);
             this.btnCancel.Name = "btnCancel";
             this.btnCancel.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
             this.btnCancel.Size = new System.Drawing.Size(56, 23);
@@ -52,7 +50,7 @@ private void InitializeComponent() {
             // btnRestart
             // 
             this.btnRestart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnRestart.Location = new System.Drawing.Point(153, 217);
+            this.btnRestart.Location = new System.Drawing.Point(152, 163);
             this.btnRestart.Name = "btnRestart";
             this.btnRestart.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
             this.btnRestart.Size = new System.Drawing.Size(57, 23);
@@ -83,54 +81,33 @@ private void InitializeComponent() {
             this.toolTip.SetToolTip(this.cbDebugUpdates, "Allows updating to pre-releases.");
             this.cbDebugUpdates.UseVisualStyleBackColor = true;
             // 
-            // comboLocale
-            // 
-            this.comboLocale.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-            this.comboLocale.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.comboLocale.FormattingEnabled = true;
-            this.comboLocale.Location = new System.Drawing.Point(15, 83);
-            this.comboLocale.Name = "comboLocale";
-            this.comboLocale.Size = new System.Drawing.Size(257, 21);
-            this.comboLocale.TabIndex = 3;
-            this.toolTip.SetToolTip(this.comboLocale, "Language used for spell checking.");
-            // 
             // tbDataFolder
             // 
             this.tbDataFolder.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
-            this.tbDataFolder.Location = new System.Drawing.Point(15, 135);
+            this.tbDataFolder.Location = new System.Drawing.Point(15, 83);
             this.tbDataFolder.Name = "tbDataFolder";
             this.tbDataFolder.Size = new System.Drawing.Size(257, 20);
             this.tbDataFolder.TabIndex = 5;
-            this.toolTip.SetToolTip(this.tbDataFolder, "Path to the data folder. Must be either an absolute path,\r\nor a simple folder name that will be created in LocalAppData.");
+            this.toolTip.SetToolTip(this.tbDataFolder, "Path to the data folder. Must be either an absolute path,\r\nor a simple folder nam" +
+        "e that will be created in LocalAppData.");
             // 
             // tbShortcutTarget
             // 
             this.tbShortcutTarget.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
             this.tbShortcutTarget.Cursor = System.Windows.Forms.Cursors.Hand;
-            this.tbShortcutTarget.Location = new System.Drawing.Point(15, 186);
+            this.tbShortcutTarget.Location = new System.Drawing.Point(15, 134);
             this.tbShortcutTarget.Name = "tbShortcutTarget";
             this.tbShortcutTarget.ReadOnly = true;
             this.tbShortcutTarget.Size = new System.Drawing.Size(257, 20);
             this.tbShortcutTarget.TabIndex = 7;
             this.tbShortcutTarget.Click += new System.EventHandler(this.tbShortcutTarget_Click);
             // 
-            // labelLocale
-            // 
-            this.labelLocale.AutoSize = true;
-            this.labelLocale.Location = new System.Drawing.Point(12, 67);
-            this.labelLocale.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
-            this.labelLocale.Name = "labelLocale";
-            this.labelLocale.Size = new System.Drawing.Size(39, 13);
-            this.labelLocale.TabIndex = 2;
-            this.labelLocale.Text = "Locale";
-            // 
             // labelDataFolder
             // 
             this.labelDataFolder.AutoSize = true;
-            this.labelDataFolder.Location = new System.Drawing.Point(12, 119);
+            this.labelDataFolder.Location = new System.Drawing.Point(12, 67);
             this.labelDataFolder.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
             this.labelDataFolder.Name = "labelDataFolder";
             this.labelDataFolder.Size = new System.Drawing.Size(62, 13);
@@ -140,7 +117,7 @@ private void InitializeComponent() {
             // labelShortcutTarget
             // 
             this.labelShortcutTarget.AutoSize = true;
-            this.labelShortcutTarget.Location = new System.Drawing.Point(12, 170);
+            this.labelShortcutTarget.Location = new System.Drawing.Point(12, 118);
             this.labelShortcutTarget.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
             this.labelShortcutTarget.Name = "labelShortcutTarget";
             this.labelShortcutTarget.Size = new System.Drawing.Size(155, 13);
@@ -151,13 +128,11 @@ private void InitializeComponent() {
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(284, 252);
+            this.ClientSize = new System.Drawing.Size(284, 198);
             this.Controls.Add(this.tbShortcutTarget);
             this.Controls.Add(this.labelShortcutTarget);
             this.Controls.Add(this.tbDataFolder);
             this.Controls.Add(this.labelDataFolder);
-            this.Controls.Add(this.comboLocale);
-            this.Controls.Add(this.labelLocale);
             this.Controls.Add(this.cbDebugUpdates);
             this.Controls.Add(this.cbLogging);
             this.Controls.Add(this.btnRestart);
@@ -180,8 +155,6 @@ private void InitializeComponent() {
         private System.Windows.Forms.CheckBox cbLogging;
         private System.Windows.Forms.ToolTip toolTip;
         private System.Windows.Forms.CheckBox cbDebugUpdates;
-        private System.Windows.Forms.Label labelLocale;
-        private System.Windows.Forms.ComboBox comboLocale;
         private System.Windows.Forms.Label labelDataFolder;
         private System.Windows.Forms.TextBox tbDataFolder;
         private System.Windows.Forms.TextBox tbShortcutTarget;
diff --git a/Core/Other/Settings/Dialogs/DialogSettingsRestart.cs b/Core/Other/Settings/Dialogs/DialogSettingsRestart.cs
index 8768bd95..b4f9bb7e 100644
--- a/Core/Other/Settings/Dialogs/DialogSettingsRestart.cs
+++ b/Core/Other/Settings/Dialogs/DialogSettingsRestart.cs
@@ -1,33 +1,20 @@
 using System;
-using System.IO;
-using System.Linq;
 using System.Windows.Forms;
 using TweetDuck.Configuration;
 using TweetDuck.Data;
 
 namespace TweetDuck.Core.Other.Settings.Dialogs{
     sealed partial class DialogSettingsRestart : Form{
-        private const string DefaultLocale = "en-US";
-
         public CommandLineArgs Args { get; private set; }
 
         public DialogSettingsRestart(CommandLineArgs currentArgs){
             InitializeComponent();
 
-            try{
-                object[] locales = Directory.EnumerateFiles(Path.Combine(Program.ProgramPath, "locales"), "*.pak", SearchOption.TopDirectoryOnly).Select(Path.GetFileNameWithoutExtension).ToArray<object>();
-                comboLocale.Items.AddRange(locales);
-            }catch{
-                comboLocale.Items.Add(DefaultLocale);
-            }
-
             cbLogging.Checked = currentArgs.HasFlag(Arguments.ArgLogging);
             cbDebugUpdates.Checked = currentArgs.HasFlag(Arguments.ArgDebugUpdates);
-            comboLocale.SelectedItem = currentArgs.GetValue(Arguments.ArgLocale, DefaultLocale);
 
             cbLogging.CheckedChanged += control_Change;
             cbDebugUpdates.CheckedChanged += control_Change;
-            comboLocale.SelectedValueChanged += control_Change;
 
             if (Program.IsPortable){
                 tbDataFolder.Text = "Not available in portable version";
@@ -54,12 +41,6 @@ private void control_Change(object sender, EventArgs e){
                 Args.AddFlag(Arguments.ArgDebugUpdates);
             }
 
-            string locale = comboLocale.SelectedItem as string;
-
-            if (!string.IsNullOrWhiteSpace(locale) && locale != DefaultLocale){
-                Args.SetValue(Arguments.ArgLocale, locale);
-            }
-
             if (!string.IsNullOrWhiteSpace(tbDataFolder.Text) && tbDataFolder.Enabled){
                 Args.SetValue(Arguments.ArgDataFolder, tbDataFolder.Text);
             }
diff --git a/Core/Other/Settings/TabSettingsGeneral.Designer.cs b/Core/Other/Settings/TabSettingsGeneral.Designer.cs
index 34d7d49c..03c4661b 100644
--- a/Core/Other/Settings/TabSettingsGeneral.Designer.cs
+++ b/Core/Other/Settings/TabSettingsGeneral.Designer.cs
@@ -26,7 +26,6 @@ private void InitializeComponent() {
             this.components = new System.ComponentModel.Container();
             this.checkExpandLinks = new System.Windows.Forms.CheckBox();
             this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-            this.checkSpellCheck = new System.Windows.Forms.CheckBox();
             this.checkUpdateNotifications = new System.Windows.Forms.CheckBox();
             this.btnCheckUpdates = new System.Windows.Forms.Button();
             this.labelZoomValue = new System.Windows.Forms.Label();
@@ -57,21 +56,10 @@ private void InitializeComponent() {
             this.checkExpandLinks.Text = "Expand Links When Hovered";
             this.checkExpandLinks.UseVisualStyleBackColor = true;
             // 
-            // checkSpellCheck
-            // 
-            this.checkSpellCheck.AutoSize = true;
-            this.checkSpellCheck.Location = new System.Drawing.Point(6, 141);
-            this.checkSpellCheck.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
-            this.checkSpellCheck.Name = "checkSpellCheck";
-            this.checkSpellCheck.Size = new System.Drawing.Size(119, 17);
-            this.checkSpellCheck.TabIndex = 5;
-            this.checkSpellCheck.Text = "Enable Spell Check";
-            this.checkSpellCheck.UseVisualStyleBackColor = true;
-            // 
             // checkUpdateNotifications
             // 
             this.checkUpdateNotifications.AutoSize = true;
-            this.checkUpdateNotifications.Location = new System.Drawing.Point(6, 268);
+            this.checkUpdateNotifications.Location = new System.Drawing.Point(6, 245);
             this.checkUpdateNotifications.Margin = new System.Windows.Forms.Padding(6, 6, 3, 3);
             this.checkUpdateNotifications.Name = "checkUpdateNotifications";
             this.checkUpdateNotifications.Size = new System.Drawing.Size(165, 17);
@@ -81,7 +69,7 @@ private void InitializeComponent() {
             // 
             // btnCheckUpdates
             // 
-            this.btnCheckUpdates.Location = new System.Drawing.Point(5, 291);
+            this.btnCheckUpdates.Location = new System.Drawing.Point(5, 268);
             this.btnCheckUpdates.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
             this.btnCheckUpdates.Name = "btnCheckUpdates";
             this.btnCheckUpdates.Size = new System.Drawing.Size(144, 23);
@@ -151,7 +139,7 @@ private void InitializeComponent() {
             // labelZoom
             // 
             this.labelZoom.AutoSize = true;
-            this.labelZoom.Location = new System.Drawing.Point(3, 173);
+            this.labelZoom.Location = new System.Drawing.Point(3, 150);
             this.labelZoom.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
             this.labelZoom.Name = "labelZoom";
             this.labelZoom.Size = new System.Drawing.Size(34, 13);
@@ -179,7 +167,7 @@ private void InitializeComponent() {
             this.panelZoom.Anchor = System.Windows.Forms.AnchorStyles.Top;
             this.panelZoom.Controls.Add(this.trackBarZoom);
             this.panelZoom.Controls.Add(this.labelZoomValue);
-            this.panelZoom.Location = new System.Drawing.Point(0, 186);
+            this.panelZoom.Location = new System.Drawing.Point(0, 163);
             this.panelZoom.Margin = new System.Windows.Forms.Padding(0);
             this.panelZoom.Name = "panelZoom";
             this.panelZoom.Size = new System.Drawing.Size(322, 36);
@@ -200,7 +188,7 @@ private void InitializeComponent() {
             // 
             this.labelUpdates.AutoSize = true;
             this.labelUpdates.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
-            this.labelUpdates.Location = new System.Drawing.Point(0, 242);
+            this.labelUpdates.Location = new System.Drawing.Point(0, 219);
             this.labelUpdates.Margin = new System.Windows.Forms.Padding(0, 20, 0, 0);
             this.labelUpdates.Name = "labelUpdates";
             this.labelUpdates.Size = new System.Drawing.Size(70, 20);
@@ -218,7 +206,6 @@ private void InitializeComponent() {
             this.flowPanel.Controls.Add(this.checkOpenSearchInFirstColumn);
             this.flowPanel.Controls.Add(this.checkBestImageQuality);
             this.flowPanel.Controls.Add(this.checkAnimatedAvatars);
-            this.flowPanel.Controls.Add(this.checkSpellCheck);
             this.flowPanel.Controls.Add(this.labelZoom);
             this.flowPanel.Controls.Add(this.panelZoom);
             this.flowPanel.Controls.Add(this.labelUpdates);
@@ -227,7 +214,7 @@ private void InitializeComponent() {
             this.flowPanel.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
             this.flowPanel.Location = new System.Drawing.Point(9, 9);
             this.flowPanel.Name = "flowPanel";
-            this.flowPanel.Size = new System.Drawing.Size(322, 320);
+            this.flowPanel.Size = new System.Drawing.Size(322, 296);
             this.flowPanel.TabIndex = 4;
             this.flowPanel.WrapContents = false;
             // 
@@ -237,7 +224,7 @@ private void InitializeComponent() {
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.Controls.Add(this.flowPanel);
             this.Name = "TabSettingsGeneral";
-            this.Size = new System.Drawing.Size(340, 338);
+            this.Size = new System.Drawing.Size(340, 314);
             ((System.ComponentModel.ISupportInitialize)(this.trackBarZoom)).EndInit();
             this.panelZoom.ResumeLayout(false);
             this.flowPanel.ResumeLayout(false);
@@ -250,7 +237,6 @@ private void InitializeComponent() {
 
         private System.Windows.Forms.CheckBox checkExpandLinks;
         private System.Windows.Forms.ToolTip toolTip;
-        private System.Windows.Forms.CheckBox checkSpellCheck;
         private System.Windows.Forms.CheckBox checkUpdateNotifications;
         private System.Windows.Forms.Button btnCheckUpdates;
         private System.Windows.Forms.Label labelZoom;
diff --git a/Core/Other/Settings/TabSettingsGeneral.cs b/Core/Other/Settings/TabSettingsGeneral.cs
index c8088c99..c2d40b56 100644
--- a/Core/Other/Settings/TabSettingsGeneral.cs
+++ b/Core/Other/Settings/TabSettingsGeneral.cs
@@ -23,7 +23,6 @@ public TabSettingsGeneral(FormBrowser browser, UpdateHandler updates){
             toolTip.SetToolTip(checkOpenSearchInFirstColumn, "By default, TweetDeck adds Search columns at the end.\r\nThis option makes them appear before the first column instead.");
             toolTip.SetToolTip(checkBestImageQuality, "When right-clicking a tweet image, the context menu options\r\nwill use links to the original image size (:orig in the URL).");
             toolTip.SetToolTip(checkAnimatedAvatars, "Some old Twitter avatars could be uploaded as animated GIFs.");
-            toolTip.SetToolTip(checkSpellCheck, "Underlines words that are spelled incorrectly.");
 
             toolTip.SetToolTip(labelZoomValue, "Changes the zoom level.\r\nAlso affects notifications and screenshots.");
             toolTip.SetToolTip(trackBarZoom, toolTip.GetToolTip(labelZoomValue));
@@ -39,7 +38,6 @@ public TabSettingsGeneral(FormBrowser browser, UpdateHandler updates){
             checkOpenSearchInFirstColumn.Checked = Config.OpenSearchInFirstColumn;
             checkBestImageQuality.Checked = Config.BestImageQuality;
             checkAnimatedAvatars.Checked = Config.EnableAnimatedImages;
-            checkSpellCheck.Checked = Config.EnableSpellCheck;
 
             checkUpdateNotifications.Checked = Config.EnableUpdateCheck;
         }
@@ -50,7 +48,6 @@ public override void OnReady(){
             checkOpenSearchInFirstColumn.CheckedChanged += checkOpenSearchInFirstColumn_CheckedChanged;
             checkBestImageQuality.CheckedChanged += checkBestImageQuality_CheckedChanged;
             checkAnimatedAvatars.CheckedChanged += checkAnimatedAvatars_CheckedChanged;
-            checkSpellCheck.CheckedChanged += checkSpellCheck_CheckedChanged;
             trackBarZoom.ValueChanged += trackBarZoom_ValueChanged;
 
             checkUpdateNotifications.CheckedChanged += checkUpdateNotifications_CheckedChanged;
@@ -82,11 +79,6 @@ private void checkAnimatedAvatars_CheckedChanged(object sender, EventArgs e){
             BrowserProcessHandler.UpdatePrefs().ContinueWith(task => browser.ReloadColumns());
         }
 
-        private void checkSpellCheck_CheckedChanged(object sender, EventArgs e){
-            Config.EnableSpellCheck = checkSpellCheck.Checked;
-            BrowserProcessHandler.UpdatePrefs();
-        }
-
         private void trackBarZoom_ValueChanged(object sender, EventArgs e){
             if (trackBarZoom.AlignValueToTick()){
                 zoomUpdateTimer.Stop();
diff --git a/Core/Other/Settings/TabSettingsLocales.Designer.cs b/Core/Other/Settings/TabSettingsLocales.Designer.cs
new file mode 100644
index 00000000..193e677a
--- /dev/null
+++ b/Core/Other/Settings/TabSettingsLocales.Designer.cs
@@ -0,0 +1,115 @@
+namespace TweetDuck.Core.Other.Settings {
+    partial class TabSettingsLocales {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing) {
+            if (disposing && (components != null)) {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent() {
+            this.components = new System.ComponentModel.Container();
+            this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+            this.checkSpellCheck = new System.Windows.Forms.CheckBox();
+            this.labelLocales = new System.Windows.Forms.Label();
+            this.flowPanel = new System.Windows.Forms.FlowLayoutPanel();
+            this.comboBoxAppLocale = new System.Windows.Forms.ComboBox();
+            this.labelAppLanguage = new System.Windows.Forms.Label();
+            this.flowPanel.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // checkSpellCheck
+            // 
+            this.checkSpellCheck.AutoSize = true;
+            this.checkSpellCheck.Location = new System.Drawing.Point(6, 26);
+            this.checkSpellCheck.Margin = new System.Windows.Forms.Padding(6, 6, 3, 3);
+            this.checkSpellCheck.Name = "checkSpellCheck";
+            this.checkSpellCheck.Size = new System.Drawing.Size(119, 17);
+            this.checkSpellCheck.TabIndex = 5;
+            this.checkSpellCheck.Text = "Enable Spell Check";
+            this.checkSpellCheck.UseVisualStyleBackColor = true;
+            // 
+            // labelLocales
+            // 
+            this.labelLocales.AutoSize = true;
+            this.labelLocales.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+            this.labelLocales.Location = new System.Drawing.Point(0, 0);
+            this.labelLocales.Margin = new System.Windows.Forms.Padding(0);
+            this.labelLocales.Name = "labelLocales";
+            this.labelLocales.Size = new System.Drawing.Size(64, 20);
+            this.labelLocales.TabIndex = 0;
+            this.labelLocales.Text = "Locales";
+            // 
+            // flowPanel
+            // 
+            this.flowPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.flowPanel.Controls.Add(this.labelLocales);
+            this.flowPanel.Controls.Add(this.checkSpellCheck);
+            this.flowPanel.Controls.Add(this.labelAppLanguage);
+            this.flowPanel.Controls.Add(this.comboBoxAppLocale);
+            this.flowPanel.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
+            this.flowPanel.Location = new System.Drawing.Point(9, 9);
+            this.flowPanel.Name = "flowPanel";
+            this.flowPanel.Size = new System.Drawing.Size(322, 320);
+            this.flowPanel.TabIndex = 4;
+            this.flowPanel.WrapContents = false;
+            // 
+            // comboBoxAppLocale
+            // 
+            this.comboBoxAppLocale.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.comboBoxAppLocale.FormattingEnabled = true;
+            this.comboBoxAppLocale.Location = new System.Drawing.Point(5, 74);
+            this.comboBoxAppLocale.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
+            this.comboBoxAppLocale.Name = "comboBoxAppLocale";
+            this.comboBoxAppLocale.Size = new System.Drawing.Size(311, 21);
+            this.comboBoxAppLocale.TabIndex = 9;
+            // 
+            // labelAppLanguage
+            // 
+            this.labelAppLanguage.AutoSize = true;
+            this.labelAppLanguage.Location = new System.Drawing.Point(3, 58);
+            this.labelAppLanguage.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
+            this.labelAppLanguage.Name = "labelAppLanguage";
+            this.labelAppLanguage.Size = new System.Drawing.Size(77, 13);
+            this.labelAppLanguage.TabIndex = 11;
+            this.labelAppLanguage.Text = "App Language";
+            // 
+            // TabSettingsLocales
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.flowPanel);
+            this.Name = "TabSettingsLocales";
+            this.Size = new System.Drawing.Size(340, 338);
+            this.flowPanel.ResumeLayout(false);
+            this.flowPanel.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+        private System.Windows.Forms.ToolTip toolTip;
+        private System.Windows.Forms.CheckBox checkSpellCheck;
+        private System.Windows.Forms.Label labelLocales;
+        private System.Windows.Forms.FlowLayoutPanel flowPanel;
+        private System.Windows.Forms.ComboBox comboBoxAppLocale;
+        private System.Windows.Forms.Label labelAppLanguage;
+    }
+}
diff --git a/Core/Other/Settings/TabSettingsLocales.cs b/Core/Other/Settings/TabSettingsLocales.cs
new file mode 100644
index 00000000..bb8cf220
--- /dev/null
+++ b/Core/Other/Settings/TabSettingsLocales.cs
@@ -0,0 +1,46 @@
+using System;
+using TweetDuck.Core.Handling.General;
+using TweetDuck.Core.Utils;
+
+namespace TweetDuck.Core.Other.Settings{
+    sealed partial class TabSettingsLocales : BaseTabSettings{
+        private readonly FormBrowser browser;
+
+        public TabSettingsLocales(FormBrowser browser){
+            InitializeComponent();
+
+            this.browser = browser;
+            
+            toolTip.SetToolTip(checkSpellCheck, "Underlines words that are spelled incorrectly.");
+            toolTip.SetToolTip(comboBoxAppLocale, "Language used for spell check and context menu items.");
+            
+            checkSpellCheck.Checked = Config.EnableSpellCheck;
+
+            try{
+                foreach(LocaleUtils.Item item in LocaleUtils.ChromiumLocales){
+                    comboBoxAppLocale.Items.Add(item);
+                }
+            }catch{
+                comboBoxAppLocale.Items.Add(new LocaleUtils.Item("en-US"));
+            }
+
+            comboBoxAppLocale.SelectedItem = new LocaleUtils.Item(Config.AppLocale);
+
+        }
+
+        public override void OnReady(){
+            checkSpellCheck.CheckedChanged += checkSpellCheck_CheckedChanged;
+            comboBoxAppLocale.SelectedValueChanged += comboBoxAppLocale_SelectedValueChanged;
+        }
+
+        private void checkSpellCheck_CheckedChanged(object sender, EventArgs e){
+            Config.EnableSpellCheck = checkSpellCheck.Checked;
+            BrowserProcessHandler.UpdatePrefs();
+        }
+
+        private void comboBoxAppLocale_SelectedValueChanged(object sender, EventArgs e){
+            Config.AppLocale = (comboBoxAppLocale.SelectedItem as LocaleUtils.Item)?.Code;
+            PromptRestart();
+        }
+    }
+}
diff --git a/Core/Utils/LocaleUtils.cs b/Core/Utils/LocaleUtils.cs
new file mode 100644
index 00000000..829f41d0
--- /dev/null
+++ b/Core/Utils/LocaleUtils.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+
+namespace TweetDuck.Core.Utils{
+    static class LocaleUtils{
+        public static string LocaleFolder => Path.Combine(Program.ProgramPath, "locales");
+
+        public static IEnumerable<Item> ChromiumLocales => Directory
+            .EnumerateFiles(LocaleFolder, "*.pak", SearchOption.TopDirectoryOnly)
+            .Select(file => new Item(Path.GetFileNameWithoutExtension(file)))
+            .OrderBy(code => code);
+        
+        public sealed class Item : IComparable<Item>{
+            public string Code { get; }
+            public CultureInfo Info { get; }
+
+            public Item(string code){
+                this.Code = code;
+                this.Info = CultureInfo.GetCultureInfo(code);
+            }
+
+            public override bool Equals(object obj){
+                return obj is Item other && Code.Equals(other.Code, StringComparison.OrdinalIgnoreCase);
+            }
+
+            public override int GetHashCode(){
+                return Code.GetHashCode();
+            }
+
+            public override string ToString(){
+                string capitalizedName = Info.TextInfo.ToTitleCase(Info.NativeName);
+                return Info.DisplayName == Info.NativeName ? capitalizedName : $"{capitalizedName}, {Info.DisplayName}";
+            }
+
+            public int CompareTo(Item other){
+                return string.Compare(Info.NativeName, other.Info.NativeName, false, CultureInfo.InvariantCulture);
+            }
+        }
+    }
+}
diff --git a/Program.cs b/Program.cs
index 1e84af49..97dce1f7 100644
--- a/Program.cs
+++ b/Program.cs
@@ -133,7 +133,7 @@ private static void Main(){
             CefSettings settings = new CefSettings{
                 AcceptLanguageList = BrowserUtils.HeaderAcceptLanguage,
                 UserAgent = BrowserUtils.HeaderUserAgent,
-                Locale = Arguments.GetValue(Arguments.ArgLocale, string.Empty),
+                Locale = UserConfig.AppLocale,
                 BrowserSubprocessPath = BrandName+".Browser.exe",
                 CachePath = StoragePath,
                 LogFile = ConsoleLogFilePath,
diff --git a/TweetDuck.csproj b/TweetDuck.csproj
index fe048eb0..f05db95e 100644
--- a/TweetDuck.csproj
+++ b/TweetDuck.csproj
@@ -196,6 +196,12 @@
     <Compile Include="Core\Other\Settings\TabSettingsFeedback.Designer.cs">
       <DependentUpon>TabSettingsFeedback.cs</DependentUpon>
     </Compile>
+    <Compile Include="Core\Other\Settings\TabSettingsLocales.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Core\Other\Settings\TabSettingsLocales.Designer.cs">
+      <DependentUpon>TabSettingsLocales.cs</DependentUpon>
+    </Compile>
     <Compile Include="Core\Other\Settings\TabSettingsTray.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -203,6 +209,7 @@
       <DependentUpon>TabSettingsTray.cs</DependentUpon>
     </Compile>
     <Compile Include="Core\TweetDeckBrowser.cs" />
+    <Compile Include="Core\Utils\LocaleUtils.cs" />
     <Compile Include="Core\Utils\StringUtils.cs" />
     <Compile Include="Core\Utils\TwitterUtils.cs" />
     <Compile Include="Data\CombinedFileStream.cs" />