From d86839aafbc9dcef2b8ddd1e1d7150cf17587416 Mon Sep 17 00:00:00 2001 From: jvyden Date: Thu, 28 Jul 2022 14:50:06 -0400 Subject: [PATCH 01/44] Update the localization files --- .../BaseLayout.lang-da-DK.resx | 54 ++++++++---------- .../BaseLayout.lang-eo-UY.resx | 54 ++++++++---------- .../BaseLayout.lang-es-MX.resx | 54 ++++++++---------- .../BaseLayout.lang-no-NO.resx | 54 ++++++++---------- .../General.lang-da-DK.resx | 2 +- .../General.lang-de-DE.resx | 2 +- .../General.lang-es-MX.resx | 12 ++-- .../General.lang-fil-PH.resx | 2 +- .../General.lang-no-NO.resx | 2 +- .../General.lang-pt-PT.resx | 2 +- .../General.lang-ru-RU.resx | 2 +- .../General.lang-zh-CN.resx | 2 +- .../General.lang-zh-TW.resx | 2 +- .../LandingPage.lang-da-DK.resx | 54 ++++++++---------- .../LandingPage.lang-eo-UY.resx | 54 ++++++++---------- .../LandingPage.lang-es-MX.resx | 56 ++++++++----------- .../LandingPage.lang-no-NO.resx | 54 ++++++++---------- .../LoggedOut.lang-da-DK.resx | 36 ++++++------ .../LoggedOut.lang-eo-UY.resx | 36 ++++++------ .../LoggedOut.lang-es-MX.resx | 42 +++++++------- .../LoggedOut.lang-no-NO.resx | 36 ++++++------ .../Status.lang-da-DK.resx | 4 +- .../Status.lang-de-DE.resx | 4 +- .../Status.lang-eo-UY.resx | 4 +- .../Status.lang-es-MX.resx | 4 +- .../Status.lang-fil-PH.resx | 4 +- .../Status.lang-no-NO.resx | 6 +- .../Status.lang-pt-PT.resx | 4 +- .../Status.lang-ru-RU.resx | 2 +- .../Status.lang-zh-CN.resx | 6 +- .../Status.lang-zh-TW.resx | 6 +- 31 files changed, 300 insertions(+), 356 deletions(-) diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx b/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx index e73812c8..9dd09d05 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx @@ -1,65 +1,59 @@ - - + + - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + + + 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, + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - + + Forside A button on the header that takes you to the landing page. - - + Brugere A button on the header that takes you to the user listing. - - + Fotos A button on the header that takes you to a list of user-uploaded photos. - - + Baner A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - - + Godkendelse A button on the header that takes you to a list of authentication attempts. - - + Log ind / Registrer A button on the header that lets you log in or register. - + Profil A quick shortcut on the header to take you to your profile if logged in. - + Administrationspanel A header link that takes you to the admin panel if available. - + Log ud A shortcut to log you out of your account. diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx b/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx index 68388e30..a33671bb 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx @@ -1,65 +1,59 @@ - - + + - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + + + 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, + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - + + Hejmo A button on the header that takes you to the landing page. - - + Uzantoj A button on the header that takes you to the user listing. - - + Fotoj A button on the header that takes you to a list of user-uploaded photos. - - + Etaĝoj A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - - + Aŭtentigado A button on the header that takes you to a list of authentication attempts. - - + Ensaluto / Registro A button on the header that lets you log in or register. - + Profilo A quick shortcut on the header to take you to your profile if logged in. - + Panelo de administranto A header link that takes you to the admin panel if available. - + Adiaŭi A shortcut to log you out of your account. diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx b/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx index 9f37276f..521dca7d 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx @@ -1,65 +1,59 @@ - - + + - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + + + 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, + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - + + Inicio A button on the header that takes you to the landing page. - - + Usuarios A button on the header that takes you to the user listing. - - + Fotos A button on the header that takes you to a list of user-uploaded photos. - - + Niveles A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - - + Autenticación A button on the header that takes you to a list of authentication attempts. - - + Iniciar sesión / Registrarse A button on the header that lets you log in or register. - + Perfil A quick shortcut on the header to take you to your profile if logged in. - + Panel de administración A header link that takes you to the admin panel if available. - + Cerrar sesión A shortcut to log you out of your account. diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx b/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx index aef7314b..40a1f543 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx @@ -1,65 +1,59 @@ - - + + - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + + + 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, + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - + + Hjem A button on the header that takes you to the landing page. - - + Brukere A button on the header that takes you to the user listing. - - + Bilder A button on the header that takes you to a list of user-uploaded photos. - - + Nivåer A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - - + Godkjenning A button on the header that takes you to a list of authentication attempts. - - + Logg inn/Registrer A button on the header that lets you log in or register. - + Profil A quick shortcut on the header to take you to your profile if logged in. - + Administrasjon A header link that takes you to the admin panel if available. - + Logg ut A shortcut to log you out of your account. diff --git a/ProjectLighthouse.Localization/General.lang-da-DK.resx b/ProjectLighthouse.Localization/General.lang-da-DK.resx index f1a96972..00e19c4e 100644 --- a/ProjectLighthouse.Localization/General.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/General.lang-da-DK.resx @@ -36,6 +36,6 @@ Log ind - Unknown + Ukendt \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-de-DE.resx b/ProjectLighthouse.Localization/General.lang-de-DE.resx index 74fb5c8e..7aa6377c 100644 --- a/ProjectLighthouse.Localization/General.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/General.lang-de-DE.resx @@ -36,6 +36,6 @@ Anmelden - Unknown + Unbekannt \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-es-MX.resx b/ProjectLighthouse.Localization/General.lang-es-MX.resx index a4d94879..23d45a43 100644 --- a/ProjectLighthouse.Localization/General.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/General.lang-es-MX.resx @@ -18,24 +18,24 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Username + Nombre de Usuario - Password + Contraseña - Register + Registro - Forgot Password? + ¿Olvidaste tu contraseña? Uh oh! - Log In + Iniciar Sesión - Unknown + Desconocido \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fil-PH.resx b/ProjectLighthouse.Localization/General.lang-fil-PH.resx index b7eb468b..db841400 100644 --- a/ProjectLighthouse.Localization/General.lang-fil-PH.resx +++ b/ProjectLighthouse.Localization/General.lang-fil-PH.resx @@ -36,6 +36,6 @@ Mag log in - Unknown + Hindi kilala \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-no-NO.resx b/ProjectLighthouse.Localization/General.lang-no-NO.resx index 52a1ff93..9b2d9b4d 100644 --- a/ProjectLighthouse.Localization/General.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/General.lang-no-NO.resx @@ -36,6 +36,6 @@ Logg in - Unknown + Ukjent \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-pt-PT.resx b/ProjectLighthouse.Localization/General.lang-pt-PT.resx index 630a52e4..2ed5b82a 100644 --- a/ProjectLighthouse.Localization/General.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/General.lang-pt-PT.resx @@ -36,6 +36,6 @@ Iniciar Sessão - Unknown + Desconhecido \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ru-RU.resx b/ProjectLighthouse.Localization/General.lang-ru-RU.resx index f7120d74..16552ccc 100644 --- a/ProjectLighthouse.Localization/General.lang-ru-RU.resx +++ b/ProjectLighthouse.Localization/General.lang-ru-RU.resx @@ -36,6 +36,6 @@ Вход - Unknown + Неизвестно \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-zh-CN.resx b/ProjectLighthouse.Localization/General.lang-zh-CN.resx index d520df7a..018d7c1f 100644 --- a/ProjectLighthouse.Localization/General.lang-zh-CN.resx +++ b/ProjectLighthouse.Localization/General.lang-zh-CN.resx @@ -36,6 +36,6 @@ 登入 - Unknown + 未知 \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-zh-TW.resx b/ProjectLighthouse.Localization/General.lang-zh-TW.resx index 341f4e41..9838ab1a 100644 --- a/ProjectLighthouse.Localization/General.lang-zh-TW.resx +++ b/ProjectLighthouse.Localization/General.lang-zh-TW.resx @@ -36,6 +36,6 @@ 登入 - Unknown + 未知 \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-da-DK.resx b/ProjectLighthouse.Localization/LandingPage.lang-da-DK.resx index 160394c2..8a8ca8e0 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-da-DK.resx @@ -1,62 +1,54 @@ - - + + - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + + + 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, + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - + + Velkommen til {0}! A greeting on the main page of the website. - - + Du er i øjeblikket logget ind som {0}. A greeting on the main page of the website. - - + Der er ingen brugere online. Hvorfor ikke hoppe på? A greeting on the main page of the website. - - + Der er 1 bruger online: A greeting on the main page of the website. - - + Der er {0} brugere online: A greeting on the main page of the website. - - + Du har {0} godkendelsesforsøg afventende. Klik her for at se dem. A greeting on the main page of the website. - - + Seneste Baner - - + Seneste Team Picks \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-eo-UY.resx b/ProjectLighthouse.Localization/LandingPage.lang-eo-UY.resx index 17c09a1d..7e52e1f5 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-eo-UY.resx @@ -1,62 +1,54 @@ - - + + - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + + + 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, + + + 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. - - + Vi ensalutinta kiel {0}. A greeting on the main page of the website. - - + Ne estas uzantoj enretaj. Kial ne sursalti? A greeting on the main page of the website. - - + Estas 1 uzanto enreta: A greeting on the main page of the website. - - + Estas {0} uzantoj enretaj: A greeting on the main page of the website. - - + Vi havas {0} pritraktatajn aŭtentigajn provojn. Klaku ĉi tie por vidi ilin. 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-es-MX.resx b/ProjectLighthouse.Localization/LandingPage.lang-es-MX.resx index 874ee983..f723e493 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-es-MX.resx @@ -1,62 +1,54 @@ - - + + - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + + + 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, + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - Welcome to {0}! + + + ¡Bienvenido a {0}! A greeting on the main page of the website. - - + Estás conectado actualmente como {0} A greeting on the main page of the website. - - + No hay usuarios en línea. ¿Por qué no subirse? A greeting on the main page of the website. - - + Hay 1 usuario actualmente en línea: A greeting on the main page of the website. - - + Actualmente hay {0} usuarios en línea: A greeting on the main page of the website. - - + Tiene {0} intentos de autenticación pendientes. Haga clic aquí para verlos. 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-no-NO.resx b/ProjectLighthouse.Localization/LandingPage.lang-no-NO.resx index bb049a4d..f2e9ee3b 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-no-NO.resx @@ -1,62 +1,54 @@ - - + + - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + + + 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, + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - + + Velkommen til {0} A greeting on the main page of the website. - - + Du er logget inn som {0} A greeting on the main page of the website. - - + Det er ingen brukere på. Hvorfor ikke hoppe på? A greeting on the main page of the website. - - + Det er 1 bruker på for øyeblikket: A greeting on the main page of the website. - - + For tiden er {0} brukere pålogget: A greeting on the main page of the website. - - + Du har {0} autentiseringsforsøk. Klikk her for å se dem. A greeting on the main page of the website. - - + Nyeste nivåer - - + Siste lag valg \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-da-DK.resx b/ProjectLighthouse.Localization/LoggedOut.lang-da-DK.resx index 2c1315cd..7242687c 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-da-DK.resx @@ -1,29 +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 - - + + + 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 + + Logget ud - + Du er blevet logget ud. Du vil blive omdirigeret om 5 sekunder, eller du kan klikke nedenfor for at gøre det manuelt. - + Omdiriger \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-eo-UY.resx b/ProjectLighthouse.Localization/LoggedOut.lang-eo-UY.resx index 9f53122d..7a193889 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-eo-UY.resx @@ -1,29 +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 - - + + + 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-es-MX.resx b/ProjectLighthouse.Localization/LoggedOut.lang-es-MX.resx index 9f53122d..d23af8b0 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-es-MX.resx @@ -1,29 +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 + + + 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 + + + Cerrado sesión - - You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + Has cerrado la sesión con éxito. Serás redirigido en 5 segundos, o puedes hacer clic abajo para hacerlo manualmente. - - Redirect + + Redirigir \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-no-NO.resx b/ProjectLighthouse.Localization/LoggedOut.lang-no-NO.resx index a33eb4e2..366ce1ec 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-no-NO.resx @@ -1,29 +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 - - + + + 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 + + Logget ut - + Du har blitt logget ut. Du vil bli omdirigert om 5 sekunder, eller du kan klikke nedenfor for å gjøre det manuelt. - + Videresend \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-da-DK.resx b/ProjectLighthouse.Localization/Status.lang-da-DK.resx index 6669ee19..dc45d96e 100644 --- a/ProjectLighthouse.Localization/Status.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/Status.lang-da-DK.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Nu online på {0} på {1} Offline - Offline since {0} + Offline siden {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-de-DE.resx b/ProjectLighthouse.Localization/Status.lang-de-DE.resx index 6669ee19..6bb4b095 100644 --- a/ProjectLighthouse.Localization/Status.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/Status.lang-de-DE.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Spielt gerade {0} auf {1} Offline - Offline since {0} + Offline seit {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-eo-UY.resx b/ProjectLighthouse.Localization/Status.lang-eo-UY.resx index 6669ee19..a6259b25 100644 --- a/ProjectLighthouse.Localization/Status.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/Status.lang-eo-UY.resx @@ -18,10 +18,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Nuntempe interrete sur {0} sur {1} - Offline + Eksterretas Offline since {0} diff --git a/ProjectLighthouse.Localization/Status.lang-es-MX.resx b/ProjectLighthouse.Localization/Status.lang-es-MX.resx index 6669ee19..2d3c568e 100644 --- a/ProjectLighthouse.Localization/Status.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/Status.lang-es-MX.resx @@ -21,9 +21,9 @@ Currently online on {0} on {1} - Offline + Desconectado - Offline since {0} + Desconectado desde {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-fil-PH.resx b/ProjectLighthouse.Localization/Status.lang-fil-PH.resx index 6669ee19..1fcb4498 100644 --- a/ProjectLighthouse.Localization/Status.lang-fil-PH.resx +++ b/ProjectLighthouse.Localization/Status.lang-fil-PH.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Kasalukuyang online sa {0} sa {1} Offline - Offline since {0} + Offline mula noong {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-no-NO.resx b/ProjectLighthouse.Localization/Status.lang-no-NO.resx index 6669ee19..62f43274 100644 --- a/ProjectLighthouse.Localization/Status.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/Status.lang-no-NO.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + For øyeblikket tilkoblet {0} på {1} - Offline + Frakoblet - Offline since {0} + Frakoblet siden {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-pt-PT.resx b/ProjectLighthouse.Localization/Status.lang-pt-PT.resx index 6669ee19..f09d2460 100644 --- a/ProjectLighthouse.Localization/Status.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/Status.lang-pt-PT.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Atualmente online em {0} na {1} Offline - Offline since {0} + Offline desde {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-ru-RU.resx b/ProjectLighthouse.Localization/Status.lang-ru-RU.resx index 6669ee19..ba574bfb 100644 --- a/ProjectLighthouse.Localization/Status.lang-ru-RU.resx +++ b/ProjectLighthouse.Localization/Status.lang-ru-RU.resx @@ -21,7 +21,7 @@ Currently online on {0} on {1} - Offline + Не в сети Offline since {0} diff --git a/ProjectLighthouse.Localization/Status.lang-zh-CN.resx b/ProjectLighthouse.Localization/Status.lang-zh-CN.resx index 6669ee19..c257cc22 100644 --- a/ProjectLighthouse.Localization/Status.lang-zh-CN.resx +++ b/ProjectLighthouse.Localization/Status.lang-zh-CN.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + 目前在 {0} 于 {1} 在线 - Offline + 离线 - Offline since {0} + 自{0}以来离线 \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-zh-TW.resx b/ProjectLighthouse.Localization/Status.lang-zh-TW.resx index 6669ee19..dc480bda 100644 --- a/ProjectLighthouse.Localization/Status.lang-zh-TW.resx +++ b/ProjectLighthouse.Localization/Status.lang-zh-TW.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + 目前在 {0} 於 {1} 在線 - Offline + 離線 - Offline since {0} + 自{0}以來離線 \ No newline at end of file From 542058302191fd5df45beedba74b09924bbc5381 Mon Sep 17 00:00:00 2001 From: jvyden Date: Thu, 28 Jul 2022 16:10:52 -0400 Subject: [PATCH 02/44] Remove unusable Lighthouse.run.xml file, make l10n project class library --- .run/Lighthouse.run.xml | 21 ------------------ ProjectLighthouse.Localization/Program.cs | 22 ------------------- .../ProjectLighthouse.Localization.csproj | 1 - 3 files changed, 44 deletions(-) delete mode 100644 .run/Lighthouse.run.xml delete mode 100644 ProjectLighthouse.Localization/Program.cs diff --git a/.run/Lighthouse.run.xml b/.run/Lighthouse.run.xml deleted file mode 100644 index 9c9d716a..00000000 --- a/.run/Lighthouse.run.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Program.cs b/ProjectLighthouse.Localization/Program.cs deleted file mode 100644 index a4603129..00000000 --- a/ProjectLighthouse.Localization/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Reflection; - -namespace LBPUnion.ProjectLighthouse.Localization; - -public static class Program -{ - public static void Main() - { - Console.WriteLine("Resource files loaded:"); - foreach (string resourceFile in Assembly.GetExecutingAssembly().GetManifestResourceNames()) - { - Console.WriteLine(" " + resourceFile); - } - - Console.Write('\n'); - - foreach (string language in LocalizationManager.GetAvailableLanguages()) - { - Console.WriteLine(LocalizationManager.GetLocalizedString(TranslationAreas.BaseLayout, language, "header_home")); - } - } -} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj b/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj index f58feddd..c8f602ac 100644 --- a/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj +++ b/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj @@ -5,7 +5,6 @@ enable enable LBPUnion.ProjectLighthouse.Localization - Exe From e72e924c4032d38e326423f21f22135ed8f53fe9 Mon Sep 17 00:00:00 2001 From: jvyden Date: Thu, 28 Jul 2022 16:15:46 -0400 Subject: [PATCH 03/44] Remove PL.Tests dependency on all server projects Should allow slightly faster parallelized builds. --- .../ProjectLighthouse.Tests.GameApiTests.csproj | 1 + .../Tests/AuthenticationTests.cs | 3 ++- ProjectLighthouse.Tests.GameApiTests/Tests/DatabaseTests.cs | 3 ++- ProjectLighthouse.Tests.GameApiTests/Tests/MatchTests.cs | 3 ++- ProjectLighthouse.Tests.GameApiTests/Tests/SlotTests.cs | 3 ++- ProjectLighthouse.Tests.GameApiTests/Tests/UploadTests.cs | 3 ++- .../ProjectLighthouse.Tests.WebsiteTests.csproj | 1 + ProjectLighthouse.Tests/LighthouseServerTest.cs | 6 ++---- ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj | 3 --- 9 files changed, 14 insertions(+), 12 deletions(-) diff --git a/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj b/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj index a1a4cfad..3c4dfda8 100644 --- a/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj +++ b/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj @@ -27,6 +27,7 @@ + diff --git a/ProjectLighthouse.Tests.GameApiTests/Tests/AuthenticationTests.cs b/ProjectLighthouse.Tests.GameApiTests/Tests/AuthenticationTests.cs index 70fcf8bc..b81102d5 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Tests/AuthenticationTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Tests/AuthenticationTests.cs @@ -4,12 +4,13 @@ using System.Threading.Tasks; using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.PlayerData; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; using LBPUnion.ProjectLighthouse.Tests; using Xunit; namespace ProjectLighthouse.Tests.GameApiTests.Tests; -public class AuthenticationTests : LighthouseServerTest +public class AuthenticationTests : LighthouseServerTest { [Fact] public async Task ShouldReturnErrorOnNoPostData() diff --git a/ProjectLighthouse.Tests.GameApiTests/Tests/DatabaseTests.cs b/ProjectLighthouse.Tests.GameApiTests/Tests/DatabaseTests.cs index ef3fd8dd..7959c255 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Tests/DatabaseTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Tests/DatabaseTests.cs @@ -3,12 +3,13 @@ using System.Threading.Tasks; using LBPUnion.ProjectLighthouse; using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; using LBPUnion.ProjectLighthouse.Tests; using Xunit; namespace ProjectLighthouse.Tests.GameApiTests.Tests; -public class DatabaseTests : LighthouseServerTest +public class DatabaseTests : LighthouseServerTest { [DatabaseFact] public async Task CanCreateUserTwice() diff --git a/ProjectLighthouse.Tests.GameApiTests/Tests/MatchTests.cs b/ProjectLighthouse.Tests.GameApiTests/Tests/MatchTests.cs index 4bcf3324..f79bf007 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Tests/MatchTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Tests/MatchTests.cs @@ -5,12 +5,13 @@ using System.Threading; using System.Threading.Tasks; using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.PlayerData; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; using LBPUnion.ProjectLighthouse.Tests; using Xunit; namespace ProjectLighthouse.Tests.GameApiTests.Tests; -public class MatchTests : LighthouseServerTest +public class MatchTests : LighthouseServerTest { private static readonly SemaphoreSlim semaphore = new(1, 1); diff --git a/ProjectLighthouse.Tests.GameApiTests/Tests/SlotTests.cs b/ProjectLighthouse.Tests.GameApiTests/Tests/SlotTests.cs index f9d96442..7ff8326d 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Tests/SlotTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Tests/SlotTests.cs @@ -6,12 +6,13 @@ using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; using LBPUnion.ProjectLighthouse.Tests; using Xunit; namespace ProjectLighthouse.Tests.GameApiTests.Tests; -public class SlotTests : LighthouseServerTest +public class SlotTests : LighthouseServerTest { [DatabaseFact] public async Task ShouldOnlyShowUsersLevels() diff --git a/ProjectLighthouse.Tests.GameApiTests/Tests/UploadTests.cs b/ProjectLighthouse.Tests.GameApiTests/Tests/UploadTests.cs index ddfa5043..8787ba4d 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Tests/UploadTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Tests/UploadTests.cs @@ -4,12 +4,13 @@ using System.Net; using System.Net.Http; using System.Threading.Tasks; using LBPUnion.ProjectLighthouse.PlayerData; +using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; using LBPUnion.ProjectLighthouse.Tests; using Xunit; namespace ProjectLighthouse.Tests.GameApiTests.Tests; -public class UploadTests : LighthouseServerTest +public class UploadTests : LighthouseServerTest { public UploadTests() { diff --git a/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj b/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj index be7ef808..3c950839 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj +++ b/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj @@ -29,6 +29,7 @@ + diff --git a/ProjectLighthouse.Tests/LighthouseServerTest.cs b/ProjectLighthouse.Tests/LighthouseServerTest.cs index bd18d63d..cb3df9f1 100644 --- a/ProjectLighthouse.Tests/LighthouseServerTest.cs +++ b/ProjectLighthouse.Tests/LighthouseServerTest.cs @@ -7,8 +7,6 @@ using System.Xml.Serialization; using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.Serialization; -using LBPUnion.ProjectLighthouse.Servers.GameServer.Startup; -using LBPUnion.ProjectLighthouse.Types; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.TestHost; using Microsoft.EntityFrameworkCore; @@ -16,14 +14,14 @@ using Microsoft.EntityFrameworkCore; namespace LBPUnion.ProjectLighthouse.Tests; [SuppressMessage("ReSharper", "UnusedMember.Global")] -public class LighthouseServerTest +public class LighthouseServerTest where TStartup : class { public readonly HttpClient Client; public readonly TestServer Server; public LighthouseServerTest() { - this.Server = new TestServer(new WebHostBuilder().UseStartup()); + this.Server = new TestServer(new WebHostBuilder().UseStartup()); this.Client = this.Server.CreateClient(); } public async Task AuthenticateResponse(int number = -1, bool createUser = true) diff --git a/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj b/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj index 7b85a6a0..b0f43b1c 100644 --- a/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj +++ b/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj @@ -35,9 +35,6 @@ PreserveNewest - - - From 98cf99e4b02fb31271d91307c9cea89fa576512f Mon Sep 17 00:00:00 2001 From: jvyden Date: Thu, 28 Jul 2022 16:17:09 -0400 Subject: [PATCH 04/44] Fix compiler warning --- ProjectLighthouse.Servers.Website/Pages/ReportPage.cshtml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectLighthouse.Servers.Website/Pages/ReportPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/ReportPage.cshtml.cs index 20f5cb4f..f4c73ff4 100644 --- a/ProjectLighthouse.Servers.Website/Pages/ReportPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/ReportPage.cshtml.cs @@ -13,7 +13,7 @@ public class ReportPage : BaseLayout public ReportPage(Database database) : base(database) {} - public GriefReport Report; + public GriefReport Report = null!; // Report is not used if it's null in OnGet public async Task OnGet([FromRoute] int reportId) { From a8410fe35290809e99c13b4ae99e07777f039163 Mon Sep 17 00:00:00 2001 From: jvyden Date: Thu, 28 Jul 2022 16:18:35 -0400 Subject: [PATCH 05/44] Fix UploadTests not using DatabaseFacts --- .../Tests/UploadTests.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ProjectLighthouse.Tests.GameApiTests/Tests/UploadTests.cs b/ProjectLighthouse.Tests.GameApiTests/Tests/UploadTests.cs index 8787ba4d..3c32ab52 100644 --- a/ProjectLighthouse.Tests.GameApiTests/Tests/UploadTests.cs +++ b/ProjectLighthouse.Tests.GameApiTests/Tests/UploadTests.cs @@ -18,7 +18,7 @@ public class UploadTests : LighthouseServerTest if (Directory.Exists(assetsDirectory)) Directory.Delete(assetsDirectory, true); } - [Fact] + [DatabaseFact] public async Task ShouldNotAcceptScript() { LoginResult loginResult = await this.Authenticate(); @@ -28,7 +28,7 @@ public class UploadTests : LighthouseServerTest Assert.False(response.IsSuccessStatusCode); } - [Fact] + [DatabaseFact] public async Task ShouldNotAcceptFarc() { LoginResult loginResult = await this.Authenticate(); @@ -38,7 +38,7 @@ public class UploadTests : LighthouseServerTest Assert.False(response.IsSuccessStatusCode); } - [Fact] + [DatabaseFact] public async Task ShouldNotAcceptGarbage() { LoginResult loginResult = await this.Authenticate(); @@ -48,7 +48,7 @@ public class UploadTests : LighthouseServerTest Assert.False(response.IsSuccessStatusCode); } - [Fact] + [DatabaseFact] public async Task ShouldAcceptTexture() { LoginResult loginResult = await this.Authenticate(); @@ -58,7 +58,7 @@ public class UploadTests : LighthouseServerTest Assert.True(response.IsSuccessStatusCode); } - [Fact] + [DatabaseFact] public async Task ShouldAcceptLevel() { LoginResult loginResult = await this.Authenticate(); From 4ba75f09a9c16047d6cdc48a2fae5b84dbaf37bc Mon Sep 17 00:00:00 2001 From: jvyden Date: Fri, 29 Jul 2022 15:08:41 -0400 Subject: [PATCH 06/44] Make all tokens expire Closes #335 --- .config/dotnet-tools.json | 2 +- .../Controllers/LoginController.cs | 8 +- .../Controllers/MessageController.cs | 2 + .../Pages/LoginForm.cshtml.cs | 2 + .../Pages/RegisterForm.cshtml.cs | 1 + .../Pages/SetEmailForm.cshtml.cs | 3 + .../Tests/AdminTests.cs | 2 + .../Tests/AuthenticationTests.cs | 1 + ProjectLighthouse/Database.cs | 60 +++++++++++++- .../Extensions/DatabaseExtensions.cs | 7 +- .../20220729182709_AddExpiryTimesToTokens.cs | 80 +++++++++++++++++++ .../Migrations/DatabaseModelSnapshot.cs | 18 +++++ ProjectLighthouse/PlayerData/GameToken.cs | 3 + .../Profiles/Email/EmailSetToken.cs | 3 + .../Profiles/Email/EmailVerificationToken.cs | 3 + ProjectLighthouse/PlayerData/WebToken.cs | 3 + 16 files changed, 188 insertions(+), 10 deletions(-) create mode 100644 ProjectLighthouse/Migrations/20220729182709_AddExpiryTimesToTokens.cs diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index e15fce7d..284937e9 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "dotnet-ef": { - "version": "6.0.5", + "version": "6.0.7", "commands": [ "dotnet-ef" ] diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/LoginController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/LoginController.cs index 056a5cfe..8273c408 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/LoginController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/LoginController.cs @@ -57,9 +57,10 @@ public class LoginController : ControllerBase string ipAddress = remoteIpAddress.ToString(); + await this.database.RemoveExpiredTokens(); + // Get an existing token from the IP & username - GameToken? token = await this.database.GameTokens.Include - (t => t.User) + GameToken? token = await this.database.GameTokens.Include(t => t.User) .FirstOrDefaultAsync(t => t.UserLocation == ipAddress && t.User.Username == npTicket.Username && !t.Used); if (token == null) // If we cant find an existing token, try to generate a new one @@ -67,7 +68,8 @@ public class LoginController : ControllerBase token = await this.database.AuthenticateUser(npTicket, ipAddress); if (token == null) { - Logger.Warn($"Unable to find/generate a token for username {npTicket.Username}", LogArea.Login); + Logger.Warn($"Unable to " + + $"find/generate a token for username {npTicket.Username}", LogArea.Login); return this.StatusCode(403, ""); // If not, then 403. } } diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs index 63067c7a..745ec299 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs @@ -1,4 +1,5 @@ #nullable enable +using System.Globalization; using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Logging; @@ -75,6 +76,7 @@ along with this program. If not, see ."; $"token.Used: {gameToken.Used}\n" + $"token.UserLocation: {gameToken.UserLocation}\n" + $"token.GameVersion: {gameToken.GameVersion}\n" + + $"token.ExpiresAt: {gameToken.ExpiresAt.ToString(CultureInfo.CurrentCulture)}\n" + "---DEBUG INFO---" + #endif "\n" diff --git a/ProjectLighthouse.Servers.Website/Pages/LoginForm.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/LoginForm.cshtml.cs index 662f1f5b..5c6ea815 100644 --- a/ProjectLighthouse.Servers.Website/Pages/LoginForm.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/LoginForm.cshtml.cs @@ -73,6 +73,7 @@ public class LoginForm : BaseLayout UserId = user.UserId, User = user, EmailToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.Now + TimeSpan.FromHours(6), }; this.Database.EmailSetTokens.Add(emailSetToken); @@ -85,6 +86,7 @@ public class LoginForm : BaseLayout { UserId = user.UserId, UserToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.Now + TimeSpan.FromDays(7), }; this.Database.WebTokens.Add(webToken); diff --git a/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml.cs index 4bbe3efb..8789285c 100644 --- a/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml.cs @@ -94,6 +94,7 @@ public class RegisterForm : BaseLayout { UserId = user.UserId, UserToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.Now + TimeSpan.FromDays(7), }; this.Database.WebTokens.Add(webToken); diff --git a/ProjectLighthouse.Servers.Website/Pages/SetEmailForm.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/SetEmailForm.cshtml.cs index 05d57ee3..01ca1262 100644 --- a/ProjectLighthouse.Servers.Website/Pages/SetEmailForm.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/SetEmailForm.cshtml.cs @@ -49,15 +49,18 @@ public class SetEmailForm : BaseLayout UserId = user.UserId, User = user, EmailToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.Now + TimeSpan.FromHours(6), }; this.Database.EmailVerificationTokens.Add(emailVerifyToken); // The user just set their email address. Now, let's grant them a token to proceed with verifying the email. + // TODO: insecure WebToken webToken = new() { UserId = user.UserId, UserToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.Now + TimeSpan.FromDays(7), }; this.Response.Cookies.Append diff --git a/ProjectLighthouse.Tests.WebsiteTests/Tests/AdminTests.cs b/ProjectLighthouse.Tests.WebsiteTests/Tests/AdminTests.cs index 9c137086..0b38cdbc 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/Tests/AdminTests.cs +++ b/ProjectLighthouse.Tests.WebsiteTests/Tests/AdminTests.cs @@ -25,6 +25,7 @@ public class AdminTests : LighthouseWebTest { UserId = user.UserId, UserToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.Now + TimeSpan.FromHours(1), }; database.WebTokens.Add(webToken); @@ -49,6 +50,7 @@ public class AdminTests : LighthouseWebTest { UserId = user.UserId, UserToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.Now + TimeSpan.FromHours(1), }; database.WebTokens.Add(webToken); diff --git a/ProjectLighthouse.Tests.WebsiteTests/Tests/AuthenticationTests.cs b/ProjectLighthouse.Tests.WebsiteTests/Tests/AuthenticationTests.cs index af4c9af2..f85d0c99 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/Tests/AuthenticationTests.cs +++ b/ProjectLighthouse.Tests.WebsiteTests/Tests/AuthenticationTests.cs @@ -88,6 +88,7 @@ public class AuthenticationTests : LighthouseWebTest { UserId = user.UserId, UserToken = CryptoHelper.GenerateAuthToken(), + ExpiresAt = DateTime.Now + TimeSpan.FromHours(1), }; database.WebTokens.Add(webToken); diff --git a/ProjectLighthouse/Database.cs b/ProjectLighthouse/Database.cs index f6fad8b5..f3dd283a 100644 --- a/ProjectLighthouse/Database.cs +++ b/ProjectLighthouse/Database.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using LBPUnion.ProjectLighthouse.Administration; using LBPUnion.ProjectLighthouse.Administration.Reports; using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.Levels.Categories; @@ -111,6 +112,8 @@ public class Database : DbContext UserLocation = userLocation, GameVersion = npTicket.GameVersion, Platform = npTicket.Platform, + // we can get away with a low expiry here since LBP will just get a new token everytime it gets 403'd + ExpiresAt = DateTime.Now + TimeSpan.FromHours(1), }; this.GameTokens.Add(gameToken); @@ -289,6 +292,13 @@ public class Database : DbContext if (token == null) return null; if (!allowUnapproved && !token.Approved) return null; + if (DateTime.Now > token.ExpiresAt) + { + this.Remove(token); + await this.SaveChangesAsync(); + return null; + } + return await this.Users.Include(u => u.Location).FirstOrDefaultAsync(u => u.UserId == token.UserId); } @@ -314,6 +324,13 @@ public class Database : DbContext if (token == null) return null; if (!allowUnapproved && !token.Approved) return null; + if (DateTime.Now > token.ExpiresAt) + { + this.Remove(token); + await this.SaveChangesAsync(); + return null; + } + return token; } @@ -326,6 +343,13 @@ public class Database : DbContext if (token == null) return null; if (!allowUnapproved && !token.Approved) return null; + if (DateTime.Now > token.ExpiresAt) + { + this.Remove(token); + await this.SaveChangesAsync(); + return null; + } + User? user = await this.UserFromGameToken(token); if (user == null) return null; @@ -342,6 +366,13 @@ public class Database : DbContext WebToken? token = this.WebTokens.FirstOrDefault(t => t.UserToken == lighthouseToken); if (token == null) return null; + if (DateTime.Now > token.ExpiresAt) + { + this.Remove(token); + this.SaveChanges(); + return null; + } + return this.Users.Include(u => u.Location).FirstOrDefault(u => u.UserId == token.UserId); } @@ -356,12 +387,21 @@ public class Database : DbContext { if (!request.Cookies.TryGetValue("LighthouseToken", out string? lighthouseToken) || lighthouseToken == null) return null; - return this.WebTokens.FirstOrDefault(t => t.UserToken == lighthouseToken); + WebToken? token = this.WebTokens.FirstOrDefault(t => t.UserToken == lighthouseToken); + if (token == null) return null; + + if (DateTime.Now > token.ExpiresAt) + { + this.Remove(token); + this.SaveChanges(); + return null; + } + + return token; } public async Task UserFromPasswordResetToken(string resetToken) { - PasswordResetToken? token = await this.PasswordResetTokens.FirstOrDefaultAsync(token => token.ResetToken == resetToken); if (token == null) { @@ -371,8 +411,10 @@ public class Database : DbContext if (token.Created < DateTime.Now.AddHours(-1)) // if token is expired { this.PasswordResetTokens.Remove(token); + await this.SaveChangesAsync(); return null; } + return await this.Users.FirstOrDefaultAsync(user => user.UserId == token.UserId); } @@ -385,12 +427,23 @@ public class Database : DbContext if (token.Created < DateTime.Now.AddDays(-7)) // if token is expired { this.RegistrationTokens.Remove(token); + this.SaveChanges(); return false; } return true; } + public async Task RemoveExpiredTokens() + { + this.GameTokens.RemoveWhere(t => DateTime.Now > t.ExpiresAt); + this.WebTokens.RemoveWhere(t => DateTime.Now > t.ExpiresAt); + this.EmailVerificationTokens.RemoveWhere(t => DateTime.Now > t.ExpiresAt); + this.EmailSetTokens.RemoveWhere(t => DateTime.Now > t.ExpiresAt); + + await this.SaveChangesAsync(); + } + public async Task RemoveRegistrationToken(string tokenString) { RegistrationToken? token = await this.RegistrationTokens.FirstOrDefaultAsync(t => t.Token == tokenString); @@ -398,7 +451,6 @@ public class Database : DbContext if (token == null) return; this.RegistrationTokens.Remove(token); - await this.SaveChangesAsync(); } @@ -426,10 +478,10 @@ public class Database : DbContext this.RatedLevels.RemoveRange(this.RatedLevels.Where(r => r.UserId == user.UserId)); this.GameTokens.RemoveRange(this.GameTokens.Where(t => t.UserId == user.UserId)); this.WebTokens.RemoveRange(this.WebTokens.Where(t => t.UserId == user.UserId)); + this.Reactions.RemoveRange(this.Reactions.Where(p => p.UserId == user.UserId)); this.Comments.RemoveRange(this.Comments.Where(c => c.PosterUserId == user.UserId)); this.Reviews.RemoveRange(this.Reviews.Where(r => r.ReviewerId == user.UserId)); this.Photos.RemoveRange(this.Photos.Where(p => p.CreatorId == user.UserId)); - this.Reactions.RemoveRange(this.Reactions.Where(p => p.UserId == user.UserId)); this.Users.Remove(user); diff --git a/ProjectLighthouse/Extensions/DatabaseExtensions.cs b/ProjectLighthouse/Extensions/DatabaseExtensions.cs index a7e27782..67748eff 100644 --- a/ProjectLighthouse/Extensions/DatabaseExtensions.cs +++ b/ProjectLighthouse/Extensions/DatabaseExtensions.cs @@ -56,6 +56,9 @@ public static class DatabaseExtensions return query; } - public static async Task Has(this IQueryable queryable, Expression> predicate) => - await queryable.FirstOrDefaultAsync(predicate) != null; + public static async Task Has(this IQueryable queryable, Expression> predicate) + => await queryable.FirstOrDefaultAsync(predicate) != null; + + public static void RemoveWhere(this DbSet queryable, Expression> predicate) where T : class + => queryable.RemoveRange(queryable.Where(predicate)); } \ No newline at end of file diff --git a/ProjectLighthouse/Migrations/20220729182709_AddExpiryTimesToTokens.cs b/ProjectLighthouse/Migrations/20220729182709_AddExpiryTimesToTokens.cs new file mode 100644 index 00000000..1560ad99 --- /dev/null +++ b/ProjectLighthouse/Migrations/20220729182709_AddExpiryTimesToTokens.cs @@ -0,0 +1,80 @@ +using System; +using LBPUnion.ProjectLighthouse; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace ProjectLighthouse.Migrations +{ + [DbContext(typeof(Database))] + [Migration("20220729182709_AddExpiryTimesToTokens")] + public partial class AddExpiryTimesToTokens : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + // Remove existing tokens + migrationBuilder.Sql("DELETE FROM GameTokens;"); + migrationBuilder.Sql("DELETE FROM WebTokens;"); + migrationBuilder.Sql("DELETE FROM EmailSetTokens;"); + migrationBuilder.Sql("DELETE FROM EmailVerificationTokens;"); + migrationBuilder.Sql("DELETE FROM PasswordResetTokens;"); + migrationBuilder.Sql("DELETE FROM RegistrationTokens;"); + + migrationBuilder.AddColumn( + name: "ExpiresAt", + table: "WebTokens", + type: "datetime(6)", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "ExpiresAt", + table: "GameTokens", + type: "datetime(6)", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "ExpiresAt", + table: "EmailVerificationTokens", + type: "datetime(6)", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "ExpiresAt", + table: "EmailSetTokens", + type: "datetime(6)", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ExpiresAt", + table: "WebTokens"); + + migrationBuilder.DropColumn( + name: "ExpiresAt", + table: "RegistrationTokens"); + + migrationBuilder.DropColumn( + name: "ExpiresAt", + table: "PasswordResetTokens"); + + migrationBuilder.DropColumn( + name: "ExpiresAt", + table: "GameTokens"); + + migrationBuilder.DropColumn( + name: "ExpiresAt", + table: "EmailVerificationTokens"); + + migrationBuilder.DropColumn( + name: "ExpiresAt", + table: "EmailSetTokens"); + } + } +} diff --git a/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs b/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs index 53cd19d1..9a2d1729 100644 --- a/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs +++ b/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs @@ -385,6 +385,9 @@ namespace ProjectLighthouse.Migrations b.Property("Approved") .HasColumnType("tinyint(1)"); + b.Property("ExpiresAt") + .HasColumnType("datetime(6)"); + b.Property("GameVersion") .HasColumnType("int"); @@ -419,6 +422,9 @@ namespace ProjectLighthouse.Migrations b.Property("Created") .HasColumnType("datetime(6)"); + b.Property("ExpiresAt") + .HasColumnType("datetime(6)"); + b.Property("ResetToken") .HasColumnType("longtext"); @@ -540,6 +546,9 @@ namespace ProjectLighthouse.Migrations b.Property("EmailToken") .HasColumnType("longtext"); + b.Property("ExpiresAt") + .HasColumnType("datetime(6)"); + b.Property("UserId") .HasColumnType("int"); @@ -559,6 +568,9 @@ namespace ProjectLighthouse.Migrations b.Property("EmailToken") .HasColumnType("longtext"); + b.Property("ExpiresAt") + .HasColumnType("datetime(6)"); + b.Property("UserId") .HasColumnType("int"); @@ -731,6 +743,9 @@ namespace ProjectLighthouse.Migrations b.Property("Created") .HasColumnType("datetime(6)"); + b.Property("ExpiresAt") + .HasColumnType("datetime(6)"); + b.Property("Token") .HasColumnType("longtext"); @@ -841,6 +856,9 @@ namespace ProjectLighthouse.Migrations .ValueGeneratedOnAdd() .HasColumnType("int"); + b.Property("ExpiresAt") + .HasColumnType("datetime(6)"); + b.Property("UserId") .HasColumnType("int"); diff --git a/ProjectLighthouse/PlayerData/GameToken.cs b/ProjectLighthouse/PlayerData/GameToken.cs index dd83924a..1317b34f 100644 --- a/ProjectLighthouse/PlayerData/GameToken.cs +++ b/ProjectLighthouse/PlayerData/GameToken.cs @@ -1,3 +1,4 @@ +using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; @@ -28,4 +29,6 @@ public class GameToken // Set to true on login public bool Used { get; set; } + + public DateTime ExpiresAt { get; set; } } \ No newline at end of file diff --git a/ProjectLighthouse/PlayerData/Profiles/Email/EmailSetToken.cs b/ProjectLighthouse/PlayerData/Profiles/Email/EmailSetToken.cs index 152e42ed..879efce9 100644 --- a/ProjectLighthouse/PlayerData/Profiles/Email/EmailSetToken.cs +++ b/ProjectLighthouse/PlayerData/Profiles/Email/EmailSetToken.cs @@ -1,3 +1,4 @@ +using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; @@ -14,4 +15,6 @@ public class EmailSetToken public User User { get; set; } public string EmailToken { get; set; } + + public DateTime ExpiresAt { get; set; } } \ No newline at end of file diff --git a/ProjectLighthouse/PlayerData/Profiles/Email/EmailVerificationToken.cs b/ProjectLighthouse/PlayerData/Profiles/Email/EmailVerificationToken.cs index 61559cce..d2c9e866 100644 --- a/ProjectLighthouse/PlayerData/Profiles/Email/EmailVerificationToken.cs +++ b/ProjectLighthouse/PlayerData/Profiles/Email/EmailVerificationToken.cs @@ -1,3 +1,4 @@ +using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; @@ -14,4 +15,6 @@ public class EmailVerificationToken public User User { get; set; } public string EmailToken { get; set; } + + public DateTime ExpiresAt { get; set; } } \ No newline at end of file diff --git a/ProjectLighthouse/PlayerData/WebToken.cs b/ProjectLighthouse/PlayerData/WebToken.cs index 7860a418..9ad0f5be 100644 --- a/ProjectLighthouse/PlayerData/WebToken.cs +++ b/ProjectLighthouse/PlayerData/WebToken.cs @@ -1,3 +1,4 @@ +using System; using System.ComponentModel.DataAnnotations; namespace LBPUnion.ProjectLighthouse.PlayerData; @@ -11,4 +12,6 @@ public class WebToken public int UserId { get; set; } public string UserToken { get; set; } + + public DateTime ExpiresAt { get; set; } } \ No newline at end of file From a5b1efe853b48c350175f220c32c708e02e90e06 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 19:23:30 +0000 Subject: [PATCH 07/44] Bump InfluxDB.Client from 4.3.0 to 4.4.0 (#381) Bumps [InfluxDB.Client](https://github.com/influxdata/influxdb-client-csharp) from 4.3.0 to 4.4.0. - [Release notes](https://github.com/influxdata/influxdb-client-csharp/releases) - [Changelog](https://github.com/influxdata/influxdb-client-csharp/blob/master/CHANGELOG.md) - [Commits](https://github.com/influxdata/influxdb-client-csharp/compare/v4.3.0...v4.4.0) --- updated-dependencies: - dependency-name: InfluxDB.Client dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jayden --- ProjectLighthouse/ProjectLighthouse.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectLighthouse/ProjectLighthouse.csproj b/ProjectLighthouse/ProjectLighthouse.csproj index b54db9f9..44e05088 100644 --- a/ProjectLighthouse/ProjectLighthouse.csproj +++ b/ProjectLighthouse/ProjectLighthouse.csproj @@ -12,7 +12,7 @@ - + From fc5b061b3a68ccfb411736df2e71cdb71d2578f8 Mon Sep 17 00:00:00 2001 From: jvyden Date: Fri, 29 Jul 2022 16:14:36 -0400 Subject: [PATCH 08/44] Fix gameVersion comparison in queue and hearted levels Closes #206 --- .../Controllers/Slots/ListController.cs | 25 ++++++++----------- .../Controllers/Slots/SearchController.cs | 3 +-- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs index e888f4ad..7362aa2d 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs @@ -1,4 +1,5 @@ #nullable enable +using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; @@ -25,24 +26,21 @@ public class ListController : ControllerBase #region Level Queue (lolcatftw) [HttpGet("slots/lolcatftw/{username}")] - public async Task GetLevelQueue(string username, [FromQuery] int pageSize, [FromQuery] int pageStart) + public async Task GetQueuedLevels(string username, [FromQuery] int pageSize, [FromQuery] int pageStart) { GameToken? token = await this.database.GameTokenFromRequest(this.Request); if (token == null) return this.StatusCode(403, ""); GameVersion gameVersion = token.GameVersion; - IEnumerable queuedLevels = this.database.QueuedLevels.Include(q => q.User) - .Include(q => q.Slot) - .Include(q => q.Slot.Location) - .Include(q => q.Slot.Creator) - .Where(q => q.Slot.GameVersion <= gameVersion) - .Where(q => q.User.Username == username) + IEnumerable queuedLevels = this.database.QueuedLevels.Where(q => q.User.Username == username) + .Select(q => q.Slot) + .ByGameVersion(gameVersion, false, true) .Skip(pageStart - 1) .Take(Math.Min(pageSize, 30)) .AsEnumerable(); - string response = queuedLevels.Aggregate(string.Empty, (current, q) => current + q.Slot.Serialize(gameVersion)); + string response = queuedLevels.Aggregate(string.Empty, (current, q) => current + q.Serialize(gameVersion)); return this.Ok ( @@ -104,17 +102,14 @@ public class ListController : ControllerBase GameVersion gameVersion = token.GameVersion; - IEnumerable heartedLevels = this.database.HeartedLevels.Include(q => q.User) - .Include(q => q.Slot) - .Include(q => q.Slot.Location) - .Include(q => q.Slot.Creator) - .Where(q => q.Slot.GameVersion <= gameVersion) - .Where(q => q.User.Username == username) + IEnumerable heartedLevels = this.database.HeartedLevels.Where(q => q.User.Username == username) + .Select(q => q.Slot) + .ByGameVersion(gameVersion, false, true) .Skip(pageStart - 1) .Take(Math.Min(pageSize, 30)) .AsEnumerable(); - string response = heartedLevels.Aggregate(string.Empty, (current, q) => current + q.Slot.Serialize(gameVersion)); + string response = heartedLevels.Aggregate(string.Empty, (current, q) => current + q.Serialize(gameVersion)); return this.Ok ( diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs index 8e6e43bf..08c68e34 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs @@ -31,8 +31,7 @@ public class SearchController : ControllerBase string[] keywords = query.Split(" "); - IQueryable dbQuery = this.database.Slots.Include - (s => s.Creator) + IQueryable dbQuery = this.database.Slots.Include(s => s.Creator) .Include(s => s.Location) .OrderBy(s => !s.TeamPick) .ThenByDescending(s => s.FirstUploaded) From d810a3a9f14d2f2e3d9d00fd3a95186def4f0151 Mon Sep 17 00:00:00 2001 From: jvyden Date: Fri, 29 Jul 2022 16:47:14 -0400 Subject: [PATCH 09/44] Implement busiest tab --- .../Controllers/Slots/SlotsController.cs | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs index 5fab0b3b..4cbad3f8 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs @@ -3,6 +3,7 @@ using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Levels; +using LBPUnion.ProjectLighthouse.Match.Rooms; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.PlayerData.Reviews; @@ -353,6 +354,69 @@ public class SlotsController : ControllerBase ) ); } + + // /slots/busiest?pageStart=1&pageSize=30&gameFilterType=both&players=1&move=true + [HttpGet("slots/busiest")] + public async Task BusiestLevels + ( + [FromQuery] int pageStart, + [FromQuery] int pageSize, + [FromQuery] string? gameFilterType = null, + [FromQuery] int? players = null, + [FromQuery] bool? move = null + ) + { + GameToken? token = await this.database.GameTokenFromRequest(this.Request); + if (token == null) return this.StatusCode(403, ""); + + Dictionary playersBySlotId = new(); + + foreach (Room room in RoomHelper.Rooms) + { + // TODO: support developer slotTypes? + if(room.Slot.SlotType != SlotType.User) continue; + + if (!playersBySlotId.TryGetValue(room.Slot.SlotId, out int playerCount)) + playersBySlotId.Add(room.Slot.SlotId, 0); + + playerCount += room.PlayerIds.Count; + + playersBySlotId.Remove(room.Slot.SlotId); + playersBySlotId.Add(room.Slot.SlotId, playerCount); + } + + IEnumerable orderedPlayersBySlotId = playersBySlotId + .Skip(pageStart - 1) + .Take(Math.Min(pageSize, 30)) + .OrderByDescending(kvp => kvp.Value) + .Select(kvp => kvp.Key); + + List slots = new(); + + foreach (int slotId in orderedPlayersBySlotId) + { + Slot? slot = await this.database.Slots.ByGameVersion(token.GameVersion, false, true) + .FirstOrDefaultAsync(s => s.SlotId == slotId); + if(slot == null) continue; // shouldn't happen ever unless the room is borked + + slots.Add(slot); + } + + string response = slots.Aggregate(string.Empty, (current, slot) => current + slot.Serialize(token.GameVersion)); + + return this.Ok(LbpSerializer.TaggedStringElement("slots", + response, + new Dictionary + { + { + "hint_start", pageStart + Math.Min(pageSize, ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots) + }, + { + "total", playersBySlotId.Count + }, + })); + } + private GameVersion getGameFilter(string? gameFilterType, GameVersion version) { From e18e606787573ecf5746a085af509f15ab248885 Mon Sep 17 00:00:00 2001 From: jvyden Date: Fri, 29 Jul 2022 17:20:01 -0400 Subject: [PATCH 10/44] Implement LBP3 search tab Closes #377 --- .../Controllers/Slots/CollectionController.cs | 2 ++ .../Controllers/Slots/SearchController.cs | 20 +++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/CollectionController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/CollectionController.cs index c6ce69db..4d7eb1b8 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/CollectionController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/CollectionController.cs @@ -47,6 +47,8 @@ public class CollectionController : ControllerBase } ); + categoriesSerialized += LbpSerializer.StringElement("text_search", LbpSerializer.StringElement("url", "/slots/searchLBP3")); + return this.Ok ( LbpSerializer.TaggedStringElement diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs index 08c68e34..2e4de98a 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs @@ -9,7 +9,7 @@ using Microsoft.EntityFrameworkCore; namespace LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Slots; [ApiController] -[Route("LITTLEBIGPLANETPS3_XML/")] +[Route("LITTLEBIGPLANETPS3_XML/slots")] [Produces("text/xml")] public class SearchController : ControllerBase { @@ -19,8 +19,17 @@ public class SearchController : ControllerBase this.database = database; } - [HttpGet("slots/search")] - public async Task SearchSlots([FromQuery] string query, [FromQuery] int pageSize, [FromQuery] int pageStart) + [HttpGet("searchLBP3")] + public Task SearchSlotsLBP3([FromQuery] int pageSize, [FromQuery] int pageStart, [FromQuery] string textFilter) + => SearchSlots(textFilter, pageSize, pageStart, "results"); + + [HttpGet("search")] + public async Task SearchSlots( + [FromQuery] string query, + [FromQuery] int pageSize, + [FromQuery] int pageStart, + string keyName = "slots" + ) { GameToken? gameToken = await this.database.GameTokenFromRequest(this.Request); if (gameToken == null) return this.StatusCode(403, ""); @@ -51,6 +60,9 @@ public class SearchController : ControllerBase string response = slots.Aggregate("", (current, slot) => current + slot.Serialize(gameToken.GameVersion)); - return this.Ok(LbpSerializer.TaggedStringElement("slots", response, "total", dbQuery.Count())); + return this.Ok(LbpSerializer.TaggedStringElement(keyName, response, "total", dbQuery.Count())); } + + // /LITTLEBIGPLANETPS3_XML?pageStart=1&pageSize=10&resultTypes[]=slot&resultTypes[]=playlist&resultTypes[]=user&adventure=dontCare&textFilter=qwer + } \ No newline at end of file From 958ddfeab0020d1f8b08e813f6699d8afe8bdcd6 Mon Sep 17 00:00:00 2001 From: Jayden Date: Fri, 29 Jul 2022 21:04:18 -0400 Subject: [PATCH 11/44] Potential fix for LBP2 search Unsigned because I'm not home, and I'm on my phone. --- .../Controllers/Slots/SearchController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs index 2e4de98a..fab980fc 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SearchController.cs @@ -28,7 +28,7 @@ public class SearchController : ControllerBase [FromQuery] string query, [FromQuery] int pageSize, [FromQuery] int pageStart, - string keyName = "slots" + string? keyName = "slots" ) { GameToken? gameToken = await this.database.GameTokenFromRequest(this.Request); @@ -65,4 +65,4 @@ public class SearchController : ControllerBase // /LITTLEBIGPLANETPS3_XML?pageStart=1&pageSize=10&resultTypes[]=slot&resultTypes[]=playlist&resultTypes[]=user&adventure=dontCare&textFilter=qwer -} \ No newline at end of file +} From e937f4f7cb3ef7c6c6706991c07afb4350818706 Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 29 Jul 2022 22:48:44 -0500 Subject: [PATCH 12/44] Fix duplicate resource uploading (#382) --- .../Controllers/Resources/ResourcesController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Resources/ResourcesController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Resources/ResourcesController.cs index 1ea40e45..84a94038 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Resources/ResourcesController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Resources/ResourcesController.cs @@ -75,7 +75,7 @@ public class ResourcesController : ControllerBase FileHelper.EnsureDirectoryCreated(assetsDirectory); // lbp treats code 409 as success and as an indicator that the file is already present - if (FileHelper.ResourceExists(hash)) this.Conflict(); + if (FileHelper.ResourceExists(hash)) return this.Conflict(); Logger.Info($"Processing resource upload (hash: {hash})", LogArea.Resources); LbpFile file = new(await readFromPipeReader(this.Request.BodyReader)); From a599732894dedd028ad2b1c865392f25818a2886 Mon Sep 17 00:00:00 2001 From: Josh Date: Sat, 30 Jul 2022 00:23:37 -0500 Subject: [PATCH 13/44] Parse root level version instead of relying on token gameversion. (#332) * Implement root level revision parsing * Fix class naming * Implement suggestions from code review * Safety checks and remove deploy build * Don't attempt to parse LVLt and change branch nomenclature. * Treat text formatted resources as unsafe * Update magic header of test script file * Fix LBP Vita revision check Co-authored-by: Jayden --- .../Controllers/Slots/PublishController.cs | 27 ++++---- .../ExampleFiles/TestScript.ff | 2 +- .../CleanupSlotVersionMismatchMigration.cs | 27 ++++++++ ProjectLighthouse/Files/FileHelper.cs | 64 ++++++++++++++++--- 4 files changed, 96 insertions(+), 24 deletions(-) create mode 100644 ProjectLighthouse/Administration/Maintenance/MigrationTasks/CleanupSlotVersionMismatchMigration.cs diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs index 5f5d423c..620753a3 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs @@ -8,7 +8,6 @@ using LBPUnion.ProjectLighthouse.Logging; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.Serialization; -using LBPUnion.ProjectLighthouse.Types; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -47,6 +46,12 @@ public class PublishController : ControllerBase if (string.IsNullOrEmpty(slot.ResourceCollection)) slot.ResourceCollection = slot.RootLevel; + LbpFile? rootLevel = LbpFile.FromHash(slot.RootLevel); + if (rootLevel == null) return this.BadRequest(); + + GameVersion slotVersion = FileHelper.ParseLevelVersion(rootLevel); + if (slotVersion == GameVersion.Unknown) slotVersion = gameToken.GameVersion; + // Republish logic if (slot.SlotId != 0) { @@ -54,7 +59,7 @@ public class PublishController : ControllerBase if (oldSlot == null) return this.NotFound(); if (oldSlot.CreatorId != user.UserId) return this.BadRequest(); } - else if (user.GetUsedSlotsForGame(gameToken.GameVersion) > ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots) + else if (user.GetUsedSlotsForGame(slotVersion) > ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots) { return this.StatusCode(403, ""); } @@ -127,6 +132,11 @@ public class PublishController : ControllerBase return this.BadRequest(); } + GameVersion slotVersion = FileHelper.ParseLevelVersion(rootLevel); + + slot.GameVersion = slotVersion; + if (slotVersion == GameVersion.Unknown) slot.GameVersion = gameToken.GameVersion; + // Republish logic if (slot.SlotId != 0) { @@ -177,16 +187,6 @@ public class PublishController : ControllerBase slot.TeamPick = oldSlot.TeamPick; - // Only update a slot's gameVersion if the level was actually change - if (oldSlot.RootLevel != slot.RootLevel) - { - slot.GameVersion = gameToken.GameVersion; - } - else - { - slot.GameVersion = oldSlot.GameVersion; - } - if (slot.MinimumPlayers == 0 || slot.MaximumPlayers == 0) { slot.MinimumPlayers = 1; @@ -198,7 +198,7 @@ public class PublishController : ControllerBase return this.Ok(oldSlot.Serialize(gameToken.GameVersion)); } - if (user.GetUsedSlotsForGame(gameToken.GameVersion) > ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots) + if (user.GetUsedSlotsForGame(slotVersion) > ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots) { Logger.Warn("Rejecting level upload, too many published slots", LogArea.Publish); return this.BadRequest(); @@ -216,7 +216,6 @@ public class PublishController : ControllerBase slot.CreatorId = user.UserId; slot.FirstUploaded = TimeHelper.UnixTimeMilliseconds(); slot.LastUpdated = TimeHelper.UnixTimeMilliseconds(); - slot.GameVersion = gameToken.GameVersion; if (slot.MinimumPlayers == 0 || slot.MaximumPlayers == 0) { diff --git a/ProjectLighthouse.Tests/ExampleFiles/TestScript.ff b/ProjectLighthouse.Tests/ExampleFiles/TestScript.ff index ba1ce0e4..dfc876f9 100644 --- a/ProjectLighthouse.Tests/ExampleFiles/TestScript.ff +++ b/ProjectLighthouse.Tests/ExampleFiles/TestScript.ff @@ -1,3 +1,3 @@ -FSH +FSHb this is not my stuff to upload so its just gonna be a file like this for now :/ \ No newline at end of file diff --git a/ProjectLighthouse/Administration/Maintenance/MigrationTasks/CleanupSlotVersionMismatchMigration.cs b/ProjectLighthouse/Administration/Maintenance/MigrationTasks/CleanupSlotVersionMismatchMigration.cs new file mode 100644 index 00000000..0b48441d --- /dev/null +++ b/ProjectLighthouse/Administration/Maintenance/MigrationTasks/CleanupSlotVersionMismatchMigration.cs @@ -0,0 +1,27 @@ +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Files; +using LBPUnion.ProjectLighthouse.Levels; +using LBPUnion.ProjectLighthouse.PlayerData; + +namespace LBPUnion.ProjectLighthouse.Administration.Maintenance.MigrationTasks; + +public class CleanupSlotVersionMismatchMigration : IMigrationTask +{ + public string Name() => "Cleanup slot versions"; + + async Task IMigrationTask.Run(Database database) + { + foreach (Slot slot in database.Slots) + { + LbpFile rootLevel = LbpFile.FromHash(slot.RootLevel); + if (rootLevel == null) continue; + + GameVersion slotVersion = FileHelper.ParseLevelVersion(rootLevel); + + if (slotVersion != GameVersion.Unknown) slot.GameVersion = slotVersion; + } + + await database.SaveChangesAsync(); + return true; + } +} \ No newline at end of file diff --git a/ProjectLighthouse/Files/FileHelper.cs b/ProjectLighthouse/Files/FileHelper.cs index 18a542fc..710af8b9 100644 --- a/ProjectLighthouse/Files/FileHelper.cs +++ b/ProjectLighthouse/Files/FileHelper.cs @@ -11,6 +11,7 @@ using ICSharpCode.SharpZipLib.Zip.Compression; using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Logging; +using LBPUnion.ProjectLighthouse.PlayerData; using SixLabors.ImageSharp; using SixLabors.ImageSharp.PixelFormats; @@ -50,6 +51,51 @@ public static class FileHelper }; } + public static GameVersion ParseLevelVersion(LbpFile file) + { + if (file.FileType != LbpFileType.Level || file.Data.Length < 16 || file.Data[3] != 'b') return GameVersion.Unknown; + + // Revision numbers borrowed from https://github.com/ennuo/toolkit/blob/main/src/main/java/ennuo/craftworld/resources/structs/Revision.java + + const ushort lbp2Latest = 0x3F8; + const ushort lbp1Latest = 0x272; + const ushort lbpVitaLatest = 0x3E2; + const ushort lbpVitaDescriptor = 0x4431; + // There are like 1600 revisions so this doesn't cover everything + uint revision = 0; + + // construct a 32 bit number from 4 individual bytes + for (int i = 4; i <= 7; i++) + { + revision <<= 8; + revision |= file.Data[i]; + } + + if (revision >= 0x271) + { + // construct a 16 bit number from 2 individual bytes + ushort branchDescriptor = (ushort) (file.Data[12] << 8 | file.Data[13]); + if (revision == lbpVitaLatest && branchDescriptor == lbpVitaDescriptor) return GameVersion.LittleBigPlanetVita; + } + + + GameVersion version = GameVersion.Unknown; + if (revision <= lbp1Latest) + { + version = GameVersion.LittleBigPlanet1; + } + else if (revision >> 0x10 != 0) + { + version = GameVersion.LittleBigPlanet3; + } + else if(revision <= lbp2Latest) + { + version = GameVersion.LittleBigPlanet2; + } + + return version; + } + public static LbpFileType DetermineFileType(byte[] data) { if (data.Length == 0) return LbpFileType.Unknown; // Can't be anything if theres no data. @@ -63,18 +109,18 @@ public static class FileHelper string footer = Encoding.ASCII.GetString(readLastBytes(reader, 4)); if (footer == "FARC") return LbpFileType.FileArchive; - byte[] header = reader.ReadBytes(3); + byte[] header = reader.ReadBytes(4); return Encoding.ASCII.GetString(header) switch { - "REC" => LbpFileType.MotionRecording, - "PRF" => LbpFileType.CrossLevel, - "PTG" => LbpFileType.Painting, - "TEX" => LbpFileType.Texture, - "FSH" => LbpFileType.Script, - "VOP" => LbpFileType.Voice, - "LVL" => LbpFileType.Level, - "PLN" => LbpFileType.Plan, + "RECb" => LbpFileType.MotionRecording, + "PRFb" => LbpFileType.CrossLevel, + "PTGb" => LbpFileType.Painting, + "TEX " => LbpFileType.Texture, + "FSHb" => LbpFileType.Script, + "VOPb" => LbpFileType.Voice, + "LVLb" => LbpFileType.Level, + "PLNb" => LbpFileType.Plan, _ => readAlternateHeader(reader), }; } From 77edfed0be2f59b5e9e2de6175d0c60e23f41e69 Mon Sep 17 00:00:00 2001 From: Mondanzo <14519085+Mondanzo@users.noreply.github.com> Date: Sat, 30 Jul 2022 23:35:58 +0200 Subject: [PATCH 14/44] Merge pull request #385 * Update default language to be en instead of en-US * Update DefaultRequestCulture to be en --- ProjectLighthouse.Localization/LocalizationManager.cs | 4 ++-- ProjectLighthouse.Servers.Website/Startup/WebsiteStartup.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ProjectLighthouse.Localization/LocalizationManager.cs b/ProjectLighthouse.Localization/LocalizationManager.cs index f7334cb6..a47abdad 100644 --- a/ProjectLighthouse.Localization/LocalizationManager.cs +++ b/ProjectLighthouse.Localization/LocalizationManager.cs @@ -7,7 +7,7 @@ namespace LBPUnion.ProjectLighthouse.Localization; public static class LocalizationManager { private static readonly string namespaceStr = typeof(LocalizationManager).Namespace ?? ""; - public const string DefaultLang = "en-US"; + public const string DefaultLang = "en"; public static string GetLocalizedString(TranslationAreas translationArea, string language, string key) { @@ -21,7 +21,7 @@ public static class LocalizationManager string resourceBasename = $"{namespaceStr}.{translationArea.ToString()}"; - // We don't have an en-US .resx, so if we aren't using en-US then we need to add the appropriate language. + // We don't have an en .resx, so if we aren't using en then we need to add the appropriate language. // Otherwise, keep it to the normal .resx file // e.g. BaseLayout.resx as opposed to BaseLayout.lang-da-DK.resx. if (language != DefaultLang) resourceBasename += $".lang-{language}"; diff --git a/ProjectLighthouse.Servers.Website/Startup/WebsiteStartup.cs b/ProjectLighthouse.Servers.Website/Startup/WebsiteStartup.cs index f1f80025..14e48f97 100644 --- a/ProjectLighthouse.Servers.Website/Startup/WebsiteStartup.cs +++ b/ProjectLighthouse.Servers.Website/Startup/WebsiteStartup.cs @@ -45,7 +45,7 @@ public class WebsiteStartup { List languages = LocalizationManager.GetAvailableLanguages().Select(l => new CultureInfo(LocalizationManager.MapLanguage(l))).ToList(); - config.DefaultRequestCulture = new RequestCulture(new CultureInfo("en-US")); + config.DefaultRequestCulture = new RequestCulture(new CultureInfo("en")); config.SupportedCultures = languages; config.SupportedUICultures = languages; @@ -81,4 +81,4 @@ public class WebsiteStartup app.UseEndpoints(endpoints => endpoints.MapControllers()); app.UseEndpoints(endpoints => endpoints.MapRazorPages()); } -} \ No newline at end of file +} From ab346bc90687918fa55141ec4b68ed78a92c9720 Mon Sep 17 00:00:00 2001 From: jvyden Date: Sat, 30 Jul 2022 18:17:28 -0400 Subject: [PATCH 15/44] Add logging to StartPublish, fix bug where levels do not publish if rootLevel does not exist --- .gitignore | 4 ++- .../Controllers/Slots/PublishController.cs | 31 ++++++++++++------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index b766f916..3d04161d 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,8 @@ gitUnpushed.txt gitRevCount.txt logs/* npTicket* +r.tar.gz +lighthouse.yml.configme # MSBuild stuff bin/ @@ -44,4 +46,4 @@ BACKUP* backup* *.tmp -*.bin +*.bin \ No newline at end of file diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs index 620753a3..a545230c 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs @@ -40,26 +40,35 @@ public class PublishController : ControllerBase GameToken gameToken = userAndToken.Value.Item2; Slot? slot = await this.getSlotFromBody(); - if (slot == null) return this.BadRequest(); // if the level cant be parsed then it obviously cant be uploaded + if (slot == null) { + Logger.Warn("Rejecting level upload, slot is null", LogArea.Publish); + return this.BadRequest(); // if the level cant be parsed then it obviously cant be uploaded + } - if (string.IsNullOrEmpty(slot.RootLevel)) return this.BadRequest(); + if (string.IsNullOrEmpty(slot.RootLevel)) + { + Logger.Warn("Rejecting level upload, slot does not include rootLevel", LogArea.Publish); + return this.BadRequest(); + } if (string.IsNullOrEmpty(slot.ResourceCollection)) slot.ResourceCollection = slot.RootLevel; - LbpFile? rootLevel = LbpFile.FromHash(slot.RootLevel); - if (rootLevel == null) return this.BadRequest(); - - GameVersion slotVersion = FileHelper.ParseLevelVersion(rootLevel); - if (slotVersion == GameVersion.Unknown) slotVersion = gameToken.GameVersion; - // Republish logic if (slot.SlotId != 0) { Slot? oldSlot = await this.database.Slots.FirstOrDefaultAsync(s => s.SlotId == slot.SlotId); - if (oldSlot == null) return this.NotFound(); - if (oldSlot.CreatorId != user.UserId) return this.BadRequest(); + if (oldSlot == null) + { + Logger.Warn("Rejecting level reupload, could not find old slot", LogArea.Publish); + return this.NotFound(); + } + if (oldSlot.CreatorId != user.UserId) + { + Logger.Warn("Rejecting level reupload, old slot's creator is not publishing user", LogArea.Publish); + return this.BadRequest(); + } } - else if (user.GetUsedSlotsForGame(slotVersion) > ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots) + else if (user.GetUsedSlotsForGame(gameToken.GameVersion) > ServerConfiguration.Instance.UserGeneratedContentLimits.EntitledSlots) { return this.StatusCode(403, ""); } From 1d1099ed4e64a4f8a968a342c7f25df16f27ecf8 Mon Sep 17 00:00:00 2001 From: Josh Date: Sun, 31 Jul 2022 16:01:36 -0500 Subject: [PATCH 16/44] Fix heart and queue lists (#386) --- .../Controllers/Slots/ListController.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs index 7362aa2d..0a680a9e 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs @@ -34,8 +34,10 @@ public class ListController : ControllerBase GameVersion gameVersion = token.GameVersion; IEnumerable queuedLevels = this.database.QueuedLevels.Where(q => q.User.Username == username) + .Include(q => q.Slot.Creator) + .Include(q => q.Slot.Location) .Select(q => q.Slot) - .ByGameVersion(gameVersion, false, true) + .ByGameVersion(gameVersion) .Skip(pageStart - 1) .Take(Math.Min(pageSize, 30)) .AsEnumerable(); @@ -103,8 +105,10 @@ public class ListController : ControllerBase GameVersion gameVersion = token.GameVersion; IEnumerable heartedLevels = this.database.HeartedLevels.Where(q => q.User.Username == username) + .Include(q => q.Slot.Creator) + .Include(q => q.Slot.Location) .Select(q => q.Slot) - .ByGameVersion(gameVersion, false, true) + .ByGameVersion(gameVersion) .Skip(pageStart - 1) .Take(Math.Min(pageSize, 30)) .AsEnumerable(); From 48f01f15a1a56119dc28c17ad5daf975c467b2a1 Mon Sep 17 00:00:00 2001 From: Toru the Red Fox Date: Mon, 1 Aug 2022 04:48:55 +0100 Subject: [PATCH 17/44] Don't send new line if announce text is blank (#388) * eula license customizability * keep announce text blank if it's set to blank in config * Update ServerConfiguration.cs * Revert "eula license customizability" This reverts commit a9c41608aa387dce6ee2fc64e5e74ea196174cd3. * Revert "Update ServerConfiguration.cs" This reverts commit 3acd1e0e2b6563c11eb7a41d86e99b5c7e4c54aa. --- .../Controllers/MessageController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs index 745ec299..e2048035 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs @@ -79,7 +79,7 @@ along with this program. If not, see ."; $"token.ExpiresAt: {gameToken.ExpiresAt.ToString(CultureInfo.CurrentCulture)}\n" + "---DEBUG INFO---" + #endif - "\n" + (announceText != "" ? "\n" : "") ); } From 34d0ec03372a24e9effa65411d419d4de68e4227 Mon Sep 17 00:00:00 2001 From: jvyden Date: Mon, 1 Aug 2022 01:12:43 -0400 Subject: [PATCH 18/44] Fix earth hash not being able to reset to nothing Closes #383 --- .../Controllers/UserController.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/UserController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/UserController.cs index 5f3defaa..3b6a08b0 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/UserController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/UserController.cs @@ -104,9 +104,15 @@ public class UserController : ControllerBase user.Biography = update.Biography; } + // ReSharper disable once LoopCanBeConvertedToQuery foreach (string? resource in new[]{update.IconHash, update.YayHash, update.MehHash, update.BooHash, update.PlanetHash,}) { - if (resource != null && !resource.StartsWith('g') && !FileHelper.ResourceExists(resource)) return this.BadRequest(); + if (resource == "0") continue; + + if (resource != null && !resource.StartsWith('g') && !FileHelper.ResourceExists(resource)) + { + return this.BadRequest(); + } } if (update.IconHash != null) user.IconHash = update.IconHash; From 99f7dadb21c0695f0fdfe65c3500b9b014a75a14 Mon Sep 17 00:00:00 2001 From: jvyden Date: Mon, 1 Aug 2022 01:20:05 -0400 Subject: [PATCH 19/44] Add endpoints for status monitoring --- .../Controllers/StatusController.cs | 12 ++++++++++++ .../ProjectLighthouse.Servers.API.csproj | 18 +++++++++--------- .../Controllers/StatusController.cs | 12 ++++++++++++ ...ProjectLighthouse.Servers.GameServer.csproj | 18 +++++++++--------- .../Controllers/StatusController.cs | 12 ++++++++++++ 5 files changed, 54 insertions(+), 18 deletions(-) create mode 100644 ProjectLighthouse.Servers.API/Controllers/StatusController.cs create mode 100644 ProjectLighthouse.Servers.GameServer/Controllers/StatusController.cs create mode 100644 ProjectLighthouse.Servers.Website/Controllers/StatusController.cs diff --git a/ProjectLighthouse.Servers.API/Controllers/StatusController.cs b/ProjectLighthouse.Servers.API/Controllers/StatusController.cs new file mode 100644 index 00000000..fcd91964 --- /dev/null +++ b/ProjectLighthouse.Servers.API/Controllers/StatusController.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; + +namespace LBPUnion.ProjectLighthouse.Servers.API.Controllers; + +[ApiController] +[Route("/api/v1")] +[Produces("application/json")] +public class StatusController : ControllerBase +{ + [HttpGet("status")] + public IActionResult GetStatus() => this.Ok(); +} \ No newline at end of file diff --git a/ProjectLighthouse.Servers.API/ProjectLighthouse.Servers.API.csproj b/ProjectLighthouse.Servers.API/ProjectLighthouse.Servers.API.csproj index fca0d2c5..b8d70527 100644 --- a/ProjectLighthouse.Servers.API/ProjectLighthouse.Servers.API.csproj +++ b/ProjectLighthouse.Servers.API/ProjectLighthouse.Servers.API.csproj @@ -15,32 +15,32 @@ - + - + Always - + Always - + Always - + Always - - - - + + + + diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/StatusController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/StatusController.cs new file mode 100644 index 00000000..2e108e1e --- /dev/null +++ b/ProjectLighthouse.Servers.GameServer/Controllers/StatusController.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; + +namespace LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers; + +[ApiController] +[Route("/LITTLEBIGPLANETPS3_XML")] +[Produces("application/json")] +public class StatusController : ControllerBase +{ + [HttpGet("status")] + public IActionResult GetStatus() => this.Ok(); +} \ No newline at end of file diff --git a/ProjectLighthouse.Servers.GameServer/ProjectLighthouse.Servers.GameServer.csproj b/ProjectLighthouse.Servers.GameServer/ProjectLighthouse.Servers.GameServer.csproj index 2636686a..8bc55451 100644 --- a/ProjectLighthouse.Servers.GameServer/ProjectLighthouse.Servers.GameServer.csproj +++ b/ProjectLighthouse.Servers.GameServer/ProjectLighthouse.Servers.GameServer.csproj @@ -10,32 +10,32 @@ - + - + Always - + Always - + Always - + Always - - - - + + + + diff --git a/ProjectLighthouse.Servers.Website/Controllers/StatusController.cs b/ProjectLighthouse.Servers.Website/Controllers/StatusController.cs new file mode 100644 index 00000000..3d36329e --- /dev/null +++ b/ProjectLighthouse.Servers.Website/Controllers/StatusController.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; + +namespace LBPUnion.ProjectLighthouse.Servers.Website.Controllers; + +[ApiController] +[Route("/")] +[Produces("application/json")] +public class StatusController : ControllerBase +{ + [HttpGet("status")] + public IActionResult GetStatus() => this.Ok(); +} \ No newline at end of file From 395412eecb9280a02cbd14b6f60472e257b64ede Mon Sep 17 00:00:00 2001 From: jvyden Date: Mon, 1 Aug 2022 02:47:56 -0400 Subject: [PATCH 20/44] Update the translation files --- .../BaseLayout.lang-fi-FI.resx | 60 +++++++++++++++++++ .../General.lang-ar-SA.resx | 2 +- .../General.lang-eo-UY.resx | 14 ++--- .../General.lang-es-MX.resx | 2 +- .../General.lang-fi-FI.resx | 41 +++++++++++++ .../General.lang-sv-SE.resx | 2 +- .../LandingPage.lang-eo-UY.resx | 6 +- .../LandingPage.lang-es-MX.resx | 4 +- .../LandingPage.lang-fi-FI.resx | 54 +++++++++++++++++ .../LoggedOut.lang-eo-UY.resx | 6 +- .../LoggedOut.lang-fi-FI.resx | 29 +++++++++ .../Status.lang-ar-SA.resx | 6 +- .../Status.lang-eo-UY.resx | 2 +- .../Status.lang-es-MX.resx | 2 +- .../Status.lang-fi-FI.resx | 29 +++++++++ .../Status.lang-sv-SE.resx | 4 +- 16 files changed, 238 insertions(+), 25 deletions(-) create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx create mode 100644 ProjectLighthouse.Localization/General.lang-fi-FI.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-fi-FI.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-fi-FI.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-fi-FI.resx diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx b/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx new file mode 100644 index 00000000..a2452ea1 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx @@ -0,0 +1,60 @@ + + + + + + + + + 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/General.lang-ar-SA.resx b/ProjectLighthouse.Localization/General.lang-ar-SA.resx index 47789ff9..165ebaf7 100644 --- a/ProjectLighthouse.Localization/General.lang-ar-SA.resx +++ b/ProjectLighthouse.Localization/General.lang-ar-SA.resx @@ -36,6 +36,6 @@ دخول - Unknown + غير معروف \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-eo-UY.resx b/ProjectLighthouse.Localization/General.lang-eo-UY.resx index a4d94879..28930b6c 100644 --- a/ProjectLighthouse.Localization/General.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/General.lang-eo-UY.resx @@ -18,24 +18,24 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Username + Uzantnomo - Password + Pasvorto - Register + Registriĝi - Forgot Password? + Forgesis pasvorton? - Uh oh! + Oh oh! - Log In + Ensaluti - Unknown + Nekonata \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-es-MX.resx b/ProjectLighthouse.Localization/General.lang-es-MX.resx index 23d45a43..60af08c1 100644 --- a/ProjectLighthouse.Localization/General.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/General.lang-es-MX.resx @@ -30,7 +30,7 @@ ¿Olvidaste tu contraseña? - Uh oh! + ¡Uh oh! Iniciar Sesión diff --git a/ProjectLighthouse.Localization/General.lang-fi-FI.resx b/ProjectLighthouse.Localization/General.lang-fi-FI.resx new file mode 100644 index 00000000..a4d94879 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-fi-FI.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 + + + Username + + + Password + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-sv-SE.resx b/ProjectLighthouse.Localization/General.lang-sv-SE.resx index ee0009b1..1253c6e4 100644 --- a/ProjectLighthouse.Localization/General.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/General.lang-sv-SE.resx @@ -36,6 +36,6 @@ Logga in - Unknown + Okänd \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-eo-UY.resx b/ProjectLighthouse.Localization/LandingPage.lang-eo-UY.resx index 7e52e1f5..80128e9d 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-eo-UY.resx @@ -22,7 +22,7 @@ - Welcome to {0}! + Bonvenon al {0}! A greeting on the main page of the website. @@ -46,9 +46,9 @@ A greeting on the main page of the website. - Newest Levels + Plej Novaj Niveloj - Latest Team Picks + Plej Novaj Teamaj Elektoj \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-es-MX.resx b/ProjectLighthouse.Localization/LandingPage.lang-es-MX.resx index f723e493..036488e7 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-es-MX.resx @@ -46,9 +46,9 @@ A greeting on the main page of the website. - Newest Levels + Niveles más nuevos - Latest Team Picks + Últimos niveles selecciónados \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-fi-FI.resx b/ProjectLighthouse.Localization/LandingPage.lang-fi-FI.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-fi-FI.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-eo-UY.resx b/ProjectLighthouse.Localization/LoggedOut.lang-eo-UY.resx index 7a193889..3df18706 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-eo-UY.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Logged Out + Elsalutita - You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + Vi estis sukcese elsalutinta. Vi estos redirektita en 5 sekundoj, aŭ vi povas alklaki sube por fari tion permane. - Redirect + Plusendo \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-fi-FI.resx b/ProjectLighthouse.Localization/LoggedOut.lang-fi-FI.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-fi-FI.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/Status.lang-ar-SA.resx b/ProjectLighthouse.Localization/Status.lang-ar-SA.resx index 6669ee19..151385a9 100644 --- a/ProjectLighthouse.Localization/Status.lang-ar-SA.resx +++ b/ProjectLighthouse.Localization/Status.lang-ar-SA.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + متصل حاليا على {0} في {1} - Offline + غير مُتصل - Offline since {0} + غير متصل منذ {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-eo-UY.resx b/ProjectLighthouse.Localization/Status.lang-eo-UY.resx index a6259b25..79881906 100644 --- a/ProjectLighthouse.Localization/Status.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/Status.lang-eo-UY.resx @@ -24,6 +24,6 @@ Eksterretas - Offline since {0} + Eksterrete ekde {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-es-MX.resx b/ProjectLighthouse.Localization/Status.lang-es-MX.resx index 2d3c568e..bc34dc95 100644 --- a/ProjectLighthouse.Localization/Status.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/Status.lang-es-MX.resx @@ -18,7 +18,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Actualmente conectado el {0} del {1} Desconectado diff --git a/ProjectLighthouse.Localization/Status.lang-fi-FI.resx b/ProjectLighthouse.Localization/Status.lang-fi-FI.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-fi-FI.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-sv-SE.resx b/ProjectLighthouse.Localization/Status.lang-sv-SE.resx index 6669ee19..f986ad9a 100644 --- a/ProjectLighthouse.Localization/Status.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/Status.lang-sv-SE.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Online på {0}, {1} Offline - Offline since {0} + Offline sedan {0} \ No newline at end of file From fdf1988a34ef63baa30732270110e65e2064eaa9 Mon Sep 17 00:00:00 2001 From: Josh Date: Mon, 1 Aug 2022 14:46:29 -0500 Subject: [PATCH 21/44] Implement online story features and photos taken in levels (#389) * Initial commit to support developer slots * Remove hearting story levels, prevent race condition in adding dev slots, and remove LastContactHelper local db object. * Fix photos taken in pod showing wrong level. * Add support for pod and create mode photos * Add time display to photos and added photo display to level page * Add pagination to in game photos * Update in pod description * Fix migration * Adjust wording of photos taken on local slots * Set slot default type to User Fixes old slots being set to developer slots * Apply suggestions * Add player count to developer slots Co-authored-by: Jayden --- .../Controllers/CommentController.cs | 40 +++++-- .../Controllers/Matching/MatchController.cs | 3 +- .../Controllers/Resources/PhotosController.cs | 58 ++++++++-- .../Controllers/Slots/ListController.cs | 2 +- .../Controllers/Slots/ScoreController.cs | 17 ++- .../Controllers/Slots/SlotsController.cs | 46 +++++++- .../Startup/GameServerStartup.cs | 2 +- .../Pages/LandingPage.cshtml.cs | 5 +- .../Pages/Partials/PhotoPartial.cshtml | 26 ++++- .../Pages/PhotosPage.cshtml.cs | 1 + .../Pages/SlotPage.cshtml | 17 ++- .../Pages/SlotPage.cshtml.cs | 12 +- .../Pages/SlotsPage.cshtml.cs | 2 + .../Pages/UserPage.cshtml.cs | 2 +- .../Extensions/DatabaseExtensions.cs | 3 +- ProjectLighthouse/Helpers/SlotHelper.cs | 106 ++++++++++++++++++ ProjectLighthouse/Helpers/StatisticsHelper.cs | 3 +- .../Levels/Categories/NewestLevelsCategory.cs | 4 +- ProjectLighthouse/Levels/Slot.cs | 26 ++++- ProjectLighthouse/Levels/SlotType.cs | 8 ++ .../20220729002704_DeveloperSlots.cs | 72 ++++++++++++ .../Migrations/DatabaseModelSnapshot.cs | 18 +++ .../PlayerData/LastContactHelper.cs | 3 +- ProjectLighthouse/PlayerData/Photo.cs | 34 +++++- ProjectLighthouse/PlayerData/PhotoSlot.cs | 20 ++++ 25 files changed, 483 insertions(+), 47 deletions(-) create mode 100644 ProjectLighthouse/Helpers/SlotHelper.cs create mode 100644 ProjectLighthouse/Migrations/20220729002704_DeveloperSlots.cs create mode 100644 ProjectLighthouse/PlayerData/PhotoSlot.cs diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs index 46c239f5..b2c501ba 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs @@ -23,32 +23,40 @@ public class CommentController : ControllerBase } [HttpPost("rateUserComment/{username}")] - [HttpPost("rateComment/user/{slotId:int}")] - public async Task RateComment([FromQuery] int commentId, [FromQuery] int rating, string? username, int? slotId) + [HttpPost("rateComment/{slotType}/{slotId:int}")] + public async Task RateComment([FromQuery] int commentId, [FromQuery] int rating, string? username, string? slotType, int slotId) { User? user = await this.database.UserFromGameRequest(this.Request); if (user == null) return this.StatusCode(403, ""); + if (SlotHelper.IsTypeInvalid(slotType)) return this.BadRequest(); + bool success = await this.database.RateComment(user, commentId, rating); if (!success) return this.BadRequest(); return this.Ok(); } - [HttpGet("comments/user/{slotId:int}")] + [HttpGet("comments/{slotType}/{slotId:int}")] [HttpGet("userComments/{username}")] - public async Task GetComments([FromQuery] int pageStart, [FromQuery] int pageSize, string? username, int? slotId) + public async Task GetComments([FromQuery] int pageStart, [FromQuery] int pageSize, string? username, string? slotType, int slotId) { User? user = await this.database.UserFromGameRequest(this.Request); if (user == null) return this.StatusCode(403, ""); - int targetId = slotId.GetValueOrDefault(); + int targetId = slotId; CommentType type = CommentType.Level; if (!string.IsNullOrWhiteSpace(username)) { targetId = this.database.Users.First(u => u.Username.Equals(username)).UserId; type = CommentType.Profile; } + else + { + if (SlotHelper.IsTypeInvalid(slotType) || slotId == 0) return this.BadRequest(); + } + + if (type == CommentType.Level && slotType == "developer") targetId = await SlotHelper.GetPlaceholderSlotId(this.database, slotId, SlotType.Developer); List comments = await this.database.Comments.Include (c => c.Poster) @@ -72,8 +80,8 @@ public class CommentController : ControllerBase } [HttpPost("postUserComment/{username}")] - [HttpPost("postComment/user/{slotId:int}")] - public async Task PostComment(string? username, int? slotId) + [HttpPost("postComment/{slotType}/{slotId:int}")] + public async Task PostComment(string? username, string? slotType, int slotId) { User? poster = await this.database.UserFromGameRequest(this.Request); if (poster == null) return this.StatusCode(403, ""); @@ -86,14 +94,18 @@ public class CommentController : ControllerBase SanitizationHelper.SanitizeStringsInClass(comment); - CommentType type = (slotId.GetValueOrDefault() == 0 ? CommentType.Profile : CommentType.Level); + CommentType type = (slotId == 0 ? CommentType.Profile : CommentType.Level); + + if (type == CommentType.Level && (SlotHelper.IsTypeInvalid(slotType) || slotId == 0)) return this.BadRequest(); if (comment == null) return this.BadRequest(); - int targetId = slotId.GetValueOrDefault(); + int targetId = slotId; if (type == CommentType.Profile) targetId = this.database.Users.First(u => u.Username == username).UserId; + if (slotType == "developer") targetId = await SlotHelper.GetPlaceholderSlotId(this.database, targetId, SlotType.Developer); + bool success = await this.database.PostComment(poster, targetId, type, comment.Message); if (success) return this.Ok(); @@ -101,8 +113,8 @@ public class CommentController : ControllerBase } [HttpPost("deleteUserComment/{username}")] - [HttpPost("deleteComment/user/{slotId:int}")] - public async Task DeleteComment([FromQuery] int commentId, string? username, int? slotId) + [HttpPost("deleteComment/{slotType}/{slotId:int}")] + public async Task DeleteComment([FromQuery] int commentId, string? username, string? slotType, int slotId) { User? user = await this.database.UserFromGameRequest(this.Request); if (user == null) return this.StatusCode(403, ""); @@ -110,6 +122,10 @@ public class CommentController : ControllerBase Comment? comment = await this.database.Comments.FirstOrDefaultAsync(c => c.CommentId == commentId); if (comment == null) return this.NotFound(); + if (comment.Type == CommentType.Level && (SlotHelper.IsTypeInvalid(slotType) || slotId == 0)) return this.BadRequest(); + + if (slotType == "developer") slotId = await SlotHelper.GetPlaceholderSlotId(this.database, slotId, SlotType.Developer); + // if you are not the poster if (comment.PosterUserId != user.UserId) { @@ -125,7 +141,7 @@ public class CommentController : ControllerBase { Slot? slot = await this.database.Slots.FirstOrDefaultAsync(s => s.SlotId == comment.TargetId); // if you aren't the creator of the level - if (slot == null || slot.CreatorId != user.UserId || slotId.GetValueOrDefault() != slot.SlotId) + if (slot == null || slot.CreatorId != user.UserId || slotId != slot.SlotId) { return this.StatusCode(403, ""); } diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Matching/MatchController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Matching/MatchController.cs index 23a195a5..c6c8097a 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Matching/MatchController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Matching/MatchController.cs @@ -8,7 +8,6 @@ using LBPUnion.ProjectLighthouse.Match.MatchCommands; using LBPUnion.ProjectLighthouse.Match.Rooms; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; -using LBPUnion.ProjectLighthouse.Types; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -71,7 +70,7 @@ public class MatchController : ControllerBase #endregion - await LastContactHelper.SetLastContact(user, gameToken.GameVersion, gameToken.Platform); + await LastContactHelper.SetLastContact(this.database, user, gameToken.GameVersion, gameToken.Platform); #region Process match data diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Resources/PhotosController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Resources/PhotosController.cs index f9461c8d..7452c77c 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Resources/PhotosController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Resources/PhotosController.cs @@ -3,11 +3,11 @@ using System.Xml.Serialization; using Discord; using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.Logging; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.Serialization; -using LBPUnion.ProjectLighthouse.Types; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -53,6 +53,38 @@ public class PhotosController : ControllerBase photo.CreatorId = user.UserId; photo.Creator = user; + if (photo.XmlLevelInfo != null) + { + bool validLevel = false; + PhotoSlot photoSlot = photo.XmlLevelInfo; + if (photoSlot.SlotType is SlotType.Pod or SlotType.Local) photoSlot.SlotId = 0; + switch (photoSlot.SlotType) + { + case SlotType.User: + { + Slot? slot = await this.database.Slots.FirstOrDefaultAsync(s => s.Type == SlotType.User && s.SlotId == photoSlot.SlotId); + if (slot != null) validLevel = slot.RootLevel == photoSlot.RootLevel; + break; + } + case SlotType.Pod: + case SlotType.Local: + case SlotType.Developer: + { + Slot? slot = await this.database.Slots.FirstOrDefaultAsync(s => s.Type == photoSlot.SlotType && s.InternalSlotId == photoSlot.SlotId); + if (slot != null) + photoSlot.SlotId = slot.SlotId; + else + photoSlot.SlotId = await SlotHelper.GetPlaceholderSlotId(this.database, photoSlot.SlotId, photoSlot.SlotType); + validLevel = true; + break; + } + default: Logger.Warn($"Invalid photo level type: {photoSlot.SlotType}", LogArea.Photos); + break; + } + + if (validLevel) photo.SlotId = photo.XmlLevelInfo.SlotId; + } + if (photo.Subjects.Count > 4) return this.BadRequest(); if (photo.Timestamp > TimeHelper.Timestamp) photo.Timestamp = TimeHelper.Timestamp; @@ -104,11 +136,23 @@ public class PhotosController : ControllerBase return this.Ok(); } - [HttpGet("photos/user/{id:int}")] - public async Task SlotPhotos(int id) + [HttpGet("photos/{slotType}/{id:int}")] + public async Task SlotPhotos([FromQuery] int pageStart, [FromQuery] int pageSize, string slotType, int id) { - List photos = await this.database.Photos.Include(p => p.Creator).Take(10).ToListAsync(); - string response = photos.Aggregate(string.Empty, (s, photo) => s + photo.Serialize(id)); + User? user = await this.database.UserFromGameRequest(this.Request); + if (user == null) return this.StatusCode(403, ""); + + if (SlotHelper.IsTypeInvalid(slotType)) return this.BadRequest(); + + if (slotType == "developer") id = await SlotHelper.GetPlaceholderSlotId(this.database, id, SlotType.Developer); + + List photos = await this.database.Photos.Include(p => p.Creator) + .Where(p => p.SlotId == id) + .OrderByDescending(s => s.Timestamp) + .Skip(pageStart - 1) + .Take(Math.Min(pageSize, 30)) + .ToListAsync(); + string response = photos.Aggregate(string.Empty, (s, photo) => s + photo.Serialize(id, SlotHelper.ParseType(slotType))); return this.Ok(LbpSerializer.StringElement("photos", response)); } @@ -126,7 +170,7 @@ public class PhotosController : ControllerBase .Skip(pageStart - 1) .Take(Math.Min(pageSize, 30)) .ToListAsync(); - string response = photos.Aggregate(string.Empty, (s, photo) => s + photo.Serialize(0)); + string response = photos.Aggregate(string.Empty, (s, photo) => s + photo.Serialize()); return this.Ok(LbpSerializer.StringElement("photos", response)); } @@ -145,7 +189,7 @@ public class PhotosController : ControllerBase (s => s.Timestamp) .Skip(pageStart - 1) .Take(Math.Min(pageSize, 30)) - .Aggregate(string.Empty, (s, photo) => s + photo.Serialize(0)); + .Aggregate(string.Empty, (s, photo) => s + photo.Serialize()); return this.Ok(LbpSerializer.StringElement("photos", response)); } diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs index 0a680a9e..d7980bee 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs @@ -1,10 +1,10 @@ #nullable enable +using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.Serialization; -using LBPUnion.ProjectLighthouse.Types; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ScoreController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ScoreController.cs index cc61df46..34696cf3 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ScoreController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ScoreController.cs @@ -1,6 +1,7 @@ #nullable enable using System.Diagnostics.CodeAnalysis; using System.Xml.Serialization; +using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.PlayerData; @@ -23,13 +24,15 @@ public class ScoreController : ControllerBase this.database = database; } - [HttpPost("scoreboard/user/{id:int}")] - public async Task SubmitScore(int id, [FromQuery] bool lbp1 = false, [FromQuery] bool lbp2 = false, [FromQuery] bool lbp3 = false) + [HttpPost("scoreboard/{slotType}/{id:int}")] + public async Task SubmitScore(string slotType, int id, [FromQuery] bool lbp1 = false, [FromQuery] bool lbp2 = false, [FromQuery] bool lbp3 = false) { (User, GameToken)? userAndToken = await this.database.UserAndGameTokenFromRequest(this.Request); if (userAndToken == null) return this.StatusCode(403, ""); + if (SlotHelper.IsTypeInvalid(slotType)) return this.BadRequest(); + // ReSharper disable once PossibleInvalidOperationException User user = userAndToken.Value.Item1; GameToken gameToken = userAndToken.Value.Item2; @@ -43,6 +46,8 @@ public class ScoreController : ControllerBase SanitizationHelper.SanitizeStringsInClass(score); + if (slotType == "developer") id = await SlotHelper.GetPlaceholderSlotId(this.database, id, SlotType.Developer); + score.SlotId = id; Slot? slot = this.database.Slots.FirstOrDefault(s => s.SlotId == score.SlotId); @@ -92,15 +97,19 @@ public class ScoreController : ControllerBase //=> await TopScores(slotId, type); => this.Ok(LbpSerializer.BlankElement("scores")); - [HttpGet("topscores/user/{slotId:int}/{type:int}")] + [HttpGet("topscores/{slotType}/{slotId:int}/{type:int}")] [SuppressMessage("ReSharper", "PossibleMultipleEnumeration")] - public async Task TopScores(int slotId, int type, [FromQuery] int pageStart = -1, [FromQuery] int pageSize = 5) + public async Task TopScores(string slotType, int slotId, int type, [FromQuery] int pageStart = -1, [FromQuery] int pageSize = 5) { // Get username User? user = await this.database.UserFromGameRequest(this.Request); if (user == null) return this.StatusCode(403, ""); + if (SlotHelper.IsTypeInvalid(slotType)) return this.BadRequest(); + + if (slotType == "developer") slotId = await SlotHelper.GetPlaceholderSlotId(this.database, slotId, SlotType.Developer); + return this.Ok(this.getScores(slotId, type, user, pageStart, pageSize)); } diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs index 4cbad3f8..54e105e4 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs @@ -8,7 +8,6 @@ using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.PlayerData.Reviews; using LBPUnion.ProjectLighthouse.Serialization; -using LBPUnion.ProjectLighthouse.Types; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -65,6 +64,47 @@ public class SlotsController : ControllerBase ); } + [HttpGet("slotList")] + public async Task GetSlotListAlt([FromQuery] int[] s) + { + GameToken? token = await this.database.GameTokenFromRequest(this.Request); + if (token == null) return this.StatusCode(403, ""); + + List serializedSlots = new(); + foreach (int slotId in s) + { + Slot? slot = await this.database.Slots.Include(t => t.Creator).Include(t => t.Location).Where(t => t.SlotId == slotId && t.Type == SlotType.User).FirstOrDefaultAsync(); + if (slot == null) + { + slot = await this.database.Slots.Where(t => t.InternalSlotId == slotId && t.Type == SlotType.Developer).FirstOrDefaultAsync(); + if (slot == null) + { + serializedSlots.Add($"{slotId}"); + continue; + } + } + serializedSlots.Add(slot.Serialize()); + } + string serialized = serializedSlots.Aggregate(string.Empty, (current, slot) => slot == null ? current : current + slot); + + return this.Ok(LbpSerializer.TaggedStringElement("slots", serialized, "total", serializedSlots.Count)); + } + + [HttpGet("s/developer/{id:int}")] + public async Task SDev(int id) + { + User? user = await this.database.UserFromGameRequest(this.Request); + if (user == null) return this.StatusCode(403, ""); + + GameToken? token = await this.database.GameTokenFromRequest(this.Request); + if (token == null) return this.StatusCode(403, ""); + + int slotId = await SlotHelper.GetPlaceholderSlotId(this.database, id, SlotType.Developer); + Slot slot = await this.database.Slots.FirstAsync(s => s.SlotId == slotId); + + return this.Ok(slot.SerializeDevSlot()); + } + [HttpGet("s/user/{id:int}")] public async Task SUser(int id) { @@ -458,10 +498,10 @@ public class SlotsController : ControllerBase if (gameFilterType == "both") // Get game versions less than the current version // Needs support for LBP3 ("both" = LBP1+2) - whereSlots = this.database.Slots.Where(s => s.GameVersion <= gameVersion && s.FirstUploaded >= oldestTime); + whereSlots = this.database.Slots.Where(s => s.Type == SlotType.User && s.GameVersion <= gameVersion && s.FirstUploaded >= oldestTime); else // Get game versions exactly equal to gamefiltertype - whereSlots = this.database.Slots.Where(s => s.GameVersion == gameVersion && s.FirstUploaded >= oldestTime); + whereSlots = this.database.Slots.Where(s => s.Type == SlotType.User && s.GameVersion == gameVersion && s.FirstUploaded >= oldestTime); return whereSlots.Include(s => s.Creator).Include(s => s.Location); } diff --git a/ProjectLighthouse.Servers.GameServer/Startup/GameServerStartup.cs b/ProjectLighthouse.Servers.GameServer/Startup/GameServerStartup.cs index 2c316e72..495bf66f 100644 --- a/ProjectLighthouse.Servers.GameServer/Startup/GameServerStartup.cs +++ b/ProjectLighthouse.Servers.GameServer/Startup/GameServerStartup.cs @@ -164,7 +164,7 @@ public class GameServerStartup if (gameToken != null && gameToken.GameVersion == GameVersion.LittleBigPlanet1) // Ignore UserFromGameToken null because user must exist for a token to exist await LastContactHelper.SetLastContact - ((await database.UserFromGameToken(gameToken))!, GameVersion.LittleBigPlanet1, gameToken.Platform); + (database, (await database.UserFromGameToken(gameToken))!, GameVersion.LittleBigPlanet1, gameToken.Platform); } #nullable disable diff --git a/ProjectLighthouse.Servers.Website/Pages/LandingPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/LandingPage.cshtml.cs index fecee91b..bd7c1707 100644 --- a/ProjectLighthouse.Servers.Website/Pages/LandingPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/LandingPage.cshtml.cs @@ -43,13 +43,14 @@ public class LandingPage : BaseLayout const int maxShownLevels = 5; this.LatestTeamPicks = await this.Database.Slots.Where - (s => s.TeamPick) + (s => s.Type == SlotType.User) + .Where(s => s.TeamPick) .OrderByDescending(s => s.FirstUploaded) .Take(maxShownLevels) .Include(s => s.Creator) .ToListAsync(); - this.NewestLevels = await this.Database.Slots.OrderByDescending(s => s.FirstUploaded).Take(maxShownLevels).Include(s => s.Creator).ToListAsync(); + this.NewestLevels = await this.Database.Slots.Where(s => s.Type == SlotType.User).OrderByDescending(s => s.FirstUploaded).Take(maxShownLevels).Include(s => s.Creator).ToListAsync(); return this.Page(); } diff --git a/ProjectLighthouse.Servers.Website/Pages/Partials/PhotoPartial.cshtml b/ProjectLighthouse.Servers.Website/Pages/Partials/PhotoPartial.cshtml index 66c8b0fa..da1a46b2 100644 --- a/ProjectLighthouse.Servers.Website/Pages/Partials/PhotoPartial.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/Partials/PhotoPartial.cshtml @@ -1,5 +1,6 @@ +@using System.Globalization +@using LBPUnion.ProjectLighthouse.Levels @using LBPUnion.ProjectLighthouse.PlayerData -@using LBPUnion.ProjectLighthouse.Types @model LBPUnion.ProjectLighthouse.PlayerData.Photo @@ -18,6 +19,27 @@ @Model.Creator?.Username + @if (Model.Slot != null) + { + switch (Model.Slot.Type) + { + case SlotType.User: + + in level @Model.Slot.Name + + break; + case SlotType.Developer: + in a story mode level + break; + case SlotType.Pod: + in the pod + break; + case SlotType.Local: + in a level on the moon + break; + } + } + at @DateTime.UnixEpoch.AddSeconds(Model.Timestamp).ToString(CultureInfo.CurrentCulture)

@@ -124,4 +146,4 @@ context.setTransform(1, 0, 0, 1, 0, 0); }) }, false); - \ No newline at end of file + diff --git a/ProjectLighthouse.Servers.Website/Pages/PhotosPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/PhotosPage.cshtml.cs index b636205e..f2ce8fb0 100644 --- a/ProjectLighthouse.Servers.Website/Pages/PhotosPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/PhotosPage.cshtml.cs @@ -40,6 +40,7 @@ public class PhotosPage : BaseLayout this.Photos = await this.Database.Photos.Include (p => p.Creator) + .Include(p => p.Slot) .Where(p => p.Creator!.Username.Contains(this.SearchValue) || p.PhotoSubjectCollection.Contains(this.SearchValue)) .OrderByDescending(p => p.Timestamp) .Skip(pageNumber * ServerStatics.PageSize) diff --git a/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml index 55313d80..e25f8144 100644 --- a/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml @@ -3,6 +3,7 @@ @using LBPUnion.ProjectLighthouse.Administration @using LBPUnion.ProjectLighthouse.Configuration @using LBPUnion.ProjectLighthouse.Extensions +@using LBPUnion.ProjectLighthouse.PlayerData @using LBPUnion.ProjectLighthouse.PlayerData.Reviews @model LBPUnion.ProjectLighthouse.Servers.Website.Pages.SlotPage @@ -162,7 +163,21 @@ - + @if (Model.Photos.Count != 0) + { +
+

Most recent photos

+ +
+ @foreach (Photo photo in Model.Photos) + { +
+ @await Html.PartialAsync("Partials/PhotoPartial", photo) +
+ } +
+
+ } @if (Model.User != null && Model.User.IsAdmin) {
diff --git a/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml.cs index 47d8f265..08397d10 100644 --- a/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml.cs @@ -15,6 +15,7 @@ public class SlotPage : BaseLayout { public List Comments = new(); public List Reviews = new(); + public List Photos = new(); public readonly bool CommentsEnabled = ServerConfiguration.Instance.UserGeneratedContentLimits.LevelCommentsEnabled; public readonly bool ReviewsEnabled = ServerConfiguration.Instance.UserGeneratedContentLimits.LevelReviewsEnabled; @@ -25,7 +26,10 @@ public class SlotPage : BaseLayout public async Task OnGet([FromRoute] int id) { - Slot? slot = await this.Database.Slots.Include(s => s.Creator).FirstOrDefaultAsync(s => s.SlotId == id); + Slot? slot = await this.Database.Slots.Include + (s => s.Creator) + .Where(s => s.Type == SlotType.User) + .FirstOrDefaultAsync(s => s.SlotId == id); if (slot == null) return this.NotFound(); this.Slot = slot; @@ -57,6 +61,12 @@ public class SlotPage : BaseLayout this.Reviews = new List(); } + this.Photos = await this.Database.Photos.Include(p => p.Creator) + .OrderByDescending(p => p.Timestamp) + .Where(r => r.SlotId == id) + .Take(10) + .ToListAsync(); + if (this.User == null) return this.Page(); foreach (Comment c in this.Comments) diff --git a/ProjectLighthouse.Servers.Website/Pages/SlotsPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/SlotsPage.cshtml.cs index 2bc11efa..a7089eb5 100644 --- a/ProjectLighthouse.Servers.Website/Pages/SlotsPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/SlotsPage.cshtml.cs @@ -55,6 +55,7 @@ public class SlotsPage : BaseLayout this.SearchValue = name.Trim(); this.SlotCount = await this.Database.Slots.Include(p => p.Creator) + .Where(p => p.Type == SlotType.User) .Where(p => p.Name.Contains(finalSearch.ToString())) .Where(p => p.Creator != null && (targetAuthor == null || string.Equals(p.Creator.Username.ToLower(), targetAuthor.ToLower()))) .Where(p => targetGame == null || p.GameVersion == targetGame) @@ -66,6 +67,7 @@ public class SlotsPage : BaseLayout if (this.PageNumber < 0 || this.PageNumber >= this.PageAmount) return this.Redirect($"/slots/{Math.Clamp(this.PageNumber, 0, this.PageAmount - 1)}"); this.Slots = await this.Database.Slots.Include(p => p.Creator) + .Where(p => p.Type == SlotType.User) .Where(p => p.Name.Contains(finalSearch.ToString())) .Where(p => p.Creator != null && (targetAuthor == null || string.Equals(p.Creator.Username.ToLower(), targetAuthor.ToLower()))) .Where(p => targetGame == null || p.GameVersion == targetGame) diff --git a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml.cs index 067ee0a2..6a1dd155 100644 --- a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml.cs @@ -28,7 +28,7 @@ public class UserPage : BaseLayout this.ProfileUser = await this.Database.Users.FirstOrDefaultAsync(u => u.UserId == userId); if (this.ProfileUser == null) return this.NotFound(); - this.Photos = await this.Database.Photos.OrderByDescending(p => p.Timestamp).Where(p => p.CreatorId == userId).Take(6).ToListAsync(); + this.Photos = await this.Database.Photos.Include(p => p.Slot).OrderByDescending(p => p.Timestamp).Where(p => p.CreatorId == userId).Take(6).ToListAsync(); if (this.CommentsEnabled) { this.Comments = await this.Database.Comments.Include(p => p.Poster) diff --git a/ProjectLighthouse/Extensions/DatabaseExtensions.cs b/ProjectLighthouse/Extensions/DatabaseExtensions.cs index 67748eff..b1335ca1 100644 --- a/ProjectLighthouse/Extensions/DatabaseExtensions.cs +++ b/ProjectLighthouse/Extensions/DatabaseExtensions.cs @@ -5,7 +5,6 @@ using System.Threading.Tasks; using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Reviews; -using LBPUnion.ProjectLighthouse.Types; using Microsoft.EntityFrameworkCore; namespace LBPUnion.ProjectLighthouse.Extensions; @@ -19,6 +18,8 @@ public static class DatabaseExtensions public static IQueryable ByGameVersion (this IQueryable query, GameVersion gameVersion, bool includeSublevels = false, bool includeCreatorAndLocation = false) { + query = query.Where(s => s.Type == SlotType.User); + if (includeCreatorAndLocation) { query = query.Include(s => s.Creator).Include(s => s.Location); diff --git a/ProjectLighthouse/Helpers/SlotHelper.cs b/ProjectLighthouse/Helpers/SlotHelper.cs new file mode 100644 index 00000000..f2b8abb3 --- /dev/null +++ b/ProjectLighthouse/Helpers/SlotHelper.cs @@ -0,0 +1,106 @@ +#nullable enable +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Levels; +using LBPUnion.ProjectLighthouse.PlayerData.Profiles; +using Microsoft.EntityFrameworkCore; + +namespace LBPUnion.ProjectLighthouse.Helpers; + +public static class SlotHelper +{ + + public static SlotType ParseType(string? slotType) + { + if (slotType == null) return SlotType.Unknown; + return slotType switch + { + "developer" => SlotType.Developer, + "user" => SlotType.User, + "moon" => SlotType.Moon, + "pod" => SlotType.Pod, + "local" => SlotType.Local, + _ => SlotType.Unknown, + }; + + } + + public static bool IsTypeInvalid(string? slotType) + { + if (slotType == null) return true; + return slotType switch + { + "developer" => false, + "user" => false, + _ => true, + }; + } + + private static readonly SemaphoreSlim semaphore = new(1, 1); + + public static async Task GetPlaceholderSlotId(Database database, int guid, SlotType slotType) + { + int slotId = await database.Slots.Where(s => s.Type == slotType && s.InternalSlotId == guid).Select(s => s.SlotId).FirstOrDefaultAsync(); + if (slotId != 0) return slotId; + + await semaphore.WaitAsync(TimeSpan.FromSeconds(5)); + try + { + // if two requests come in at the same time for the same story level which hasn't been generated + // one will wait for the lock to be released and the second will be caught by this second check + slotId = await database.Slots + .Where(s => s.Type == slotType && s.InternalSlotId == guid) + .Select(s => s.SlotId) + .FirstOrDefaultAsync(); + + if (slotId != 0) return slotId; + + Location? devLocation = await database.Locations.FirstOrDefaultAsync(l => l.Id == 1); + if (devLocation == null) + { + devLocation = new Location + { + Id = 1, + }; + database.Locations.Add(devLocation); + } + + int devCreatorId = await database.Users.Where(u => u.Username.Length == 0).Select(u => u.UserId).FirstOrDefaultAsync(); + if (devCreatorId == 0) + { + User devCreator = new() + { + Username = "", + Banned = true, + Biography = "Placeholder author of story levels", + BannedReason = "Banned to not show in users list", + LocationId = devLocation.Id, + }; + database.Users.Add(devCreator); + await database.SaveChangesAsync(); + devCreatorId = devCreator.UserId; + } + + Slot slot = new() + { + Name = $"{slotType} slot {guid}", + Description = $"Placeholder for {slotType} type level", + CreatorId = devCreatorId, + InternalSlotId = guid, + LocationId = devLocation.Id, + Type = slotType, + }; + + database.Slots.Add(slot); + await database.SaveChangesAsync(); + return slot.SlotId; + } + finally + { + semaphore.Release(); + } + } + +} \ No newline at end of file diff --git a/ProjectLighthouse/Helpers/StatisticsHelper.cs b/ProjectLighthouse/Helpers/StatisticsHelper.cs index f5531d49..8410f535 100644 --- a/ProjectLighthouse/Helpers/StatisticsHelper.cs +++ b/ProjectLighthouse/Helpers/StatisticsHelper.cs @@ -1,5 +1,6 @@ using System.Linq; using System.Threading.Tasks; +using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.Types; using Microsoft.EntityFrameworkCore; @@ -16,7 +17,7 @@ public static class StatisticsHelper (GameVersion gameVersion) => await database.LastContacts.Where(l => TimeHelper.Timestamp - l.Timestamp < 300 && l.GameVersion == gameVersion).CountAsync(); - public static async Task SlotCount() => await database.Slots.CountAsync(); + public static async Task SlotCount() => await database.Slots.Where(s => s.Type == SlotType.User).CountAsync(); public static async Task UserCount() => await database.Users.CountAsync(u => !u.Banned); diff --git a/ProjectLighthouse/Levels/Categories/NewestLevelsCategory.cs b/ProjectLighthouse/Levels/Categories/NewestLevelsCategory.cs index a5d41b16..9ba8a23d 100644 --- a/ProjectLighthouse/Levels/Categories/NewestLevelsCategory.cs +++ b/ProjectLighthouse/Levels/Categories/NewestLevelsCategory.cs @@ -13,12 +13,12 @@ public class NewestLevelsCategory : Category public override string Description { get; set; } = "Levels recently published"; public override string IconHash { get; set; } = "g820623"; public override string Endpoint { get; set; } = "newest"; - public override Slot? GetPreviewSlot(Database database) => database.Slots.OrderByDescending(s => s.FirstUploaded).FirstOrDefault(); + public override Slot? GetPreviewSlot(Database database) => database.Slots.Where(s => s.Type == SlotType.User).OrderByDescending(s => s.FirstUploaded).FirstOrDefault(); public override IEnumerable GetSlots (Database database, int pageStart, int pageSize) => database.Slots.ByGameVersion(GameVersion.LittleBigPlanet3, false, true) .OrderByDescending(s => s.FirstUploaded) .Skip(pageStart - 1) .Take(Math.Min(pageSize, 20)); - public override int GetTotalSlots(Database database) => database.Slots.Count(); + public override int GetTotalSlots(Database database) => database.Slots.Count(s => s.Type == SlotType.User); } \ No newline at end of file diff --git a/ProjectLighthouse/Levels/Slot.cs b/ProjectLighthouse/Levels/Slot.cs index 098d7760..c9491858 100644 --- a/ProjectLighthouse/Levels/Slot.cs +++ b/ProjectLighthouse/Levels/Slot.cs @@ -1,4 +1,5 @@ #nullable enable +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; @@ -40,14 +41,15 @@ public class Slot } [XmlAttribute("type")] - [NotMapped] [JsonIgnore] - public string Type { get; set; } = "user"; + public SlotType Type { get; set; } = SlotType.User; [Key] [XmlElement("id")] public int SlotId { get; set; } + public int InternalSlotId { get; set; } + [XmlElement("name")] public string Name { get; set; } = ""; @@ -240,6 +242,24 @@ public class Slot LbpSerializer.StringElement("sizeOfResources", this.Resources.Sum(FileHelper.ResourceSize)); } + public string SerializeDevSlot() + { + int comments = this.database.Comments.Count(c => c.Type == CommentType.Level && c.TargetId == this.SlotId); + + int photos = this.database.Photos.Count(c => c.SlotId == this.SlotId); + + int players = RoomHelper.Rooms + .Where(r => r.Slot.SlotType == SlotType.Developer && r.Slot.SlotId == this.InternalSlotId) + .Sum(r => r.PlayerIds.Count); + + string slotData = LbpSerializer.StringElement("id", this.InternalSlotId) + + LbpSerializer.StringElement("playerCount", players) + + LbpSerializer.StringElement("commentCount", comments) + + LbpSerializer.StringElement("photoCount", photos); + + return LbpSerializer.TaggedStringElement("slot", slotData, "type", "developer"); + } + public string Serialize ( GameVersion gameVersion = GameVersion.LittleBigPlanet1, @@ -248,6 +268,8 @@ public class Slot Review? yourReview = null ) { + if (this.Type == SlotType.Developer) return this.SerializeDevSlot(); + int playerCount = RoomHelper.Rooms.Count(r => r.Slot.SlotType == SlotType.User && r.Slot.SlotId == this.SlotId); string slotData = LbpSerializer.StringElement("name", this.Name) + diff --git a/ProjectLighthouse/Levels/SlotType.cs b/ProjectLighthouse/Levels/SlotType.cs index a34876c9..90e7ea76 100644 --- a/ProjectLighthouse/Levels/SlotType.cs +++ b/ProjectLighthouse/Levels/SlotType.cs @@ -1,12 +1,20 @@ +using System.Xml.Serialization; + namespace LBPUnion.ProjectLighthouse.Levels; public enum SlotType { + [XmlEnum("developer")] Developer = 0, + [XmlEnum("user")] User = 1, + [XmlEnum("moon")] Moon = 2, Unknown = 3, Unknown2 = 4, + [XmlEnum("pod")] Pod = 5, + [XmlEnum("local")] + Local = 6, DLC = 8, } \ No newline at end of file diff --git a/ProjectLighthouse/Migrations/20220729002704_DeveloperSlots.cs b/ProjectLighthouse/Migrations/20220729002704_DeveloperSlots.cs new file mode 100644 index 00000000..d05747f6 --- /dev/null +++ b/ProjectLighthouse/Migrations/20220729002704_DeveloperSlots.cs @@ -0,0 +1,72 @@ +using LBPUnion.ProjectLighthouse; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace ProjectLighthouse.Migrations +{ + [DbContext(typeof(Database))] + [Migration("20220729002704_DeveloperSlots")] + public partial class DeveloperSlots : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "InternalSlotId", + table: "Slots", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "Type", + table: "Slots", + type: "int", + defaultValue: 1, + nullable: false); + + migrationBuilder.AddColumn( + name: "SlotId", + table: "Photos", + type: "int", + nullable: true); + + migrationBuilder.CreateIndex( + name: "IX_Photos_SlotId", + table: "Photos", + column: "SlotId"); + + migrationBuilder.AddForeignKey( + name: "FK_Photos_Slots_SlotId", + table: "Photos", + column: "SlotId", + principalTable: "Slots", + principalColumn: "SlotId", + onDelete: ReferentialAction.Cascade); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Photos_Slots_SlotId", + table: "Photos"); + + migrationBuilder.DropIndex( + name: "IX_Photos_SlotId", + table: "Photos"); + + migrationBuilder.DropColumn( + name: "InternalSlotId", + table: "Slots"); + + migrationBuilder.DropColumn( + name: "Type", + table: "Slots"); + + migrationBuilder.DropColumn( + name: "SlotId", + table: "Photos"); + } + } +} diff --git a/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs b/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs index 9a2d1729..494435fd 100644 --- a/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs +++ b/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs @@ -210,6 +210,9 @@ namespace ProjectLighthouse.Migrations b.Property("InitiallyLocked") .HasColumnType("tinyint(1)"); + b.Property("InternalSlotId") + .HasColumnType("int"); + b.Property("LastUpdated") .HasColumnType("bigint"); @@ -289,6 +292,10 @@ namespace ProjectLighthouse.Migrations b.Property("TeamPick") .HasColumnType("tinyint(1)"); + b.Property("Type") + .IsRequired() + .HasColumnType("int"); + b.HasKey("SlotId"); b.HasIndex("CreatorId"); @@ -461,6 +468,9 @@ namespace ProjectLighthouse.Migrations .IsRequired() .HasColumnType("longtext"); + b.Property("SlotId") + .HasColumnType("int"); + b.Property("SmallHash") .IsRequired() .HasColumnType("longtext"); @@ -472,6 +482,8 @@ namespace ProjectLighthouse.Migrations b.HasIndex("CreatorId"); + b.HasIndex("SlotId"); + b.ToTable("Photos"); }); @@ -1006,7 +1018,13 @@ namespace ProjectLighthouse.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); + b.HasOne("LBPUnion.ProjectLighthouse.Levels.Slot", "Slot") + .WithMany() + .HasForeignKey("SlotId"); + b.Navigation("Creator"); + + b.Navigation("Slot"); }); modelBuilder.Entity("LBPUnion.ProjectLighthouse.PlayerData.PhotoSubject", b => diff --git a/ProjectLighthouse/PlayerData/LastContactHelper.cs b/ProjectLighthouse/PlayerData/LastContactHelper.cs index 28c9ae6c..78a31531 100644 --- a/ProjectLighthouse/PlayerData/LastContactHelper.cs +++ b/ProjectLighthouse/PlayerData/LastContactHelper.cs @@ -9,9 +9,8 @@ namespace LBPUnion.ProjectLighthouse.PlayerData; public static class LastContactHelper { - private static readonly Database database = new(); - public static async Task SetLastContact(User user, GameVersion gameVersion, Platform platform) + public static async Task SetLastContact(Database database, User user, GameVersion gameVersion, Platform platform) { LastContact? lastContact = await database.LastContacts.Where(l => l.UserId == user.UserId).FirstOrDefaultAsync(); diff --git a/ProjectLighthouse/PlayerData/Photo.cs b/ProjectLighthouse/PlayerData/Photo.cs index 8a8ca224..302d5366 100644 --- a/ProjectLighthouse/PlayerData/Photo.cs +++ b/ProjectLighthouse/PlayerData/Photo.cs @@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Xml.Serialization; +using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.Serialization; using Microsoft.EntityFrameworkCore; @@ -19,6 +20,10 @@ public class Photo [NotMapped] private List? _subjects; + [NotMapped] + [XmlElement("slot")] + public PhotoSlot? XmlLevelInfo; + [NotMapped] [XmlArray("subjects")] [XmlArrayItem("subject")] @@ -81,9 +86,34 @@ public class Photo [ForeignKey(nameof(CreatorId))] public User? Creator { get; set; } - public string Serialize(int slotId) + public int? SlotId { get; set; } + + [ForeignKey(nameof(SlotId))] + public Slot? Slot { get; set; } + + public string Serialize() { - string slot = LbpSerializer.TaggedStringElement("slot", LbpSerializer.StringElement("id", slotId), "type", "user"); + using Database database = new(); + var partialSlot = database.Slots.Where(s => s.SlotId == this.SlotId.GetValueOrDefault()) + .Select(s => new + { + s.InternalSlotId, + s.Type, + }) + .FirstOrDefault(); + if (partialSlot == null) return this.Serialize(0, SlotType.User); + + int serializedSlotId = partialSlot.InternalSlotId; + if (serializedSlotId == 0) serializedSlotId = this.SlotId.GetValueOrDefault(); + + return this.Serialize(serializedSlotId, partialSlot.Type); + } + + public string Serialize(int slotId, SlotType slotType) + { + + string slot = LbpSerializer.TaggedStringElement("slot", LbpSerializer.StringElement("id", slotId), "type", slotType.ToString().ToLower()); + if (slotId == 0) slot = ""; string subjectsAggregate = this.Subjects.Aggregate(string.Empty, (s, subject) => s + subject.Serialize()); diff --git a/ProjectLighthouse/PlayerData/PhotoSlot.cs b/ProjectLighthouse/PlayerData/PhotoSlot.cs new file mode 100644 index 00000000..2726a932 --- /dev/null +++ b/ProjectLighthouse/PlayerData/PhotoSlot.cs @@ -0,0 +1,20 @@ +using System.Xml.Serialization; +using LBPUnion.ProjectLighthouse.Levels; + +namespace LBPUnion.ProjectLighthouse.PlayerData; + +[XmlRoot("slot")] +public class PhotoSlot +{ + [XmlAttribute("type")] + public SlotType SlotType { get; set; } + + [XmlElement("id")] + public int SlotId { get; set; } + + [XmlElement("rootLevel")] + public string RootLevel { get; set; } + + [XmlElement("name")] + public string LevelName { get; set; } +} \ No newline at end of file From 98a444499e7f1c87bb089710579d783f596acbf9 Mon Sep 17 00:00:00 2001 From: jvyden Date: Mon, 1 Aug 2022 17:49:34 -0400 Subject: [PATCH 22/44] Add notice about usernames in register form --- .../ProjectLighthouse.Localization.csproj | 4 ++++ ProjectLighthouse.Localization/Register.resx | 24 +++++++++++++++++++ .../StringLists/RegisterStrings.cs | 8 +++++++ .../TranslationAreas.cs | 1 + .../Pages/RegisterForm.cshtml | 3 +++ 5 files changed, 40 insertions(+) create mode 100644 ProjectLighthouse.Localization/Register.resx create mode 100644 ProjectLighthouse.Localization/StringLists/RegisterStrings.cs diff --git a/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj b/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj index c8f602ac..a54c6e3d 100644 --- a/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj +++ b/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj @@ -24,6 +24,10 @@ ResXFileCodeGenerator Status.Designer.cs + + ResXFileCodeGenerator + Register.Designer.cs + diff --git a/ProjectLighthouse.Localization/Register.resx b/ProjectLighthouse.Localization/Register.resx new file mode 100644 index 00000000..15a1183e --- /dev/null +++ b/ProjectLighthouse.Localization/Register.resx @@ -0,0 +1,24 @@ + + + + + + + + + + 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/StringLists/RegisterStrings.cs b/ProjectLighthouse.Localization/StringLists/RegisterStrings.cs new file mode 100644 index 00000000..c9acf363 --- /dev/null +++ b/ProjectLighthouse.Localization/StringLists/RegisterStrings.cs @@ -0,0 +1,8 @@ +namespace LBPUnion.ProjectLighthouse.Localization.StringLists; + +public static class RegisterStrings +{ + public static readonly TranslatableString UsernameNotice = create("username_notice"); + + private static TranslatableString create(string key) => new(TranslationAreas.Register, key); +} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TranslationAreas.cs b/ProjectLighthouse.Localization/TranslationAreas.cs index 4aeb5398..0d1fd52f 100644 --- a/ProjectLighthouse.Localization/TranslationAreas.cs +++ b/ProjectLighthouse.Localization/TranslationAreas.cs @@ -7,4 +7,5 @@ public enum TranslationAreas General, LoggedOut, Status, + Register, } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml b/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml index 1a08875b..979c4ef6 100644 --- a/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml @@ -1,5 +1,6 @@ @page "/register" @using LBPUnion.ProjectLighthouse.Configuration +@using LBPUnion.ProjectLighthouse.Localization.StringLists @model LBPUnion.ProjectLighthouse.Servers.Website.Pages.RegisterForm @{ @@ -32,6 +33,8 @@
} +

@Model.Translate(RegisterStrings.UsernameNotice)

+
@Html.AntiForgeryToken() From 9159330d22127908ff2a252bc92b45c7d1a33cc0 Mon Sep 17 00:00:00 2001 From: jvyden Date: Mon, 1 Aug 2022 17:50:19 -0400 Subject: [PATCH 23/44] Update the localization files --- .../BaseLayout.lang-fi-FI.resx | 18 +++++++-------- .../General.lang-fi-FI.resx | 14 +++++------ .../General.lang-fr-FR.resx | 2 +- .../LandingPage.lang-fi-FI.resx | 16 ++++++------- .../LoggedOut.lang-fi-FI.resx | 6 ++--- .../Register.lang-ar-SA.resx | 23 +++++++++++++++++++ .../Register.lang-da-DK.resx | 23 +++++++++++++++++++ .../Register.lang-de-DE.resx | 23 +++++++++++++++++++ .../Register.lang-eo-UY.resx | 23 +++++++++++++++++++ .../Register.lang-es-MX.resx | 23 +++++++++++++++++++ .../Register.lang-fi-FI.resx | 23 +++++++++++++++++++ .../Register.lang-fil-PH.resx | 23 +++++++++++++++++++ .../Register.lang-fr-FR.resx | 23 +++++++++++++++++++ .../Register.lang-ga-IE.resx | 23 +++++++++++++++++++ .../Register.lang-ja-JP.resx | 23 +++++++++++++++++++ .../Register.lang-no-NO.resx | 23 +++++++++++++++++++ .../Register.lang-pl-PL.resx | 23 +++++++++++++++++++ .../Register.lang-pt-PT.resx | 23 +++++++++++++++++++ .../Register.lang-ru-RU.resx | 23 +++++++++++++++++++ .../Register.lang-sv-SE.resx | 23 +++++++++++++++++++ .../Register.lang-zh-CN.resx | 23 +++++++++++++++++++ .../Register.lang-zh-TW.resx | 23 +++++++++++++++++++ .../Status.lang-fi-FI.resx | 6 ++--- 23 files changed, 422 insertions(+), 31 deletions(-) create mode 100644 ProjectLighthouse.Localization/Register.lang-ar-SA.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-da-DK.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-de-DE.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-eo-UY.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-es-MX.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-fi-FI.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-fil-PH.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-fr-FR.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-ga-IE.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-ja-JP.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-no-NO.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-pl-PL.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-pt-PT.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-ru-RU.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-sv-SE.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-zh-CN.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-zh-TW.resx diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx b/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx index a2452ea1..cb8e1121 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx @@ -22,39 +22,39 @@ - Home + Etusivu A button on the header that takes you to the landing page. - Users + Käyttäjät A button on the header that takes you to the user listing. - Photos + Kuvat A button on the header that takes you to a list of user-uploaded photos. - Levels + Kentät A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - Authentication + Todennus A button on the header that takes you to a list of authentication attempts. - Login / Register + Kirjaudu sisään / rekisteröidy A button on the header that lets you log in or register. - Profile + Profiili A quick shortcut on the header to take you to your profile if logged in. - Admin Panel + Ylläpito Paneeli A header link that takes you to the admin panel if available. - Log out + Kirjaudu ulos A shortcut to log you out of your account. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fi-FI.resx b/ProjectLighthouse.Localization/General.lang-fi-FI.resx index a4d94879..82b7c5a6 100644 --- a/ProjectLighthouse.Localization/General.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/General.lang-fi-FI.resx @@ -18,24 +18,24 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Username + Käyttäjänimi - Password + Salasana - Register + Rekisteröidy - Forgot Password? + Unohditko salasanasi? - Uh oh! + Voi ei! - Log In + Kirjaudu sisään - Unknown + Tuntematon \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fr-FR.resx b/ProjectLighthouse.Localization/General.lang-fr-FR.resx index 1ecc23be..df02a561 100644 --- a/ProjectLighthouse.Localization/General.lang-fr-FR.resx +++ b/ProjectLighthouse.Localization/General.lang-fr-FR.resx @@ -36,6 +36,6 @@ Ouvrir une session - Unknown + Inconnu \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-fi-FI.resx b/ProjectLighthouse.Localization/LandingPage.lang-fi-FI.resx index 6a297b27..509ec19b 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-fi-FI.resx @@ -22,33 +22,33 @@ - Welcome to {0}! + Tervetuloa {0}! A greeting on the main page of the website. - You are currently logged in as {0}. + Olet tällä hetkellä kirjautunut sisään käyttäjänä {0}. A greeting on the main page of the website. - There are no users online. Why not hop on? + Kukaan käyttäjistä ei ole Online-tilassa. A greeting on the main page of the website. - There is 1 user currently online: + Yksi käyttäjä on tällä hetkellä Online-tilassa: A greeting on the main page of the website. - There are currently {0} users online: + {0} käyttäjää on tällä hetkellä Online-tilassa: A greeting on the main page of the website. - You have {0} authentication attempts pending. Click here to view them. + Sinulla on {0} todennusta jäljellä. Klikkaa tästä nähdäksesi ne. A greeting on the main page of the website. - Newest Levels + Uusimmat Kentät. - Latest Team Picks + Viimeisimmät Tiimin Valinnat \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-fi-FI.resx b/ProjectLighthouse.Localization/LoggedOut.lang-fi-FI.resx index 7a193889..1326dfa8 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-fi-FI.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Logged Out + Kirjauduttu Ulos - You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + Sinut on onnistuneesti kirjattu ulos. Sinut ohjataan uudelleen 5 sekunnin kuluttua, tai voit klikata alla olevaa linkkiä tehdäksesi sen manuaalisesti. - Redirect + Uudelleenohjaus \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-ar-SA.resx b/ProjectLighthouse.Localization/Register.lang-ar-SA.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-ar-SA.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-da-DK.resx b/ProjectLighthouse.Localization/Register.lang-da-DK.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-da-DK.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-de-DE.resx b/ProjectLighthouse.Localization/Register.lang-de-DE.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-de-DE.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-eo-UY.resx b/ProjectLighthouse.Localization/Register.lang-eo-UY.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-eo-UY.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-es-MX.resx b/ProjectLighthouse.Localization/Register.lang-es-MX.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-es-MX.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-fi-FI.resx b/ProjectLighthouse.Localization/Register.lang-fi-FI.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-fi-FI.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-fil-PH.resx b/ProjectLighthouse.Localization/Register.lang-fil-PH.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-fil-PH.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-FR.resx b/ProjectLighthouse.Localization/Register.lang-fr-FR.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-fr-FR.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-ga-IE.resx b/ProjectLighthouse.Localization/Register.lang-ga-IE.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-ga-IE.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-ja-JP.resx b/ProjectLighthouse.Localization/Register.lang-ja-JP.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-ja-JP.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-no-NO.resx b/ProjectLighthouse.Localization/Register.lang-no-NO.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-no-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-pl-PL.resx b/ProjectLighthouse.Localization/Register.lang-pl-PL.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-pl-PL.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-PT.resx b/ProjectLighthouse.Localization/Register.lang-pt-PT.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-pt-PT.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-ru-RU.resx b/ProjectLighthouse.Localization/Register.lang-ru-RU.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-ru-RU.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-sv-SE.resx b/ProjectLighthouse.Localization/Register.lang-sv-SE.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-sv-SE.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-zh-CN.resx b/ProjectLighthouse.Localization/Register.lang-zh-CN.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-zh-CN.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-zh-TW.resx b/ProjectLighthouse.Localization/Register.lang-zh-TW.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-zh-TW.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-fi-FI.resx b/ProjectLighthouse.Localization/Status.lang-fi-FI.resx index 6669ee19..f1fae852 100644 --- a/ProjectLighthouse.Localization/Status.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/Status.lang-fi-FI.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Tällä hetkellä Online-tilassa {0} {1}:ssa - Offline + Offline-tilassa - Offline since {0} + Offline-tilassa {0} jälkeen \ No newline at end of file From ed20d2e527c93ae09c07a01a1bdb3d9bee836c94 Mon Sep 17 00:00:00 2001 From: jvyden Date: Mon, 1 Aug 2022 17:53:00 -0400 Subject: [PATCH 24/44] Fix forms with missing translations for GeneralStrings.Error --- .../Pages/PasswordResetPage.cshtml | 3 ++- .../Pages/PasswordResetRequestForm.cshtml | 3 ++- ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ProjectLighthouse.Servers.Website/Pages/PasswordResetPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/PasswordResetPage.cshtml index 2f8a3ff3..bbc2a2ab 100644 --- a/ProjectLighthouse.Servers.Website/Pages/PasswordResetPage.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/PasswordResetPage.cshtml @@ -1,4 +1,5 @@ @page "/passwordReset" +@using LBPUnion.ProjectLighthouse.Localization.StringLists @model LBPUnion.ProjectLighthouse.Servers.Website.Pages.PasswordResetPage @{ @@ -26,7 +27,7 @@ {
- Uh oh! + @Model.Translate(GeneralStrings.Error)

@Model.Error

diff --git a/ProjectLighthouse.Servers.Website/Pages/PasswordResetRequestForm.cshtml b/ProjectLighthouse.Servers.Website/Pages/PasswordResetRequestForm.cshtml index 22d590c2..105af3f2 100644 --- a/ProjectLighthouse.Servers.Website/Pages/PasswordResetRequestForm.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/PasswordResetRequestForm.cshtml @@ -1,4 +1,5 @@ @page "/passwordResetRequest" +@using LBPUnion.ProjectLighthouse.Localization.StringLists @model LBPUnion.ProjectLighthouse.Servers.Website.Pages.PasswordResetRequestForm @{ @@ -10,7 +11,7 @@ {
- Uh oh! + @Model.Translate(GeneralStrings.Error)

@Model.Error

diff --git a/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml b/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml index 979c4ef6..53a4c151 100644 --- a/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml @@ -27,7 +27,7 @@ {
- Uh oh! + @Model.Translate(GeneralStrings.Error)

@Model.Error

From d9e299ac009614a9e8e5fb848e628f5271c1ba91 Mon Sep 17 00:00:00 2001 From: jvyden Date: Mon, 1 Aug 2022 18:09:12 -0400 Subject: [PATCH 25/44] Translate errors in forms --- .../Error.lang-ar-SA.resx | 47 ++++++++++++++++++ .../Error.lang-da-DK.resx | 47 ++++++++++++++++++ .../Error.lang-de-DE.resx | 47 ++++++++++++++++++ .../Error.lang-eo-UY.resx | 47 ++++++++++++++++++ .../Error.lang-es-MX.resx | 47 ++++++++++++++++++ .../Error.lang-fi-FI.resx | 47 ++++++++++++++++++ .../Error.lang-fil-PH.resx | 47 ++++++++++++++++++ .../Error.lang-fr-FR.resx | 47 ++++++++++++++++++ .../Error.lang-ga-IE.resx | 47 ++++++++++++++++++ .../Error.lang-ja-JP.resx | 47 ++++++++++++++++++ .../Error.lang-no-NO.resx | 47 ++++++++++++++++++ .../Error.lang-pl-PL.resx | 47 ++++++++++++++++++ .../Error.lang-pt-PT.resx | 47 ++++++++++++++++++ .../Error.lang-ru-RU.resx | 47 ++++++++++++++++++ .../Error.lang-sv-SE.resx | 47 ++++++++++++++++++ .../Error.lang-zh-CN.resx | 47 ++++++++++++++++++ .../Error.lang-zh-TW.resx | 47 ++++++++++++++++++ ProjectLighthouse.Localization/Error.resx | 48 +++++++++++++++++++ .../General.lang-ar-SA.resx | 3 ++ .../General.lang-da-DK.resx | 3 ++ .../General.lang-de-DE.resx | 3 ++ .../General.lang-eo-UY.resx | 3 ++ .../General.lang-es-MX.resx | 3 ++ .../General.lang-fi-FI.resx | 3 ++ .../General.lang-fil-PH.resx | 3 ++ .../General.lang-fr-FR.resx | 3 ++ .../General.lang-ga-IE.resx | 3 ++ .../General.lang-ja-JP.resx | 3 ++ .../General.lang-no-NO.resx | 3 ++ .../General.lang-pl-PL.resx | 3 ++ .../General.lang-pt-PT.resx | 3 ++ .../General.lang-ru-RU.resx | 3 ++ .../General.lang-sv-SE.resx | 3 ++ .../General.lang-zh-CN.resx | 3 ++ .../General.lang-zh-TW.resx | 3 ++ ProjectLighthouse.Localization/General.resx | 3 ++ .../ProjectLighthouse.Localization.csproj | 4 ++ .../StringLists/ErrorStrings.cs | 16 +++++++ .../StringLists/GeneralStrings.cs | 1 + .../TranslationAreas.cs | 1 + .../Pages/LoginForm.cshtml.cs | 9 ++-- .../Pages/PasswordResetRequestForm.cshtml | 2 +- .../Pages/RegisterForm.cshtml.cs | 19 ++++---- 43 files changed, 939 insertions(+), 14 deletions(-) create mode 100644 ProjectLighthouse.Localization/Error.lang-ar-SA.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-da-DK.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-de-DE.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-eo-UY.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-es-MX.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-fi-FI.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-fil-PH.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-fr-FR.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-ga-IE.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-ja-JP.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-no-NO.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-pl-PL.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-pt-PT.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-ru-RU.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-sv-SE.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-zh-CN.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-zh-TW.resx create mode 100644 ProjectLighthouse.Localization/Error.resx create mode 100644 ProjectLighthouse.Localization/StringLists/ErrorStrings.cs diff --git a/ProjectLighthouse.Localization/Error.lang-ar-SA.resx b/ProjectLighthouse.Localization/Error.lang-ar-SA.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-ar-SA.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-da-DK.resx b/ProjectLighthouse.Localization/Error.lang-da-DK.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-da-DK.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-de-DE.resx b/ProjectLighthouse.Localization/Error.lang-de-DE.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-de-DE.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-eo-UY.resx b/ProjectLighthouse.Localization/Error.lang-eo-UY.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-eo-UY.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-es-MX.resx b/ProjectLighthouse.Localization/Error.lang-es-MX.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-es-MX.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-fi-FI.resx b/ProjectLighthouse.Localization/Error.lang-fi-FI.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-fi-FI.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-fil-PH.resx b/ProjectLighthouse.Localization/Error.lang-fil-PH.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-fil-PH.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-fr-FR.resx b/ProjectLighthouse.Localization/Error.lang-fr-FR.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-fr-FR.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-ga-IE.resx b/ProjectLighthouse.Localization/Error.lang-ga-IE.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-ga-IE.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-ja-JP.resx b/ProjectLighthouse.Localization/Error.lang-ja-JP.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-ja-JP.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-no-NO.resx b/ProjectLighthouse.Localization/Error.lang-no-NO.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-no-NO.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-pl-PL.resx b/ProjectLighthouse.Localization/Error.lang-pl-PL.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-pl-PL.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-pt-PT.resx b/ProjectLighthouse.Localization/Error.lang-pt-PT.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-pt-PT.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-ru-RU.resx b/ProjectLighthouse.Localization/Error.lang-ru-RU.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-ru-RU.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-sv-SE.resx b/ProjectLighthouse.Localization/Error.lang-sv-SE.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-sv-SE.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-zh-CN.resx b/ProjectLighthouse.Localization/Error.lang-zh-CN.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-zh-CN.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-zh-TW.resx b/ProjectLighthouse.Localization/Error.lang-zh-TW.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-zh-TW.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.resx b/ProjectLighthouse.Localization/Error.resx new file mode 100644 index 00000000..131424b0 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.resx @@ -0,0 +1,48 @@ + + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ar-SA.resx b/ProjectLighthouse.Localization/General.lang-ar-SA.resx index 165ebaf7..65d58616 100644 --- a/ProjectLighthouse.Localization/General.lang-ar-SA.resx +++ b/ProjectLighthouse.Localization/General.lang-ar-SA.resx @@ -38,4 +38,7 @@ غير معروف + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-da-DK.resx b/ProjectLighthouse.Localization/General.lang-da-DK.resx index 00e19c4e..ad8c4c70 100644 --- a/ProjectLighthouse.Localization/General.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/General.lang-da-DK.resx @@ -38,4 +38,7 @@ Ukendt + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-de-DE.resx b/ProjectLighthouse.Localization/General.lang-de-DE.resx index 7aa6377c..9e7baf68 100644 --- a/ProjectLighthouse.Localization/General.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/General.lang-de-DE.resx @@ -38,4 +38,7 @@ Unbekannt + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-eo-UY.resx b/ProjectLighthouse.Localization/General.lang-eo-UY.resx index 28930b6c..60e8aedf 100644 --- a/ProjectLighthouse.Localization/General.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/General.lang-eo-UY.resx @@ -38,4 +38,7 @@ Nekonata + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-es-MX.resx b/ProjectLighthouse.Localization/General.lang-es-MX.resx index 60af08c1..9e1bb2bc 100644 --- a/ProjectLighthouse.Localization/General.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/General.lang-es-MX.resx @@ -38,4 +38,7 @@ Desconocido + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fi-FI.resx b/ProjectLighthouse.Localization/General.lang-fi-FI.resx index 82b7c5a6..355c437c 100644 --- a/ProjectLighthouse.Localization/General.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/General.lang-fi-FI.resx @@ -38,4 +38,7 @@ Tuntematon + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fil-PH.resx b/ProjectLighthouse.Localization/General.lang-fil-PH.resx index db841400..d39d5a0f 100644 --- a/ProjectLighthouse.Localization/General.lang-fil-PH.resx +++ b/ProjectLighthouse.Localization/General.lang-fil-PH.resx @@ -38,4 +38,7 @@ Hindi kilala + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fr-FR.resx b/ProjectLighthouse.Localization/General.lang-fr-FR.resx index df02a561..b2c09e7e 100644 --- a/ProjectLighthouse.Localization/General.lang-fr-FR.resx +++ b/ProjectLighthouse.Localization/General.lang-fr-FR.resx @@ -38,4 +38,7 @@ Inconnu + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ga-IE.resx b/ProjectLighthouse.Localization/General.lang-ga-IE.resx index 7252d310..8946a196 100644 --- a/ProjectLighthouse.Localization/General.lang-ga-IE.resx +++ b/ProjectLighthouse.Localization/General.lang-ga-IE.resx @@ -38,4 +38,7 @@ Unknown + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ja-JP.resx b/ProjectLighthouse.Localization/General.lang-ja-JP.resx index 47666d0a..fb24d47f 100644 --- a/ProjectLighthouse.Localization/General.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/General.lang-ja-JP.resx @@ -38,4 +38,7 @@ Unknown + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-no-NO.resx b/ProjectLighthouse.Localization/General.lang-no-NO.resx index 9b2d9b4d..1fb0d685 100644 --- a/ProjectLighthouse.Localization/General.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/General.lang-no-NO.resx @@ -38,4 +38,7 @@ Ukjent + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-pl-PL.resx b/ProjectLighthouse.Localization/General.lang-pl-PL.resx index 1b9d7ee1..8cf16993 100644 --- a/ProjectLighthouse.Localization/General.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/General.lang-pl-PL.resx @@ -38,4 +38,7 @@ Unknown + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-pt-PT.resx b/ProjectLighthouse.Localization/General.lang-pt-PT.resx index 2ed5b82a..fc35a018 100644 --- a/ProjectLighthouse.Localization/General.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/General.lang-pt-PT.resx @@ -38,4 +38,7 @@ Desconhecido + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ru-RU.resx b/ProjectLighthouse.Localization/General.lang-ru-RU.resx index 16552ccc..5651c80a 100644 --- a/ProjectLighthouse.Localization/General.lang-ru-RU.resx +++ b/ProjectLighthouse.Localization/General.lang-ru-RU.resx @@ -38,4 +38,7 @@ Неизвестно + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-sv-SE.resx b/ProjectLighthouse.Localization/General.lang-sv-SE.resx index 1253c6e4..3e6a512a 100644 --- a/ProjectLighthouse.Localization/General.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/General.lang-sv-SE.resx @@ -38,4 +38,7 @@ Okänd + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-zh-CN.resx b/ProjectLighthouse.Localization/General.lang-zh-CN.resx index 018d7c1f..53956542 100644 --- a/ProjectLighthouse.Localization/General.lang-zh-CN.resx +++ b/ProjectLighthouse.Localization/General.lang-zh-CN.resx @@ -38,4 +38,7 @@ 未知 + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-zh-TW.resx b/ProjectLighthouse.Localization/General.lang-zh-TW.resx index 9838ab1a..a36280c1 100644 --- a/ProjectLighthouse.Localization/General.lang-zh-TW.resx +++ b/ProjectLighthouse.Localization/General.lang-zh-TW.resx @@ -38,4 +38,7 @@ 未知 + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.resx b/ProjectLighthouse.Localization/General.resx index 99b27d7d..2680edfa 100644 --- a/ProjectLighthouse.Localization/General.resx +++ b/ProjectLighthouse.Localization/General.resx @@ -39,4 +39,7 @@ Unknown + + Success! + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj b/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj index a54c6e3d..4eaa82d2 100644 --- a/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj +++ b/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj @@ -28,6 +28,10 @@ ResXFileCodeGenerator Register.Designer.cs + + ResXFileCodeGenerator + Error.Designer.cs + diff --git a/ProjectLighthouse.Localization/StringLists/ErrorStrings.cs b/ProjectLighthouse.Localization/StringLists/ErrorStrings.cs new file mode 100644 index 00000000..ea942865 --- /dev/null +++ b/ProjectLighthouse.Localization/StringLists/ErrorStrings.cs @@ -0,0 +1,16 @@ +namespace LBPUnion.ProjectLighthouse.Localization.StringLists; + +public static class ErrorStrings +{ + public static readonly TranslatableString UsernameInvalid = create("username_invalid"); + public static readonly TranslatableString UsernameTaken = create("username_taken"); + public static readonly TranslatableString PasswordInvalid = create("password_invalid"); + public static readonly TranslatableString PasswordDoesntMatch = create("password_doesnt_match"); + public static readonly TranslatableString EmailInvalid = create("email_invalid"); + public static readonly TranslatableString EmailTaken = create("email_taken"); + public static readonly TranslatableString CaptchaFailed = create("captcha_failed"); + public static readonly TranslatableString TokenInvalid = create("token_invalid"); + public static readonly TranslatableString UserIsBanned = create("user_banned"); + + private static TranslatableString create(string key) => new(TranslationAreas.Error, key); +} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/StringLists/GeneralStrings.cs b/ProjectLighthouse.Localization/StringLists/GeneralStrings.cs index 1b17015e..62000d92 100644 --- a/ProjectLighthouse.Localization/StringLists/GeneralStrings.cs +++ b/ProjectLighthouse.Localization/StringLists/GeneralStrings.cs @@ -6,6 +6,7 @@ public static class GeneralStrings public static readonly TranslatableString Password = create("password"); public static readonly TranslatableString Register = create("register"); public static readonly TranslatableString ForgotPassword = create("forgot_password"); + public static readonly TranslatableString Success = create("success"); public static readonly TranslatableString Error = create("error"); public static readonly TranslatableString LogIn = create("log_in"); public static readonly TranslatableString Unknown = create("unknown"); diff --git a/ProjectLighthouse.Localization/TranslationAreas.cs b/ProjectLighthouse.Localization/TranslationAreas.cs index 0d1fd52f..07ca0f98 100644 --- a/ProjectLighthouse.Localization/TranslationAreas.cs +++ b/ProjectLighthouse.Localization/TranslationAreas.cs @@ -8,4 +8,5 @@ public enum TranslationAreas LoggedOut, Status, Register, + Error, } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.Website/Pages/LoginForm.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/LoginForm.cshtml.cs index 5c6ea815..204f877c 100644 --- a/ProjectLighthouse.Servers.Website/Pages/LoginForm.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/LoginForm.cshtml.cs @@ -3,6 +3,7 @@ using JetBrains.Annotations; using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Localization.StringLists; using LBPUnion.ProjectLighthouse.Logging; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; @@ -26,19 +27,19 @@ public class LoginForm : BaseLayout { if (string.IsNullOrWhiteSpace(username)) { - this.Error = "The username field is required."; + this.Error = this.Translate(ErrorStrings.UsernameInvalid); return this.Page(); } if (string.IsNullOrWhiteSpace(password)) { - this.Error = "The password field is required."; + this.Error = this.Translate(ErrorStrings.PasswordInvalid); return this.Page(); } if (!await this.Request.CheckCaptchaValidity()) { - this.Error = "You must complete the captcha correctly."; + this.Error = this.Translate(ErrorStrings.CaptchaFailed); return this.Page(); } @@ -60,7 +61,7 @@ public class LoginForm : BaseLayout if (user.Banned) { Logger.Warn($"User {user.Username} (id: {user.UserId}) failed to login on web due to being banned", LogArea.Login); - this.Error = "You have been banned. Please contact an administrator for more information.\nReason: " + user.BannedReason; + this.Error = this.Translate(ErrorStrings.UserIsBanned, user.BannedReason); return this.Page(); } diff --git a/ProjectLighthouse.Servers.Website/Pages/PasswordResetRequestForm.cshtml b/ProjectLighthouse.Servers.Website/Pages/PasswordResetRequestForm.cshtml index 105af3f2..53318893 100644 --- a/ProjectLighthouse.Servers.Website/Pages/PasswordResetRequestForm.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/PasswordResetRequestForm.cshtml @@ -21,7 +21,7 @@ {
- Success! + @Model.Translate(GeneralStrings.Success)

@Model.Status

diff --git a/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml.cs index 8789285c..6f6a7619 100644 --- a/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/RegisterForm.cshtml.cs @@ -3,6 +3,7 @@ using JetBrains.Annotations; using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Helpers; +using LBPUnion.ProjectLighthouse.Localization.StringLists; using LBPUnion.ProjectLighthouse.PlayerData; using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.Servers.Website.Pages.Layouts; @@ -28,7 +29,7 @@ public class RegisterForm : BaseLayout if (this.Request.Query.ContainsKey("token")) { if (!this.Database.IsRegistrationTokenValid(this.Request.Query["token"])) - return this.StatusCode(403, "Invalid Token"); + return this.StatusCode(403, this.Translate(ErrorStrings.TokenInvalid)); } else { @@ -42,44 +43,44 @@ public class RegisterForm : BaseLayout if (string.IsNullOrWhiteSpace(username)) { - this.Error = "The username field is blank."; + this.Error = this.Translate(ErrorStrings.UsernameInvalid); return this.Page(); } if (string.IsNullOrWhiteSpace(password)) { - this.Error = "Password field is required."; + this.Error = this.Translate(ErrorStrings.PasswordInvalid); return this.Page(); } if (string.IsNullOrWhiteSpace(emailAddress) && ServerConfiguration.Instance.Mail.MailEnabled) { - this.Error = "Email address field is required."; + this.Error = this.Translate(ErrorStrings.EmailInvalid); return this.Page(); } if (password != confirmPassword) { - this.Error = "Passwords do not match!"; + this.Error = this.Translate(ErrorStrings.PasswordDoesntMatch); return this.Page(); } if (await this.Database.Users.FirstOrDefaultAsync(u => u.Username.ToLower() == username.ToLower()) != null) { - this.Error = "The username you've chosen is already taken."; + this.Error = this.Translate(ErrorStrings.UsernameTaken); return this.Page(); } if (ServerConfiguration.Instance.Mail.MailEnabled && await this.Database.Users.FirstOrDefaultAsync(u => u.EmailAddress != null && u.EmailAddress.ToLower() == emailAddress.ToLower()) != null) { - this.Error = "The email address you've chosen is already taken."; + this.Error = this.Translate(ErrorStrings.EmailTaken); return this.Page(); } if (!await this.Request.CheckCaptchaValidity()) { - this.Error = "You must complete the captcha correctly."; + this.Error = this.Translate(ErrorStrings.CaptchaFailed); return this.Page(); } @@ -117,7 +118,7 @@ public class RegisterForm : BaseLayout if (this.Request.Query.ContainsKey("token")) { if (!this.Database.IsRegistrationTokenValid(this.Request.Query["token"])) - return this.StatusCode(403, "Invalid Token"); + return this.StatusCode(403, this.Translate(ErrorStrings.TokenInvalid)); } else { From 018d9d2b9ffa0bd835bbcaa1f10d03a8a4ce9c78 Mon Sep 17 00:00:00 2001 From: jvyden Date: Mon, 1 Aug 2022 18:29:43 -0400 Subject: [PATCH 26/44] Translate profile page --- .../BaseLayout.resx | 6 ++++ ProjectLighthouse.Localization/General.resx | 12 ++++++++ ProjectLighthouse.Localization/Profile.resx | 30 +++++++++++++++++++ .../ProjectLighthouse.Localization.csproj | 4 +++ .../StringLists/BaseLayoutStrings.cs | 3 ++ .../StringLists/GeneralStrings.cs | 4 +++ .../StringLists/ProfileStrings.cs | 10 +++++++ .../TranslationAreas.cs | 1 + .../Pages/UserPage.cshtml | 15 +++++----- 9 files changed, 78 insertions(+), 7 deletions(-) create mode 100644 ProjectLighthouse.Localization/Profile.resx create mode 100644 ProjectLighthouse.Localization/StringLists/ProfileStrings.cs diff --git a/ProjectLighthouse.Localization/BaseLayout.resx b/ProjectLighthouse.Localization/BaseLayout.resx index cdfeee78..79aae471 100644 --- a/ProjectLighthouse.Localization/BaseLayout.resx +++ b/ProjectLighthouse.Localization/BaseLayout.resx @@ -65,4 +65,10 @@ Log out A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.resx b/ProjectLighthouse.Localization/General.resx index 2680edfa..f3bd12b5 100644 --- a/ProjectLighthouse.Localization/General.resx +++ b/ProjectLighthouse.Localization/General.resx @@ -42,4 +42,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.resx b/ProjectLighthouse.Localization/Profile.resx new file mode 100644 index 00000000..fb0fade3 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.resx @@ -0,0 +1,30 @@ + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj b/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj index 4eaa82d2..59d2127d 100644 --- a/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj +++ b/ProjectLighthouse.Localization/ProjectLighthouse.Localization.csproj @@ -32,6 +32,10 @@ ResXFileCodeGenerator Error.Designer.cs + + ResXFileCodeGenerator + Profile.Designer.cs + diff --git a/ProjectLighthouse.Localization/StringLists/BaseLayoutStrings.cs b/ProjectLighthouse.Localization/StringLists/BaseLayoutStrings.cs index 91e56acc..a69781b7 100644 --- a/ProjectLighthouse.Localization/StringLists/BaseLayoutStrings.cs +++ b/ProjectLighthouse.Localization/StringLists/BaseLayoutStrings.cs @@ -13,5 +13,8 @@ public static class BaseLayoutStrings public static readonly TranslatableString HeaderAdminPanel = create("header_adminPanel"); public static readonly TranslatableString HeaderLogout = create("header_logout"); + public static readonly TranslatableString GeneratedBy = create("generated_by"); + public static readonly TranslatableString GeneratedModified = create("generated_modified"); + private static TranslatableString create(string key) => new(TranslationAreas.BaseLayout, key); } \ No newline at end of file diff --git a/ProjectLighthouse.Localization/StringLists/GeneralStrings.cs b/ProjectLighthouse.Localization/StringLists/GeneralStrings.cs index 62000d92..1b30afc9 100644 --- a/ProjectLighthouse.Localization/StringLists/GeneralStrings.cs +++ b/ProjectLighthouse.Localization/StringLists/GeneralStrings.cs @@ -5,11 +5,15 @@ public static class GeneralStrings public static readonly TranslatableString Username = create("username"); public static readonly TranslatableString Password = create("password"); public static readonly TranslatableString Register = create("register"); + public static readonly TranslatableString ResetPassword = create("reset_password"); public static readonly TranslatableString ForgotPassword = create("forgot_password"); public static readonly TranslatableString Success = create("success"); public static readonly TranslatableString Error = create("error"); public static readonly TranslatableString LogIn = create("log_in"); public static readonly TranslatableString Unknown = create("unknown"); + public static readonly TranslatableString RecentPhotos = create("recent_photos"); + public static readonly TranslatableString RecentActivity = create("recent_activity"); + public static readonly TranslatableString Soon = create("soon"); private static TranslatableString create(string key) => new(TranslationAreas.General, key); } \ No newline at end of file diff --git a/ProjectLighthouse.Localization/StringLists/ProfileStrings.cs b/ProjectLighthouse.Localization/StringLists/ProfileStrings.cs new file mode 100644 index 00000000..2c0c3879 --- /dev/null +++ b/ProjectLighthouse.Localization/StringLists/ProfileStrings.cs @@ -0,0 +1,10 @@ +namespace LBPUnion.ProjectLighthouse.Localization.StringLists; + +public static class ProfileStrings +{ + public static readonly TranslatableString Title = create("title"); + public static readonly TranslatableString Biography = create("biography"); + public static readonly TranslatableString NoBiography = create("no_biography"); + + private static TranslatableString create(string key) => new(TranslationAreas.Profile, key); +} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TranslationAreas.cs b/ProjectLighthouse.Localization/TranslationAreas.cs index 07ca0f98..92ee5704 100644 --- a/ProjectLighthouse.Localization/TranslationAreas.cs +++ b/ProjectLighthouse.Localization/TranslationAreas.cs @@ -9,4 +9,5 @@ public enum TranslationAreas Status, Register, Error, + Profile, } \ No newline at end of file diff --git a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml index 288ff6c3..e8873271 100644 --- a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml @@ -1,6 +1,7 @@ @page "/user/{userId:int}" @using System.Web @using LBPUnion.ProjectLighthouse.Extensions +@using LBPUnion.ProjectLighthouse.Localization.StringLists @using LBPUnion.ProjectLighthouse.PlayerData @using LBPUnion.ProjectLighthouse.Types @model LBPUnion.ProjectLighthouse.Servers.Website.Pages.UserPage @@ -9,7 +10,7 @@ Layout = "Layouts/BaseLayout"; Model.ShowTitleInPage = false; - Model.Title = Model.ProfileUser!.Username + "'s user page"; + Model.Title = Model.Translate(ProfileStrings.Title, Model.ProfileUser!.Username); Model.Description = Model.ProfileUser!.Biography; } @@ -74,16 +75,16 @@ { - Reset Password + @Model.Translate(GeneralStrings.ResetPassword) }
-

Biography

+

@Model.Translate(ProfileStrings.Biography)

@if (string.IsNullOrWhiteSpace(Model.ProfileUser.Biography)) { -

@Model.ProfileUser.Username hasn't introduced themselves yet

+

@Model.Translate(ProfileStrings.NoBiography, Model.ProfileUser.Username)

} else { @@ -93,8 +94,8 @@
-

Recent Activity

-

Coming soon!

+

@Model.Translate(GeneralStrings.RecentActivity)

+

@Model.Translate(GeneralStrings.Soon)

@@ -103,7 +104,7 @@ @if (Model.Photos != null && Model.Photos.Count != 0) {
-

Most recent photos

+

@Model.Translate(GeneralStrings.RecentPhotos)

@foreach (Photo photo in Model.Photos) From 71ff91f4fc6217be0bf63d6b489a686a59827ce3 Mon Sep 17 00:00:00 2001 From: jvyden Date: Mon, 1 Aug 2022 18:30:52 -0400 Subject: [PATCH 27/44] Update the localization files --- .../BaseLayout.lang-ar-SA.resx | 6 ++ .../BaseLayout.lang-da-DK.resx | 6 ++ .../BaseLayout.lang-de-DE.resx | 6 ++ .../BaseLayout.lang-en-PT.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-eo-UY.resx | 6 ++ .../BaseLayout.lang-es-ES.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-es-MX.resx | 6 ++ .../BaseLayout.lang-et-EE.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-fi-FI.resx | 6 ++ .../BaseLayout.lang-fil-PH.resx | 6 ++ .../BaseLayout.lang-fr-FR.resx | 6 ++ .../BaseLayout.lang-ga-IE.resx | 6 ++ .../BaseLayout.lang-he-IL.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-hi-IN.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-id-ID.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-it-IT.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-ja-JP.resx | 60 ++++++++--------- .../BaseLayout.lang-nl-NL.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-no-NO.resx | 6 ++ .../BaseLayout.lang-pl-PL.resx | 6 ++ .../BaseLayout.lang-pt-PT.resx | 6 ++ .../BaseLayout.lang-ru-RU.resx | 6 ++ .../BaseLayout.lang-sv-SE.resx | 6 ++ .../BaseLayout.lang-th-TH.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-tr-TR.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-uk-UA.resx | 66 +++++++++++++++++++ .../BaseLayout.lang-zh-CN.resx | 6 ++ .../BaseLayout.lang-zh-TW.resx | 6 ++ .../Error.lang-en-PT.resx | 47 +++++++++++++ .../Error.lang-es-ES.resx | 47 +++++++++++++ .../Error.lang-et-EE.resx | 47 +++++++++++++ .../Error.lang-he-IL.resx | 47 +++++++++++++ .../Error.lang-hi-IN.resx | 47 +++++++++++++ .../Error.lang-id-ID.resx | 47 +++++++++++++ .../Error.lang-it-IT.resx | 47 +++++++++++++ .../Error.lang-nl-NL.resx | 47 +++++++++++++ .../Error.lang-th-TH.resx | 47 +++++++++++++ .../Error.lang-tr-TR.resx | 47 +++++++++++++ .../Error.lang-uk-UA.resx | 47 +++++++++++++ .../General.lang-ar-SA.resx | 12 ++++ .../General.lang-da-DK.resx | 12 ++++ .../General.lang-de-DE.resx | 12 ++++ .../General.lang-en-PT.resx | 56 ++++++++++++++++ .../General.lang-eo-UY.resx | 12 ++++ .../General.lang-es-ES.resx | 56 ++++++++++++++++ .../General.lang-es-MX.resx | 12 ++++ .../General.lang-et-EE.resx | 56 ++++++++++++++++ .../General.lang-fi-FI.resx | 12 ++++ .../General.lang-fil-PH.resx | 12 ++++ .../General.lang-fr-FR.resx | 12 ++++ .../General.lang-ga-IE.resx | 12 ++++ .../General.lang-he-IL.resx | 56 ++++++++++++++++ .../General.lang-hi-IN.resx | 56 ++++++++++++++++ .../General.lang-id-ID.resx | 56 ++++++++++++++++ .../General.lang-it-IT.resx | 56 ++++++++++++++++ .../General.lang-ja-JP.resx | 12 ++++ .../General.lang-nl-NL.resx | 56 ++++++++++++++++ .../General.lang-no-NO.resx | 12 ++++ .../General.lang-pl-PL.resx | 12 ++++ .../General.lang-pt-PT.resx | 12 ++++ .../General.lang-ru-RU.resx | 12 ++++ .../General.lang-sv-SE.resx | 12 ++++ .../General.lang-th-TH.resx | 56 ++++++++++++++++ .../General.lang-tr-TR.resx | 56 ++++++++++++++++ .../General.lang-uk-UA.resx | 56 ++++++++++++++++ .../General.lang-zh-CN.resx | 12 ++++ .../General.lang-zh-TW.resx | 12 ++++ .../LandingPage.lang-en-PT.resx | 54 +++++++++++++++ .../LandingPage.lang-es-ES.resx | 54 +++++++++++++++ .../LandingPage.lang-et-EE.resx | 54 +++++++++++++++ .../LandingPage.lang-he-IL.resx | 54 +++++++++++++++ .../LandingPage.lang-hi-IN.resx | 54 +++++++++++++++ .../LandingPage.lang-id-ID.resx | 54 +++++++++++++++ .../LandingPage.lang-it-IT.resx | 54 +++++++++++++++ .../LandingPage.lang-nl-NL.resx | 54 +++++++++++++++ .../LandingPage.lang-th-TH.resx | 54 +++++++++++++++ .../LandingPage.lang-tr-TR.resx | 54 +++++++++++++++ .../LandingPage.lang-uk-UA.resx | 54 +++++++++++++++ .../LoggedOut.lang-en-PT.resx | 29 ++++++++ .../LoggedOut.lang-es-ES.resx | 29 ++++++++ .../LoggedOut.lang-et-EE.resx | 29 ++++++++ .../LoggedOut.lang-he-IL.resx | 29 ++++++++ .../LoggedOut.lang-hi-IN.resx | 29 ++++++++ .../LoggedOut.lang-id-ID.resx | 29 ++++++++ .../LoggedOut.lang-it-IT.resx | 29 ++++++++ .../LoggedOut.lang-nl-NL.resx | 29 ++++++++ .../LoggedOut.lang-th-TH.resx | 29 ++++++++ .../LoggedOut.lang-tr-TR.resx | 29 ++++++++ .../LoggedOut.lang-uk-UA.resx | 29 ++++++++ .../Profile.lang-ar-SA.resx | 29 ++++++++ .../Profile.lang-da-DK.resx | 29 ++++++++ .../Profile.lang-de-DE.resx | 29 ++++++++ .../Profile.lang-en-PT.resx | 29 ++++++++ .../Profile.lang-eo-UY.resx | 29 ++++++++ .../Profile.lang-es-ES.resx | 29 ++++++++ .../Profile.lang-es-MX.resx | 29 ++++++++ .../Profile.lang-et-EE.resx | 29 ++++++++ .../Profile.lang-fi-FI.resx | 29 ++++++++ .../Profile.lang-fil-PH.resx | 29 ++++++++ .../Profile.lang-fr-FR.resx | 29 ++++++++ .../Profile.lang-ga-IE.resx | 29 ++++++++ .../Profile.lang-he-IL.resx | 29 ++++++++ .../Profile.lang-hi-IN.resx | 29 ++++++++ .../Profile.lang-id-ID.resx | 29 ++++++++ .../Profile.lang-it-IT.resx | 29 ++++++++ .../Profile.lang-ja-JP.resx | 29 ++++++++ .../Profile.lang-nl-NL.resx | 29 ++++++++ .../Profile.lang-no-NO.resx | 29 ++++++++ .../Profile.lang-pl-PL.resx | 29 ++++++++ .../Profile.lang-pt-PT.resx | 29 ++++++++ .../Profile.lang-ru-RU.resx | 29 ++++++++ .../Profile.lang-sv-SE.resx | 29 ++++++++ .../Profile.lang-th-TH.resx | 29 ++++++++ .../Profile.lang-tr-TR.resx | 29 ++++++++ .../Profile.lang-uk-UA.resx | 29 ++++++++ .../Profile.lang-zh-CN.resx | 29 ++++++++ .../Profile.lang-zh-TW.resx | 29 ++++++++ .../Register.lang-en-PT.resx | 23 +++++++ .../Register.lang-es-ES.resx | 23 +++++++ .../Register.lang-et-EE.resx | 23 +++++++ .../Register.lang-he-IL.resx | 23 +++++++ .../Register.lang-hi-IN.resx | 23 +++++++ .../Register.lang-id-ID.resx | 23 +++++++ .../Register.lang-it-IT.resx | 23 +++++++ .../Register.lang-nl-NL.resx | 23 +++++++ .../Register.lang-th-TH.resx | 23 +++++++ .../Register.lang-tr-TR.resx | 23 +++++++ .../Register.lang-uk-UA.resx | 23 +++++++ .../Status.lang-en-PT.resx | 29 ++++++++ .../Status.lang-es-ES.resx | 29 ++++++++ .../Status.lang-et-EE.resx | 29 ++++++++ .../Status.lang-he-IL.resx | 29 ++++++++ .../Status.lang-hi-IN.resx | 29 ++++++++ .../Status.lang-id-ID.resx | 29 ++++++++ .../Status.lang-it-IT.resx | 29 ++++++++ .../Status.lang-nl-NL.resx | 29 ++++++++ .../Status.lang-th-TH.resx | 29 ++++++++ .../Status.lang-tr-TR.resx | 29 ++++++++ .../Status.lang-uk-UA.resx | 29 ++++++++ 139 files changed, 4486 insertions(+), 30 deletions(-) create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-es-ES.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-et-EE.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-he-IL.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-hi-IN.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-id-ID.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-it-IT.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-nl-NL.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-th-TH.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-tr-TR.resx create mode 100644 ProjectLighthouse.Localization/BaseLayout.lang-uk-UA.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-en-PT.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-es-ES.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-et-EE.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-he-IL.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-hi-IN.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-id-ID.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-it-IT.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-nl-NL.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-th-TH.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-tr-TR.resx create mode 100644 ProjectLighthouse.Localization/Error.lang-uk-UA.resx create mode 100644 ProjectLighthouse.Localization/General.lang-en-PT.resx create mode 100644 ProjectLighthouse.Localization/General.lang-es-ES.resx create mode 100644 ProjectLighthouse.Localization/General.lang-et-EE.resx create mode 100644 ProjectLighthouse.Localization/General.lang-he-IL.resx create mode 100644 ProjectLighthouse.Localization/General.lang-hi-IN.resx create mode 100644 ProjectLighthouse.Localization/General.lang-id-ID.resx create mode 100644 ProjectLighthouse.Localization/General.lang-it-IT.resx create mode 100644 ProjectLighthouse.Localization/General.lang-nl-NL.resx create mode 100644 ProjectLighthouse.Localization/General.lang-th-TH.resx create mode 100644 ProjectLighthouse.Localization/General.lang-tr-TR.resx create mode 100644 ProjectLighthouse.Localization/General.lang-uk-UA.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-es-ES.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-et-EE.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-he-IL.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-hi-IN.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-id-ID.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-it-IT.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-nl-NL.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-th-TH.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-tr-TR.resx create mode 100644 ProjectLighthouse.Localization/LandingPage.lang-uk-UA.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-en-PT.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-es-ES.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-et-EE.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-he-IL.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-hi-IN.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-id-ID.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-it-IT.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-nl-NL.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-th-TH.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-tr-TR.resx create mode 100644 ProjectLighthouse.Localization/LoggedOut.lang-uk-UA.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-ar-SA.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-da-DK.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-de-DE.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-en-PT.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-eo-UY.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-es-ES.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-es-MX.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-et-EE.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-fi-FI.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-fil-PH.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-fr-FR.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-ga-IE.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-he-IL.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-hi-IN.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-id-ID.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-it-IT.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-ja-JP.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-nl-NL.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-no-NO.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-pl-PL.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-pt-PT.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-ru-RU.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-sv-SE.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-th-TH.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-tr-TR.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-uk-UA.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-zh-CN.resx create mode 100644 ProjectLighthouse.Localization/Profile.lang-zh-TW.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-en-PT.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-es-ES.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-et-EE.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-he-IL.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-hi-IN.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-id-ID.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-it-IT.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-nl-NL.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-th-TH.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-tr-TR.resx create mode 100644 ProjectLighthouse.Localization/Register.lang-uk-UA.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-en-PT.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-es-ES.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-et-EE.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-he-IL.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-hi-IN.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-id-ID.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-it-IT.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-nl-NL.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-th-TH.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-tr-TR.resx create mode 100644 ProjectLighthouse.Localization/Status.lang-uk-UA.resx diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ar-SA.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ar-SA.resx index d4b69b2e..9f7e5e2a 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-ar-SA.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ar-SA.resx @@ -57,4 +57,10 @@ تسجيل الخروج A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx b/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx index 9dd09d05..03c8e39a 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx @@ -57,4 +57,10 @@ Log ud A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx b/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx index d198e2d9..cb1c90b0 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx @@ -57,4 +57,10 @@ Abmelden A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx b/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx b/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx index a33671bb..ef459c47 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx @@ -57,4 +57,10 @@ Adiaŭi A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-es-ES.resx b/ProjectLighthouse.Localization/BaseLayout.lang-es-ES.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-es-ES.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx b/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx index 521dca7d..2bceb571 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx @@ -57,4 +57,10 @@ Cerrar sesión A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-et-EE.resx b/ProjectLighthouse.Localization/BaseLayout.lang-et-EE.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-et-EE.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx b/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx index cb8e1121..283212c6 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx @@ -57,4 +57,10 @@ Kirjaudu ulos A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-fil-PH.resx b/ProjectLighthouse.Localization/BaseLayout.lang-fil-PH.resx index 99855be2..4fc75a84 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-fil-PH.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-fil-PH.resx @@ -57,4 +57,10 @@ Log out A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-fr-FR.resx b/ProjectLighthouse.Localization/BaseLayout.lang-fr-FR.resx index 97b37c32..a7295d92 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-fr-FR.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-fr-FR.resx @@ -57,4 +57,10 @@ Déconnexion A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ga-IE.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ga-IE.resx index 616ba8ce..a0185d3e 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-ga-IE.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ga-IE.resx @@ -57,4 +57,10 @@ Logáil amach A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-he-IL.resx b/ProjectLighthouse.Localization/BaseLayout.lang-he-IL.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-he-IL.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-hi-IN.resx b/ProjectLighthouse.Localization/BaseLayout.lang-hi-IN.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-hi-IN.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-id-ID.resx b/ProjectLighthouse.Localization/BaseLayout.lang-id-ID.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-id-ID.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-it-IT.resx b/ProjectLighthouse.Localization/BaseLayout.lang-it-IT.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-it-IT.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ja-JP.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ja-JP.resx index fb8efb4d..34b59377 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ja-JP.resx @@ -1,66 +1,66 @@ - - + + - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + + + 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, + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - + + ホーム A button on the header that takes you to the landing page. - - + ユーザー A button on the header that takes you to the user listing. - - + 画像 A button on the header that takes you to a list of user-uploaded photos. - - + レベル A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - - + 認証 A button on the header that takes you to a list of authentication attempts. - - + ログイン/サインアップ A button on the header that lets you log in or register. - + プロフィール A quick shortcut on the header to take you to your profile if logged in. - + 管理者の部屋 A header link that takes you to the admin panel if available. - + ログアウト A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-nl-NL.resx b/ProjectLighthouse.Localization/BaseLayout.lang-nl-NL.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-nl-NL.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx b/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx index 40a1f543..72c56eea 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx @@ -57,4 +57,10 @@ Logg ut A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-pl-PL.resx b/ProjectLighthouse.Localization/BaseLayout.lang-pl-PL.resx index af175fe4..243cf139 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-pl-PL.resx @@ -57,4 +57,10 @@ Wyloguj A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx b/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx index 2b2874d9..4591b935 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx @@ -57,4 +57,10 @@ Terminar sessão A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ru-RU.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ru-RU.resx index 495f908d..f4575727 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-ru-RU.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ru-RU.resx @@ -57,4 +57,10 @@ Выйти A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx b/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx index 208ed3c6..f6dcf095 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx @@ -57,4 +57,10 @@ Logga ut A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-th-TH.resx b/ProjectLighthouse.Localization/BaseLayout.lang-th-TH.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-th-TH.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-tr-TR.resx b/ProjectLighthouse.Localization/BaseLayout.lang-tr-TR.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-tr-TR.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-uk-UA.resx b/ProjectLighthouse.Localization/BaseLayout.lang-uk-UA.resx new file mode 100644 index 00000000..b2ec95ef --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-uk-UA.resx @@ -0,0 +1,66 @@ + + + + + + + + + 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. + + + 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. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-zh-CN.resx b/ProjectLighthouse.Localization/BaseLayout.lang-zh-CN.resx index 421d41af..b8a7e471 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-zh-CN.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-zh-CN.resx @@ -57,4 +57,10 @@ 登出 A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-zh-TW.resx b/ProjectLighthouse.Localization/BaseLayout.lang-zh-TW.resx index 81fdf571..8f49feaa 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-zh-TW.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-zh-TW.resx @@ -57,4 +57,10 @@ 登出 A shortcut to log you out of your account. + + 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-en-PT.resx b/ProjectLighthouse.Localization/Error.lang-en-PT.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-en-PT.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-es-ES.resx b/ProjectLighthouse.Localization/Error.lang-es-ES.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-es-ES.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-et-EE.resx b/ProjectLighthouse.Localization/Error.lang-et-EE.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-et-EE.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-he-IL.resx b/ProjectLighthouse.Localization/Error.lang-he-IL.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-he-IL.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-hi-IN.resx b/ProjectLighthouse.Localization/Error.lang-hi-IN.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-hi-IN.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-id-ID.resx b/ProjectLighthouse.Localization/Error.lang-id-ID.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-id-ID.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-it-IT.resx b/ProjectLighthouse.Localization/Error.lang-it-IT.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-it-IT.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-nl-NL.resx b/ProjectLighthouse.Localization/Error.lang-nl-NL.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-nl-NL.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-th-TH.resx b/ProjectLighthouse.Localization/Error.lang-th-TH.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-th-TH.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-tr-TR.resx b/ProjectLighthouse.Localization/Error.lang-tr-TR.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-tr-TR.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-uk-UA.resx b/ProjectLighthouse.Localization/Error.lang-uk-UA.resx new file mode 100644 index 00000000..ab9123e9 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-uk-UA.resx @@ -0,0 +1,47 @@ + + + + + + + + + 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! + + + Invalid Token + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You have been banned. Please contact an administrator for more information.\nReason: {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ar-SA.resx b/ProjectLighthouse.Localization/General.lang-ar-SA.resx index 65d58616..16a1a80d 100644 --- a/ProjectLighthouse.Localization/General.lang-ar-SA.resx +++ b/ProjectLighthouse.Localization/General.lang-ar-SA.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-da-DK.resx b/ProjectLighthouse.Localization/General.lang-da-DK.resx index ad8c4c70..f0376bbf 100644 --- a/ProjectLighthouse.Localization/General.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/General.lang-da-DK.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-de-DE.resx b/ProjectLighthouse.Localization/General.lang-de-DE.resx index 9e7baf68..2e36e04a 100644 --- a/ProjectLighthouse.Localization/General.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/General.lang-de-DE.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-en-PT.resx b/ProjectLighthouse.Localization/General.lang-en-PT.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-en-PT.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-eo-UY.resx b/ProjectLighthouse.Localization/General.lang-eo-UY.resx index 60e8aedf..de48e2cb 100644 --- a/ProjectLighthouse.Localization/General.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/General.lang-eo-UY.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-es-ES.resx b/ProjectLighthouse.Localization/General.lang-es-ES.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-es-ES.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-es-MX.resx b/ProjectLighthouse.Localization/General.lang-es-MX.resx index 9e1bb2bc..dfea621b 100644 --- a/ProjectLighthouse.Localization/General.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/General.lang-es-MX.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-et-EE.resx b/ProjectLighthouse.Localization/General.lang-et-EE.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-et-EE.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fi-FI.resx b/ProjectLighthouse.Localization/General.lang-fi-FI.resx index 355c437c..2adcded2 100644 --- a/ProjectLighthouse.Localization/General.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/General.lang-fi-FI.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fil-PH.resx b/ProjectLighthouse.Localization/General.lang-fil-PH.resx index d39d5a0f..88945423 100644 --- a/ProjectLighthouse.Localization/General.lang-fil-PH.resx +++ b/ProjectLighthouse.Localization/General.lang-fil-PH.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fr-FR.resx b/ProjectLighthouse.Localization/General.lang-fr-FR.resx index b2c09e7e..65c30c8a 100644 --- a/ProjectLighthouse.Localization/General.lang-fr-FR.resx +++ b/ProjectLighthouse.Localization/General.lang-fr-FR.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ga-IE.resx b/ProjectLighthouse.Localization/General.lang-ga-IE.resx index 8946a196..bbd6553d 100644 --- a/ProjectLighthouse.Localization/General.lang-ga-IE.resx +++ b/ProjectLighthouse.Localization/General.lang-ga-IE.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-he-IL.resx b/ProjectLighthouse.Localization/General.lang-he-IL.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-he-IL.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-hi-IN.resx b/ProjectLighthouse.Localization/General.lang-hi-IN.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-hi-IN.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-id-ID.resx b/ProjectLighthouse.Localization/General.lang-id-ID.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-id-ID.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-it-IT.resx b/ProjectLighthouse.Localization/General.lang-it-IT.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-it-IT.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ja-JP.resx b/ProjectLighthouse.Localization/General.lang-ja-JP.resx index fb24d47f..e4b82892 100644 --- a/ProjectLighthouse.Localization/General.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/General.lang-ja-JP.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-nl-NL.resx b/ProjectLighthouse.Localization/General.lang-nl-NL.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-nl-NL.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-no-NO.resx b/ProjectLighthouse.Localization/General.lang-no-NO.resx index 1fb0d685..68d9d2b5 100644 --- a/ProjectLighthouse.Localization/General.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/General.lang-no-NO.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-pl-PL.resx b/ProjectLighthouse.Localization/General.lang-pl-PL.resx index 8cf16993..fe1332a8 100644 --- a/ProjectLighthouse.Localization/General.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/General.lang-pl-PL.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-pt-PT.resx b/ProjectLighthouse.Localization/General.lang-pt-PT.resx index fc35a018..62d9541d 100644 --- a/ProjectLighthouse.Localization/General.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/General.lang-pt-PT.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ru-RU.resx b/ProjectLighthouse.Localization/General.lang-ru-RU.resx index 5651c80a..118a4a67 100644 --- a/ProjectLighthouse.Localization/General.lang-ru-RU.resx +++ b/ProjectLighthouse.Localization/General.lang-ru-RU.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-sv-SE.resx b/ProjectLighthouse.Localization/General.lang-sv-SE.resx index 3e6a512a..7b8adf90 100644 --- a/ProjectLighthouse.Localization/General.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/General.lang-sv-SE.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-th-TH.resx b/ProjectLighthouse.Localization/General.lang-th-TH.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-th-TH.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-tr-TR.resx b/ProjectLighthouse.Localization/General.lang-tr-TR.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-tr-TR.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-uk-UA.resx b/ProjectLighthouse.Localization/General.lang-uk-UA.resx new file mode 100644 index 00000000..e78d2849 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-uk-UA.resx @@ -0,0 +1,56 @@ + + + + + + + + + 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 + + + Register + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-zh-CN.resx b/ProjectLighthouse.Localization/General.lang-zh-CN.resx index 53956542..c47dce25 100644 --- a/ProjectLighthouse.Localization/General.lang-zh-CN.resx +++ b/ProjectLighthouse.Localization/General.lang-zh-CN.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-zh-TW.resx b/ProjectLighthouse.Localization/General.lang-zh-TW.resx index a36280c1..601772cf 100644 --- a/ProjectLighthouse.Localization/General.lang-zh-TW.resx +++ b/ProjectLighthouse.Localization/General.lang-zh-TW.resx @@ -41,4 +41,16 @@ Success! + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx b/ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-en-PT.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-es-ES.resx b/ProjectLighthouse.Localization/LandingPage.lang-es-ES.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-es-ES.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-et-EE.resx b/ProjectLighthouse.Localization/LandingPage.lang-et-EE.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-et-EE.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-he-IL.resx b/ProjectLighthouse.Localization/LandingPage.lang-he-IL.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-he-IL.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-hi-IN.resx b/ProjectLighthouse.Localization/LandingPage.lang-hi-IN.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-hi-IN.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-id-ID.resx b/ProjectLighthouse.Localization/LandingPage.lang-id-ID.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-id-ID.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-it-IT.resx b/ProjectLighthouse.Localization/LandingPage.lang-it-IT.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-it-IT.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-nl-NL.resx b/ProjectLighthouse.Localization/LandingPage.lang-nl-NL.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-nl-NL.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-th-TH.resx b/ProjectLighthouse.Localization/LandingPage.lang-th-TH.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-th-TH.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-tr-TR.resx b/ProjectLighthouse.Localization/LandingPage.lang-tr-TR.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-tr-TR.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-uk-UA.resx b/ProjectLighthouse.Localization/LandingPage.lang-uk-UA.resx new file mode 100644 index 00000000..6a297b27 --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-uk-UA.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. + + + You are currently logged in as {0}. + A greeting on the main page of the website. + + + There are no users online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 user currently online: + A greeting on the main page of the website. + + + There are currently {0} users 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-PT.resx b/ProjectLighthouse.Localization/LoggedOut.lang-en-PT.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-en-PT.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-es-ES.resx b/ProjectLighthouse.Localization/LoggedOut.lang-es-ES.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-es-ES.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-et-EE.resx b/ProjectLighthouse.Localization/LoggedOut.lang-et-EE.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-et-EE.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-he-IL.resx b/ProjectLighthouse.Localization/LoggedOut.lang-he-IL.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-he-IL.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-hi-IN.resx b/ProjectLighthouse.Localization/LoggedOut.lang-hi-IN.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-hi-IN.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-id-ID.resx b/ProjectLighthouse.Localization/LoggedOut.lang-id-ID.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-id-ID.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-it-IT.resx b/ProjectLighthouse.Localization/LoggedOut.lang-it-IT.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-it-IT.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-nl-NL.resx b/ProjectLighthouse.Localization/LoggedOut.lang-nl-NL.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-nl-NL.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-th-TH.resx b/ProjectLighthouse.Localization/LoggedOut.lang-th-TH.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-th-TH.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-tr-TR.resx b/ProjectLighthouse.Localization/LoggedOut.lang-tr-TR.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-tr-TR.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-uk-UA.resx b/ProjectLighthouse.Localization/LoggedOut.lang-uk-UA.resx new file mode 100644 index 00000000..7a193889 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-uk-UA.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/Profile.lang-ar-SA.resx b/ProjectLighthouse.Localization/Profile.lang-ar-SA.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-ar-SA.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-da-DK.resx b/ProjectLighthouse.Localization/Profile.lang-da-DK.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-da-DK.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-de-DE.resx b/ProjectLighthouse.Localization/Profile.lang-de-DE.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-de-DE.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-en-PT.resx b/ProjectLighthouse.Localization/Profile.lang-en-PT.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-en-PT.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-eo-UY.resx b/ProjectLighthouse.Localization/Profile.lang-eo-UY.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-eo-UY.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-es-ES.resx b/ProjectLighthouse.Localization/Profile.lang-es-ES.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-es-ES.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-es-MX.resx b/ProjectLighthouse.Localization/Profile.lang-es-MX.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-es-MX.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-et-EE.resx b/ProjectLighthouse.Localization/Profile.lang-et-EE.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-et-EE.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-fi-FI.resx b/ProjectLighthouse.Localization/Profile.lang-fi-FI.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-fi-FI.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-fil-PH.resx b/ProjectLighthouse.Localization/Profile.lang-fil-PH.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-fil-PH.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-fr-FR.resx b/ProjectLighthouse.Localization/Profile.lang-fr-FR.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-fr-FR.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-ga-IE.resx b/ProjectLighthouse.Localization/Profile.lang-ga-IE.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-ga-IE.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-he-IL.resx b/ProjectLighthouse.Localization/Profile.lang-he-IL.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-he-IL.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-hi-IN.resx b/ProjectLighthouse.Localization/Profile.lang-hi-IN.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-hi-IN.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-id-ID.resx b/ProjectLighthouse.Localization/Profile.lang-id-ID.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-id-ID.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-it-IT.resx b/ProjectLighthouse.Localization/Profile.lang-it-IT.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-it-IT.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-ja-JP.resx b/ProjectLighthouse.Localization/Profile.lang-ja-JP.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-ja-JP.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-nl-NL.resx b/ProjectLighthouse.Localization/Profile.lang-nl-NL.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-nl-NL.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-no-NO.resx b/ProjectLighthouse.Localization/Profile.lang-no-NO.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-no-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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-pl-PL.resx b/ProjectLighthouse.Localization/Profile.lang-pl-PL.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-pl-PL.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-pt-PT.resx b/ProjectLighthouse.Localization/Profile.lang-pt-PT.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-pt-PT.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-ru-RU.resx b/ProjectLighthouse.Localization/Profile.lang-ru-RU.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-ru-RU.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-sv-SE.resx b/ProjectLighthouse.Localization/Profile.lang-sv-SE.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-sv-SE.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-th-TH.resx b/ProjectLighthouse.Localization/Profile.lang-th-TH.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-th-TH.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-tr-TR.resx b/ProjectLighthouse.Localization/Profile.lang-tr-TR.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-tr-TR.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-uk-UA.resx b/ProjectLighthouse.Localization/Profile.lang-uk-UA.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-uk-UA.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-zh-CN.resx b/ProjectLighthouse.Localization/Profile.lang-zh-CN.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-zh-CN.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-zh-TW.resx b/ProjectLighthouse.Localization/Profile.lang-zh-TW.resx new file mode 100644 index 00000000..e3252b0b --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-zh-TW.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 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-en-PT.resx b/ProjectLighthouse.Localization/Register.lang-en-PT.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-en-PT.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-es-ES.resx b/ProjectLighthouse.Localization/Register.lang-es-ES.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-es-ES.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-et-EE.resx b/ProjectLighthouse.Localization/Register.lang-et-EE.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-et-EE.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-he-IL.resx b/ProjectLighthouse.Localization/Register.lang-he-IL.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-he-IL.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-hi-IN.resx b/ProjectLighthouse.Localization/Register.lang-hi-IN.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-hi-IN.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-id-ID.resx b/ProjectLighthouse.Localization/Register.lang-id-ID.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-id-ID.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-it-IT.resx b/ProjectLighthouse.Localization/Register.lang-it-IT.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-it-IT.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-nl-NL.resx b/ProjectLighthouse.Localization/Register.lang-nl-NL.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-nl-NL.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-th-TH.resx b/ProjectLighthouse.Localization/Register.lang-th-TH.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-th-TH.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-tr-TR.resx b/ProjectLighthouse.Localization/Register.lang-tr-TR.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-tr-TR.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-uk-UA.resx b/ProjectLighthouse.Localization/Register.lang-uk-UA.resx new file mode 100644 index 00000000..abd741d2 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-uk-UA.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-PT.resx b/ProjectLighthouse.Localization/Status.lang-en-PT.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-en-PT.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-es-ES.resx b/ProjectLighthouse.Localization/Status.lang-es-ES.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-es-ES.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-et-EE.resx b/ProjectLighthouse.Localization/Status.lang-et-EE.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-et-EE.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-he-IL.resx b/ProjectLighthouse.Localization/Status.lang-he-IL.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-he-IL.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-hi-IN.resx b/ProjectLighthouse.Localization/Status.lang-hi-IN.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-hi-IN.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-id-ID.resx b/ProjectLighthouse.Localization/Status.lang-id-ID.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-id-ID.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-it-IT.resx b/ProjectLighthouse.Localization/Status.lang-it-IT.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-it-IT.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-nl-NL.resx b/ProjectLighthouse.Localization/Status.lang-nl-NL.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-nl-NL.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-th-TH.resx b/ProjectLighthouse.Localization/Status.lang-th-TH.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-th-TH.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-tr-TR.resx b/ProjectLighthouse.Localization/Status.lang-tr-TR.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-tr-TR.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-uk-UA.resx b/ProjectLighthouse.Localization/Status.lang-uk-UA.resx new file mode 100644 index 00000000..6669ee19 --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-uk-UA.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 online on {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file From d1bec61b90d142f5d3efbe452210a8955a0bbfe5 Mon Sep 17 00:00:00 2001 From: jvyden Date: Mon, 1 Aug 2022 18:41:52 -0400 Subject: [PATCH 28/44] Fix BaseLayout not using translations --- ProjectLighthouse.Localization/LocalizationManager.cs | 2 ++ .../Pages/Layouts/BaseLayout.cshtml | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ProjectLighthouse.Localization/LocalizationManager.cs b/ProjectLighthouse.Localization/LocalizationManager.cs index a47abdad..5e1e9a1f 100644 --- a/ProjectLighthouse.Localization/LocalizationManager.cs +++ b/ProjectLighthouse.Localization/LocalizationManager.cs @@ -11,6 +11,8 @@ public static class LocalizationManager public static string GetLocalizedString(TranslationAreas translationArea, string language, string key) { +// return $"{translationArea.ToString()}.{language}.{key}"; + // ASP.NET requires specific names for certain languages (like ja for japanese as opposed to the standard ja-JP) // We map that value back here. language = mapLanguageBack(language); diff --git a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml index 5f9ca7f8..b921f08d 100644 --- a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml @@ -133,6 +133,7 @@
+ @* ReSharper disable once CSharpWarnings::CS0162 *@ @if (!ServerStatics.IsDebug && VersionHelper.IsDirty) {
@@ -161,10 +162,10 @@
-

Page generated by @VersionHelper.FullVersion.

+

@Model.Translate(BaseLayoutStrings.GeneratedModified, VersionHelper.FullVersion)

@if (VersionHelper.IsDirty) { -

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.

+

@Model.Translate(BaseLayoutStrings.GeneratedModified)

}
From add83a32a8fed070de645222dbf0f87d1d0b6c9d Mon Sep 17 00:00:00 2001 From: Josh Date: Tue, 2 Aug 2022 08:10:53 -0500 Subject: [PATCH 29/44] Prevent grief report deletion from removing slot rootLevel (#395) --- .../Controllers/Admin/AdminReportController.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminReportController.cs b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminReportController.cs index 7557e834..da2b8595 100644 --- a/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminReportController.cs +++ b/ProjectLighthouse.Servers.Website/Controllers/Admin/AdminReportController.cs @@ -31,8 +31,9 @@ public class AdminReportController : ControllerBase { report.JpegHash, report.GriefStateHash, - report.InitialStateHash, }; + if(report.LevelType != "user") + hashes.Add(report.InitialStateHash); foreach (string hash in hashes) { if (System.IO.File.Exists(Path.Combine("png", $"{hash}.png"))) From 21a7a8711da951cbce5898fd61f6f68490c5fbad Mon Sep 17 00:00:00 2001 From: Josh Date: Tue, 2 Aug 2022 08:11:20 -0500 Subject: [PATCH 30/44] Fix posters' comments not showing ratings (#393) --- .../Pages/Partials/CommentsPartial.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectLighthouse.Servers.Website/Pages/Partials/CommentsPartial.cshtml b/ProjectLighthouse.Servers.Website/Pages/Partials/CommentsPartial.cshtml index c1b9b962..8998a477 100644 --- a/ProjectLighthouse.Servers.Website/Pages/Partials/CommentsPartial.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/Partials/CommentsPartial.cshtml @@ -52,7 +52,7 @@ string style = ""; if (Model.User?.UserId == comment.PosterUserId) { - style = "visibility: hidden"; + style = "pointer-events: none"; } }
From 4756560a6a7cb121be7063dae07ac1be6de52eac Mon Sep 17 00:00:00 2001 From: jvyden Date: Tue, 2 Aug 2022 09:30:59 -0400 Subject: [PATCH 31/44] Fix incorrect string usage on BaseLayout --- .../Pages/Layouts/BaseLayout.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml index b921f08d..a5a39c3e 100644 --- a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml @@ -162,7 +162,7 @@
-

@Model.Translate(BaseLayoutStrings.GeneratedModified, VersionHelper.FullVersion)

+

@Model.Translate(BaseLayoutStrings.GeneratedBy, VersionHelper.FullVersion)

@if (VersionHelper.IsDirty) {

@Model.Translate(BaseLayoutStrings.GeneratedModified)

From 3e1d5da3a9d8ba14ef45a0bc57240e37f4cd25d4 Mon Sep 17 00:00:00 2001 From: jvyden Date: Tue, 2 Aug 2022 09:47:31 -0400 Subject: [PATCH 32/44] Translate BaseLayout warnings --- .../BaseLayout.resx | 18 ++++++++++ .../LocalizationManager.cs | 2 +- .../StringLists/BaseLayoutStrings.cs | 7 ++++ .../Pages/Layouts/BaseLayout.cshtml | 33 +++++++++++-------- 4 files changed, 46 insertions(+), 14 deletions(-) diff --git a/ProjectLighthouse.Localization/BaseLayout.resx b/ProjectLighthouse.Localization/BaseLayout.resx index 79aae471..0bf1a4f8 100644 --- a/ProjectLighthouse.Localization/BaseLayout.resx +++ b/ProjectLighthouse.Localization/BaseLayout.resx @@ -71,4 +71,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LocalizationManager.cs b/ProjectLighthouse.Localization/LocalizationManager.cs index 5e1e9a1f..a29fdf16 100644 --- a/ProjectLighthouse.Localization/LocalizationManager.cs +++ b/ProjectLighthouse.Localization/LocalizationManager.cs @@ -49,7 +49,7 @@ public static class LocalizationManager return $"{translationArea.ToString()}.{language}.{key}"; } - return localizedString; + return localizedString.Replace("\\n", "\n"); } // If a language isn't working, it might be because a language is using a different name than what ASP.NET expects. diff --git a/ProjectLighthouse.Localization/StringLists/BaseLayoutStrings.cs b/ProjectLighthouse.Localization/StringLists/BaseLayoutStrings.cs index a69781b7..32dc1895 100644 --- a/ProjectLighthouse.Localization/StringLists/BaseLayoutStrings.cs +++ b/ProjectLighthouse.Localization/StringLists/BaseLayoutStrings.cs @@ -16,5 +16,12 @@ public static class BaseLayoutStrings public static readonly TranslatableString GeneratedBy = create("generated_by"); public static readonly TranslatableString GeneratedModified = create("generated_modified"); + public static readonly TranslatableString JavaScriptWarnTitle = create("js_warn_title"); + public static readonly TranslatableString JavaScriptWarn = create("js_warn"); + public static readonly TranslatableString LicenseWarnTitle = create("license_warn_title"); + public static readonly TranslatableString LicenseWarn1 = create("license_warn_1"); + public static readonly TranslatableString LicenseWarn2 = create("license_warn_2"); + public static readonly TranslatableString LicenseWarn3 = create("license_warn_3"); + private static TranslatableString create(string key) => new(TranslationAreas.BaseLayout, key); } \ 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 a5a39c3e..cb7915ae 100644 --- a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml @@ -123,29 +123,36 @@
- JavaScript not enabled + @Model.Translate(BaseLayoutStrings.JavaScriptWarnTitle)
-

- 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. - It's not too bloated, we promise. -

+

@Model.Translate(BaseLayoutStrings.JavaScriptWarn)

- @* ReSharper disable once CSharpWarnings::CS0162 *@ - @if (!ServerStatics.IsDebug && VersionHelper.IsDirty) - { + @* ReSharper disable HeuristicUnreachableCode *@ + @* ReSharper disable CSharpWarnings::CS0162 *@ + @* @if (!ServerStatics.IsDebug && VersionHelper.IsDirty) *@ + @{
- 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 GNU Affero General Public License v3.0.

-

If you believe this is an error, please create an issue with the output of git status ran from the root of the server source code in the description on our issue tracker.

-

If not, please publish the source code somewhere accessible to your users.

+ @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)) +

} + @* ReSharper restore CSharpWarnings::CS0162 *@ + @* ReSharper restore HeuristicUnreachableCode *@
From 9aa32b07d823e4aa3c8add8102c2b546aec3034a Mon Sep 17 00:00:00 2001 From: jvyden Date: Tue, 2 Aug 2022 10:11:19 -0400 Subject: [PATCH 33/44] Update the localization files --- .../BaseLayout.lang-ar-SA.resx | 18 +++++++ .../BaseLayout.lang-da-DK.resx | 22 +++++++- .../BaseLayout.lang-de-DE.resx | 22 +++++++- .../BaseLayout.lang-en-PT.resx | 18 +++++++ .../BaseLayout.lang-eo-UY.resx | 18 +++++++ .../BaseLayout.lang-es-ES.resx | 40 ++++++++++---- .../BaseLayout.lang-es-MX.resx | 18 +++++++ .../BaseLayout.lang-et-EE.resx | 18 +++++++ .../BaseLayout.lang-fi-FI.resx | 22 +++++++- .../BaseLayout.lang-fil-PH.resx | 18 +++++++ .../BaseLayout.lang-fr-FR.resx | 18 +++++++ .../BaseLayout.lang-ga-IE.resx | 18 +++++++ .../BaseLayout.lang-he-IL.resx | 18 +++++++ .../BaseLayout.lang-hi-IN.resx | 18 +++++++ .../BaseLayout.lang-id-ID.resx | 18 +++++++ .../BaseLayout.lang-it-IT.resx | 18 +++++++ .../BaseLayout.lang-ja-JP.resx | 18 +++++++ .../BaseLayout.lang-nl-NL.resx | 18 +++++++ .../BaseLayout.lang-no-NO.resx | 22 +++++++- .../BaseLayout.lang-pl-PL.resx | 22 +++++++- .../BaseLayout.lang-pt-PT.resx | 22 +++++++- .../BaseLayout.lang-ru-RU.resx | 18 +++++++ .../BaseLayout.lang-sv-SE.resx | 18 +++++++ .../BaseLayout.lang-th-TH.resx | 18 +++++++ .../BaseLayout.lang-tr-TR.resx | 18 +++++++ .../BaseLayout.lang-uk-UA.resx | 18 +++++++ .../BaseLayout.lang-zh-CN.resx | 18 +++++++ .../BaseLayout.lang-zh-TW.resx | 18 +++++++ .../Error.lang-da-DK.resx | 18 +++---- .../Error.lang-de-DE.resx | 18 +++---- .../Error.lang-es-ES.resx | 18 +++---- .../Error.lang-fi-FI.resx | 18 +++---- .../Error.lang-ja-JP.resx | 12 ++--- .../Error.lang-no-NO.resx | 18 +++---- .../Error.lang-pl-PL.resx | 18 +++---- .../Error.lang-pt-PT.resx | 18 +++---- .../Error.lang-ru-RU.resx | 10 ++-- .../Error.lang-sv-SE.resx | 4 +- .../General.lang-da-DK.resx | 10 ++-- .../General.lang-de-DE.resx | 10 ++-- .../General.lang-es-ES.resx | 24 ++++----- .../General.lang-fi-FI.resx | 10 ++-- .../General.lang-ja-JP.resx | 12 ++--- .../General.lang-no-NO.resx | 10 ++-- .../General.lang-pl-PL.resx | 12 ++--- .../General.lang-pt-PT.resx | 10 ++-- .../General.lang-ru-RU.resx | 6 +-- .../General.lang-sv-SE.resx | 2 +- .../LandingPage.lang-es-ES.resx | 16 +++--- .../LandingPage.lang-ja-JP.resx | 54 ++++++++----------- .../LoggedOut.lang-es-ES.resx | 7 +-- .../LoggedOut.lang-ja-JP.resx | 36 ++++++------- .../Profile.lang-da-DK.resx | 6 +-- .../Profile.lang-de-DE.resx | 6 +-- .../Profile.lang-es-ES.resx | 6 +-- .../Profile.lang-fi-FI.resx | 6 +-- .../Profile.lang-ja-JP.resx | 6 +-- .../Profile.lang-no-NO.resx | 6 +-- .../Profile.lang-pl-PL.resx | 6 +-- .../Profile.lang-pt-PT.resx | 6 +-- .../Profile.lang-sv-SE.resx | 2 +- .../Register.lang-da-DK.resx | 2 +- .../Register.lang-de-DE.resx | 2 +- .../Register.lang-es-ES.resx | 2 +- .../Register.lang-fi-FI.resx | 2 +- .../Register.lang-no-NO.resx | 2 +- .../Register.lang-pl-PL.resx | 2 +- .../Register.lang-pt-PT.resx | 2 +- .../Register.lang-sv-SE.resx | 2 +- .../Status.lang-es-ES.resx | 6 +-- .../Status.lang-ja-JP.resx | 6 +-- .../Status.lang-pl-PL.resx | 4 +- 72 files changed, 750 insertions(+), 253 deletions(-) diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ar-SA.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ar-SA.resx index 9f7e5e2a..5ec98bf6 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-ar-SA.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ar-SA.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx b/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx index 03c8e39a..0b3cbb1f 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx @@ -58,9 +58,27 @@ A shortcut to log you out of your account. - Page generated by {0}. + Siden genereret af {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. + Denne side blev genereret brugt af en ændret version af Project Lighthouse. Sørg for, at du afslører kildekoden korrekt til alle brugere, der muligvis bruger denne instans. + + + 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. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx b/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx index cb1c90b0..82000e08 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx @@ -58,9 +58,27 @@ A shortcut to log you out of your account. - Page generated by {0}. + Diese Seite wurde von {0} generiert. - 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. + Diese Seite wurde von einer modifizierten Version von Project Lighthouse generiert. Stelle bitte sicher, dass du den veränderten Quellcode für alle Nutzer, die diese Instanz benutzen dürfen, sichtbar machst. + + + 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. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx b/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx index b2ec95ef..8dba8969 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx b/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx index ef459c47..cbdf94f5 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-eo-UY.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-es-ES.resx b/ProjectLighthouse.Localization/BaseLayout.lang-es-ES.resx index b2ec95ef..f97e2f38 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-es-ES.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-es-ES.resx @@ -22,45 +22,63 @@ - Home + Inicio A button on the header that takes you to the landing page. - Users + Usuarios A button on the header that takes you to the user listing. - Photos + Fotos A button on the header that takes you to a list of user-uploaded photos. - Levels + Niveles A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - Authentication + Autenticación A button on the header that takes you to a list of authentication attempts. - Login / Register + Iniciar sesión / Registrarse A button on the header that lets you log in or register. - Profile + Perfil A quick shortcut on the header to take you to your profile if logged in. - Admin Panel + Panel de administración A header link that takes you to the admin panel if available. - Log out + Cerrar sesión A shortcut to log you out of your account. - Page generated by {0}. + Página generada por {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. + Esta página fue generada usando una versión modificada de Project Lighthouse. Por favor asegúrese de que está revelando correctamente el código principal a los usuarios que están usando está instancia + + + 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. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx b/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx index 2bceb571..238e19ec 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-es-MX.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-et-EE.resx b/ProjectLighthouse.Localization/BaseLayout.lang-et-EE.resx index b2ec95ef..8dba8969 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-et-EE.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-et-EE.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx b/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx index 283212c6..31587ae0 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-fi-FI.resx @@ -58,9 +58,27 @@ A shortcut to log you out of your account. - Page generated by {0}. + Sivun luoja {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. + Tämä sivu on luotu käyttäen muunneltua versiota Project Lighthouse. Varmista, että ilmoitat lähdekoodin oikein kaikille käyttäjille, jotka saattavat käyttää tätä instanssia. + + + 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. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-fil-PH.resx b/ProjectLighthouse.Localization/BaseLayout.lang-fil-PH.resx index 4fc75a84..923a2001 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-fil-PH.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-fil-PH.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-fr-FR.resx b/ProjectLighthouse.Localization/BaseLayout.lang-fr-FR.resx index a7295d92..74a64e58 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-fr-FR.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-fr-FR.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ga-IE.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ga-IE.resx index a0185d3e..88a9da42 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-ga-IE.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ga-IE.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-he-IL.resx b/ProjectLighthouse.Localization/BaseLayout.lang-he-IL.resx index b2ec95ef..8dba8969 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-he-IL.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-he-IL.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-hi-IN.resx b/ProjectLighthouse.Localization/BaseLayout.lang-hi-IN.resx index b2ec95ef..8dba8969 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-hi-IN.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-hi-IN.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-id-ID.resx b/ProjectLighthouse.Localization/BaseLayout.lang-id-ID.resx index b2ec95ef..8dba8969 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-id-ID.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-id-ID.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-it-IT.resx b/ProjectLighthouse.Localization/BaseLayout.lang-it-IT.resx index b2ec95ef..8dba8969 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-it-IT.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-it-IT.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ja-JP.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ja-JP.resx index 34b59377..2ed1636d 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ja-JP.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-nl-NL.resx b/ProjectLighthouse.Localization/BaseLayout.lang-nl-NL.resx index b2ec95ef..8dba8969 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-nl-NL.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-nl-NL.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx b/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx index 72c56eea..85424667 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx @@ -58,9 +58,27 @@ A shortcut to log you out of your account. - Page generated by {0}. + Side generert av {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. + Denne siden ble generert med en modifisert versjon av Project Lighthouse. Sørg for at du avslører kildekoden på riktig måte til brukere som kan bruke denne forekomsten. + + + 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. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-pl-PL.resx b/ProjectLighthouse.Localization/BaseLayout.lang-pl-PL.resx index 243cf139..367ce23c 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-pl-PL.resx @@ -58,9 +58,27 @@ A shortcut to log you out of your account. - Page generated by {0}. + Strona wygenerowana przez {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. + Ta strona została wygenerowana przy użyciu zmodyfikowanej wersji Projektu Lighthouse. Upewnij się, że poprawnie ujawniasz kod źródłowy wszystkim użytkownikom, którzy mogą używać tej instancji + + + 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. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx b/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx index 4591b935..77935fa5 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx @@ -58,9 +58,27 @@ A shortcut to log you out of your account. - Page generated by {0}. + Página gerada por {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. + 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. + + + 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. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ru-RU.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ru-RU.resx index f4575727..64df1af7 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-ru-RU.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ru-RU.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx b/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx index f6dcf095..5a428e20 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-th-TH.resx b/ProjectLighthouse.Localization/BaseLayout.lang-th-TH.resx index b2ec95ef..8dba8969 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-th-TH.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-th-TH.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-tr-TR.resx b/ProjectLighthouse.Localization/BaseLayout.lang-tr-TR.resx index b2ec95ef..8dba8969 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-tr-TR.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-tr-TR.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-uk-UA.resx b/ProjectLighthouse.Localization/BaseLayout.lang-uk-UA.resx index b2ec95ef..8dba8969 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-uk-UA.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-uk-UA.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-zh-CN.resx b/ProjectLighthouse.Localization/BaseLayout.lang-zh-CN.resx index b8a7e471..89c5bdb0 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-zh-CN.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-zh-CN.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-zh-TW.resx b/ProjectLighthouse.Localization/BaseLayout.lang-zh-TW.resx index 8f49feaa..8c5689ad 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-zh-TW.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-zh-TW.resx @@ -63,4 +63,22 @@ 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. + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-da-DK.resx b/ProjectLighthouse.Localization/Error.lang-da-DK.resx index ab9123e9..d591472d 100644 --- a/ProjectLighthouse.Localization/Error.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/Error.lang-da-DK.resx @@ -18,30 +18,30 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - The username field is blank. + Brugernavn feltet er tomt - The username you've chosen is already taken. + Det brugernavn, du har valgt, er allerede taget. - Password field is required. + Adgangskode er påkrævet. - Passwords do not match! + Adgangskoder matcher ikke! - Invalid Token + Ugyldig Token - You must complete the captcha correctly. + Du skal fuldføre captcha korrekt. - The email address you've chosen is already taken. + Den e-mailadresse, du har valgt, er allerede taget. - Email address field is required. + E-mailadresse er påkrævet. - You have been banned. Please contact an administrator for more information.\nReason: {0} + Du er blevet forbudt. Kontakt venligst en administrator for mere information.\nGrund: {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-de-DE.resx b/ProjectLighthouse.Localization/Error.lang-de-DE.resx index ab9123e9..e60202b9 100644 --- a/ProjectLighthouse.Localization/Error.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/Error.lang-de-DE.resx @@ -18,30 +18,30 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - The username field is blank. + Es wurde kein Benutzername eingegeben. - The username you've chosen is already taken. + Der Benutzername wird bereits verwendet. - Password field is required. + Es wird ein Passwort benötigt - Passwords do not match! + Das Passwort stimmt nicht überein. - Invalid Token + Token ist ungültig. - You must complete the captcha correctly. + Du musst die Captcha richtig abschließen. - The email address you've chosen is already taken. + Die E-Mail Adresse wird bereits verwendet - Email address field is required. + Es wird eine E-Mail Adresse benötigt. - You have been banned. Please contact an administrator for more information.\nReason: {0} + Du wurdest gebannt. Bitte kontaktiere einen Administrator dieser Instanz für mehr Informationen.\nGrund: {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-es-ES.resx b/ProjectLighthouse.Localization/Error.lang-es-ES.resx index ab9123e9..b03810f7 100644 --- a/ProjectLighthouse.Localization/Error.lang-es-ES.resx +++ b/ProjectLighthouse.Localization/Error.lang-es-ES.resx @@ -18,30 +18,30 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - The username field is blank. + Debes colocar un nombre de usuario - The username you've chosen is already taken. + El nombre que elegiste ya está en uso - Password field is required. + Debes de crear una contraseña - Passwords do not match! + ¡Las contraseñas no coinciden! - Invalid Token + Toquen inválido - You must complete the captcha correctly. + Debes completar el captcha correctamente - The email address you've chosen is already taken. + La dirección de correo electrónico que elegiste ya está en uso - Email address field is required. + Debes de colocar un correo electrónico - You have been banned. Please contact an administrator for more information.\nReason: {0} + Has sido vetado. Por favor contacta a un administrador para más información.\n Razón: {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-fi-FI.resx b/ProjectLighthouse.Localization/Error.lang-fi-FI.resx index ab9123e9..8efc946f 100644 --- a/ProjectLighthouse.Localization/Error.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/Error.lang-fi-FI.resx @@ -18,30 +18,30 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - The username field is blank. + Käyttäjänimen kenttä on tyhjä. - The username you've chosen is already taken. + Valitsemasi käyttäjänimi on jo käytössä. - Password field is required. + "Salasana" kenttä on pakollinen. - Passwords do not match! + Salasanat eivät täsmää! - Invalid Token + Istuntokohtainen avain ei kelpaa - You must complete the captcha correctly. + Sinun täytyy suorittaa captcha oikein. - The email address you've chosen is already taken. + Valitsemasi sähköpostiosoite on jo käytössä. - Email address field is required. + Sähköpostiosoite on pakollinen. - You have been banned. Please contact an administrator for more information.\nReason: {0} + Sinulle on annettu porttikielto. Ota yhteyttä järjestelmänvalvojaan saadaksesi lisätietoja. \nSyy: {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-ja-JP.resx b/ProjectLighthouse.Localization/Error.lang-ja-JP.resx index ab9123e9..8048c0db 100644 --- a/ProjectLighthouse.Localization/Error.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/Error.lang-ja-JP.resx @@ -18,22 +18,22 @@ 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! + パスワードが一致しません。 - Invalid Token + このトークンが無効です - You must complete the captcha correctly. + キャプチャを正しく完了してください The email address you've chosen is already taken. diff --git a/ProjectLighthouse.Localization/Error.lang-no-NO.resx b/ProjectLighthouse.Localization/Error.lang-no-NO.resx index ab9123e9..7d6dcd69 100644 --- a/ProjectLighthouse.Localization/Error.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/Error.lang-no-NO.resx @@ -18,30 +18,30 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - The username field is blank. + Brukernavnfeltet er tomt. - The username you've chosen is already taken. + Brukernavnet du har valgt er allerede tatt. - Password field is required. + Passordfelt er obligatorisk. - Passwords do not match! + Passordene er ikke like! - Invalid Token + Ugyldig token - You must complete the captcha correctly. + Du må fullføre captchaen riktig. - The email address you've chosen is already taken. + E-postadressen du har valgt er allerede tatt. - Email address field is required. + E-postadressefelt er obligatorisk. - You have been banned. Please contact an administrator for more information.\nReason: {0} + Du har blitt bannlyst. Kontakt en administrator for mer informasjon.\nÅrsak: {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-pl-PL.resx b/ProjectLighthouse.Localization/Error.lang-pl-PL.resx index ab9123e9..222569be 100644 --- a/ProjectLighthouse.Localization/Error.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/Error.lang-pl-PL.resx @@ -18,30 +18,30 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - The username field is blank. + Pole nazwy użytkownika jest puste. - The username you've chosen is already taken. + Nazwa użytkownika, którą wybrałeś, jest już zajęta. - Password field is required. + Pole Hasła jest wymagane. - Passwords do not match! + Hasła nie są identyczne! - Invalid Token + Nieprawidłowy Token - You must complete the captcha correctly. + Musisz ukończyć kod Captcha poprawnie. - The email address you've chosen is already taken. + Adres E-mail, który wybrałeś, jest już zajęty. - Email address field is required. + Pole adresu E-mail jest wymagane. - You have been banned. Please contact an administrator for more information.\nReason: {0} + Zostałeś zbanowany. Skontaktuj się z administratorem, aby uzyskać więcej informacje. \nPowód: {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-pt-PT.resx b/ProjectLighthouse.Localization/Error.lang-pt-PT.resx index ab9123e9..ca00d866 100644 --- a/ProjectLighthouse.Localization/Error.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/Error.lang-pt-PT.resx @@ -18,30 +18,30 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - The username field is blank. + O nome de usuário está em branco. - The username you've chosen is already taken. + O nome de usuário escolhido já existe. - Password field is required. + O campo da senha é obrigatório. - Passwords do not match! + As senhas não combinam! - Invalid Token + Token inválido - You must complete the captcha correctly. + Você deve completar o captcha corretamente. - The email address you've chosen is already taken. + O e-mail que você escolheu já está sendo usado. - Email address field is required. + O campo de endereço de e-mail é obrigatório. - You have been banned. Please contact an administrator for more information.\nReason: {0} + Você foi banido. Por favor, contate um administrador para mais informações.\nMotivo: {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-ru-RU.resx b/ProjectLighthouse.Localization/Error.lang-ru-RU.resx index ab9123e9..da414456 100644 --- a/ProjectLighthouse.Localization/Error.lang-ru-RU.resx +++ b/ProjectLighthouse.Localization/Error.lang-ru-RU.resx @@ -21,19 +21,19 @@ The username field is blank. - The username you've chosen is already taken. + Выбранное имя пользователя уже занято. Password field is required. - Passwords do not match! + Пароли не совпадают! - Invalid Token + Неверный Токен - You must complete the captcha correctly. + Вы должны правильно завершить капчу. The email address you've chosen is already taken. @@ -42,6 +42,6 @@ Email address field is required. - You have been banned. Please contact an administrator for more information.\nReason: {0} + Вы были заблокированы. Пожалуйста, свяжитесь с администратором для получения дополнительной информации.\nПричина: {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-sv-SE.resx b/ProjectLighthouse.Localization/Error.lang-sv-SE.resx index ab9123e9..9608fcb1 100644 --- a/ProjectLighthouse.Localization/Error.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/Error.lang-sv-SE.resx @@ -39,9 +39,9 @@ The email address you've chosen is already taken. - Email address field is required. + E-postadress krävs. - You have been banned. Please contact an administrator for more information.\nReason: {0} + Du har blivit bannad. Kontakta en administratör för mer information.\nAnledning: {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-da-DK.resx b/ProjectLighthouse.Localization/General.lang-da-DK.resx index f0376bbf..fb9cc03a 100644 --- a/ProjectLighthouse.Localization/General.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/General.lang-da-DK.resx @@ -39,18 +39,18 @@ Ukendt - Success! + Succes! - Reset Password + Nulstil adgangskode - Recent Activity + Seneste Aktivitet - Coming soon! + Kommer snart! - Most recent photos + De seneste billeder \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-de-DE.resx b/ProjectLighthouse.Localization/General.lang-de-DE.resx index 2e36e04a..a4ed9594 100644 --- a/ProjectLighthouse.Localization/General.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/General.lang-de-DE.resx @@ -39,18 +39,18 @@ Unbekannt - Success! + Erfolg! - Reset Password + Passwort zurücksetzen - Recent Activity + Letzte Aktivitäten - Coming soon! + Kommt bald! - Most recent photos + Neueste Fotos \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-es-ES.resx b/ProjectLighthouse.Localization/General.lang-es-ES.resx index e78d2849..bfb2f43f 100644 --- a/ProjectLighthouse.Localization/General.lang-es-ES.resx +++ b/ProjectLighthouse.Localization/General.lang-es-ES.resx @@ -18,39 +18,39 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Username + Nombre de usuario - Password + Contraseña - Register + Registrarse - Forgot Password? + ¿Has olvidado la contraseña? - Uh oh! + ¡Oh oh! - Log In + Iniciar sesión - Unknown + Desconocido - Success! + ¡Éxito! - Reset Password + Restablecer contraseña - Recent Activity + Actividad reciente - Coming soon! + ¡Próximamente! - Most recent photos + Fotos más recientes \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fi-FI.resx b/ProjectLighthouse.Localization/General.lang-fi-FI.resx index 2adcded2..49b80ec7 100644 --- a/ProjectLighthouse.Localization/General.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/General.lang-fi-FI.resx @@ -39,18 +39,18 @@ Tuntematon - Success! + Menestys! - Reset Password + Nollaa salasana - Recent Activity + Viimeaikainen toiminta - Coming soon! + Tulossa pian! - Most recent photos + Viimeisimmät kuvat \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ja-JP.resx b/ProjectLighthouse.Localization/General.lang-ja-JP.resx index e4b82892..b164cd2f 100644 --- a/ProjectLighthouse.Localization/General.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/General.lang-ja-JP.resx @@ -36,21 +36,21 @@ ログイン - Unknown + 不明 - Success! + 成功! - Reset Password + パスワードのリセット - Recent Activity + 最近のアクティビティ - Coming soon! + 近日公開! - Most recent photos + 最近の写真 \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-no-NO.resx b/ProjectLighthouse.Localization/General.lang-no-NO.resx index 68d9d2b5..fafe11cf 100644 --- a/ProjectLighthouse.Localization/General.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/General.lang-no-NO.resx @@ -39,18 +39,18 @@ Ukjent - Success! + Suksess! - Reset Password + Tilbakestill passord - Recent Activity + Nyglig aktivitet - Coming soon! + Kommer snart! - Most recent photos + Siste bilder \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-pl-PL.resx b/ProjectLighthouse.Localization/General.lang-pl-PL.resx index fe1332a8..9079146a 100644 --- a/ProjectLighthouse.Localization/General.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/General.lang-pl-PL.resx @@ -36,21 +36,21 @@ Zaloguj się - Unknown + Nieznane - Success! + Sukces! - Reset Password + Zresetuj Hasło - Recent Activity + Ostatnia Aktywność - Coming soon! + Dostępne wkrótce! - Most recent photos + Ostatnie zdjęcia \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-pt-PT.resx b/ProjectLighthouse.Localization/General.lang-pt-PT.resx index 62d9541d..4ec21051 100644 --- a/ProjectLighthouse.Localization/General.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/General.lang-pt-PT.resx @@ -39,18 +39,18 @@ Desconhecido - Success! + Sucesso! - Reset Password + Repor Palavra-passe - Recent Activity + Atividades Recentes - Coming soon! + Em breve! - Most recent photos + Fotos mais recentes \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ru-RU.resx b/ProjectLighthouse.Localization/General.lang-ru-RU.resx index 118a4a67..8c79526c 100644 --- a/ProjectLighthouse.Localization/General.lang-ru-RU.resx +++ b/ProjectLighthouse.Localization/General.lang-ru-RU.resx @@ -39,16 +39,16 @@ Неизвестно - Success! + Успешно! - Reset Password + Сбросить пароль Recent Activity - Coming soon! + Скоро будет! Most recent photos diff --git a/ProjectLighthouse.Localization/General.lang-sv-SE.resx b/ProjectLighthouse.Localization/General.lang-sv-SE.resx index 7b8adf90..916b1f67 100644 --- a/ProjectLighthouse.Localization/General.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/General.lang-sv-SE.resx @@ -51,6 +51,6 @@ Coming soon! - Most recent photos + Senaste foton \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-es-ES.resx b/ProjectLighthouse.Localization/LandingPage.lang-es-ES.resx index 6a297b27..8b9e26e3 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-es-ES.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-es-ES.resx @@ -22,33 +22,33 @@ - Welcome to {0}! + Bienvenido a {0} A greeting on the main page of the website. - You are currently logged in as {0}. + Actualmente has iniciado sesión como {0} A greeting on the main page of the website. - There are no users online. Why not hop on? + No hay usuarios en línea. ¿Por qué no te unes? A greeting on the main page of the website. - There is 1 user currently online: + Actualmente hay un usuario en línea: A greeting on the main page of the website. - There are currently {0} users online: + Actualmente hay {0} usuarios en línea: A greeting on the main page of the website. - You have {0} authentication attempts pending. Click here to view them. + Tienes {0} intentos de autenticación pendientes. Haz clic aquí para verlos A greeting on the main page of the website. - Newest Levels + Niveles recientes - Latest Team Picks + Selecciones del equipo más recientes \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-ja-JP.resx b/ProjectLighthouse.Localization/LandingPage.lang-ja-JP.resx index 3611578d..8d478b27 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-ja-JP.resx @@ -1,62 +1,54 @@ - - + + - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + + + 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, + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - + + {0}へようこそ A greeting on the main page of the website. - - + {0}がログインしています A greeting on the main page of the website. - - + オンラインユーザーはなし A greeting on the main page of the website. - - + 1人のユーザーがオンライン A greeting on the main page of the website. - - + {0}人のユーザーがオンライン A greeting on the main page of the website. - - + {0} の認証が保留中です。ここをクリックして確認してください。 A greeting on the main page of the website. - - + 最新のレベル - - + 最新のチームピック \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-es-ES.resx b/ProjectLighthouse.Localization/LoggedOut.lang-es-ES.resx index 7a193889..2b6c1b62 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-es-ES.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-es-ES.resx @@ -18,12 +18,13 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Logged Out + Sesión cerrada - You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + Has cerrado sesión satisfactoriamente. +Serás redirigido en 5 segundos, o haz clic aquí abajo para hacerlo manualmente - Redirect + Redirigido \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-ja-JP.resx b/ProjectLighthouse.Localization/LoggedOut.lang-ja-JP.resx index 09810770..a81d769d 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-ja-JP.resx @@ -1,29 +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 - - + + + 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 + + ログアウトしました - + 正常にログアウトされました。5秒後にリダイレクトされるか、以下をクリックして手動でログアウトできます。 - + リダイレクト \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-da-DK.resx b/ProjectLighthouse.Localization/Profile.lang-da-DK.resx index e3252b0b..35ad6f9c 100644 --- a/ProjectLighthouse.Localization/Profile.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/Profile.lang-da-DK.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Biography + Biografi - {0} hasn't introduced themselves yet. + {0} har ikke introduceret sig selv endnu. - {0}'s user page + {0}'s brugerside \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-de-DE.resx b/ProjectLighthouse.Localization/Profile.lang-de-DE.resx index e3252b0b..ffe7290c 100644 --- a/ProjectLighthouse.Localization/Profile.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/Profile.lang-de-DE.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Biography + Beschreibung - {0} hasn't introduced themselves yet. + {0} hat sich noch nicht vorgestellt. - {0}'s user page + {0}s Profilseite \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-es-ES.resx b/ProjectLighthouse.Localization/Profile.lang-es-ES.resx index e3252b0b..91111c98 100644 --- a/ProjectLighthouse.Localization/Profile.lang-es-ES.resx +++ b/ProjectLighthouse.Localization/Profile.lang-es-ES.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Biography + Biografía - {0} hasn't introduced themselves yet. + {0} No se ha presentado aún - {0}'s user page + Página de usuario de {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-fi-FI.resx b/ProjectLighthouse.Localization/Profile.lang-fi-FI.resx index e3252b0b..633abf6e 100644 --- a/ProjectLighthouse.Localization/Profile.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/Profile.lang-fi-FI.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Biography + Elämäkerta - {0} hasn't introduced themselves yet. + {0} ei ole vielä esitellyt itseään. - {0}'s user page + {0}n käyttäjäsivu \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-ja-JP.resx b/ProjectLighthouse.Localization/Profile.lang-ja-JP.resx index e3252b0b..a4aa4624 100644 --- a/ProjectLighthouse.Localization/Profile.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/Profile.lang-ja-JP.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Biography + 自己紹介 - {0} hasn't introduced themselves yet. + {0} はまだ自己紹介していません - {0}'s user page + {0}のページ \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-no-NO.resx b/ProjectLighthouse.Localization/Profile.lang-no-NO.resx index e3252b0b..b8c762e7 100644 --- a/ProjectLighthouse.Localization/Profile.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/Profile.lang-no-NO.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Biography + Biografi - {0} hasn't introduced themselves yet. + {0} har ikke introdusert seg selv ennå. - {0}'s user page + {0} sin brukerside \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-pl-PL.resx b/ProjectLighthouse.Localization/Profile.lang-pl-PL.resx index e3252b0b..822cc1e6 100644 --- a/ProjectLighthouse.Localization/Profile.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/Profile.lang-pl-PL.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Biography + Biografia - {0} hasn't introduced themselves yet. + {0} jeszcze się nie przedstawił. - {0}'s user page + Strona użytkownika {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-pt-PT.resx b/ProjectLighthouse.Localization/Profile.lang-pt-PT.resx index e3252b0b..cbe8cd8a 100644 --- a/ProjectLighthouse.Localization/Profile.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/Profile.lang-pt-PT.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Biography + Biografia - {0} hasn't introduced themselves yet. + {0} ainda não se apresentou. - {0}'s user page + Página do usuário {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-sv-SE.resx b/ProjectLighthouse.Localization/Profile.lang-sv-SE.resx index e3252b0b..bf8231e5 100644 --- a/ProjectLighthouse.Localization/Profile.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/Profile.lang-sv-SE.resx @@ -18,7 +18,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Biography + Biografi {0} hasn't introduced themselves yet. diff --git a/ProjectLighthouse.Localization/Register.lang-da-DK.resx b/ProjectLighthouse.Localization/Register.lang-da-DK.resx index abd741d2..9b74543a 100644 --- a/ProjectLighthouse.Localization/Register.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/Register.lang-da-DK.resx @@ -18,6 +18,6 @@ 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. + Forsigtig: Dit brugernavn SKAL matche dit PSN/RPCN brugernavn for at kunne logge ind i spillet. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-de-DE.resx b/ProjectLighthouse.Localization/Register.lang-de-DE.resx index abd741d2..b0b4e8a6 100644 --- a/ProjectLighthouse.Localization/Register.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/Register.lang-de-DE.resx @@ -18,6 +18,6 @@ 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. + Wichtig: Dein Benutzername MUSS mit deiner PSN/RPCN Online-ID übereinstimmen, damit du dich im Spiel anmelden kannst. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-es-ES.resx b/ProjectLighthouse.Localization/Register.lang-es-ES.resx index abd741d2..62028824 100644 --- a/ProjectLighthouse.Localization/Register.lang-es-ES.resx +++ b/ProjectLighthouse.Localization/Register.lang-es-ES.resx @@ -18,6 +18,6 @@ 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. + Precaución: tu nombre de usuario DEBE coincidir con tu cuenta de PSN/RPCN para poder iniciar sesión en el juego \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-fi-FI.resx b/ProjectLighthouse.Localization/Register.lang-fi-FI.resx index abd741d2..ed0029f1 100644 --- a/ProjectLighthouse.Localization/Register.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/Register.lang-fi-FI.resx @@ -18,6 +18,6 @@ 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. + Varoitus: Käyttäjänimesi TÄYTYY sovittaa PSN/RPCN-käyttäjätunnukseesi, jotta voit kirjautua sisään pelin sisällä. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-no-NO.resx b/ProjectLighthouse.Localization/Register.lang-no-NO.resx index abd741d2..cc7a2834 100644 --- a/ProjectLighthouse.Localization/Register.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/Register.lang-no-NO.resx @@ -18,6 +18,6 @@ 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. + Forsiktig: Brukernavnet ditt MÅ samsvare med PSN/RPCN-brukernavnet ditt for å kunne logge på fra i spillet. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-pl-PL.resx b/ProjectLighthouse.Localization/Register.lang-pl-PL.resx index abd741d2..4c35c692 100644 --- a/ProjectLighthouse.Localization/Register.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/Register.lang-pl-PL.resx @@ -18,6 +18,6 @@ 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. + Uwaga: twoja nazwa użytkownika MUSI pasować do twojej nazwy użytkownika PSN lub RPCN, aby móc się zalogować w grze. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-pt-PT.resx b/ProjectLighthouse.Localization/Register.lang-pt-PT.resx index abd741d2..1cc29082 100644 --- a/ProjectLighthouse.Localization/Register.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/Register.lang-pt-PT.resx @@ -18,6 +18,6 @@ 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. + 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-sv-SE.resx b/ProjectLighthouse.Localization/Register.lang-sv-SE.resx index abd741d2..f56e424c 100644 --- a/ProjectLighthouse.Localization/Register.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/Register.lang-sv-SE.resx @@ -18,6 +18,6 @@ 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. + Varning: Ditt användarnamn MÅSTE matcha ditt PSN/RPCN användarnamn för att kunna logga in i spelet. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-es-ES.resx b/ProjectLighthouse.Localization/Status.lang-es-ES.resx index 6669ee19..72d34b34 100644 --- a/ProjectLighthouse.Localization/Status.lang-es-ES.resx +++ b/ProjectLighthouse.Localization/Status.lang-es-ES.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Actualmente en línea en {0} en {1} - Offline + Desconectado - Offline since {0} + Desconectado desde hace {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-ja-JP.resx b/ProjectLighthouse.Localization/Status.lang-ja-JP.resx index 6669ee19..5d835d24 100644 --- a/ProjectLighthouse.Localization/Status.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/Status.lang-ja-JP.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + 現在 {0} に {1} でオンライン - Offline + オフライン - Offline since {0} + {0} からオフライン \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-pl-PL.resx b/ProjectLighthouse.Localization/Status.lang-pl-PL.resx index 6669ee19..c894c9b5 100644 --- a/ProjectLighthouse.Localization/Status.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/Status.lang-pl-PL.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Online na {0} na {1} Offline - Offline since {0} + Offline od {0} \ No newline at end of file From d9722f1e980ce24796217116bb417eca09cd0ffb Mon Sep 17 00:00:00 2001 From: jvyden Date: Tue, 2 Aug 2022 10:13:57 -0400 Subject: [PATCH 34/44] Fix license violation always appearing --- .../Pages/Layouts/BaseLayout.cshtml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml index cb7915ae..3745f64e 100644 --- a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml @@ -131,8 +131,8 @@ @* ReSharper disable HeuristicUnreachableCode *@ @* ReSharper disable CSharpWarnings::CS0162 *@ - @* @if (!ServerStatics.IsDebug && VersionHelper.IsDirty) *@ - @{ + @if (!ServerStatics.IsDebug && VersionHelper.IsDirty) + {
From 5fdb9b4f5cdb5083282af13181519dabaff28943 Mon Sep 17 00:00:00 2001 From: jvyden Date: Tue, 2 Aug 2022 10:43:19 -0400 Subject: [PATCH 35/44] Update the localization files --- .../BaseLayout.lang-da-DK.resx | 12 ++++++------ .../BaseLayout.lang-de-DE.resx | 10 +++++----- .../BaseLayout.lang-no-NO.resx | 12 ++++++------ .../BaseLayout.lang-sv-SE.resx | 4 ++-- .../Error.lang-sv-SE.resx | 14 +++++++------- .../General.lang-sv-SE.resx | 8 ++++---- .../LandingPage.lang-sv-SE.resx | 2 +- .../LoggedOut.lang-sv-SE.resx | 2 +- .../Profile.lang-sv-SE.resx | 4 ++-- .../Status.lang-sv-SE.resx | 2 +- 10 files changed, 35 insertions(+), 35 deletions(-) diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx b/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx index 0b3cbb1f..afe68cdf 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-da-DK.resx @@ -64,21 +64,21 @@ Denne side blev genereret brugt af en ændret version af Project Lighthouse. Sørg for, at du afslører kildekoden korrekt til alle brugere, der muligvis bruger denne instans. - 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. + Mens vi har til hensigt at have så lidt JavaScript som muligt, kan vi ikke garantere alt vil fungere uden det. Vi anbefaler, at du hvidliste JavaScript til Project Lighthouse. - JavaScript is not enabled + JavaScript er ikke aktiveret - Potential License Violation + Potentiel Licens Overtrædelse - This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + Denne instans er en offentlig instans, der er blevet ændret uden de offentliggjorte ændringer. Du kan være i strid med {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}. + Hvis du mener, at dette er en fejl, opret et problem med output fra {0} løb fra roden af serverens kildekode i beskrivelsen på vores {1}issue tracker{2}. - If not, please publish the source code somewhere accessible to your users. + Hvis ikke, bedes du publicere kildekoden et eller andet sted, der er tilgængeligt for dine brugere. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx b/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx index 82000e08..da2127fa 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-de-DE.resx @@ -64,21 +64,21 @@ Diese Seite wurde von einer modifizierten Version von Project Lighthouse generiert. Stelle bitte sicher, dass du den veränderten Quellcode für alle Nutzer, die diese Instanz benutzen dürfen, sichtbar machst. - 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. + Obwohl wir versuchen, so wenig JavaScript wie möglich zu benutzen, können wir nicht garantieren, dass alles ohne JavaScript funktionieren wird. Wir empfehlen dir, JavaScript für Project Lighthouse zu erlauben. - JavaScript is not enabled + JavaScript ist nicht aktiviert - Potential License Violation + Potenzieller Lizenzverstoß - This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + Dies ist eine öffentlich zugängliche Instanz, dessen Quellcode verändert aber nicht veröffentlicht wurde. Es könnte sein, dass du gegen die {0} verstoßt. 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. + Falls nicht, veröffentliche den Quellcode irgendwo, wo die Nutzer deiner Instanz darauf zugreifen können. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx b/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx index 85424667..080a8c48 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-no-NO.resx @@ -64,21 +64,21 @@ Denne siden ble generert med en modifisert versjon av Project Lighthouse. Sørg for at du avslører kildekoden på riktig måte til brukere som kan bruke denne forekomsten. - 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. + Selv om vi har til hensikt å ha så lite JavaScript som mulig, kan vi ikke garantere at alt vil fungere uten det. Vi anbefaler at du godkjenner JavaScript for Projekt Lighthouse. - JavaScript is not enabled + JacaScript er ikke aktivert - Potential License Violation + Potensielt brudd på lisensen - This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + Denne forekomsten er en offentlig forekomst som har blitt endret uten at endringene er publisert. Du kan være i strid med {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}. + Hvis du mener dette er en feil, kan du opprette et problem med utdataene til {0} kjørte fra roten til serverkildekoden i beskrivelsen på vår {1}problemsporing{2}. - If not, please publish the source code somewhere accessible to your users. + Hvis ikke, vennligst publiser kildekoden et sted som er tilgjengelig for brukerne dine \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx b/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx index 5a428e20..b98367cf 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-sv-SE.resx @@ -58,10 +58,10 @@ A shortcut to log you out of your account. - Page generated by {0}. + Sida genererad av {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. + Den här sidan genererades av en modifierad version av Project Lighthouse. Se till att du ger ut källkoden till alla användare som använder den här instansen. 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. diff --git a/ProjectLighthouse.Localization/Error.lang-sv-SE.resx b/ProjectLighthouse.Localization/Error.lang-sv-SE.resx index 9608fcb1..c1e19065 100644 --- a/ProjectLighthouse.Localization/Error.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/Error.lang-sv-SE.resx @@ -18,25 +18,25 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - The username field is blank. + Användarnamnfältet är tomt. - The username you've chosen is already taken. + Användarnamnet du har valt är redan taget. - Password field is required. + Lösenord krävs - Passwords do not match! + Lösenorden matchar inte! - Invalid Token + Ogiltig kupong - You must complete the captcha correctly. + Du måste slutföra captchan. - The email address you've chosen is already taken. + E-postadressen du har valt är redan tagen. E-postadress krävs. diff --git a/ProjectLighthouse.Localization/General.lang-sv-SE.resx b/ProjectLighthouse.Localization/General.lang-sv-SE.resx index 916b1f67..b543cc11 100644 --- a/ProjectLighthouse.Localization/General.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/General.lang-sv-SE.resx @@ -39,16 +39,16 @@ Okänd - Success! + Succé! - Reset Password + Återställ lösenord - Recent Activity + Senaste aktivitet - Coming soon! + Kommer snart! Senaste foton diff --git a/ProjectLighthouse.Localization/LandingPage.lang-sv-SE.resx b/ProjectLighthouse.Localization/LandingPage.lang-sv-SE.resx index 20a803cc..ee257412 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-sv-SE.resx @@ -49,6 +49,6 @@ Senaste Banor - Senaste Team Picks + Senaste Teamets val \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-sv-SE.resx b/ProjectLighthouse.Localization/LoggedOut.lang-sv-SE.resx index 031ea76b..fac1f700 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-sv-SE.resx @@ -21,7 +21,7 @@ Utloggad - Du har loggat ut. Om 5 sekunder kommer du bli omderigerad, eller kan du klicka på knappen under, manuellt. + Du har loggat ut. Om 5 sekunder kommer du bli omdirigerad, eller kan du klicka på knappen under, manuellt. Omdirigera diff --git a/ProjectLighthouse.Localization/Profile.lang-sv-SE.resx b/ProjectLighthouse.Localization/Profile.lang-sv-SE.resx index bf8231e5..bf3f79ab 100644 --- a/ProjectLighthouse.Localization/Profile.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/Profile.lang-sv-SE.resx @@ -21,9 +21,9 @@ Biografi - {0} hasn't introduced themselves yet. + {0} har inte presenterat sig än. - {0}'s user page + {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-sv-SE.resx b/ProjectLighthouse.Localization/Status.lang-sv-SE.resx index f986ad9a..a87b1ce0 100644 --- a/ProjectLighthouse.Localization/Status.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/Status.lang-sv-SE.resx @@ -18,7 +18,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Online på {0}, {1} + Spelar {0}, {1} Offline From 77a2d27f13c440e81c2c38ef3e6fe86ddf2e6c94 Mon Sep 17 00:00:00 2001 From: jvyden Date: Tue, 2 Aug 2022 11:12:33 -0400 Subject: [PATCH 36/44] Add page to become a pirate --- .../Pages/Layouts/BaseLayout.cshtml.cs | 2 ++ .../Pages/PirateSignupPage.cshtml | 31 ++++++++++++++++++ .../Pages/PirateSignupPage.cshtml.cs | 32 +++++++++++++++++++ ProjectLighthouse.sln.DotSettings | 1 + .../Migrations/20220802150408_Arrrrrr.cs | 31 ++++++++++++++++++ .../Migrations/DatabaseModelSnapshot.cs | 12 +++---- ProjectLighthouse/PlayerData/Profiles/User.cs | 5 +++ 7 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 ProjectLighthouse.Servers.Website/Pages/PirateSignupPage.cshtml create mode 100644 ProjectLighthouse.Servers.Website/Pages/PirateSignupPage.cshtml.cs create mode 100644 ProjectLighthouse/Migrations/20220802150408_Arrrrrr.cs diff --git a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml.cs index 93259557..1429e093 100644 --- a/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/Layouts/BaseLayout.cshtml.cs @@ -52,6 +52,8 @@ public class BaseLayout : PageModel { if (ServerStatics.IsUnitTesting) return LocalizationManager.DefaultLang; if (this.language != null) return this.language; + + if (this.User?.IsAPirate ?? false) return "en-PT"; IRequestCultureFeature? requestCulture = Request.HttpContext.Features.Get(); if (requestCulture == null) return this.language = LocalizationManager.DefaultLang; diff --git a/ProjectLighthouse.Servers.Website/Pages/PirateSignupPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/PirateSignupPage.cshtml new file mode 100644 index 00000000..9d9b183e --- /dev/null +++ b/ProjectLighthouse.Servers.Website/Pages/PirateSignupPage.cshtml @@ -0,0 +1,31 @@ +@page "/pirate" +@model LBPUnion.ProjectLighthouse.Servers.Website.Pages.PirateSignupPage + +@{ + Layout = "Layouts/BaseLayout"; + Model.Title = "ARRRRRRRRRR!"; +} + + +@if (!Model.User!.IsAPirate) +{ +

So, ye wanna be a pirate? Well, ye came to the right place!

+

Just click this 'ere button, and welcome aboard!

+

If you ever wanna walk the plank, come back 'ere.

+ + + @Html.AntiForgeryToken() + + +} +else +{ +

Back so soon, aye?

+

If you're gonna walk the plank, then do it!

+ +
+ @Html.AntiForgeryToken() + +
+} + diff --git a/ProjectLighthouse.Servers.Website/Pages/PirateSignupPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/PirateSignupPage.cshtml.cs new file mode 100644 index 00000000..445aed21 --- /dev/null +++ b/ProjectLighthouse.Servers.Website/Pages/PirateSignupPage.cshtml.cs @@ -0,0 +1,32 @@ +using LBPUnion.ProjectLighthouse.PlayerData.Profiles; +using LBPUnion.ProjectLighthouse.Servers.Website.Pages.Layouts; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.EntityFrameworkCore.Metadata.Internal; + +namespace LBPUnion.ProjectLighthouse.Servers.Website.Pages; + +public class PirateSignupPage : BaseLayout +{ + public PirateSignupPage(Database database) : base(database) + {} + + public async Task OnGet() + { + User? user = this.Database.UserFromWebRequest(this.Request); + if (user == null) return this.RedirectToPage("/login"); + + return this.Page(); + } + + public async Task OnPost() + { + User? user = this.Database.UserFromWebRequest(this.Request); + if (user == null) return this.Redirect("/login"); + + user.IsAPirate = !user.IsAPirate; + await this.Database.SaveChangesAsync(); + + return this.Redirect("/"); + } +} \ No newline at end of file diff --git a/ProjectLighthouse.sln.DotSettings b/ProjectLighthouse.sln.DotSettings index 8cbc8651..ee49821a 100644 --- a/ProjectLighthouse.sln.DotSettings +++ b/ProjectLighthouse.sln.DotSettings @@ -101,6 +101,7 @@ True True True + True True True True diff --git a/ProjectLighthouse/Migrations/20220802150408_Arrrrrr.cs b/ProjectLighthouse/Migrations/20220802150408_Arrrrrr.cs new file mode 100644 index 00000000..43659add --- /dev/null +++ b/ProjectLighthouse/Migrations/20220802150408_Arrrrrr.cs @@ -0,0 +1,31 @@ +using System; +using LBPUnion.ProjectLighthouse; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace ProjectLighthouse.Migrations +{ + [DbContext(typeof(Database))] + [Migration("20220802150408_Arrrrrr")] + public partial class Arrrrrr : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "IsAPirate", + table: "Users", + type: "tinyint(1)", + nullable: false, + defaultValue: false); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "IsAPirate", + table: "Users"); + } + } +} diff --git a/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs b/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs index 494435fd..f2569a5f 100644 --- a/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs +++ b/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs @@ -292,8 +292,7 @@ namespace ProjectLighthouse.Migrations b.Property("TeamPick") .HasColumnType("tinyint(1)"); - b.Property("Type") - .IsRequired() + b.Property("Type") .HasColumnType("int"); b.HasKey("SlotId"); @@ -429,9 +428,6 @@ namespace ProjectLighthouse.Migrations b.Property("Created") .HasColumnType("datetime(6)"); - b.Property("ExpiresAt") - .HasColumnType("datetime(6)"); - b.Property("ResetToken") .HasColumnType("longtext"); @@ -686,6 +682,9 @@ namespace ProjectLighthouse.Migrations b.Property("IconHash") .HasColumnType("longtext"); + b.Property("IsAPirate") + .HasColumnType("tinyint(1)"); + b.Property("IsAdmin") .HasColumnType("tinyint(1)"); @@ -755,9 +754,6 @@ namespace ProjectLighthouse.Migrations b.Property("Created") .HasColumnType("datetime(6)"); - b.Property("ExpiresAt") - .HasColumnType("datetime(6)"); - b.Property("Token") .HasColumnType("longtext"); diff --git a/ProjectLighthouse/PlayerData/Profiles/User.cs b/ProjectLighthouse/PlayerData/Profiles/User.cs index f70d1ee0..b9127577 100644 --- a/ProjectLighthouse/PlayerData/Profiles/User.cs +++ b/ProjectLighthouse/PlayerData/Profiles/User.cs @@ -147,6 +147,11 @@ public class User [JsonIgnore] public string? ApprovedIPAddress { get; set; } #nullable disable + + /// + /// ARRR! Forces the user to see Pirate English translations on the website. + /// + public bool IsAPirate { get; set; } public string Serialize(GameVersion gameVersion = GameVersion.LittleBigPlanet1) { From 7a23c89b8f27d1eec5ecea5a7b7f974918eb3b39 Mon Sep 17 00:00:00 2001 From: jvyden Date: Tue, 2 Aug 2022 11:13:34 -0400 Subject: [PATCH 37/44] Update the localization files --- .../BaseLayout.lang-en-PT.resx | 16 ++++++++-------- .../Error.lang-en-PT.resx | 14 +++++++------- .../General.lang-en-PT.resx | 4 ++-- .../LandingPage.lang-en-PT.resx | 12 ++++++------ .../LoggedOut.lang-en-PT.resx | 2 +- .../Profile.lang-en-PT.resx | 2 +- .../Register.lang-en-PT.resx | 2 +- 7 files changed, 26 insertions(+), 26 deletions(-) diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx b/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx index 8dba8969..80166cfe 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx @@ -22,11 +22,11 @@ - Home + 'ome A button on the header that takes you to the landing page. - Users + Gentlemen o' fortune A button on the header that takes you to the user listing. @@ -61,24 +61,24 @@ 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. + This here page been generated usin' a modified version o' project lighthouse. Please make sure ye be properly disclosin' the source code to any users who may be usin' this here 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. + While we intend to 'ave as little javascript as possible, we can not guarantee everythin' will work without it. We recommend that there ye whitelist javascript fer project lighthouse. - JavaScript is not enabled + Javascript be 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}. + This here instance be a public-facin' instance that there been modified without the changes published. Ye may be in violation o' 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 ye believe this here be an error, please create an issue with the output o' {0} ran from the root o' 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. + If not, please publish the source code somewhere accessible to yer users. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-en-PT.resx b/ProjectLighthouse.Localization/Error.lang-en-PT.resx index ab9123e9..a8f867d6 100644 --- a/ProjectLighthouse.Localization/Error.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/Error.lang-en-PT.resx @@ -18,13 +18,13 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - The username field is blank. + The username field be blank. - The username you've chosen is already taken. + The username ye've chosen be already taken. - Password field is required. + Password field be required. Passwords do not match! @@ -33,15 +33,15 @@ Invalid Token - You must complete the captcha correctly. + Ye must complete the captcha correctly. - The email address you've chosen is already taken. + The email address ye've chosen be already taken. - Email address field is required. + Email address field be required. - You have been banned. Please contact an administrator for more information.\nReason: {0} + Ye 'ave been banned. Please contact an administrator fer more information.\nreason: {0} \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-en-PT.resx b/ProjectLighthouse.Localization/General.lang-en-PT.resx index e78d2849..6760ac24 100644 --- a/ProjectLighthouse.Localization/General.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/General.lang-en-PT.resx @@ -30,7 +30,7 @@ Forgot Password?
- Uh oh! + Shiver me timbers! Log In @@ -48,7 +48,7 @@ Recent Activity - Coming soon! + Comin' soon! Most recent photos diff --git a/ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx b/ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx index 6a297b27..b144be1e 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx @@ -22,27 +22,27 @@ - Welcome to {0}! + Ye be welcome to {0}! A greeting on the main page of the website. - You are currently logged in as {0}. + Ye be currently logged in as {0}. A greeting on the main page of the website. - There are no users online. Why not hop on? + There be no users online. Why not 'op on? A greeting on the main page of the website. - There is 1 user currently online: + There be 1 user currently online: A greeting on the main page of the website. - There are currently {0} users online: + There be currently {0} users online: A greeting on the main page of the website. - You have {0} authentication attempts pending. Click here to view them. + Ye 'ave {0} authentication attempts pendin'. Click 'ere to view them. A greeting on the main page of the website. diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-en-PT.resx b/ProjectLighthouse.Localization/LoggedOut.lang-en-PT.resx index 7a193889..534e5c96 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-en-PT.resx @@ -21,7 +21,7 @@ Logged Out - You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + Ye 'ave been successfully logged out. Ye be redirected in 5 seconds, or ye may click below to do so manually. Redirect diff --git a/ProjectLighthouse.Localization/Profile.lang-en-PT.resx b/ProjectLighthouse.Localization/Profile.lang-en-PT.resx index e3252b0b..c7c3b798 100644 --- a/ProjectLighthouse.Localization/Profile.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/Profile.lang-en-PT.resx @@ -21,7 +21,7 @@ Biography - {0} hasn't introduced themselves yet. + {0} 'asn't introduced themselves yet. {0}'s user page diff --git a/ProjectLighthouse.Localization/Register.lang-en-PT.resx b/ProjectLighthouse.Localization/Register.lang-en-PT.resx index abd741d2..d6a400dd 100644 --- a/ProjectLighthouse.Localization/Register.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/Register.lang-en-PT.resx @@ -18,6 +18,6 @@ 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. + Caution: Yer username must match yer PSN/RPCN username in order to be able to sign in from in-game. \ No newline at end of file From 167aac748efff67ecb45ae03085bd905de70fc3e Mon Sep 17 00:00:00 2001 From: jvyden Date: Tue, 2 Aug 2022 13:43:18 -0400 Subject: [PATCH 38/44] Update pirate speak translations --- .../BaseLayout.lang-en-PT.resx | 16 ++++++++-------- .../BaseLayout.lang-pt-PT.resx | 12 ++++++------ .../Error.lang-en-PT.resx | 2 +- .../General.lang-en-PT.resx | 14 +++++++------- .../LandingPage.lang-en-PT.resx | 4 ++-- .../LoggedOut.lang-en-PT.resx | 4 ++-- .../Profile.lang-en-PT.resx | 4 ++-- .../Status.lang-en-PT.resx | 6 +++--- 8 files changed, 31 insertions(+), 31 deletions(-) diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx b/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx index 80166cfe..977eede9 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-en-PT.resx @@ -30,11 +30,11 @@ A button on the header that takes you to the user listing. - Photos + Maps A button on the header that takes you to a list of user-uploaded photos. - Levels + Tales A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". @@ -42,23 +42,23 @@ A button on the header that takes you to a list of authentication attempts. - Login / Register + Go Aboard / Register A button on the header that lets you log in or register. - Profile + Ship A quick shortcut on the header to take you to your profile if logged in. - Admin Panel + Cap'n's panel A header link that takes you to the admin panel if available. - Log out + Sleep A shortcut to log you out of your account. - Page generated by {0}. + This here ship be made by {0}. This here page been generated usin' a modified version o' project lighthouse. Please make sure ye be properly disclosin' the source code to any users who may be usin' this here instance. @@ -70,7 +70,7 @@ Javascript be not enabled - Potential License Violation + This here looks like a potential license violation mate. This here instance be a public-facin' instance that there been modified without the changes published. Ye may be in violation o' the {0}. diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx b/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx index 77935fa5..53742bdf 100644 --- a/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/BaseLayout.lang-pt-PT.resx @@ -64,21 +64,21 @@ 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. - 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. + Embora a nossa intenção seja ter o mínimo possível de JavaScript, não é possível garantir que tudo funcionará sem a sua presença. Recomendamos que dê whitelist ao JavaScript para o Projeto Lighthouse - JavaScript is not enabled + O JavaScript não está ativado - Potential License Violation + Potencial Violação de Licença - This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + Esta é uma instância pública que foi modificada sem ter tido as suas alterações publicadas. Poderá estar em violação de {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}. + Se acredita que isto possa ser um erro, por favor cria uma "solicitação" com saída {0} executada na raiz do código-fonte do servidor na descrição no nosso {1}rastreador de problemas{2} - If not, please publish the source code somewhere accessible to your users. + Se não for o caso, publique o código-fonte em um local acessível aos seus utilizadores. \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-en-PT.resx b/ProjectLighthouse.Localization/Error.lang-en-PT.resx index a8f867d6..d40f2e19 100644 --- a/ProjectLighthouse.Localization/Error.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/Error.lang-en-PT.resx @@ -27,7 +27,7 @@ Password field be required. - Passwords do not match! + Secret keys do not match! Invalid Token diff --git a/ProjectLighthouse.Localization/General.lang-en-PT.resx b/ProjectLighthouse.Localization/General.lang-en-PT.resx index 6760ac24..8c46dc33 100644 --- a/ProjectLighthouse.Localization/General.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/General.lang-en-PT.resx @@ -18,22 +18,22 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Username + Ye name - Password + Secret key Register - Forgot Password? + Forgot yer secret key? Shiver me timbers! - Log In + Go Aboard Unknown @@ -42,15 +42,15 @@ Success! - Reset Password + New secret key - Recent Activity + Recent Happenin's Comin' soon! - Most recent photos + Most recent maps \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx b/ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx index b144be1e..8f3fd263 100644 --- a/ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/LandingPage.lang-en-PT.resx @@ -46,9 +46,9 @@ A greeting on the main page of the website. - Newest Levels + Latest Tales - Latest Team Picks + Latest Legends \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-en-PT.resx b/ProjectLighthouse.Localization/LoggedOut.lang-en-PT.resx index 534e5c96..928fc0fb 100644 --- a/ProjectLighthouse.Localization/LoggedOut.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/LoggedOut.lang-en-PT.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Logged Out + Gone to rest Ye 'ave been successfully logged out. Ye be redirected in 5 seconds, or ye may click below to do so manually. - Redirect + Travel \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-en-PT.resx b/ProjectLighthouse.Localization/Profile.lang-en-PT.resx index c7c3b798..25f48bc4 100644 --- a/ProjectLighthouse.Localization/Profile.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/Profile.lang-en-PT.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Biography + Journal {0} 'asn't introduced themselves yet. - {0}'s user page + {0}'s ship \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-en-PT.resx b/ProjectLighthouse.Localization/Status.lang-en-PT.resx index 6669ee19..8f063e25 100644 --- a/ProjectLighthouse.Localization/Status.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/Status.lang-en-PT.resx @@ -18,12 +18,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Currently online on {0} on {1} + Currently sailin' at {0} on {1} - Offline + Out fishin' - Offline since {0} + Out fishin' since {0} \ No newline at end of file From 00f8d32a54da280b0f6c501467fa621661eac2f9 Mon Sep 17 00:00:00 2001 From: Josh Date: Tue, 2 Aug 2022 17:22:16 -0500 Subject: [PATCH 39/44] Fix reviews not showing up (#397) --- ProjectLighthouse/PlayerData/Reviews/Review.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectLighthouse/PlayerData/Reviews/Review.cs b/ProjectLighthouse/PlayerData/Reviews/Review.cs index 6843df3c..be4035c2 100644 --- a/ProjectLighthouse/PlayerData/Reviews/Review.cs +++ b/ProjectLighthouse/PlayerData/Reviews/Review.cs @@ -74,7 +74,7 @@ public class Review _ => "none", }; - string reviewData = LbpSerializer.TaggedStringElement("slot_id", this.SlotId, "type", this.Slot?.Type) + + string reviewData = LbpSerializer.TaggedStringElement("slot_id", this.SlotId, "type", this.Slot?.Type.ToString().ToLower()) + LbpSerializer.StringElement("reviewer", this.Reviewer?.Username) + LbpSerializer.StringElement("thumb", this.Thumb) + LbpSerializer.StringElement("timestamp", this.Timestamp) + From 5a3439e634acf82a8122ec88c660d2e3e664242d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 18:22:43 -0400 Subject: [PATCH 40/44] Bump xunit from 2.4.1 to 2.4.2 (#396) Bumps [xunit](https://github.com/xunit/xunit) from 2.4.1 to 2.4.2. - [Release notes](https://github.com/xunit/xunit/releases) - [Commits](https://github.com/xunit/xunit/compare/2.4.1...2.4.2) --- updated-dependencies: - dependency-name: xunit dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../ProjectLighthouse.Tests.GameApiTests.csproj | 2 +- .../ProjectLighthouse.Tests.WebsiteTests.csproj | 2 +- ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj b/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj index 3c4dfda8..d18791bd 100644 --- a/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj +++ b/ProjectLighthouse.Tests.GameApiTests/ProjectLighthouse.Tests.GameApiTests.csproj @@ -15,7 +15,7 @@ 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 3c950839..51f575f5 100644 --- a/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj +++ b/ProjectLighthouse.Tests.WebsiteTests/ProjectLighthouse.Tests.WebsiteTests.csproj @@ -17,7 +17,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj b/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj index b0f43b1c..e03e490f 100644 --- a/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj +++ b/ProjectLighthouse.Tests/ProjectLighthouse.Tests.csproj @@ -20,7 +20,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + runtime; build; native; contentfiles; analyzers; buildtransitive all From 2ab1e7203713781796b5da5ec5883812ae3a7f57 Mon Sep 17 00:00:00 2001 From: Jayden Date: Tue, 2 Aug 2022 18:22:56 -0400 Subject: [PATCH 41/44] Implement basic privacy settings (#392) * Add ability for clients to submit and retrieve privacy settings data * Make slot pages and user pages respect user's privacy settings * Prevent webhook from publishing new levels if user's privacy settings disallow it * Hide levels/profiles from respective pages depending on privacy settings * Apply suggestions from review --- .../ClientConfigurationController.cs | 52 +++++++++++++++++-- .../Controllers/Slots/PublishController.cs | 12 ++--- .../Pages/SlotPage.cshtml.cs | 23 ++++++++ .../Pages/SlotsPage.cshtml.cs | 2 + .../Pages/UserPage.cshtml.cs | 22 ++++++++ .../Pages/UsersPage.cshtml.cs | 1 + ProjectLighthouse.sln.DotSettings | 1 + .../Configuration/PrivacySettings.cs | 16 ++++-- ...20220801055525_AddPrivacySettingsToUser.cs | 42 +++++++++++++++ .../Migrations/DatabaseModelSnapshot.cs | 6 +++ .../PlayerData/Profiles/PrivacyType.cs | 41 +++++++++++++++ ProjectLighthouse/PlayerData/Profiles/User.cs | 4 ++ 12 files changed, 210 insertions(+), 12 deletions(-) create mode 100644 ProjectLighthouse/Migrations/20220801055525_AddPrivacySettingsToUser.cs create mode 100644 ProjectLighthouse/PlayerData/Profiles/PrivacyType.cs diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/ClientConfigurationController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/ClientConfigurationController.cs index ad1652c4..5d037fa0 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/ClientConfigurationController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/ClientConfigurationController.cs @@ -1,7 +1,9 @@ #nullable enable using System.Diagnostics.CodeAnalysis; +using System.Xml.Serialization; using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.PlayerData; +using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.Types; using Microsoft.AspNetCore.Mvc; @@ -45,12 +47,56 @@ public class ClientConfigurationController : ControllerBase [HttpGet("privacySettings")] [Produces("text/xml")] - public IActionResult PrivacySettings() + public async Task GetPrivacySettings() { + User? user = await this.database.UserFromGameRequest(this.Request); + if (user == null) return this.StatusCode(403, ""); + PrivacySettings ps = new() { - LevelVisibility = "all", - ProfileVisibility = "all", + LevelVisibility = user.LevelVisibility.ToSerializedString(), + ProfileVisibility = user.ProfileVisibility.ToSerializedString(), + }; + + return this.Ok(ps.Serialize()); + } + + [HttpPost("privacySettings")] + [Produces("text/xml")] + public async Task SetPrivacySetting() + { + User? user = await this.database.UserFromGameRequest(this.Request); + if (user == null) return this.StatusCode(403, ""); + + this.Request.Body.Position = 0; + string bodyString = await new StreamReader(this.Request.Body).ReadToEndAsync(); + + XmlSerializer serializer = new(typeof(PrivacySettings)); + PrivacySettings? settings = (PrivacySettings?)serializer.Deserialize(new StringReader(bodyString)); + if (settings == null) return this.BadRequest(); + + if (settings.LevelVisibility != null) + { + PrivacyType? type = PrivacyTypeExtensions.FromSerializedString(settings.LevelVisibility); + if (type == null) return this.BadRequest(); + + user.LevelVisibility = (PrivacyType)type; + } + + if (settings.ProfileVisibility != null) + { + PrivacyType? type = PrivacyTypeExtensions.FromSerializedString(settings.ProfileVisibility); + if (type == null) return this.BadRequest(); + + user.ProfileVisibility = (PrivacyType)type; + } + + await this.database.SaveChangesAsync(); + + PrivacySettings ps = new() + { + LevelVisibility = user.LevelVisibility.ToSerializedString(), + ProfileVisibility = user.ProfileVisibility.ToSerializedString(), }; return this.Ok(ps.Serialize()); diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs index a545230c..cd45cfca 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs @@ -234,13 +234,13 @@ public class PublishController : ControllerBase this.database.Slots.Add(slot); await this.database.SaveChangesAsync(); - - await WebhookHelper.SendWebhook - ( - "New level published!", - $"**{user.Username}** just published a new level: [**{slot.Name}**]({ServerConfiguration.Instance.ExternalUrl}/slot/{slot.SlotId})\n{slot.Description}" - ); + if (user.LevelVisibility == PrivacyType.All) + { + await WebhookHelper.SendWebhook("New level published!", + $"**{user.Username}** just published a new level: [**{slot.Name}**]({ServerConfiguration.Instance.ExternalUrl}/slot/{slot.SlotId})\n{slot.Description}"); + } + Logger.Success($"Successfully published level {slot.Name} (id: {slot.SlotId}) by {user.Username} (id: {user.UserId})", LogArea.Publish); return this.Ok(slot.Serialize(gameToken.GameVersion)); diff --git a/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml.cs index 08397d10..c870bfc1 100644 --- a/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/SlotPage.cshtml.cs @@ -31,6 +31,29 @@ public class SlotPage : BaseLayout .Where(s => s.Type == SlotType.User) .FirstOrDefaultAsync(s => s.SlotId == id); if (slot == null) return this.NotFound(); + System.Diagnostics.Debug.Assert(slot.Creator != null); + + // Determine if user can view slot according to creator's privacy settings + if (this.User == null || !this.User.IsAdmin) + { + switch (slot.Creator.ProfileVisibility) + { + case PrivacyType.PSN: + { + if (this.User != null) return this.NotFound(); + + break; + } + case PrivacyType.Game: + { + if (slot.Creator != this.User) return this.NotFound(); + + break; + } + case PrivacyType.All: break; + default: throw new ArgumentOutOfRangeException(); + } + } this.Slot = slot; diff --git a/ProjectLighthouse.Servers.Website/Pages/SlotsPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/SlotsPage.cshtml.cs index a7089eb5..e844102e 100644 --- a/ProjectLighthouse.Servers.Website/Pages/SlotsPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/SlotsPage.cshtml.cs @@ -3,6 +3,7 @@ using System.Text; using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.Levels; using LBPUnion.ProjectLighthouse.PlayerData; +using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.Servers.Website.Pages.Layouts; using LBPUnion.ProjectLighthouse.Types; using Microsoft.AspNetCore.Mvc; @@ -70,6 +71,7 @@ public class SlotsPage : BaseLayout .Where(p => p.Type == SlotType.User) .Where(p => p.Name.Contains(finalSearch.ToString())) .Where(p => p.Creator != null && (targetAuthor == null || string.Equals(p.Creator.Username.ToLower(), targetAuthor.ToLower()))) + .Where(p => p.Creator!.LevelVisibility == PrivacyType.All) // TODO: change check for when user is logged in .Where(p => targetGame == null || p.GameVersion == targetGame) .OrderByDescending(p => p.FirstUploaded) .Skip(pageNumber * ServerStatics.PageSize) diff --git a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml.cs index 6a1dd155..4d6d941e 100644 --- a/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml.cs @@ -28,6 +28,28 @@ public class UserPage : BaseLayout this.ProfileUser = await this.Database.Users.FirstOrDefaultAsync(u => u.UserId == userId); if (this.ProfileUser == null) return this.NotFound(); + // Determine if user can view profile according to profileUser's privacy settings + if (this.User == null || !this.User.IsAdmin) + { + switch (this.ProfileUser.ProfileVisibility) + { + case PrivacyType.PSN: + { + if (this.User != null) return this.NotFound(); + + break; + } + case PrivacyType.Game: + { + if (this.ProfileUser != this.User) return this.NotFound(); + + break; + } + case PrivacyType.All: break; + default: throw new ArgumentOutOfRangeException(); + } + } + this.Photos = await this.Database.Photos.Include(p => p.Slot).OrderByDescending(p => p.Timestamp).Where(p => p.CreatorId == userId).Take(6).ToListAsync(); if (this.CommentsEnabled) { diff --git a/ProjectLighthouse.Servers.Website/Pages/UsersPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/UsersPage.cshtml.cs index fadb934e..a949a14e 100644 --- a/ProjectLighthouse.Servers.Website/Pages/UsersPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/UsersPage.cshtml.cs @@ -37,6 +37,7 @@ public class UsersPage : BaseLayout if (this.PageNumber < 0 || this.PageNumber >= this.PageAmount) return this.Redirect($"/users/{Math.Clamp(this.PageNumber, 0, this.PageAmount - 1)}"); this.Users = await this.Database.Users.Where(u => !u.Banned && u.Username.Contains(this.SearchValue)) + .Where(u => u.ProfileVisibility == PrivacyType.All) // TODO: change check for when user is logged in .OrderByDescending(b => b.UserId) .Skip(pageNumber * ServerStatics.PageSize) .Take(ServerStatics.PageSize) diff --git a/ProjectLighthouse.sln.DotSettings b/ProjectLighthouse.sln.DotSettings index ee49821a..c058e828 100644 --- a/ProjectLighthouse.sln.DotSettings +++ b/ProjectLighthouse.sln.DotSettings @@ -87,6 +87,7 @@ NP PNG PS + PSN PSP RPCS SMTP diff --git a/ProjectLighthouse/Configuration/PrivacySettings.cs b/ProjectLighthouse/Configuration/PrivacySettings.cs index 1bd96e1c..e5ec67ea 100644 --- a/ProjectLighthouse/Configuration/PrivacySettings.cs +++ b/ProjectLighthouse/Configuration/PrivacySettings.cs @@ -1,16 +1,26 @@ +#nullable enable +using System; +using System.Xml.Serialization; +using LBPUnion.ProjectLighthouse.PlayerData.Profiles; using LBPUnion.ProjectLighthouse.Serialization; namespace LBPUnion.ProjectLighthouse.Configuration; +[XmlRoot("privacySettings")] +[XmlType("privacySettings")] public class PrivacySettings { - public string LevelVisibility { get; set; } - public string ProfileVisibility { get; set; } + [XmlElement("levelVisiblity")] + public string? LevelVisibility { get; set; } + + [XmlElement("profileVisiblity")] + public string? ProfileVisibility { get; set; } public string Serialize() => LbpSerializer.StringElement ( "privacySettings", - LbpSerializer.StringElement("levelVisibility", this.LevelVisibility) + LbpSerializer.StringElement("profileVisibility", this.ProfileVisibility) + LbpSerializer.StringElement("levelVisibility", this.LevelVisibility) + + LbpSerializer.StringElement("profileVisibility", this.ProfileVisibility) ); } \ No newline at end of file diff --git a/ProjectLighthouse/Migrations/20220801055525_AddPrivacySettingsToUser.cs b/ProjectLighthouse/Migrations/20220801055525_AddPrivacySettingsToUser.cs new file mode 100644 index 00000000..d0735a73 --- /dev/null +++ b/ProjectLighthouse/Migrations/20220801055525_AddPrivacySettingsToUser.cs @@ -0,0 +1,42 @@ +using System; +using LBPUnion.ProjectLighthouse; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace ProjectLighthouse.Migrations +{ + [DbContext(typeof(Database))] + [Migration("20220801055525_AddPrivacySettingsToUser")] + public partial class AddPrivacySettingsToUser : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "LevelVisibility", + table: "Users", + type: "int", + nullable: false, + defaultValue: 2); + + migrationBuilder.AddColumn( + name: "ProfileVisibility", + table: "Users", + type: "int", + nullable: false, + defaultValue: 2); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "LevelVisibility", + table: "Users"); + + migrationBuilder.DropColumn( + name: "ProfileVisibility", + table: "Users"); + } + } +} diff --git a/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs b/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs index f2569a5f..22ef622e 100644 --- a/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs +++ b/ProjectLighthouse/Migrations/DatabaseModelSnapshot.cs @@ -688,6 +688,9 @@ namespace ProjectLighthouse.Migrations b.Property("IsAdmin") .HasColumnType("tinyint(1)"); + b.Property("LevelVisibility") + .HasColumnType("int"); + b.Property("LocationId") .HasColumnType("int"); @@ -712,6 +715,9 @@ namespace ProjectLighthouse.Migrations b.Property("PlanetHashLBPVita") .HasColumnType("longtext"); + b.Property("ProfileVisibility") + .HasColumnType("int"); + b.Property("Username") .HasColumnType("longtext"); diff --git a/ProjectLighthouse/PlayerData/Profiles/PrivacyType.cs b/ProjectLighthouse/PlayerData/Profiles/PrivacyType.cs new file mode 100644 index 00000000..0ac9e4e8 --- /dev/null +++ b/ProjectLighthouse/PlayerData/Profiles/PrivacyType.cs @@ -0,0 +1,41 @@ +using System; +using System.Diagnostics.CodeAnalysis; + +namespace LBPUnion.ProjectLighthouse.PlayerData.Profiles; + +/// +/// Where user levels/profiles should show. +/// +[SuppressMessage("ReSharper", "UnusedMember.Global")] +public enum PrivacyType +{ + /// + /// Shows your levels/profile only to those signed in on the website or the game. + /// + PSN = 0, + /// + /// Shows your levels/profile only to those in-game. + /// + Game = 1, + /// + /// Shows your levels/profile to everyone. + /// + All = 2, +} + +public static class PrivacyTypeExtensions +{ + public static string ToSerializedString(this PrivacyType type) + => type.ToString().ToLower(); + + public static PrivacyType? FromSerializedString(string type) + { + return type switch + { + "psn" => PrivacyType.PSN, + "game" => PrivacyType.Game, + "all" => PrivacyType.All, + _ => null, + }; + } +} \ No newline at end of file diff --git a/ProjectLighthouse/PlayerData/Profiles/User.cs b/ProjectLighthouse/PlayerData/Profiles/User.cs index b9127577..6d726d13 100644 --- a/ProjectLighthouse/PlayerData/Profiles/User.cs +++ b/ProjectLighthouse/PlayerData/Profiles/User.cs @@ -153,6 +153,10 @@ public class User /// public bool IsAPirate { get; set; } + public PrivacyType LevelVisibility { get; set; } = PrivacyType.All; + + public PrivacyType ProfileVisibility { get; set; } = PrivacyType.All; + public string Serialize(GameVersion gameVersion = GameVersion.LittleBigPlanet1) { string user = LbpSerializer.TaggedStringElement("npHandle", this.Username, "icon", this.IconHash) + From 6c989e79236f9e2bd983742d188b8215815188fa Mon Sep 17 00:00:00 2001 From: Josh Date: Thu, 4 Aug 2022 14:07:52 -0500 Subject: [PATCH 42/44] Implement story mode player counts endpoint (#400) --- .../Controllers/Slots/SlotsController.cs | 25 +++++++++++++++++++ ProjectLighthouse/Levels/Slot.cs | 19 +++++++++----- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs index 54e105e4..fc421375 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs @@ -90,6 +90,31 @@ public class SlotsController : ControllerBase return this.Ok(LbpSerializer.TaggedStringElement("slots", serialized, "total", serializedSlots.Count)); } + [HttpGet("slots/developer")] + public async Task StoryPlayers() + { + User? user = await this.database.UserFromGameRequest(this.Request); + if (user == null) return this.StatusCode(403, ""); + + GameToken? token = await this.database.GameTokenFromRequest(this.Request); + if (token == null) return this.StatusCode(403, ""); + + List activeSlotIds = RoomHelper.Rooms.Where(r => r.Slot.SlotType == SlotType.Developer).Select(r => r.Slot.SlotId).ToList(); + + List serializedSlots = new(); + + foreach (int id in activeSlotIds) + { + int placeholderSlotId = await SlotHelper.GetPlaceholderSlotId(this.database, id, SlotType.Developer); + Slot slot = await this.database.Slots.FirstAsync(s => s.SlotId == placeholderSlotId); + serializedSlots.Add(slot.SerializeDevSlot(false)); + } + + string serialized = serializedSlots.Aggregate(string.Empty, (current, slot) => current + slot); + + return this.Ok(LbpSerializer.StringElement("slots", serialized)); + } + [HttpGet("s/developer/{id:int}")] public async Task SDev(int id) { diff --git a/ProjectLighthouse/Levels/Slot.cs b/ProjectLighthouse/Levels/Slot.cs index c9491858..04a31e32 100644 --- a/ProjectLighthouse/Levels/Slot.cs +++ b/ProjectLighthouse/Levels/Slot.cs @@ -242,20 +242,27 @@ public class Slot LbpSerializer.StringElement("sizeOfResources", this.Resources.Sum(FileHelper.ResourceSize)); } - public string SerializeDevSlot() + public string SerializeDevSlot(bool includeExtras = true) { - int comments = this.database.Comments.Count(c => c.Type == CommentType.Level && c.TargetId == this.SlotId); - int photos = this.database.Photos.Count(c => c.SlotId == this.SlotId); + int comments = 0, photos = 0; + if (includeExtras) + { + comments = this.database.Comments.Count(c => c.Type == CommentType.Level && c.TargetId == this.SlotId); + photos = this.database.Photos.Count(c => c.SlotId == this.SlotId); + } + int players = RoomHelper.Rooms .Where(r => r.Slot.SlotType == SlotType.Developer && r.Slot.SlotId == this.InternalSlotId) .Sum(r => r.PlayerIds.Count); string slotData = LbpSerializer.StringElement("id", this.InternalSlotId) + - LbpSerializer.StringElement("playerCount", players) + - LbpSerializer.StringElement("commentCount", comments) + - LbpSerializer.StringElement("photoCount", photos); + LbpSerializer.StringElement("playerCount", players); + + if(includeExtras) + slotData += LbpSerializer.StringElement("commentCount", comments) + + LbpSerializer.StringElement("photoCount", photos); return LbpSerializer.TaggedStringElement("slot", slotData, "type", "developer"); } From e5028c870d845e8671428eebe749324fe673f9a6 Mon Sep 17 00:00:00 2001 From: jvyden Date: Thu, 4 Aug 2022 15:41:17 -0400 Subject: [PATCH 43/44] Include hint_start in hearted slots and users --- .../Controllers/Slots/ListController.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs index d7980bee..e577b9d1 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ListController.cs @@ -117,8 +117,11 @@ public class ListController : ControllerBase return this.Ok ( - LbpSerializer.TaggedStringElement - ("favouriteSlots", response, "total", this.database.HeartedLevels.Include(q => q.User).Count(q => q.User.Username == username)) + LbpSerializer.TaggedStringElement("favouriteSlots", response, new Dictionary + { + { "total", this.database.HeartedLevels.Include(q => q.User).Count(q => q.User.Username == username) }, + { "hint_start", pageStart + Math.Min(pageSize, 30) }, + }) ); } @@ -175,8 +178,11 @@ public class ListController : ControllerBase return this.Ok ( - LbpSerializer.TaggedStringElement - ("favouriteUsers", response, "total", this.database.HeartedProfiles.Include(q => q.User).Count(q => q.User.Username == username)) + LbpSerializer.TaggedStringElement("favouriteUsers", response, new Dictionary + { + { "total", this.database.HeartedProfiles.Include(q => q.User).Count(q => q.User.Username == username) }, + { "hint_start", pageStart + Math.Min(pageSize, 30) }, + }) ); } From 39c969f3a93cfd1af142d215019f47792244d210 Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 5 Aug 2022 12:21:48 -0500 Subject: [PATCH 44/44] Include number of photos in slot serialization (#402) * Include number of photos in slot serialization * Fix compilation error Co-authored-by: Jayden --- ProjectLighthouse/Levels/Slot.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ProjectLighthouse/Levels/Slot.cs b/ProjectLighthouse/Levels/Slot.cs index 04a31e32..caf72beb 100644 --- a/ProjectLighthouse/Levels/Slot.cs +++ b/ProjectLighthouse/Levels/Slot.cs @@ -143,6 +143,16 @@ public class Slot [JsonIgnore] public int Comments => this.database.Comments.Count(c => c.Type == CommentType.Level && c.TargetId == this.SlotId); + [XmlIgnore] + [NotMapped] + [JsonIgnore] + public int Photos => this.database.Photos.Count(p => p.SlotId == this.SlotId); + + [XmlIgnore] + [NotMapped] + [JsonIgnore] + public int PhotosWithAuthor => this.database.Photos.Count(p => p.SlotId == this.SlotId && p.CreatorId == this.CreatorId); + [XmlIgnore] [NotMapped] public int Plays => this.PlaysLBP1 + this.PlaysLBP2 + this.PlaysLBP3 + this.PlaysLBPVita; @@ -303,6 +313,8 @@ public class Slot LbpSerializer.StringElement("mmpick", this.TeamPick) + LbpSerializer.StringElement("heartCount", this.Hearts) + LbpSerializer.StringElement("playCount", this.Plays) + + LbpSerializer.StringElement("photoCount", this.Photos) + + LbpSerializer.StringElement("authorPhotoCount", this.PhotosWithAuthor) + LbpSerializer.StringElement("commentCount", this.Comments) + LbpSerializer.StringElement("uniquePlayCount", this.PlaysLBP2Unique) + // ??? good naming scheme lol LbpSerializer.StringElement("completionCount", this.PlaysComplete) +