diff --git a/.github/workflows/crowdin-pull.yml b/.github/workflows/crowdin-pull.yml index 1f36bca82..99b425b37 100644 --- a/.github/workflows/crowdin-pull.yml +++ b/.github/workflows/crowdin-pull.yml @@ -1,6 +1,7 @@ on: schedule: - cron: "*/60 * * * *" + workflow_dispatch: name: Download Translations from Crowdin diff --git a/.github/workflows/qodana_code_quality.yml b/.github/workflows/qodana_code_quality.yml new file mode 100644 index 000000000..b3df742ba --- /dev/null +++ b/.github/workflows/qodana_code_quality.yml @@ -0,0 +1,33 @@ +name: Qodana +on: + workflow_dispatch: + pull_request_target: + branches: + - main + push: + branches: # Specify your branches here + - main # The 'main' branch + - 'releases/*' # The release branches + +jobs: + qodana: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + checks: write + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit + fetch-depth: 0 # a full history is required for pull request analysis + - name: 'Qodana Scan' + uses: JetBrains/qodana-action@v2024.1 + with: + pr-mode: false + env: + QODANA_TOKEN: ${{ secrets.QODANA_TOKEN_1488465344 }} + QODANA_ENDPOINT: 'https://qodana.cloud' + - uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json diff --git a/.idea/.idea.ProjectLighthouse/.idea/projectSettingsUpdater.xml b/.idea/.idea.ProjectLighthouse/.idea/projectSettingsUpdater.xml index 4bb9f4d2a..64af657f5 100644 --- a/.idea/.idea.ProjectLighthouse/.idea/projectSettingsUpdater.xml +++ b/.idea/.idea.ProjectLighthouse/.idea/projectSettingsUpdater.xml @@ -1,6 +1,7 @@ - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-en-GB.resx b/ProjectLighthouse.Localization/BaseLayout.lang-en-GB.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-en-GB.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-en-UD.resx b/ProjectLighthouse.Localization/BaseLayout.lang-en-UD.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-en-UD.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-fr-CA.resx b/ProjectLighthouse.Localization/BaseLayout.lang-fr-CA.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-fr-CA.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-gd-GB.resx b/ProjectLighthouse.Localization/BaseLayout.lang-gd-GB.resx deleted file mode 100644 index c799594c2..000000000 --- a/ProjectLighthouse.Localization/BaseLayout.lang-gd-GB.resx +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - - Home - A button on the header that takes you to the landing page. - - - - Users - A button on the header that takes you to the user listing. - - - - Photos - A button on the header that takes you to a list of user-uploaded photos. - - - - Levels - A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". - - - - Authentication - A button on the header that takes you to a list of authentication attempts. - - - - Login / Register - A button on the header that lets you log in or register. - - - Profile - A quick shortcut on the header to take you to your profile if logged in. - - - Admin Panel - A header link that takes you to the admin panel if available. - - - Log out - A shortcut to log you out of your account. - - \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-ko-KR.resx b/ProjectLighthouse.Localization/BaseLayout.lang-ko-KR.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-ko-KR.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-nn-NO.resx b/ProjectLighthouse.Localization/BaseLayout.lang-nn-NO.resx new file mode 100644 index 000000000..018d76883 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-nn-NO.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Users + A button on the header that takes you to the user listing. + + + Photos + A button on the header that takes you to a list of user-uploaded photos. + + + Levels + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Authentication + A button on the header that takes you to a list of authentication attempts. + + + Login + A button on the header that lets you log in. + + + Login / Register + A button on the header that lets you log in or register. + + + Admin + A header link that takes you to the admin panel if available. + + + Log out + A shortcut to log you out of your account. + + + Mod Panel + + + Page generated by {0}. + + + This page was generated using a modified version of Project Lighthouse. Please make sure you are properly disclosing the source code to any users who may be using this instance. + + + While we intend to have as little JavaScript as possible, we can not guarantee everything will work without it. We recommend that you whitelist JavaScript for Project Lighthouse. + + + JavaScript is not enabled + + + Potential License Violation + + + This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the {0}. + + + If you believe this is an error, please create an issue with the output of {0} ran from the root of the server source code in the description on our {1}issue tracker{2}. + + + If not, please publish the source code somewhere accessible to your users. + + + Read-Only Mode + + + This instance is currently in read-only mode. Level and photo uploads, comments, reviews, and certain profile changes will be restricted until read-only mode is disabled. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/BaseLayout.lang-pt-BR.resx b/ProjectLighthouse.Localization/BaseLayout.lang-pt-BR.resx new file mode 100644 index 000000000..23b769dc3 --- /dev/null +++ b/ProjectLighthouse.Localization/BaseLayout.lang-pt-BR.resx @@ -0,0 +1,89 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Usuários + A button on the header that takes you to the user listing. + + + Imagens + A button on the header that takes you to a list of user-uploaded photos. + + + Níveis + A button on the header that takes you to a list of user-uploaded levels. Levels are internally referred to as "slots". + + + Autenticação + A button on the header that takes you to a list of authentication attempts. + + + Entrar + A button on the header that lets you log in. + + + Entrar / Cadastrar + A button on the header that lets you log in or register. + + + Administrador + A header link that takes you to the admin panel if available. + + + Sair + A shortcut to log you out of your account. + + + Painel de Moderação + + + Página gerada por {0}. + + + Esta página foi gerada usando uma versão modificada do Projeto Lighthouse. Certifique-se de que você está divulgando corretamente o código fonte para qualquer usuário que possa estar usando esta instância. + + + Embora tenhamos a intenção de ter o mínimo de JavaScript possível, nós não podemos garantir que tudo funcionará sem ele. Recomendamos que você coloque JavaScript na lista branca para o Projeto Lighthouse. + + + O JavaScript não está habilitado + + + Potencial Violação de Licença + + + Esta instância é uma instância pública que foi modificada sem as alterações publicadas. Você pode estar violando o {0}. + + + Se você acha que isso é um erro, por favor, crie um problema com a saída {0} executada a partir da raiz do código fonte do servidor na descrição do nosso rastreador de problemas {1}{2}. + + + Caso contrário, publique o código-fonte em algum lugar acessível aos seus usuários. + + + Modo somente leitura + + + Esta instância está atualmente em modo somente leitura. Envios de fotos, comentários, análises e certas alterações de perfil serão restringidas até que o modo somente leitura seja desativado. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-en-GB.resx b/ProjectLighthouse.Localization/Error.lang-en-GB.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-en-GB.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-en-UD.resx b/ProjectLighthouse.Localization/Error.lang-en-UD.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-en-UD.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-fr-CA.resx b/ProjectLighthouse.Localization/Error.lang-fr-CA.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-fr-CA.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-ko-KR.resx b/ProjectLighthouse.Localization/Error.lang-ko-KR.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-ko-KR.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-nn-NO.resx b/ProjectLighthouse.Localization/Error.lang-nn-NO.resx new file mode 100644 index 000000000..6daa6b1af --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-nn-NO.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The username field is blank. + + + The username you've chosen is already taken. + + + Password field is required. + + + Passwords do not match! + + + You must complete the captcha correctly. + + + The email address you've chosen is already taken. + + + Email address field is required. + + + You don't have permissions to perform this action. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Error.lang-pt-BR.resx b/ProjectLighthouse.Localization/Error.lang-pt-BR.resx new file mode 100644 index 000000000..dd024c132 --- /dev/null +++ b/ProjectLighthouse.Localization/Error.lang-pt-BR.resx @@ -0,0 +1,44 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + O nome de usuário está vazio. + + + O nome de usuário que você escolheu já existe. + + + O campo de senha é obrigatório. + + + As senhas não coincidem! + + + Você deve completar o captcha corretamente. + + + O e-mail que você escolheu já está sendo usado. + + + O campo de endereço de e-mail é obrigatório. + + + Você não tem permissões para executar esta ação. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-en-GB.resx b/ProjectLighthouse.Localization/General.lang-en-GB.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-en-GB.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-en-UD.resx b/ProjectLighthouse.Localization/General.lang-en-UD.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-en-UD.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-fr-CA.resx b/ProjectLighthouse.Localization/General.lang-fr-CA.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-fr-CA.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-ko-KR.resx b/ProjectLighthouse.Localization/General.lang-ko-KR.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-ko-KR.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-nn-NO.resx b/ProjectLighthouse.Localization/General.lang-nn-NO.resx new file mode 100644 index 000000000..5650186c9 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-nn-NO.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Username + + + Password + + + Create an account + + + Forgot Password? + + + Uh oh! + + + Log In + + + Unknown + + + Success! + + + Reset Password + + + Recent Activity + + + Coming soon! + + + Most recent photos + + + Email + + + Announcements + + + Notifications + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/General.lang-pt-BR.resx b/ProjectLighthouse.Localization/General.lang-pt-BR.resx new file mode 100644 index 000000000..47b950433 --- /dev/null +++ b/ProjectLighthouse.Localization/General.lang-pt-BR.resx @@ -0,0 +1,65 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Nome de usuário + + + Senha + + + Criar uma conta + + + Esqueceu sua senha? + + + Oh, não! + + + Entrar + + + Desconhecido + + + Sucesso! + + + Redefinir Senha + + + Atividade Recente + + + Em breve! + + + Imagens mais recentes + + + Email + + + Avisos + + + Notificações + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-en-GB.resx b/ProjectLighthouse.Localization/LandingPage.lang-en-GB.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-en-GB.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-en-UD.resx b/ProjectLighthouse.Localization/LandingPage.lang-en-UD.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-en-UD.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-fr-CA.resx b/ProjectLighthouse.Localization/LandingPage.lang-fr-CA.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-fr-CA.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-ko-KR.resx b/ProjectLighthouse.Localization/LandingPage.lang-ko-KR.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-ko-KR.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-nn-NO.resx b/ProjectLighthouse.Localization/LandingPage.lang-nn-NO.resx new file mode 100644 index 000000000..1a744b49d --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-nn-NO.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Welcome to {0}! + A greeting on the main page of the website. + + + Greetings, {0}. + A greeting on the main page of the website. + + + There are no people online. Why not hop on? + A greeting on the main page of the website. + + + There is 1 person currently online: + A greeting on the main page of the website. + + + There are currently {0} people online: + A greeting on the main page of the website. + + + You have {0} authentication attempts pending. Click here to view them. + A greeting on the main page of the website. + + + Newest Levels + + + Latest Team Picks + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LandingPage.lang-pt-BR.resx b/ProjectLighthouse.Localization/LandingPage.lang-pt-BR.resx new file mode 100644 index 000000000..9fc36db7b --- /dev/null +++ b/ProjectLighthouse.Localization/LandingPage.lang-pt-BR.resx @@ -0,0 +1,54 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + Bem-vindo(a) ao {0}! + A greeting on the main page of the website. + + + Saudações, {0}. + A greeting on the main page of the website. + + + Não tem pessoas online. Por que não entrar? + A greeting on the main page of the website. + + + Tem 1 pessoa atualmente online: + A greeting on the main page of the website. + + + Atualmente tem {0} pessoas online: + A greeting on the main page of the website. + + + Você tem {0} tentativas pendentes de autenticação. Clique aqui para visualizá-las. + A greeting on the main page of the website. + + + Níveis Mais Recentes + + + Últimas Escolhas da Equipe + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-en-GB.resx b/ProjectLighthouse.Localization/LoggedOut.lang-en-GB.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-en-GB.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-en-UD.resx b/ProjectLighthouse.Localization/LoggedOut.lang-en-UD.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-en-UD.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-fr-CA.resx b/ProjectLighthouse.Localization/LoggedOut.lang-fr-CA.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-fr-CA.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-ko-KR.resx b/ProjectLighthouse.Localization/LoggedOut.lang-ko-KR.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-ko-KR.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-nn-NO.resx b/ProjectLighthouse.Localization/LoggedOut.lang-nn-NO.resx new file mode 100644 index 000000000..7a1938893 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-nn-NO.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Logged Out + + + You have been successfully logged out. You will be redirected in 5 seconds, or you may click below to do so manually. + + + Redirect + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/LoggedOut.lang-pt-BR.resx b/ProjectLighthouse.Localization/LoggedOut.lang-pt-BR.resx new file mode 100644 index 000000000..89908c612 --- /dev/null +++ b/ProjectLighthouse.Localization/LoggedOut.lang-pt-BR.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Desconectado + + + Você foi desconectado com sucesso. Você será redirecionado em 5 segundos, ou poderá clicar abaixo para fazê-lo manualmente. + + + Redirecionar + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-en-GB.resx b/ProjectLighthouse.Localization/ModPanel.lang-en-GB.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-en-GB.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-en-UD.resx b/ProjectLighthouse.Localization/ModPanel.lang-en-UD.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-en-UD.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-fr-CA.resx b/ProjectLighthouse.Localization/ModPanel.lang-fr-CA.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-fr-CA.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-ko-KR.resx b/ProjectLighthouse.Localization/ModPanel.lang-ko-KR.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-ko-KR.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-nn-NO.resx b/ProjectLighthouse.Localization/ModPanel.lang-nn-NO.resx new file mode 100644 index 000000000..0471ed475 --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-nn-NO.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Moderation Panel + + + Welcome to the moderation panel, {0}! + + + Banned Users + + + Hidden Levels + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/ModPanel.lang-pt-BR.resx b/ProjectLighthouse.Localization/ModPanel.lang-pt-BR.resx new file mode 100644 index 000000000..80c04cd0b --- /dev/null +++ b/ProjectLighthouse.Localization/ModPanel.lang-pt-BR.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Painel de Moderação + + + Bem-vindo(a) ao painel de moderação, {0}! + + + Usuários Banidos + + + Níveis Ocultos + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-en-GB.resx b/ProjectLighthouse.Localization/Moderation.lang-en-GB.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-en-GB.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-en-UD.resx b/ProjectLighthouse.Localization/Moderation.lang-en-UD.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-en-UD.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-fr-CA.resx b/ProjectLighthouse.Localization/Moderation.lang-fr-CA.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-fr-CA.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-ko-KR.resx b/ProjectLighthouse.Localization/Moderation.lang-ko-KR.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-ko-KR.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-nn-NO.resx b/ProjectLighthouse.Localization/Moderation.lang-nn-NO.resx new file mode 100644 index 000000000..89befa810 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-nn-NO.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account Suspended + + + Your {0} account has been suspended due to code of conduct violations. + + + During this suspension, the following features will be limited until {0}: + + + Reason for suspension: "{0}" + + + Attempts to circumvent this suspension will result in an extended suspension period. + + + LittleBigPlanet™ Online multiplayer + + + manually dismissed + + + Profile visibility + + + Browsing levels, photos, and profiles + + + Account and profile management + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Moderation.lang-pt-BR.resx b/ProjectLighthouse.Localization/Moderation.lang-pt-BR.resx new file mode 100644 index 000000000..8010e98c6 --- /dev/null +++ b/ProjectLighthouse.Localization/Moderation.lang-pt-BR.resx @@ -0,0 +1,50 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Conta suspensa + + + A sua conta {0} foi suspensa devido a violação do código de conduta. + + + Durante esta suspensão, os seguintes recursos serão limitados até {0}: + + + Motivo da suspensão: "{0}" + + + Tentativas de contornar esta suspensão resultarão num período de suspensão maior. + + + Multiplayer Online LittleBigPlanet™ + + + manualmente dispensados + + + Visibilidade do perfil + + + Navegando níveis, fotos e perfis + + + Gestão de conta e perfil + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-en-GB.resx b/ProjectLighthouse.Localization/Privacy.lang-en-GB.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-en-GB.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-en-UD.resx b/ProjectLighthouse.Localization/Privacy.lang-en-UD.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-en-UD.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-fr-CA.resx b/ProjectLighthouse.Localization/Privacy.lang-fr-CA.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-fr-CA.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-ko-KR.resx b/ProjectLighthouse.Localization/Privacy.lang-ko-KR.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-ko-KR.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-nn-NO.resx b/ProjectLighthouse.Localization/Privacy.lang-nn-NO.resx new file mode 100644 index 000000000..6726d1db5 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-nn-NO.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable commenting on your profile. + + + Disable commenting on your profile. + + + You have not blocked any users. + + + You have blocked {0} user(s). + + + Share your {0} with everyone! + + + Only share your {0} with users who are signed into the website or playing in-game. + + + Only share your {0} with users who are playing in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Privacy.lang-pt-BR.resx b/ProjectLighthouse.Localization/Privacy.lang-pt-BR.resx new file mode 100644 index 000000000..6ff0e0f02 --- /dev/null +++ b/ProjectLighthouse.Localization/Privacy.lang-pt-BR.resx @@ -0,0 +1,41 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Habilitar comentários no seu perfil. + + + Desativar comentários no seu perfil. + + + Você não bloqueou nenhum usuário. + + + Você bloqueou {0} usuário(s). + + + Compartilhe sua {0} com todo mundo! + + + Compartilhe apenas a sua {0} com os usuários que estão logados no site ou jogando. + + + Compartilhe a {0} apenas com usuários que estão jogando. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-en-GB.resx b/ProjectLighthouse.Localization/Profile.lang-en-GB.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-en-GB.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-en-UD.resx b/ProjectLighthouse.Localization/Profile.lang-en-UD.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-en-UD.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-fr-CA.resx b/ProjectLighthouse.Localization/Profile.lang-fr-CA.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-fr-CA.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-ko-KR.resx b/ProjectLighthouse.Localization/Profile.lang-ko-KR.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-ko-KR.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-nn-NO.resx b/ProjectLighthouse.Localization/Profile.lang-nn-NO.resx new file mode 100644 index 000000000..e175fd623 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-nn-NO.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biography + + + {0} hasn't introduced themselves yet. + + + {0}'s user page + + + Profile Tag + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Profile.lang-pt-BR.resx b/ProjectLighthouse.Localization/Profile.lang-pt-BR.resx new file mode 100644 index 000000000..167321c78 --- /dev/null +++ b/ProjectLighthouse.Localization/Profile.lang-pt-BR.resx @@ -0,0 +1,32 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Biografia + + + {0} ainda não se apresentou. + + + Página do usuário {0} + + + Tag do Perfil + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-en-GB.resx b/ProjectLighthouse.Localization/Register.lang-en-GB.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-en-GB.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-en-UD.resx b/ProjectLighthouse.Localization/Register.lang-en-UD.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-en-UD.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-fr-CA.resx b/ProjectLighthouse.Localization/Register.lang-fr-CA.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-fr-CA.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-ko-KR.resx b/ProjectLighthouse.Localization/Register.lang-ko-KR.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-ko-KR.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-nn-NO.resx b/ProjectLighthouse.Localization/Register.lang-nn-NO.resx new file mode 100644 index 000000000..abd741d26 --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-nn-NO.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Caution: Your username MUST match your PSN/RPCN username in order to be able to sign in from in-game. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Register.lang-pt-BR.resx b/ProjectLighthouse.Localization/Register.lang-pt-BR.resx new file mode 100644 index 000000000..1cc29082b --- /dev/null +++ b/ProjectLighthouse.Localization/Register.lang-pt-BR.resx @@ -0,0 +1,23 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Atenção: Seu nome de usuário PRECISA combinar com o seu nome de usuário PSN/RPCN para poder entrar no jogo. + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-en-GB.resx b/ProjectLighthouse.Localization/Status.lang-en-GB.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-en-GB.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-en-UD.resx b/ProjectLighthouse.Localization/Status.lang-en-UD.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-en-UD.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-fr-CA.resx b/ProjectLighthouse.Localization/Status.lang-fr-CA.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-fr-CA.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-ko-KR.resx b/ProjectLighthouse.Localization/Status.lang-ko-KR.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-ko-KR.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-nn-NO.resx b/ProjectLighthouse.Localization/Status.lang-nn-NO.resx new file mode 100644 index 000000000..214b28fbb --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-nn-NO.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Currently playing {0} on {1} + + + Offline + + + Offline since {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/Status.lang-pt-BR.resx b/ProjectLighthouse.Localization/Status.lang-pt-BR.resx new file mode 100644 index 000000000..489608e7a --- /dev/null +++ b/ProjectLighthouse.Localization/Status.lang-pt-BR.resx @@ -0,0 +1,29 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Atualmente jogando {0} em {1} + + + Offline + + + Offline desde {0} + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/StringLists/TwoFactorStrings.cs b/ProjectLighthouse.Localization/StringLists/TwoFactorStrings.cs index 307ad97d5..799588003 100644 --- a/ProjectLighthouse.Localization/StringLists/TwoFactorStrings.cs +++ b/ProjectLighthouse.Localization/StringLists/TwoFactorStrings.cs @@ -24,6 +24,10 @@ public static class TwoFactorStrings public static readonly TranslatableString QrTitle = create("qr_title"); public static readonly TranslatableString QrDescription = create("qr_description"); + public static readonly TranslatableString QrAlternativeDescription = create("qr_alternative"); + public static readonly TranslatableString QrAlternativeCopy = create("qr_alternative_copy"); + public static readonly TranslatableString QrAlternativeCopySuccess = create("qr_alternative_copy_success"); + public static readonly TranslatableString QrAlternativeCopyFail = create("qr_alternative_copy_success"); private static TranslatableString create(string key) => new(TranslationAreas.TwoFactor, key); } \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ar-SA.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ar-SA.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-ar-SA.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ar-SA.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-da-DK.resx b/ProjectLighthouse.Localization/TwoFactor.lang-da-DK.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-da-DK.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-da-DK.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-de-DE.resx b/ProjectLighthouse.Localization/TwoFactor.lang-de-DE.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-de-DE.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-de-DE.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-en-GB.resx b/ProjectLighthouse.Localization/TwoFactor.lang-en-GB.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-en-GB.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-en-PT.resx b/ProjectLighthouse.Localization/TwoFactor.lang-en-PT.resx index fba20be9d..6a8434f7c 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-en-PT.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-en-PT.resx @@ -65,4 +65,16 @@ Rancid backup key + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-en-UD.resx b/ProjectLighthouse.Localization/TwoFactor.lang-en-UD.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-en-UD.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-eo-UY.resx b/ProjectLighthouse.Localization/TwoFactor.lang-eo-UY.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-eo-UY.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-eo-UY.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-es-ES.resx b/ProjectLighthouse.Localization/TwoFactor.lang-es-ES.resx index 37476cf38..aaeffe1d0 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-es-ES.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-es-ES.resx @@ -65,4 +65,16 @@ Código de Respaldo Inválido + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-es-MX.resx b/ProjectLighthouse.Localization/TwoFactor.lang-es-MX.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-es-MX.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-es-MX.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-et-EE.resx b/ProjectLighthouse.Localization/TwoFactor.lang-et-EE.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-et-EE.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-et-EE.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-fi-FI.resx b/ProjectLighthouse.Localization/TwoFactor.lang-fi-FI.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-fi-FI.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-fi-FI.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-fil-PH.resx b/ProjectLighthouse.Localization/TwoFactor.lang-fil-PH.resx index 1a03f1004..47b29c73a 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-fil-PH.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-fil-PH.resx @@ -65,4 +65,16 @@ Hindi wastong Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-fr-CA.resx b/ProjectLighthouse.Localization/TwoFactor.lang-fr-CA.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-fr-CA.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-fr-FR.resx b/ProjectLighthouse.Localization/TwoFactor.lang-fr-FR.resx index d224bf5c4..0ca08a778 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-fr-FR.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-fr-FR.resx @@ -65,4 +65,16 @@ Code de secours non valide + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ga-IE.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ga-IE.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-ga-IE.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ga-IE.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-he-IL.resx b/ProjectLighthouse.Localization/TwoFactor.lang-he-IL.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-he-IL.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-he-IL.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-hi-IN.resx b/ProjectLighthouse.Localization/TwoFactor.lang-hi-IN.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-hi-IN.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-hi-IN.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-id-ID.resx b/ProjectLighthouse.Localization/TwoFactor.lang-id-ID.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-id-ID.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-id-ID.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-it-IT.resx b/ProjectLighthouse.Localization/TwoFactor.lang-it-IT.resx index 4ebcb974b..8eabfef69 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-it-IT.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-it-IT.resx @@ -65,4 +65,16 @@ Codice di backup non valido + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ja-JP.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ja-JP.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-ja-JP.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ja-JP.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ko-KR.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ko-KR.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ko-KR.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-nl-NL.resx b/ProjectLighthouse.Localization/TwoFactor.lang-nl-NL.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-nl-NL.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-nl-NL.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-nn-NO.resx b/ProjectLighthouse.Localization/TwoFactor.lang-nn-NO.resx new file mode 100644 index 000000000..78f4869f8 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-nn-NO.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Enable Two-Factor + + + Disable Two-Factor + + + Once you have added this two factor code to your app of choice, enter a valid code below to finish the setup process + + + Here is your Two-Factor QR code + + + Backup codes + + + These codes will allow you to regain access to your account if you ever lose access to your 2FA device + + + Save these codes somewhere because otherwise you may be locked out of your account + + + I've saved these codes + + + Invalid 2FA Code + + + To disable two-factor authentication, enter a correct code from your authenticator app. + + + Two-Factor Authentication + + + You are required to setup 2FA because of your role within this instance. + + + Enter a valid 2FA code to continue + + + Alternatively, you can click {0}here{1} to enter one of your backup codes + + + Download backup codes + + + Invalid Backup Code + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-no-NO.resx b/ProjectLighthouse.Localization/TwoFactor.lang-no-NO.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-no-NO.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-no-NO.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-pl-PL.resx b/ProjectLighthouse.Localization/TwoFactor.lang-pl-PL.resx index c636d6402..c81a8285b 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-pl-PL.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-pl-PL.resx @@ -65,4 +65,16 @@ Nieprawidłowy Kod Zapasowy + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-pt-BR.resx b/ProjectLighthouse.Localization/TwoFactor.lang-pt-BR.resx new file mode 100644 index 000000000..a29f8e130 --- /dev/null +++ b/ProjectLighthouse.Localization/TwoFactor.lang-pt-BR.resx @@ -0,0 +1,80 @@ + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Ativar autenticação de dois fatores + + + Desativar autenticação de dois fatores + + + Depois de adicionar este código de dois fatores em seu aplicativo favorito, insira um código válido abaixo para concluir o processo de configuração + + + Aqui está seu código QR de dois fatores + + + Códigos de backup + + + Estes códigos permitirão que você recupere o acesso à sua conta caso perca o acesso ao seu dispositivo 2FA + + + Salve estes códigos em algum lugar, caso contrário, você poderá ser bloqueado de sua conta + + + Eu salvei esses códigos + + + Código 2FA inválido + + + Para desativar a autenticação de dois fatores, insira um código correto do seu aplicativo de autenticação. + + + Autenticação de dois fatores + + + Você é obrigado a configurar a autenticação de dois fatores devido o seu papel nesta instância. + + + Digite um código de verificação em duas etapas para continuar + + + Como alternativa, você pode clicar {0}aqui{1} para inserir um dos seus códigos de backup + + + Baixar códigos de backup + + + Código de Backup Inválido + + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-pt-PT.resx b/ProjectLighthouse.Localization/TwoFactor.lang-pt-PT.resx index 5a92a0c03..f4bbf240c 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-pt-PT.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-pt-PT.resx @@ -65,4 +65,16 @@ Código de Backup Inválido + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-ru-RU.resx b/ProjectLighthouse.Localization/TwoFactor.lang-ru-RU.resx index dc37e87f6..64ffd8b17 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-ru-RU.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-ru-RU.resx @@ -65,4 +65,16 @@ Неверный Резервный Код + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-sv-SE.resx b/ProjectLighthouse.Localization/TwoFactor.lang-sv-SE.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-sv-SE.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-sv-SE.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-th-TH.resx b/ProjectLighthouse.Localization/TwoFactor.lang-th-TH.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-th-TH.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-th-TH.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-tr-TR.resx b/ProjectLighthouse.Localization/TwoFactor.lang-tr-TR.resx index 8c9e02d65..46d13b1a4 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-tr-TR.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-tr-TR.resx @@ -65,4 +65,16 @@ Geçersiz Yedek Kodu + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-uk-UA.resx b/ProjectLighthouse.Localization/TwoFactor.lang-uk-UA.resx index 3137d4f83..e9d0a7dbf 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-uk-UA.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-uk-UA.resx @@ -65,4 +65,16 @@ Недійсний резервний код + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-zh-CN.resx b/ProjectLighthouse.Localization/TwoFactor.lang-zh-CN.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-zh-CN.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-zh-CN.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.lang-zh-TW.resx b/ProjectLighthouse.Localization/TwoFactor.lang-zh-TW.resx index 139c6e6da..78f4869f8 100644 --- a/ProjectLighthouse.Localization/TwoFactor.lang-zh-TW.resx +++ b/ProjectLighthouse.Localization/TwoFactor.lang-zh-TW.resx @@ -65,4 +65,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Localization/TwoFactor.resx b/ProjectLighthouse.Localization/TwoFactor.resx index 21d78ec4e..45845e8f5 100644 --- a/ProjectLighthouse.Localization/TwoFactor.resx +++ b/ProjectLighthouse.Localization/TwoFactor.resx @@ -66,4 +66,16 @@ Invalid Backup Code + + Can't use the QR code? You can use this secret key instead: + + + Copy secret code + + + Copied to clipboard + + + Failed to copy to clipboard + \ No newline at end of file diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs index a906b170b..7e3baeb9e 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs @@ -3,12 +3,10 @@ using LBPUnion.ProjectLighthouse.Database; using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Helpers; -using LBPUnion.ProjectLighthouse.Logging; using LBPUnion.ProjectLighthouse.Types.Entities.Profile; using LBPUnion.ProjectLighthouse.Types.Entities.Token; using LBPUnion.ProjectLighthouse.Types.Filter; using LBPUnion.ProjectLighthouse.Types.Levels; -using LBPUnion.ProjectLighthouse.Types.Logging; using LBPUnion.ProjectLighthouse.Types.Serialization; using LBPUnion.ProjectLighthouse.Types.Users; using Microsoft.AspNetCore.Authorization; @@ -144,11 +142,7 @@ public async Task PostComment(string? username, string? slotType, targetId = await this.database.UserIdFromUsername(username!); } - string filteredText = CensorHelper.FilterMessage(comment.Message); - - if (ServerConfiguration.Instance.LogChatFiltering && filteredText != comment.Message) - Logger.Info($"Censored profane word(s) from in-game comment sent by {username}: \"{comment.Message}\" => \"{filteredText}\"", - LogArea.Filter); + string filteredText = CensorHelper.FilterMessage(comment.Message, FilterLocation.ChatMessage, username); bool success = await this.database.PostComment(token.UserId, targetId, type, filteredText); if (success) return this.Ok(); diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Login/LoginController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Login/LoginController.cs index 7a4834634..077f1b006 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Login/LoginController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Login/LoginController.cs @@ -1,4 +1,3 @@ -#nullable enable using System.Net; using LBPUnion.ProjectLighthouse.Configuration; using LBPUnion.ProjectLighthouse.Database; @@ -21,12 +20,10 @@ namespace LBPUnion.ProjectLighthouse.Servers.GameServer.Controllers.Login; public class LoginController : ControllerBase { private readonly DatabaseContext database; - public LoginController(DatabaseContext database) { this.database = database; } - [HttpPost] public async Task Login() { @@ -57,9 +54,9 @@ public async Task Login() string ipAddress = remoteIpAddress.ToString(); - string? username = npTicket.Username; + string username = npTicket.Username; - if (username == null) + if (string.IsNullOrEmpty(username)) { Logger.Warn("Unable to determine username, rejecting login", LogArea.Login); return this.Forbid(); @@ -77,7 +74,7 @@ public async Task Login() case Platform.PS3: case Platform.Vita: case Platform.UnitTest: - user = await this.database.Users.FirstOrDefaultAsync(u => u.LinkedPsnId == npTicket.UserId); + user = await database.Users.FirstOrDefaultAsync(u => u.LinkedPsnId == npTicket.UserId); break; case Platform.PSP: case Platform.Unknown: @@ -89,7 +86,7 @@ public async Task Login() if (user == null) { // Check if there is an account with that username already - UserEntity? targetUsername = await this.database.Users.FirstOrDefaultAsync(u => u.Username == npTicket.Username); + UserEntity? targetUsername = await database.Users.FirstOrDefaultAsync(u => u.Username == npTicket.Username); if (targetUsername != null) { ulong targetPlatform = npTicket.Platform == Platform.RPCS3 @@ -104,7 +101,7 @@ public async Task Login() } // if there is already a pending link request don't create another - bool linkAttemptExists = await this.database.PlatformLinkAttempts.AnyAsync(p => + bool linkAttemptExists = await database.PlatformLinkAttempts.AnyAsync(p => p.Platform == npTicket.Platform && p.PlatformId == npTicket.UserId && p.UserId == targetUsername.UserId); @@ -119,8 +116,8 @@ public async Task Login() Timestamp = TimeHelper.TimestampMillis, PlatformId = npTicket.UserId, }; - this.database.PlatformLinkAttempts.Add(linkAttempt); - await this.database.SaveChangesAsync(); + database.PlatformLinkAttempts.Add(linkAttempt); + await database.SaveChangesAsync(); Logger.Success($"User '{npTicket.Username}' tried to login but platform isn't linked, platform={npTicket.Platform}", LogArea.Login); return this.Forbid(); } @@ -130,12 +127,31 @@ public async Task Login() Logger.Warn($"Unknown user tried to connect username={username}", LogArea.Login); return this.Forbid(); } + + // Block RPCN signups if forbidden in config + if (npTicket.Platform == Platform.RPCS3 && !ServerConfiguration.Instance.Authentication.AllowRPCNSignup) + { + Logger.Warn( + $"New user tried to sign up via RPCN, and that is forbidden in the config, username={username}, remoteIpAddress={remoteIpAddress}", + LogArea.Login); + return this.Forbid(); + } + + // Block PSN signups if forbidden in config + if (npTicket.Platform.IsPSN() && !ServerConfiguration.Instance.Authentication.AllowPSNSignup) + { + Logger.Warn( + $"New user tried to sign up via PSN, and that is forbidden in the config, username={username}, remoteIpAddress={remoteIpAddress}", + LogArea.Login); + return this.Forbid(); + } + // create account for user if they don't exist - user = await this.database.CreateUser(username, "$"); + user = await database.CreateUser(username, "$"); user.Password = null; user.LinkedRpcnId = npTicket.Platform == Platform.RPCS3 ? npTicket.UserId : 0; user.LinkedPsnId = npTicket.Platform != Platform.RPCS3 ? npTicket.UserId : 0; - await this.database.SaveChangesAsync(); + await database.SaveChangesAsync(); if (DiscordConfiguration.Instance.DiscordIntegrationEnabled) { @@ -155,7 +171,7 @@ public async Task Login() // automatically change username if it doesn't match else if (user.Username != npTicket.Username) { - bool usernameExists = await this.database.Users.AnyAsync(u => u.Username == npTicket.Username); + bool usernameExists = await database.Users.AnyAsync(u => u.Username == npTicket.Username); if (usernameExists) { Logger.Warn($"{npTicket.Platform} user changed their name to a name that is already taken," + @@ -164,17 +180,17 @@ public async Task Login() } Logger.Info($"User's username has changed, old='{user.Username}', new='{npTicket.Username}', platform={npTicket.Platform}", LogArea.Login); user.Username = username; - await this.database.PlatformLinkAttempts.RemoveWhere(p => p.UserId == user.UserId); + await database.PlatformLinkAttempts.RemoveWhere(p => p.UserId == user.UserId); // unlink other platforms because the names no longer match if (npTicket.Platform == Platform.RPCS3) user.LinkedPsnId = 0; else user.LinkedRpcnId = 0; - await this.database.SaveChangesAsync(); + await database.SaveChangesAsync(); } - GameTokenEntity? token = await this.database.GameTokens.Include(t => t.User) + GameTokenEntity? token = await database.GameTokens.Include(t => t.User) .FirstOrDefaultAsync(t => t.User.Username == npTicket.Username && t.TicketHash == npTicket.TicketHash); if (token != null) @@ -183,7 +199,7 @@ public async Task Login() return this.Forbid(); } - token = await this.database.AuthenticateUser(user, npTicket, ipAddress); + token = await database.AuthenticateUser(user, npTicket, ipAddress); if (token == null) { Logger.Warn($"Unable to find/generate a token for username {npTicket.Username}", LogArea.Login); @@ -200,7 +216,7 @@ public async Task Login() user.LastLogin = TimeHelper.TimestampMillis; - await this.database.SaveChangesAsync(); + await database.SaveChangesAsync(); // Create a new room on LBP2/3/Vita if (token.GameVersion != GameVersion.LittleBigPlanet1) RoomHelper.CreateRoom(user.UserId, token.GameVersion, token.Platform); diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs index 26ae10acf..42b1d1b7b 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs @@ -10,6 +10,7 @@ using LBPUnion.ProjectLighthouse.Types.Entities.Notifications; using LBPUnion.ProjectLighthouse.Types.Entities.Profile; using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Filter; using LBPUnion.ProjectLighthouse.Types.Logging; using LBPUnion.ProjectLighthouse.Types.Mail; using LBPUnion.ProjectLighthouse.Types.Serialization; @@ -143,15 +144,10 @@ public async Task Filter(IMailService mailService) string username = await this.database.UsernameFromGameToken(token); - string filteredText = CensorHelper.FilterMessage(message); - if (ServerConfiguration.Instance.LogChatMessages) Logger.Info($"{username}: \"{message}\"", LogArea.Filter); - if (ServerConfiguration.Instance.LogChatFiltering && filteredText != message) - Logger.Info( - $"Censored profane word(s) from in-game text sent by {username}: \"{message}\" => \"{filteredText}\"", - LogArea.Filter); + message = CensorHelper.FilterMessage(message, FilterLocation.ChatMessage, username); - return this.Ok(filteredText); + return this.Ok(message); } } \ 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 7bedc01dc..dfb42c710 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/PublishController.cs @@ -10,6 +10,7 @@ using LBPUnion.ProjectLighthouse.Types.Entities.Profile; using LBPUnion.ProjectLighthouse.Types.Entities.Token; using LBPUnion.ProjectLighthouse.Types.Logging; +using LBPUnion.ProjectLighthouse.Types.Filter; using LBPUnion.ProjectLighthouse.Types.Resources; using LBPUnion.ProjectLighthouse.Types.Serialization; using LBPUnion.ProjectLighthouse.Types.Users; @@ -142,7 +143,7 @@ await this.database.SendNotification(user.UserId, // Yes Rider, this isn't null Debug.Assert(slot.Resources != null, "slot.ResourceList != null"); - slot.Name = CensorHelper.FilterMessage(slot.Name); + slot.Name = CensorHelper.FilterMessage(slot.Name, FilterLocation.SlotName, user.Username); if (slot.Name.Length > 64) { @@ -153,7 +154,7 @@ await this.database.SendNotification(user.UserId, return this.BadRequest(); } - slot.Description = CensorHelper.FilterMessage(slot.Description); + slot.Description = CensorHelper.FilterMessage(slot.Description, FilterLocation.SlotDescription, user.Username); if (slot.Description.Length > 512) { diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ReviewController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ReviewController.cs index 0dd54c078..3b2a7fbbf 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ReviewController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/Slots/ReviewController.cs @@ -99,7 +99,9 @@ public async Task PostReview(int slotId) GameReview? newReview = await this.DeserializeBody(); if (newReview == null) return this.BadRequest(); - newReview.Text = CensorHelper.FilterMessage(newReview.Text); + // Temporary fix until this can be refactored to use a UserEntity properly + string username = await this.database.UsernameFromGameToken(token); + newReview.Text = CensorHelper.FilterMessage(newReview.Text, FilterLocation.SlotReview, username); if (newReview.Text.Length > 512) return this.BadRequest(); diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/UserController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/UserController.cs index 7019cdd76..7301bc52c 100644 --- a/ProjectLighthouse.Servers.GameServer/Controllers/UserController.cs +++ b/ProjectLighthouse.Servers.GameServer/Controllers/UserController.cs @@ -3,6 +3,7 @@ using LBPUnion.ProjectLighthouse.Database; using LBPUnion.ProjectLighthouse.Extensions; using LBPUnion.ProjectLighthouse.Files; +using LBPUnion.ProjectLighthouse.Helpers; using LBPUnion.ProjectLighthouse.Logging; using LBPUnion.ProjectLighthouse.Servers.GameServer.Helpers; using LBPUnion.ProjectLighthouse.Servers.GameServer.Types.Users; @@ -11,6 +12,7 @@ using LBPUnion.ProjectLighthouse.Types.Entities.Token; using LBPUnion.ProjectLighthouse.Types.Levels; using LBPUnion.ProjectLighthouse.Types.Logging; +using LBPUnion.ProjectLighthouse.Types.Filter; using LBPUnion.ProjectLighthouse.Types.Serialization; using LBPUnion.ProjectLighthouse.Types.Users; using Microsoft.AspNetCore.Authorization; @@ -79,7 +81,9 @@ public async Task UpdateUser() if (update.Biography.Length > 512) return this.BadRequest(); - user.Biography = update.Biography; + string filteredBio = CensorHelper.FilterMessage(update.Biography, FilterLocation.UserBiography, user.Username); + + user.Biography = filteredBio; } if (update.Location != null) user.Location = update.Location; diff --git a/ProjectLighthouse.Servers.Website/Controllers/Moderator/ModerationRemovalController.cs b/ProjectLighthouse.Servers.Website/Controllers/Moderator/ModerationRemovalController.cs index 782b39919..ec088e13b 100644 --- a/ProjectLighthouse.Servers.Website/Controllers/Moderator/ModerationRemovalController.cs +++ b/ProjectLighthouse.Servers.Website/Controllers/Moderator/ModerationRemovalController.cs @@ -56,52 +56,58 @@ public async Task DeleteComment(int commentId, [FromQuery] string UserEntity? user = this.database.UserFromWebRequest(this.Request); if (user == null) return this.Redirect("~/login"); - CommentEntity? comment = await this.database.Comments - .Include(c => c.TargetUser) + CommentEntity? comment = await this.database.Comments.Include(c => c.TargetUser) .Include(c => c.TargetSlot) + .ThenInclude(s => s!.Creator) .FirstOrDefaultAsync(c => c.CommentId == commentId); if (comment == null) return this.Redirect("~/404"); - if (comment.Deleted) return this.Redirect(callbackUrl ?? "~/"); - bool canDelete; - switch (comment.Type) + bool canDelete = comment.Type switch { - case CommentType.Level: - int slotCreatorId = await this.database.Slots.Where(s => s.SlotId == comment.TargetSlotId) - .Select(s => s.CreatorId) - .FirstOrDefaultAsync(); - canDelete = user.UserId == comment.PosterUserId || user.UserId == slotCreatorId; - break; - case CommentType.Profile: - canDelete = user.UserId == comment.PosterUserId || user.UserId == comment.TargetUserId; - break; - default: throw new ArgumentOutOfRangeException(nameof(commentId)); - } - + CommentType.Level => user.UserId == comment.PosterUserId || user.UserId == comment.TargetSlot?.CreatorId, + CommentType.Profile => user.UserId == comment.PosterUserId || user.UserId == comment.TargetUserId, + _ => throw new ArgumentOutOfRangeException(nameof(comment.Type), + @"Comment type is not recognized (impossible)."), + }; if (!canDelete && !user.IsModerator) return this.Redirect(callbackUrl ?? "~/"); comment.Deleted = true; comment.DeletedBy = user.Username; comment.DeletedType = !canDelete && user.IsModerator ? "moderator" : "user"; - switch (comment.Type) + switch (comment.DeletedType) { - case CommentType.Profile when comment.DeletedType == "moderator" && comment.TargetUser != null: + case "moderator": { - await this.database.SendNotification(comment.PosterUserId, - $"Your comment on {comment.TargetUser.Username}'s profile has been removed by a moderator."); - + string? notificationMessage = comment.Type switch + { + CommentType.Profile when comment.TargetUser != null => + $"Your comment on {comment.TargetUser.Username}'s profile has been removed by a moderator.", + CommentType.Level when comment.TargetSlot != null => + $"Your comment on level {comment.TargetSlot.Name} has been removed by a moderator.", + _ => null, + }; + + if (notificationMessage != null) + await this.database.SendNotification(comment.PosterUserId, notificationMessage); break; } - case CommentType.Level when comment.DeletedType == "moderator" && comment.TargetSlot != null: + case "user": { - await this.database.SendNotification(comment.PosterUserId, - $"Your comment on level {comment.TargetSlot.Name} has been removed by a moderator."); - + string? notificationMessage = comment.Type switch + { + CommentType.Profile when comment.TargetUser != null && user != comment.TargetUser => + $"Your comment on {comment.TargetUser.Username}'s profile has been removed by the user.", + CommentType.Level when comment.TargetSlot != null && user != comment.TargetSlot.Creator => + $"Your comment on level {comment.TargetSlot.Name} has been removed by the user.", + _ => null, + }; + + if (notificationMessage != null) + await this.database.SendNotification(comment.PosterUserId, notificationMessage); break; } - default: throw new ArgumentOutOfRangeException(nameof(comment.Type), @"Comment type is out of range."); } await this.database.SaveChangesAsync(); diff --git a/ProjectLighthouse.Servers.Website/Controllers/SlotPageController.cs b/ProjectLighthouse.Servers.Website/Controllers/SlotPageController.cs index 7f22b0b6b..1b4381c1a 100644 --- a/ProjectLighthouse.Servers.Website/Controllers/SlotPageController.cs +++ b/ProjectLighthouse.Servers.Website/Controllers/SlotPageController.cs @@ -6,6 +6,7 @@ using LBPUnion.ProjectLighthouse.Types.Entities.Level; using LBPUnion.ProjectLighthouse.Types.Entities.Profile; using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Filter; using LBPUnion.ProjectLighthouse.Types.Logging; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -73,11 +74,7 @@ public async Task PostComment([FromRoute] int id, [FromForm] stri } string username = await this.database.UsernameFromWebToken(token); - string filteredText = CensorHelper.FilterMessage(msg); - - if (ServerConfiguration.Instance.LogChatFiltering && filteredText != msg) - Logger.Info($"Censored profane word(s) from slot comment sent by {username}: \"{msg}\" => \"{filteredText}\"", - LogArea.Filter); + string filteredText = CensorHelper.FilterMessage(msg, FilterLocation.SlotReview, username); bool success = await this.database.PostComment(token.UserId, id, CommentType.Level, filteredText); if (success) diff --git a/ProjectLighthouse.Servers.Website/Controllers/UserPageController.cs b/ProjectLighthouse.Servers.Website/Controllers/UserPageController.cs index afd23458d..9c1883529 100644 --- a/ProjectLighthouse.Servers.Website/Controllers/UserPageController.cs +++ b/ProjectLighthouse.Servers.Website/Controllers/UserPageController.cs @@ -5,6 +5,7 @@ using LBPUnion.ProjectLighthouse.Logging; using LBPUnion.ProjectLighthouse.Types.Entities.Profile; using LBPUnion.ProjectLighthouse.Types.Entities.Token; +using LBPUnion.ProjectLighthouse.Types.Filter; using LBPUnion.ProjectLighthouse.Types.Logging; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -49,11 +50,7 @@ public async Task PostComment([FromRoute] int id, [FromForm] stri } string username = await this.database.UsernameFromWebToken(token); - string filteredText = CensorHelper.FilterMessage(msg); - - if (ServerConfiguration.Instance.LogChatFiltering && filteredText != msg) - Logger.Info($"Censored profane word(s) from user comment sent by {username}: \"{msg}\" => \"{filteredText}\"", - LogArea.Filter); + string filteredText = CensorHelper.FilterMessage(msg, FilterLocation.UserComment, username); bool success = await this.database.PostComment(token.UserId, id, CommentType.Profile, filteredText); if (success) diff --git a/ProjectLighthouse.Servers.Website/Pages/Debug/FilterTestPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/Debug/FilterTestPage.cshtml.cs index fe61d7e87..e8e613ec0 100644 --- a/ProjectLighthouse.Servers.Website/Pages/Debug/FilterTestPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/Debug/FilterTestPage.cshtml.cs @@ -3,6 +3,7 @@ using LBPUnion.ProjectLighthouse.Helpers; #endif using LBPUnion.ProjectLighthouse.Database; +using LBPUnion.ProjectLighthouse.Types.Filter; using LBPUnion.ProjectLighthouse.Servers.Website.Pages.Layouts; using Microsoft.AspNetCore.Mvc; @@ -19,7 +20,7 @@ public FilterTestPage(DatabaseContext database) : base(database) public IActionResult OnGet(string? text = null) { #if DEBUG - if (text != null) this.FilteredText = CensorHelper.FilterMessage(text); + if (text != null) this.FilteredText = CensorHelper.FilterMessage(text, FilterLocation.Test); this.Text = text; return this.Page(); diff --git a/ProjectLighthouse.Servers.Website/Pages/SlotSettingsPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/SlotSettingsPage.cshtml.cs index 02ce1e615..39db9def9 100644 --- a/ProjectLighthouse.Servers.Website/Pages/SlotSettingsPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/SlotSettingsPage.cshtml.cs @@ -49,15 +49,15 @@ [FromForm] bool lbp1Only if (name != null) { - name = CensorHelper.FilterMessage(name); - if (this.Slot.Name != name && name.Length <= 64) + name = CensorHelper.FilterMessage(name, FilterLocation.SlotName, this.User.Username); + if (this.Slot.Name != name && name.Length <= 64) this.Slot.Name = name; } if (description != null) { - description = CensorHelper.FilterMessage(description); - if (this.Slot.Description != description && description?.Length <= 512) + description = CensorHelper.FilterMessage(description, FilterLocation.SlotDescription, this.User.Username); + if (this.Slot.Description != description && description.Length <= 512) this.Slot.Description = description; } diff --git a/ProjectLighthouse.Servers.Website/Pages/TwoFactor/SetupTwoFactorPage.cshtml b/ProjectLighthouse.Servers.Website/Pages/TwoFactor/SetupTwoFactorPage.cshtml index 736e258e7..6bda7213f 100644 --- a/ProjectLighthouse.Servers.Website/Pages/TwoFactor/SetupTwoFactorPage.cshtml +++ b/ProjectLighthouse.Servers.Website/Pages/TwoFactor/SetupTwoFactorPage.cshtml @@ -18,6 +18,9 @@

