mirror of
https://github.com/SabreTools/MPF.git
synced 2026-02-04 05:35:52 +00:00
Initial UI lang code (#899)
* Test using resources * Include system namespace in resource xaml * system namespace name * rename strings * Default strings * Window resources * add keys * just one key * Combo box example * window resources * Dropdown in menu bar * nullable * non nullable * string list init * simple * English default * Add menu item for language * parent is menuitem * fix * no null lang * Only build win-x64, GHA storage limit * Korean * test * Set resource strings at app level * remove lost endif * Better UI * Move langs next to buttons * update * fix button * More translations * Better menu size * too many semicolons * top right menu bar * Tweaks * Top bar positioning * title bar width * try again * final * Back to original publish script * more windows * pre-merge test * Test non-latin underscore * More strings * fix * FindResource is a function * space * cast spells * Log about text * semicolon * Good * cast spells * using System.Windows in Frontend * Translate in MainViewModel * Dynamic GetFormattedVolumeLabel * Nullability * Fix * using for dict * Translate func in MVM * Don't translate in init * Update MVM translations * closing brace * Deprecate resource string * test * test2 * set current system * trial field * field is preview * default empty string * default null * fix build * empty string * GIve up on no system selected text * Fix context menu border * Revert half fix * Translate more IRD Window strings * Loose string * Detect current locale * fix * System.Globalization * Locale detection for default lang * break on zh case * default startup lang * default lang option * fix * fix2 * fix3 * nonnullable * final fix * final final fix * default language option * use default language on startup * empty entry * semicolon
This commit is contained in:
68
MPF.Frontend/ComboBoxItems/UILanguageComboBoxItem.cs
Normal file
68
MPF.Frontend/ComboBoxItems/UILanguageComboBoxItem.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace MPF.Frontend.ComboBoxItems
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a single item in the Default UI Language combo box
|
||||
/// </summary>
|
||||
public class UILanguageComboBoxItem : IEquatable<UILanguageComboBoxItem>, IElement
|
||||
{
|
||||
private readonly string UILanguage;
|
||||
|
||||
private static readonly string[] languages = { "ENG", "한국어" };
|
||||
|
||||
public UILanguageComboBoxItem(string language) => UILanguage = language;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Array.Exists(languages, lang => lang == UILanguage))
|
||||
return UILanguage;
|
||||
else
|
||||
return "Auto Detect";
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToString() => Name;
|
||||
|
||||
/// <summary>
|
||||
/// Generate all elements for the known system combo box
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<UILanguageComboBoxItem> GenerateElements()
|
||||
{
|
||||
var langValues = new List<UILanguageComboBoxItem>()
|
||||
{
|
||||
new UILanguageComboBoxItem(""),
|
||||
};
|
||||
|
||||
foreach (var lang in languages)
|
||||
{
|
||||
langValues.Add(new UILanguageComboBoxItem(lang));
|
||||
}
|
||||
|
||||
return langValues;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
return Equals(obj as UILanguageComboBoxItem);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public bool Equals(UILanguageComboBoxItem? other)
|
||||
{
|
||||
if (other == null)
|
||||
return false;
|
||||
|
||||
return UILanguage == other.UILanguage;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override int GetHashCode() => base.GetHashCode();
|
||||
}
|
||||
}
|
||||
@@ -142,6 +142,16 @@ namespace MPF.Frontend
|
||||
set { Settings["FastUpdateLabel"] = value.ToString(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Default UI language to launch MPF into
|
||||
/// null/empty = Detect locale
|
||||
/// </summary>
|
||||
public string? DefaultUILanguage
|
||||
{
|
||||
get { return GetStringSetting(Settings, "DefaultUILanguage", "Auto Detect"); }
|
||||
set { Settings["DefaultUILanguage"] = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Default output path for dumps
|
||||
/// </summary>
|
||||
|
||||
@@ -543,11 +543,11 @@ namespace MPF.Frontend.ViewModels
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constants
|
||||
#region Strings
|
||||
|
||||
private const string DiscNotDetectedValue = "Disc Not Detected";
|
||||
private const string StartDumpingValue = "Start Dumping";
|
||||
private const string StopDumpingValue = "Stop Dumping";
|
||||
private string StartDumpingValue = "Start Dumping";
|
||||
private string StopDumpingValue = "Stop Dumping";
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -813,25 +813,6 @@ namespace MPF.Frontend.ViewModels
|
||||
message = "An exception occurred while checking for versions, please try again later. See the log window for more details.";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Build the about text
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string CreateAboutText()
|
||||
{
|
||||
string aboutText = $"Media Preservation Frontend (MPF)"
|
||||
+ $"{Environment.NewLine}"
|
||||
+ $"{Environment.NewLine}A community preservation frontend developed in C#."
|
||||
+ $"{Environment.NewLine}Supports Redumper, Aaru, and DiscImageCreator."
|
||||
+ $"{Environment.NewLine}Originally created to help the Redump project."
|
||||
+ $"{Environment.NewLine}"
|
||||
+ $"{Environment.NewLine}Thanks to everyone who has supported this project!"
|
||||
+ $"{Environment.NewLine}"
|
||||
+ $"{Environment.NewLine}Version {FrontendTool.GetCurrentVersion()}";
|
||||
SecretLogLn(aboutText);
|
||||
return aboutText;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Build a dummy SubmissionInfo
|
||||
/// </summary>
|
||||
@@ -1880,6 +1861,14 @@ namespace MPF.Frontend.ViewModels
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs the About text
|
||||
/// </summary>
|
||||
public void LogAboutText(string message)
|
||||
{
|
||||
SecretLogLn(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Process the current custom parameters back into UI values
|
||||
/// </summary>
|
||||
@@ -2457,6 +2446,31 @@ namespace MPF.Frontend.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Translates strings in MainModelView
|
||||
/// </summary>
|
||||
/// <param name="translationStrings">Dictionary of keys and their translated string</param>
|
||||
public void TranslateStrings(Dictionary<string, string>? translationStrings)
|
||||
{
|
||||
if (translationStrings != null)
|
||||
{
|
||||
// Cache current start dumping string
|
||||
var oldStartDumpingValue = StartDumpingValue;
|
||||
|
||||
// Get translated strings
|
||||
if (translationStrings.TryGetValue("StartDumpingButtonString", out string? startDumpingButtonString))
|
||||
StartDumpingValue = startDumpingButtonString ?? StartDumpingValue;
|
||||
if (translationStrings.TryGetValue("StopDumpingButtonString", out string? stopDumpingValue))
|
||||
StopDumpingValue = stopDumpingValue ?? StopDumpingValue;
|
||||
|
||||
// Set button text
|
||||
if (StartStopButtonText as string == oldStartDumpingValue)
|
||||
StartStopButtonText = StartDumpingValue;
|
||||
else
|
||||
StartStopButtonText = StopDumpingValue;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Progress Reporting
|
||||
|
||||
@@ -51,6 +51,11 @@ namespace MPF.Frontend.ViewModels
|
||||
/// </summary>
|
||||
public static List<Element<InternalProgram>> InternalPrograms => PopulateInternalPrograms();
|
||||
|
||||
/// <summary>
|
||||
/// List of available UI languages
|
||||
/// </summary>
|
||||
public static List<UILanguageComboBoxItem> UILanguages => UILanguageComboBoxItem.GenerateElements();
|
||||
|
||||
/// <summary>
|
||||
/// List of available log compression methods
|
||||
/// </summary>
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ContextMenu}">
|
||||
<Border x:Name="Border" Background="{Binding Background}" BorderBrush="{DynamicResource ContextMenu.Static.Border}" BorderThickness="1">
|
||||
<Border x:Name="Border" Background="{TemplateBinding Background}" BorderBrush="{DynamicResource ContextMenu.Static.Border}" BorderThickness="1">
|
||||
<StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle" />
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Markup;
|
||||
@@ -309,6 +310,9 @@ namespace MPF.UI
|
||||
InitializeComponent();
|
||||
#endif
|
||||
|
||||
// Assign resource dictionaries
|
||||
SetUILanguage();
|
||||
|
||||
// Create control templates
|
||||
CreateControlTemplate("ComboBoxTemplate");
|
||||
CreateControlTemplate("ComboBoxEditableTemplate");
|
||||
@@ -359,6 +363,60 @@ namespace MPF.UI
|
||||
Resources[resourceName] = controlTemplate;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a strings resource dictionary for use as the UI language
|
||||
/// </summary>
|
||||
private void SetUILanguage()
|
||||
{
|
||||
// Add English strings to merged dictionary as default, add translations later
|
||||
var baselineDictionary = new ResourceDictionary();
|
||||
baselineDictionary.Source = new Uri("Resources/Strings.xaml", UriKind.Relative);
|
||||
Resources.MergedDictionaries.Add(baselineDictionary);
|
||||
|
||||
// Get current region code
|
||||
string region = "";
|
||||
try
|
||||
{
|
||||
// Can throw exception depending on current locale
|
||||
region = new RegionInfo(CultureInfo.CurrentUICulture.Name).TwoLetterISORegionName;
|
||||
}
|
||||
catch { }
|
||||
|
||||
// Select startup language based on current system locale
|
||||
var translatedDictionary = new ResourceDictionary();
|
||||
switch (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName)
|
||||
{
|
||||
case "en":
|
||||
// English already loaded, don't add any translated text
|
||||
break;
|
||||
|
||||
case "ko":
|
||||
// Translate UI elements to Korean
|
||||
translatedDictionary.Source = new Uri("Resources/Strings.ko.xaml", UriKind.Relative);
|
||||
break;
|
||||
|
||||
case "zh":
|
||||
// Check if region uses Traditional or Simplified Chinese
|
||||
string[] traditionalRegions = { "TW", "HK", "MO" };
|
||||
if (Array.Exists(traditionalRegions, r => r.Equals(region, StringComparison.OrdinalIgnoreCase)))
|
||||
{
|
||||
// TODO: Translate UI elements to Traditional Chinese
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Translate UI elements to Simplified Chinese
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Unsupported language, don't add any translated text
|
||||
break;
|
||||
}
|
||||
|
||||
// Add the strings resource to app resources
|
||||
Resources.MergedDictionaries.Add(translatedDictionary);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a named style and add it to the current set of resources
|
||||
/// </summary>
|
||||
|
||||
106
MPF.UI/Resources/Strings.ko.xaml
Normal file
106
MPF.UI/Resources/Strings.ko.xaml
Normal file
@@ -0,0 +1,106 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
|
||||
<!-- Language Name: KO / KOR / 한글 / 한국어 -->
|
||||
<system:String x:Key="LanguageMenuString">한국어</system:String>
|
||||
|
||||
<!-- Common Elements -->
|
||||
<system:String x:Key="AcceptButtonString">확인</system:String>
|
||||
<system:String x:Key="BrowseButtonString">찾아보기</system:String>
|
||||
<system:String x:Key="CancelButtonString">취소</system:String>
|
||||
<system:String x:Key="MinimizeMenuItemString">최소화</system:String>
|
||||
<system:String x:Key="CloseMenuItemString">끝내기</system:String>
|
||||
<system:String x:Key="SettingsGroupBoxString">설정</system:String>
|
||||
<system:String x:Key="StatusGroupBoxString">상태</system:String>
|
||||
<system:String x:Key="WarningLabelString">경고:</system:String>
|
||||
|
||||
<!-- Main Window
|
||||
<system:String x:Key="AppTitleString">미디어 프리저베이션 프런트엔드</system:String> -->
|
||||
<!-- Top Menu Bar -->
|
||||
<system:String x:Key="FileMenuString">파일</system:String>
|
||||
<system:String x:Key="ExitMenuItemString">종료</system:String>
|
||||
<system:String x:Key="ToolsMenuString">도구</system:String>
|
||||
<system:String x:Key="CheckDumpMenuItemString">체크 덤프</system:String>
|
||||
<system:String x:Key="CreatePS3IRDDumpMenuItemString">PS3 IRD 생성</system:String>
|
||||
<system:String x:Key="OptionsDumpMenuItemString">옵션</system:String>
|
||||
<system:String x:Key="DebugInfoWindowMenuItemString">디버그 정보 창</system:String>
|
||||
<system:String x:Key="HelpMenuString">도움말</system:String>
|
||||
<system:String x:Key="AboutMenuItemString">앱 정보</system:String>
|
||||
<system:String x:Key="CheckForUpdateMenuItemString">업데이트 확인</system:String>
|
||||
<!-- Settings Group Box-->
|
||||
<system:String x:Key="SystemLabelString">시스템 유형</system:String>
|
||||
<system:String x:Key="SystemMediaTypeLabelString">시스템/미디어 유형</system:String>
|
||||
<system:String x:Key="NoSystemSelectedString">No system selected</system:String>
|
||||
<system:String x:Key="OutputPathLabelString">출력 경로</system:String>
|
||||
<system:String x:Key="DriveLetterLabelString">드라이브 문자</system:String>
|
||||
<system:String x:Key="DriveSpeedLabelString">드라이브 속도</system:String>
|
||||
<system:String x:Key="DumpingProgramLabelString">덤프 프로그램</system:String>
|
||||
<system:String x:Key="ParametersLabelString">매개변수</system:String>
|
||||
<!-- Controls Group Box-->
|
||||
<system:String x:Key="ControlsGroupBoxString">컨트롤</system:String>
|
||||
<system:String x:Key="StartDumpingButtonString">덤프 시작</system:String>
|
||||
<system:String x:Key="StopDumpingButtonString">덤프 중지</system:String>
|
||||
<system:String x:Key="ScanButtonString">디스크 스캔</system:String>
|
||||
<system:String x:Key="UpdateLabelButtonString">레이블 갱신</system:String>
|
||||
<system:String x:Key="ProtectionScanButtonString">보호 스캔</system:String>
|
||||
<!-- Log Output -->
|
||||
<system:String x:Key="LogOutputExpanderString">로그 출력</system:String>
|
||||
<system:String x:Key="ClearButtonString">로그 지우기</system:String>
|
||||
<system:String x:Key="SaveButtonString">로그 저장</system:String>
|
||||
|
||||
<!-- Options Window -->
|
||||
<system:String x:Key="OptionsTitleString">옵션</system:String>
|
||||
<system:String x:Key="OptionsFirstRunTitleString">MPF에 오신 것을 환영합니다. 옵션을 살펴보세요.</system:String>
|
||||
<!-- <system:String x:Key="OptionsRetrievalWarningString">If you choose to enable validation and information retrieval, you are responsible for ensuring that all data populated matches your actual media. Some information may be marked to check for validity as a reminder, but all information should be subject to the same scrutiny.</system:String> -->
|
||||
|
||||
<!-- Check Dump Window-->
|
||||
<system:String x:Key="CheckDumpTitleString">체크 기존 덤프</system:String>
|
||||
<system:String x:Key="InputPathLabelString">입력 경로</system:String>
|
||||
<system:String x:Key="CheckDumpButtonString">체크 덤프</system:String>
|
||||
<!-- <system:String x:Key="CheckDumpWarningString">Check will overwrite any existing submission information files. Please make backups of those if you need to before running Check.</system:String> -->
|
||||
|
||||
<!-- Create PS3 IRD Window -->
|
||||
<system:String x:Key="CreatePS3IRDTitleString">PS3 IRD 생성</system:String>
|
||||
<system:String x:Key="InputGroupBoxString">입력</system:String>
|
||||
<system:String x:Key="PS3ISOPathLabelString">PS3 ISO 경로</system:String>
|
||||
<system:String x:Key="GetKeyPathLabelString">*.getkey.log 파일 경로</system:String>
|
||||
<system:String x:Key="KeyExpanderString">PS3 디스크 암호화 키 수동 설정</system:String>
|
||||
<system:String x:Key="HexadecimalKeyLabelString">헥스 키</system:String>
|
||||
<system:String x:Key="KeyFilePathLabelString">키 파일 경로</system:String>
|
||||
<system:String x:Key="KeyStatusLabelString">키 상태</system:String>
|
||||
<system:String x:Key="DiscIDExpanderString">PS3 디스크 ID 수동 설정</system:String>
|
||||
<system:String x:Key="DiscIDLabelString">디스크 ID</system:String>
|
||||
<system:String x:Key="DiscIDStatusLabelString">디스크 ID 상태</system:String>
|
||||
<system:String x:Key="LayerbreakLabelString">Layerbreak (sectors)</system:String>
|
||||
<system:String x:Key="PICExpanderString">Permanent Information & Control (PIC) 수동 설정</system:String>
|
||||
<system:String x:Key="PICLabelString">PIC</system:String>
|
||||
<system:String x:Key="PICFilePathLabelString">PIC 파일 경로</system:String>
|
||||
<system:String x:Key="PICStatusLabelString">PIC 상태</system:String>
|
||||
<system:String x:Key="CreateIRDButtonString">IRD 생성</system:String>
|
||||
|
||||
<!-- Media Information Guide Window -->
|
||||
<system:String x:Key="MediaInformationTitleString">미디어 정보</system:String>
|
||||
<system:String x:Key="CategoryLabelString">카테고리</system:String>
|
||||
<system:String x:Key="RegionLabelString">지역</system:String>
|
||||
<system:String x:Key="LanguagesLabelString">언어 (언어)</system:String>
|
||||
<system:String x:Key="LanguageSelectionViaLabelString">언어 선택 방식</system:String>
|
||||
<system:String x:Key="PCMacHybridLabelString">PC/Mac 하이브리드</system:String>
|
||||
<system:String x:Key="RingCodeGuideButtonString">링 코드 가이드</system:String>
|
||||
|
||||
<!-- Ring Code Guide Window -->
|
||||
<system:String x:Key="RingCodeGuideTitleString">링 코드 가이드</system:String>
|
||||
|
||||
<!-- About Window -->
|
||||
<system:String x:Key="AboutTitleString">앱 정보</system:String>
|
||||
<!-- <system:String x:Key="AppTitleFullString">미디어 프리저베이션 프런트엔드 (MPF)</system:String>
|
||||
<system:String x:Key="AboutLine1String">A community preservation frontend developed in C#.</system:String>
|
||||
<system:String x:Key="AboutLine2String">Supports Redumper, Aaru, and DiscImageCreator.</system:String>
|
||||
<system:String x:Key="AboutLine3String">Originally created to help the Redump project.</system:String>
|
||||
<system:String x:Key="AboutThanksString">Thanks to everyone who has supported this project!</system:String> -->
|
||||
<system:String x:Key="VersionLabelString">버전</system:String>
|
||||
|
||||
<!-- Check for Updates Window -->
|
||||
<system:String x:Key="CheckForUpdatesTitleString">버전 업데이트 확인</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
106
MPF.UI/Resources/Strings.xaml
Normal file
106
MPF.UI/Resources/Strings.xaml
Normal file
@@ -0,0 +1,106 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
|
||||
<!-- Language Name: EN / ENG -->
|
||||
<system:String x:Key="LanguageMenuString">ENG</system:String>
|
||||
|
||||
<!-- Common Elements -->
|
||||
<system:String x:Key="AcceptButtonString">Accept</system:String>
|
||||
<system:String x:Key="BrowseButtonString">Browse</system:String>
|
||||
<system:String x:Key="CancelButtonString">Cancel</system:String>
|
||||
<system:String x:Key="MinimizeMenuItemString">Minimize</system:String>
|
||||
<system:String x:Key="CloseMenuItemString">Close</system:String>
|
||||
<system:String x:Key="SettingsGroupBoxString">Settings</system:String>
|
||||
<system:String x:Key="StatusGroupBoxString">Status</system:String>
|
||||
<system:String x:Key="WarningLabelString">WARNING:</system:String>
|
||||
|
||||
<!-- Main Window -->
|
||||
<system:String x:Key="AppTitleString">Media Preservation Frontend</system:String>
|
||||
<!-- Top Menu Bar -->
|
||||
<system:String x:Key="FileMenuString">_File</system:String>
|
||||
<system:String x:Key="ExitMenuItemString">E_xit</system:String>
|
||||
<system:String x:Key="ToolsMenuString">_Tools</system:String>
|
||||
<system:String x:Key="CheckDumpMenuItemString">_Check Dump</system:String>
|
||||
<system:String x:Key="CreatePS3IRDDumpMenuItemString">Create _PS3 IRD</system:String>
|
||||
<system:String x:Key="OptionsDumpMenuItemString">_Options</system:String>
|
||||
<system:String x:Key="DebugInfoWindowMenuItemString">_Debug Info Window</system:String>
|
||||
<system:String x:Key="HelpMenuString">_Help</system:String>
|
||||
<system:String x:Key="AboutMenuItemString">_About</system:String>
|
||||
<system:String x:Key="CheckForUpdateMenuItemString">_Check for Updates</system:String>
|
||||
<!-- Settings Group Box-->
|
||||
<system:String x:Key="SystemLabelString">System Type</system:String>
|
||||
<system:String x:Key="SystemMediaTypeLabelString">System/Media Type</system:String>
|
||||
<system:String x:Key="NoSystemSelectedString">No system selected</system:String>
|
||||
<system:String x:Key="OutputPathLabelString">Output Path</system:String>
|
||||
<system:String x:Key="DriveLetterLabelString">Drive Letter</system:String>
|
||||
<system:String x:Key="DriveSpeedLabelString">Drive Speed</system:String>
|
||||
<system:String x:Key="DumpingProgramLabelString">Dumping Program</system:String>
|
||||
<system:String x:Key="ParametersLabelString">Parameters</system:String>
|
||||
<!-- Controls Group Box-->
|
||||
<system:String x:Key="ControlsGroupBoxString">Controls</system:String>
|
||||
<system:String x:Key="StartDumpingButtonString">Start Dumping</system:String>
|
||||
<system:String x:Key="StopDumpingButtonString">Stop Dumping</system:String>
|
||||
<system:String x:Key="ScanButtonString">Scan for Discs</system:String>
|
||||
<system:String x:Key="UpdateLabelButtonString">Update Label</system:String>
|
||||
<system:String x:Key="ProtectionScanButtonString">Scan for Protection</system:String>
|
||||
<!-- Log Output -->
|
||||
<system:String x:Key="LogOutputExpanderString">Log Output</system:String>
|
||||
<system:String x:Key="ClearButtonString">Clear Log</system:String>
|
||||
<system:String x:Key="SaveButtonString">Save Log</system:String>
|
||||
|
||||
<!-- Options Window -->
|
||||
<system:String x:Key="OptionsTitleString">Options</system:String>
|
||||
<system:String x:Key="OptionsFirstRunTitleString">Welcome to MPF, Explore the Options</system:String>
|
||||
<system:String x:Key="OptionsRetrievalWarningString">If you choose to enable validation and information retrieval, you are responsible for ensuring that all data populated matches your actual media. Some information may be marked to check for validity as a reminder, but all information should be subject to the same scrutiny.</system:String>
|
||||
|
||||
<!-- Check Dump Window-->
|
||||
<system:String x:Key="CheckDumpTitleString">Check Existing Dump</system:String>
|
||||
<system:String x:Key="InputPathLabelString">Input Path</system:String>
|
||||
<system:String x:Key="CheckDumpButtonString">Check Dump</system:String>
|
||||
<system:String x:Key="CheckDumpWarningString">Check will overwrite any existing submission information files. Please make backups of those if you need to before running Check.</system:String>
|
||||
|
||||
<!-- Create PS3 IRD Window -->
|
||||
<system:String x:Key="CreatePS3IRDTitleString">Create PS3 IRD</system:String>
|
||||
<system:String x:Key="InputGroupBoxString">Input</system:String>
|
||||
<system:String x:Key="PS3ISOPathLabelString">PS3 ISO Path</system:String>
|
||||
<system:String x:Key="GetKeyPathLabelString">*.getkey.log File Path</system:String>
|
||||
<system:String x:Key="KeyExpanderString">Manually define PS3 Disc Encryption Key</system:String>
|
||||
<system:String x:Key="HexadecimalKeyLabelString">Hexadecimal Key</system:String>
|
||||
<system:String x:Key="KeyFilePathLabelString">Key File Path</system:String>
|
||||
<system:String x:Key="KeyStatusLabelString">Key Status</system:String>
|
||||
<system:String x:Key="DiscIDExpanderString">Manually define PS3 Disc ID</system:String>
|
||||
<system:String x:Key="DiscIDLabelString">Disc ID</system:String>
|
||||
<system:String x:Key="DiscIDStatusLabelString">Disc ID Status</system:String>
|
||||
<system:String x:Key="PICExpanderString">Manually define Permanent Information & Control (PIC)</system:String>
|
||||
<system:String x:Key="LayerbreakLabelString">Layerbreak (sectors)</system:String>
|
||||
<system:String x:Key="PICLabelString">PIC</system:String>
|
||||
<system:String x:Key="PICFilePathLabelString">PIC File Path</system:String>
|
||||
<system:String x:Key="PICStatusLabelString">PIC Status</system:String>
|
||||
<system:String x:Key="CreateIRDButtonString">Create IRD</system:String>
|
||||
|
||||
<!-- Media Information Guide Window -->
|
||||
<system:String x:Key="MediaInformationTitleString">Media Information</system:String>
|
||||
<system:String x:Key="CategoryLabelString">Category</system:String>
|
||||
<system:String x:Key="RegionLabelString">Region</system:String>
|
||||
<system:String x:Key="LanguagesLabelString">Languages</system:String>
|
||||
<system:String x:Key="LanguageSelectionViaLabelString">Language Selection Via</system:String>
|
||||
<system:String x:Key="PCMacHybridLabelString">PC/Mac Hybrid</system:String>
|
||||
<system:String x:Key="RingCodeGuideButtonString">Ring Code Guide</system:String>
|
||||
|
||||
<!-- Ring Code Guide Window -->
|
||||
<system:String x:Key="RingCodeGuideTitleString">Ring Code Guide</system:String>
|
||||
|
||||
<!-- About Window -->
|
||||
<system:String x:Key="AboutTitleString">About</system:String>
|
||||
<system:String x:Key="AppTitleFullString">Media Preservation Frontend (MPF)</system:String>
|
||||
<system:String x:Key="AboutLine1String">A community preservation frontend developed in C#.</system:String>
|
||||
<system:String x:Key="AboutLine2String">Supports Redumper, Aaru, and DiscImageCreator.</system:String>
|
||||
<system:String x:Key="AboutLine3String">Originally created to help the Redump project.</system:String>
|
||||
<system:String x:Key="AboutThanksString">Thanks to everyone who has supported this project!</system:String>
|
||||
<system:String x:Key="VersionLabelString">Version</system:String>
|
||||
|
||||
<!-- Check for Updates Window -->
|
||||
<system:String x:Key="CheckForUpdatesTitleString">Version Update Check</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -23,8 +23,8 @@
|
||||
</GroupBox.Template>
|
||||
<UniformGrid Columns="4" Margin="5,5,5,5" Height="27">
|
||||
<Label/> <!-- Empty label for padding -->
|
||||
<Button Name="ClearButton" Height="25" Width="80" Content="Clear" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button Name="SaveButton" Height="25" Width="80" Content="Save" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button Name="ClearButton" Height="25" Width="80" Content="{DynamicResource ClearButtonString}" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button Name="SaveButton" Height="25" Width="80" Content="{DynamicResource SaveButtonString}" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Label/> <!-- Empty label for padding -->
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
xmlns:coreWindows="clr-namespace:MPF.UI.Windows"
|
||||
xmlns:viewModels="clr-namespace:MPF.Frontend.ViewModels;assembly=MPF.Frontend"
|
||||
mc:Ignorable="d"
|
||||
Title="Check Existing Dump" Width="600" WindowStyle="None"
|
||||
Title="{DynamicResource CheckDumpTitleString}" Width="600" WindowStyle="None"
|
||||
WindowStartupLocation="CenterOwner" ResizeMode="CanMinimize" SizeToContent="Height"
|
||||
AllowsTransparency="True" Background="Transparent">
|
||||
|
||||
@@ -34,17 +34,17 @@
|
||||
<Image Grid.Column="0" Source="/Images/Icon.ico" Height="20" Width="20" Margin="1" MouseDown="TitleMouseDown" />
|
||||
<Label Grid.Column="1" Grid.ColumnSpan="4" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" MouseDown="TitleMouseDown">
|
||||
<Label.Content>
|
||||
<Run FontWeight="Bold" Text="Check Existing Dump" />
|
||||
<Run FontWeight="Bold" Text="{DynamicResource CheckDumpTitleString}" />
|
||||
</Label.Content>
|
||||
<Label.ContextMenu>
|
||||
<ContextMenu Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Style="{DynamicResource CustomContextMenuStyle}">
|
||||
<MenuItem Header="Minimize" Click="MinimizeButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource MinimizeMenuItemString}" Click="MinimizeButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"/>
|
||||
<MenuItem Header="Close" Click="CloseButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource CloseMenuItemString}" Click="CloseButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"/>
|
||||
@@ -66,7 +66,7 @@
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="Settings">
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="{DynamicResource SettingsGroupBoxString}">
|
||||
<Grid Margin="5,5,5,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
@@ -78,14 +78,14 @@
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label x:Name="InputPathLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="Input Path"/>
|
||||
<Label x:Name="InputPathLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource InputPathLabelString}"/>
|
||||
<TextBox x:Name="InputPathTextBox" Grid.Row="0" Grid.Column="1" Height="22" Width="345" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
Text="{Binding InputPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding InputPathTextBoxEnabled}" />
|
||||
<Button x:Name="InputPathBrowseButton" Grid.Row="0" Grid.Column="1" Height="22" Width="50" HorizontalAlignment="Right" Content="Browse"
|
||||
<Button x:Name="InputPathBrowseButton" Grid.Row="0" Grid.Column="1" Height="22" Width="53" HorizontalAlignment="Right" Content="{DynamicResource BrowseButtonString}"
|
||||
IsEnabled="{Binding InputPathBrowseButtonEnabled}" Style="{DynamicResource CustomButtonStyle}"/>
|
||||
|
||||
<Label x:Name="SystemTypeLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="System Type" />
|
||||
<Label x:Name="SystemTypeLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource SystemLabelString}" />
|
||||
<ComboBox x:Name="SystemTypeComboBox" Grid.Row="1" Grid.Column="1" Height="22" Width="250" HorizontalAlignment="Left"
|
||||
ItemsSource="{Binding Systems}" SelectedItem="{Binding Path=CurrentSystem, Converter={StaticResource ElementConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding SystemTypeComboBoxEnabled}" Style="{DynamicResource CustomComboBoxStyle}">
|
||||
@@ -100,14 +100,14 @@
|
||||
</ComboBox.ItemContainerStyle>
|
||||
</ComboBox>
|
||||
|
||||
<Label x:Name="DumpingProgramLabel" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Content="Dumping Program"/>
|
||||
<Label x:Name="DumpingProgramLabel" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource DumpingProgramLabelString}"/>
|
||||
<ComboBox x:Name="DumpingProgramComboBox" Grid.Row="2" Grid.Column="1" Height="22" Width="250" HorizontalAlignment="Left"
|
||||
ItemsSource="{Binding InternalPrograms}" SelectedItem="{Binding Path=CurrentProgram, Converter={StaticResource ElementConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding DumpingProgramComboBoxEnabled}" Style="{DynamicResource CustomComboBoxStyle}" />
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="Status">
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="{DynamicResource StatusGroupBoxString}">
|
||||
<UniformGrid Margin="5,5,5,5" Grid.ColumnSpan="2">
|
||||
<TextBlock x:Name="StatusLabel" VerticalAlignment="Center" HorizontalAlignment="Center"
|
||||
ToolTipService.ToolTip="{Binding Status, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
@@ -126,8 +126,8 @@
|
||||
<Label>
|
||||
<Label.Content>
|
||||
<TextBlock TextWrapping="Wrap">
|
||||
<Run FontWeight="Bold" Foreground="Red" Text="WARNING:" />
|
||||
<Run Text="Check will overwrite both any existing submission information files as well as any log archives. Please make backups of those if you need to before running Check." />
|
||||
<Run FontWeight="Bold" Foreground="Red" Text="{DynamicResource WarningLabelString}" />
|
||||
<Run Text="{DynamicResource CheckDumpWarningString}" />
|
||||
</TextBlock>
|
||||
</Label.Content>
|
||||
</Label>
|
||||
@@ -145,9 +145,9 @@
|
||||
<UniformGrid Columns="4" Margin="5,5,5,5" Height="27">
|
||||
<Label/>
|
||||
<!-- Empty label for padding -->
|
||||
<Button Name="CheckDumpButton" Height="25" Width="80" IsDefault="True" Content="Check Dump"
|
||||
<Button Name="CheckDumpButton" Height="25" Width="80" IsDefault="True" Content="{DynamicResource CheckDumpButtonString}"
|
||||
IsEnabled="{Binding CheckDumpButtonEnabled}" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button Name="CancelButton" Height="25" Width="80" IsCancel="True" Content="Cancel"
|
||||
<Button Name="CancelButton" Height="25" Width="80" IsCancel="True" Content="{DynamicResource CancelButtonString}"
|
||||
IsEnabled="{Binding CancelButtonEnabled}" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Label/>
|
||||
<!-- Empty label for padding -->
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
xmlns:coreWindows="clr-namespace:MPF.UI.Windows"
|
||||
xmlns:viewModels="clr-namespace:MPF.Frontend.ViewModels;assembly=MPF.Frontend"
|
||||
mc:Ignorable="d"
|
||||
Title="Create PS3 IRD" Width="600" WindowStyle="None"
|
||||
Title="{DynamicResource CreatePS3IRDDumpMenuItemString}" Width="600" WindowStyle="None"
|
||||
WindowStartupLocation="CenterOwner" ResizeMode="CanMinimize" SizeToContent="Height"
|
||||
AllowsTransparency="True" Background="Transparent">
|
||||
|
||||
@@ -34,17 +34,17 @@
|
||||
<Image Grid.Column="0" Source="/Images/Icon.ico" Height="20" Width="20" Margin="1" MouseDown="TitleMouseDown" />
|
||||
<Label Grid.Column="1" Grid.ColumnSpan="4" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" MouseDown="TitleMouseDown">
|
||||
<Label.Content>
|
||||
<Run FontWeight="Bold" Text="Create PS3 IRD" />
|
||||
<Run FontWeight="Bold" Text="{DynamicResource CreatePS3IRDDumpMenuItemString}" />
|
||||
</Label.Content>
|
||||
<Label.ContextMenu>
|
||||
<ContextMenu Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Style="{DynamicResource CustomContextMenuStyle}">
|
||||
<MenuItem Header="Minimize" Click="MinimizeButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource MinimizeMenuItemString}" Click="MinimizeButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"/>
|
||||
<MenuItem Header="Close" Click="CloseButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource CloseMenuItemString}" Click="CloseButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"/>
|
||||
@@ -66,7 +66,7 @@
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="Input">
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="{DynamicResource InputGroupBoxString}">
|
||||
<Grid Margin="5,5,5,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
@@ -77,24 +77,24 @@
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label x:Name="InputPathLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="PS3 ISO Path"/>
|
||||
<Label x:Name="InputPathLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource PS3ISOPathLabelString}"/>
|
||||
<TextBox x:Name="InputPathTextBox" Grid.Row="0" Grid.Column="1" Height="22" Width="345" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
Text="{Binding InputPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding InputPathTextBoxEnabled}" />
|
||||
<Button x:Name="InputPathBrowseButton" Grid.Row="0" Grid.Column="1" Height="22" Width="50" HorizontalAlignment="Right" Content="Browse"
|
||||
<Button x:Name="InputPathBrowseButton" Grid.Row="0" Grid.Column="1" Height="22" Width="53" HorizontalAlignment="Right" Content="{DynamicResource BrowseButtonString}"
|
||||
IsEnabled="{Binding InputPathBrowseButtonEnabled}" Style="{DynamicResource CustomButtonStyle}"/>
|
||||
|
||||
<Label x:Name="LogPathLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="*.getkey.log File Path"/>
|
||||
<Label x:Name="LogPathLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource GetKeyPathLabelString}"/>
|
||||
<TextBox x:Name="LogPathTextBox" Grid.Row="1" Grid.Column="1" Height="22" Width="345" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
Text="{Binding LogPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding LogPathTextBoxEnabled}" />
|
||||
<Button x:Name="LogPathBrowseButton" Grid.Row="1" Grid.Column="1" Height="22" Width="50" HorizontalAlignment="Right" Content="Browse"
|
||||
<Button x:Name="LogPathBrowseButton" Grid.Row="1" Grid.Column="1" Height="22" Width="53" HorizontalAlignment="Right" Content="{DynamicResource BrowseButtonString}"
|
||||
IsEnabled="{Binding LogPathBrowseButtonEnabled}" Style="{DynamicResource CustomButtonStyle}"/>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<Expander Name="KeyExpander" BorderThickness="1" BorderBrush="#D5DFE5" Margin="5,5,5,5" HorizontalAlignment="Stretch"
|
||||
IsEnabled="{Binding LogPathNotProvided}" IsExpanded="False" Header="Manually define PS3 Disc Encryption Key">
|
||||
IsEnabled="{Binding LogPathNotProvided}" IsExpanded="False" Header="{DynamicResource KeyExpanderString}">
|
||||
<Grid Margin="5,5,5,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
@@ -106,26 +106,26 @@
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label x:Name="KeyLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="Hexadecimal Key"/>
|
||||
<Label x:Name="KeyLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource HexadecimalKeyLabelString}"/>
|
||||
<TextBox x:Name="KeyTextBox" Grid.Row="0" Grid.Column="1" Height="22" Width="345" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
Text="{Binding HexKey, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding HexKeyTextBoxEnabled}" />
|
||||
|
||||
<Label x:Name="KeyPathLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center"
|
||||
ToolTip="Typically a *.key file" Content="Key File Path"/>
|
||||
ToolTip="Typically a *.key file" Content="{DynamicResource KeyFilePathLabelString}"/>
|
||||
<TextBox x:Name="KeyPathTextBox" Grid.Row="1" Grid.Column="1" Height="22" Width="345" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
Text="{Binding KeyPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding KeyPathTextBoxEnabled}" />
|
||||
<Button x:Name="KeyPathBrowseButton" Grid.Row="1" Grid.Column="1" Height="22" Width="50" HorizontalAlignment="Right" Content="Browse"
|
||||
<Button x:Name="KeyPathBrowseButton" Grid.Row="1" Grid.Column="1" Height="22" Width="53" HorizontalAlignment="Right" Content="{DynamicResource BrowseButtonString}"
|
||||
IsEnabled="{Binding KeyPathBrowseButtonEnabled}" Style="{DynamicResource CustomButtonStyle}"/>
|
||||
|
||||
<Label x:Name="KeyStatusLabel" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Content="Key Status"/>
|
||||
<Label x:Name="KeyStatusLabel" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource KeyStatusLabelString}"/>
|
||||
<Label x:Name="KeyStatusText" Grid.Row="2" Grid.Column="1" VerticalAlignment="Center" Content="{Binding KeyStatus}"/>
|
||||
</Grid>
|
||||
</Expander>
|
||||
|
||||
<Expander Name="DiscIDExpander" BorderThickness="1" BorderBrush="#D5DFE5" Margin="5,5,5,5" HorizontalAlignment="Stretch"
|
||||
IsEnabled="{Binding LogPathNotProvided}" IsExpanded="False" Header="Manually define PS3 Disc ID">
|
||||
IsEnabled="{Binding LogPathNotProvided}" IsExpanded="False" Header="{DynamicResource DiscIDExpanderString}">
|
||||
<Grid Margin="5,5,5,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
@@ -136,18 +136,18 @@
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label x:Name="DiscIDLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="Disc ID"/>
|
||||
<Label x:Name="DiscIDLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource DiscIDLabelString}"/>
|
||||
<TextBox x:Name="DiscIDTextBox" Grid.Row="0" Grid.Column="1" Height="22" Width="345" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
Text="{Binding DiscIDString, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding DiscIDTextBoxEnabled}" />
|
||||
|
||||
<Label x:Name="DiscIDStatusLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="DiscID Status"/>
|
||||
<Label x:Name="DiscIDStatusLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource DiscIDStatusLabelString}"/>
|
||||
<Label x:Name="DiscIDStatusText" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Content="{Binding DiscIDStatus}"/>
|
||||
</Grid>
|
||||
</Expander>
|
||||
|
||||
<Expander Name="PICExpander" BorderThickness="1" BorderBrush="#D5DFE5" Margin="5,5,5,5" HorizontalAlignment="Stretch"
|
||||
IsEnabled="{Binding LogPathNotProvided}" IsExpanded="False" Header="Manually define Permanent Information & Control (PIC)">
|
||||
IsEnabled="{Binding LogPathNotProvided}" IsExpanded="False" Header="{DynamicResource PICExpanderString}">
|
||||
<Grid Margin="5,5,5,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
@@ -160,12 +160,12 @@
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label x:Name="LayerbreakLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="Layerbreak (sectors)"/>
|
||||
<Label x:Name="LayerbreakLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource LayerbreakLabelString}"/>
|
||||
<TextBox x:Name="LayerbreakTextBox" Grid.Row="0" Grid.Column="1" Height="22" Width="345" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
Text="{Binding LayerbreakString, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding LayerbreakTextBoxEnabled}" />
|
||||
|
||||
<Label x:Name="PICLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="PIC"/>
|
||||
<Label x:Name="PICLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource PICLabelString}"/>
|
||||
<TextBox x:Name="PICTextBox" Grid.Row="1" Grid.Column="1" Width="345" HorizontalAlignment="Left" VerticalContentAlignment="Top"
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||||
MinHeight="55" MaxHeight="146" AcceptsReturn="True"
|
||||
@@ -173,19 +173,19 @@
|
||||
IsEnabled="{Binding PICTextBoxEnabled}" />
|
||||
|
||||
<Label x:Name="PICPathLabel" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center"
|
||||
ToolTip="Typically a *.physical or *_PIC.bin file" Content="PIC File Path"/>
|
||||
ToolTip="Typically a *.physical or *_PIC.bin file" Content="{DynamicResource PICFilePathLabelString}"/>
|
||||
<TextBox x:Name="PICPathTextBox" Grid.Row="2" Grid.Column="1" Height="22" Width="345" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
Text="{Binding PICPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding PICPathTextBoxEnabled}" />
|
||||
<Button x:Name="PICPathBrowseButton" Grid.Row="2" Grid.Column="1" Height="22" Width="50" HorizontalAlignment="Right" Content="Browse"
|
||||
<Button x:Name="PICPathBrowseButton" Grid.Row="2" Grid.Column="1" Height="22" Width="53" HorizontalAlignment="Right" Content="{DynamicResource BrowseButtonString}"
|
||||
IsEnabled="{Binding PICPathBrowseButtonEnabled}" Style="{DynamicResource CustomButtonStyle}"/>
|
||||
|
||||
<Label x:Name="PICStatusLabel" Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" Content="PIC Status"/>
|
||||
<Label x:Name="PICStatusLabel" Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource PICStatusLabelString}"/>
|
||||
<Label x:Name="PICStatusText" Grid.Row="3" Grid.Column="1" VerticalAlignment="Center" Content="{Binding PICStatus}"/>
|
||||
</Grid>
|
||||
</Expander>
|
||||
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="Status">
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="{DynamicResource StatusGroupBoxString}">
|
||||
<UniformGrid Margin="5,5,5,5" Grid.ColumnSpan="2">
|
||||
<TextBlock x:Name="StatusLabel" VerticalAlignment="Center" HorizontalAlignment="Center"
|
||||
Text="{Binding CreateIRDStatus, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
@@ -204,9 +204,9 @@
|
||||
<UniformGrid Columns="4" Margin="5,5,5,5" Height="27">
|
||||
<Label/>
|
||||
<!-- Empty label for padding -->
|
||||
<Button Name="CreateIRDButton" Height="25" Width="80" IsDefault="True" Content="Create IRD"
|
||||
<Button Name="CreateIRDButton" Height="25" Width="80" IsDefault="True" Content="{DynamicResource CreateIRDButtonString}"
|
||||
IsEnabled="{Binding CreateIRDButtonEnabled}" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button Name="CancelButton" Height="25" Width="80" IsCancel="True" Content="Cancel"
|
||||
<Button Name="CancelButton" Height="25" Width="80" IsCancel="True" Content="{DynamicResource CancelButtonString}"
|
||||
IsEnabled="{Binding CancelButtonEnabled}" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Label/>
|
||||
<!-- Empty label for padding -->
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
xmlns:coreWindows="clr-namespace:MPF.UI.Windows"
|
||||
xmlns:viewModels="clr-namespace:MPF.Frontend.ViewModels;assembly=MPF.Frontend"
|
||||
mc:Ignorable="d"
|
||||
Title="Media Preservation Frontend" Width="600" WindowStyle="None"
|
||||
Title="{DynamicResource AppTitleString}" Width="600" WindowStyle="None"
|
||||
WindowStartupLocation="CenterScreen" ResizeMode="CanMinimize" SizeToContent="Height"
|
||||
AllowsTransparency="True" Background="Transparent">
|
||||
|
||||
@@ -28,76 +28,76 @@
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="50"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="5"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Image Grid.Column="0" Source="/Images/Icon.ico" Height="20" Width="20" Margin="1" MouseDown="TitleMouseDown" />
|
||||
<StackPanel Panel.ZIndex="1" Grid.Column="1" VerticalAlignment="Center" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}">
|
||||
<Menu x:Name="TopMenuBar" Width="Auto" Height="20"
|
||||
<StackPanel Panel.ZIndex="1" Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}">
|
||||
<Menu x:Name="TopLeftMenuBar" Width="Auto" Height="20"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}">
|
||||
<MenuItem x:Name="FileMenuItem" Header="_File"
|
||||
<MenuItem x:Name="FileMenuItem" Header="{DynamicResource FileMenuString}" Width="35"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}">
|
||||
<MenuItem x:Name="AppExitMenuItem" Header="E_xit" HorizontalAlignment="Left" Width="185"
|
||||
<MenuItem x:Name="AppExitMenuItem" Header="{DynamicResource ExitMenuItemString}" HorizontalAlignment="Left" Width="120"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}" />
|
||||
</MenuItem>
|
||||
<MenuItem x:Name="ToolsMenuItem" Header="_Tools"
|
||||
<MenuItem x:Name="ToolsMenuItem" Header="{DynamicResource ToolsMenuString}" Width="40"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}">
|
||||
<MenuItem x:Name="CheckDumpMenuItem" Header="_Check Dump" HorizontalAlignment="Left" Width="185"
|
||||
<MenuItem x:Name="CheckDumpMenuItem" Header="{DynamicResource CheckDumpMenuItemString}" HorizontalAlignment="Left" Width="120"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"
|
||||
IsEnabled="{Binding CheckDumpMenuItemEnabled}"/>
|
||||
<MenuItem x:Name="CreateIRDMenuItem" Header="_Create PS3 IRD" HorizontalAlignment="Left" Width="185"
|
||||
<MenuItem x:Name="CreateIRDMenuItem" Header="{DynamicResource CreatePS3IRDDumpMenuItemString}" HorizontalAlignment="Left" Width="120"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"
|
||||
IsEnabled="{Binding CreateIRDMenuItemEnabled}"/>
|
||||
<MenuItem x:Name="OptionsMenuItem" Header="_Options" HorizontalAlignment="Left" Width="185"
|
||||
<MenuItem x:Name="OptionsMenuItem" Header="{DynamicResource OptionsDumpMenuItemString}" HorizontalAlignment="Left" Width="120"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"
|
||||
IsEnabled="{Binding OptionsMenuItemEnabled}"/>
|
||||
<MenuItem x:Name="DebugViewMenuItem" Header="_Debug Info Window" HorizontalAlignment="Left" Width="185"
|
||||
<MenuItem x:Name="DebugViewMenuItem" Header="{DynamicResource DebugInfoWindowMenuItemString}" HorizontalAlignment="Left" Width="120"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}" Visibility="Collapsed" />
|
||||
</MenuItem>
|
||||
<MenuItem x:Name="HelpMenuItem" Header="_Help"
|
||||
<MenuItem x:Name="HelpMenuItem" Header="{DynamicResource HelpMenuString}" Width="45"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}">
|
||||
<MenuItem x:Name="AboutMenuItem" Header="_About" HorizontalAlignment="Left" Width="185"
|
||||
<MenuItem x:Name="AboutMenuItem" Header="{DynamicResource AboutMenuItemString}" HorizontalAlignment="Left" Width="120"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}" />
|
||||
<MenuItem x:Name="CheckForUpdatesMenuItem" Header="_Check for Updates" HorizontalAlignment="Left" Width="185"
|
||||
<MenuItem x:Name="CheckForUpdatesMenuItem" Header="{DynamicResource CheckForUpdateMenuItemString}" HorizontalAlignment="Left" Width="120"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}" />
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</StackPanel>
|
||||
<Label Panel.ZIndex="0" Grid.Column="1" Grid.ColumnSpan="4" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" MouseDown="TitleMouseDown">
|
||||
<Label Panel.ZIndex="0" Grid.Column="1" Grid.ColumnSpan="5" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" MouseDown="TitleMouseDown">
|
||||
<Label.Content>
|
||||
<TextBlock TextAlignment="Center"><Run FontWeight="Bold" Text="Media Preservation Frontend" /></TextBlock>
|
||||
<TextBlock TextAlignment="Center"><Run FontWeight="Bold" Text="{DynamicResource AppTitleString}" /></TextBlock>
|
||||
</Label.Content>
|
||||
<Label.ContextMenu>
|
||||
<ContextMenu Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Style="{DynamicResource CustomContextMenuStyle}">
|
||||
<MenuItem Header="Minimize" Click="MinimizeButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource MinimizeMenuItemString}" Click="MinimizeButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"/>
|
||||
<MenuItem Header="Close" Click="CloseButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource CloseMenuItemString}" Click="CloseButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"/>
|
||||
@@ -106,20 +106,39 @@
|
||||
</Label>
|
||||
<Grid Grid.Column="5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="50"/>
|
||||
<ColumnDefinition Width="25"/>
|
||||
<ColumnDefinition Width="25"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button x:Name="MinimizeButton" Grid.Column="0" BorderThickness="0" Background="Transparent" Style="{DynamicResource CustomButtonStyle}" Click="MinimizeButtonClick">
|
||||
<Menu x:Name="TopRightMenuBar" Width="Auto" Height="20"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}">
|
||||
<MenuItem x:Name="LanguagesMenuItem" Grid.Column="0" Header="{DynamicResource LanguageMenuString}"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}">
|
||||
<MenuItem x:Name="EnglishMenuItem" Header="English" HorizontalAlignment="Left" Width="120" IsCheckable="True"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}" />
|
||||
<MenuItem x:Name="KoreanMenuItem" Header="한국어" HorizontalAlignment="Left" Width="120" IsCheckable="True"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}" />
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
|
||||
<Button x:Name="MinimizeButton" Grid.Column="1" BorderThickness="0" Background="Transparent" Style="{DynamicResource CustomButtonStyle}" Click="MinimizeButtonClick">
|
||||
<Path Data="M 0,0 L 10,0" Stroke="{Binding Path=Foreground,RelativeSource={RelativeSource AncestorType={x:Type Button}}}" StrokeThickness="1"/>
|
||||
</Button>
|
||||
<Button x:Name="CloseButton" Grid.Column="1" BorderThickness="0" Background="Transparent" Style="{DynamicResource CustomButtonStyle}" Click="CloseButtonClick">
|
||||
<Button x:Name="CloseButton" Grid.Column="2" BorderThickness="0" Background="Transparent" Style="{DynamicResource CustomButtonStyle}" Click="CloseButtonClick">
|
||||
<Path Data="M 0,0 L 12,12 M 0,12 L 12,0" Stroke="{Binding Path=Foreground,RelativeSource={RelativeSource AncestorType={x:Type Button}}}" StrokeThickness="1"/>
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="Settings">
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="{DynamicResource SettingsGroupBoxString}">
|
||||
<Grid Margin="5,5,5,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
@@ -134,7 +153,7 @@
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label x:Name="SystemMediaTypeLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="System" />
|
||||
<Label x:Name="SystemMediaTypeLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource SystemLabelString}"/>
|
||||
<ComboBox x:Name="SystemTypeComboBox" Grid.Row="0" Grid.Column="1" Height="22" Width="250" HorizontalAlignment="Left"
|
||||
ItemsSource="{Binding Systems}" SelectedItem="{Binding Path=CurrentSystem, Converter={StaticResource ElementConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding SystemTypeComboBoxEnabled}" Style="{DynamicResource CustomComboBoxStyle}">
|
||||
@@ -153,14 +172,14 @@
|
||||
IsEnabled="{Binding MediaTypeComboBoxEnabled}" Style="{DynamicResource CustomComboBoxStyle}"
|
||||
Visibility="Hidden" />
|
||||
|
||||
<Label x:Name="OutputPathLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="Output Path"/>
|
||||
<TextBox x:Name="OutputPathTextBox" Grid.Row="1" Grid.Column="1" Height="22" Width="345" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
<Label x:Name="OutputPathLabel" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource OutputPathLabelString}"/>
|
||||
<TextBox x:Name="OutputPathTextBox" Grid.Row="1" Grid.Column="1" Height="22" Width="342" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
Text="{Binding OutputPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding OutputPathTextBoxEnabled}" />
|
||||
<Button x:Name="OutputPathBrowseButton" Grid.Row="1" Grid.Column="1" Height="22" Width="50" HorizontalAlignment="Right" Content="Browse"
|
||||
<Button x:Name="OutputPathBrowseButton" Grid.Row="1" Grid.Column="1" Height="22" Width="53" HorizontalAlignment="Right" Content="{DynamicResource BrowseButtonString}"
|
||||
IsEnabled="{Binding OutputPathBrowseButtonEnabled}" Style="{DynamicResource CustomButtonStyle}"/>
|
||||
|
||||
<Label x:Name="DriveLetterLabel" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Content="Drive Letter"/>
|
||||
<Label x:Name="DriveLetterLabel" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource DriveLetterLabelString}"/>
|
||||
<ComboBox x:Name="DriveLetterComboBox" Grid.Row="2" Grid.Column="1" Height="22" Width="60" HorizontalAlignment="Left"
|
||||
ItemsSource="{Binding Drives}" SelectedItem="{Binding Path=CurrentDrive, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding DriveLetterComboBoxEnabled}" Style="{DynamicResource CustomComboBoxStyle}">
|
||||
@@ -171,17 +190,17 @@
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
|
||||
<Label x:Name="DriveSpeedLabel" Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" Content="Drive Speed"/>
|
||||
<Label x:Name="DriveSpeedLabel" Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource DriveSpeedLabelString}"/>
|
||||
<ComboBox x:Name="DriveSpeedComboBox" Grid.Row="3" Grid.Column="1" Height="22" Width="60" HorizontalAlignment="Left"
|
||||
ItemsSource="{Binding DriveSpeeds}" SelectedItem="{Binding Path=DriveSpeed, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding DriveSpeedComboBoxEnabled}" Style="{DynamicResource CustomComboBoxStyle}" />
|
||||
|
||||
<Label x:Name="DumpingProgramLabel" Grid.Row="4" Grid.Column="0" VerticalAlignment="Center" Content="Dumping Program"/>
|
||||
<Label x:Name="DumpingProgramLabel" Grid.Row="4" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource DumpingProgramLabelString}"/>
|
||||
<ComboBox x:Name="DumpingProgramComboBox" Grid.Row="4" Grid.Column="1" Height="22" Width="250" HorizontalAlignment="Left"
|
||||
ItemsSource="{Binding InternalPrograms}" SelectedItem="{Binding Path=CurrentProgram, Converter={StaticResource ElementConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding DumpingProgramComboBoxEnabled}" Style="{DynamicResource CustomComboBoxStyle}" />
|
||||
|
||||
<Label x:Name="ParametersLabel" Grid.Row="5" Grid.Column="0" VerticalAlignment="Center" Content="Parameters"/>
|
||||
<Label x:Name="ParametersLabel" Grid.Row="5" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource ParametersLabelString}"/>
|
||||
<TextBox x:Name="ParametersTextBox" Grid.Row="5" Grid.Column="1" Height="22" Width="370" HorizontalAlignment="Left" VerticalContentAlignment="Center"
|
||||
Text="{Binding Parameters, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding ParametersTextBoxEnabled}"/>
|
||||
@@ -191,28 +210,28 @@
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="Controls">
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="{DynamicResource ControlsGroupBoxString}">
|
||||
<UniformGrid Columns="4" Margin="5,5,5,5">
|
||||
<Button x:Name="StartStopButton" Height="22" Width="125" VerticalAlignment="Center" HorizontalAlignment="Center" IsDefault="True"
|
||||
Content="{Binding StartStopButtonText, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding StartStopButtonEnabled}" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button x:Name="MediaScanButton" Height="22" Width="125" VerticalAlignment="Center" HorizontalAlignment="Center" Content="Scan for Discs"
|
||||
<Button x:Name="MediaScanButton" Height="22" Width="125" VerticalAlignment="Center" HorizontalAlignment="Center" Content="{DynamicResource ScanButtonString}"
|
||||
IsEnabled="{Binding MediaScanButtonEnabled}" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button x:Name="UpdateVolumeLabel" Height="22" Width="125" VerticalAlignment="Center" HorizontalAlignment="Center" Content="Update Label"
|
||||
<Button x:Name="UpdateVolumeLabel" Height="22" Width="125" VerticalAlignment="Center" HorizontalAlignment="Center" Content="{DynamicResource UpdateLabelButtonString}"
|
||||
IsEnabled="{Binding UpdateVolumeLabelEnabled}" Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button x:Name="CopyProtectScanButton" Height="22" Width="125" VerticalAlignment="Center" HorizontalAlignment="Center" Content="Scan for Protection"
|
||||
<Button x:Name="CopyProtectScanButton" Height="22" Width="125" VerticalAlignment="Center" HorizontalAlignment="Center" Content="{DynamicResource ProtectionScanButtonString}"
|
||||
IsEnabled="{Binding CopyProtectScanButtonEnabled}" Style="{DynamicResource CustomButtonStyle}" />
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="Status">
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" Header="{DynamicResource StatusGroupBoxString}">
|
||||
<UniformGrid Margin="5,5,5,5" Grid.ColumnSpan="2">
|
||||
<TextBlock x:Name="StatusLabel" VerticalAlignment="Center" HorizontalAlignment="Center"
|
||||
Text="{Binding Status, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
|
||||
<Expander Margin="5,5 5 5" MaxHeight="300" HorizontalAlignment="Stretch" Header="Log Output" x:Name="LogPanel"
|
||||
<Expander Margin="5,5,5,5" MaxHeight="300" HorizontalAlignment="Stretch" Header="{DynamicResource LogOutputExpanderString}" x:Name="LogPanel"
|
||||
IsExpanded="{Binding LogPanelExpanded}">
|
||||
<controls:LogOutput x:Name="LogOutput"/>
|
||||
</Expander>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
#if NET40
|
||||
@@ -7,6 +8,7 @@ using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using MPF.Frontend;
|
||||
using MPF.Frontend.Tools;
|
||||
using MPF.Frontend.ViewModels;
|
||||
using MPF.UI.Themes;
|
||||
using MPF.UI.UserControls;
|
||||
@@ -28,6 +30,7 @@ namespace MPF.UI.Windows
|
||||
|
||||
#region Top Menu Bar
|
||||
|
||||
// Buttons
|
||||
private MenuItem? AboutMenuItem => ItemHelper.FindChild<MenuItem>(this, "AboutMenuItem");
|
||||
private MenuItem? AppExitMenuItem => ItemHelper.FindChild<MenuItem>(this, "AppExitMenuItem");
|
||||
private MenuItem? CheckForUpdatesMenuItem => ItemHelper.FindChild<MenuItem>(this, "CheckForUpdatesMenuItem");
|
||||
@@ -36,6 +39,10 @@ namespace MPF.UI.Windows
|
||||
private MenuItem? CreateIRDMenuItem => ItemHelper.FindChild<MenuItem>(this, "CreateIRDMenuItem");
|
||||
private MenuItem? OptionsMenuItem => ItemHelper.FindChild<MenuItem>(this, "OptionsMenuItem");
|
||||
|
||||
// Languages
|
||||
private MenuItem? EnglishMenuItem => ItemHelper.FindChild<MenuItem>(this, "EnglishMenuItem");
|
||||
private MenuItem? KoreanMenuItem => ItemHelper.FindChild<MenuItem>(this, "KoreanMenuItem");
|
||||
|
||||
#endregion
|
||||
|
||||
#region Settings
|
||||
@@ -87,6 +94,24 @@ namespace MPF.UI.Windows
|
||||
};
|
||||
System.Windows.Shell.WindowChrome.SetWindowChrome(this, chrome);
|
||||
#endif
|
||||
|
||||
// Set default language
|
||||
var dictionary = new ResourceDictionary();
|
||||
switch (MainViewModel.Options.DefaultUILanguage)
|
||||
{
|
||||
case "ENG":
|
||||
// Change UI language to English
|
||||
dictionary.Source = new Uri("../Resources/Strings.xaml", UriKind.Relative);
|
||||
break;
|
||||
case "한국어":
|
||||
// Change UI language to Korean
|
||||
dictionary.Source = new Uri("../Resources/Strings.ko.xaml", UriKind.Relative);
|
||||
break;
|
||||
default:
|
||||
dictionary.Source = new Uri("../Resources/Strings.xaml", UriKind.Relative);
|
||||
break;
|
||||
}
|
||||
Application.Current.Resources.MergedDictionaries.Add(dictionary);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -110,6 +135,12 @@ namespace MPF.UI.Windows
|
||||
DebugViewMenuItem!.Visibility = Visibility.Visible;
|
||||
|
||||
MainViewModel.Init(LogOutput!.EnqueueLog, DisplayUserMessage, ShowMediaInformationWindow);
|
||||
|
||||
// Pass translation strings to MainViewModel
|
||||
var translationStrings = new Dictionary<string, string>();
|
||||
translationStrings["StartDumpingButtonString"] = (string)Application.Current.FindResource("StartDumpingButtonString");
|
||||
translationStrings["StopDumpingButtonString"] = (string)Application.Current.FindResource("StopDumpingButtonString");
|
||||
MainViewModel.TranslateStrings(translationStrings);
|
||||
|
||||
// Set the UI color scheme according to the options
|
||||
ApplyTheme();
|
||||
@@ -125,7 +156,7 @@ namespace MPF.UI.Windows
|
||||
if (MainViewModel.Options.FirstRun)
|
||||
{
|
||||
// Show the options window
|
||||
ShowOptionsWindow("Welcome to MPF, Explore the Options");
|
||||
ShowOptionsWindow((string)Application.Current.FindResource("OptionsFirstRunTitleString"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,6 +175,8 @@ namespace MPF.UI.Windows
|
||||
CheckDumpMenuItem!.Click += CheckDumpMenuItemClick;
|
||||
CreateIRDMenuItem!.Click += CreateIRDMenuItemClick;
|
||||
OptionsMenuItem!.Click += OptionsMenuItemClick;
|
||||
EnglishMenuItem!.Click += LanguageMenuItemClick;
|
||||
KoreanMenuItem!.Click += LanguageMenuItemClick;
|
||||
|
||||
// User Area Click
|
||||
CopyProtectScanButton!.Click += CopyProtectScanButtonClick;
|
||||
@@ -219,7 +252,7 @@ namespace MPF.UI.Windows
|
||||
}
|
||||
|
||||
if (showIfSame || different)
|
||||
CustomMessageBox.Show(this, message, "Version Update Check", MessageBoxButton.OK, different ? MessageBoxImage.Exclamation : MessageBoxImage.Information);
|
||||
CustomMessageBox.Show(this, message, (string)Application.Current.FindResource("CheckForUpdatesTitleString"), MessageBoxButton.OK, different ? MessageBoxImage.Exclamation : MessageBoxImage.Information);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -338,7 +371,7 @@ namespace MPF.UI.Windows
|
||||
Owner = this,
|
||||
ShowActivated = true,
|
||||
ShowInTaskbar = true,
|
||||
Title = title ?? "Options",
|
||||
Title = title ?? (string)Application.Current.FindResource("OptionsTitleString"),
|
||||
WindowStartupLocation = WindowStartupLocation.CenterOwner,
|
||||
};
|
||||
|
||||
@@ -355,7 +388,7 @@ namespace MPF.UI.Windows
|
||||
// Only DiscImageCreator uses the media type box
|
||||
if (MainViewModel.CurrentProgram != InternalProgram.DiscImageCreator)
|
||||
{
|
||||
SystemMediaTypeLabel!.Content = "System";
|
||||
SystemMediaTypeLabel!.Content = (string)Application.Current.FindResource("SystemLabelString");
|
||||
MediaTypeComboBox!.Visibility = Visibility.Hidden;
|
||||
return;
|
||||
}
|
||||
@@ -363,7 +396,7 @@ namespace MPF.UI.Windows
|
||||
// If there are no media types defined
|
||||
if (MainViewModel.MediaTypes == null)
|
||||
{
|
||||
SystemMediaTypeLabel!.Content = "System";
|
||||
SystemMediaTypeLabel!.Content = (string)Application.Current.FindResource("SystemLabelString");
|
||||
MediaTypeComboBox!.Visibility = Visibility.Hidden;
|
||||
return;
|
||||
}
|
||||
@@ -371,8 +404,8 @@ namespace MPF.UI.Windows
|
||||
// Only systems with more than one media type should show the box
|
||||
bool visible = MainViewModel.MediaTypes.Count > 1;
|
||||
SystemMediaTypeLabel!.Content = visible
|
||||
? "System/Media Type"
|
||||
: "System";
|
||||
? (string)Application.Current.FindResource("SystemMediaTypeLabelString")
|
||||
: (string)Application.Current.FindResource("SystemLabelString");
|
||||
MediaTypeComboBox!.Visibility = visible
|
||||
? Visibility.Visible
|
||||
: Visibility.Hidden;
|
||||
@@ -445,6 +478,25 @@ namespace MPF.UI.Windows
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Build the about text
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string CreateAboutText()
|
||||
{
|
||||
string aboutText = $"{(string)Application.Current.FindResource("AppTitleFullString")}"
|
||||
+ $"{Environment.NewLine}"
|
||||
+ $"{Environment.NewLine}{(string)Application.Current.FindResource("AboutLine1String")}"
|
||||
+ $"{Environment.NewLine}{(string)Application.Current.FindResource("AboutLine2String")}"
|
||||
+ $"{Environment.NewLine}{(string)Application.Current.FindResource("AboutLine3String")}"
|
||||
+ $"{Environment.NewLine}"
|
||||
+ $"{Environment.NewLine}{(string)Application.Current.FindResource("AboutThanksString")}"
|
||||
+ $"{Environment.NewLine}"
|
||||
+ $"{Environment.NewLine}{(string)Application.Current.FindResource("VersionLabelString")} {FrontendTool.GetCurrentVersion()}";
|
||||
MainViewModel.LogAboutText(aboutText);
|
||||
return aboutText;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Event Handlers
|
||||
@@ -484,8 +536,8 @@ namespace MPF.UI.Windows
|
||||
/// </summary>
|
||||
public void AboutClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
string aboutText = MainViewModel.CreateAboutText();
|
||||
CustomMessageBox.Show(this, aboutText, "About", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
string aboutText = CreateAboutText();
|
||||
CustomMessageBox.Show(this, aboutText, (string)Application.Current.FindResource("AboutTitleString"), MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -524,6 +576,57 @@ namespace MPF.UI.Windows
|
||||
public void OptionsMenuItemClick(object sender, RoutedEventArgs e) =>
|
||||
ShowOptionsWindow();
|
||||
|
||||
/// <summary>
|
||||
/// Change UI language
|
||||
/// </summary>
|
||||
private void LanguageMenuItemClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var clickedItem = (MenuItem)sender;
|
||||
// Don't do anything if language is already checked and being unchecked
|
||||
if (!clickedItem.IsChecked)
|
||||
{
|
||||
clickedItem.IsChecked = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// Uncheck every item not checked
|
||||
var languageMenu = (MenuItem)clickedItem.Parent;
|
||||
foreach (var item in languageMenu.Items)
|
||||
{
|
||||
if (item is MenuItem menuItem && menuItem != clickedItem)
|
||||
menuItem.IsChecked = false;
|
||||
}
|
||||
|
||||
// Change UI language to selected item
|
||||
string lang = clickedItem.Header.ToString() ?? "";
|
||||
var dictionary = new ResourceDictionary();
|
||||
switch (lang)
|
||||
{
|
||||
case "ENG":
|
||||
// Change UI language to English
|
||||
dictionary.Source = new Uri("../Resources/Strings.xaml", UriKind.Relative);
|
||||
break;
|
||||
case "한국어":
|
||||
// Change UI language to Korean
|
||||
dictionary.Source = new Uri("../Resources/Strings.ko.xaml", UriKind.Relative);
|
||||
break;
|
||||
default:
|
||||
dictionary.Source = new Uri("../Resources/Strings.xaml", UriKind.Relative);
|
||||
break;
|
||||
}
|
||||
Application.Current.Resources.MergedDictionaries.Add(dictionary);
|
||||
|
||||
// Update the labels that don't get updated automatically
|
||||
SetMediaTypeVisibility();
|
||||
|
||||
// Update the labels in MainViewModel
|
||||
var translationStrings = new Dictionary<string, string>();
|
||||
translationStrings["StartDumpingButtonString"] = (string)Application.Current.FindResource("StartDumpingButtonString");
|
||||
translationStrings["StopDumpingButtonString"] = (string)Application.Current.FindResource("StopDumpingButtonString");
|
||||
translationStrings["NoSystemSelectedString"] = (string)Application.Current.FindResource("NoSystemSelectedString");
|
||||
MainViewModel.TranslateStrings(translationStrings);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region User Area
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
xmlns:redump="clr-namespace:SabreTools.RedumpLib.Data;assembly=SabreTools.RedumpLib"
|
||||
xmlns:coreWindows="clr-namespace:MPF.UI.Windows"
|
||||
mc:Ignorable="d"
|
||||
Title="Media Information" Width="600" WindowStyle="None"
|
||||
Title="{DynamicResource MediaInformationTitleString}" Width="600" WindowStyle="None"
|
||||
WindowStartupLocation="CenterOwner" ResizeMode="CanMinimize" SizeToContent="Height"
|
||||
AllowsTransparency="True" Background="Transparent">
|
||||
|
||||
@@ -32,18 +32,18 @@
|
||||
<Image Grid.Column="0" Source="/Images/Icon.ico" Height="20" Width="20" Margin="1" MouseDown="TitleMouseDown" />
|
||||
<Label Grid.Column="1" Grid.ColumnSpan="4" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" MouseDown="TitleMouseDown">
|
||||
<Label.Content>
|
||||
<Run FontWeight="Bold" Text="Media Information" />
|
||||
<Run FontWeight="Bold" Text="{DynamicResource MediaInformationTitleString}" />
|
||||
</Label.Content>
|
||||
<Label.ContextMenu>
|
||||
<ContextMenu Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Style="{DynamicResource CustomContextMenuStyle}">
|
||||
<MenuItem Header="Minimize" Click="MinimizeButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource MinimizeMenuItemString}" Click="MinimizeButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
BorderBrush="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"/>
|
||||
<MenuItem Header="Close" Click="CloseButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource CloseMenuItemString}" Click="CloseButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
BorderBrush="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
@@ -96,7 +96,7 @@
|
||||
<ColumnDefinition Width="1.75*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label x:Name="CategoryLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Right" Content="Category" />
|
||||
<Label x:Name="CategoryLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{DynamicResource CategoryLabelString}" />
|
||||
<ComboBox x:Name="CategoryComboBox" Grid.Row="0" Grid.Column="1" Height="22" HorizontalAlignment="Stretch"
|
||||
ItemsSource="{Binding Categories}" SelectedItem="{Binding SubmissionInfo.CommonDiscInfo.Category, Converter={StaticResource ElementConverter}, Mode=TwoWay}"
|
||||
Style="{DynamicResource CustomComboBoxStyle}" />
|
||||
@@ -108,7 +108,7 @@
|
||||
<ColumnDefinition Width="1.75*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label x:Name="RegionLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Right" Content="Region" />
|
||||
<Label x:Name="RegionLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{DynamicResource RegionLabelString}" />
|
||||
<ComboBox x:Name="RegionComboBox" Grid.Row="0" Grid.Column="1" Height="22" HorizontalAlignment="Stretch"
|
||||
ItemsSource="{Binding Regions}" SelectedItem="{Binding SubmissionInfo.CommonDiscInfo.Region, Converter={StaticResource ElementConverter}, Mode=TwoWay}"
|
||||
Style="{DynamicResource CustomComboBoxStyle}" />
|
||||
@@ -120,7 +120,7 @@
|
||||
<ColumnDefinition Width="1.75*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label x:Name="LanguagesLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Right" Content="Languages" />
|
||||
<Label x:Name="LanguagesLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{DynamicResource LanguagesLabelString}" />
|
||||
<ComboBox x:Name="LanguagesComboBox" Grid.Row="0" Grid.Column="1" Height="24" HorizontalAlignment="Stretch"
|
||||
ItemsSource="{Binding Languages}"
|
||||
SelectedIndex="0" Style="{DynamicResource CustomComboBoxStyle}">
|
||||
@@ -138,7 +138,7 @@
|
||||
<ColumnDefinition Width="1.75*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label x:Name="LanguageSelectionLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Right" Content="Language Selection Via" />
|
||||
<Label x:Name="LanguageSelectionLabel" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{DynamicResource LanguageSelectionViaLabelString}" />
|
||||
<ComboBox x:Name="LanguageSelectionComboBox" Grid.Row="0" Grid.Column="1" Height="24" HorizontalAlignment="Stretch"
|
||||
ItemsSource="{Binding LanguageSelections}"
|
||||
SelectedIndex="0" Style="{DynamicResource CustomComboBoxStyle}">
|
||||
@@ -181,7 +181,7 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label/>
|
||||
<CheckBox Grid.Column="1" x:Name="PCMacHybridCheckBox" Content="PC/Mac Hybrid" Margin="0,4"
|
||||
<CheckBox Grid.Column="1" x:Name="PCMacHybridCheckBox" Content="{DynamicResource PCMacHybridLabelString}" Margin="0,4"
|
||||
IsChecked="{Binding Path=SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[(redump:SiteCode)PCMacHybrid], Mode=TwoWay}"/>
|
||||
</Grid>
|
||||
<controls:UserInput x:Name="CommentsTextBox" Label="Comments"
|
||||
@@ -518,11 +518,11 @@
|
||||
</ControlTemplate>
|
||||
</GroupBox.Template>
|
||||
<UniformGrid Columns="3" Margin="5,5,5,5" Height="28">
|
||||
<Button Name="AcceptButton" Height="25" Width="80" Content="Accept"
|
||||
<Button Name="AcceptButton" Height="25" Width="80" Content="{DynamicResource AcceptButtonString}"
|
||||
Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button Name="CancelButton" Height="25" Width="80" Content="Cancel"
|
||||
<Button Name="CancelButton" Height="25" Width="80" Content="{DynamicResource CancelButtonString}"
|
||||
Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button Name="RingCodeGuideButton" Grid.Column="2" Height="25" Width="120" Content="Ring Code Guide"
|
||||
<Button Name="RingCodeGuideButton" Grid.Column="2" Height="25" Width="120" Content="{DynamicResource RingCodeGuideButtonString}"
|
||||
Style="{DynamicResource CustomButtonStyle}" />
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
|
||||
@@ -38,11 +38,11 @@
|
||||
<ContextMenu Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Style="{DynamicResource CustomContextMenuStyle}">
|
||||
<MenuItem Header="Minimize" Click="MinimizeButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource MinimizeMenuItemString}" Click="MinimizeButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"/>
|
||||
<MenuItem Header="Close" Click="CloseButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource CloseMenuItemString}" Click="CloseButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"/>
|
||||
@@ -71,7 +71,7 @@
|
||||
<TabItem Header="General" Style="{DynamicResource CustomTabItemStyle}">
|
||||
<StackPanel>
|
||||
<GroupBox Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Header="User Interface">
|
||||
<UniformGrid Columns="2" Rows="2">
|
||||
<UniformGrid Columns="2" Rows="3">
|
||||
<CheckBox VerticalAlignment="Center" Content="Enable Dark Mode"
|
||||
IsChecked="{Binding Options.EnableDarkMode}"
|
||||
ToolTip="(Experimental) Enable dark mode across the entire application" Margin="0,4"
|
||||
@@ -91,6 +91,21 @@
|
||||
IsChecked="{Binding Options.FastUpdateLabel}"
|
||||
ToolTip="Bypasses disc checks to quickly update the output path. Use with caution!" Margin="0,4"
|
||||
/>
|
||||
|
||||
<Label VerticalAlignment="Center" Content="Default UI Language:" HorizontalAlignment="Right" />
|
||||
<ComboBox x:Name="DefaultUILanguageComboBox" Height="22" Width="200" HorizontalAlignment="Left"
|
||||
ItemsSource="{Binding UILanguages}" SelectedItem="{Binding Options.DefaultUILanguage, Converter={StaticResource ElementConverter}, Mode=TwoWay}"
|
||||
SelectedIndex="0" Style="{DynamicResource CustomComboBoxStyle}">
|
||||
<ComboBox.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type ComboBoxItem}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding IsHeader}" Value="True">
|
||||
<Setter Property="IsEnabled" Value="False"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</ComboBox.ItemContainerStyle>
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
|
||||
@@ -493,8 +508,8 @@
|
||||
<Label>
|
||||
<Label.Content>
|
||||
<TextBlock TextWrapping="Wrap">
|
||||
<Run FontWeight="Bold" Foreground="Red" Text="WARNING:" />
|
||||
<Run Text="If you choose to enable validation and information retrieval, you are responsible for ensuring that all data populated matches your actual media. Some information may be marked to check for validity as a reminder, but all information should be subject to the same scrutiny." />
|
||||
<Run FontWeight="Bold" Foreground="Red" Text="{DynamicResource WarningLabelString}" />
|
||||
<Run Text="{DynamicResource OptionsRetrievalWarningString}" />
|
||||
</TextBlock>
|
||||
</Label.Content>
|
||||
</Label>
|
||||
@@ -513,9 +528,9 @@
|
||||
</GroupBox.Template>
|
||||
<UniformGrid Columns="4" Margin="5,5,5,5" Height="27">
|
||||
<Label/> <!-- Empty label for padding -->
|
||||
<Button Name="AcceptButton" Height="25" Width="80" IsDefault="True" Content="Accept"
|
||||
<Button Name="AcceptButton" Height="25" Width="80" IsDefault="True" Content="{DynamicResource AcceptButtonString}"
|
||||
Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Button Name="CancelButton" Height="25" Width="80" IsCancel="True" Content="Cancel"
|
||||
<Button Name="CancelButton" Height="25" Width="80" IsCancel="True" Content="{DynamicResource CancelButtonString}"
|
||||
Style="{DynamicResource CustomButtonStyle}" />
|
||||
<Label/> <!-- Empty label for padding -->
|
||||
</UniformGrid>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
xmlns:controls="clr-namespace:MPF.UI.UserControls"
|
||||
xmlns:coreWindows="clr-namespace:MPF.UI.Windows"
|
||||
mc:Ignorable="d"
|
||||
Title="Ring Code Guide" Width="500" WindowStyle="None"
|
||||
Title="{DynamicResource RingCodeGuideTitleString}" Width="500" WindowStyle="None"
|
||||
WindowStartupLocation="CenterOwner" ResizeMode="CanMinimize" SizeToContent="Height"
|
||||
AllowsTransparency="True" Background="Transparent">
|
||||
|
||||
@@ -26,18 +26,18 @@
|
||||
<Image Grid.Column="0" Source="/Images/Icon.ico" Height="20" Width="20" Margin="1" MouseDown="TitleMouseDown" />
|
||||
<Label Grid.Column="1" Grid.ColumnSpan="4" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" MouseDown="TitleMouseDown">
|
||||
<Label.Content>
|
||||
<Run FontWeight="Bold" BaselineAlignment="Center" Text="Ring Code Guide" />
|
||||
<Run FontWeight="Bold" BaselineAlignment="Center" Text="{DynamicResource RingCodeGuideTitleString}" />
|
||||
</Label.Content>
|
||||
<Label.ContextMenu>
|
||||
<ContextMenu Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
Style="{DynamicResource CustomContextMenuStyle}">
|
||||
<MenuItem Header="Minimize" Click="MinimizeButtonClick" Width="185"
|
||||
<MenuItem Header="Min{DynamicResource MinimizeMenuItemString}imize" Click="MinimizeButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
BorderBrush="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Template="{DynamicResource CustomMenuItemTemplate}"/>
|
||||
<MenuItem Header="Close" Click="CloseButtonClick" Width="185"
|
||||
<MenuItem Header="{DynamicResource CloseMenuItemString}" Click="CloseButtonClick" Width="185"
|
||||
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"
|
||||
BorderBrush="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
|
||||
|
||||
Reference in New Issue
Block a user