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.
This commit is contained in:
RoxCian
2023-09-28 17:40:34 +08:00
parent e384b44d5a
commit eaa2a4a44d
10 changed files with 188 additions and 50 deletions

View File

@@ -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 ();

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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)
{

View File

@@ -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;

View File

@@ -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);
}
}
}