Compare commits
38 Commits
Canary-1.2
...
e2e8502278
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2e8502278 | ||
|
|
aa806b1032 | ||
|
|
aabb786016 | ||
|
|
2a38f1bbbf | ||
|
|
fdece62f88 | ||
|
|
6fb58a611e | ||
|
|
02ff76f89a | ||
|
|
d39b3a5864 | ||
|
|
f976c3c362 | ||
|
|
d9f2b813a0 | ||
|
|
8cb6767c7c | ||
|
|
80377c1553 | ||
|
|
1dbcaf1fd7 | ||
|
|
bad1f72918 | ||
|
|
a317184594 | ||
|
|
0cde245875 | ||
|
|
e3638d13b1 | ||
|
|
2fe19044cf | ||
|
|
9320decc45 | ||
|
|
35b23bcafb | ||
|
|
4add4829c7 | ||
|
|
eb46909808 | ||
|
|
c91d9d8049 | ||
|
|
21f23f0a2e | ||
|
|
9ca0926439 | ||
|
|
7b8c8776a2 | ||
|
|
b00d80c17a | ||
|
|
8c0a82bb6e | ||
|
|
1bac6ab19e | ||
|
|
dac137fd43 | ||
|
|
d83d80de73 | ||
|
|
097836bfac | ||
|
|
695f9e277d | ||
|
|
b19ee23c6b | ||
|
|
748e93ba65 | ||
|
|
732a1af863 | ||
|
|
f538cee2e8 | ||
|
|
4275a778aa |
@@ -80,6 +80,7 @@ EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Horizon.Kernel.Generators", "src\Ryujinx.Horizon.Kernel.Generators\Ryujinx.Horizon.Kernel.Generators.csproj", "{7F55A45D-4E1D-4A36-ADD3-87F29A285AA2}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.HLE.Generators", "src\Ryujinx.HLE.Generators\Ryujinx.HLE.Generators.csproj", "{B575BCDE-2FD8-4A5D-8756-31CDD7FE81F0}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ryujinx.Graphics.Metal", "src\Ryujinx.Graphics.Metal\Ryujinx.Graphics.Metal.csproj", "{C08931FA-1191-417A-864F-3882D93E683B}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{A602AE97-91A5-4608-8DF1-EBF4ED7A0B9E} = {A602AE97-91A5-4608-8DF1-EBF4ED7A0B9E}
|
||||
@@ -258,13 +259,12 @@ Global
|
||||
{B575BCDE-2FD8-4A5D-8756-31CDD7FE81F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B575BCDE-2FD8-4A5D-8756-31CDD7FE81F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B575BCDE-2FD8-4A5D-8756-31CDD7FE81F0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4A89A234-4F19-497D-A576-DDE8CDFC5B22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4A89A234-4F19-497D-A576-DDE8CDFC5B22}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4A89A234-4F19-497D-A576-DDE8CDFC5B22}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C08931FA-1191-417A-864F-3882D93E683B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C08931FA-1191-417A-864F-3882D93E683B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C08931FA-1191-417A-864F-3882D93E683B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C08931FA-1191-417A-864F-3882D93E683B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4A89A234-4F19-497D-A576-DDE8CDFC5B22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4A89A234-4F19-497D-A576-DDE8CDFC5B22}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
using System;
|
||||
using Microsoft.Build.Utilities;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using Newtonsoft.Json;
|
||||
using Microsoft.Build.Framework;
|
||||
|
||||
namespace Ryujinx.BuildValidationTasks
|
||||
{
|
||||
public class LocaleValidationTask : Task
|
||||
{
|
||||
public override bool Execute()
|
||||
{
|
||||
string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
|
||||
|
||||
if (path.Split(["src"], StringSplitOptions.None).Length == 1)
|
||||
{
|
||||
//i assume that we are in a build directory in the solution dir
|
||||
path = new FileInfo(path).Directory!.Parent!.GetDirectories("src")[0].GetDirectories("Ryujinx")[0].GetDirectories("Assets")[0].GetFiles("locales.json")[0].FullName;
|
||||
}
|
||||
else
|
||||
{
|
||||
path = path.Split(["src"], StringSplitOptions.None)[0];
|
||||
path = new FileInfo(path).Directory!.GetDirectories("src")[0].GetDirectories("Ryujinx")[0].GetDirectories("Assets")[0].GetFiles("locales.json")[0].FullName;
|
||||
}
|
||||
|
||||
string data;
|
||||
|
||||
using (StreamReader sr = new(path))
|
||||
{
|
||||
data = sr.ReadToEnd();
|
||||
}
|
||||
|
||||
LocalesJson json = JsonConvert.DeserializeObject<LocalesJson>(data);
|
||||
|
||||
for (int i = 0; i < json.Locales.Count; i++)
|
||||
{
|
||||
LocalesEntry locale = json.Locales[i];
|
||||
|
||||
foreach (string langCode in json.Languages.Where(it => !locale.Translations.ContainsKey(it)))
|
||||
{
|
||||
locale.Translations.Add(langCode, string.Empty);
|
||||
Log.LogMessage(MessageImportance.High, $"Added '{langCode}' to Locale '{locale.ID}'");
|
||||
}
|
||||
|
||||
locale.Translations = locale.Translations.OrderBy(pair => pair.Key).ToDictionary(pair => pair.Key, pair => pair.Value);
|
||||
json.Locales[i] = locale;
|
||||
}
|
||||
|
||||
string jsonString = JsonConvert.SerializeObject(json, Formatting.Indented);
|
||||
|
||||
using (StreamWriter sw = new(path))
|
||||
{
|
||||
sw.Write(jsonString);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
struct LocalesJson
|
||||
{
|
||||
public List<string> Languages { get; set; }
|
||||
public List<LocalesEntry> Locales { get; set; }
|
||||
}
|
||||
|
||||
struct LocalesEntry
|
||||
{
|
||||
public string ID { get; set; }
|
||||
public Dictionary<string, string> Translations { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
114
src/Ryujinx.BuildValidationTasks/LocalesValidationTask.cs
Normal file
114
src/Ryujinx.BuildValidationTasks/LocalesValidationTask.cs
Normal file
@@ -0,0 +1,114 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using System.Text.Json;
|
||||
using System.Text.Encodings.Web;
|
||||
|
||||
namespace Ryujinx.BuildValidationTasks
|
||||
{
|
||||
public class LocalesValidationTask : ValidationTask
|
||||
{
|
||||
public static bool Execute(string projectPath)
|
||||
{
|
||||
Console.WriteLine("Running Locale Validation Task...");
|
||||
|
||||
string path = projectPath + "src/Ryujinx/Assets/locales.json";
|
||||
string data;
|
||||
|
||||
using (StreamReader sr = new(path))
|
||||
{
|
||||
data = sr.ReadToEnd();
|
||||
}
|
||||
|
||||
LocalesJson json;
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
json = JsonSerializer.Deserialize<LocalesJson>(data);
|
||||
|
||||
}
|
||||
catch (JsonException e)
|
||||
{
|
||||
throw new JsonException(e.Message); //shorter and easier stacktrace
|
||||
}
|
||||
|
||||
bool isGitRunner = path.Contains("runner") || path.Contains("D:\\a\\Ryujinx\\Ryujinx");
|
||||
if (isGitRunner)
|
||||
Console.WriteLine("Is Git Runner!");
|
||||
bool encounteredIssue = false;
|
||||
|
||||
for (int i = 0; i < json.Locales.Count; i++)
|
||||
{
|
||||
LocalesEntry locale = json.Locales[i];
|
||||
|
||||
foreach (string langCode in json.Languages.Where(lang => !locale.Translations.ContainsKey(lang)))
|
||||
{
|
||||
encounteredIssue = true;
|
||||
|
||||
if (!isGitRunner)
|
||||
{
|
||||
locale.Translations.Add(langCode, string.Empty);
|
||||
Console.WriteLine($"Added '{langCode}' to Locale '{locale.ID}'");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine($"Missing '{langCode}' in Locale '{locale.ID}'!");
|
||||
}
|
||||
}
|
||||
|
||||
foreach (string langCode in json.Languages.Where(lang => locale.Translations.ContainsKey(lang) && lang != "en_US" && locale.Translations[lang] == locale.Translations["en_US"]))
|
||||
{
|
||||
encounteredIssue = true;
|
||||
|
||||
if (!isGitRunner)
|
||||
{
|
||||
locale.Translations[langCode] = string.Empty;
|
||||
Console.WriteLine($"Lanugage '{langCode}' is a duplicate of en_US in Locale '{locale.ID}'! Resetting it...");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine($"Lanugage '{langCode}' is a duplicate of en_US in Locale '{locale.ID}'!");
|
||||
}
|
||||
}
|
||||
|
||||
locale.Translations = locale.Translations.OrderBy(pair => pair.Key).ToDictionary(pair => pair.Key, pair => pair.Value);
|
||||
json.Locales[i] = locale;
|
||||
}
|
||||
|
||||
if (isGitRunner && encounteredIssue)
|
||||
throw new JsonException("1 or more locales are invalid!");
|
||||
|
||||
JsonSerializerOptions jsonOptions = new JsonSerializerOptions()
|
||||
{
|
||||
WriteIndented = true,
|
||||
NewLine = "\n",
|
||||
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
|
||||
};
|
||||
|
||||
string jsonString = JsonSerializer.Serialize(json, jsonOptions);
|
||||
|
||||
using (StreamWriter sw = new(path))
|
||||
{
|
||||
sw.Write(jsonString);
|
||||
}
|
||||
|
||||
Console.WriteLine("Finished Locale Validation Task!");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
struct LocalesJson
|
||||
{
|
||||
public List<string> Languages { get; set; }
|
||||
public List<LocalesEntry> Locales { get; set; }
|
||||
}
|
||||
|
||||
struct LocalesEntry
|
||||
{
|
||||
public string ID { get; set; }
|
||||
public Dictionary<string, string> Translations { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
39
src/Ryujinx.BuildValidationTasks/Program.cs
Normal file
39
src/Ryujinx.BuildValidationTasks/Program.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Ryujinx.BuildValidationTasks
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
// Display the number of command line arguments.
|
||||
if (args.Length != 1)
|
||||
{
|
||||
if (args.Length == 0)
|
||||
throw new ArgumentException("Error: too few arguments!");
|
||||
else
|
||||
throw new ArgumentException("Error: too many arguments!");
|
||||
}
|
||||
|
||||
string path = args[0];
|
||||
|
||||
if (string.IsNullOrEmpty(path))
|
||||
throw new ArgumentException("Error: path is null or empty!");
|
||||
|
||||
if (!Path.Exists(args[0]))
|
||||
throw new ArgumentException($"path {{{path}}} does not exist!");
|
||||
|
||||
path = Path.GetFullPath(path);
|
||||
|
||||
if (!Directory.GetDirectories(path).Contains($"{path}src"))
|
||||
throw new ArgumentException($"path {{{path}}} is not a valid ryujinx project!");
|
||||
|
||||
LocalesValidationTask.Execute(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
<OutputType>Exe</OutputType>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core" />
|
||||
<PackageReference Include="Newtonsoft.Json" />
|
||||
</ItemGroup>
|
||||
<Target Name="PostBuildTarget" AfterTargets="AfterBuild">
|
||||
<Message Text="Running Validation Project" Importance="high" />
|
||||
|
||||
<UsingTask TaskName="Ryujinx.BuildValidationTasks.LocaleValidationTask" TaskFactory="TaskHostFactory" AssemblyFile="$(OutDir)Ryujinx.BuildValidationTasks.dll" />
|
||||
|
||||
<Target Name="LocalesJsonValidation" AfterTargets="AfterRebuild">
|
||||
<LocaleValidationTask />
|
||||
<Exec WorkingDirectory="$(ProjectDir)bin\Debug\$(TargetFramework)\"
|
||||
Command="dotnet Ryujinx.BuildValidationTasks.dll "$(ProjectDir)..\..\\""
|
||||
ConsoleToMsBuild="true"
|
||||
/>
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
</Project>
|
||||
13
src/Ryujinx.BuildValidationTasks/ValidationTask.cs
Normal file
13
src/Ryujinx.BuildValidationTasks/ValidationTask.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Ryujinx.BuildValidationTasks
|
||||
{
|
||||
public interface ValidationTask
|
||||
{
|
||||
public static bool Execute(string projectPath) { return true; }
|
||||
}
|
||||
}
|
||||
@@ -1042,7 +1042,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "720p",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -1066,7 +1066,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "1080p",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -2122,7 +2122,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "ExeFS",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -2170,7 +2170,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "RomFS",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -2218,7 +2218,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "ロゴ",
|
||||
"ko_KR": "로고",
|
||||
"no_NO": "Logo",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "Логотип",
|
||||
@@ -3130,7 +3130,7 @@
|
||||
"it_IT": "Sistema",
|
||||
"ja_JP": "システム",
|
||||
"ko_KR": "시스템",
|
||||
"no_NO": "System",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "Sistema",
|
||||
"ru_RU": "Система",
|
||||
@@ -3202,7 +3202,7 @@
|
||||
"it_IT": "Giappone",
|
||||
"ja_JP": "日本",
|
||||
"ko_KR": "일본",
|
||||
"no_NO": "Japan",
|
||||
"no_NO": "",
|
||||
"pl_PL": "Japonia",
|
||||
"pt_BR": "Japão",
|
||||
"ru_RU": "Япония",
|
||||
@@ -3226,7 +3226,7 @@
|
||||
"it_IT": "Stati Uniti d'America",
|
||||
"ja_JP": "アメリカ",
|
||||
"ko_KR": "미국",
|
||||
"no_NO": "USA",
|
||||
"no_NO": "",
|
||||
"pl_PL": "Stany Zjednoczone",
|
||||
"pt_BR": "EUA",
|
||||
"ru_RU": "США",
|
||||
@@ -3274,7 +3274,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "オーストラリア",
|
||||
"ko_KR": "호주",
|
||||
"no_NO": "Australia",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "Austrália",
|
||||
"ru_RU": "Австралия",
|
||||
@@ -3322,7 +3322,7 @@
|
||||
"it_IT": "Corea",
|
||||
"ja_JP": "韓国",
|
||||
"ko_KR": "한국",
|
||||
"no_NO": "Korea",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "Coreia",
|
||||
"ru_RU": "Корея",
|
||||
@@ -3346,7 +3346,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "台湾",
|
||||
"ko_KR": "대만",
|
||||
"no_NO": "Taiwan",
|
||||
"no_NO": "",
|
||||
"pl_PL": "Tajwan",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "Тайвань",
|
||||
@@ -3797,7 +3797,7 @@
|
||||
"el_GR": "Ζώνη Ώρας Συστήματος:",
|
||||
"en_US": "System Time Zone:",
|
||||
"es_ES": "Zona horaria del sistema:",
|
||||
"fr_FR": "Fuseau horaire du système :",
|
||||
"fr_FR": "Fuseau horaire du système\u00A0:",
|
||||
"he_IL": "אזור זמן מערכת:",
|
||||
"it_IT": "Fuso orario del sistema:",
|
||||
"ja_JP": "タイムゾーン:",
|
||||
@@ -3970,7 +3970,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "ダミー",
|
||||
"ko_KR": "더미",
|
||||
"no_NO": "Dummy",
|
||||
"no_NO": "",
|
||||
"pl_PL": "Atrapa",
|
||||
"pt_BR": "Nenhuma",
|
||||
"ru_RU": "Без звука",
|
||||
@@ -3994,7 +3994,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "OpenAL",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4042,7 +4042,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "SDL2",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4061,12 +4061,12 @@
|
||||
"el_GR": "Μικροδιορθώσεις",
|
||||
"en_US": "Hacks",
|
||||
"es_ES": "",
|
||||
"fr_FR": "Hacks",
|
||||
"fr_FR": "",
|
||||
"he_IL": "האצות",
|
||||
"it_IT": "Espedienti",
|
||||
"ja_JP": "ハック",
|
||||
"ko_KR": "핵",
|
||||
"no_NO": "Hacks",
|
||||
"no_NO": "",
|
||||
"pl_PL": "Hacki",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "Хаки",
|
||||
@@ -4402,7 +4402,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "2배",
|
||||
"no_NO": "2x",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4426,7 +4426,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "4배",
|
||||
"no_NO": "4x",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4450,7 +4450,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "8배",
|
||||
"no_NO": "8x",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4474,7 +4474,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "16배",
|
||||
"no_NO": "16x",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4570,7 +4570,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "2배(1440p/2160p)",
|
||||
"no_NO": "2x (1440p/2160p)",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4594,7 +4594,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "3배(2160p/3240p)",
|
||||
"no_NO": "3x (2160p/3240p)",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4666,7 +4666,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "4:3",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4690,7 +4690,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "16:9",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4714,7 +4714,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "16:10",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4738,7 +4738,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "21:9",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4762,7 +4762,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "32:9",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -4858,7 +4858,7 @@
|
||||
"it_IT": "Log",
|
||||
"ja_JP": "ロギング",
|
||||
"ko_KR": "로그 기록",
|
||||
"no_NO": "Logging",
|
||||
"no_NO": "",
|
||||
"pl_PL": "Dziennik zdarzeń",
|
||||
"pt_BR": "Log",
|
||||
"ru_RU": "Журналирование",
|
||||
@@ -4882,7 +4882,7 @@
|
||||
"it_IT": "Log",
|
||||
"ja_JP": "ロギング",
|
||||
"ko_KR": "로그 기록",
|
||||
"no_NO": "Logging",
|
||||
"no_NO": "",
|
||||
"pl_PL": "Dziennik zdarzeń",
|
||||
"pt_BR": "Log",
|
||||
"ru_RU": "Журналирование",
|
||||
@@ -5434,7 +5434,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "확인",
|
||||
"no_NO": "OK",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "Ок",
|
||||
@@ -6106,7 +6106,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "A",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -6130,7 +6130,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "B",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -6154,7 +6154,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "X",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -6178,7 +6178,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "",
|
||||
"no_NO": "Y",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -15125,7 +15125,7 @@
|
||||
"el_GR": "",
|
||||
"en_US": "Aspect Ratio applied to the renderer window.\n\nOnly change this if you're using an aspect ratio mod for your game, otherwise the graphics will be stretched.\n\nLeave on 16:9 if unsure.",
|
||||
"es_ES": "Relación de aspecto aplicada a la ventana del renderizador.\n\nSolamente modificar esto si estás utilizando un mod de relación de aspecto para su juego, en cualquier otro caso los gráficos se estirarán.\n\nDejar en 16:9 si no sabe que hacer.",
|
||||
"fr_FR": "Format d'affichage appliqué à la fenêtre du moteur de rendu.\n\nChangez cela uniquement si vous utilisez un mod changeant le format d'affichage pour votre jeu, sinon les graphismes seront étirés.\n\nLaissez sur 16:9 si vous n'êtes pas sûr.",
|
||||
"fr_FR": "Format\u00A0d'affichage appliqué à la fenêtre du moteur de rendu.\n\nChangez cela uniquement si vous utilisez un mod changeant le format\u00A0d'affichage pour votre jeu, sinon les graphismes seront étirés.\n\nLaissez sur 16:9 si vous n'êtes pas sûr.",
|
||||
"he_IL": "",
|
||||
"it_IT": "Proporzioni dello schermo applicate alla finestra di renderizzazione.\n\nCambialo solo se stai usando una mod di proporzioni per il tuo gioco, altrimenti la grafica verrà allungata.\n\nLasciare il 16:9 se incerto.",
|
||||
"ja_JP": "レンダリングウインドウに適用するアスペクト比です.\n\nゲームにアスペクト比を変更する mod を使用している場合のみ変更してください.\n\nわからない場合は16:9のままにしておいてください.\n",
|
||||
@@ -18658,7 +18658,7 @@
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
"ko_KR": "XCI 파일 트리머",
|
||||
"no_NO": "XCI File Trimmer",
|
||||
"no_NO": "",
|
||||
"pl_PL": "",
|
||||
"pt_BR": "",
|
||||
"ru_RU": "",
|
||||
@@ -20213,7 +20213,7 @@
|
||||
"el_GR": "Όνομα",
|
||||
"en_US": "Name",
|
||||
"es_ES": "Nombre",
|
||||
"fr_FR": "Nom ",
|
||||
"fr_FR": "Nom\u00A0",
|
||||
"he_IL": "שם",
|
||||
"it_IT": "Nome",
|
||||
"ja_JP": "名称",
|
||||
@@ -21365,7 +21365,7 @@
|
||||
"el_GR": "",
|
||||
"en_US": "Switch",
|
||||
"es_ES": "",
|
||||
"fr_FR": "Switch",
|
||||
"fr_FR": "",
|
||||
"he_IL": "",
|
||||
"it_IT": "",
|
||||
"ja_JP": "",
|
||||
@@ -21694,4 +21694,4 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -13,9 +13,13 @@
|
||||
<DefaultItemExcludes>$(DefaultItemExcludes);._*</DefaultItemExcludes>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="BuildValidationProj" BeforeTargets="BeforeRebuild">
|
||||
<MSBuild Projects="..\Ryujinx.BuildValidationTasks\Ryujinx.BuildValidationTasks.csproj" Targets="Rebuild">
|
||||
</MSBuild>
|
||||
<Target Name="BuildValidationProj" BeforeTargets="BeforeBuild">
|
||||
<Message Text="Building Validation Project for $(TargetFramework)" Importance="high" Condition="'$(RuntimeIdentifier)' == ''" />
|
||||
<Message Text="Building Validation Project for $(TargetFramework) with runtime $(RuntimeIdentifier)" Importance="high" Condition="'$(RuntimeIdentifier)' != ''" />
|
||||
<Exec WorkingDirectory="..\Ryujinx.BuildValidationTasks\" Command="dotnet restore Ryujinx.BuildValidationTasks.csproj --force --ucr true" Condition="'$(RuntimeIdentifier)' == ''" />
|
||||
<Exec WorkingDirectory="..\Ryujinx.BuildValidationTasks\" Command="dotnet restore Ryujinx.BuildValidationTasks.csproj --force --runtime $(RuntimeIdentifier)" Condition="'$(RuntimeIdentifier)' != ''" />
|
||||
<MSBuild Projects="..\Ryujinx.BuildValidationTasks\Ryujinx.BuildValidationTasks.csproj" Properties="Configuration=Debug" />
|
||||
|
||||
</Target>
|
||||
|
||||
<Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="$([MSBuild]::IsOSPlatform('OSX'))">
|
||||
|
||||
Reference in New Issue
Block a user