Prechádzať zdrojové kódy

Update localizations for FileDialog.

- Separate some of localization resource keys for cases of hotkeyed string:
  - `fdOpen` -> `fdOpen` and `btnOpen`
  - `fdSave` -> `fdSave` and `btnSave`
  - `fdSaveAs` -> `fdSaveAs` and `btnSaveAs`
- Modify or add resource keys for general purpose:
  - `fdNo` -> `btnNo`
  - `fdYes` -> `btnYes`
  - +`btnCancel`
  - +`btnOk`
- Extract the procedure of build default title to `GetDefaultTitle ()` for FileDialog.
RoxCian 1 rok pred
rodič
commit
eaa2a4a44d

+ 4 - 4
Terminal.Gui/FileServices/DefaultFileOperations.cs

@@ -24,7 +24,7 @@ namespace Terminal.Gui {
 			int result = MessageBox.Query (
 				string.Format (Strings.fdDeleteTitle, adjective),
 				string.Format (Strings.fdDeleteBody, adjective),
-				Strings.fdYes, Strings.fdNo);
+				Strings.btnYes, Strings.btnNo);
 
 			try {
 				if (result == 0) {
@@ -37,7 +37,7 @@ namespace Terminal.Gui {
 					return true;
 				}
 			} catch (Exception ex) {
-				MessageBox.ErrorQuery (Strings.fdDeleteFailedTitle, ex.Message, "Ok");
+				MessageBox.ErrorQuery (Strings.fdDeleteFailedTitle, ex.Message, Strings.btnOk);
 			}
 
 			return false;
@@ -47,14 +47,14 @@ namespace Terminal.Gui {
 		{
 
 			bool confirm = false;
-			var btnOk = new Button ("Ok") {
+			var btnOk = new Button (Strings.btnOk) {
 				IsDefault = true,
 			};
 			btnOk.Clicked += (s, e) => {
 				confirm = true;
 				Application.RequestStop ();
 			};
-			var btnCancel = new Button ("Cancel");
+			var btnCancel = new Button (Strings.btnCancel);
 			btnCancel.Clicked += (s, e) => {
 				confirm = false;
 				Application.RequestStop ();

+ 63 - 18
Terminal.Gui/Resources/Strings.Designer.cs

@@ -60,6 +60,69 @@ namespace Terminal.Gui.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Cancel.
+        /// </summary>
+        internal static string btnCancel {
+            get {
+                return ResourceManager.GetString("btnCancel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No.
+        /// </summary>
+        internal static string btnNo {
+            get {
+                return ResourceManager.GetString("btnNo", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to OK.
+        /// </summary>
+        internal static string btnOk {
+            get {
+                return ResourceManager.GetString("btnOk", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Open.
+        /// </summary>
+        internal static string btnOpen {
+            get {
+                return ResourceManager.GetString("btnOpen", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Save.
+        /// </summary>
+        internal static string btnSave {
+            get {
+                return ResourceManager.GetString("btnSave", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Save as.
+        /// </summary>
+        internal static string btnSaveAs {
+            get {
+                return ResourceManager.GetString("btnSaveAs", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Yes.
+        /// </summary>
+        internal static string btnYes {
+            get {
+                return ResourceManager.GetString("btnYes", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to _Copy.
         /// </summary>
@@ -267,15 +330,6 @@ namespace Terminal.Gui.Resources {
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to No.
-        /// </summary>
-        internal static string fdNo {
-            get {
-                return ResourceManager.GetString("fdNo", resourceCulture);
-            }
-        }
-        
         /// <summary>
         ///   Looks up a localized string similar to Open.
         /// </summary>
@@ -393,15 +447,6 @@ namespace Terminal.Gui.Resources {
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Yes.
-        /// </summary>
-        internal static string fdYes {
-            get {
-                return ResourceManager.GetString("fdYes", resourceCulture);
-            }
-        }
-        
         /// <summary>
         ///   Looks up a localized string similar to _Back.
         /// </summary>

+ 10 - 1
Terminal.Gui/Resources/Strings.fr-FR.resx

@@ -148,7 +148,7 @@
     <value>Enregistrer</value>
   </data>
   <data name="fdSaveAs" xml:space="preserve">
-    <value>E_nregistrer sous</value>
+    <value>Enregistrer sous</value>
   </data>
   <data name="fdOpen" xml:space="preserve">
     <value>Ouvrir</value>
@@ -168,4 +168,13 @@
   <data name="wzNext" xml:space="preserve">
     <value>Prochai_n...</value>
   </data>
+  <data name="btnSave" xml:space="preserve">
+    <value>Enregistrer</value>
+  </data>
+  <data name="btnSaveAs" xml:space="preserve">
+    <value>E_nregistrer sous</value>
+  </data>
+  <data name="btnOpen" xml:space="preserve">
+    <value>Ouvrir</value>
+  </data>
 </root>

+ 19 - 4
Terminal.Gui/Resources/Strings.ja-JP.resx

@@ -145,10 +145,10 @@
     <value>ファイル</value>
   </data>
   <data name="fdSave" xml:space="preserve">
-    <value>保存 (_S)</value>
+    <value>保存</value>
   </data>
   <data name="fdSaveAs" xml:space="preserve">
-    <value>名前を付けて保存 (_S)</value>
+    <value>名前を付けて保存</value>
   </data>
   <data name="fdOpen" xml:space="preserve">
     <value>開く</value>
@@ -189,10 +189,10 @@
   <data name="fdNewTitle" xml:space="preserve">
     <value>新規ディレクトリ</value>
   </data>
-  <data name="fdNo" xml:space="preserve">
+  <data name="btnNo" xml:space="preserve">
     <value>いいえ (_N)</value>
   </data>
-  <data name="fdYes" xml:space="preserve">
+  <data name="btnYes" xml:space="preserve">
     <value>はい (_Y)</value>
   </data>
   <data name="fdModified" xml:space="preserve">
@@ -240,4 +240,19 @@
   <data name="fdAnyFiles" xml:space="preserve">
     <value>任意ファイル</value>
   </data>
+  <data name="btnCancel" xml:space="preserve">
+    <value>キャンセル (_C)</value>
+  </data>
+  <data name="btnOk" xml:space="preserve">
+    <value>OK (_O)</value>
+  </data>
+  <data name="btnOpen" xml:space="preserve">
+    <value>開く (_O)</value>
+  </data>
+  <data name="btnSave" xml:space="preserve">
+    <value>保存 (_S)</value>
+  </data>
+  <data name="btnSaveAs" xml:space="preserve">
+    <value>名前を付けて保存 (_S)</value>
+  </data>
 </root>

+ 9 - 0
Terminal.Gui/Resources/Strings.pt-PT.resx

@@ -168,4 +168,13 @@
   <data name="wzNext" xml:space="preserve">
     <value>S_eguir</value>
   </data>
+  <data name="btnSaveAs" xml:space="preserve">
+    <value>Guardar como</value>
+  </data>
+  <data name="btnSave" xml:space="preserve">
+    <value>Guardar</value>
+  </data>
+  <data name="btnOpen" xml:space="preserve">
+    <value>Abrir</value>
+  </data>
 </root>

+ 17 - 2
Terminal.Gui/Resources/Strings.resx

@@ -226,7 +226,7 @@
   <data name="fdNewTitle" xml:space="preserve">
     <value>New Folder</value>
   </data>
-  <data name="fdNo" xml:space="preserve">
+  <data name="btnNo" xml:space="preserve">
     <value>No</value>
   </data>
   <data name="fdRenameFailedTitle" xml:space="preserve">
@@ -238,10 +238,25 @@
   <data name="fdRenameTitle" xml:space="preserve">
     <value>Rename</value>
   </data>
-  <data name="fdYes" xml:space="preserve">
+  <data name="btnYes" xml:space="preserve">
     <value>Yes</value>
   </data>
   <data name="fdExisting" xml:space="preserve">
     <value>Existing</value>
   </data>
+  <data name="btnOpen" xml:space="preserve">
+    <value>Open</value>
+  </data>
+  <data name="btnSave" xml:space="preserve">
+    <value>Save</value>
+  </data>
+  <data name="btnSaveAs" xml:space="preserve">
+    <value>Save as</value>
+  </data>
+  <data name="btnOk" xml:space="preserve">
+    <value>OK</value>
+  </data>
+  <data name="btnCancel" xml:space="preserve">
+    <value>Cancel</value>
+  </data>
 </root>

+ 19 - 4
Terminal.Gui/Resources/Strings.zh-Hans.resx

@@ -145,10 +145,10 @@
     <value>文件</value>
   </data>
   <data name="fdSave" xml:space="preserve">
-    <value>保存 (_S)</value>
+    <value>保存</value>
   </data>
   <data name="fdSaveAs" xml:space="preserve">
-    <value>另存为 (_S)</value>
+    <value>另存为</value>
   </data>
   <data name="fdOpen" xml:space="preserve">
     <value>打开</value>
@@ -222,7 +222,7 @@
   <data name="fdNewTitle" xml:space="preserve">
     <value>新建文件夹</value>
   </data>
-  <data name="fdNo" xml:space="preserve">
+  <data name="btnNo" xml:space="preserve">
     <value>否 (_N)</value>
   </data>
   <data name="fdRenameFailedTitle" xml:space="preserve">
@@ -234,10 +234,25 @@
   <data name="fdRenameTitle" xml:space="preserve">
     <value>重命名</value>
   </data>
-  <data name="fdYes" xml:space="preserve">
+  <data name="btnYes" xml:space="preserve">
     <value>是 (_Y)</value>
   </data>
   <data name="fdExisting" xml:space="preserve">
     <value>已有</value>
   </data>
+  <data name="btnOk" xml:space="preserve">
+    <value>确定 (_O)</value>
+  </data>
+  <data name="btnOpen" xml:space="preserve">
+    <value>打开 (_O)</value>
+  </data>
+  <data name="btnSave" xml:space="preserve">
+    <value>保存 (_S)</value>
+  </data>
+  <data name="btnSaveAs" xml:space="preserve">
+    <value>另存为 (_S)</value>
+  </data>
+  <data name="btnCancel" xml:space="preserve">
+    <value>取消 (_C)</value>
+  </data>
 </root>

+ 24 - 12
Terminal.Gui/Views/FileDialog.cs

@@ -154,7 +154,7 @@ namespace Terminal.Gui {
 				this.NavigateIf (k, Key.CursorUp, this.tableView);
 			};
 
-			this.btnCancel = new Button ("Cancel") {
+			this.btnCancel = new Button (Strings.btnCancel) {
 				Y = Pos.AnchorEnd (1),
 				X = Pos.Function (() =>
 					this.Bounds.Width
@@ -710,20 +710,32 @@ namespace Terminal.Gui {
 			this.tbPath.SelectAll ();
 
 			if (string.IsNullOrEmpty (Title)) {
-				switch (OpenMode) {
-				case OpenMode.File:
-					this.Title = $"{Strings.fdOpen} {(MustExist ? Strings.fdExisting + " " : "")}{Strings.fdFile}";
-					break;
-				case OpenMode.Directory:
-					this.Title = $"{Strings.fdOpen} {(MustExist ? Strings.fdExisting + " " : "")}{Strings.fdDirectory}";
-					break;
-				case OpenMode.Mixed:
-					this.Title = $"{Strings.fdOpen} {(MustExist ? Strings.fdExisting : "")}";
-					break;
-				}
+				this.Title = GetDefaultTitle ();
 			}
 			this.LayoutSubviews ();
 		}
+		/// <summary>
+		/// Gets a default dialog title, when <see cref="Title"/> is not set or empty, 
+		/// result of the function will be shown.
+		/// </summary>
+		protected virtual string GetDefaultTitle ()
+		{
+			List<string> titleParts = new () {
+				Strings.fdOpen
+			};
+			if (MustExist) {
+				titleParts.Add (Strings.fdExisting);
+			}
+			switch (OpenMode) {
+			case OpenMode.File:
+				titleParts.Add (Strings.fdFile);
+				break;
+			case OpenMode.Directory:
+				titleParts.Add (Strings.fdDirectory);
+				break;
+			}
+			return string.Join (' ', titleParts);
+		}
 
 		private void AllowedTypeMenuClicked (int idx)
 		{

+ 3 - 4
Terminal.Gui/Views/OpenDialog.cs

@@ -55,8 +55,7 @@ namespace Terminal.Gui {
 	/// To select more than one file, users can use the spacebar, or control-t.
 	/// </para>
 	/// </remarks>
-	public class OpenDialog : FileDialog {		
-
+	public class OpenDialog : FileDialog {
 		/// <summary>
 		/// Initializes a new <see cref="OpenDialog"/>.
 		/// </summary>
@@ -70,9 +69,9 @@ namespace Terminal.Gui {
 		/// <param name="openMode">The open mode.</param>
 		public OpenDialog (string title, List<IAllowedType> allowedTypes = null, OpenMode openMode = OpenMode.File)
 		{
-			this.OpenMode = openMode;
+			OpenMode = openMode;
 			Title = title;
-			Style.OkButtonText = openMode == OpenMode.File ? Strings.fdOpen : openMode == OpenMode.Directory ? Strings.fdSelectFolder : Strings.fdSelectMixed;
+			Style.OkButtonText = openMode == OpenMode.File ? Strings.btnOpen : openMode == OpenMode.Directory ? Strings.fdSelectFolder : Strings.fdSelectMixed;
 			
 			if (allowedTypes != null) {
 				AllowedTypes = allowedTypes;

+ 20 - 1
Terminal.Gui/Views/SaveDialog.cs

@@ -42,7 +42,7 @@ namespace Terminal.Gui {
 		{
 			//: base (title, prompt: Strings.fdSave, nameFieldLabel: $"{Strings.fdSaveAs}:", message: message, allowedTypes) { }
 			Title = title;
-			Style.OkButtonText = Strings.fdSave;
+			Style.OkButtonText = Strings.btnSave;
 
 			if(allowedTypes != null) {
 				AllowedTypes = allowedTypes;
@@ -62,5 +62,24 @@ namespace Terminal.Gui {
 				return Path;
 			}
 		}
+
+		protected override string GetDefaultTitle ()
+		{
+			List<string> titleParts = new () {
+				Strings.fdSave
+			};
+			if (MustExist) {
+				titleParts.Add (Strings.fdExisting);
+			}
+			switch (OpenMode) {
+			case OpenMode.File:
+				titleParts.Add (Strings.fdFile);
+				break;
+			case OpenMode.Directory:
+				titleParts.Add (Strings.fdDirectory);
+				break;
+			}
+			return string.Join (' ', titleParts);
+		}
 	}
 }