diff --git a/.env.ci b/.env.ci index bb518259b..c23ca0d17 100644 --- a/.env.ci +++ b/.env.ci @@ -2,9 +2,10 @@ APP_ENV=testing APP_DEBUG=true APP_KEY=SomeRandomString3232RandomString APP_THEME=jexactyl -APP_TIMEZONE=UTC +APP_TIMEZONE=America/Sao_Paulo APP_URL=http://localhost/ APP_ENVIRONMENT_ONLY=true +APP_LOCALE=pt DB_CONNECTION=mysql DB_HOST=127.0.0.1 diff --git a/.env.example b/.env.example index 37447dd4f..cbd315a7d 100644 --- a/.env.example +++ b/.env.example @@ -2,9 +2,9 @@ APP_ENV=production APP_DEBUG=false APP_KEY=base64:CHANGETHISKEY-uo1lv077qKsT9oKhIPFDLNl4x0PGqk= APP_THEME=jexactyl -APP_TIMEZONE=UTC +APP_TIMEZONE=America/Sao_Paulo APP_URL=http://panel.example.com -APP_LOCALE=en +APP_LOCALE=pt APP_ENVIRONMENT_ONLY=true LOG_CHANNEL=daily @@ -37,14 +37,16 @@ MAIL_PASSWORD= MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=no-reply@example.com MAIL_FROM_NAME="Jexactyl" -# You should set this to your domain to prevent it defaulting to 'localhost', causing -# mail servers such as Gmail to reject your mail. +# Você deve definir isso para o seu domínio para evitar que ele seja padronizado para 'localhost', +# fazendo com que os servidores de e-mail, como o Gmail, rejeitem seu e-mail. +# +# Veja: https://github.com/pterodactyl/panel/pull/3110 # MAIL_EHLO_DOMAIN=panel.example.com -# Settings for PayPal integration. +# Configurações para integração PayPal. PAYPAL_CLIENT_ID= PAYPAL_CLIENT_SECRET= -# Settings for Stripe integration. +# Configurações para integração Stripe. STRIPE_CLIENT_SECRET= STRIPE_WEBHOOK_SECRET= diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index eec8e345d..8b1378917 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1 @@ -custom: ["https://donate.stripe.com/6oE02Zftd9cC34IbIS"] + diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index a724076cb..8a8512857 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -1,38 +1,38 @@ -name: Bug Report -description: Something isn't working quite right in the software. +name: Relatório de erros +description: Algo não está funcionando muito bem no software. labels: [not confirmed] body: - type: markdown attributes: value: | - Bug reports should only be used for reporting issues with how the software works. For assistance installing this software, as well as debugging issues with dependencies, please use our [Discord server](https://discord.gg/pterodactyl). + Os relatórios de erros só devem ser usados para relatar problemas com a forma como o software funciona. Para assistência na instalação deste software, bem como na depuração de problemas com dependências, favor utilizar nosso [Servidor do Discord].(https://discord.gg/68k7wDGjYc). - type: textarea attributes: - label: Current Behavior - description: Please provide a clear & concise description of the issue. + label: Comportamento atual + description: Favor fornecer uma descrição clara e concisa da questão. validations: required: true - type: textarea attributes: - label: Expected Behavior - description: Please describe what you expected to happen. + label: Comportamento esperado + description: Por favor, descreva o que você esperava que acontecesse. validations: required: true - type: textarea attributes: - label: Steps to Reproduce - description: Please be as detailed as possible when providing steps to reproduce, failure to provide steps will result in this issue being closed. + label: Passos para Reproduzir + description: Por favor, seja o mais detalhado possível ao fornecer passos para a reprodução, a falha em fornecer passos resultará no fechamento desta questão. validations: required: true - type: input id: panel-version attributes: - label: Panel Version - description: Version number of your Panel (latest is not a version) + label: Versão do painel + description: Número da versão do seu Painel (a última não é uma versão) placeholder: 3.0.0 validations: required: true @@ -40,35 +40,22 @@ body: - type: input id: wings-version attributes: - label: Wings Version - description: Version number of your Wings (latest is not a version) + label: Versão da Wings + description: Número da versão de suas Asas (a última não é uma versão) placeholder: 1.4.2 validations: required: true - -- type: input - id: egg-details - attributes: - label: Games and/or Eggs Affected - description: Please include the specific game(s) or egg(s) you are running into this bug with. - placeholder: Minecraft (Paper), Minecraft (Forge) - -- type: input - id: docker-image - attributes: - label: Docker Image - description: The specific Docker image you are using for the game(s) above. - placeholder: ghcr.io/pterodactyl/yolks:java_17 + - type: textarea id: panel-logs attributes: - label: Error Logs + label: Logs de erros description: | - Run the following command to collect logs on your system. + Execute o seguinte comando para coletar logs em seu sistema. Wings: `sudo wings diagnostics` - Panel: `tail -n 100 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log | nc bin.ptdl.co 99` + Panel: `tail -n 100 /var/www/jexactyl/storage/logs/laravel-$(date +%F).log | nc bin.ptdl.co 99` placeholder: "https://bin.ptdl.co/a1h6z" render: bash validations: @@ -76,12 +63,10 @@ body: - type: checkboxes attributes: - label: Is there an existing issue for this? - description: Please [search here](https://github.com/pterodactyl/panel/issues) to see if an issue already exists for your problem. + label: Existe algum problema para isso? + description: Por favor [pesquisar aqui](https://github.com/Jexactyl-Brasil/Jexactyl-Brasil/issues) para ver se já existe um problema para o seu problema. options: - - label: I have searched the existing issues before opening this issue. - required: true - - label: I have provided all relevant details, including the specific game and Docker images I am using if this issue is related to running a server. + - label: Pesquisei as questões existentes antes de abrir este assunto. required: true - - label: I have checked in the Discord server and believe this is a bug with the software, and not a configuration issue with my specific system. + - label: Eu verifiquei no servidor Discord e acredito que este é um bug com o software, e não um problema de configuração com meu sistema específico. required: true diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml index 4bae71eef..d0c92b52d 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.yml +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -1,25 +1,25 @@ -name: Feature Request -description: Suggest a new feature or improvement for the software. +name: Solicitação de recursos +description: Sugerir um novo recurso ou melhoria para o software. labels: [feature request] body: - type: checkboxes attributes: - label: Is there an existing feature request for this? - description: Please [search here](https://github.com/jexactyl/jexactyl/issues?q=is%3Aissue) to see if someone else has already suggested this. + label: Existe alguma solicitação de recursos para isso? + description: Por favor [pesquise aqui](https://github.com/Jexactyl-Brasil/Jexactyl-Brasil/issues?q=is%3Aissue) para ver se outra pessoa já sugeriu isto. options: - - label: I have searched the existing issues before opening this feature request. + - label: Pesquisei as questões existentes antes de abrir este pedido de recurso. required: true - type: textarea attributes: - label: Describe the feature you would like to see. - description: "A clear & concise description of the feature you'd like to have added, and what issues it would solve." + label: Descreva a característica que você gostaria de ver. + description: "Uma descrição clara e concisa da característica que você gostaria de ter acrescentado, e quais os problemas que isso resolveria." validations: required: true - type: textarea attributes: - label: Additional context to this request. - description: "Add any other context or screenshots about the feature request." + label: Conteúdo adicional a esta solicitação. + description: "Adicione qualquer outro conteúdo ou screenshots sobre o pedido de recursos." validations: required: false diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..c59038a86 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "composer" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" diff --git a/.github/imagens/console.png b/.github/imagens/console.png new file mode 100644 index 000000000..d6aeeaaf2 Binary files /dev/null and b/.github/imagens/console.png differ diff --git a/.github/imagens/plugin.png b/.github/imagens/plugin.png new file mode 100644 index 000000000..ff8575cb3 Binary files /dev/null and b/.github/imagens/plugin.png differ diff --git a/.github/imagens/temaazul.png b/.github/imagens/temaazul.png new file mode 100644 index 000000000..dfb9b912b Binary files /dev/null and b/.github/imagens/temaazul.png differ diff --git a/.github/imagens/temaclaro.png b/.github/imagens/temaclaro.png new file mode 100644 index 000000000..92f01704f Binary files /dev/null and b/.github/imagens/temaclaro.png differ diff --git a/.github/imagens/temaescuro.png b/.github/imagens/temaescuro.png new file mode 100644 index 000000000..3be0344d3 Binary files /dev/null and b/.github/imagens/temaescuro.png differ diff --git a/.github/imagens/temaminecraft.png b/.github/imagens/temaminecraft.png new file mode 100644 index 000000000..8bc94ca67 Binary files /dev/null and b/.github/imagens/temaminecraft.png differ diff --git a/.github/imagens/temapadrao.png b/.github/imagens/temapadrao.png new file mode 100644 index 000000000..00ba8745d Binary files /dev/null and b/.github/imagens/temapadrao.png differ diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 000000000..eb8196d7e --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,76 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ "develop" ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ "develop" ] + schedule: + - cron: '30 18 * * 1' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'javascript' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Use only 'java' to analyze code written in Java, Kotlin or both + # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{matrix.language}}" diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml deleted file mode 100644 index 47ceef219..000000000 --- a/.github/workflows/docker.yaml +++ /dev/null @@ -1,67 +0,0 @@ -name: Docker - -on: - push: - branches: - - develop - - 1.0-develop - pull_request: - branches: - - develop - - 1.0-develop - release: - types: - - published - -jobs: - push: - name: Push - runs-on: ubuntu-20.04 - if: "!contains(github.ref, 'develop') || (!contains(github.event.head_commit.message, 'skip docker') && !contains(github.event.head_commit.message, 'docker skip'))" - steps: - - name: Code checkout - uses: actions/checkout@v3 - - - name: Docker metadata - id: docker_meta - uses: docker/metadata-action@v4 - with: - images: ghcr.io/jexactyl/jexactyl - flavor: | - latest=false - tags: | - type=raw,value=latest,enable=${{ github.event_name == 'release' && github.event.action == 'published' && github.event.release.prerelease == false }} - type=ref,event=tag - type=ref,event=branch - - - name: Setup QEMU - uses: docker/setup-qemu-action@v2 - - - name: Setup Docker buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.REGISTRY_TOKEN }} - - - name: Update version - if: "github.event_name == 'release' && github.event.action == 'published'" - env: - REF: ${{ github.event.release.tag_name }} - run: | - sed -i "s/ 'version' => 'canary',/ 'version' => '${REF:1}',/" config/app.php - - - name: Build and Push - uses: docker/build-push-action@v3 - with: - context: . - file: ./Dockerfile - push: ${{ github.event_name != 'pull_request' }} - platforms: linux/amd64,linux/arm64 - labels: ${{ steps.docker_meta.outputs.labels }} - tags: ${{ steps.docker_meta.outputs.tags }} - cache-from: type=gha - cache-to: type=gha,mode=max diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 2785c5a2a..e0e8eaa95 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -55,4 +55,4 @@ jobs: run: yarn install --frozen-lockfile - name: Run Eslint - run: yarn lint + run: yarn lint --fix diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1d04e6cb4..0ebb7c3a0 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -22,6 +22,9 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile + - name: Lint Fix + run: yarn lint --fix + - name: Build run: yarn build:production diff --git a/README.md b/README.md index 9bbd3c899..9a2a80a7f 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,56 @@ -[](https://jexactyl.com) +[](https://jexactylbrasil.ml) [](https://discord.com/invite/qttGR4Z5Pk)   - - + +
:ip
.',
- ],
-];
diff --git a/resources/lang/en/admin/server.php b/resources/lang/en/admin/server.php
deleted file mode 100644
index 29cb72d18..000000000
--- a/resources/lang/en/admin/server.php
+++ /dev/null
@@ -1,27 +0,0 @@
- [
- 'no_new_default_allocation' => 'You are attempting to delete the default allocation for this server but there is no fallback allocation to use.',
- 'marked_as_failed' => 'This server was marked as having failed a previous installation. Current status cannot be toggled in this state.',
- 'bad_variable' => 'There was a validation error with the :name variable.',
- 'daemon_exception' => 'There was an exception while attempting to communicate with the daemon resulting in a HTTP/:code response code. This exception has been logged. (request id: :request_id)',
- 'default_allocation_not_found' => 'The requested default allocation was not found in this server\'s allocations.',
- ],
- 'alerts' => [
- 'startup_changed' => 'The startup configuration for this server has been updated. If this server\'s nest or egg was changed a reinstall will be occurring now.',
- 'server_deleted' => 'Server has successfully been deleted from the system.',
- 'server_created' => 'Server was successfully created on the panel. Please allow the daemon a few minutes to completely install this server.',
- 'build_updated' => 'The build details for this server have been updated. Some changes may require a restart to take effect.',
- 'suspension_toggled' => 'Server suspension status has been changed to :status.',
- 'rebuild_on_boot' => 'This server has been marked as requiring a Docker Container rebuild. This will happen the next time the server is started.',
- 'install_toggled' => 'The installation status for this server has been toggled.',
- 'server_reinstalled' => 'This server has been queued for a reinstallation beginning now.',
- 'details_updated' => 'Server details have been successfully updated.',
- 'docker_image_updated' => 'Successfully changed the default Docker image to use for this server. A reboot is required to apply this change.',
- 'node_required' => 'You must have at least one node configured before you can add a server to this panel.',
- 'transfer_nodes_required' => 'You must have at least two nodes configured before you can transfer servers.',
- 'transfer_started' => 'Server transfer has been started.',
- 'transfer_not_viable' => 'The node you selected does not have the required disk space or memory available to accommodate this server.',
- ],
-];
diff --git a/resources/lang/en/admin/user.php b/resources/lang/en/admin/user.php
deleted file mode 100644
index 65e227806..000000000
--- a/resources/lang/en/admin/user.php
+++ /dev/null
@@ -1,11 +0,0 @@
- [
- 'user_has_servers' => 'Cannot delete a user with active servers attached to their account. Please delete their servers before continuing.',
- ],
- 'notices' => [
- 'account_created' => 'Account has been created successfully.',
- 'account_updated' => 'Account has been successfully updated.',
- ],
-];
diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php
deleted file mode 100644
index 2a3a45268..000000000
--- a/resources/lang/en/auth.php
+++ /dev/null
@@ -1,27 +0,0 @@
- 'Sign In',
- 'go_to_login' => 'Go to Login',
- 'failed' => 'No account matching those credentials could be found.',
-
- 'forgot_password' => [
- 'label' => 'Forgot Password?',
- 'label_help' => 'Enter your account email address to receive instructions on resetting your password.',
- 'button' => 'Recover Account',
- ],
-
- 'reset_password' => [
- 'button' => 'Reset and Sign In',
- ],
-
- 'two_factor' => [
- 'label' => '2-Factor Token',
- 'label_help' => 'This account requires a second layer of authentication in order to continue. Please enter the code generated by your device to complete this login.',
- 'checkpoint_failed' => 'The two-factor authentication token was invalid.',
- ],
-
- 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
- 'password_requirements' => 'Password must be at least 8 characters in length and should be unique to this site.',
- '2fa_must_be_enabled' => 'The administrator has required that 2-Factor Authentication be enabled for your account in order to use the Panel.',
-];
diff --git a/resources/lang/en/command/messages.php b/resources/lang/en/command/messages.php
deleted file mode 100644
index a4a3aafdf..000000000
--- a/resources/lang/en/command/messages.php
+++ /dev/null
@@ -1,66 +0,0 @@
- [
- 'no_location_found' => 'Could not locate a record matching the provided short code.',
- 'ask_short' => 'Location Short Code',
- 'ask_long' => 'Location Description',
- 'created' => 'Successfully created a new location (:name) with an ID of :id.',
- 'deleted' => 'Successfully deleted the requested location.',
- ],
- 'user' => [
- 'search_users' => 'Enter a Username, User ID, or Email Address',
- 'select_search_user' => 'ID of user to delete (Enter \'0\' to re-search)',
- 'deleted' => 'User successfully deleted from the Panel.',
- 'confirm_delete' => 'Are you sure you want to delete this user from the Panel?',
- 'no_users_found' => 'No users were found for the search term provided.',
- 'multiple_found' => 'Multiple accounts were found for the user provided, unable to delete a user because of the --no-interaction flag.',
- 'ask_admin' => 'Is this user an administrator?',
- 'ask_email' => 'Email Address',
- 'ask_username' => 'Username',
- 'ask_name_first' => 'First Name',
- 'ask_name_last' => 'Last Name',
- 'ask_password' => 'Password',
- 'ask_password_tip' => 'If you would like to create an account with a random password emailed to the user, re-run this command (CTRL+C) and pass the `--no-password` flag.',
- 'ask_password_help' => 'Passwords must be at least 8 characters in length and contain at least one capital letter and number.',
- '2fa_help_text' => [
- 'This command will disable 2-factor authentication for a user\'s account if it is enabled. This should only be used as an account recovery command if the user is locked out of their account.',
- 'If this is not what you wanted to do, press CTRL+C to exit this process.',
- ],
- '2fa_disabled' => '2-Factor authentication has been disabled for :email.',
- ],
- 'schedule' => [
- 'output_line' => 'Dispatching job for first task in `:schedule` (:hash).',
- ],
- 'maintenance' => [
- 'deleting_service_backup' => 'Deleting service backup file :file.',
- ],
- 'server' => [
- 'rebuild_failed' => 'Rebuild request for ":name" (#:id) on node ":node" failed with error: :message',
- 'reinstall' => [
- 'failed' => 'Reinstall request for ":name" (#:id) on node ":node" failed with error: :message',
- 'confirm' => 'You are about to reinstall against a group of servers. Do you wish to continue?',
- ],
- 'power' => [
- 'confirm' => 'You are about to perform a :action against :count servers. Do you wish to continue?',
- 'action_failed' => 'Power action request for ":name" (#:id) on node ":node" failed with error: :message',
- ],
- ],
- 'environment' => [
- 'mail' => [
- 'ask_smtp_host' => 'SMTP Host (e.g. smtp.gmail.com)',
- 'ask_smtp_port' => 'SMTP Port',
- 'ask_smtp_username' => 'SMTP Username',
- 'ask_smtp_password' => 'SMTP Password',
- 'ask_mailgun_domain' => 'Mailgun Domain',
- 'ask_mailgun_endpoint' => 'Mailgun Endpoint',
- 'ask_mailgun_secret' => 'Mailgun Secret',
- 'ask_mandrill_secret' => 'Mandrill Secret',
- 'ask_postmark_username' => 'Postmark API Key',
- 'ask_driver' => 'Which driver should be used for sending emails?',
- 'ask_mail_from' => 'Email address emails should originate from',
- 'ask_mail_name' => 'Name that emails should appear from',
- 'ask_encryption' => 'Encryption method to use',
- ],
- ],
-];
diff --git a/resources/lang/en/dashboard/account.php b/resources/lang/en/dashboard/account.php
deleted file mode 100644
index 85411ef65..000000000
--- a/resources/lang/en/dashboard/account.php
+++ /dev/null
@@ -1,28 +0,0 @@
- [
- 'title' => 'Update your email',
- 'updated' => 'Your email address has been updated.',
- ],
- 'password' => [
- 'title' => 'Change your password',
- 'requirements' => 'Your new password should be at least 8 characters in length.',
- 'updated' => 'Your password has been updated.',
- ],
- 'two_factor' => [
- 'button' => 'Configure 2-Factor Authentication',
- 'disabled' => 'Two-factor authentication has been disabled on your account. You will no longer be prompted to provide a token when logging in.',
- 'enabled' => 'Two-factor authentication has been enabled on your account! From now on, when logging in, you will be required to provide the code generated by your device.',
- 'invalid' => 'The token provided was invalid.',
- 'setup' => [
- 'title' => 'Setup two-factor authentication',
- 'help' => 'Can\'t scan the code? Enter the code below into your application:',
- 'field' => 'Enter token',
- ],
- 'disable' => [
- 'title' => 'Disable two-factor authentication',
- 'field' => 'Enter token',
- ],
- ],
-];
diff --git a/resources/lang/en/dashboard/index.php b/resources/lang/en/dashboard/index.php
deleted file mode 100644
index 8ab11e994..000000000
--- a/resources/lang/en/dashboard/index.php
+++ /dev/null
@@ -1,8 +0,0 @@
- 'Search for servers...',
- 'no_matches' => 'There were no servers found matching the search criteria provided.',
- 'cpu_title' => 'CPU',
- 'memory_title' => 'Memory',
-];
diff --git a/resources/lang/en/exceptions.php b/resources/lang/en/exceptions.php
deleted file mode 100644
index 4d44c4ff9..000000000
--- a/resources/lang/en/exceptions.php
+++ /dev/null
@@ -1,59 +0,0 @@
- 'There was an exception while attempting to communicate with the daemon resulting in a HTTP/:code response code. This exception has been logged.',
- 'node' => [
- 'servers_attached' => 'A node must have no servers linked to it in order to be deleted.',
- 'daemon_off_config_updated' => 'The daemon configuration has been updated, however there was an error encountered while attempting to automatically update the configuration file on the Daemon. You will need to manually update the configuration file (config.yml) for the daemon to apply these changes.',
- ],
- 'allocations' => [
- 'server_using' => 'A server is currently assigned to this allocation. An allocation can only be deleted if no server is currently assigned.',
- 'too_many_ports' => 'Adding more than 1000 ports in a single range at once is not supported.',
- 'invalid_mapping' => 'The mapping provided for :port was invalid and could not be processed.',
- 'cidr_out_of_range' => 'CIDR notation only allows masks between /25 and /32.',
- 'port_out_of_range' => 'Ports in an allocation must be greater than 1024 and less than or equal to 65535.',
- ],
- 'nest' => [
- 'delete_has_servers' => 'A Nest with active servers attached to it cannot be deleted from the Panel.',
- 'egg' => [
- 'delete_has_servers' => 'An Egg with active servers attached to it cannot be deleted from the Panel.',
- 'invalid_copy_id' => 'The Egg selected for copying a script from either does not exist, or is copying a script itself.',
- 'must_be_child' => 'The "Copy Settings From" directive for this Egg must be a child option for the selected Nest.',
- 'has_children' => 'This Egg is a parent to one or more other Eggs. Please delete those Eggs before deleting this Egg.',
- ],
- 'variables' => [
- 'env_not_unique' => 'The environment variable :name must be unique to this Egg.',
- 'reserved_name' => 'The environment variable :name is protected and cannot be assigned to a variable.',
- 'bad_validation_rule' => 'The validation rule ":rule" is not a valid rule for this application.',
- ],
- 'importer' => [
- 'json_error' => 'There was an error while attempting to parse the JSON file: :error.',
- 'file_error' => 'The JSON file provided was not valid.',
- 'invalid_json_provided' => 'The JSON file provided is not in a format that can be recognized.',
- ],
- ],
- 'subusers' => [
- 'editing_self' => 'Editing your own subuser account is not permitted.',
- 'user_is_owner' => 'You cannot add the server owner as a subuser for this server.',
- 'subuser_exists' => 'A user with that email address is already assigned as a subuser for this server.',
- ],
- 'databases' => [
- 'delete_has_databases' => 'Cannot delete a database host server that has active databases linked to it.',
- ],
- 'tasks' => [
- 'chain_interval_too_long' => 'The maximum interval time for a chained task is 15 minutes.',
- ],
- 'locations' => [
- 'has_nodes' => 'Cannot delete a location that has active nodes attached to it.',
- ],
- 'users' => [
- 'node_revocation_failed' => 'Failed to revoke keys on Node #:node. :error',
- ],
- 'deployment' => [
- 'no_viable_nodes' => 'No nodes satisfying the requirements specified for automatic deployment could be found.',
- 'no_viable_allocations' => 'No allocations satisfying the requirements for automatic deployment were found.',
- ],
- 'api' => [
- 'resource_not_found' => 'The requested resource does not exist on this server.',
- ],
-];
diff --git a/resources/lang/en/server/users.php b/resources/lang/en/server/users.php
deleted file mode 100644
index ce77c4101..000000000
--- a/resources/lang/en/server/users.php
+++ /dev/null
@@ -1,33 +0,0 @@
- [
- 'websocket_*' => 'Allows access to the websocket for this server.',
- 'control_console' => 'Allows the user to send data to the server console.',
- 'control_start' => 'Allows the user to start the server instance.',
- 'control_stop' => 'Allows the user to stop the server instance.',
- 'control_restart' => 'Allows the user to restart the server instance.',
- 'control_kill' => 'Allows the user to kill the server instance.',
- 'user_create' => 'Allows the user to create new user accounts for the server.',
- 'user_read' => 'Allows the user permission to view users associated with this server.',
- 'user_update' => 'Allows the user to modify other users associated with this server.',
- 'user_delete' => 'Allows the user to delete other users associated with this server.',
- 'file_create' => 'Allows the user permission to create new files and directories.',
- 'file_read' => 'Allows the user to see files and folders associated with this server instance, as well as view their contents.',
- 'file_update' => 'Allows the user to update files and folders associated with the server.',
- 'file_delete' => 'Allows the user to delete files and directories.',
- 'file_archive' => 'Allows the user to create file archives and decompress existing archives.',
- 'file_sftp' => 'Allows the user to perform the above file actions using a SFTP client.',
- 'allocation_read' => 'Allows access to the server allocation management pages.',
- 'allocation_update' => 'Allows user permission to make modifications to the server\'s allocations.',
- 'database_create' => 'Allows user permission to create a new database for the server.',
- 'database_read' => 'Allows user permission to view the server databases.',
- 'database_update' => 'Allows a user permission to make modifications to a database. If the user does not have the "View Password" permission as well they will not be able to modify the password.',
- 'database_delete' => 'Allows a user permission to delete a database instance.',
- 'database_view_password' => 'Allows a user permission to view a database password in the system.',
- 'schedule_create' => 'Allows a user to create a new schedule for the server.',
- 'schedule_read' => 'Allows a user permission to view schedules for a server.',
- 'schedule_update' => 'Allows a user permission to make modifications to an existing server schedule.',
- 'schedule_delete' => 'Allows a user to delete a schedule for the server.',
- ],
-];
diff --git a/resources/lang/en/strings.php b/resources/lang/en/strings.php
deleted file mode 100644
index 0a69329b7..000000000
--- a/resources/lang/en/strings.php
+++ /dev/null
@@ -1,95 +0,0 @@
- 'Email',
- 'email_address' => 'Email address',
- 'user_identifier' => 'Username or Email',
- 'password' => 'Password',
- 'new_password' => 'New password',
- 'confirm_password' => 'Confirm new password',
- 'login' => 'Login',
- 'home' => 'Home',
- 'servers' => 'Servers',
- 'id' => 'ID',
- 'name' => 'Name',
- 'node' => 'Node',
- 'connection' => 'Connection',
- 'memory' => 'Memory',
- 'cpu' => 'CPU',
- 'disk' => 'Disk',
- 'status' => 'Status',
- 'search' => 'Search',
- 'suspended' => 'Suspended',
- 'account' => 'Account',
- 'security' => 'Security',
- 'ip' => 'IP Address',
- 'last_activity' => 'Last Activity',
- 'revoke' => 'Revoke',
- '2fa_token' => 'Authentication Token',
- 'submit' => 'Submit',
- 'close' => 'Close',
- 'settings' => 'Settings',
- 'configuration' => 'Configuration',
- 'sftp' => 'SFTP',
- 'databases' => 'Databases',
- 'memo' => 'Memo',
- 'created' => 'Created',
- 'expires' => 'Expires',
- 'public_key' => 'Token',
- 'api_access' => 'Api Access',
- 'never' => 'never',
- 'sign_out' => 'Sign out',
- 'admin_control' => 'Admin Control',
- 'required' => 'Required',
- 'port' => 'Port',
- 'username' => 'Username',
- 'database' => 'Database',
- 'new' => 'New',
- 'danger' => 'Danger',
- 'create' => 'Create',
- 'select_all' => 'Select All',
- 'select_none' => 'Select None',
- 'alias' => 'Alias',
- 'primary' => 'Primary',
- 'make_primary' => 'Make Primary',
- 'none' => 'None',
- 'cancel' => 'Cancel',
- 'created_at' => 'Created At',
- 'action' => 'Action',
- 'data' => 'Data',
- 'queued' => 'Queued',
- 'last_run' => 'Last Run',
- 'next_run' => 'Next Run',
- 'not_run_yet' => 'Not Run Yet',
- 'yes' => 'Yes',
- 'no' => 'No',
- 'delete' => 'Delete',
- '2fa' => '2FA',
- 'logout' => 'Logout',
- 'admin_cp' => 'Admin Control Panel',
- 'optional' => 'Optional',
- 'read_only' => 'Read Only',
- 'relation' => 'Relation',
- 'owner' => 'Owner',
- 'admin' => 'Admin',
- 'subuser' => 'Subuser',
- 'captcha_invalid' => 'The provided captcha is invalid.',
- 'tasks' => 'Tasks',
- 'seconds' => 'Seconds',
- 'minutes' => 'Minutes',
- 'under_maintenance' => 'Under Maintenance',
- 'days' => [
- 'sun' => 'Sunday',
- 'mon' => 'Monday',
- 'tues' => 'Tuesday',
- 'wed' => 'Wednesday',
- 'thurs' => 'Thursday',
- 'fri' => 'Friday',
- 'sat' => 'Saturday',
- ],
- 'last_used' => 'Last Used',
- 'enable' => 'Enable',
- 'disable' => 'Disable',
- 'save' => 'Save',
- 'copyright' => '© 2015 - :year Jexactyl Software',
-];
diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php
deleted file mode 100644
index 834e0263a..000000000
--- a/resources/lang/en/validation.php
+++ /dev/null
@@ -1,106 +0,0 @@
- 'The :attribute must be accepted.',
- 'active_url' => 'The :attribute is not a valid URL.',
- 'after' => 'The :attribute must be a date after :date.',
- 'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
- 'alpha' => 'The :attribute may only contain letters.',
- 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
- 'alpha_num' => 'The :attribute may only contain letters and numbers.',
- 'array' => 'The :attribute must be an array.',
- 'before' => 'The :attribute must be a date before :date.',
- 'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
- 'between' => [
- 'numeric' => 'The :attribute must be between :min and :max.',
- 'file' => 'The :attribute must be between :min and :max kilobytes.',
- 'string' => 'The :attribute must be between :min and :max characters.',
- 'array' => 'The :attribute must have between :min and :max items.',
- ],
- 'boolean' => 'The :attribute field must be true or false.',
- 'confirmed' => 'The :attribute confirmation does not match.',
- 'date' => 'The :attribute is not a valid date.',
- 'date_format' => 'The :attribute does not match the format :format.',
- 'different' => 'The :attribute and :other must be different.',
- 'digits' => 'The :attribute must be :digits digits.',
- 'digits_between' => 'The :attribute must be between :min and :max digits.',
- 'dimensions' => 'The :attribute has invalid image dimensions.',
- 'distinct' => 'The :attribute field has a duplicate value.',
- 'email' => 'The :attribute must be a valid email address.',
- 'exists' => 'The selected :attribute is invalid.',
- 'file' => 'The :attribute must be a file.',
- 'filled' => 'The :attribute field is required.',
- 'image' => 'The :attribute must be an image.',
- 'in' => 'The selected :attribute is invalid.',
- 'in_array' => 'The :attribute field does not exist in :other.',
- 'integer' => 'The :attribute must be an integer.',
- 'ip' => 'The :attribute must be a valid IP address.',
- 'json' => 'The :attribute must be a valid JSON string.',
- 'max' => [
- 'numeric' => 'The :attribute may not be greater than :max.',
- 'file' => 'The :attribute may not be greater than :max kilobytes.',
- 'string' => 'The :attribute may not be greater than :max characters.',
- 'array' => 'The :attribute may not have more than :max items.',
- ],
- 'mimes' => 'The :attribute must be a file of type: :values.',
- 'mimetypes' => 'The :attribute must be a file of type: :values.',
- 'min' => [
- 'numeric' => 'The :attribute must be at least :min.',
- 'file' => 'The :attribute must be at least :min kilobytes.',
- 'string' => 'The :attribute must be at least :min characters.',
- 'array' => 'The :attribute must have at least :min items.',
- ],
- 'not_in' => 'The selected :attribute is invalid.',
- 'numeric' => 'The :attribute must be a number.',
- 'present' => 'The :attribute field must be present.',
- 'regex' => 'The :attribute format is invalid.',
- 'required' => 'The :attribute field is required.',
- 'required_if' => 'The :attribute field is required when :other is :value.',
- 'required_unless' => 'The :attribute field is required unless :other is in :values.',
- 'required_with' => 'The :attribute field is required when :values is present.',
- 'required_with_all' => 'The :attribute field is required when :values is present.',
- 'required_without' => 'The :attribute field is required when :values is not present.',
- 'required_without_all' => 'The :attribute field is required when none of :values are present.',
- 'same' => 'The :attribute and :other must match.',
- 'size' => [
- 'numeric' => 'The :attribute must be :size.',
- 'file' => 'The :attribute must be :size kilobytes.',
- 'string' => 'The :attribute must be :size characters.',
- 'array' => 'The :attribute must contain :size items.',
- ],
- 'string' => 'The :attribute must be a string.',
- 'timezone' => 'The :attribute must be a valid zone.',
- 'unique' => 'The :attribute has already been taken.',
- 'uploaded' => 'The :attribute failed to upload.',
- 'url' => 'The :attribute format is invalid.',
-
- /*
- |--------------------------------------------------------------------------
- | Custom Validation Attributes
- |--------------------------------------------------------------------------
- |
- | The following language lines are used to swap attribute place-holders
- | with something more reader friendly such as E-Mail Address instead
- | of "email". This simply helps us make messages a little cleaner.
- |
- */
-
- 'attributes' => [],
-
- // Internal validation logic for Jexactyl
- 'internal' => [
- 'variable_value' => ':env variable',
- 'invalid_password' => 'The password provided was invalid for this account.',
- ],
-];
diff --git a/resources/lang/pt/activity.php b/resources/lang/pt/activity.php
new file mode 100644
index 000000000..9b017987d
--- /dev/null
+++ b/resources/lang/pt/activity.php
@@ -0,0 +1,129 @@
+ [
+ 'fail' => 'falhou ao carregar',
+ 'success' => 'Logado a:',
+ 'password-reset' => 'Redefinição de senha',
+ 'reset-password' => 'Redefinição de senha solicitada',
+ 'checkpoint' => 'Autenticação de dois fatores solicitada',
+ 'recovery-token' => 'Token de recuperação de dois fatores usado',
+ 'token' => 'Desafio de dois fatores resolvido',
+ 'ip-blocked' => 'Solicitação bloqueada de endereço IP não listado para :identifier',
+ 'sftp' => [
+ 'fail' => 'Login sftp com falha',
+ ],
+ ],
+ 'user' => [
+ 'account' => [
+ 'email-changed' => 'E-mail alterado de :old para :new',
+ 'password-changed' => 'senha alterada',
+ ],
+ 'api-key' => [
+ 'create' => 'Criada nova API key :identifier',
+ 'delete' => 'Deletada a API key :identifier',
+ ],
+ 'ssh-key' => [
+ 'create' => 'Adicionada SSH key :fingerprint to account',
+ 'delete' => 'Removida SSH key :fingerprint from account',
+ ],
+ 'two-factor' => [
+ 'create' => 'Auth de dois fatores habilitado',
+ 'delete' => 'Auth de dois fatores desabilitado',
+ ],
+ ],
+ 'server' => [
+ 'reinstall' => 'Servidor reinstalado',
+ 'console' => [
+ 'command' => 'Executado ":command" no servidor',
+ ],
+ 'power' => [
+ 'start' => 'Iniciado o servidor',
+ 'stop' => 'Parou o servidor',
+ 'restart' => 'Reiniciou o servidor',
+ 'kill' => 'Matou o processo do servidor',
+ ],
+ 'backup' => [
+ 'download' => 'Baixou o backup :name ',
+ 'delete' => 'Deletou o backup :name ',
+ 'restore' => 'Restaurou o backup :name (deleted files: :truncate)',
+ 'restore-complete' => 'Restauração concluída do :name backup',
+ 'restore-failed' => 'Falhou em completar a restauração do :name backup',
+ 'start' => 'Iniciou um novo backup :name',
+ 'complete' => 'Marcou que o :name backup foi completo',
+ 'fail' => 'Marcou que o :name backup falhou',
+ 'lock' => 'Trancou o :name backup',
+ 'unlock' => 'Destrancou o :name backup',
+ ],
+ 'database' => [
+ 'create' => 'Criou novo banco de dados :name',
+ 'rotate-password' => 'Senha girada para banco de dados :name',
+ 'delete' => 'Banco de dados excluído :name',
+ ],
+ 'file' => [
+ 'compress_one' => 'Comprimido :directory:file',
+ 'compress_other' => 'Comprimido :count arquivos em :directory',
+ 'read' => 'Visualizado o conteúdo de :file',
+ 'copy' => 'Criou uma cópia de :file',
+ 'create-directory' => 'Diretório criado :directory:name',
+ 'decompress' => 'Descompactado :files no :directory',
+ 'delete_one' => 'Deletado :directory:files.0',
+ 'delete_other' => 'Deletado :count arquivos em :directory',
+ 'download' => 'Baixado :file',
+ 'pull' => 'Baixado um arquivo remoto de :url para :directory',
+ 'rename_one' => 'Renomeado :directory:files.0.de para :directory:files.0.to',
+ 'rename_other' => 'Renomeado :count arquivos em :directory',
+ 'write' => 'Escreveu novo conteúdo para :file',
+ 'upload' => 'Começou um upload de arquivo',
+ 'uploaded' => 'Carregado :directory:file',
+ ],
+ 'sftp' => [
+ 'denied' => 'Acesso SFTP bloqueado devido a permissões',
+ 'create_one' => 'Criado :files.0',
+ 'create_other' => 'Criado :count new files',
+ 'write_one' => 'Modificado o conteúdo de :files.0',
+ 'write_other' => 'Modificado o conteúdo de :count files',
+ 'delete_one' => 'Deletado :files.0',
+ 'delete_other' => 'Deletado :count files',
+ 'create-directory_one' => 'Criado o :files.0 directory',
+ 'create-directory_other' => 'Criado :count Diretórios',
+ 'rename_one' => 'Renomeado :files.0.de para :files.0.to',
+ 'rename_other' => 'Renomeado ou movido :count arquivos',
+ ],
+ 'allocation' => [
+ 'create' => 'Adicionado :allocation para o servidor',
+ 'notes' => 'Atualizado as notas para :allocation de ":old" para ":new"',
+ 'primary' => 'Pôr :allocation como a alocação do servidor principal',
+ 'delete' => 'Deletou a :allocation alocação',
+ ],
+ 'schedule' => [
+ 'create' => 'Criou o :name schedule',
+ 'update' => 'Atualizou o :name schedule',
+ 'execute' => 'Executou manualmente o :name schedule',
+ 'delete' => 'Deletou o :name schedule',
+ ],
+ 'task' => [
+ 'create' => 'Criou um novo ":action" tarefa para o :name schedule',
+ 'update' => 'Atualizou o ":action" tarefa para o :name schedule',
+ 'delete' => 'Excluiu uma tarefa para o :name schedule',
+ ],
+ 'settings' => [
+ 'rename' => 'Renomeaou o servidor de :old para :new',
+ ],
+ 'startup' => [
+ 'edit' => 'Mudou o :variable variável de ":old" para ":new"',
+ 'image' => 'Atualizou a Imagem Docker para o servidor de :old para :new',
+ ],
+ 'subuser' => [
+ 'create' => 'Adicionou o :email como subusuário',
+ 'update' => 'Atualizou as permissões do subusuário :email',
+ 'delete' => 'Removeu :email como subusuário',
+ ],
+ ],
+];
diff --git a/resources/lang/pt/admin/nests.php b/resources/lang/pt/admin/nests.php
new file mode 100644
index 000000000..8c56f7b6d
--- /dev/null
+++ b/resources/lang/pt/admin/nests.php
@@ -0,0 +1,33 @@
+.
+ *
+ * This software is licensed under the terms of the MIT license.
+ * https://opensource.org/licenses/MIT
+ */
+
+return [
+ 'notices' => [
+ 'created' => 'Um novo Nest, :name, foi criado com sucesso.',
+ 'deleted' => 'Excluiu com sucesso o Nest solicitado do Painel.',
+ 'updated' => 'Atualizou com sucesso as opções de configuração do Nest.',
+ ],
+ 'eggs' => [
+ 'notices' => [
+ 'imported' => 'Importou este Egg com sucesso e suas variáveis associadas.',
+ 'updated_via_import' => 'Este Egg foi atualizado usando o arquivo fornecido.',
+ 'deleted' => 'Excluiu com sucesso o Egg solicitado do Painel.',
+ 'updated' => 'A configuração do Egg foi atualizada com sucesso.',
+ 'script_updated' => 'O script de instalação de Eggs foi atualizado e será executado sempre que os servidores forem instalados.',
+ 'egg_created' => 'Um novo Egg foi colocado com sucesso. Você precisará reiniciar quaisquer daemons em execução para aplicar este novo Egg.',
+ ],
+ ],
+ 'variables' => [
+ 'notices' => [
+ 'variable_deleted' => 'A variável ":variable" foi excluído e não estará mais disponível para servidores uma vez reconstruídos.',
+ 'variable_updated' => 'A variável ":variable" foi atualizado. Você precisará reconstruir quaisquer servidores usando essa variável para aplicar alterações.',
+ 'variable_created' => 'Nova variável foi criada com sucesso e atribuída a este Egg.',
+ ],
+ ],
+];
diff --git a/resources/lang/pt/admin/node.php b/resources/lang/pt/admin/node.php
new file mode 100644
index 000000000..b5484e0e6
--- /dev/null
+++ b/resources/lang/pt/admin/node.php
@@ -0,0 +1,23 @@
+.
+ *
+ * This software is licensed under the terms of the MIT license.
+ * https://opensource.org/licenses/MIT
+ */
+
+return [
+ 'validation' => [
+ 'fqdn_not_resolvable' => 'O endereço FQDN ou IP fornecido não resolve um endereço IP válido.',
+ 'fqdn_required_for_ssl' => 'Um nome de domínio totalmente qualificado que se resolve com um endereço IP público é necessário para usar o SSL para este Node.',
+ ],
+ 'notices' => [
+ 'allocations_added' => 'As alocações foram adicionadas com sucesso a este Node.',
+ 'node_deleted' => 'O Node foi removido com sucesso do painel.',
+ 'location_required' => 'Você deve ter pelo menos um local configurado antes de poder adicionar um Node a este painel.',
+ 'node_created' => 'Criou com sucesso um novo Node. Você pode configurar automaticamente o daemon nesta máquina visitando o \'Configuration\' tab. Antes de adicionar quaisquer servidores, você deve primeiro alocar pelo menos um endereço IP e porta.',
+ 'node_updated' => 'As informações do Node foram atualizadas. Se alguma configuração de daemon foi alterada, você precisará reiniciá-la para que essas alterações entrem em vigor.',
+ 'unallocated_deleted' => 'Excluiu todas as portas não alocadas para :ip
.',
+ ],
+];
diff --git a/resources/lang/pt/admin/server.php b/resources/lang/pt/admin/server.php
new file mode 100644
index 000000000..ffd0e2cbf
--- /dev/null
+++ b/resources/lang/pt/admin/server.php
@@ -0,0 +1,34 @@
+.
+ *
+ * This software is licensed under the terms of the MIT license.
+ * https://opensource.org/licenses/MIT
+ */
+
+return [
+ 'exceptions' => [
+ 'no_new_default_allocation' => 'Você está tentando excluir a alocação padrão para este servidor, mas não há alocação de recuo para usar.',
+ 'marked_as_failed' => 'Este servidor foi marcado como tendo falhado em uma instalação anterior. O status atual não pode ser alternado neste estado.',
+ 'bad_variable' => 'Houve um erro de validação com a variável :name.',
+ 'daemon_exception' => 'Houve uma exceção ao tentar se comunicar com o daemon resultando em um código de resposta HTTP/: Esta exceção foi registrada. (request id: :request_id)',
+ 'default_allocation_not_found' => 'A alocação padrão solicitada não foi encontrada nas alocações deste servidor.',
+ ],
+ 'alerts' => [
+ 'startup_changed' => 'A configuração de inicialização para este servidor foi atualizada. Se o Nests ou o Egg deste servidor for alterado, uma reinstalação estará ocorrendo agora.',
+ 'server_deleted' => 'O servidor foi excluído com sucesso do sistema.',
+ 'server_created' => 'O servidor foi criado com sucesso no painel. Por favor, permita que o daemon se instale e em alguns minutos inicie este servidor.',
+ 'build_updated' => 'Os detalhes da compilação deste servidor foram atualizados. Algumas alterações podem exigir um reiniciar para fazer efeito.',
+ 'suspension_toggled' => 'O status de suspensão do servidor foi alterado para :status.',
+ 'rebuild_on_boot' => 'Este servidor foi marcado como exigindo uma reconstrução do Contêiner Docker. Isso acontecerá na próxima vez que o servidor for iniciado.',
+ 'install_toggled' => 'O status de instalação deste servidor foi alternado.',
+ 'server_reinstalled' => 'Este servidor foi enfileiado para uma reinstalação a partir de agora.',
+ 'details_updated' => 'Os detalhes do servidor foram atualizados com sucesso.',
+ 'docker_image_updated' => 'Alterou com sucesso a imagem padrão do Docker para usar para este servidor. Uma reinicialização é necessária para aplicar essa alteração.',
+ 'node_required' => 'Você deve ter pelo menos um Node configurado antes de poder adicionar um servidor a este painel.',
+ 'transfer_nodes_required' => 'Você deve ter pelo menos dois Nodes configurados antes de poder transferir servidores.',
+ 'transfer_started' => 'A transferência do servidor foi iniciada.',
+ 'transfer_not_viable' => 'O Node selecionado não tem o espaço ou memória de disco necessários para acomodar este servidor.',
+ ],
+];
diff --git a/resources/lang/pt/admin/user.php b/resources/lang/pt/admin/user.php
new file mode 100644
index 000000000..2f7da09b5
--- /dev/null
+++ b/resources/lang/pt/admin/user.php
@@ -0,0 +1,18 @@
+.
+ *
+ * This software is licensed under the terms of the MIT license.
+ * https://opensource.org/licenses/MIT
+ */
+
+return [
+ 'exceptions' => [
+ 'user_has_servers' => 'Não é possível excluir um usuário com servidores ativos conectados à sua conta. Por favor, exclua seus servidores antes de continuar.',
+ ],
+ 'notices' => [
+ 'account_created' => 'A conta foi criada com sucesso.',
+ 'account_updated' => 'A conta foi atualizada com sucesso.',
+ ],
+];
diff --git a/resources/lang/pt/auth.php b/resources/lang/pt/auth.php
new file mode 100644
index 000000000..59942e397
--- /dev/null
+++ b/resources/lang/pt/auth.php
@@ -0,0 +1,27 @@
+ 'Entrar',
+ 'go_to_login' => 'Vá para Login',
+ 'failed' => 'Nenhuma conta que corresponda a essas credenciais poderia ser encontrada.',
+
+ 'forgot_password' => [
+ 'label' => 'Esqueceu a senha?',
+ 'label_help' => 'Digite o endereço de e-mail da sua conta para receber instruções sobre a redefinição de sua senha.',
+ 'button' => 'Recuperar conta',
+ ],
+
+ 'reset_password' => [
+ 'button' => 'Resetar e Entrar',
+ ],
+
+ 'two_factor' => [
+ 'label' => 'Token de 2 fatores',
+ 'label_help' => 'Esta conta requer uma segunda camada de autenticação para continuar. Digite o código gerado pelo seu dispositivo para completar este login.',
+ 'checkpoint_failed' => 'O token de autenticação de dois fatores era inválido.',
+ ],
+
+ 'throttle' => 'Muitas tentativas de login. Por favor, tente novamente em :seconds segundos.',
+ 'password_requirements' => 'A senha deve ter pelo menos 8 caracteres de comprimento e deve ser exclusiva deste site.',
+ '2fa_must_be_enabled' => 'O administrador exigiu que a autenticação de 2 fatores seja habilitada para sua conta para usar o Painel.',
+];
diff --git a/resources/lang/pt/command/messages.php b/resources/lang/pt/command/messages.php
new file mode 100644
index 000000000..668501cd1
--- /dev/null
+++ b/resources/lang/pt/command/messages.php
@@ -0,0 +1,66 @@
+ [
+ 'no_location_found' => 'Não foi possível localizar um registro que corresponde ao Nome Simples fornecido.',
+ 'ask_short' => 'Nome Simples de localização',
+ 'ask_long' => 'Descrição da localização',
+ 'created' => 'Criou com sucesso um novo local (:name) com uma ID de :id.',
+ 'deleted' => 'Excluiu com sucesso o local solicitado.',
+ ],
+ 'user' => [
+ 'search_users' => 'Digite um nome de usuário, ID de usuário ou endereço de e-mail',
+ 'select_search_user' => 'ID do usuário para excluir (Enter \'0\' to re-search)',
+ 'deleted' => 'Usuário excluído com sucesso do Painel.',
+ 'confirm_delete' => 'Tem certeza de que deseja excluir este usuário do Painel?',
+ 'no_users_found' => 'Não foram encontrados usuários para o termo de pesquisa fornecido.',
+ 'multiple_found' => 'Várias contas foram encontradas para o usuário fornecido, incapaz de excluir um usuário por causa do --no-interaction flag.',
+ 'ask_admin' => 'Este usuário é um administrador?',
+ 'ask_email' => 'Endereço de E-mail',
+ 'ask_username' => 'Nome de Usuario',
+ 'ask_name_first' => 'Primeiro Nome',
+ 'ask_name_last' => 'Ultimo Nome',
+ 'ask_password' => 'Senha',
+ 'ask_password_tip' => 'If você gostaria de criar uma conta com uma senha aleatória enviada pelo usuário, re-executar este comando (CTRL+C) e passar o `--no-password` flag.',
+ 'ask_password_help' => 'As senhas devem ter pelo menos 8 caracteres de comprimento e conter pelo menos uma letra maiúscula e número.',
+ '2fa_help_text' => [
+ 'Este comando desativará a autenticação de 2 fatores para um user\'s conta se ele está ativado. Isso só deve ser usado como um comando de recuperação de conta se o usuário estiver bloqueado fora de sua conta.',
+ 'Se não é isso que você queria fazer, pressione CTRL+C para sair desse processo.',
+ ],
+ '2fa_disabled' => 'A autenticação de 2 fatores foi desativada para :email.',
+ ],
+ 'schedule' => [
+ 'output_line' => 'Expedição de trabalho para a primeira tarefa em `:schedule` (:hash).',
+ ],
+ 'maintenance' => [
+ 'deleting_service_backup' => 'Excluindo arquivo de backup do serviço :file.',
+ ],
+ 'server' => [
+ 'rebuild_failed' => 'Pedido de reconstrução para ":name" (#:id) no Node ":node" falhou com erro: :message',
+ 'reinstall' => [
+ 'failed' => 'Solicitação de reinstalação para ":name" (#:id) no Node ":node" falhou com erro: :message',
+ 'confirm' => 'Você está prestes a reinstalar contra um grupo de servidores. Você deseja continuar?',
+ ],
+ 'power' => [
+ 'confirm' => 'Você está prestes a realizar um :action contra :count servidores. Você deseja continuar?',
+ 'action_failed' => 'Pedido de ação de energia para ":name" (#:id) no Node ":node" falhou com o errr: :message',
+ ],
+ ],
+ 'environment' => [
+ 'mail' => [
+ 'ask_smtp_host' => 'SMTP Host (e.g. smtp.gmail.com)',
+ 'ask_smtp_port' => 'SMTP Porta',
+ 'ask_smtp_username' => 'SMTP Usuario',
+ 'ask_smtp_password' => 'SMTP Senha',
+ 'ask_mailgun_domain' => 'Mailgun Dominio',
+ 'ask_mailgun_endpoint' => 'Mailgun Extremidade',
+ 'ask_mailgun_secret' => 'Mailgun Secreto',
+ 'ask_mandrill_secret' => 'Mandrill Secreto',
+ 'ask_postmark_username' => 'Chave de API de marca posta',
+ 'ask_driver' => 'Qual driver deve ser usado para enviar e-mails?',
+ 'ask_mail_from' => 'Os e-mails de endereço de e-mail devem ser originários de',
+ 'ask_mail_name' => 'Nome que os e-mails devem aparecer de',
+ 'ask_encryption' => 'Método de criptografia para usar',
+ ],
+ ],
+];
diff --git a/resources/lang/pt/dashboard/account.php b/resources/lang/pt/dashboard/account.php
new file mode 100644
index 000000000..624f4b8f1
--- /dev/null
+++ b/resources/lang/pt/dashboard/account.php
@@ -0,0 +1,28 @@
+ [
+ 'title' => 'Atualize seu e-mail',
+ 'updated' => 'Seu endereço de e-mail foi atualizado.',
+ ],
+ 'password' => [
+ 'title' => 'Altere sua senha',
+ 'requirements' => 'Sua nova senha deve ter pelo menos 8 caracteres de comprimento.',
+ 'updated' => 'Sua senha foi atualizada.',
+ ],
+ 'two_factor' => [
+ 'button' => 'Configure autenticação de 2 fatores',
+ 'disabled' => 'A autenticação de dois fatores foi desativada em sua conta. Você não será mais solicitado a fornecer um token ao fazer login.',
+ 'enabled' => 'A autenticação de dois fatores foi ativada em sua conta! A partir de agora, ao fazer login, você será obrigado a fornecer o código gerado pelo seu dispositivo.',
+ 'invalid' => 'O token fornecido era inválido.',
+ 'setup' => [
+ 'title' => 'Configuração de autenticação de dois fatores',
+ 'help' => 'Can\'t Digitalizar o código? Digite o código abaixo em seu aplicativo:',
+ 'field' => 'Coloque o token',
+ ],
+ 'disable' => [
+ 'title' => 'Desativar a autenticação de dois fatores',
+ 'field' => 'Coloque o token',
+ ],
+ ],
+];
diff --git a/resources/lang/pt/dashboard/index.php b/resources/lang/pt/dashboard/index.php
new file mode 100644
index 000000000..a66960376
--- /dev/null
+++ b/resources/lang/pt/dashboard/index.php
@@ -0,0 +1,8 @@
+ 'Busca por servidores...',
+ 'no_matches' => 'Não foram encontrados servidores que correspondem aos critérios de pesquisa fornecidos.',
+ 'cpu_title' => 'CPU',
+ 'memory_title' => 'Memoria',
+];
diff --git a/resources/lang/pt/exceptions.php b/resources/lang/pt/exceptions.php
new file mode 100644
index 000000000..1918f630e
--- /dev/null
+++ b/resources/lang/pt/exceptions.php
@@ -0,0 +1,59 @@
+ 'Houve uma exceção ao tentar se comunicar com o daemon resultando em um código de resposta http/:code. Esta exceção foi registrada.',
+ 'node' => [
+ 'servers_attached' => 'Um Node não deve ter servidores vinculados a ele para ser excluído.',
+ 'daemon_off_config_updated' => 'A configuração daemon foi atualizada , no entanto, houve um erro encontrado ao tentar atualizar automaticamente o arquivo de configuração no Daemon. Você precisará atualizar manualmente o arquivo de configuração (config.yml) para que o daemon aplique essas alterações.',
+ ],
+ 'allocations' => [
+ 'server_using' => 'Um servidor é atualmente atribuído a essa alocação. Uma alocação só pode ser excluída se nenhum servidor for atribuído no momento.',
+ 'too_many_ports' => 'Adicionar mais de 1000 portas em um único intervalo ao mesmo tempo não é suportado.',
+ 'invalid_mapping' => 'O mapeamento previsto para :port era inválido e não pôde ser processado.',
+ 'cidr_out_of_range' => 'CIDR a notação só permite máscaras entre /25 e /32.',
+ 'port_out_of_range' => 'Os portas em uma alocação devem ser maiores que 1024 e menores ou iguais a 65535.',
+ ],
+ 'nest' => [
+ 'delete_has_servers' => 'Um Nest com servidores ativos conectados a ele não pode ser excluído do Painel.',
+ 'egg' => [
+ 'delete_has_servers' => 'Um Egg com servidores ativos conectados a ele não pode ser excluído do Painel.',
+ 'invalid_copy_id' => 'O Egg selecionado para copiar o script não existe, ou está copiando o próprio script.',
+ 'must_be_child' => 'A diretiva "Copiar configurações a partir" para este Egg deve ser uma opção Child(Propriada) para o Nest selecionado.',
+ 'has_children' => 'Este Egg é pai de um ou mais Eggs. Por favor, exclua esses Eggs antes de excluir este Egg.',
+ ],
+ 'variables' => [
+ 'env_not_unique' => 'A variável ambiente :name deve ser único para este Egg.',
+ 'reserved_name' => 'A variável ambiente :name é protegido e não pode ser atribuído a uma variável.',
+ 'bad_validation_rule' => 'A regra de validação ":rule" não é uma regra válida para este aplicativo.',
+ ],
+ 'importer' => [
+ 'json_error' => 'Houve um erro ao tentar analisar o arquivo JSON: :error.',
+ 'file_error' => 'O arquivo JSON fornecido não era válido.',
+ 'invalid_json_provided' => 'O arquivo JSON fornecido não está em um formato que possa ser reconhecido.',
+ ],
+ ],
+ 'subusers' => [
+ 'editing_self' => 'Editar sua própria conta de subusuário não é permitido.',
+ 'user_is_owner' => 'Você não pode adicionar o proprietário do servidor como um subusuário para este servidor.',
+ 'subuser_exists' => 'O usuário com esse endereço de e-mail já está atribuído como subusuário desse servidor.',
+ ],
+ 'databases' => [
+ 'delete_has_databases' => 'Não é possível excluir um servidor host de banco de dados que tenha bancos de dados ativos vinculados a ele.',
+ ],
+ 'tasks' => [
+ 'chain_interval_too_long' => 'O tempo máximo de intervalo para uma tarefa acorrentada é de 15 minutos.',
+ ],
+ 'locations' => [
+ 'has_nodes' => 'Não é possível excluir uma localização que tenha Nodes ativos e anexados a ela.',
+ ],
+ 'users' => [
+ 'node_revocation_failed' => 'Falhou em revogar chaves em Node #:node. :error',
+ ],
+ 'deployment' => [
+ 'no_viable_nodes' => 'Não foi possível encontrar Nodes que atendessem os requisitos especificados para a implantação automática.',
+ 'no_viable_allocations' => 'Não foram encontradas alocações que satisfaçam os requisitos para implantação automática.',
+ ],
+ 'api' => [
+ 'resource_not_found' => 'O recurso solicitado não existe neste servidor.',
+ ],
+];
diff --git a/resources/lang/en/pagination.php b/resources/lang/pt/pagination.php
similarity index 86%
rename from resources/lang/en/pagination.php
rename to resources/lang/pt/pagination.php
index ecac3aa33..35a752795 100644
--- a/resources/lang/en/pagination.php
+++ b/resources/lang/pt/pagination.php
@@ -12,6 +12,6 @@
|
*/
- 'previous' => '« Previous',
- 'next' => 'Next »',
+ 'previous' => '« Anterior',
+ 'next' => 'Proximo »',
];
diff --git a/resources/lang/en/passwords.php b/resources/lang/pt/passwords.php
similarity index 55%
rename from resources/lang/en/passwords.php
rename to resources/lang/pt/passwords.php
index 76a6959b7..9a09ed807 100644
--- a/resources/lang/en/passwords.php
+++ b/resources/lang/pt/passwords.php
@@ -11,9 +11,9 @@
| has failed, such as for an invalid token or invalid new password.
|
*/
- 'password' => 'Passwords must be at least six characters and match the confirmation.',
- 'reset' => 'Your password has been reset!',
- 'sent' => 'We have e-mailed your password reset link!',
- 'token' => 'This password reset token is invalid.',
- 'user' => "We can't find a user with that e-mail address.",
+ 'password' => 'As senhas devem ter pelo menos seis caracteres e corresponder à confirmação.',
+ 'reset' => 'Sua senha foi redefinida!',
+ 'sent' => 'Enviamos por e-mail seu link de redefinição de senha!',
+ 'token' => 'Este token de redefinição de senha é inválido.',
+ 'user' => 'Não conseguimos encontrar um usuário com esse endereço de e-mail.',
];
diff --git a/resources/lang/pt/server/users.php b/resources/lang/pt/server/users.php
new file mode 100644
index 000000000..b2ca8bd7e
--- /dev/null
+++ b/resources/lang/pt/server/users.php
@@ -0,0 +1,33 @@
+ [
+ 'websocket_*' => 'Permite acesso ao websocket para este servidor.',
+ 'control_console' => 'Permite que o usuário envie dados para o console do servidor.',
+ 'control_start' => 'Permite que o usuário inicie a instância do servidor.',
+ 'control_stop' => 'Permite que o usuário pare a instância do servidor.',
+ 'control_restart' => 'Permite que o usuário reinicie a instância do servidor.',
+ 'control_kill' => 'Permite que o usuário mate a instância do servidor.',
+ 'user_create' => 'Permite que o usuário crie novas contas de usuário para o servidor.',
+ 'user_read' => 'Permite que o usuário permissão para visualizar usuários associados a este servidor.',
+ 'user_update' => 'Permite que o usuário modifique outros usuários associados a este servidor.',
+ 'user_delete' => 'Permite que o usuário exclua outros usuários associados a este servidor.',
+ 'file_create' => 'Permite que o usuário crie novas contas de usuário para o servidor.',
+ 'file_read' => 'Permite que o usuário veja arquivos e pastas associados a esta instância do servidor, bem como visualize seu conteúdo.',
+ 'file_update' => 'Permite que o usuário atualize arquivos e pastas associadas ao servidor.',
+ 'file_delete' => 'Permite que o usuário exclua arquivos e diretórios.',
+ 'file_archive' => 'Permite que o usuário crie arquivos de arquivos e descomprima os arquivos existentes.',
+ 'file_sftp' => 'Permite que o usuário execute as ações de arquivo acima usando um cliente SFTP.',
+ 'allocation_read' => 'Permite o acesso às páginas de gerenciamento de alocação de servidores.',
+ 'allocation_update' => 'Permite que o usuário faça modificações no server\'s Alocações.',
+ 'database_create' => 'Permite que o usuário crie um novo banco de dados para o servidor.',
+ 'database_read' => 'Permite que o usuário visualize os bancos de dados do servidor.',
+ 'database_update' => 'Permite que um usuário permissão para fazer modificações em um banco de dados. Se o usuário não tiver a permissão "Exibir senha", também não poderá modificar a senha.',
+ 'database_delete' => 'Permite que um usuário exclua uma instância de banco de dados.',
+ 'database_view_password' => 'Permite que um usuário exa coma a senha do banco de dados no sistema.',
+ 'schedule_create' => 'Permite que um usuário crie um novo cronograma para o servidor.',
+ 'schedule_read' => 'Permite que um usuário permissão para visualizar horários para um servidor.',
+ 'schedule_update' => 'Permite que um usuário permissão para fazer modificações em um cronograma de servidor existente.',
+ 'schedule_delete' => 'Permite que um usuário exclua um cronograma para o servidor.',
+ ],
+];
diff --git a/resources/lang/pt/strings.php b/resources/lang/pt/strings.php
new file mode 100644
index 000000000..ed54147cd
--- /dev/null
+++ b/resources/lang/pt/strings.php
@@ -0,0 +1,95 @@
+ 'E-mail',
+ 'email_address' => 'Endereço de E-mail',
+ 'user_identifier' => 'Usuario ou E-mail',
+ 'password' => 'Senha',
+ 'new_password' => 'Nova Senha',
+ 'confirm_password' => 'Confirmar nova Senha',
+ 'login' => 'Login',
+ 'home' => 'Casa',
+ 'servers' => 'Servidores',
+ 'id' => 'ID',
+ 'name' => 'Nome',
+ 'node' => 'Node',
+ 'connection' => 'Conexão',
+ 'memory' => 'Memoria',
+ 'cpu' => 'CPU',
+ 'disk' => 'Disco',
+ 'status' => 'Status',
+ 'search' => 'Busca',
+ 'suspended' => 'Suspendido',
+ 'account' => 'Contas',
+ 'security' => 'Securança',
+ 'ip' => 'Endereço IP',
+ 'last_activity' => 'Ultima Actividade',
+ 'revoke' => 'Revogar',
+ '2fa_token' => 'Token de autentificação',
+ 'submit' => 'Enviar',
+ 'close' => 'Fechar',
+ 'settings' => 'Configurações',
+ 'configuration' => 'configuração',
+ 'sftp' => 'SFTP',
+ 'databases' => 'Banco de dados',
+ 'memo' => 'Memo',
+ 'created' => 'Criado',
+ 'expires' => 'Expira',
+ 'public_key' => 'Token',
+ 'api_access' => 'Api de acesso',
+ 'never' => 'nunca',
+ 'sign_out' => 'Sair',
+ 'admin_control' => 'Console Administrativo',
+ 'required' => 'Necessário',
+ 'port' => 'Porta',
+ 'username' => 'Usuario',
+ 'database' => 'Banco de dados',
+ 'new' => 'Novo',
+ 'danger' => 'Perigo',
+ 'create' => 'Criar',
+ 'select_all' => 'Selecionar tudo',
+ 'select_none' => 'Selecionar nada',
+ 'alias' => 'Alias',
+ 'primary' => 'Primario',
+ 'make_primary' => 'fazer Primario',
+ 'none' => 'nada',
+ 'cancel' => 'Cancelar',
+ 'created_at' => 'Criado At',
+ 'action' => 'ação',
+ 'data' => 'Data',
+ 'queued' => 'Lista',
+ 'last_run' => 'Ultimo inicio',
+ 'next_run' => 'proximo inicio',
+ 'not_run_yet' => 'Não iniciou ainda',
+ 'yes' => 'Sim',
+ 'no' => 'Não',
+ 'delete' => 'Deletar',
+ '2fa' => '2FA',
+ 'logout' => 'Deslogar',
+ 'admin_cp' => 'Painel de Controle de Administração',
+ 'optional' => 'Opicional',
+ 'read_only' => 'Somente leitura',
+ 'relation' => 'Relação',
+ 'owner' => 'Dono',
+ 'admin' => 'Administrador',
+ 'subuser' => 'subusuário',
+ 'captcha_invalid' => 'O captcha fornecido é inválido.',
+ 'tasks' => 'Tarefas',
+ 'seconds' => 'Segundos',
+ 'minutes' => 'Minutos',
+ 'under_maintenance' => 'Sob manutenção',
+ 'days' => [
+ 'sun' => 'Domingo',
+ 'mon' => 'Segunda',
+ 'tues' => 'Terça',
+ 'wed' => 'Quarta',
+ 'thurs' => 'Quinta',
+ 'fri' => 'Sexta',
+ 'sat' => 'Sabádo',
+ ],
+ 'last_used' => 'Último usado',
+ 'enable' => 'Habilitado',
+ 'disable' => 'Desabilitado',
+ 'save' => 'Salvar',
+ 'copyright' => '© 2015 - :year Jexactyl Software',
+];
diff --git a/resources/lang/pt/validation.php b/resources/lang/pt/validation.php
new file mode 100644
index 000000000..a95d0b6cd
--- /dev/null
+++ b/resources/lang/pt/validation.php
@@ -0,0 +1,106 @@
+ 'O :attribute deve ser aceito.',
+ 'active_url' => 'O :attribute não é uma URL válida.',
+ 'after' => 'O :attribute deve ser uma data depois :date.',
+ 'after_or_equal' => 'O :attribute deve ser uma data depois ou igual a :date.',
+ 'alpha' => 'O :attribute só pode conter letras.',
+ 'alpha_dash' => 'O :attribute só pode conter letras, números e traços.',
+ 'alpha_num' => 'O :attribute só pode conter letras e números.',
+ 'array' => 'O :attribute deve ser uma matriz.',
+ 'before' => 'O :attribute deve ser uma data antes :date.',
+ 'before_or_equal' => 'O :attribute deve ser uma data antes ou igual a :date.',
+ 'between' => [
+ 'numeric' => 'O :attribute deve ser entre :min e :max.',
+ 'file' => 'O :attribute deve ser entre :min e :max kilobytes.',
+ 'string' => 'O :attribute deve estar entre :min e :max caracteres.',
+ 'array' => 'O :attribute deve ter entre :min e :max items.',
+ ],
+ 'boolean' => 'O :attribute campo deve ser verdadeiro ou falso.',
+ 'confirmed' => 'A confirmação :attribute não corresponde.',
+ 'date' => 'O :attribute is not a valid date.',
+ 'date_format' => 'O :attribute não corresponde ao formato :format.',
+ 'different' => 'O :attribute e :other deve ser diferente.',
+ 'digits' => 'O :attribute deve ser :digits digits.',
+ 'digits_between' => 'O :attribute deve ser entre :min e :max digitos.',
+ 'dimensions' => 'O :attribute tem dimensões de imagem inválidas.',
+ 'distinct' => 'O :attribute campo tem um valor duplicado.',
+ 'email' => 'O :attribute deve ser um endereço de e-mail válido.',
+ 'exists' => 'O :attribute selecionado é inválido.',
+ 'file' => 'O :attribute deve ser um arquivo.',
+ 'filled' => 'O campo :attribute é obrigatório.',
+ 'image' => 'O :attribute deve ser uma imagem.',
+ 'in' => 'The selected :attribute is invalid.',
+ 'in_array' => 'O :attribute campo não existe em :other.',
+ 'integer' => 'O :attribute deve ser um inteiro.',
+ 'ip' => 'O :attribute deve ser um endereço IP válido.',
+ 'json' => 'O :attribute deve ser uma sequência JSON válida.',
+ 'max' => [
+ 'numeric' => 'O :attribute não pode ser maior do que :max.',
+ 'file' => 'O :attribute não pode ser maior do que :max kilobytes.',
+ 'string' => 'O :attribute não pode ser maior que :max caracteres.',
+ 'array' => 'O :attribute não pode ter mais do que :max itens.',
+ ],
+ 'mimes' => 'O :attribute deve ser um arquivo de tipo: :values.',
+ 'mimetypes' => 'O :attribute deve ser um arquivo de tipo: :values.',
+ 'min' => [
+ 'numeric' => 'O :attribute deve ser, pelo menos, :min.',
+ 'file' => 'O :attribute deve ser, pelo menos, :min kilobytes.',
+ 'string' => 'O :attribute deve ser, pelo menos, :min Caracteres.',
+ 'array' => 'O :attribute deve ter, pelo menos, :min items.',
+ ],
+ 'not_in' => 'O :attribute is invalid.',
+ 'numeric' => 'O :attribute deve ser um número.',
+ 'present' => 'O :attribute campo deve estar presente.',
+ 'regex' => 'O :attribute o formato é inválido.',
+ 'required' => 'O campo :attribute é obrigatório.',
+ 'required_if' => 'O :attribute campo é necessário quando :other é :value.',
+ 'required_unless' => 'O :attribute campo é necessário a menos que :other está em :values.',
+ 'required_with' => 'O :attribute campo é necessário quando :values está presente.',
+ 'required_with_all' => 'O :attribute campo é necessário quando :values está presente.',
+ 'required_without' => 'O :attribute campo é necessário quando :values não está presente.',
+ 'required_without_all' => 'O :attribute campo é necessário quando nenhum dos :values estão presentes.',
+ 'same' => 'O :attribute e :other deve corresponder.',
+ 'size' => [
+ 'numeric' => 'O :attribute deve ser :size.',
+ 'file' => 'O :attribute deve ser :size kilobytes.',
+ 'string' => 'O :attribute deve ser :size characters.',
+ 'array' => 'O :attribute deve conter :size items.',
+ ],
+ 'string' => 'O :attribute deve ser uma corda.',
+ 'timezone' => 'O :attribute deve ser uma zona válida.',
+ 'unique' => 'O :attribute já foi tomada.',
+ 'uploaded' => 'O :attribute não fez upload.',
+ 'url' => 'O :attribute o formato é inválido.',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap attribute place-holders
+ | with something more reader friendly such as E-Mail Address instead
+ | of "email". This simply helps us make messages a little cleaner.
+ |
+ */
+
+ 'attributes' => [],
+
+ // Internal validation logic for Jexactyl
+ 'internal' => [
+ 'variable_value' => ':env variable',
+ 'invalid_password' => 'A senha fornecida é inválida para esta conta.',
+ ],
+];
diff --git a/resources/scripts/api/account/enableAccountTwoFactor.ts b/resources/scripts/api/account/enableAccountTwoFactor.ts
index 25c63ad47..013a30db2 100644
--- a/resources/scripts/api/account/enableAccountTwoFactor.ts
+++ b/resources/scripts/api/account/enableAccountTwoFactor.ts
@@ -1,7 +1,10 @@
import http from '@/api/http';
export default async (code: string, password: string): Promise- © Jexactyl, built on{' '} - Jexactyl. + © Jexactyl-Brasil, feito sobre{' '} + Jexactyl. apartir do{' '} + Pterodactyl.
- © Jexactyl, built on{' '} - Jexactyl. +
+ © Jexactyl-Brasil, feito sobre{' '} + Jexactyl. apartir do{' '} + Pterodactyl.
-- Site +
{deleteIdentifier}
key will be invalidated.
+ Todos os pedidos utilizando a chave {deleteIdentifier}
será invalidado.
- {loading ? 'Loading...' : 'No API keys exist for this account.'} + {loading ? 'Carregando...' : 'Não existem chaves API para esta conta.'}
) : ( keys.map((key, index) => ( diff --git a/resources/scripts/components/dashboard/AccountOverviewContainer.tsx b/resources/scripts/components/dashboard/AccountOverviewContainer.tsx index ea3fe19b2..2be132b0b 100644 --- a/resources/scripts/components/dashboard/AccountOverviewContainer.tsx +++ b/resources/scripts/components/dashboard/AccountOverviewContainer.tsx @@ -34,29 +34,27 @@ export default () => { const referrals = useStoreState((state) => state.storefront.data!.referrals.enabled); return ( -- The API key you have requested is shown below. Please store this in a safe location, it will not be - shown again. + A chave API que solicitou é mostrada abaixo. Por favor, guarde-a em um local seguro, ela não será + mostrada novamente.
@@ -26,7 +26,7 @@ const ApiKeyModal = ({ apiKey }: Props) => {
{!loading && 'No referral codes exist for this account.'}
++ {!loading && 'Não existem códigos de referência para esta conta.'} +
) : ( codes.map((code, index) => ({code.code}
- Created at: + Criado em: {code.createdAt ? format(code.createdAt, 'MMM do, yyyy HH:mm') : 'Never'}
{!loading && 'No referral activity exists for this account.'}
++ {!loading && 'Não existe nenhuma atividade de indicação para esta conta.'} +
) : ( activity.map((act, index) => (- Used at: - {act.createdAt ? format(act.createdAt, 'MMM do, yyyy HH:mm') : 'Never'} + Usado em: + {act.createdAt ? format(act.createdAt, 'MMM do, yyyy HH:mm') : 'Nunca'} +
++ Código utilizado: {act.code}
-Code used: {act.code}
- You have already used a referral code. + Voce ja usou um código de referência {code}
) : ( @@ -63,17 +63,22 @@ export default () => { {({ isSubmitting, isValid }) => ({isEnabled - ? 'Two-step verification is currently enabled on your account.' - : 'You do not currently have two-step verification enabled on your account. Click the button below to begin configuring it.'} + ? 'A verificação em duas etapas está atualmente activa na sua conta.' + : ' Atualmente não tem a verificação em duas etapas ativada na sua conta. Clique no botão abaixo para iniciar a sua configuração.'}