Skip to content

Commit d585136

Browse files
committed
Implement language setting closes #76
1 parent 2f566c2 commit d585136

15 files changed

+123
-0
lines changed

PasteIntoFile/App.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@
5858
<setting name="autoSaveMayOpenNewExplorer" serializeAs="String">
5959
<value>False</value>
6060
</setting>
61+
<setting name="language" serializeAs="String">
62+
<value />
63+
</setting>
6164
</PasteIntoFile.Properties.Settings>
6265
</userSettings>
6366
</configuration>

PasteIntoFile/Main.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ class ArgsConfig : ArgsCommon {
9090
[Option("disable-patching", HelpText = "Disables clipboard patching", SetName = "patching")]
9191
public bool UnregisterPatching { get; set; }
9292

93+
[Option("language", HelpText = "ISO 639-1 language code for UI Localization ('auto' for system language)", SetName = "language")]
94+
public string Language { get; set; }
95+
9396
}
9497

9598
[Verb("wizard", HelpText = "Open the first-launch wizard")]
@@ -119,6 +122,13 @@ static int Main(string[] args) {
119122
PortableSettingsProvider.ApplyProvider(Settings.Default);
120123
#endif
121124

125+
// Localization
126+
try {
127+
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(Settings.Default.language);
128+
} catch (CultureNotFoundException e) {
129+
Console.WriteLine(e.Message);
130+
}
131+
122132
Settings.Default.continuousMode = false; // always start in normal mode
123133
Settings.Default.Save();
124134

@@ -397,6 +407,10 @@ static int RunConfig(ArgsConfig args) {
397407
Settings.Default.clrClipboard = (bool)args.ClearClipboard;
398408
if (args.Autosave != null)
399409
Wizard.SetAutosaveMode((bool)args.Autosave);
410+
if (args.Language != null) {
411+
Settings.Default.language = args.Language.ToLowerInvariant() == "auto" ? "" : args.Language;
412+
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(Settings.Default.language);
413+
}
400414
if (args.RegisterContextMenu)
401415
foreach (var entry in RegistryUtil.AllContextMenu) {
402416
entry.Register();

PasteIntoFile/Properties/Resources.Designer.cs

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

PasteIntoFile/Properties/Resources.de.resx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,4 +309,10 @@ Allows to keep application window always on top (in foreground of other windows)
309309
<data name="str_subfolder_template" xml:space="preserve">
310310
<value>Unterordner-Vorlage</value>
311311
</data>
312+
<data name="str_language" xml:space="preserve">
313+
<value>Sprache</value>
314+
</data>
315+
<data name="str_system_language" xml:space="preserve">
316+
<value>Systemsprache</value>
317+
</data>
312318
</root>

PasteIntoFile/Properties/Resources.es-ES.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,4 +309,7 @@ Allows to keep application window always on top (in foreground of other windows)
309309
<data name="str_subfolder_template" xml:space="preserve">
310310
<value>Plantilla de subcarpeta</value>
311311
</data>
312+
<data name="str_language" xml:space="preserve">
313+
<value>Idioma</value>
314+
</data>
312315
</root>

PasteIntoFile/Properties/Resources.fr.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,4 +179,7 @@ Allows to keep application window always on top (in foreground of other windows)
179179
<data name="str_append" xml:space="preserve">
180180
<value>Ajouter</value>
181181
</data>
182+
<data name="str_language" xml:space="preserve">
183+
<value>Langue</value>
184+
</data>
182185
</root>

PasteIntoFile/Properties/Resources.it.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,4 +310,7 @@ Allows to keep application window always on top (in foreground of other windows)
310310
<data name="str_subfolder_template" xml:space="preserve">
311311
<value>Modello sottocartella</value>
312312
</data>
313+
<data name="str_language" xml:space="preserve">
314+
<value>Lingua</value>
315+
</data>
313316
</root>

PasteIntoFile/Properties/Resources.ja-JP.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,4 +310,7 @@ Allows to keep application window always on top (in foreground of other windows)
310310
<data name="str_subfolder_template" xml:space="preserve">
311311
<value>サブフォルダーテンプレート</value>
312312
</data>
313+
<data name="str_language" xml:space="preserve">
314+
<value>言語</value>
315+
</data>
313316
</root>

PasteIntoFile/Properties/Resources.pt-BR.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,4 +310,7 @@ Allows to keep application window always on top (in foreground of other windows)
310310
<data name="str_subfolder_template" xml:space="preserve">
311311
<value>Modelo de subpasta</value>
312312
</data>
313+
<data name="language_name" xml:space="preserve">
314+
<value>🇧🇷 (PT-BR)</value>
315+
</data>
313316
</root>

PasteIntoFile/Properties/Resources.pt-PT.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,4 +310,7 @@ Allows to keep application window always on top (in foreground of other windows)
310310
<data name="str_subfolder_template" xml:space="preserve">
311311
<value>Modelo de subpasta</value>
312312
</data>
313+
<data name="language_name" xml:space="preserve">
314+
<value>(PT-PT)</value>
315+
</data>
313316
</root>

0 commit comments

Comments
 (0)