Compare commits

...

9 Commits

Author SHA1 Message Date
Evan Husted
bc6de21846 unnecessary escaping 2025-01-08 05:50:34 -06:00
Daenorth
8052a5480c no_No Norwegian locales update 2025-01-08 12:34:08 +01:00
Daenorth
2df1d50901 Merge branch 'Ryubing:master' into master 2025-01-08 12:13:27 +01:00
Evan Husted
1e52af5e29 docs: compat: Multiple big changes:
Sort alphabetically,
Remove title IDs in "issue_title" column,
and remove all entries without a playability status.
2025-01-07 20:17:09 -06:00
Evan Husted
672f5df0f9 docs: compat: Remove issue_number & events_count columns
That's mostly for archival purposes; we don't need it.
2025-01-07 18:49:04 -06:00
Evan Husted
804d9c1efe docs: compat: remove invalid dupe 2025-01-07 06:03:35 -06:00
Evan Husted
9270b35648 no. 2025-01-07 05:53:31 -06:00
Evan Husted
5a6d01db3c docs: compat: trine 4 -> nothing
added Soul Reaver 1 & 2
2025-01-07 05:50:30 -06:00
Daenorth
95a8890bc2 Update to no_NO Norwegian Translation with new resync & Metal backend text. 2024-12-31 16:56:41 +01:00
3 changed files with 3457 additions and 4333 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -10435,7 +10435,7 @@
"it_IT": "Finestra di input",
"ja_JP": "入力ダイアログ",
"ko_KR": "대화 상자 입력",
"no_NO": "",
"no_NO": "Dialogboksen Inndata",
"pl_PL": "Okno Dialogowe Wprowadzania",
"pt_BR": "Diálogo de texto",
"ru_RU": "Диалоговое окно ввода",
@@ -22610,7 +22610,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"no_NO": "Denne kompatibilitetslisten kan inneholde oppføringer som er tomme for data.\nVær ikke imot å teste spill i statusen «Ingame».",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22635,7 +22635,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"no_NO": "Søk i kompatibilitetsoppføringer...",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22660,7 +22660,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"no_NO": "Åpne kompatibilitetslisten",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22685,7 +22685,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"no_NO": "Vis bare eide spill",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22710,7 +22710,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"no_NO": "Spillbar",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22760,7 +22760,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"no_NO": "Menyer",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22785,7 +22785,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"no_NO": "Starter",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22810,7 +22810,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"no_NO": "Ingenting",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22823,4 +22823,4 @@
}
}
]
}
}

View File

@@ -3,6 +3,7 @@ using nietras.SeparatedValues;
using Ryujinx.Ava.Common.Locale;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
@@ -32,21 +33,22 @@ namespace Ryujinx.Ava.Utilities.Compat
{
public CompatibilityEntry(SepReaderHeader header, SepReader.Row row)
{
IssueNumber = row[header.IndexOf("issue_number")].Parse<int>();
var titleIdRow = row[header.IndexOf("extracted_game_id")].ToString();
if (row.ColCount != header.ColNames.Count)
throw new InvalidDataException($"CSV row {row.RowIndex} ({row.ToString()}) has mismatched column count");
var titleIdRow = ColStr(row[header.IndexOf("\"extracted_game_id\"")]);
TitleId = !string.IsNullOrEmpty(titleIdRow)
? titleIdRow
: default(Optional<string>);
var issueTitleRow = row[header.IndexOf("issue_title")].ToString();
var issueTitleRow = ColStr(row[header.IndexOf("\"issue_title\"")]);
if (TitleId.HasValue)
issueTitleRow = issueTitleRow.ReplaceIgnoreCase($" - {TitleId}", string.Empty);
GameName = issueTitleRow.Trim().Trim('"');
IssueLabels = row[header.IndexOf("issue_labels")].ToString().Split(';');
Status = row[header.IndexOf("extracted_status")].ToString().ToLower() switch
IssueLabels = ColStr(row[header.IndexOf("\"issue_labels\"")]).Split(';');
Status = ColStr(row[header.IndexOf("\"extracted_status\"")]).ToLower() switch
{
"playable" => LocaleKeys.CompatibilityListPlayable,
"ingame" => LocaleKeys.CompatibilityListIngame,
@@ -56,20 +58,19 @@ namespace Ryujinx.Ava.Utilities.Compat
_ => null
};
if (row[header.IndexOf("last_event_date")].TryParse<DateTime>(out var dt))
if (DateTime.TryParse(ColStr(row[header.IndexOf("\"last_event_date\"")]), out var dt))
LastEvent = dt;
if (row[header.IndexOf("events_count")].TryParse<int>(out var eventsCount))
EventCount = eventsCount;
return;
string ColStr(SepReader.Col col) => col.ToString().Trim('"');
}
public int IssueNumber { get; }
public string GameName { get; }
public Optional<string> TitleId { get; }
public string[] IssueLabels { get; }
public LocaleKeys? Status { get; }
public DateTime LastEvent { get; }
public int EventCount { get; }
public string LocalizedStatus => LocaleManager.Instance[Status!.Value];
public string FormattedTitleId => TitleId
@@ -83,13 +84,11 @@ namespace Ryujinx.Ava.Utilities.Compat
public override string ToString()
{
var sb = new StringBuilder("CompatibilityEntry: {");
sb.Append($"{nameof(IssueNumber)}={IssueNumber}, ");
sb.Append($"{nameof(GameName)}=\"{GameName}\", ");
sb.Append($"{nameof(TitleId)}={TitleId}, ");
sb.Append($"{nameof(IssueLabels)}=\"{IssueLabels}\", ");
sb.Append($"{nameof(Status)}=\"{Status}\", ");
sb.Append($"{nameof(LastEvent)}=\"{LastEvent}\", ");
sb.Append($"{nameof(EventCount)}={EventCount}");
sb.Append($"{nameof(LastEvent)}=\"{LastEvent}\"");
sb.Append('}');
return sb.ToString();