Compare commits
3 Commits
Canary-1.2
...
Canary-1.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
479b38f035 | ||
|
|
3ecc7819cc | ||
|
|
4b1d94ccd8 |
@@ -1673,7 +1673,132 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ID": "GameListHeaderPath",
|
"ID": "GameListSortDeveloper",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "المطور",
|
||||||
|
"de_DE": "Entwickler",
|
||||||
|
"el_GR": "Προγραμματιστής",
|
||||||
|
"en_US": "Developer",
|
||||||
|
"es_ES": "Desarrollador",
|
||||||
|
"fr_FR": "Développeur",
|
||||||
|
"he_IL": "מפתח",
|
||||||
|
"it_IT": "Sviluppatore",
|
||||||
|
"ja_JP": "開発元",
|
||||||
|
"ko_KR": "개발자",
|
||||||
|
"no_NO": "Utvikler",
|
||||||
|
"pl_PL": "Twórca",
|
||||||
|
"pt_BR": "Desenvolvedor",
|
||||||
|
"ru_RU": "Разработчик",
|
||||||
|
"sv_SE": "Utvecklare",
|
||||||
|
"th_TH": "ผู้พัฒนา",
|
||||||
|
"tr_TR": "Geliştirici",
|
||||||
|
"uk_UA": "Розробник",
|
||||||
|
"zh_CN": "制作商",
|
||||||
|
"zh_TW": "開發者"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "GameListSortTimePlayed",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "وقت اللعب",
|
||||||
|
"de_DE": "Spielzeit",
|
||||||
|
"el_GR": "Χρόνος",
|
||||||
|
"en_US": "Play Time",
|
||||||
|
"es_ES": "Tiempo jugado",
|
||||||
|
"fr_FR": "Temps de jeu",
|
||||||
|
"he_IL": "זמן משחק",
|
||||||
|
"it_IT": "Tempo di gioco",
|
||||||
|
"ja_JP": "プレイ時間",
|
||||||
|
"ko_KR": "플레이 타임",
|
||||||
|
"no_NO": "Spilletid",
|
||||||
|
"pl_PL": "Czas w grze:",
|
||||||
|
"pt_BR": "Tempo de jogo",
|
||||||
|
"ru_RU": "Время в игре",
|
||||||
|
"sv_SE": "Speltid",
|
||||||
|
"th_TH": "เล่นไปแล้ว",
|
||||||
|
"tr_TR": "Oynama Süresi",
|
||||||
|
"uk_UA": "Зіграно часу",
|
||||||
|
"zh_CN": "游玩时长",
|
||||||
|
"zh_TW": "遊玩時數"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "GameListSortLastPlayed",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "آخر مرة لُعبت",
|
||||||
|
"de_DE": "Zuletzt gespielt",
|
||||||
|
"el_GR": "Παίχτηκε",
|
||||||
|
"en_US": "Last Played",
|
||||||
|
"es_ES": "Jugado por última vez",
|
||||||
|
"fr_FR": "Dernière partie jouée",
|
||||||
|
"he_IL": "שוחק לאחרונה",
|
||||||
|
"it_IT": "Ultima partita",
|
||||||
|
"ja_JP": "最終プレイ日時",
|
||||||
|
"ko_KR": "마지막 플레이",
|
||||||
|
"no_NO": "Sist Spilt",
|
||||||
|
"pl_PL": "Ostatnio grane",
|
||||||
|
"pt_BR": "Último jogo",
|
||||||
|
"ru_RU": "Последний запуск",
|
||||||
|
"sv_SE": "Senast spelad",
|
||||||
|
"th_TH": "เล่นล่าสุด",
|
||||||
|
"tr_TR": "Son Oynama Tarihi",
|
||||||
|
"uk_UA": "Востаннє зіграно",
|
||||||
|
"zh_CN": "最近游玩",
|
||||||
|
"zh_TW": "最近遊玩"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "GameListSortFileExtension",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "صيغة الملف",
|
||||||
|
"de_DE": "Dateiformat",
|
||||||
|
"el_GR": "Κατάληξη",
|
||||||
|
"en_US": "File Ext",
|
||||||
|
"es_ES": "Extensión",
|
||||||
|
"fr_FR": "Extension du Fichier",
|
||||||
|
"he_IL": "סיומת קובץ",
|
||||||
|
"it_IT": "Estensione",
|
||||||
|
"ja_JP": "ファイル拡張子",
|
||||||
|
"ko_KR": "파일 확장자",
|
||||||
|
"no_NO": "Fil Eks.",
|
||||||
|
"pl_PL": "Rozszerzenie pliku",
|
||||||
|
"pt_BR": "Extensão",
|
||||||
|
"ru_RU": "Расширение файла",
|
||||||
|
"sv_SE": "Filänd",
|
||||||
|
"th_TH": "นามสกุลไฟล์",
|
||||||
|
"tr_TR": "Dosya Uzantısı",
|
||||||
|
"uk_UA": "Розширення файлу",
|
||||||
|
"zh_CN": "扩展名",
|
||||||
|
"zh_TW": "副檔名"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "GameListSortFileSize",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "حجم الملف",
|
||||||
|
"de_DE": "Dateigröße",
|
||||||
|
"el_GR": "Μέγεθος Αρχείου",
|
||||||
|
"en_US": "File Size",
|
||||||
|
"es_ES": "Tamaño del archivo",
|
||||||
|
"fr_FR": "Taille du Fichier",
|
||||||
|
"he_IL": "גודל הקובץ",
|
||||||
|
"it_IT": "Dimensione file",
|
||||||
|
"ja_JP": "ファイルサイズ",
|
||||||
|
"ko_KR": "파일 크기",
|
||||||
|
"no_NO": "Fil Størrelse",
|
||||||
|
"pl_PL": "Rozmiar pliku",
|
||||||
|
"pt_BR": "Tamanho",
|
||||||
|
"ru_RU": "Размер файла",
|
||||||
|
"sv_SE": "Filstorlek",
|
||||||
|
"th_TH": "ขนาดไฟล์",
|
||||||
|
"tr_TR": "Dosya Boyutu",
|
||||||
|
"uk_UA": "Розмір файлу",
|
||||||
|
"zh_CN": "大小",
|
||||||
|
"zh_TW": "檔案大小"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "GameListSortPath",
|
||||||
"Translations": {
|
"Translations": {
|
||||||
"ar_SA": "المسار",
|
"ar_SA": "المسار",
|
||||||
"de_DE": "Pfad",
|
"de_DE": "Pfad",
|
||||||
@@ -23372,6 +23497,131 @@
|
|||||||
"zh_TW": "無法啟動"
|
"zh_TW": "無法啟動"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ID": "CompatibilityListPlayableTooltip",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "",
|
||||||
|
"de_DE": "",
|
||||||
|
"el_GR": "",
|
||||||
|
"en_US": "Boots and plays without any crashes or GPU bugs of any kind, and at a speed fast enough to reasonably enjoy on an average PC.",
|
||||||
|
"es_ES": "",
|
||||||
|
"fr_FR": "",
|
||||||
|
"he_IL": "",
|
||||||
|
"it_IT": "",
|
||||||
|
"ja_JP": "",
|
||||||
|
"ko_KR": "",
|
||||||
|
"no_NO": "",
|
||||||
|
"pl_PL": "",
|
||||||
|
"pt_BR": "",
|
||||||
|
"ru_RU": "",
|
||||||
|
"sv_SE": "",
|
||||||
|
"th_TH": "",
|
||||||
|
"tr_TR": "",
|
||||||
|
"uk_UA": "",
|
||||||
|
"zh_CN": "",
|
||||||
|
"zh_TW": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "CompatibilityListIngameTooltip",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "",
|
||||||
|
"de_DE": "",
|
||||||
|
"el_GR": "",
|
||||||
|
"en_US": "Boots and goes in-game but suffers from one or more of the following: crashes, deadlocks, GPU bugs, distractingly bad audio, or is simply too slow. Game still might able to be played all the way through, but not as the game is intended to play.",
|
||||||
|
"es_ES": "",
|
||||||
|
"fr_FR": "",
|
||||||
|
"he_IL": "",
|
||||||
|
"it_IT": "",
|
||||||
|
"ja_JP": "",
|
||||||
|
"ko_KR": "",
|
||||||
|
"no_NO": "",
|
||||||
|
"pl_PL": "",
|
||||||
|
"pt_BR": "",
|
||||||
|
"ru_RU": "",
|
||||||
|
"sv_SE": "",
|
||||||
|
"th_TH": "",
|
||||||
|
"tr_TR": "",
|
||||||
|
"uk_UA": "",
|
||||||
|
"zh_CN": "",
|
||||||
|
"zh_TW": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "CompatibilityListMenusTooltip",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "",
|
||||||
|
"de_DE": "",
|
||||||
|
"el_GR": "",
|
||||||
|
"en_US": "Boots and goes past the title screen but does not make it into main gameplay.",
|
||||||
|
"es_ES": "",
|
||||||
|
"fr_FR": "",
|
||||||
|
"he_IL": "",
|
||||||
|
"it_IT": "",
|
||||||
|
"ja_JP": "",
|
||||||
|
"ko_KR": "",
|
||||||
|
"no_NO": "",
|
||||||
|
"pl_PL": "",
|
||||||
|
"pt_BR": "",
|
||||||
|
"ru_RU": "",
|
||||||
|
"sv_SE": "",
|
||||||
|
"th_TH": "",
|
||||||
|
"tr_TR": "",
|
||||||
|
"uk_UA": "",
|
||||||
|
"zh_CN": "",
|
||||||
|
"zh_TW": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "CompatibilityListBootsTooltip",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "",
|
||||||
|
"de_DE": "",
|
||||||
|
"el_GR": "",
|
||||||
|
"en_US": "Boots but does not make it past the title screen.",
|
||||||
|
"es_ES": "",
|
||||||
|
"fr_FR": "",
|
||||||
|
"he_IL": "",
|
||||||
|
"it_IT": "",
|
||||||
|
"ja_JP": "",
|
||||||
|
"ko_KR": "",
|
||||||
|
"no_NO": "",
|
||||||
|
"pl_PL": "",
|
||||||
|
"pt_BR": "",
|
||||||
|
"ru_RU": "",
|
||||||
|
"sv_SE": "",
|
||||||
|
"th_TH": "",
|
||||||
|
"tr_TR": "",
|
||||||
|
"uk_UA": "",
|
||||||
|
"zh_CN": "",
|
||||||
|
"zh_TW": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "CompatibilityListNothingTooltip",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "",
|
||||||
|
"de_DE": "",
|
||||||
|
"el_GR": "",
|
||||||
|
"en_US": "Does not boot or shows no signs of activity.",
|
||||||
|
"es_ES": "",
|
||||||
|
"fr_FR": "",
|
||||||
|
"he_IL": "",
|
||||||
|
"it_IT": "",
|
||||||
|
"ja_JP": "",
|
||||||
|
"ko_KR": "",
|
||||||
|
"no_NO": "",
|
||||||
|
"pl_PL": "",
|
||||||
|
"pt_BR": "",
|
||||||
|
"ru_RU": "",
|
||||||
|
"sv_SE": "",
|
||||||
|
"th_TH": "",
|
||||||
|
"tr_TR": "",
|
||||||
|
"uk_UA": "",
|
||||||
|
"zh_CN": "",
|
||||||
|
"zh_TW": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ID": "ExtractAocListHeader",
|
"ID": "ExtractAocListHeader",
|
||||||
"Translations": {
|
"Translations": {
|
||||||
|
|||||||
@@ -41,13 +41,12 @@
|
|||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
Orientation="Vertical"
|
Orientation="Vertical"
|
||||||
Spacing="5">
|
Spacing="5">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal" IsVisible="{Binding AppData.HasPlayabilityInfo}">
|
||||||
<TextBlock Padding="0, 0, 5, 0" Text="{ext:Locale GameListHeaderCompatibilityStatus}" />
|
<TextBlock Padding="0, 0, 5, 0" Text="{ext:Locale GameListHeaderCompatibilityStatus}" />
|
||||||
<Button
|
<Button
|
||||||
Click="PlayabilityStatus_OnClick"
|
Click="PlayabilityStatus_OnClick"
|
||||||
HorizontalContentAlignment="Left"
|
HorizontalContentAlignment="Left"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
IsVisible="{Binding AppData.HasPlayabilityInfo}"
|
|
||||||
Background="{DynamicResource AppListBackgroundColor}"
|
Background="{DynamicResource AppListBackgroundColor}"
|
||||||
Padding="0">
|
Padding="0">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
@@ -55,6 +54,7 @@
|
|||||||
Tag="{Binding AppData.IdString}"
|
Tag="{Binding AppData.IdString}"
|
||||||
Text="{Binding AppData.LocalizedStatus}"
|
Text="{Binding AppData.LocalizedStatus}"
|
||||||
Foreground="{Binding AppData.PlayabilityStatus, Converter={x:Static helpers:PlayabilityStatusConverter.Shared}}"
|
Foreground="{Binding AppData.PlayabilityStatus, Converter={x:Static helpers:PlayabilityStatusConverter.Shared}}"
|
||||||
|
ToolTip.Tip="{Binding AppData.LocalizedStatusTooltip}"
|
||||||
TextAlignment="Start"
|
TextAlignment="Start"
|
||||||
TextWrapping="Wrap" />
|
TextWrapping="Wrap" />
|
||||||
<Button.Styles>
|
<Button.Styles>
|
||||||
|
|||||||
@@ -93,7 +93,8 @@
|
|||||||
IsVisible="{Binding HasPlayabilityInfo}"
|
IsVisible="{Binding HasPlayabilityInfo}"
|
||||||
Background="{DynamicResource AppListBackgroundColor}"
|
Background="{DynamicResource AppListBackgroundColor}"
|
||||||
Margin="-1, 0, 0, 0"
|
Margin="-1, 0, 0, 0"
|
||||||
Padding="0" >
|
Padding="0"
|
||||||
|
ToolTip.Tip="{Binding LocalizedStatusTooltip}">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="1.5"
|
Margin="1.5"
|
||||||
Tag="{Binding IdString}"
|
Tag="{Binding IdString}"
|
||||||
@@ -141,7 +142,7 @@
|
|||||||
<TextBlock
|
<TextBlock
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
IsVisible="{Binding HasLdnGames}"
|
IsVisible="{Binding HasLdnGames}"
|
||||||
Text="{Binding Converter={helpers:MultiplayerInfoConverter}}"
|
Text="{Binding Converter={x:Static helpers:MultiplayerInfoConverter.Instance}}"
|
||||||
TextAlignment="Start"
|
TextAlignment="Start"
|
||||||
TextWrapping="Wrap"/>
|
TextWrapping="Wrap"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace Ryujinx.Ava.UI.Helpers
|
|||||||
{
|
{
|
||||||
internal class MultiplayerInfoConverter : MarkupExtension, IValueConverter
|
internal class MultiplayerInfoConverter : MarkupExtension, IValueConverter
|
||||||
{
|
{
|
||||||
private static readonly MultiplayerInfoConverter _instance = new();
|
public static readonly MultiplayerInfoConverter Instance = new();
|
||||||
|
|
||||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
{
|
{
|
||||||
@@ -35,7 +35,7 @@ namespace Ryujinx.Ava.UI.Helpers
|
|||||||
|
|
||||||
public override object ProvideValue(IServiceProvider serviceProvider)
|
public override object ProvideValue(IServiceProvider serviceProvider)
|
||||||
{
|
{
|
||||||
return _instance;
|
return Instance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -633,15 +633,15 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
{
|
{
|
||||||
return SortMode switch
|
return SortMode switch
|
||||||
{
|
{
|
||||||
ApplicationSort.Title => LocaleManager.Instance[LocaleKeys.GameListHeaderApplication],
|
|
||||||
ApplicationSort.Developer => LocaleManager.Instance[LocaleKeys.GameListHeaderDeveloper],
|
|
||||||
ApplicationSort.LastPlayed => LocaleManager.Instance[LocaleKeys.GameListHeaderLastPlayed],
|
|
||||||
ApplicationSort.TotalTimePlayed => LocaleManager.Instance[LocaleKeys.GameListHeaderTimePlayed],
|
|
||||||
ApplicationSort.FileType => LocaleManager.Instance[LocaleKeys.GameListHeaderFileExtension],
|
|
||||||
ApplicationSort.FileSize => LocaleManager.Instance[LocaleKeys.GameListHeaderFileSize],
|
|
||||||
ApplicationSort.Path => LocaleManager.Instance[LocaleKeys.GameListHeaderPath],
|
|
||||||
ApplicationSort.Favorite => LocaleManager.Instance[LocaleKeys.CommonFavorite],
|
ApplicationSort.Favorite => LocaleManager.Instance[LocaleKeys.CommonFavorite],
|
||||||
ApplicationSort.TitleId => LocaleManager.Instance[LocaleKeys.DlcManagerTableHeadingTitleIdLabel],
|
ApplicationSort.TitleId => LocaleManager.Instance[LocaleKeys.DlcManagerTableHeadingTitleIdLabel],
|
||||||
|
ApplicationSort.Title => LocaleManager.Instance[LocaleKeys.GameListHeaderApplication],
|
||||||
|
ApplicationSort.Developer => LocaleManager.Instance[LocaleKeys.GameListSortDeveloper],
|
||||||
|
ApplicationSort.LastPlayed => LocaleManager.Instance[LocaleKeys.GameListSortLastPlayed],
|
||||||
|
ApplicationSort.TotalTimePlayed => LocaleManager.Instance[LocaleKeys.GameListSortTimePlayed],
|
||||||
|
ApplicationSort.FileType => LocaleManager.Instance[LocaleKeys.GameListSortFileExtension],
|
||||||
|
ApplicationSort.FileSize => LocaleManager.Instance[LocaleKeys.GameListSortFileSize],
|
||||||
|
ApplicationSort.Path => LocaleManager.Instance[LocaleKeys.GameListSortPath],
|
||||||
_ => string.Empty,
|
_ => string.Empty,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,37 +113,37 @@
|
|||||||
Tag="TitleId" />
|
Tag="TitleId" />
|
||||||
<RadioButton
|
<RadioButton
|
||||||
Checked="Sort_Checked"
|
Checked="Sort_Checked"
|
||||||
Content="{ext:Locale GameListHeaderDeveloper}"
|
Content="{ext:Locale GameListSortDeveloper}"
|
||||||
GroupName="Sort"
|
GroupName="Sort"
|
||||||
IsChecked="{Binding IsSortedByDeveloper, Mode=OneTime}"
|
IsChecked="{Binding IsSortedByDeveloper, Mode=OneTime}"
|
||||||
Tag="Developer" />
|
Tag="Developer" />
|
||||||
<RadioButton
|
<RadioButton
|
||||||
Checked="Sort_Checked"
|
Checked="Sort_Checked"
|
||||||
Content="{ext:Locale GameListHeaderTimePlayed}"
|
Content="{ext:Locale GameListSortTimePlayed}"
|
||||||
GroupName="Sort"
|
GroupName="Sort"
|
||||||
IsChecked="{Binding IsSortedByTimePlayed, Mode=OneTime}"
|
IsChecked="{Binding IsSortedByTimePlayed, Mode=OneTime}"
|
||||||
Tag="TotalTimePlayed" />
|
Tag="TotalTimePlayed" />
|
||||||
<RadioButton
|
<RadioButton
|
||||||
Checked="Sort_Checked"
|
Checked="Sort_Checked"
|
||||||
Content="{ext:Locale GameListHeaderLastPlayed}"
|
Content="{ext:Locale GameListSortLastPlayed}"
|
||||||
GroupName="Sort"
|
GroupName="Sort"
|
||||||
IsChecked="{Binding IsSortedByLastPlayed, Mode=OneTime}"
|
IsChecked="{Binding IsSortedByLastPlayed, Mode=OneTime}"
|
||||||
Tag="LastPlayed" />
|
Tag="LastPlayed" />
|
||||||
<RadioButton
|
<RadioButton
|
||||||
Checked="Sort_Checked"
|
Checked="Sort_Checked"
|
||||||
Content="{ext:Locale GameListHeaderFileExtension}"
|
Content="{ext:Locale GameListSortFileExtension}"
|
||||||
GroupName="Sort"
|
GroupName="Sort"
|
||||||
IsChecked="{Binding IsSortedByType, Mode=OneTime}"
|
IsChecked="{Binding IsSortedByType, Mode=OneTime}"
|
||||||
Tag="FileType" />
|
Tag="FileType" />
|
||||||
<RadioButton
|
<RadioButton
|
||||||
Checked="Sort_Checked"
|
Checked="Sort_Checked"
|
||||||
Content="{ext:Locale GameListHeaderFileSize}"
|
Content="{ext:Locale GameListSortFileSize}"
|
||||||
GroupName="Sort"
|
GroupName="Sort"
|
||||||
IsChecked="{Binding IsSortedBySize, Mode=OneTime}"
|
IsChecked="{Binding IsSortedBySize, Mode=OneTime}"
|
||||||
Tag="FileSize" />
|
Tag="FileSize" />
|
||||||
<RadioButton
|
<RadioButton
|
||||||
Checked="Sort_Checked"
|
Checked="Sort_Checked"
|
||||||
Content="{ext:Locale GameListHeaderPath}"
|
Content="{ext:Locale GameListSortPath}"
|
||||||
GroupName="Sort"
|
GroupName="Sort"
|
||||||
IsChecked="{Binding IsSortedByPath, Mode=OneTime}"
|
IsChecked="{Binding IsSortedByPath, Mode=OneTime}"
|
||||||
Tag="Path" />
|
Tag="Path" />
|
||||||
|
|||||||
@@ -46,7 +46,19 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
|
|||||||
: string.Empty;
|
: string.Empty;
|
||||||
|
|
||||||
public LocaleKeys? PlayabilityStatus { get; set; }
|
public LocaleKeys? PlayabilityStatus { get; set; }
|
||||||
|
public string LocalizedStatusTooltip =>
|
||||||
|
PlayabilityStatus.HasValue
|
||||||
|
#pragma warning disable CS8509 // It is exhaustive for any value this property can contain.
|
||||||
|
? LocaleManager.Instance[PlayabilityStatus!.Value switch
|
||||||
|
#pragma warning restore CS8509
|
||||||
|
{
|
||||||
|
LocaleKeys.CompatibilityListPlayable => LocaleKeys.CompatibilityListPlayableTooltip,
|
||||||
|
LocaleKeys.CompatibilityListIngame => LocaleKeys.CompatibilityListIngameTooltip,
|
||||||
|
LocaleKeys.CompatibilityListMenus => LocaleKeys.CompatibilityListMenusTooltip,
|
||||||
|
LocaleKeys.CompatibilityListBoots => LocaleKeys.CompatibilityListBootsTooltip,
|
||||||
|
LocaleKeys.CompatibilityListNothing => LocaleKeys.CompatibilityListNothingTooltip,
|
||||||
|
}]
|
||||||
|
: string.Empty;
|
||||||
public int PlayerCount { get; set; }
|
public int PlayerCount { get; set; }
|
||||||
public int GameCount { get; set; }
|
public int GameCount { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -100,12 +100,25 @@ namespace Ryujinx.Ava.Utilities.Compat
|
|||||||
public Optional<string> TitleId { get; }
|
public Optional<string> TitleId { get; }
|
||||||
public string[] Labels { get; }
|
public string[] Labels { get; }
|
||||||
public LocaleKeys? Status { get; }
|
public LocaleKeys? Status { get; }
|
||||||
|
|
||||||
|
public LocaleKeys? StatusDescription
|
||||||
|
=> Status switch
|
||||||
|
{
|
||||||
|
LocaleKeys.CompatibilityListPlayable => LocaleKeys.CompatibilityListPlayableTooltip,
|
||||||
|
LocaleKeys.CompatibilityListIngame => LocaleKeys.CompatibilityListIngameTooltip,
|
||||||
|
LocaleKeys.CompatibilityListMenus => LocaleKeys.CompatibilityListMenusTooltip,
|
||||||
|
LocaleKeys.CompatibilityListBoots => LocaleKeys.CompatibilityListBootsTooltip,
|
||||||
|
LocaleKeys.CompatibilityListNothing => LocaleKeys.CompatibilityListNothingTooltip,
|
||||||
|
_ => null
|
||||||
|
};
|
||||||
|
|
||||||
public DateTime LastUpdated { get; }
|
public DateTime LastUpdated { get; }
|
||||||
|
|
||||||
public string LocalizedLastUpdated =>
|
public string LocalizedLastUpdated =>
|
||||||
LocaleManager.FormatDynamicValue(LocaleKeys.CompatibilityListLastUpdated, LastUpdated.Humanize());
|
LocaleManager.FormatDynamicValue(LocaleKeys.CompatibilityListLastUpdated, LastUpdated.Humanize());
|
||||||
|
|
||||||
public string LocalizedStatus => LocaleManager.Instance[Status!.Value];
|
public string LocalizedStatus => LocaleManager.Instance[Status!.Value];
|
||||||
|
public string LocalizedStatusDescription => LocaleManager.Instance[StatusDescription!.Value];
|
||||||
public string FormattedTitleId => TitleId
|
public string FormattedTitleId => TitleId
|
||||||
.OrElse(new string(' ', 16));
|
.OrElse(new string(' ', 16));
|
||||||
|
|
||||||
|
|||||||
@@ -64,6 +64,8 @@
|
|||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Text="{Binding LocalizedStatus}"
|
Text="{Binding LocalizedStatus}"
|
||||||
Width="85"
|
Width="85"
|
||||||
|
Background="Transparent"
|
||||||
|
ToolTip.Tip="{Binding LocalizedStatusDescription}"
|
||||||
Foreground="{Binding Status, Converter={x:Static helpers:PlayabilityStatusConverter.Shared}}"
|
Foreground="{Binding Status, Converter={x:Static helpers:PlayabilityStatusConverter.Shared}}"
|
||||||
TextWrapping="NoWrap" />
|
TextWrapping="NoWrap" />
|
||||||
<TextBlock Grid.Column="3"
|
<TextBlock Grid.Column="3"
|
||||||
|
|||||||
Reference in New Issue
Block a user