diff --git a/Attorney_Online.pro b/Attorney_Online.pro
index 941f89b..ea5473f 100644
--- a/Attorney_Online.pro
+++ b/Attorney_Online.pro
@@ -50,6 +50,7 @@ TRANSLATIONS = resource/translations/ao_en.ts \
resource/translations/ao_de.ts \
resource/translations/ao_ru.ts \
resource/translations/ao_es.ts \
+ resource/translations/ao_pt.ts \
resource/translations/ao_pl.ts
win32:RC_ICONS = resource/logo.ico
diff --git a/resource/translations/ao_pt.qm b/resource/translations/ao_pt.qm
new file mode 100644
index 0000000..a828ee1
Binary files /dev/null and b/resource/translations/ao_pt.qm differ
diff --git a/resource/translations/ao_pt.ts b/resource/translations/ao_pt.ts
new file mode 100644
index 0000000..062e06e
--- /dev/null
+++ b/resource/translations/ao_pt.ts
@@ -0,0 +1,902 @@
+
+
+
+
+ AOApplication
+
+
+ Disconnected from server.
+ Desconectado do servidor.
+
+
+
+ Error connecting to master server. Will try again in %1 seconds.
+ Erro ao conectar ao servidor principal. Testando novamente em %1 segundos.
+
+
+
+ There was an error connecting to the master server.
+We deploy multiple master servers to mitigate any possible downtime, but the client appears to have exhausted all possible methods of finding and connecting to one.
+Please check your Internet connection and firewall, and please try again.
+ Ocorreu um erro ao obter a lista de servidores. Verifique sua conexão à Internet e firewall e tente novamente.
+
+
+
+ Outdated version! Your version: %1
+Please go to aceattorneyonline.com to update.
+ Versão desatualizada! Sua versão: %1
+Acesse aceattorneyonline.com para atualizar.
+
+
+
+ You have been exiled from AO.
+Have a nice day.
+ Você foi exilado do Attorney Online.
+Tenha um bom dia.
+
+
+
+ Attorney Online 2
+
+
+
+
+ Loading
+ Carregando
+
+
+
+
+ Loading chars:
+%1/%2
+ Carregando personagens:
+%1/%2
+
+
+
+ Loading evidence:
+%1/%2
+ Carregando evidências:
+%1/%2
+
+
+
+
+ Loading music:
+%1/%2
+ Carregando músicas:
+%1/%2
+
+
+
+ You have been kicked from the server.
+Reason: %1
+ Você foi expulso do servidor.
+Motivo: %1
+
+
+
+ You have been banned from the server.
+Reason: %1
+ Você foi banido do servidor.
+Motivo: %1
+
+
+
+ You are banned on this server.
+Reason: %1
+ Você foi banido neste servidor.
+Motivo: %1
+
+
+
+ AOCaseAnnouncerDialog
+
+
+ Case Announcer
+ Anunciar caso
+
+
+
+ Case title:
+ Título do caso:
+
+
+
+ Defense needed
+ Precisa-se de Defesa
+
+
+
+ Prosecution needed
+ Precisa-se de Promotor
+
+
+
+ Judge needed
+ Precisa-se de Juíz
+
+
+
+ Jurors needed
+ Precisa-se de Jurados
+
+
+
+ Stenographer needed
+ Precisa-se de Estenógrafo
+
+
+
+ Witness needed
+ Precisa-se de Testemunha
+
+
+
+ AOOptionsDialog
+
+
+ Settings
+ Configurações
+
+
+
+ Gameplay
+ Jogabilidade
+
+
+
+ Theme:
+ Tema visual:
+
+
+
+ Sets the theme used in-game. If the new theme changes the lobby's look as well, you'll need to reload the lobby for the changes to take effect, such as by joining a server and leaving it.
+ Define o tema usado no jogo. Se o novo tema alterar a aparência do lobby, será necessário recarregá-lo para que as alterações tenham efeito, como ingressar em um servidor e deixá-lo.
+
+
+
+ Log goes downwards:
+ Log vai para baixo:
+
+
+
+ If ticked, new messages will appear at the bottom (like the OOC chatlog). The traditional (AO1) behaviour is equivalent to this being unticked.
+ Removed the part about AO1 behaviour, nobody cares boomer.
+ Se selecionado, novas mensagens irão aparecer na parte inferior (assim como o chat OOC).
+
+
+
+ Log length:
+ Tamanho do log:
+
+
+
+ The amount of messages the IC chatlog will keep before deleting older messages. A value of 0 or below counts as 'infinite'.
+ A quantidade de mensagens que o chat do IC manterá antes de excluir as mensagens mais antigas. Um valor igual ou inferior a 0 conta como 'infinito'.
+
+
+
+ Default username:
+ Nome de usuário padrão:
+
+
+
+ Your OOC name will be automatically set to this value when you join a server.
+ Seu nome OOC será automaticamente definido com esse valor quando você ingressar em um servidor.
+
+
+
+ Custom shownames:
+ Nomes personalizados:
+
+
+
+ Gives the default value for the in-game 'Custom shownames' tickbox, which in turn determines whether the client should display custom in-character names.
+ 'Custom shownames' changed to 'Shownames' because that's the actual name
+ Fornece o valor padrão para a caixa de seleção 'Shownames' no jogo, que determina se o cliente deve exibir nomes personalizados nos caracteres.
+
+
+
+ Backup MS:
+ MS de backup:
+
+
+
+ If the built-in server lookups fail, the game will try the address given here and use it as a backup master server address.
+ Se as pesquisas internas do servidor falharem, o jogo tentará o endereço fornecido aqui e o usará como um endereço de servidor principal de backup.
+
+
+
+ Discord:
+
+
+
+
+ Allows others on Discord to see what server you are in, what character are you playing, and how long you have been playing for.
+ Permite que outras pessoas no Discord vejam em que servidor você está, qual personagem está jogando e há quanto tempo está jogando.
+
+
+
+ Allow Shake/Flash:
+ Permitir Shake/Flash:
+
+
+
+ Allows screenshaking and flashing. Disable this if you have concerns or issues with photosensitivity and/or seizures.
+ Permite agitar e piscar. Desative isso se você tiver preocupações ou problemas com fotosensibilidade e/ou convulsões.
+
+
+
+ Language:
+ Língua:
+
+
+
+ Sets the language if you don't want to use your system language.
+ Define o idioma se você não quiser usar o idioma do sistema.
+
+
+
+ Callwords
+ Palavras-chave
+
+
+
+ <html><head/><body>Enter as many callwords as you would like. These are case insensitive. Make sure to leave every callword in its own line!<br>Do not leave a line with a space at the end -- you will be alerted everytime someone uses a space in their messages.</body></html>
+ <html><head/><body>Digite quantas palavras-chave você desejar. Estes não diferenciam maiúsculas de minúsculas. Certifique-se de deixar cada palavra chave em sua própria linha!<br>Não deixe uma linha com um espaço no final - você será alertado toda vez que alguém usar um espaço em suas mensagens.</body></html>
+
+
+
+ Audio
+ Áudio
+
+
+
+ Audio device:
+ Dispositivo de áudio:
+
+
+
+ Sets the audio device for all sounds.
+ Define o dispositivo de áudio para todos os sons.
+
+
+
+ Music:
+ Música:
+
+
+
+ Sets the music's default volume.
+ Define o volume padrão da música.
+
+
+
+ SFX:
+ SFX:
+
+
+
+ Sets the SFX's default volume. Interjections and actual sound effects count as 'SFX'.
+ Define o volume padrão do SFX. Interjeições e efeitos sonoros reais contam como 'SFX'.
+
+
+
+ Blips:
+
+
+
+
+ Sets the volume of the blips, the talking sound effects.
+ Define o volume dos blips, os efeitos sonoros de fala.
+
+
+
+ Blip rate:
+ Taxa de blip:
+
+
+
+ Sets the delay between playing the blip sounds.
+ Define o atraso entre a reprodução dos sons de blip.
+
+
+
+ Blank blips:
+ Blips em branco:
+
+
+
+ If true, the game will play a blip sound even when a space is 'being said'.
+ Se ativado, o jogo emitirá um sinal sonoro, mesmo quando um espaço estiver sendo "dito".
+
+
+
+ Enable Looping SFX:
+ Ative o SFX em loop:
+
+
+
+ If true, the game will allow looping sound effects to play on preanimations.
+ Se ativado, o jogo permitirá que efeitos sonoros em loop sejam reproduzidos em pré-animações.
+
+
+
+ Kill Music On Objection:
+ Parar a música no protesto:
+
+
+
+ If true, the game will stop music when someone objects, like in the actual games.
+ Se ativado, o jogo interrompe a música quando alguém protestar , como nos jogos reais.
+
+
+
+ Casing
+ Caso
+
+
+
+ This server supports case alerts.
+ Este servidor suporta anúncios de casos.
+
+
+
+ This server does not support case alerts.
+ Este servidor não suporta alertas de caso.
+
+
+
+ Pretty self-explanatory.
+ Bastante auto-explicativo.
+
+
+
+ Casing:
+ Caso:
+
+
+
+ If checked, you will get alerts about case announcements.
+ Se marcado, você será alertado quando houverem anúncios de casos.
+
+
+
+ Defense:
+ Defesa:
+
+
+
+ If checked, you will get alerts about case announcements if a defense spot is open.
+ Se marcado, você receberá alertas sobre os anúncios de casos, se um ponto de defesa estiver aberto.
+
+
+
+ Prosecution:
+ Promotor:
+
+
+
+ If checked, you will get alerts about case announcements if a prosecutor spot is open.
+ Se marcado, você receberá alertas sobre os anúncios de casos, se uma posição de promotor estiver disponível.
+
+
+
+ Judge:
+ Juíz:
+
+
+
+ If checked, you will get alerts about case announcements if the judge spot is open.
+ Se marcado, você receberá alertas sobre os anúncios de casos, se o local do juíz: estiver aberto.
+
+
+
+ Juror:
+ Jurado:
+
+
+
+ If checked, you will get alerts about case announcements if a juror spot is open.
+ Se marcado, você receberá alertas sobre os anúncios de casos, se um local do jurado estiver aberto.
+
+
+
+ Stenographer:
+ Estenógrafo:
+
+
+
+ If checked, you will get alerts about case announcements if a stenographer spot is open.
+ Se marcado, você receberá alertas sobre anúncios de casos, se um local de estenógrafo estiver aberto.
+
+
+
+ CM:
+ CM:
+
+
+
+ If checked, you will appear amongst the potential CMs on the server.
+ Se marcado, você aparecerá entre os CMs possíveis no servidor.
+
+
+
+ Witness:
+ Testemunha:
+
+
+
+ If checked, you will appear amongst the potential witnesses on the server.
+ Se marcado, você aparecerá entre as testemunhas em potencial no servidor.
+
+
+
+ Hosting cases:
+ Casos:
+
+
+
+ If you're a CM, enter what cases you are willing to host.
+ Se você é um CM, insira os casos que deseja hospedar.
+
+
+
+ Courtroom
+
+
+ Password
+ Senha
+
+
+
+ Spectator
+ Espectador
+
+
+
+
+ Search
+ Pesquisar
+
+
+
+ Passworded
+ A translation wouldn't fit because of the shitty theme system.
+
+
+
+
+ Taken
+ Em uso
+
+
+
+ Could not find %1
+ Não foi possível encontrar %1
+
+
+
+ Showname
+ A translation wouldn't fit because of the shitty theme system.
+
+
+
+
+ Message
+ Mensagem
+
+
+
+ OOC Message
+ Mensagem OOC
+
+
+
+ Name
+ Nome
+
+
+
+ Pre
+ A translation wouldn't fit because of the shitty theme system.
+
+
+
+
+ Flip
+ A translation wouldn't fit because of the shitty theme system.
+
+
+
+
+ Disable Modcalls
+
+
+
+
+
+ Casing
+ A translation wouldn't fit because of the shitty theme system.
+
+
+
+
+ Shownames
+ A translation wouldn't fit because of the shitty theme system.
+
+
+
+
+ No Interrupt
+ A translation wouldn't fit because of the shitty theme system.
+
+
+
+
+ White
+ Branco
+
+
+
+ Green
+ Verde
+
+
+
+ Red
+ Vermelho
+
+
+
+ Orange
+ Laranja
+
+
+
+ Blue
+ Azul
+
+
+
+ Yellow
+ Amarelo
+
+
+
+ Rainbow
+ Arco Iris
+
+
+
+ Pink
+ Rosa
+
+
+
+ Cyan
+ Ciano
+
+
+
+ % offset
+ % deslocamento
+
+
+
+ Music
+
+
+
+
+ Sfx
+
+
+
+
+ Blips
+
+
+
+
+ Log limit
+
+
+
+
+
+ Server
+
+
+
+
+ Change character
+
+
+
+
+ Reload theme
+
+
+
+
+ Call mod
+
+
+
+
+ Settings
+
+
+
+
+ A/M
+
+
+
+
+ Preanim
+
+
+
+
+ Back to Lobby
+ A translation wouldn't fit because of the shitty theme system.
+ Lobby
+
+
+
+
+ You were granted the Disable Modcalls button.
+ Você recebeu o botão Desativar Modcalls.
+
+
+
+ You have been banned.
+ Você foi banido.
+
+
+
+ This does nothing, but there you go.
+ Isso não faz nada, mas lá vai você.
+
+
+
+ You opened the settings menu.
+ Você abriu o menu de configurações.
+
+
+
+ You will now pair up with
+ Agora você vai fazer par com
+
+
+
+ if they also choose your character in return.
+ se eles também escolherem seu personagem em troca.
+
+
+
+ You are no longer paired with anyone.
+ Você não está mais fazendo par com ninguém.
+
+
+
+ Are you sure you typed that well? The char ID could not be recognised.
+ Você tem certeza que você escreveu isso certo? O ID do personagem não pôde ser encontrado.
+
+
+
+ You have set your offset to
+ Você definiu seu deslocamento como
+
+
+
+ Your offset must be between -100% and 100%!
+ Seu deslocamento deve estar entre -100% e 100%!
+
+
+
+ That offset does not look like one.
+ Esse deslocamento não se parece com um.
+
+
+
+ You switched your music and area list.
+ Você mudou sua lista de músicas e áreas.
+
+
+
+ You have forcefully enabled features that the server may not support. You may not be able to talk IC, or worse, because of this.
+ Você forçou recursos que o servidor pode não suportar. Você pode não conseguir falar de IC, ou pior, por causa disso.
+
+
+
+ Your pre-animations interrupt again.
+ Suas pré-animações interrompem novamente.
+
+
+
+ Your pre-animations will not interrupt text.
+ Suas pré-animações não interromperão o texto.
+
+
+
+ Couldn't open chatlog.txt to write into.
+ Não foi possível abrir o chatlog.txt para gravar.
+
+
+
+ The IC chatlog has been saved.
+ O chat do IC foi salvo.
+
+
+
+ You don't have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it's likely the case file you're looking for can't be found in there.
+ Você não possui uma pasta `base/cases/`! Foi feito para você, mas, como foi feito para você, provavelmente o arquivo do caso que você está procurando não pode ser encontrado lá.
+
+
+
+ You need to give a filename to load (extension not needed)! Make sure that it is in the `base/cases/` folder, and that it is a correctly formatted ini.
+Cases you can load: %1
+ Você precisa fornecer um nome de arquivo para carregar (extensão não necessária)! Verifique se está na pasta `base/cases/` e se é um ini formatado corretamente.
+Casos que você pode carregar: %1
+
+
+
+ Too many arguments to load a case! You only need one filename, without extension.
+ Muitos argumentos para carregar um caso! Você só precisa de um nome de arquivo, sem extensão.
+
+
+
+ Case made by %1.
+ Caso feito por %1.
+
+
+
+ Navigate to %1 for the CM doc.
+ Navegue para %1 para o documento do CM.
+
+
+
+ Your case "%1" was loaded!
+ Seu caso "%1" foi carregado!
+
+
+
+ You don't have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it's likely that you somehow deleted it.
+ Você não possui uma pasta `base/cases/`! Foi feito para você, mas, como foi feito para você, é provável que você o tenha excluído.
+
+
+
+ You need to give a filename to save (extension not needed) and the courtroom status!
+ Você deve fornecer um nome de arquivo para salvar (sem extensão necessária) e o estado do tribunal!
+
+
+
+ Too many arguments to save a case! You only need a filename without extension and the courtroom status!
+ Muitos argumentos para salvar um caso! Você só precisa de um nome de arquivo sem extensão e o estado do tribunal.
+
+
+
+ Succesfully saved, edit doc and cmdoc link on the ini!
+ Salvo com sucesso, você pode editar o documento e o link do documento no arquivo ini!
+
+
+
+ Master
+
+
+
+
+ Reason:
+ Razão:
+
+
+
+ Call Moderator
+ Chamar um Moderador
+
+
+
+
+ Error
+ Erro
+
+
+
+ You must provide a reason.
+ Você deve fornecer um motivo.
+
+
+
+ The message is too long.
+ A mensagem é muito longa.
+
+
+
+ Choose...
+ Escolha...
+
+
+
+ Images (*.png)
+ Imagens (* .png)
+
+
+
+ Add new evidence...
+ Adicionar nova evidência...
+
+
+
+ Lobby
+
+
+ Attorney Online 2
+
+
+
+
+ Name
+ Nome
+
+
+
+ It doesn't look like your client is set up correctly.
+Did you download all resources correctly from tiny.cc/getao, including the large 'base' folder?
+ Seu cliente não parece estar configurado corretamente.
+Você baixou todos os recursos corretamente do tiny.cc/getao, incluindo a grande pasta 'base'?
+
+
+
+ Version: %1
+ Versão: %1
+
+
+
+
+ Offline
+ Offline
+
+
+
+ Loading
+ Carregando
+
+
+
+ Cancel
+ Cancelar
+
+
+
+ <h2>Attorney Online %1</h2>The courtroom drama simulator<p><b>Source code:</b> <a href='https://github.com/AttorneyOnline/AO2-Client'>https://github.com/AttorneyOnline/AO2-Client</a><p><b>Major development:</b><br>OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter<p><b>Special thanks:</b><br>Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (UI design), Draxirch (UI design), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy
+ <h2>Attorney Online %1</h2>O simulador de drama jurídico<p><b>Código fonte:</b> <a href='https://github.com/AttorneyOnline/AO2-Client'>https://github.com/AttorneyOnline/AO2-Client</a><p><b>Desenvolvimento principal:</b><br>OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter<p><b>Agradecimentos especiais:</b><br>Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (UI design), Draxirch (UI design), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy
+
+
+
+ Online: %1/%2
+ Online: %1/%2
+
+
+
+ debug_functions
+
+
+ Error: %1
+
+
+
+
+ Error
+
+
+
+
+ Notice
+
+
+
+
diff --git a/resources.qrc b/resources.qrc
index fce01eb..1229bc8 100644
--- a/resources.qrc
+++ b/resources.qrc
@@ -6,6 +6,7 @@
resource/translations/ao_en.qmresource/translations/ao_jp.qmresource/translations/ao_es.qm
+ resource/translations/ao_pt.qmresource/translations/ao_ru.qmresource/translations/ao_pl.qm
diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp
index 3749b65..55f7583 100644
--- a/src/aooptionsdialog.cpp
+++ b/src/aooptionsdialog.cpp
@@ -188,6 +188,7 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
ui_language_combobox->addItem("en - English");
ui_language_combobox->addItem("de - Deutsch");
ui_language_combobox->addItem("es - Español");
+ ui_language_combobox->addItem("pt - Português");
ui_language_combobox->addItem("jp - 日本語");
ui_language_combobox->addItem("ru - Русский");
ui_gameplay_form->setWidget(11, QFormLayout::FieldRole, ui_language_combobox);