diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
new file mode 100644
index 0000000..64cfe12
--- /dev/null
+++ b/.config/dotnet-tools.json
@@ -0,0 +1,12 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "dotnet-t4": {
+ "version": "2.3.1",
+ "commands": [
+ "t4"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 3b36b84..aa26550 100644
--- a/.gitignore
+++ b/.gitignore
@@ -802,4 +802,5 @@ FodyWeavers.xsd
# User Define
build/
-nuget.config
\ No newline at end of file
+nuget.config
+*.[Dd]esigner.cs
\ No newline at end of file
diff --git a/src/Lang/Str.Designer.cs b/src/Lang/Str.Designer.cs
deleted file mode 100644
index 353b6e2..0000000
--- a/src/Lang/Str.Designer.cs
+++ /dev/null
@@ -1,413 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace Dot.Lang {
- using System;
-
-
- ///
- /// A strongly-typed resource class, for looking up localized strings, etc.
- ///
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- public class Str {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Str() {
- }
-
- ///
- /// Returns the cached ResourceManager instance used by this class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- public static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Dot.Lang.Str", typeof(Str).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- ///
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- public static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
-
- ///
- /// Looks up a localized string similar to 单击鼠标左键复制颜色和坐标到剪贴板.
- ///
- public static string ClickCopyColor {
- get {
- return ResourceManager.GetString("ClickCopyColor", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 转换换行符为LF.
- ///
- public static string ConvertEndOfLineToLF {
- get {
- return ResourceManager.GetString("ConvertEndOfLineToLF", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to {0}(已复制到剪贴板).
- ///
- public static string Copied {
- get {
- return ResourceManager.GetString("Copied", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 文件通配符.
- ///
- public static string FileSearchPattern {
- get {
- return ResourceManager.GetString("FileSearchPattern", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 要处理的目录路径.
- ///
- public static string FolderPath {
- get {
- return ResourceManager.GetString("FolderPath", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to GUID工具.
- ///
- public static string GuidTool {
- get {
- return ResourceManager.GetString("GuidTool", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 输入文本为空.
- ///
- public static string InputTextIsEmpty {
- get {
- return ResourceManager.GetString("InputTextIsEmpty", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to IP工具.
- ///
- public static string Ip {
- get {
- return ResourceManager.GetString("Ip", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 执行命令后保留会话.
- ///
- public static string KeepSession {
- get {
- return ResourceManager.GetString("KeepSession", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Local clock offset.
- ///
- public static string LocalClockOffset {
- get {
- return ResourceManager.GetString("LocalClockOffset", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to {0}, 本机时钟偏移: {1} ms.
- ///
- public static string LocalTimeOffset {
- get {
- return ResourceManager.GetString("LocalTimeOffset", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 本机时间已同步.
- ///
- public static string LocalTimeSyncDone {
- get {
- return ResourceManager.GetString("LocalTimeSyncDone", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 没有需要处理的文件.
- ///
- public static string NoFileToBeProcessed {
- get {
- return ResourceManager.GetString("NoFileToBeProcessed", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to {0} 通信中....
- ///
- public static string NtpCalling {
- get {
- return ResourceManager.GetString("NtpCalling", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 成功 {0}/{1} , 本机时钟偏移平均值: {2} ms.
- ///
- public static string NtpReceiveDone {
- get {
- return ResourceManager.GetString("NtpReceiveDone", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to {0}/{1} 个 NTP 服务器.
- ///
- public static string NtpServerCount {
- get {
- return ResourceManager.GetString("NtpServerCount", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to NTP 服务器标准时钟: {0}.
- ///
- public static string NtpServerTime {
- get {
- return ResourceManager.GetString("NtpServerTime", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 指定的路径“{0}”不存在.
- ///
- public static string PathNotFound {
- get {
- return ResourceManager.GetString("PathNotFound", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 按下任意键继续....
- ///
- public static string PressAnyKey {
- get {
- return ResourceManager.GetString("PressAnyKey", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Public network ip... .
- ///
- public static string PublicIP {
- get {
- return ResourceManager.GetString("PublicIP", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to BitSet 1:[0-9],2:[a-z],4:[A-Z],8:[ascii.0x21-0x2F].
- ///
- public static string PwdGenerateTypes {
- get {
- return ResourceManager.GetString("PwdGenerateTypes", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 密码长度.
- ///
- public static string PwdLength {
- get {
- return ResourceManager.GetString("PwdLength", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 随机密码生成器.
- ///
- public static string RandomPasswordGenerator {
- get {
- return ResourceManager.GetString("RandomPasswordGenerator", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 只读模式(仅做测试,不实际修改).
- ///
- public static string ReadOnly {
- get {
- return ResourceManager.GetString("ReadOnly", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 移除文件尾部换行和空格.
- ///
- public static string RemoveTrailingWhiteSpaces {
- get {
- return ResourceManager.GetString("RemoveTrailingWhiteSpaces", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 屏幕坐标颜色选取工具.
- ///
- public static string ScreenPixelTool {
- get {
- return ResourceManager.GetString("ScreenPixelTool", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 查找文件....
- ///
- public static string SearchingFile {
- get {
- return ResourceManager.GetString("SearchingFile", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to {0} 个文件.
- ///
- public static string SearchingFileOK {
- get {
- return ResourceManager.GetString("SearchingFileOK", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Server.
- ///
- public static string Server {
- get {
- return ResourceManager.GetString("Server", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 同步本机时间.
- ///
- public static string ServerTime {
- get {
- return ResourceManager.GetString("ServerTime", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 已读取:{0}/{1},处理:{2},跳过:{3}.
- ///
- public static string ShowMessageTemp {
- get {
- return ResourceManager.GetString("ShowMessageTemp", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Status.
- ///
- public static string Status {
- get {
- return ResourceManager.GetString("Status", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 同步本机时间.
- ///
- public static string SyncToLocalTime {
- get {
- return ResourceManager.GetString("SyncToLocalTime", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 要处理的文本(默认取取剪贴板值).
- ///
- public static string TextTobeProcessed {
- get {
- return ResourceManager.GetString("TextTobeProcessed", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 文本编码工具.
- ///
- public static string TextTool {
- get {
- return ResourceManager.GetString("TextTool", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 连接NTP服务器超时时间 (毫秒).
- ///
- public static string TimeoutMillSecs {
- get {
- return ResourceManager.GetString("TimeoutMillSecs", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 时间同步工具.
- ///
- public static string TimeTool {
- get {
- return ResourceManager.GetString("TimeTool", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 移除文件的uf8 bom.
- ///
- public static string TrimUtf8Bom {
- get {
- return ResourceManager.GetString("TrimUtf8Bom", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to 使用大写输出.
- ///
- public static string UseUppercase {
- get {
- return ResourceManager.GetString("UseUppercase", resourceCulture);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/Lang/Str.tt b/src/Lang/Str.tt
new file mode 100644
index 0000000..2024c4f
--- /dev/null
+++ b/src/Lang/Str.tt
@@ -0,0 +1,86 @@
+<#@ template language="C#" #>
+<#@ import namespace="System.Xml" #>
+<#@ assembly name="System.Xml" #>
+<#@ output encoding="utf-8" extension="Designer.cs" #>
+
+
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Dot.Lang {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ public class Str {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Str() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ public static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Dot.Lang.Str", typeof(Str).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ public static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ <#
+ var xml = new XmlDocument();
+ xml.Load("Str.resx");
+ foreach (XmlNode data in xml.SelectNodes("//root/data")) {
+ #>
+ ///
+ /// <#= data.SelectSingleNode("value").InnerText #>
+ ///
+ public static string <#= data.Attributes["name"].Value #> {
+ get {
+ return ResourceManager.GetString("<#= data.Attributes["name"].Value #>", resourceCulture);
+ }
+ }
+<#
+ }
+#>
+
+ }
+}
\ No newline at end of file
diff --git a/src/dot.csproj b/src/dot.csproj
index c735ef9..4ef3b66 100644
--- a/src/dot.csproj
+++ b/src/dot.csproj
@@ -24,10 +24,10 @@
-
-
-
-
+
+
+
+
@@ -37,7 +37,7 @@
Str.Designer.cs
-
+
True
@@ -46,4 +46,11 @@
+
+
+
+
+
+
+
\ No newline at end of file