@Model.Translate(TwoFactorStrings.QrTitle)

2 Factor QR Code

@Model.Translate(TwoFactorStrings.QrDescription)

+

@Model.Translate(TwoFactorStrings.QrAlternativeDescription)

+ @Model.User?.TwoFactorSecret + @await Html.PartialAsync("Partials/TwoFactorPartial", new ViewDataDictionary(ViewData) { { @@ -31,6 +34,28 @@ }, }) + } else { diff --git a/ProjectLighthouse.Servers.Website/Pages/UserSettingsPage.cshtml.cs b/ProjectLighthouse.Servers.Website/Pages/UserSettingsPage.cshtml.cs index 85b0c242f..55375a425 100644 --- a/ProjectLighthouse.Servers.Website/Pages/UserSettingsPage.cshtml.cs +++ b/ProjectLighthouse.Servers.Website/Pages/UserSettingsPage.cshtml.cs @@ -7,6 +7,7 @@ using LBPUnion.ProjectLighthouse.Localization; using LBPUnion.ProjectLighthouse.Servers.Website.Pages.Layouts; using LBPUnion.ProjectLighthouse.Types.Entities.Profile; +using LBPUnion.ProjectLighthouse.Types.Filter; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -55,9 +56,12 @@ [FromForm] string? language if (ServerConfiguration.Instance.UserGeneratedContentLimits.ReadOnlyMode) return this.Redirect($"~/user/{userId}"); - biography = CensorHelper.FilterMessage(biography); if (this.ProfileUser.Biography != biography && biography.Length <= 512) - this.ProfileUser.Biography = biography; + { + string filteredBio = CensorHelper.FilterMessage(biography, FilterLocation.UserBiography, this.ProfileUser.Username); + + this.ProfileUser.Biography = filteredBio; + } } if (ServerConfiguration.Instance.Mail.MailEnabled && diff --git a/ProjectLighthouse/Configuration/ConfigurationCategories/AuthenticationConfiguration.cs b/ProjectLighthouse/Configuration/ConfigurationCategories/AuthenticationConfiguration.cs index 76989aa2d..4c3abb368 100644 --- a/ProjectLighthouse/Configuration/ConfigurationCategories/AuthenticationConfiguration.cs +++ b/ProjectLighthouse/Configuration/ConfigurationCategories/AuthenticationConfiguration.cs @@ -5,4 +5,9 @@ public class AuthenticationConfiguration public bool RegistrationEnabled { get; set; } = true; public bool AutomaticAccountCreation { get; set; } = true; public bool VerifyTickets { get; set; } = true; + + public bool AllowRPCNSignup { get; set; } = true; + + public bool AllowPSNSignup { get; set; } = true; + } \ No newline at end of file diff --git a/ProjectLighthouse/Configuration/ServerConfiguration.cs b/ProjectLighthouse/Configuration/ServerConfiguration.cs index 30c7c89be..ba9f7f4a1 100644 --- a/ProjectLighthouse/Configuration/ServerConfiguration.cs +++ b/ProjectLighthouse/Configuration/ServerConfiguration.cs @@ -11,7 +11,7 @@ public class ServerConfiguration : ConfigurationBase // This is so Lighthouse can properly identify outdated configurations and update them with newer settings accordingly. // If you are modifying anything here, this value MUST be incremented. // Thanks for listening~ - public override int ConfigVersion { get; set; } = 26; + public override int ConfigVersion { get; set; } = 27; public override string ConfigName { get; set; } = "lighthouse.yml"; public string WebsiteListenUrl { get; set; } = "http://localhost:10060"; diff --git a/ProjectLighthouse/Helpers/CensorHelper.cs b/ProjectLighthouse/Helpers/CensorHelper.cs index e5ff79539..494d3ce06 100644 --- a/ProjectLighthouse/Helpers/CensorHelper.cs +++ b/ProjectLighthouse/Helpers/CensorHelper.cs @@ -2,6 +2,9 @@ using System.Collections.Generic; using System.Text; using LBPUnion.ProjectLighthouse.Configuration; +using LBPUnion.ProjectLighthouse.Logging; +using LBPUnion.ProjectLighthouse.Types.Filter; +using LBPUnion.ProjectLighthouse.Types.Logging; namespace LBPUnion.ProjectLighthouse.Helpers; @@ -17,7 +20,7 @@ public static class CensorHelper "UwU", "OwO", "uwu", "owo", "o3o", ">.>", "*pounces on you*", "*boops*", "*baps*", ":P", "x3", "O_O", "xD", ":3", ";3", "^w^", }; - public static string FilterMessage(string message) + public static string FilterMessage(string message, FilterLocation filterLocation = FilterLocation.None, string username = null) { if (CensorConfiguration.Instance.UserInputFilterMode == FilterMode.None) return message; StringBuilder stringBuilder = new(message); @@ -44,7 +47,14 @@ public static string FilterMessage(string message) } } - return stringBuilder.ToString(); + string filteredMessage = stringBuilder.ToString(); + + if (ServerConfiguration.Instance.LogChatFiltering && filteredMessage != message) + Logger.Info( + $"Comment sent {(username != null ? $"by {username} " : "")}" + $"from {filterLocation}" + + $"\"{message}\" => \"{filteredMessage}\"", LogArea.Filter); + + return filteredMessage; } private static void Censor(int profanityIndex, int profanityLength, StringBuilder message) diff --git a/ProjectLighthouse/Types/Filter/FilterLocation.cs b/ProjectLighthouse/Types/Filter/FilterLocation.cs new file mode 100644 index 000000000..5f439872b --- /dev/null +++ b/ProjectLighthouse/Types/Filter/FilterLocation.cs @@ -0,0 +1,13 @@ +namespace LBPUnion.ProjectLighthouse.Types.Filter; + +public enum FilterLocation +{ + SlotName = 0, + SlotDescription = 1, + SlotReview = 2, + UserBiography = 3, + UserComment = 4, + ChatMessage = 5, + Test = 6, + None = 7, +} \ No newline at end of file diff --git a/ProjectLighthouse/Types/Users/Platform.cs b/ProjectLighthouse/Types/Users/Platform.cs index d30ba1592..3e5811b0e 100644 --- a/ProjectLighthouse/Types/Users/Platform.cs +++ b/ProjectLighthouse/Types/Users/Platform.cs @@ -1,5 +1,14 @@ namespace LBPUnion.ProjectLighthouse.Types.Users; +public static class PlatformExtensions +{ + + public static bool IsPSN(this Platform platform) + { + return platform == Platform.PS3 || platform == Platform.PSP || platform == Platform.Vita; + } +} + public enum Platform { PS3 = 0, diff --git a/qodana.yaml b/qodana.yaml new file mode 100644 index 000000000..63159ecac --- /dev/null +++ b/qodana.yaml @@ -0,0 +1,11 @@ +version: "1.0" +linter: jetbrains/qodana-dotnet:2024.1 +profile: + name: qodana.recommended +include: + - name: CheckDependencyLicenses +exclude: + - name: All + paths: + - ProjectLighthouse.Localization + - ProjectLighthouse/Migrations