From 262ada37aed61d49944fb26fb0e227712a909524 Mon Sep 17 00:00:00 2001 From: sudokoko Date: Fri, 31 May 2024 13:53:41 -0400 Subject: [PATCH 01/21] Bump dependencies --- .config/dotnet-tools.json | 2 +- .../ProjectLighthouse.Servers.Website.csproj | 2 +- ...rojectLighthouse.Tests.GameApiTests.csproj | 10 +++++----- ...rojectLighthouse.Tests.WebsiteTests.csproj | 14 ++++++------- .../ProjectLighthouse.Tests.csproj | 12 +++++------ ProjectLighthouse.sln.DotSettings | 8 +++++++- ProjectLighthouse/ProjectLighthouse.csproj | 20 +++++++++---------- 7 files changed, 37 insertions(+), 31 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index a1b89d981..7217a983b 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "dotnet-ef": { - "version": "8.0.3", + "version": "8.0.6", "commands": [ "dotnet-ef" ] diff --git a/ProjectLighthouse.Servers.Website/ProjectLighthouse.Servers.Website.csproj b/ProjectLighthouse.Servers.Website/ProjectLighthouse.Servers.Website.csproj index 9749d85cd..7768663f5 100644 --- a/ProjectLighthouse.Servers.Website/ProjectLighthouse.Servers.Website.csproj +++ b/ProjectLighthouse.Servers.Website/ProjectLighthouse.Servers.Website.csproj @@ -11,6 +11,6 @@ - + diff --git a/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj b/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj index db0ead102..ef7209198 100644 --- a/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj +++ b/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj @@ -9,14 +9,14 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj b/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj index 0686a1d38..c5b336f5d 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj +++ b/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj @@ -9,16 +9,16 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj b/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj index 4eb6d411e..4c4199a93 100644 --- a/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj +++ b/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj @@ -14,14 +14,14 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all @@ -30,7 +30,7 @@ all - + diff --git a/ProjectLighthouse.sln.DotSettings b/ProjectLighthouse.sln.DotSettings index d3818928a..174ff7a3c 100644 --- a/ProjectLighthouse.sln.DotSettings +++ b/ProjectLighthouse.sln.DotSettings @@ -1,4 +1,6 @@ - + True False False @@ -96,10 +98,14 @@ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="" Suffix="" Style="aaBb" /></Policy> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static readonly fields (private)"><ElementKinds><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> + <Policy><Descriptor Staticness="Any" AccessRightKinds="Private" Description="Constant fields (private)"><ElementKinds><Kind Name="CONSTANT_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> + <Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Methods"><ElementKinds><Kind Name="METHOD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="" Suffix="" Style="aaBb" /></Policy></Policy> True True True True + True True True True diff --git a/ProjectLighthouse/ProjectLighthouse.csproj b/ProjectLighthouse/ProjectLighthouse.csproj index bc92bc904..c538b2204 100644 --- a/ProjectLighthouse/ProjectLighthouse.csproj +++ b/ProjectLighthouse/ProjectLighthouse.csproj @@ -10,31 +10,31 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - - - + + + - + From 643cb8e816b33a959c4cd2778e5caf2ae03109ee Mon Sep 17 00:00:00 2001 From: sudokoko Date: Fri, 31 May 2024 18:10:05 -0400 Subject: [PATCH 02/21] Implement the ability to forcibly verify a user's email (#1022) * Implement the ability to forcibly verify a user's email * Apply suggestions from code review --- .../Controllers/Admin/AdminUserController.cs | 26 +++++++++++++++++++ .../Pages/UserPage.cshtml | 8 ++++++ 2 files changed, 34 insertions(+) diff --git a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs index 84b024ff5..426269448 100644 --- a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs +++ b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs @@ -3,6 +3,7 @@ using LBPUnion.ProjectLighthouse.Files; using LBPUnion.ProjectLighthouse.Logging; using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Entities.Token; using LBPUnion.ProjectLighthouse.Types.Logging; using LBPUnion.ProjectLighthouse.Types.Moderation.Cases; using LBPUnion.ProjectLighthouse.Types.Users; @@ -91,6 +92,31 @@ await this.database.SendNotification(targetedUser.UserId, return this.Redirect($"/user/{targetedUser.UserId}"); } + /// + /// Forces the email verification of a user. + /// + [HttpGet("forceVerifyEmail")] + public async Task ForceVerifyEmail([FromRoute] int id) + { + UserEntity? user = this.database.UserFromWebRequest(this.Request); + if (user == null || !user.IsModerator) return this.NotFound(); + + UserEntity? targetedUser = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == id); + if (targetedUser == null) return this.NotFound(); + if (user.EmailAddressVerified) return this.NotFound(); + + List tokens = await this.database.EmailVerificationTokens + .Where(t => t.UserId == targetedUser.UserId) + .ToListAsync(); + this.database.EmailVerificationTokens.RemoveRange(tokens); + + targetedUser.EmailAddressVerified = true; + + await this.database.SaveChangesAsync(); + + return this.Redirect($"/user/{targetedUser.UserId}"); + } + [HttpPost("/admin/user/{id:int}/setPermissionLevel")] public async Task SetUserPermissionLevel([FromRoute] int id, [FromForm] PermissionLevel role) { diff --git a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml index d675e8c1f..e1b6fe788 100644 --- a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml @@ -333,6 +333,14 @@ else } + @if (!Model.ProfileUser.EmailAddressVerified) + { + + + Force Verify Email + + } + @if (Model.User.IsAdmin) {
From 3546f60f4f9bc7abc031bd4e5809e862b0ee7025 Mon Sep 17 00:00:00 2001 From: sudokoko Date: Fri, 31 May 2024 18:26:08 -0400 Subject: [PATCH 03/21] Disallow forced email verification of users with no email --- .../Controllers/Admin/AdminUserController.cs | 2 +- ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs index 426269448..0aada8fc2 100644 --- a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs +++ b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs @@ -103,7 +103,7 @@ public async Task ForceVerifyEmail([FromRoute] int id) UserEntity? targetedUser = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == id); if (targetedUser == null) return this.NotFound(); - if (user.EmailAddressVerified) return this.NotFound(); + if (user.EmailAddress == null || user.EmailAddressVerified) return this.NotFound(); List tokens = await this.database.EmailVerificationTokens .Where(t => t.UserId == targetedUser.UserId) diff --git a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml index e1b6fe788..33a07af1e 100644 --- a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml @@ -333,11 +333,11 @@ else } - @if (!Model.ProfileUser.EmailAddressVerified) + @if (Model.ProfileUser.EmailAddress != null && !Model.ProfileUser.EmailAddressVerified) { - Force Verify Email + Forcibly Verify Email } From e89a4c27fad0ec9015173e59fc957197a08c76c5 Mon Sep 17 00:00:00 2001 From: sudokoko Date: Fri, 31 May 2024 18:40:39 -0400 Subject: [PATCH 04/21] Fix mismatch between user/targetedUser in force verify endpoint --- .../Controllers/Admin/AdminUserController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs index 0aada8fc2..d4fdfaf8b 100644 --- a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs +++ b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs @@ -103,7 +103,7 @@ public async Task ForceVerifyEmail([FromRoute] int id) UserEntity? targetedUser = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == id); if (targetedUser == null) return this.NotFound(); - if (user.EmailAddress == null || user.EmailAddressVerified) return this.NotFound(); + if (targetedUser.EmailAddress == null || targetedUser.EmailAddressVerified) return this.NotFound(); List tokens = await this.database.EmailVerificationTokens .Where(t => t.UserId == targetedUser.UserId) From be11e138f032ec306f9c732b4a3a3cee47740edc Mon Sep 17 00:00:00 2001 From: Kat <30480654+Metraberryy@users.noreply.github.com> Date: Fri, 14 Jun 2024 19:27:18 -0700 Subject: [PATCH 05/21] Implement the ability for moderators to delete all scores/comments by a user (#1027) * Implement delete all scores/comments * Fix formatting in AdminUserController.cs * Move logging out of loop * Batch delete scores based on UserId * Batch update comments instead of using a foreach * Use html entity instead of apostrophe character * Confirm before deleting all comments/scores * Remove unnecessary database.SaveChanges --- .../Controllers/Admin/AdminUserController.cs | 52 ++++++++++++++++++- .../Pages/UserPage.cshtml | 12 +++++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs index d4fdfaf8b..55db420c1 100644 --- a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs +++ b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs @@ -1,7 +1,9 @@ #nullable enable using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Files; using LBPUnion.ProjectLighthouse.Logging; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; using LBPUnion.ProjectLighthouse.Types.Entities.Profile; using LBPUnion.ProjectLighthouse.Types.Entities.Token; using LBPUnion.ProjectLighthouse.Types.Logging; @@ -27,7 +29,8 @@ public AdminUserController(DatabaseContext database) /// Resets the user's earth decorations to a blank state. Useful for users who abuse audio for example. /// [HttpGet("wipePlanets")] - public async Task WipePlanets([FromRoute] int id) { + public async Task WipePlanets([FromRoute] int id) + { UserEntity? user = this.database.UserFromWebRequest(this.Request); if (user == null || !user.IsModerator) return this.NotFound(); @@ -91,6 +94,53 @@ await this.database.SendNotification(targetedUser.UserId, return this.Redirect($"/user/{targetedUser.UserId}"); } + + /// + /// Deletes every comment by the user. Useful in case of mass spam + /// + [HttpGet("wipeComments")] + public async Task WipeComments([FromRoute] int id) + { + UserEntity? user = this.database.UserFromWebRequest(this.Request); + if (user == null || !user.IsModerator) return this.NotFound(); + + UserEntity? targetedUser = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == id); + if (targetedUser == null) return this.NotFound(); + + // Find every comment by the user, then set the deletion info on them + await this.database.Comments.Where(c => c.PosterUserId == targetedUser.UserId) + .ExecuteUpdateAsync(s => + s.SetProperty(c => c.Deleted, true) + .SetProperty(c => c.DeletedBy, user.Username) + .SetProperty(c => c.DeletedType, "moderator")); + Logger.Success($"Deleted comments for {targetedUser.Username} (id:{targetedUser.UserId})", LogArea.Admin); + + await this.database.SendNotification(targetedUser.UserId, + "Your comments have been deleted by a moderator."); + + return this.Redirect($"/user/{targetedUser.UserId}"); + } + + /// + /// Deletes every score from the user. Useful in the case where a user cheated a ton of scores + /// + [HttpGet("wipeScores")] + public async Task WipeScores([FromRoute] int id) + { + UserEntity? user = this.database.UserFromWebRequest(this.Request); + if (user == null || !user.IsModerator) return this.NotFound(); + + UserEntity? targetedUser = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == id); + if (targetedUser == null) return this.NotFound(); + + // Find and delete every score uploaded by the target user + await this.database.Scores.Where(c => c.UserId == targetedUser.UserId).ExecuteDeleteAsync(); + Logger.Success($"Deleted scores for {targetedUser.Username} (id:{targetedUser.UserId})", LogArea.Admin); + + await this.database.SendNotification(targetedUser.UserId, "Your scores have been deleted by a moderator."); + + return this.Redirect($"/user/{targetedUser.UserId}"); + } /// /// Forces the email verification of a user. diff --git a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml index 33a07af1e..98c23fcdb 100644 --- a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml @@ -324,6 +324,18 @@ else Wipe Earth Decorations + + + + Wipe User's Comments + + + + + Wipe User's Scores + @if (!Model.CommentsDisabledByModerator) { From 0fd76f16621929da947de3dce0316351b0045fa2 Mon Sep 17 00:00:00 2001 From: jackcaver <50882080+jackcaver@users.noreply.github.com> Date: Sun, 23 Jun 2024 07:38:59 +0600 Subject: [PATCH 06/21] Remove license check (#1035) * remove license check * removed IsDirty --------- Co-authored-by: jackcaver --- .../Pages/Debug/VersionInfoPage.cshtml | 1 - .../Pages/Layouts/BaseLayout.cshtml | 24 ------------------- ProjectLighthouse/Helpers/VersionHelper.cs | 1 - ProjectLighthouse/StartupTasks.cs | 6 ----- 4 files changed, 32 deletions(-) diff --git a/ProjectLighthouse.Servers.Website/Pages/Debug/VersionInfoPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/Debug/VersionInfoPage.cshtml index d8eff2a43..f5bec53d6 100644 --- a/ProjectLighthouse.Servers.Website/Pages/Debug/VersionInfoPage.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/Debug/VersionInfoPage.cshtml @@ -14,5 +14,4 @@

Branch: @VersionHelper.Branch

Build: @VersionHelper.Build

CommitHash: @VersionHelper.CommitHash

-

IsDirty: @VersionHelper.IsDirty

RepositoryUrl: @VersionHelper.RepositoryUrl

\ No newline at end of file diff --git a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml index 14f147822..725b59455 100644 --- a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml @@ -158,26 +158,6 @@ - @if (!ServerStatics.IsDebug() && VersionHelper.IsDirty) - { -
-
- - @Model.Translate(BaseLayoutStrings.LicenseWarnTitle) -

- @Html.Raw(Model.Translate(BaseLayoutStrings.LicenseWarn1, - "GNU Affero General Public License v3.0")) -

-

- @Html.Raw(Model.Translate(BaseLayoutStrings.LicenseWarn2, - "git status", "", "")) -

-

- @Html.Raw(Model.Translate(BaseLayoutStrings.LicenseWarn3)) -

-
-
- } @if (ServerConfiguration.Instance.UserGeneratedContentLimits.ReadOnlyMode) {
@@ -234,10 +214,6 @@ Cannot Detect Source Code } - @if (VersionHelper.IsDirty) - { -

@Model.Translate(BaseLayoutStrings.GeneratedModified)

- }
@if (ServerStatics.IsDebug()) diff --git a/ProjectLighthouse/Helpers/VersionHelper.cs b/ProjectLighthouse/Helpers/VersionHelper.cs index 895c36f74..f6c07003e 100644 --- a/ProjectLighthouse/Helpers/VersionHelper.cs +++ b/ProjectLighthouse/Helpers/VersionHelper.cs @@ -19,7 +19,6 @@ public static class VersionHelper public static string EnvVer => $"{ServerConfiguration.Instance.Customization.EnvironmentName} {FullRevision}"; public static string FullVersion => $"Project Lighthouse {ServerConfiguration.Instance.Customization.EnvironmentName} {Branch}@{CommitHash} {Build}"; - public static bool IsDirty => ThisAssembly.Git.IsDirty; public static string RepositoryUrl => ThisAssembly.Git.RepositoryUrl; public const string Build = diff --git a/ProjectLighthouse/StartupTasks.cs b/ProjectLighthouse/StartupTasks.cs index 6777b5107..ec1730eb4 100644 --- a/ProjectLighthouse/StartupTasks.cs +++ b/ProjectLighthouse/StartupTasks.cs @@ -53,12 +53,6 @@ public static async Task Run(ServerType serverType) // Version info depends on ServerConfig Logger.Info($"You are running version {VersionHelper.FullVersion}", LogArea.Startup); - if (VersionHelper.IsDirty) - { - Logger.Warn("This is a modified version of Project Lighthouse. " + - "Please make sure you are properly disclosing the source code to any users who may be using this instance.", - LogArea.Startup); - } Logger.Info("Connecting to the database...", LogArea.Startup); From 7fbfd618be0ec629e1e474263bb1e3d35f9ed7f6 Mon Sep 17 00:00:00 2001 From: Josh Date: Tue, 25 Jun 2024 04:18:43 -0500 Subject: [PATCH 07/21] Merge pull request from GHSA-8q42-63xx-75pf --- .../Startup/TokenAuthHandler.cs | 17 +- .../Database/DatabaseContext.Utils.cs | 1 + ...240625004457_AddLocationHashToGameToken.cs | 598 ++++++++++++++++++ .../DatabaseContextModelSnapshot.cs | 72 ++- ProjectLighthouse/Tickets/NPTicket.cs | 2 +- .../Types/Entities/Token/GameTokenEntity.cs | 4 + 6 files changed, 687 insertions(+), 7 deletions(-) create mode 100644 ProjectLighthouse/Migrations/20240625004457_AddLocationHashToGameToken.cs diff --git a/ProjectLighthouse.Servers.GameServer/Startup/TokenAuthHandler.cs b/ProjectLighthouse.Servers.GameServer/Startup/TokenAuthHandler.cs index 02760bce4..cc97b80ff 100644 --- a/ProjectLighthouse.Servers.GameServer/Startup/TokenAuthHandler.cs +++ b/ProjectLighthouse.Servers.GameServer/Startup/TokenAuthHandler.cs @@ -1,6 +1,8 @@ -using System.Security.Claims; +using System.Net; +using System.Security.Claims; using System.Text.Encodings.Web; using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Types.Entities.Token; using Microsoft.AspNetCore.Authentication; using Microsoft.Extensions.Logging.Abstractions; @@ -36,10 +38,17 @@ protected override async Task HandleAuthenticateAsync() GameTokenEntity? gameToken = await this.database.GameTokenFromRequest(this.Request); if (gameToken == null) return AuthenticateResult.Fail("No game token"); + IPAddress? remoteIpAddress = this.Context.Connection.RemoteIpAddress; + if (remoteIpAddress == null) return AuthenticateResult.Fail("Failed to determine IP address"); + + if (CryptoHelper.Sha256Hash(remoteIpAddress.ToString()) != gameToken.LocationHash) + return AuthenticateResult.Fail("IP address change detected"); + this.Context.Items["Token"] = gameToken; - Claim[] claims = { - new("userId", gameToken.UserId.ToString()), - }; + Claim[] claims = + [ + new Claim("userId", gameToken.UserId.ToString()), + ]; ClaimsIdentity identity = new(claims, this.Scheme.Name); ClaimsPrincipal principal = new(identity); AuthenticationTicket ticket = new(principal, this.Scheme.Name); diff --git a/ProjectLighthouse/Database/DatabaseContext.Utils.cs b/ProjectLighthouse/Database/DatabaseContext.Utils.cs index 3ef20d06a..a4a22e968 100644 --- a/ProjectLighthouse/Database/DatabaseContext.Utils.cs +++ b/ProjectLighthouse/Database/DatabaseContext.Utils.cs @@ -70,6 +70,7 @@ public async Task UserIdFromUsername(string? username) GameVersion = npTicket.GameVersion, Platform = npTicket.Platform, TicketHash = npTicket.TicketHash, + LocationHash = CryptoHelper.Sha256Hash(userLocation), // we can get away with a low expiry here since LBP will just get a new token everytime it gets 403'd ExpiresAt = DateTime.UtcNow + TimeSpan.FromHours(1), }; diff --git a/ProjectLighthouse/Migrations/20240625004457_AddLocationHashToGameToken.cs b/ProjectLighthouse/Migrations/20240625004457_AddLocationHashToGameToken.cs new file mode 100644 index 000000000..ff8858ee1 --- /dev/null +++ b/ProjectLighthouse/Migrations/20240625004457_AddLocationHashToGameToken.cs @@ -0,0 +1,598 @@ +using LBPUnion.ProjectLighthouse.Database; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace LBPUnion.ProjectLighthouse.Migrations +{ + [DbContext(typeof(DatabaseContext))] + [Migration("20240625004457_AddLocationHashToGameToken")] + public partial class AddLocationHashToGameToken : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "TokenId", + table: "WebTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "AnnouncementId", + table: "WebsiteAnnouncements", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "VisitedLevelId", + table: "VisitedLevels", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "UserId", + table: "Users", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "SlotId", + table: "Slots", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "ScoreId", + table: "Scores", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "ReviewId", + table: "Reviews", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "ReportId", + table: "Reports", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "TokenId", + table: "RegistrationTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "RatedReviewId", + table: "RatedReviews", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "RatedLevelId", + table: "RatedLevels", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "RatingId", + table: "RatedComments", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "QueuedLevelId", + table: "QueuedLevels", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "PlaylistId", + table: "Playlists", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "PlatformLinkAttemptId", + table: "PlatformLinkAttempts", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "PhotoSubjectId", + table: "PhotoSubjects", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "PhotoId", + table: "Photos", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "TokenId", + table: "PasswordResetTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "Id", + table: "Notifications", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "HeartedProfileId", + table: "HeartedProfiles", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "HeartedPlaylistId", + table: "HeartedPlaylists", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "HeartedLevelId", + table: "HeartedLevels", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "TicketHash", + table: "GameTokens", + type: "varchar(64)", + maxLength: 64, + nullable: true, + oldClrType: typeof(string), + oldType: "longtext", + oldNullable: true) + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "TokenId", + table: "GameTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AddColumn( + name: "LocationHash", + table: "GameTokens", + type: "varchar(64)", + maxLength: 64, + nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "EmailVerificationTokenId", + table: "EmailVerificationTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "EmailSetTokenId", + table: "EmailSetTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "CategoryId", + table: "CustomCategories", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "CommentId", + table: "Comments", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "CaseId", + table: "Cases", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "BlockedProfileId", + table: "BlockedProfiles", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "Id", + table: "APIKeys", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "LocationHash", + table: "GameTokens"); + + migrationBuilder.AlterColumn( + name: "TokenId", + table: "WebTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "AnnouncementId", + table: "WebsiteAnnouncements", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "VisitedLevelId", + table: "VisitedLevels", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "UserId", + table: "Users", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "SlotId", + table: "Slots", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "ScoreId", + table: "Scores", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "ReviewId", + table: "Reviews", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "ReportId", + table: "Reports", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "TokenId", + table: "RegistrationTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "RatedReviewId", + table: "RatedReviews", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "RatedLevelId", + table: "RatedLevels", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "RatingId", + table: "RatedComments", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "QueuedLevelId", + table: "QueuedLevels", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "PlaylistId", + table: "Playlists", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "PlatformLinkAttemptId", + table: "PlatformLinkAttempts", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "PhotoSubjectId", + table: "PhotoSubjects", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "PhotoId", + table: "Photos", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "TokenId", + table: "PasswordResetTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "Id", + table: "Notifications", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "HeartedProfileId", + table: "HeartedProfiles", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "HeartedPlaylistId", + table: "HeartedPlaylists", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "HeartedLevelId", + table: "HeartedLevels", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "TicketHash", + table: "GameTokens", + type: "longtext", + nullable: true, + oldClrType: typeof(string), + oldType: "varchar(64)", + oldMaxLength: 64, + oldNullable: true) + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "TokenId", + table: "GameTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "EmailVerificationTokenId", + table: "EmailVerificationTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "EmailSetTokenId", + table: "EmailSetTokens", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "CategoryId", + table: "CustomCategories", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "CommentId", + table: "Comments", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "CaseId", + table: "Cases", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "BlockedProfileId", + table: "BlockedProfiles", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + + migrationBuilder.AlterColumn( + name: "Id", + table: "APIKeys", + type: "int", + nullable: false, + oldClrType: typeof(int), + oldType: "int") + .OldAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn); + } + } +} diff --git a/ProjectLighthouse/Migrations/DatabaseContextModelSnapshot.cs b/ProjectLighthouse/Migrations/DatabaseContextModelSnapshot.cs index 34e58686d..6c801706c 100644 --- a/ProjectLighthouse/Migrations/DatabaseContextModelSnapshot.cs +++ b/ProjectLighthouse/Migrations/DatabaseContextModelSnapshot.cs @@ -3,6 +3,7 @@ using LBPUnion.ProjectLighthouse.Database; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; #nullable disable @@ -16,15 +17,19 @@ protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "8.0.2") + .HasAnnotation("ProductVersion", "8.0.6") .HasAnnotation("Relational:MaxIdentifierLength", 64); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + modelBuilder.Entity("LBPUnion.ProjectLighthouse.Types.Entities.Interaction.HeartedLevelEntity", b => { b.Property("HeartedLevelId") .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("HeartedLevelId")); + b.Property("SlotId") .HasColumnType("int"); @@ -46,6 +51,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("HeartedPlaylistId")); + b.Property("PlaylistId") .HasColumnType("int"); @@ -67,6 +74,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("HeartedProfileId")); + b.Property("HeartedUserId") .HasColumnType("int"); @@ -88,6 +97,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("QueuedLevelId")); + b.Property("SlotId") .HasColumnType("int"); @@ -109,6 +120,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RatingId")); + b.Property("CommentId") .HasColumnType("int"); @@ -133,6 +146,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RatedLevelId")); + b.Property("Rating") .HasColumnType("int"); @@ -163,6 +178,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RatedReviewId")); + b.Property("ReviewId") .HasColumnType("int"); @@ -187,6 +204,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("VisitedLevelId")); + b.Property("PlaysLBP1") .HasColumnType("int"); @@ -217,6 +236,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CategoryId")); + b.Property("Description") .HasColumnType("longtext"); @@ -243,6 +264,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PlaylistId")); + b.Property("CreatorId") .HasColumnType("int"); @@ -271,6 +294,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ReviewId")); + b.Property("Deleted") .HasColumnType("tinyint(1)"); @@ -318,6 +343,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ScoreId")); + b.Property("ChildSlotId") .HasColumnType("int"); @@ -351,6 +378,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SlotId")); + b.Property("AuthorLabels") .IsRequired() .HasColumnType("longtext"); @@ -504,6 +533,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ReportId")); + b.Property("Bounds") .HasColumnType("longtext"); @@ -550,6 +581,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CaseId")); + b.Property("AffectedId") .HasColumnType("int"); @@ -604,6 +637,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + b.Property("IsDismissed") .HasColumnType("tinyint(1)"); @@ -629,6 +664,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("BlockedProfileId")); + b.Property("BlockedUserId") .HasColumnType("int"); @@ -650,6 +687,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CommentId")); + b.Property("Deleted") .HasColumnType("tinyint(1)"); @@ -719,6 +758,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PhotoId")); + b.Property("CreatorId") .HasColumnType("int"); @@ -759,6 +800,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PhotoSubjectId")); + b.Property("Bounds") .HasColumnType("longtext"); @@ -783,6 +826,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PlatformLinkAttemptId")); + b.Property("IPAddress") .HasColumnType("longtext"); @@ -811,6 +856,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("UserId")); + b.Property("AdminGrantedSlots") .HasColumnType("int"); @@ -916,6 +963,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + b.Property("Created") .HasColumnType("datetime(6)"); @@ -936,6 +985,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("EmailSetTokenId")); + b.Property("EmailToken") .HasColumnType("longtext"); @@ -958,6 +1009,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("EmailVerificationTokenId")); + b.Property("EmailToken") .HasColumnType("longtext"); @@ -980,17 +1033,24 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId")); + b.Property("ExpiresAt") .HasColumnType("datetime(6)"); b.Property("GameVersion") .HasColumnType("int"); + b.Property("LocationHash") + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + b.Property("Platform") .HasColumnType("int"); b.Property("TicketHash") - .HasColumnType("longtext"); + .HasMaxLength(64) + .HasColumnType("varchar(64)"); b.Property("UserId") .HasColumnType("int"); @@ -1011,6 +1071,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId")); + b.Property("Created") .HasColumnType("datetime(6)"); @@ -1031,6 +1093,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId")); + b.Property("Created") .HasColumnType("datetime(6)"); @@ -1051,6 +1115,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TokenId")); + b.Property("ExpiresAt") .HasColumnType("datetime(6)"); @@ -1074,6 +1140,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("int"); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("AnnouncementId")); + b.Property("Content") .HasColumnType("longtext"); diff --git a/ProjectLighthouse/Tickets/NPTicket.cs b/ProjectLighthouse/Tickets/NPTicket.cs index bb11a93e2..69173d7c4 100644 --- a/ProjectLighthouse/Tickets/NPTicket.cs +++ b/ProjectLighthouse/Tickets/NPTicket.cs @@ -185,7 +185,7 @@ private static bool ReadTicket(NPTicket npTicket, TicketReader reader) } // Used to identify duplicate tickets - npTicket.TicketHash = CryptoHelper.Sha1Hash(data); + npTicket.TicketHash = CryptoHelper.Sha256Hash(data); #if DEBUG Logger.Debug("npTicket data:", LogArea.Login); diff --git a/ProjectLighthouse/Types/Entities/Token/GameTokenEntity.cs b/ProjectLighthouse/Types/Entities/Token/GameTokenEntity.cs index c1bb16250..ab7d3a169 100644 --- a/ProjectLighthouse/Types/Entities/Token/GameTokenEntity.cs +++ b/ProjectLighthouse/Types/Entities/Token/GameTokenEntity.cs @@ -23,7 +23,11 @@ public class GameTokenEntity public Platform Platform { get; set; } + [StringLength(64)] public string TicketHash { get; set; } + [StringLength(64)] + public string LocationHash { get; set; } + public DateTime ExpiresAt { get; set; } } \ No newline at end of file From 573e7c4f1f565c168e0427f0cbb76319d5a9851f Mon Sep 17 00:00:00 2001 From: Slendy Date: Tue, 25 Jun 2024 04:20:18 -0500 Subject: [PATCH 08/21] Categorize review tests as unit tests --- .../Unit/Controllers/ReviewControllerTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ReviewControllerTests.cs b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ReviewControllerTests.cs index 303b4f859..d6eb94f80 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ReviewControllerTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Unit/Controllers/ReviewControllerTests.cs @@ -13,6 +13,7 @@ namespace ProjectLighthouse.Tests.GameApiTests.Unit.Controllers; +[Trait("Category", "Unit")] public class ReviewControllerTests { private static async Task InsertTestData(DatabaseContext database) From 541172b001802e01573fe3b6e1fdfe30cfea968f Mon Sep 17 00:00:00 2001 From: Slendy Date: Tue, 25 Jun 2024 04:38:21 -0500 Subject: [PATCH 09/21] Don't reuse instances of SHA256 when hashing. --- ProjectLighthouse/Helpers/CryptoHelper.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ProjectLighthouse/Helpers/CryptoHelper.cs b/ProjectLighthouse/Helpers/CryptoHelper.cs index cfa896a21..58a5282c0 100644 --- a/ProjectLighthouse/Helpers/CryptoHelper.cs +++ b/ProjectLighthouse/Helpers/CryptoHelper.cs @@ -9,9 +9,6 @@ namespace LBPUnion.ProjectLighthouse.Helpers; public static class CryptoHelper { - - private static readonly SHA256 sha256 = SHA256.Create(); - /// /// Generates a random SHA256 and BCrypted token /// @@ -156,7 +153,7 @@ private static bool ValuesEqual(string a, string b) public static string Sha256Hash(string str) => Sha256Hash(Encoding.UTF8.GetBytes(str)); - public static string Sha256Hash(byte[] bytes) => BitConverter.ToString(sha256.ComputeHash(bytes)).Replace("-", "").ToLower(); + public static string Sha256Hash(byte[] bytes) => BitConverter.ToString(SHA256.HashData(bytes)).Replace("-", "").ToLower(); public static string Sha1Hash(byte[] bytes) => BitConverter.ToString(SHA1.HashData(bytes)).Replace("-", ""); From 98a7f95e6522fa877180fb82d678238d58d44bd4 Mon Sep 17 00:00:00 2001 From: Slendy Date: Tue, 25 Jun 2024 04:44:03 -0500 Subject: [PATCH 10/21] Disable comments on story levels if comments are turned off in config. --- .../Types/Serialization/GameDeveloperSlot.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ProjectLighthouse/Types/Serialization/GameDeveloperSlot.cs b/ProjectLighthouse/Types/Serialization/GameDeveloperSlot.cs index 3de55ee46..93f8436c9 100644 --- a/ProjectLighthouse/Types/Serialization/GameDeveloperSlot.cs +++ b/ProjectLighthouse/Types/Serialization/GameDeveloperSlot.cs @@ -1,6 +1,8 @@ -using System.Linq; +using System; +using System.Linq; using System.Threading.Tasks; using System.Xml.Serialization; +using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.Database; using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Types.Entities.Profile; @@ -30,6 +32,13 @@ public class GameDeveloperSlot : SlotBase, INeedsPreparationForSerialization [XmlElement("photoCount")] public int PhotoCount { get; set; } + [XmlElement("commentsEnabled")] + public bool CommentsEnabled + { + get => ServerConfiguration.Instance.UserGeneratedContentLimits.LevelCommentsEnabled; + set => throw new NotSupportedException(); + } + public async Task PrepareSerialization(DatabaseContext database) { if (this.SlotId == 0 || this.InternalSlotId == 0) return; From e060f55896f20b09b16c228de2db8d46a3c68975 Mon Sep 17 00:00:00 2001 From: Henry Asbridge Date: Sat, 29 Jun 2024 19:14:16 +0100 Subject: [PATCH 11/21] Base64 encode auth tokens (#1029) * Base64 encode auth tokens to prevent issues in emails This fixes #1023, which should in turn solve some issues people were having with emails. * Make test bcrypt hash things as the auth token isn't one by default * Update ProjectLighthouse/Helpers/CryptoHelper.cs Co-authored-by: Josh * Make only email tokens base64 encoded --------- Co-authored-by: Zaprit Co-authored-by: Josh --- .../Integration/DatabaseTests.cs | 4 ++-- ProjectLighthouse/Helpers/CryptoHelper.cs | 7 ++++++- ProjectLighthouse/Helpers/EmailHelper.cs | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ProjectLighthouse.Tests.GameApiTests/Integration/DatabaseTests.cs b/ProjectLighthouse.Tests.GameApiTests/Integration/DatabaseTests.cs index cc8ddc278..fb87b6186 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Integration/DatabaseTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Integration/DatabaseTests.cs @@ -20,8 +20,8 @@ public async Task CanCreateUserTwice() int rand = new Random().Next(); - UserEntity userA = await database.CreateUser("unitTestUser" + rand, CryptoHelper.GenerateAuthToken()); - UserEntity userB = await database.CreateUser("unitTestUser" + rand, CryptoHelper.GenerateAuthToken()); + UserEntity userA = await database.CreateUser("unitTestUser" + rand, CryptoHelper.BCryptHash(CryptoHelper.GenerateAuthToken())); + UserEntity userB = await database.CreateUser("unitTestUser" + rand, CryptoHelper.BCryptHash(CryptoHelper.GenerateAuthToken())); Assert.NotNull(userA); Assert.NotNull(userB); diff --git a/ProjectLighthouse/Helpers/CryptoHelper.cs b/ProjectLighthouse/Helpers/CryptoHelper.cs index 58a5282c0..dc719bf4a 100644 --- a/ProjectLighthouse/Helpers/CryptoHelper.cs +++ b/ProjectLighthouse/Helpers/CryptoHelper.cs @@ -16,10 +16,15 @@ public static class CryptoHelper public static string GenerateAuthToken() { byte[] bytes = (byte[])GenerateRandomBytes(256); - return BCryptHash(Sha256Hash(bytes)); } + public static string GenerateUrlToken() + { + byte[] bytes = (byte[])GenerateRandomBytes(256); + return Convert.ToBase64String(Encoding.UTF8.GetBytes(BCryptHash(Sha256Hash(bytes)))); + } + public static string ComputeDigest(string path, string authCookie, byte[] body, string digestKey, bool excludeBody = false) { diff --git a/ProjectLighthouse/Helpers/EmailHelper.cs b/ProjectLighthouse/Helpers/EmailHelper.cs index 3750f41c4..52c69f9da 100644 --- a/ProjectLighthouse/Helpers/EmailHelper.cs +++ b/ProjectLighthouse/Helpers/EmailHelper.cs @@ -52,7 +52,7 @@ public static async Task SendPasswordResetEmail(DatabaseContext database, IMailS { Created = DateTime.UtcNow, UserId = user.UserId, - ResetToken = CryptoHelper.GenerateAuthToken(), + ResetToken = CryptoHelper.GenerateUrlToken(), }; database.PasswordResetTokens.Add(token); @@ -92,7 +92,7 @@ public static async Task SendVerificationEmail(DatabaseContext database, I { UserId = user.UserId, User = user, - EmailToken = CryptoHelper.GenerateAuthToken(), + EmailToken = CryptoHelper.GenerateUrlToken(), ExpiresAt = DateTime.UtcNow.AddHours(6), }; From a0157c9a997a56578d3bb768bae13e1a6c206aa5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2024 13:35:13 -0400 Subject: [PATCH 12/21] Bump SixLabors.ImageSharp from 3.1.4 to 3.1.5 in /ProjectLighthouse (#1048) Bumps [SixLabors.ImageSharp](https://github.com/SixLabors/ImageSharp) from 3.1.4 to 3.1.5. - [Release notes](https://github.com/SixLabors/ImageSharp/releases) - [Commits](https://github.com/SixLabors/ImageSharp/compare/v3.1.4...v3.1.5) --- updated-dependencies: - dependency-name: SixLabors.ImageSharp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- ProjectLighthouse/ProjectLighthouse.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectLighthouse/ProjectLighthouse.csproj b/ProjectLighthouse/ProjectLighthouse.csproj index c538b2204..6fff81a2a 100644 --- a/ProjectLighthouse/ProjectLighthouse.csproj +++ b/ProjectLighthouse/ProjectLighthouse.csproj @@ -15,7 +15,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + From fb2192d37d4bb4c637944334b57832a009f984d9 Mon Sep 17 00:00:00 2001 From: Kat <30480654+Metraberryy@users.noreply.github.com> Date: Wed, 28 Aug 2024 18:16:08 -0700 Subject: [PATCH 13/21] filter locked levels from lucky dip (#1055) * filter locked levels from lucky dip * yeah sure * put the filter in a more reasonable place --- .../Controllers/Slots/SlotsController.cs | 1 + .../Types/Categories/LuckyDipCategory.cs | 8 ++++++-- ProjectLighthouse/Filter/Filters/LockedSlotFilter.cs | 11 +++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 ProjectLighthouse/Filter/Filters/LockedSlotFilter.cs diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs index 13f9afa8a..f71267bab 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs @@ -263,6 +263,7 @@ public async Task LuckyDipSlots([FromQuery] int seed) PaginationData pageData = this.Request.GetPaginationData(); SlotQueryBuilder queryBuilder = this.FilterFromRequest(token); + queryBuilder.AddFilter(new LockedSlotFilter()); pageData.TotalElements = await StatisticsHelper.SlotCount(this.database, queryBuilder); diff --git a/ProjectLighthouse.Servers.GameServer/Types/Categories/LuckyDipCategory.cs b/ProjectLighthouse.Servers.GameServer/Types/Categories/LuckyDipCategory.cs index 93bea8805..6d8528b4d 100644 --- a/ProjectLighthouse.Servers.GameServer/Types/Categories/LuckyDipCategory.cs +++ b/ProjectLighthouse.Servers.GameServer/Types/Categories/LuckyDipCategory.cs @@ -2,6 +2,7 @@ using LBPUnion.ProjectLighthouse.Database; using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Filter; +using LBPUnion.ProjectLighthouse.Filter.Filters; using LBPUnion.ProjectLighthouse.Filter.Sorts; using LBPUnion.ProjectLighthouse.Types.Entities.Level; using LBPUnion.ProjectLighthouse.Types.Entities.Token; @@ -16,7 +17,10 @@ public class LuckyDipCategory : SlotCategory public override string Endpoint { get; set; } = "lucky_dip"; public override string Tag => "lucky_dip"; - public override IQueryable GetItems(DatabaseContext database, GameTokenEntity token, SlotQueryBuilder queryBuilder) => - database.Slots.Where(queryBuilder.Build()) + public override IQueryable GetItems(DatabaseContext database, GameTokenEntity token, SlotQueryBuilder queryBuilder) + { + queryBuilder.AddFilter(new LockedSlotFilter()); + return database.Slots.Where(queryBuilder.Build()) .ApplyOrdering(new SlotSortBuilder().AddSort(new RandomFirstUploadedSort())); + } } \ No newline at end of file diff --git a/ProjectLighthouse/Filter/Filters/LockedSlotFilter.cs b/ProjectLighthouse/Filter/Filters/LockedSlotFilter.cs new file mode 100644 index 000000000..185b45658 --- /dev/null +++ b/ProjectLighthouse/Filter/Filters/LockedSlotFilter.cs @@ -0,0 +1,11 @@ +using System; +using System.Linq.Expressions; +using LBPUnion.ProjectLighthouse.Types.Entities.Level; +using LBPUnion.ProjectLighthouse.Types.Filter; + +namespace LBPUnion.ProjectLighthouse.Filter.Filters; + +public class LockedSlotFilter : ISlotFilter +{ + public Expression> GetPredicate() => s => !s.InitiallyLocked; +} \ No newline at end of file From 0af064ad1e73a741c6385a4e9cdb185d7ba7897a Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 28 Aug 2024 20:17:03 -0500 Subject: [PATCH 14/21] Implement player count per platform and player list API endpoints (#1014) * Implement player count per platform and player list API endpoints * Fix inconsistencies in the XML documentation * Update PlayerListResponse.cs --- .../Controllers/StatisticsEndpoints.cs | 72 +++++++++++++++++-- .../Responses/PlayerCountResponse.cs | 28 +++++++- .../Responses/PlayerListResponse.cs | 13 ++++ .../Controllers/StatisticsController.cs | 3 +- ProjectLighthouse/Helpers/StatisticsHelper.cs | 7 +- 5 files changed, 113 insertions(+), 10 deletions(-) create mode 100644 ProjectLighthouse.Servers.API/Responses/PlayerListResponse.cs diff --git a/ProjectLighthouse.Servers.API/Controllers/StatisticsEndpoints.cs b/ProjectLighthouse.Servers.API/Controllers/StatisticsEndpoints.cs index dcd9a5c29..76310aecc 100644 --- a/ProjectLighthouse.Servers.API/Controllers/StatisticsEndpoints.cs +++ b/ProjectLighthouse.Servers.API/Controllers/StatisticsEndpoints.cs @@ -5,6 +5,7 @@ using LBPUnion.ProjectLighthouse.Servers.API.Responses; using LBPUnion.ProjectLighthouse.Types.Users; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; @@ -49,24 +50,33 @@ public async Task GetStatistics() GameVersion.LittleBigPlanetPSP, }; + private static readonly List platforms = new() + { + Platform.PS3, + Platform.RPCS3, + Platform.Vita, + Platform.PSP, + }; + /// /// Get player counts for each individual title /// - /// An instance of PlayerCountResponse + /// An instance of PlayerCountByGameResponse [HttpGet("playerCount")] - [ProducesResponseType(typeof(PlayerCountResponse), StatusCodes.Status200OK)] + [HttpGet("playerCount/game")] + [ProducesResponseType(typeof(PlayerCountByGameResponse), StatusCodes.Status200OK)] public async Task GetPlayerCounts() { List gameList = new(); foreach (GameVersion version in gameVersions) { - gameList.Add(new PlayerCountObject + gameList.Add(new PlayerCountByGameObject { Game = version.ToString(), - PlayerCount = await StatisticsHelper.RecentMatchesForGame(this.database, version), + PlayerCount = await StatisticsHelper.RecentMatches(this.database, l => l.GameVersion == version), }); } - PlayerCountResponse response = new() + PlayerCountByGameResponse response = new() { TotalPlayerCount = await StatisticsHelper.RecentMatches(this.database), Games = gameList, @@ -74,4 +84,56 @@ public async Task GetPlayerCounts() return this.Ok(response); } + + /// + /// Get player counts for each individual platform + /// + /// An instance of PlayerCountByPlatformResponse + [HttpGet("playerCount/platform")] + [ProducesResponseType(typeof(PlayerCountByPlatformResponse), StatusCodes.Status200OK)] + public async Task GetPlayerCountsByPlatform() + { + List platformList = new(); + foreach (Platform platform in platforms) + { + platformList.Add(new PlayerCountByPlatformObject + { + Platform = platform.ToString(), + PlayerCount = await StatisticsHelper.RecentMatches(this.database, l => l.Platform == platform), + }); + } + + PlayerCountByPlatformResponse response = new() + { + TotalPlayerCount = await StatisticsHelper.RecentMatches(this.database), + Platforms = platformList, + }; + + return this.Ok(response); + } + + /// + /// Gets a list of online players + /// + /// An instance of PlayerListResponse + [HttpGet("players")] + [ProducesResponseType(typeof(PlayerListResponse), StatusCodes.Status200OK)] + public async Task GetPlayerList() + { + List players = await this.database.LastContacts.Where(l => TimeHelper.Timestamp - l.Timestamp < 300) + .Select(l => new PlayerListObject + { + Username = l.User!.Username, + Game = l.GameVersion.ToString(), + Platform = l.Platform.ToString(), + }) + .ToListAsync(); + + PlayerListResponse response = new() + { + Players = players, + }; + + return this.Ok(response); + } } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.API/Responses/PlayerCountResponse.cs b/ProjectLighthouse.Servers.API/Responses/PlayerCountResponse.cs index 27e82e306..619a848a9 100644 --- a/ProjectLighthouse.Servers.API/Responses/PlayerCountResponse.cs +++ b/ProjectLighthouse.Servers.API/Responses/PlayerCountResponse.cs @@ -1,13 +1,37 @@ -namespace LBPUnion.ProjectLighthouse.Servers.API.Responses; +using System.Text.Json.Serialization; +namespace LBPUnion.ProjectLighthouse.Servers.API.Responses; + +[JsonDerivedType(typeof(PlayerCountByGameObject))] +[JsonDerivedType(typeof(PlayerCountByPlatformObject))] public class PlayerCountObject { - public string Game { get; set; } = ""; public int PlayerCount { get; set; } } +public class PlayerCountByGameObject : PlayerCountObject +{ + public string Game { get; set; } = ""; +} + +public class PlayerCountByPlatformObject : PlayerCountObject +{ + public string Platform { get; set; } = ""; +} + +[JsonDerivedType(typeof(PlayerCountByGameResponse))] +[JsonDerivedType(typeof(PlayerCountByPlatformResponse))] public class PlayerCountResponse { public int TotalPlayerCount { get; set; } +} + +public class PlayerCountByGameResponse : PlayerCountResponse +{ public List Games { get; set; } = new(); +} + +public class PlayerCountByPlatformResponse : PlayerCountResponse +{ + public List Platforms { get; set; } = new(); } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.API/Responses/PlayerListResponse.cs b/ProjectLighthouse.Servers.API/Responses/PlayerListResponse.cs new file mode 100644 index 000000000..55470d4a4 --- /dev/null +++ b/ProjectLighthouse.Servers.API/Responses/PlayerListResponse.cs @@ -0,0 +1,13 @@ +namespace LBPUnion.ProjectLighthouse.Servers.API.Responses; + +public class PlayerListResponse +{ + public required List Players { get; set; } +} + +public class PlayerListObject +{ + public required string Username { get; set; } + public required string Game { get; set; } + public required string Platform { get; set; } +} diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/StatisticsController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/StatisticsController.cs index 3eb828e47..3f70b3d00 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/StatisticsController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/StatisticsController.cs @@ -27,7 +27,8 @@ public StatisticsController(DatabaseContext database) public IActionResult PlayersInPodCount() => this.Ok(StatisticsHelper.RoomCountForPlatform(this.GetToken().Platform).ToString()); [HttpGet("totalPlayerCount")] - public async Task TotalPlayerCount() => this.Ok((await StatisticsHelper.RecentMatchesForGame(this.database, this.GetToken().GameVersion)).ToString()); + public async Task TotalPlayerCount() => + this.Ok((await StatisticsHelper.RecentMatches(this.database, l => l.GameVersion == this.GetToken().GameVersion)).ToString()); [HttpGet("planetStats")] [Produces("text/xml")] diff --git a/ProjectLighthouse/Helpers/StatisticsHelper.cs b/ProjectLighthouse/Helpers/StatisticsHelper.cs index 0f0070ab1..525ae7771 100644 --- a/ProjectLighthouse/Helpers/StatisticsHelper.cs +++ b/ProjectLighthouse/Helpers/StatisticsHelper.cs @@ -1,7 +1,10 @@ +using System; using System.Linq; +using System.Linq.Expressions; using System.Threading.Tasks; using LBPUnion.ProjectLighthouse.Database; using LBPUnion.ProjectLighthouse.Filter; +using LBPUnion.ProjectLighthouse.Types.Entities.Profile; using LBPUnion.ProjectLighthouse.Types.Users; using Microsoft.EntityFrameworkCore; @@ -11,8 +14,8 @@ public static class StatisticsHelper { public static async Task RecentMatches(DatabaseContext database) => await database.LastContacts.Where(l => TimeHelper.Timestamp - l.Timestamp < 300).CountAsync(); - public static async Task RecentMatchesForGame(DatabaseContext database, GameVersion gameVersion) - => await database.LastContacts.Where(l => TimeHelper.Timestamp - l.Timestamp < 300 && l.GameVersion == gameVersion).CountAsync(); + public static async Task RecentMatches(DatabaseContext database, Expression> contactFilter) => + await database.LastContacts.Where(l => TimeHelper.Timestamp - l.Timestamp < 300).Where(contactFilter).CountAsync(); public static async Task SlotCount(DatabaseContext database, SlotQueryBuilder queryBuilder) => await database.Slots.Where(queryBuilder.Build()).CountAsync(); From 917cccb3b020d4ec1d594eed62ffc0c76c16e140 Mon Sep 17 00:00:00 2001 From: FeTetra <166051662+FeTetra@users.noreply.github.com> Date: Mon, 2 Sep 2024 17:27:27 -0400 Subject: [PATCH 15/21] Add button and controller to remove user avatar (#1057) * Add button and controller to remove user avatar * Update ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs Suggestion provided to add logging, a return, and sending a notification to the affected user Co-authored-by: Josh * Update ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs Co-authored-by: Josh --------- Co-authored-by: Josh --- .../Controllers/Admin/AdminUserController.cs | 24 ++++++++++++++++++- .../Pages/UserPage.cshtml | 5 ++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs index 55db420c1..b4b0ec983 100644 --- a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs +++ b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminUserController.cs @@ -143,7 +143,29 @@ public async Task WipeScores([FromRoute] int id) } /// - /// Forces the email verification of a user. + /// Deletes the user's current avatar. Can prevent crashes in-game, or just be used to remove images that break guidelines. + /// + [HttpGet("wipeAvatar")] + public async Task WipeAvatar([FromRoute] int id) + { + UserEntity? user = this.database.UserFromWebRequest(this.Request); + if (user == null || !user.IsModerator) return this.NotFound(); + + UserEntity? targetedUser = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == id); + if (targetedUser == null) return this.NotFound(); + + targetedUser.IconHash = ""; + + await this.database.SaveChangesAsync(); + Logger.Success($"Reset profile picture for {targetedUser.Username} (id:{targetedUser.UserId})", LogArea.Admin); + + await this.database.SendNotification(targetedUser.UserId, "Your profile picture has been reset by a moderator."); + + return this.Redirect($"/user/{targetedUser.UserId}"); + } + + /// + /// Forces the email verification of a user. /// [HttpGet("forceVerifyEmail")] public async Task ForceVerifyEmail([FromRoute] int id) diff --git a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml index 98c23fcdb..84d9e0bab 100644 --- a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml @@ -337,6 +337,11 @@ else Wipe User's Scores + + + Remove User Avatar + + @if (!Model.CommentsDisabledByModerator) { From 9030d644fab8ca00ac3806669e54e51823e2e9dd Mon Sep 17 00:00:00 2001 From: Josh Date: Tue, 10 Sep 2024 14:46:41 -0500 Subject: [PATCH 16/21] Identify NpTicket platform based on signature identifier instead of issuer ID (#1062) * Identify platform based on signature identifier instead of issuer id * Use signature identifier to identify PS3 * Remove extra whitespace --- ProjectLighthouse/Tickets/NPTicket.cs | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/ProjectLighthouse/Tickets/NPTicket.cs b/ProjectLighthouse/Tickets/NPTicket.cs index 69173d7c4..e2fc02834 100644 --- a/ProjectLighthouse/Tickets/NPTicket.cs +++ b/ProjectLighthouse/Tickets/NPTicket.cs @@ -78,19 +78,13 @@ private static bool ReadTicket(NPTicket npTicket, TicketReader reader) if (!ticketParser.ParseTicket()) return false; - // Create a uint in big endian - uint signatureIdentifier = (uint)(npTicket.TicketSignatureIdentifier[0] << 24 | - npTicket.TicketSignatureIdentifier[1] << 16 | - npTicket.TicketSignatureIdentifier[2] << 8 | - npTicket.TicketSignatureIdentifier[3]); - - npTicket.SignatureVerifier = signatureIdentifier switch + npTicket.SignatureVerifier = npTicket.TicketSignatureIdentifier switch { - 0x5250434E => new RpcnSignatureVerifier(npTicket), - 0x719F1D4A => new PsnSignatureVerifier(npTicket), - 0x54455354 => new UnitTestSignatureVerifier(npTicket), + [0x71, 0x9F, 0x1D, 0x4A,] => new PsnSignatureVerifier(npTicket), // PSN LBP Signature Identifier + [0x52, 0x50, 0x43, 0x4E,] => new RpcnSignatureVerifier(npTicket), // 'RPCN' in ascii + [0x54, 0x45, 0x53, 0x54,] => new UnitTestSignatureVerifier(npTicket), // 'TEST' in ascii _ => throw new ArgumentOutOfRangeException(nameof(npTicket), - signatureIdentifier, + npTicket.TicketSignatureIdentifier, @"Invalid signature identifier"), }; @@ -159,13 +153,11 @@ private static bool ReadTicket(NPTicket npTicket, TicketReader reader) return null; } - // Production PSN Issuer ID: 0x100 - // RPCN Issuer ID: 0x33333333 - npTicket.Platform = npTicket.IssuerId switch + npTicket.Platform = npTicket.SignatureVerifier switch { - 0x100 => Platform.PS3, - 0x33333333 => Platform.RPCS3, - 0x74657374 => Platform.UnitTest, + PsnSignatureVerifier => Platform.PS3, + RpcnSignatureVerifier => Platform.RPCS3, + UnitTestSignatureVerifier => Platform.UnitTest, _ => Platform.Unknown, }; From 528ee8dd172cda2dd90f4f477eb0a9937faa1d8a Mon Sep 17 00:00:00 2001 From: PorkchopGMX <92129305+PorkchopGMX@users.noreply.github.com> Date: Fri, 20 Sep 2024 00:03:59 -0500 Subject: [PATCH 17/21] Update README.md (#1065) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d73385550..4020432e4 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ![Source Lines of Code](https://tokei.ekzhang.com/b1/github/LBPUnion/ProjectLighthouse) Project Lighthouse is a clean-room, open-source custom server for LittleBigPlanet. This is a project conducted by -the [LBP Union Ministry of Technology Research and Development team](https://www.lbpunion.com/technology). +the LBP Union Ministry of Technology Research and Development team. For concerns and inquiries about the project, please contact us [here](https://www.lbpunion.com/contact). From baaee86e67570f54571615cbd61b85cbeb209f9a Mon Sep 17 00:00:00 2001 From: Josh Date: Sun, 29 Sep 2024 19:11:43 -0500 Subject: [PATCH 18/21] Allow users to manually setup two factor with secret key (#1071) * Allow users to manually setup two factor with secret key * Remove empty lines in markup --- .../StringLists/TwoFactorStrings.cs | 4 +++ ProjectLighthouse.Localization/TwoFactor.resx | 12 +++++++++ .../Pages/TwoFactor/SetupTwoFactorPage.cshtml | 25 +++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/ProjectLighthouse.Localization/StringLists/TwoFactorStrings.cs b/ProjectLighthouse.Localization/StringLists/TwoFactorStrings.cs index 307ad97d5..799588003 100644 --- a/ProjectLighthouse.Localization/StringLists/TwoFactorStrings.cs +++ b/ProjectLighthouse.Localization/StringLists/TwoFactorStrings.cs @@ -24,6 +24,10 @@ public static class TwoFactorStrings public static readonly TranslatableString QrTitle = create("qr_title"); public static readonly TranslatableString QrDescription = create("qr_description"); + public static readonly TranslatableString QrAlternativeDescription = create("qr_alternative"); + public static readonly TranslatableString QrAlternativeCopy = create("qr_alternative_copy"); + public static readonly TranslatableString QrAlternativeCopySuccess = create("qr_alternative_copy_success"); + public static readonly TranslatableString QrAlternativeCopyFail = create("qr_alternative_copy_success"); private static TranslatableString create(string key) => new(TranslationAreas.TwoFactor, key); } \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.resx b/ProjectLighthouse.Localization/TwoFactor.resx index 21d78ec4e..45845e8f5 100644 --- a/ProjectLighthouse.Localization/TwoFactor.resx +++ b/ProjectLighthouse.Localization/TwoFactor.resx @@ -66,4 +66,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Servers.Website/Pages/TwoFactor/SetupTwoFactorPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/TwoFactor/SetupTwoFactorPage.cshtml index 736e258e7..6bda7213f 100644 --- a/ProjectLighthouse.Servers.Website/Pages/TwoFactor/SetupTwoFactorPage.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/TwoFactor/SetupTwoFactorPage.cshtml @@ -18,6 +18,9 @@

@Model.Translate(TwoFactorStrings.QrTitle)

2 Factor QR Code

@Model.Translate(TwoFactorStrings.QrDescription)

+

@Model.Translate(TwoFactorStrings.QrAlternativeDescription)

+ @Model.User?.TwoFactorSecret + @await Html.PartialAsync("Partials/TwoFactorPartial", new ViewDataDictionary(ViewData) { { @@ -31,6 +34,28 @@ }, }) + } else { From 81acde7485256ca23ba2e73c7af39583fc162ba2 Mon Sep 17 00:00:00 2001 From: Slendy Date: Sun, 29 Sep 2024 19:28:13 -0500 Subject: [PATCH 19/21] Add manual trigger for Crowdin GitHub action --- .github/workflows/crowdin-pull.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/crowdin-pull.yml b/.github/workflows/crowdin-pull.yml index 1f36bca82..99b425b37 100644 --- a/.github/workflows/crowdin-pull.yml +++ b/.github/workflows/crowdin-pull.yml @@ -1,6 +1,7 @@ on: schedule: - cron: "*/60 * * * *" + workflow_dispatch: name: Download Translations from Crowdin From 893e215e93fde1ff85ea67cdded3ac8309c333ff Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 29 Sep 2024 19:31:18 -0500 Subject: [PATCH 20/21] Update the localization files (#1042) [skip ci] Update the localization files Co-authored-by: Crowdin Bot --- .../BaseLayout.lang-en-GB.resx | 89 +++++++++++++++++++ .../BaseLayout.lang-en-UD.resx | 89 +++++++++++++++++++ .../BaseLayout.lang-fr-CA.resx | 89 +++++++++++++++++++ .../BaseLayout.lang-ingsoc.resx | 89 +++++++++++++++++++ .../BaseLayout.lang-ko-KR.resx | 89 +++++++++++++++++++ .../BaseLayout.lang-nn-NO.resx | 89 +++++++++++++++++++ .../BaseLayout.lang-pt-BR.resx | 89 +++++++++++++++++++ .../BaseLayout.lang-toki.resx | 89 +++++++++++++++++++ .../Error.lang-en-GB.resx | 44 +++++++++ .../Error.lang-en-UD.resx | 44 +++++++++ .../Error.lang-fr-CA.resx | 44 +++++++++ .../Error.lang-ingsoc.resx | 44 +++++++++ .../Error.lang-ko-KR.resx | 44 +++++++++ .../Error.lang-nn-NO.resx | 44 +++++++++ .../Error.lang-pt-BR.resx | 44 +++++++++ .../Error.lang-toki.resx | 44 +++++++++ .../General.lang-en-GB.resx | 65 ++++++++++++++ .../General.lang-en-UD.resx | 65 ++++++++++++++ .../General.lang-fr-CA.resx | 65 ++++++++++++++ .../General.lang-ingsoc.resx | 65 ++++++++++++++ .../General.lang-ko-KR.resx | 65 ++++++++++++++ .../General.lang-nn-NO.resx | 65 ++++++++++++++ .../General.lang-pt-BR.resx | 65 ++++++++++++++ .../General.lang-toki.resx | 65 ++++++++++++++ .../LandingPage.lang-en-GB.resx | 54 +++++++++++ .../LandingPage.lang-en-UD.resx | 54 +++++++++++ .../LandingPage.lang-fr-CA.resx | 54 +++++++++++ .../LandingPage.lang-ingsoc.resx | 54 +++++++++++ .../LandingPage.lang-ko-KR.resx | 54 +++++++++++ .../LandingPage.lang-nn-NO.resx | 54 +++++++++++ .../LandingPage.lang-pt-BR.resx | 54 +++++++++++ .../LandingPage.lang-toki.resx | 54 +++++++++++ .../LoggedOut.lang-en-GB.resx | 29 ++++++ .../LoggedOut.lang-en-UD.resx | 29 ++++++ .../LoggedOut.lang-fr-CA.resx | 29 ++++++ .../LoggedOut.lang-ingsoc.resx | 29 ++++++ .../LoggedOut.lang-ko-KR.resx | 29 ++++++ .../LoggedOut.lang-nn-NO.resx | 29 ++++++ .../LoggedOut.lang-pt-BR.resx | 29 ++++++ .../LoggedOut.lang-toki.resx | 29 ++++++ .../ModPanel.lang-en-GB.resx | 32 +++++++ .../ModPanel.lang-en-UD.resx | 32 +++++++ .../ModPanel.lang-fr-CA.resx | 32 +++++++ .../ModPanel.lang-ingsoc.resx | 32 +++++++ .../ModPanel.lang-ko-KR.resx | 32 +++++++ .../ModPanel.lang-nn-NO.resx | 32 +++++++ .../ModPanel.lang-pt-BR.resx | 32 +++++++ .../ModPanel.lang-toki.resx | 32 +++++++ .../Moderation.lang-en-GB.resx | 50 +++++++++++ .../Moderation.lang-en-UD.resx | 50 +++++++++++ .../Moderation.lang-fr-CA.resx | 50 +++++++++++ .../Moderation.lang-ingsoc.resx | 50 +++++++++++ .../Moderation.lang-ko-KR.resx | 50 +++++++++++ .../Moderation.lang-nn-NO.resx | 50 +++++++++++ .../Moderation.lang-pt-BR.resx | 50 +++++++++++ .../Moderation.lang-toki.resx | 50 +++++++++++ .../Privacy.lang-en-GB.resx | 41 +++++++++ .../Privacy.lang-en-UD.resx | 41 +++++++++ .../Privacy.lang-fr-CA.resx | 41 +++++++++ .../Privacy.lang-ingsoc.resx | 41 +++++++++ .../Privacy.lang-ko-KR.resx | 41 +++++++++ .../Privacy.lang-nn-NO.resx | 41 +++++++++ .../Privacy.lang-pt-BR.resx | 41 +++++++++ .../Privacy.lang-toki.resx | 41 +++++++++ .../Profile.lang-en-GB.resx | 32 +++++++ .../Profile.lang-en-UD.resx | 32 +++++++ .../Profile.lang-fr-CA.resx | 32 +++++++ .../Profile.lang-ingsoc.resx | 32 +++++++ .../Profile.lang-ko-KR.resx | 32 +++++++ .../Profile.lang-nn-NO.resx | 32 +++++++ .../Profile.lang-pt-BR.resx | 32 +++++++ .../Profile.lang-toki.resx | 32 +++++++ .../Register.lang-en-GB.resx | 23 +++++ .../Register.lang-en-UD.resx | 23 +++++ .../Register.lang-fr-CA.resx | 23 +++++ .../Register.lang-ingsoc.resx | 23 +++++ .../Register.lang-ko-KR.resx | 23 +++++ .../Register.lang-nn-NO.resx | 23 +++++ .../Register.lang-pt-BR.resx | 23 +++++ .../Register.lang-toki.resx | 23 +++++ .../Status.lang-en-GB.resx | 29 ++++++ .../Status.lang-en-UD.resx | 29 ++++++ .../Status.lang-fr-CA.resx | 29 ++++++ .../Status.lang-ingsoc.resx | 29 ++++++ .../Status.lang-ko-KR.resx | 29 ++++++ .../Status.lang-nn-NO.resx | 29 ++++++ .../Status.lang-pt-BR.resx | 29 ++++++ .../Status.lang-toki.resx | 29 ++++++ .../TwoFactor.lang-ar-SA.resx | 12 +++ .../TwoFactor.lang-da-DK.resx | 12 +++ .../TwoFactor.lang-de-DE.resx | 12 +++ .../TwoFactor.lang-en-GB.resx | 80 +++++++++++++++++ .../TwoFactor.lang-en-PT.resx | 12 +++ .../TwoFactor.lang-en-UD.resx | 80 +++++++++++++++++ .../TwoFactor.lang-eo-UY.resx | 12 +++ .../TwoFactor.lang-es-ES.resx | 12 +++ .../TwoFactor.lang-es-MX.resx | 12 +++ .../TwoFactor.lang-et-EE.resx | 12 +++ .../TwoFactor.lang-fi-FI.resx | 12 +++ .../TwoFactor.lang-fil-PH.resx | 12 +++ .../TwoFactor.lang-fr-CA.resx | 80 +++++++++++++++++ .../TwoFactor.lang-fr-FR.resx | 12 +++ .../TwoFactor.lang-ga-IE.resx | 12 +++ .../TwoFactor.lang-he-IL.resx | 12 +++ .../TwoFactor.lang-hi-IN.resx | 12 +++ .../TwoFactor.lang-id-ID.resx | 12 +++ .../TwoFactor.lang-ingsoc.resx | 80 +++++++++++++++++ .../TwoFactor.lang-it-IT.resx | 12 +++ .../TwoFactor.lang-ja-JP.resx | 12 +++ .../TwoFactor.lang-ko-KR.resx | 80 +++++++++++++++++ .../TwoFactor.lang-nl-NL.resx | 12 +++ .../TwoFactor.lang-nn-NO.resx | 80 +++++++++++++++++ .../TwoFactor.lang-no-NO.resx | 12 +++ .../TwoFactor.lang-pl-PL.resx | 12 +++ .../TwoFactor.lang-pt-BR.resx | 80 +++++++++++++++++ .../TwoFactor.lang-pt-PT.resx | 12 +++ .../TwoFactor.lang-ru-RU.resx | 12 +++ .../TwoFactor.lang-sv-SE.resx | 12 +++ .../TwoFactor.lang-th-TH.resx | 12 +++ .../TwoFactor.lang-toki.resx | 80 +++++++++++++++++ .../TwoFactor.lang-tr-TR.resx | 12 +++ .../TwoFactor.lang-uk-UA.resx | 12 +++ .../TwoFactor.lang-zh-CN.resx | 12 +++ .../TwoFactor.lang-zh-TW.resx | 12 +++ 124 files changed, 4880 insertions(+) create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/General.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/General.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/General.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/General.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/General.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/General.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/General.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/General.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/ModPanel.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/ModPanel.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/ModPanel.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/ModPanel.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/ModPanel.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/ModPanel.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/ModPanel.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/ModPanel.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/Moderation.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/Moderation.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/Moderation.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/Moderation.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/Moderation.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/Moderation.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/Moderation.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/Moderation.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/Privacy.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/Privacy.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/Privacy.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/Privacy.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/Privacy.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/Privacy.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/Privacy.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/Privacy.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-toki.resx create mode 100644 ProjectLighthouse.Localization/TwoFactor.lang-en-GB.resx create mode 100644 ProjectLighthouse.Localization/TwoFactor.lang-en-UD.resx create mode 100644 ProjectLighthouse.Localization/TwoFactor.lang-fr-CA.resx create mode 100644 ProjectLighthouse.Localization/TwoFactor.lang-ingsoc.resx create mode 100644 ProjectLighthouse.Localization/TwoFactor.lang-ko-KR.resx create mode 100644 ProjectLighthouse.Localization/TwoFactor.lang-nn-NO.resx create mode 100644 ProjectLighthouse.Localization/TwoFactor.lang-pt-BR.resx create mode 100644 ProjectLighthouse.Localization/TwoFactor.lang-toki.resx diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-en-GB.resx b/ProjectLighthouse.Localization/BaseLayout.lang-en-GB.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-en-GB.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-en-UD.resx b/ProjectLighthouse.Localization/BaseLayout.lang-en-UD.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-en-UD.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-fr-CA.resx b/ProjectLighthouse.Localization/BaseLayout.lang-fr-CA.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-fr-CA.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ingsoc.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ingsoc.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ingsoc.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ko-KR.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ko-KR.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ko-KR.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-nn-NO.resx b/ProjectLighthouse.Localization/BaseLayout.lang-nn-NO.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-nn-NO.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-pt-BR.resx b/ProjectLighthouse.Localization/BaseLayout.lang-pt-BR.resx new file mode 100644 index 000000000..23b769dc3 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-pt-BR.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Usuários + A button on the header that takes you to the user listing. + + + Imagens + A button on the header that takes you to a list of user-uploaded photos. + + + Níveis + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Autenticação + A button on the header that takes you to a list of authentication attempts. + + + Entrar + A button on the header that lets you log in. + + + Entrar / Cadastrar + A button on the header that lets you log in or register. + + + Administrador + A header link that takes you to the admin panel if available. + + + Sair + A shortcut to log you out of your account. + + + Painel de Moderação + + + Página gerada por {0}. + + + Esta página foi gerada usando uma versão modificada do Projeto Lighthouse. Certifique-se de que você está divulgando corretamente o código fonte para qualquer usuário que possa estar usando esta instância. + + + Embora tenhamos a intenção de ter o mínimo de JavaScript possível, nós não podemos garantir que tudo funcionará sem ele. Recomendamos que você coloque JavaScript na lista branca para o Projeto Lighthouse. + + + O JavaScript não está habilitado + + + Potencial Violação de Licença + + + Esta instância é uma instância pública que foi modificada sem as alterações publicadas. Você pode estar violando o {0}. + + + Se você acha que isso é um erro, por favor, crie um problema com a saída {0} executada a partir da raiz do código fonte do servidor na descrição do nosso rastreador de problemas {1}{2}. + + + Caso contrário, publique o código-fonte em algum lugar acessível aos seus usuários. + + + Modo somente leitura + + + Esta instância está atualmente em modo somente leitura. Envios de fotos, comentários, análises e certas alterações de perfil serão restringidas até que o modo somente leitura seja desativado. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-toki.resx b/ProjectLighthouse.Localization/BaseLayout.lang-toki.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-toki.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-en-GB.resx b/ProjectLighthouse.Localization/Error.lang-en-GB.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-en-GB.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-en-UD.resx b/ProjectLighthouse.Localization/Error.lang-en-UD.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-en-UD.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-fr-CA.resx b/ProjectLighthouse.Localization/Error.lang-fr-CA.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-fr-CA.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-ingsoc.resx b/ProjectLighthouse.Localization/Error.lang-ingsoc.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-ingsoc.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-ko-KR.resx b/ProjectLighthouse.Localization/Error.lang-ko-KR.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-ko-KR.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-nn-NO.resx b/ProjectLighthouse.Localization/Error.lang-nn-NO.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-nn-NO.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-pt-BR.resx b/ProjectLighthouse.Localization/Error.lang-pt-BR.resx new file mode 100644 index 000000000..dd024c132 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-pt-BR.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + O nome de usuário está vazio. + + + O nome de usuário que você escolheu já existe. + + + O campo de senha é obrigatório. + + + As senhas não coincidem! + + + Você deve completar o captcha corretamente. + + + O e-mail que você escolheu já está sendo usado. + + + O campo de endereço de e-mail é obrigatório. + + + Você não tem permissões para executar esta ação. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-toki.resx b/ProjectLighthouse.Localization/Error.lang-toki.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-toki.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-en-GB.resx b/ProjectLighthouse.Localization/General.lang-en-GB.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-en-GB.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-en-UD.resx b/ProjectLighthouse.Localization/General.lang-en-UD.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-en-UD.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fr-CA.resx b/ProjectLighthouse.Localization/General.lang-fr-CA.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-fr-CA.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ingsoc.resx b/ProjectLighthouse.Localization/General.lang-ingsoc.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-ingsoc.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ko-KR.resx b/ProjectLighthouse.Localization/General.lang-ko-KR.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-ko-KR.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-nn-NO.resx b/ProjectLighthouse.Localization/General.lang-nn-NO.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-nn-NO.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-pt-BR.resx b/ProjectLighthouse.Localization/General.lang-pt-BR.resx new file mode 100644 index 000000000..47b950433 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-pt-BR.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Nome de usuário + + + Senha + + + Criar uma conta + + + Esqueceu sua senha? + + + Oh, não! + + + Entrar + + + Desconhecido + + + Sucesso! + + + Redefinir Senha + + + Atividade Recente + + + Em breve! + + + Imagens mais recentes + + + Email + + + Avisos + + + Notificações + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-toki.resx b/ProjectLighthouse.Localization/General.lang-toki.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-toki.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-en-GB.resx b/ProjectLighthouse.Localization/LandingPage.lang-en-GB.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-en-GB.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-en-UD.resx b/ProjectLighthouse.Localization/LandingPage.lang-en-UD.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-en-UD.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-fr-CA.resx b/ProjectLighthouse.Localization/LandingPage.lang-fr-CA.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-fr-CA.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-ingsoc.resx b/ProjectLighthouse.Localization/LandingPage.lang-ingsoc.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-ingsoc.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-ko-KR.resx b/ProjectLighthouse.Localization/LandingPage.lang-ko-KR.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-ko-KR.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-nn-NO.resx b/ProjectLighthouse.Localization/LandingPage.lang-nn-NO.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-nn-NO.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-pt-BR.resx b/ProjectLighthouse.Localization/LandingPage.lang-pt-BR.resx new file mode 100644 index 000000000..9fc36db7b --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-pt-BR.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Bem-vindo(a) ao {0}! + A greeting on the main page of the website. + + + Saudações, {0}. + A greeting on the main page of the website. + + + Não tem pessoas online. Por que não entrar? + A greeting on the main page of the website. + + + Tem 1 pessoa atualmente online: + A greeting on the main page of the website. + + + Atualmente tem {0} pessoas online: + A greeting on the main page of the website. + + + Você tem {0} tentativas pendentes de autenticação. Clique aqui para visualizá-las. + A greeting on the main page of the website. + + + Níveis Mais Recentes + + + Últimas Escolhas da Equipe + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-toki.resx b/ProjectLighthouse.Localization/LandingPage.lang-toki.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-toki.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-en-GB.resx b/ProjectLighthouse.Localization/LoggedOut.lang-en-GB.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-en-GB.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-en-UD.resx b/ProjectLighthouse.Localization/LoggedOut.lang-en-UD.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-en-UD.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-fr-CA.resx b/ProjectLighthouse.Localization/LoggedOut.lang-fr-CA.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-fr-CA.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-ingsoc.resx b/ProjectLighthouse.Localization/LoggedOut.lang-ingsoc.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-ingsoc.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-ko-KR.resx b/ProjectLighthouse.Localization/LoggedOut.lang-ko-KR.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-ko-KR.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-nn-NO.resx b/ProjectLighthouse.Localization/LoggedOut.lang-nn-NO.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-nn-NO.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-pt-BR.resx b/ProjectLighthouse.Localization/LoggedOut.lang-pt-BR.resx new file mode 100644 index 000000000..89908c612 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-pt-BR.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Desconectado + + + Você foi desconectado com sucesso. Você será redirecionado em 5 segundos, ou poderá clicar abaixo para fazê-lo manualmente. + + + Redirecionar + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-toki.resx b/ProjectLighthouse.Localization/LoggedOut.lang-toki.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-toki.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-en-GB.resx b/ProjectLighthouse.Localization/ModPanel.lang-en-GB.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-en-GB.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-en-UD.resx b/ProjectLighthouse.Localization/ModPanel.lang-en-UD.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-en-UD.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-fr-CA.resx b/ProjectLighthouse.Localization/ModPanel.lang-fr-CA.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-fr-CA.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-ingsoc.resx b/ProjectLighthouse.Localization/ModPanel.lang-ingsoc.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-ingsoc.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-ko-KR.resx b/ProjectLighthouse.Localization/ModPanel.lang-ko-KR.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-ko-KR.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-nn-NO.resx b/ProjectLighthouse.Localization/ModPanel.lang-nn-NO.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-nn-NO.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-pt-BR.resx b/ProjectLighthouse.Localization/ModPanel.lang-pt-BR.resx new file mode 100644 index 000000000..80c04cd0b --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-pt-BR.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Painel de Moderação + + + Bem-vindo(a) ao painel de moderação, {0}! + + + Usuários Banidos + + + Níveis Ocultos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-toki.resx b/ProjectLighthouse.Localization/ModPanel.lang-toki.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-toki.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-en-GB.resx b/ProjectLighthouse.Localization/Moderation.lang-en-GB.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-en-GB.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-en-UD.resx b/ProjectLighthouse.Localization/Moderation.lang-en-UD.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-en-UD.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-fr-CA.resx b/ProjectLighthouse.Localization/Moderation.lang-fr-CA.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-fr-CA.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-ingsoc.resx b/ProjectLighthouse.Localization/Moderation.lang-ingsoc.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-ingsoc.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-ko-KR.resx b/ProjectLighthouse.Localization/Moderation.lang-ko-KR.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-ko-KR.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-nn-NO.resx b/ProjectLighthouse.Localization/Moderation.lang-nn-NO.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-nn-NO.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-pt-BR.resx b/ProjectLighthouse.Localization/Moderation.lang-pt-BR.resx new file mode 100644 index 000000000..8010e98c6 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-pt-BR.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Conta suspensa + + + A sua conta {0} foi suspensa devido a violação do código de conduta. + + + Durante esta suspensão, os seguintes recursos serão limitados até {0}: + + + Motivo da suspensão: "{0}" + + + Tentativas de contornar esta suspensão resultarão num período de suspensão maior. + + + Multiplayer Online LittleBigPlanet™ + + + manualmente dispensados + + + Visibilidade do perfil + + + Navegando níveis, fotos e perfis + + + Gestão de conta e perfil + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-toki.resx b/ProjectLighthouse.Localization/Moderation.lang-toki.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-toki.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-en-GB.resx b/ProjectLighthouse.Localization/Privacy.lang-en-GB.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-en-GB.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-en-UD.resx b/ProjectLighthouse.Localization/Privacy.lang-en-UD.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-en-UD.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-fr-CA.resx b/ProjectLighthouse.Localization/Privacy.lang-fr-CA.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-fr-CA.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-ingsoc.resx b/ProjectLighthouse.Localization/Privacy.lang-ingsoc.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-ingsoc.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-ko-KR.resx b/ProjectLighthouse.Localization/Privacy.lang-ko-KR.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-ko-KR.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-nn-NO.resx b/ProjectLighthouse.Localization/Privacy.lang-nn-NO.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-nn-NO.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-pt-BR.resx b/ProjectLighthouse.Localization/Privacy.lang-pt-BR.resx new file mode 100644 index 000000000..6ff0e0f02 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-pt-BR.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Habilitar comentários no seu perfil. + + + Desativar comentários no seu perfil. + + + Você não bloqueou nenhum usuário. + + + Você bloqueou {0} usuário(s). + + + Compartilhe sua {0} com todo mundo! + + + Compartilhe apenas a sua {0} com os usuários que estão logados no site ou jogando. + + + Compartilhe a {0} apenas com usuários que estão jogando. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-toki.resx b/ProjectLighthouse.Localization/Privacy.lang-toki.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-toki.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-en-GB.resx b/ProjectLighthouse.Localization/Profile.lang-en-GB.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-en-GB.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-en-UD.resx b/ProjectLighthouse.Localization/Profile.lang-en-UD.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-en-UD.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-fr-CA.resx b/ProjectLighthouse.Localization/Profile.lang-fr-CA.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-fr-CA.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-ingsoc.resx b/ProjectLighthouse.Localization/Profile.lang-ingsoc.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-ingsoc.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-ko-KR.resx b/ProjectLighthouse.Localization/Profile.lang-ko-KR.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-ko-KR.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-nn-NO.resx b/ProjectLighthouse.Localization/Profile.lang-nn-NO.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-nn-NO.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-pt-BR.resx b/ProjectLighthouse.Localization/Profile.lang-pt-BR.resx new file mode 100644 index 000000000..167321c78 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-pt-BR.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biografia + + + {0} ainda não se apresentou. + + + Página do usuário {0} + + + Tag do Perfil + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-toki.resx b/ProjectLighthouse.Localization/Profile.lang-toki.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-toki.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-en-GB.resx b/ProjectLighthouse.Localization/Register.lang-en-GB.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-en-GB.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-en-UD.resx b/ProjectLighthouse.Localization/Register.lang-en-UD.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-en-UD.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-fr-CA.resx b/ProjectLighthouse.Localization/Register.lang-fr-CA.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-fr-CA.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-ingsoc.resx b/ProjectLighthouse.Localization/Register.lang-ingsoc.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-ingsoc.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-ko-KR.resx b/ProjectLighthouse.Localization/Register.lang-ko-KR.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-ko-KR.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-nn-NO.resx b/ProjectLighthouse.Localization/Register.lang-nn-NO.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-nn-NO.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-pt-BR.resx b/ProjectLighthouse.Localization/Register.lang-pt-BR.resx new file mode 100644 index 000000000..1cc29082b --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-pt-BR.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Atenção: Seu nome de usuário PRECISA combinar com o seu nome de usuário PSN/RPCN para poder entrar no jogo. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-toki.resx b/ProjectLighthouse.Localization/Register.lang-toki.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-toki.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-en-GB.resx b/ProjectLighthouse.Localization/Status.lang-en-GB.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-en-GB.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-en-UD.resx b/ProjectLighthouse.Localization/Status.lang-en-UD.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-en-UD.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-fr-CA.resx b/ProjectLighthouse.Localization/Status.lang-fr-CA.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-fr-CA.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-ingsoc.resx b/ProjectLighthouse.Localization/Status.lang-ingsoc.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-ingsoc.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-ko-KR.resx b/ProjectLighthouse.Localization/Status.lang-ko-KR.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-ko-KR.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-nn-NO.resx b/ProjectLighthouse.Localization/Status.lang-nn-NO.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-nn-NO.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-pt-BR.resx b/ProjectLighthouse.Localization/Status.lang-pt-BR.resx new file mode 100644 index 000000000..489608e7a --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-pt-BR.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Atualmente jogando {0} em {1} + + + Offline + + + Offline desde {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-toki.resx b/ProjectLighthouse.Localization/Status.lang-toki.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-toki.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ar-SA.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ar-SA.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-ar-SA.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ar-SA.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-da-DK.resx b/ProjectLighthouse.Localization/TwoFactor.lang-da-DK.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-da-DK.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-de-DE.resx b/ProjectLighthouse.Localization/TwoFactor.lang-de-DE.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-de-DE.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-en-GB.resx b/ProjectLighthouse.Localization/TwoFactor.lang-en-GB.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-en-GB.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-en-PT.resx b/ProjectLighthouse.Localization/TwoFactor.lang-en-PT.resx index fba20be9d..6a8434f7c 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-en-PT.resx @@ -65,4 +65,16 @@ Rancid backup key + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-en-UD.resx b/ProjectLighthouse.Localization/TwoFactor.lang-en-UD.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-en-UD.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-eo-UY.resx b/ProjectLighthouse.Localization/TwoFactor.lang-eo-UY.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-eo-UY.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-es-ES.resx b/ProjectLighthouse.Localization/TwoFactor.lang-es-ES.resx index 37476cf38..aaeffe1d0 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-es-ES.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-es-ES.resx @@ -65,4 +65,16 @@ Código de Respaldo Inválido + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-es-MX.resx b/ProjectLighthouse.Localization/TwoFactor.lang-es-MX.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-es-MX.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-et-EE.resx b/ProjectLighthouse.Localization/TwoFactor.lang-et-EE.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-et-EE.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-et-EE.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-fi-FI.resx b/ProjectLighthouse.Localization/TwoFactor.lang-fi-FI.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-fi-FI.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-fil-PH.resx b/ProjectLighthouse.Localization/TwoFactor.lang-fil-PH.resx index 1a03f1004..47b29c73a 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-fil-PH.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-fil-PH.resx @@ -65,4 +65,16 @@ Hindi wastong Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-fr-CA.resx b/ProjectLighthouse.Localization/TwoFactor.lang-fr-CA.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-fr-CA.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-fr-FR.resx b/ProjectLighthouse.Localization/TwoFactor.lang-fr-FR.resx index d224bf5c4..0ca08a778 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-fr-FR.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-fr-FR.resx @@ -65,4 +65,16 @@ Code de secours non valide + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ga-IE.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ga-IE.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-ga-IE.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ga-IE.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-he-IL.resx b/ProjectLighthouse.Localization/TwoFactor.lang-he-IL.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-he-IL.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-he-IL.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-hi-IN.resx b/ProjectLighthouse.Localization/TwoFactor.lang-hi-IN.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-hi-IN.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-hi-IN.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-id-ID.resx b/ProjectLighthouse.Localization/TwoFactor.lang-id-ID.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-id-ID.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-id-ID.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ingsoc.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ingsoc.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ingsoc.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-it-IT.resx b/ProjectLighthouse.Localization/TwoFactor.lang-it-IT.resx index 4ebcb974b..8eabfef69 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-it-IT.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-it-IT.resx @@ -65,4 +65,16 @@ Codice di backup non valido + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ja-JP.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ja-JP.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ja-JP.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ko-KR.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ko-KR.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ko-KR.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-nl-NL.resx b/ProjectLighthouse.Localization/TwoFactor.lang-nl-NL.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-nl-NL.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-nl-NL.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-nn-NO.resx b/ProjectLighthouse.Localization/TwoFactor.lang-nn-NO.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-nn-NO.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-no-NO.resx b/ProjectLighthouse.Localization/TwoFactor.lang-no-NO.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-no-NO.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-pl-PL.resx b/ProjectLighthouse.Localization/TwoFactor.lang-pl-PL.resx index c636d6402..c81a8285b 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-pl-PL.resx @@ -65,4 +65,16 @@ Nieprawidłowy Kod Zapasowy + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-pt-BR.resx b/ProjectLighthouse.Localization/TwoFactor.lang-pt-BR.resx new file mode 100644 index 000000000..a29f8e130 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-pt-BR.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Ativar autenticação de dois fatores + + + Desativar autenticação de dois fatores + + + Depois de adicionar este código de dois fatores em seu aplicativo favorito, insira um código válido abaixo para concluir o processo de configuração + + + Aqui está seu código QR de dois fatores + + + Códigos de backup + + + Estes códigos permitirão que você recupere o acesso à sua conta caso perca o acesso ao seu dispositivo 2FA + + + Salve estes códigos em algum lugar, caso contrário, você poderá ser bloqueado de sua conta + + + Eu salvei esses códigos + + + Código 2FA inválido + + + Para desativar a autenticação de dois fatores, insira um código correto do seu aplicativo de autenticação. + + + Autenticação de dois fatores + + + Você é obrigado a configurar a autenticação de dois fatores devido o seu papel nesta instância. + + + Digite um código de verificação em duas etapas para continuar + + + Como alternativa, você pode clicar {0}aqui{1} para inserir um dos seus códigos de backup + + + Baixar códigos de backup + + + Código de Backup Inválido + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-pt-PT.resx b/ProjectLighthouse.Localization/TwoFactor.lang-pt-PT.resx index 5a92a0c03..f4bbf240c 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-pt-PT.resx @@ -65,4 +65,16 @@ Código de Backup Inválido + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ru-RU.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ru-RU.resx index dc37e87f6..64ffd8b17 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-ru-RU.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ru-RU.resx @@ -65,4 +65,16 @@ Неверный Резервный Код + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-sv-SE.resx b/ProjectLighthouse.Localization/TwoFactor.lang-sv-SE.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-sv-SE.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-th-TH.resx b/ProjectLighthouse.Localization/TwoFactor.lang-th-TH.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-th-TH.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-th-TH.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-toki.resx b/ProjectLighthouse.Localization/TwoFactor.lang-toki.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-toki.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-tr-TR.resx b/ProjectLighthouse.Localization/TwoFactor.lang-tr-TR.resx index 8c9e02d65..46d13b1a4 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-tr-TR.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-tr-TR.resx @@ -65,4 +65,16 @@ Geçersiz Yedek Kodu + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-uk-UA.resx b/ProjectLighthouse.Localization/TwoFactor.lang-uk-UA.resx index 3137d4f83..e9d0a7dbf 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-uk-UA.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-uk-UA.resx @@ -65,4 +65,16 @@ Недійсний резервний код + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-zh-CN.resx b/ProjectLighthouse.Localization/TwoFactor.lang-zh-CN.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-zh-CN.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-zh-CN.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-zh-TW.resx b/ProjectLighthouse.Localization/TwoFactor.lang-zh-TW.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-zh-TW.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-zh-TW.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file From fdd022d579ed27032259feaa517c7988582b40d4 Mon Sep 17 00:00:00 2001 From: Slendy Date: Sun, 29 Sep 2024 20:24:44 -0500 Subject: [PATCH 21/21] Delete Toki and Newspeak languages They don't have valid CultureInfo's, and it breaks our translation system --- .../BaseLayout.lang-gd-GB.resx | 66 -------------- .../BaseLayout.lang-ingsoc.resx | 89 ------------------- .../BaseLayout.lang-toki.resx | 89 ------------------- .../Error.lang-ingsoc.resx | 44 --------- .../Error.lang-toki.resx | 44 --------- .../General.lang-ingsoc.resx | 65 -------------- .../General.lang-toki.resx | 65 -------------- .../LandingPage.lang-ingsoc.resx | 54 ----------- .../LandingPage.lang-toki.resx | 54 ----------- .../LoggedOut.lang-ingsoc.resx | 29 ------ .../LoggedOut.lang-toki.resx | 29 ------ .../ModPanel.lang-ingsoc.resx | 32 ------- .../ModPanel.lang-toki.resx | 32 ------- .../Moderation.lang-ingsoc.resx | 50 ----------- .../Moderation.lang-toki.resx | 50 ----------- .../Privacy.lang-ingsoc.resx | 41 --------- .../Privacy.lang-toki.resx | 41 --------- .../Profile.lang-ingsoc.resx | 32 ------- .../Profile.lang-toki.resx | 32 ------- .../Register.lang-ingsoc.resx | 23 ----- .../Register.lang-toki.resx | 23 ----- .../Status.lang-ingsoc.resx | 29 ------ .../Status.lang-toki.resx | 29 ------ .../TwoFactor.lang-ingsoc.resx | 80 ----------------- .../TwoFactor.lang-toki.resx | 80 ----------------- 25 files changed, 1202 deletions(-) delete mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-gd-GB.resx delete mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/Error.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/Error.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/General.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/General.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/LandingPage.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/LandingPage.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/ModPanel.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/ModPanel.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/Moderation.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/Moderation.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/Privacy.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/Privacy.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/Profile.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/Profile.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/Register.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/Register.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/Status.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/Status.lang-toki.resx delete mode 100644 ProjectLighthouse.Localization/TwoFactor.lang-ingsoc.resx delete mode 100644 ProjectLighthouse.Localization/TwoFactor.lang-toki.resx diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-gd-GB.resx b/ProjectLighthouse.Localization/BaseLayout.lang-gd-GB.resx deleted file mode 100644 index c799594c2..000000000 --- a/ProjectLighthouse.Localization/BaseLayout.lang-gd-GB.resx +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - - Home - A button on the header that takes you to the landing page. - - - - Users - A button on the header that takes you to the user listing. - - - - Photos - A button on the header that takes you to a list of user-uploaded photos. - - - - Levels - A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - - - - Authentication - A button on the header that takes you to a list of authentication attempts. - - - - Login / Register - A button on the header that lets you log in or register. - - - Profile - A quick shortcut on the header to take you to your profile if logged in. - - - Admin Panel - A header link that takes you to the admin panel if available. - - - Log out - A shortcut to log you out of your account. - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ingsoc.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ingsoc.resx deleted file mode 100644 index 018d76883..000000000 --- a/ProjectLighthouse.Localization/BaseLayout.lang-ingsoc.resx +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - Users - A button on the header that takes you to the user listing. - - - Photos - A button on the header that takes you to a list of user-uploaded photos. - - - Levels - A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - - - Authentication - A button on the header that takes you to a list of authentication attempts. - - - Login - A button on the header that lets you log in. - - - Login / Register - A button on the header that lets you log in or register. - - - Admin - A header link that takes you to the admin panel if available. - - - Log out - A shortcut to log you out of your account. - - - Mod Panel - - - Page generated by {0}. - - - This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. - - - While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. - - - JavaScript is not enabled - - - Potential License Violation - - - This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. - - - If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. - - - If not, please publish the source code somewhere accessible to your users. - - - Read-Only Mode - - - This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-toki.resx b/ProjectLighthouse.Localization/BaseLayout.lang-toki.resx deleted file mode 100644 index 018d76883..000000000 --- a/ProjectLighthouse.Localization/BaseLayout.lang-toki.resx +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - Users - A button on the header that takes you to the user listing. - - - Photos - A button on the header that takes you to a list of user-uploaded photos. - - - Levels - A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - - - Authentication - A button on the header that takes you to a list of authentication attempts. - - - Login - A button on the header that lets you log in. - - - Login / Register - A button on the header that lets you log in or register. - - - Admin - A header link that takes you to the admin panel if available. - - - Log out - A shortcut to log you out of your account. - - - Mod Panel - - - Page generated by {0}. - - - This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. - - - While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. - - - JavaScript is not enabled - - - Potential License Violation - - - This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. - - - If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. - - - If not, please publish the source code somewhere accessible to your users. - - - Read-Only Mode - - - This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-ingsoc.resx b/ProjectLighthouse.Localization/Error.lang-ingsoc.resx deleted file mode 100644 index 6daa6b1af..000000000 --- a/ProjectLighthouse.Localization/Error.lang-ingsoc.resx +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - The username field is blank. - - - The username you've chosen is already taken. - - - Password field is required. - - - Passwords do not match! - - - You must complete the captcha correctly. - - - The email address you've chosen is already taken. - - - Email address field is required. - - - You don't have permissions to perform this action. - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-toki.resx b/ProjectLighthouse.Localization/Error.lang-toki.resx deleted file mode 100644 index 6daa6b1af..000000000 --- a/ProjectLighthouse.Localization/Error.lang-toki.resx +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - The username field is blank. - - - The username you've chosen is already taken. - - - Password field is required. - - - Passwords do not match! - - - You must complete the captcha correctly. - - - The email address you've chosen is already taken. - - - Email address field is required. - - - You don't have permissions to perform this action. - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ingsoc.resx b/ProjectLighthouse.Localization/General.lang-ingsoc.resx deleted file mode 100644 index 5650186c9..000000000 --- a/ProjectLighthouse.Localization/General.lang-ingsoc.resx +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Username - - - Password - - - Create an account - - - Forgot Password? - - - Uh oh! - - - Log In - - - Unknown - - - Success! - - - Reset Password - - - Recent Activity - - - Coming soon! - - - Most recent photos - - - Email - - - Announcements - - - Notifications - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-toki.resx b/ProjectLighthouse.Localization/General.lang-toki.resx deleted file mode 100644 index 5650186c9..000000000 --- a/ProjectLighthouse.Localization/General.lang-toki.resx +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Username - - - Password - - - Create an account - - - Forgot Password? - - - Uh oh! - - - Log In - - - Unknown - - - Success! - - - Reset Password - - - Recent Activity - - - Coming soon! - - - Most recent photos - - - Email - - - Announcements - - - Notifications - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-ingsoc.resx b/ProjectLighthouse.Localization/LandingPage.lang-ingsoc.resx deleted file mode 100644 index 1a744b49d..000000000 --- a/ProjectLighthouse.Localization/LandingPage.lang-ingsoc.resx +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - Welcome to {0}! - A greeting on the main page of the website. - - - Greetings, {0}. - A greeting on the main page of the website. - - - There are no people online. Why not hop on? - A greeting on the main page of the website. - - - There is 1 person currently online: - A greeting on the main page of the website. - - - There are currently {0} people online: - A greeting on the main page of the website. - - - You have {0} authentication attempts pending. Click here to view them. - A greeting on the main page of the website. - - - Newest Levels - - - Latest Team Picks - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-toki.resx b/ProjectLighthouse.Localization/LandingPage.lang-toki.resx deleted file mode 100644 index 1a744b49d..000000000 --- a/ProjectLighthouse.Localization/LandingPage.lang-toki.resx +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - Welcome to {0}! - A greeting on the main page of the website. - - - Greetings, {0}. - A greeting on the main page of the website. - - - There are no people online. Why not hop on? - A greeting on the main page of the website. - - - There is 1 person currently online: - A greeting on the main page of the website. - - - There are currently {0} people online: - A greeting on the main page of the website. - - - You have {0} authentication attempts pending. Click here to view them. - A greeting on the main page of the website. - - - Newest Levels - - - Latest Team Picks - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-ingsoc.resx b/ProjectLighthouse.Localization/LoggedOut.lang-ingsoc.resx deleted file mode 100644 index 7a1938893..000000000 --- a/ProjectLighthouse.Localization/LoggedOut.lang-ingsoc.resx +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Logged Out - - - You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. - - - Redirect - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-toki.resx b/ProjectLighthouse.Localization/LoggedOut.lang-toki.resx deleted file mode 100644 index 7a1938893..000000000 --- a/ProjectLighthouse.Localization/LoggedOut.lang-toki.resx +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Logged Out - - - You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. - - - Redirect - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-ingsoc.resx b/ProjectLighthouse.Localization/ModPanel.lang-ingsoc.resx deleted file mode 100644 index 0471ed475..000000000 --- a/ProjectLighthouse.Localization/ModPanel.lang-ingsoc.resx +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Moderation Panel - - - Welcome to the moderation panel, {0}! - - - Banned Users - - - Hidden Levels - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-toki.resx b/ProjectLighthouse.Localization/ModPanel.lang-toki.resx deleted file mode 100644 index 0471ed475..000000000 --- a/ProjectLighthouse.Localization/ModPanel.lang-toki.resx +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Moderation Panel - - - Welcome to the moderation panel, {0}! - - - Banned Users - - - Hidden Levels - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-ingsoc.resx b/ProjectLighthouse.Localization/Moderation.lang-ingsoc.resx deleted file mode 100644 index 89befa810..000000000 --- a/ProjectLighthouse.Localization/Moderation.lang-ingsoc.resx +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account Suspended - - - Your {0} account has been suspended due to code of conduct violations. - - - During this suspension, the following features will be limited until {0}: - - - Reason for suspension: "{0}" - - - Attempts to circumvent this suspension will result in an extended suspension period. - - - LittleBigPlanet™ Online multiplayer - - - manually dismissed - - - Profile visibility - - - Browsing levels, photos, and profiles - - - Account and profile management - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-toki.resx b/ProjectLighthouse.Localization/Moderation.lang-toki.resx deleted file mode 100644 index 89befa810..000000000 --- a/ProjectLighthouse.Localization/Moderation.lang-toki.resx +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account Suspended - - - Your {0} account has been suspended due to code of conduct violations. - - - During this suspension, the following features will be limited until {0}: - - - Reason for suspension: "{0}" - - - Attempts to circumvent this suspension will result in an extended suspension period. - - - LittleBigPlanet™ Online multiplayer - - - manually dismissed - - - Profile visibility - - - Browsing levels, photos, and profiles - - - Account and profile management - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-ingsoc.resx b/ProjectLighthouse.Localization/Privacy.lang-ingsoc.resx deleted file mode 100644 index 6726d1db5..000000000 --- a/ProjectLighthouse.Localization/Privacy.lang-ingsoc.resx +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Enable commenting on your profile. - - - Disable commenting on your profile. - - - You have not blocked any users. - - - You have blocked {0} user(s). - - - Share your {0} with everyone! - - - Only share your {0} with users who are signed into the website or playing in-game. - - - Only share your {0} with users who are playing in-game. - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-toki.resx b/ProjectLighthouse.Localization/Privacy.lang-toki.resx deleted file mode 100644 index 6726d1db5..000000000 --- a/ProjectLighthouse.Localization/Privacy.lang-toki.resx +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Enable commenting on your profile. - - - Disable commenting on your profile. - - - You have not blocked any users. - - - You have blocked {0} user(s). - - - Share your {0} with everyone! - - - Only share your {0} with users who are signed into the website or playing in-game. - - - Only share your {0} with users who are playing in-game. - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-ingsoc.resx b/ProjectLighthouse.Localization/Profile.lang-ingsoc.resx deleted file mode 100644 index e175fd623..000000000 --- a/ProjectLighthouse.Localization/Profile.lang-ingsoc.resx +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Biography - - - {0} hasn't introduced themselves yet. - - - {0}'s user page - - - Profile Tag - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-toki.resx b/ProjectLighthouse.Localization/Profile.lang-toki.resx deleted file mode 100644 index e175fd623..000000000 --- a/ProjectLighthouse.Localization/Profile.lang-toki.resx +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Biography - - - {0} hasn't introduced themselves yet. - - - {0}'s user page - - - Profile Tag - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-ingsoc.resx b/ProjectLighthouse.Localization/Register.lang-ingsoc.resx deleted file mode 100644 index abd741d26..000000000 --- a/ProjectLighthouse.Localization/Register.lang-ingsoc.resx +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-toki.resx b/ProjectLighthouse.Localization/Register.lang-toki.resx deleted file mode 100644 index abd741d26..000000000 --- a/ProjectLighthouse.Localization/Register.lang-toki.resx +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-ingsoc.resx b/ProjectLighthouse.Localization/Status.lang-ingsoc.resx deleted file mode 100644 index 214b28fbb..000000000 --- a/ProjectLighthouse.Localization/Status.lang-ingsoc.resx +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Currently playing {0} on {1} - - - Offline - - - Offline since {0} - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-toki.resx b/ProjectLighthouse.Localization/Status.lang-toki.resx deleted file mode 100644 index 214b28fbb..000000000 --- a/ProjectLighthouse.Localization/Status.lang-toki.resx +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Currently playing {0} on {1} - - - Offline - - - Offline since {0} - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ingsoc.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ingsoc.resx deleted file mode 100644 index 78f4869f8..000000000 --- a/ProjectLighthouse.Localization/TwoFactor.lang-ingsoc.resx +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Enable Two-Factor - - - Disable Two-Factor - - - Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process - - - Here is your Two-Factor QR code - - - Backup codes - - - These codes will allow you to regain access to your account if you ever lose access to your 2FA device - - - Save these codes somewhere because otherwise you may be locked out of your account - - - I've saved these codes - - - Invalid 2FA Code - - - To disable two-factor authentication, enter a correct code from your authenticator app. - - - Two-Factor Authentication - - - You are required to setup 2FA because of your role within this instance. - - - Enter a valid 2FA code to continue - - - Alternatively, you can click {0}here{1} to enter one of your backup codes - - - Download backup codes - - - Invalid Backup Code - - - Can't use the QR code? You can use this secret key instead: - - - Copy secret code - - - Copied to clipboard - - - Failed to copy to clipboard - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-toki.resx b/ProjectLighthouse.Localization/TwoFactor.lang-toki.resx deleted file mode 100644 index 78f4869f8..000000000 --- a/ProjectLighthouse.Localization/TwoFactor.lang-toki.resx +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Enable Two-Factor - - - Disable Two-Factor - - - Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process - - - Here is your Two-Factor QR code - - - Backup codes - - - These codes will allow you to regain access to your account if you ever lose access to your 2FA device - - - Save these codes somewhere because otherwise you may be locked out of your account - - - I've saved these codes - - - Invalid 2FA Code - - - To disable two-factor authentication, enter a correct code from your authenticator app. - - - Two-Factor Authentication - - - You are required to setup 2FA because of your role within this instance. - - - Enter a valid 2FA code to continue - - - Alternatively, you can click {0}here{1} to enter one of your backup codes - - - Download backup codes - - - Invalid Backup Code - - - Can't use the QR code? You can use this secret key instead: - - - Copy secret code - - - Copied to clipboard - - - Failed to copy to clipboard - - \ No newline at end of file