From e66fa647227fc38a2473ae39fe56d81a2400023b Mon Sep 17 00:00:00 2001 From: Jaex Date: Mon, 27 Mar 2023 09:19:32 +0300 Subject: [PATCH] Auto find languages --- ShareX.HelpersLib/Helpers/FileHelpers.cs | 21 ++++++++++++--------- ShareX.Setup/Program.cs | 13 ++++++++----- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/ShareX.HelpersLib/Helpers/FileHelpers.cs b/ShareX.HelpersLib/Helpers/FileHelpers.cs index b17a882d9..df0cc9b8c 100644 --- a/ShareX.HelpersLib/Helpers/FileHelpers.cs +++ b/ShareX.HelpersLib/Helpers/FileHelpers.cs @@ -641,18 +641,21 @@ public static void CopyFiles(string filePath, string destinationFolder) CopyFiles(new string[] { filePath }, destinationFolder); } - public static void CopyFiles(IEnumerable files, string destinationFolder) + public static void CopyFiles(string[] files, string destinationFolder) { - if (!Directory.Exists(destinationFolder)) + if (files != null && files.Length > 0) { - Directory.CreateDirectory(destinationFolder); - } + if (!Directory.Exists(destinationFolder)) + { + Directory.CreateDirectory(destinationFolder); + } - foreach (string filePath in files) - { - string fileName = Path.GetFileName(filePath); - string destinationFilePath = Path.Combine(destinationFolder, fileName); - File.Copy(filePath, destinationFilePath); + foreach (string filePath in files) + { + string fileName = Path.GetFileName(filePath); + string destinationFilePath = Path.Combine(destinationFolder, fileName); + File.Copy(filePath, destinationFilePath); + } } } diff --git a/ShareX.Setup/Program.cs b/ShareX.Setup/Program.cs index 89fab9b5b..717ef250b 100644 --- a/ShareX.Setup/Program.cs +++ b/ShareX.Setup/Program.cs @@ -28,6 +28,7 @@ using System; using System.Diagnostics; using System.IO; +using System.Text.RegularExpressions; namespace ShareX.Setup { @@ -380,12 +381,14 @@ private static void CreateFolder(string source, string destination, SetupJobs jo FileHelpers.CopyFiles(Path.Combine(NativeMessagingHostDir, "ShareX_NativeMessagingHost.exe"), destination); } - string[] languages = new string[] { "de", "es", "es-MX", "fa-IR", "fr", "he-IL", "hu", "id-ID", "it-IT", "ja-JP", "ko-KR", "nl-NL", "pl", "pt-BR", "pt-PT", - "ro", "ru", "tr", "uk", "vi-VN", "zh-CN", "zh-TW" }; - - foreach (string language in languages) + foreach (string directory in Directory.GetDirectories(source)) { - FileHelpers.CopyFiles(Path.Combine(source, language), Path.Combine(destination, "Languages", language), "*.resources.dll"); + string language = Path.GetFileName(directory); + + if (Regex.IsMatch(language, "^[a-z]{2}(?:-[A-Z]{2})?$")) + { + FileHelpers.CopyFiles(Path.Combine(source, language), Path.Combine(destination, "Languages", language), "*.resources.dll"); + } } if (File.Exists(FFmpegPath))