diff --git a/EDMarketConnector.wxs b/EDMarketConnector.wxs
index a71900d2..9c2a629b 100644
--- a/EDMarketConnector.wxs
+++ b/EDMarketConnector.wxs
@@ -17,8 +17,8 @@
Description="$(var.PRODUCTLONGNAME) installer"
InstallerVersion="300" Compressed="yes"
Platform="x86"
- Languages="1033,1029,1031,1034,1035,1036,1038,1040,1041,1043,1045,1046,1049,1058,1062,2074,0" />
-
+ Languages="1033,1029,1031,1034,1035,1036,1038,1040,1041,1043,1045,1046,1049,1058,1062,2070,2074,0" />
+
@@ -220,6 +220,9 @@
+
+
+
@@ -496,6 +499,7 @@
+
diff --git a/L10n/pt-PT.strings b/L10n/pt-PT.strings
new file mode 100644
index 00000000..ba9cf192
--- /dev/null
+++ b/L10n/pt-PT.strings
@@ -0,0 +1,543 @@
+/* [inara.py] */
+"Error: Can't connect to Inara" = "Erro: Não é possível conectar ao Inara";
+
+/* [inara.py] */
+"Error: Inara {MSG}" = "Erro: Inara: {MSG}";
+
+/* Section heading in settings. [inara.py] */
+"Inara credentials" = "Credenciais Inara";
+
+/* [edsm.py] */
+"Send flight log and Cmdr status to EDSM" = "Enviar dados de voo e o estado do CMDT para o EDSM";
+
+/* [inara.py] */
+"Send flight log and Cmdr status to Inara" = "Enviar dados de voo e o estado do CMDT para o Inara";
+
+/* Settings prompt for preferred ship loadout, system and station info websites. [prefs.py] */
+"Preferred websites" = "Websites preferidos";
+
+/* Setting to decide which ship outfitting website to link to - either E:D Shipyard or Coriolis. [prefs.py] */
+"Shipyard" = "Estaleiro";
+
+/* Language name */
+"!Language" = "Português (Portugal)";
+
+/* Use same text as E:D Launcher's verification dialog. [prefs.py] */
+"A verification code has now been sent to the{CR}email address associated with your Elite account." = "Um código de verificação foi agora enviado para o{CR}endereço de e-mail associado à sua conta de Elite Dangerous.";
+
+/* App menu entry on OSX. [EDMarketConnector.py] */
+"About {APP}" = "Sobre {APP}";
+
+/* Federation rank. [stats.py] */
+"Admiral" = "Almirante";
+
+/* Explorer rank. [stats.py] */
+"Aimless" = "Sem Destino";
+
+/* Appearance setting. [EDMarketConnector.py] */
+"Always on top" = "Sempre por cima";
+
+/* CQC rank. [stats.py] */
+"Amateur" = "Amador";
+
+/* EDSM setting. [edsm.py] */
+"API Key" = "Chave API";
+
+/* Tab heading in settings. [prefs.py] */
+"Appearance" = "Aparência";
+
+/* Output setting. [prefs.py] */
+"Automatically update on docking" = "Actualizar automaticamente ao atracar";
+
+/* Cmdr stats. [stats.py] */
+"Balance" = "Balanço";
+
+/* Empire rank. [stats.py] */
+"Baron" = "Barão";
+
+/* Trade rank. [stats.py] */
+"Broker" = "Corretor";
+
+/* Folder selection button on Windows. [prefs.py] */
+"Browse..." = "Procurar...";
+
+/* Federation rank. [stats.py] */
+"Cadet" = "Cadete";
+
+/* CQC rank. [stats.py] */
+"Champion" = "Campeão";
+
+/* Folder selection button on OSX. [prefs.py] */
+"Change..." = "Alterar...";
+
+/* Menu item. [EDMarketConnector.py] */
+"Check for Updates..." = "Procurar por Actualizações...";
+
+/* Federation rank. [stats.py] */
+"Chief Petty Officer" = "Segundo-Sargento";
+
+/* Main window. [EDMarketConnector.py] */
+"Cmdr" = "Cmdt";
+
+/* Privacy setting. [prefs.py] */
+"Cmdr name" = "Nome do Cmdt";
+
+/* Ranking. [stats.py] */
+"Combat" = "Combate";
+
+/* EDSM setting. [edsm.py] */
+"Commander Name" = "Nome do Comandante";
+
+/* Combat rank. [stats.py] */
+"Competent" = "Competente";
+
+/* Tab heading in settings. [prefs.py] */
+"Configuration" = "Configuração";
+
+/* Update button in main window. [EDMarketConnector.py] */
+"cooldown {SS}s" = "aguarde {SS}s";
+
+/* As in Copy and Paste. [EDMarketConnector.py] */
+"Copy" = "Copiar";
+
+/* Empire rank. [stats.py] */
+"Count" = "Conde";
+
+/* Ranking. [stats.py] */
+"CQC" = "CQC";
+
+/* Section heading in settings. [prefs.py] */
+"Credentials" = "Credenciais";
+
+/* Combat rank. [stats.py] */
+"Dangerous" = "Perigoso";
+
+/* Appearance theme setting. [prefs.py] */
+"Dark" = "Escuro";
+
+/* Combat rank. [stats.py] */
+"Deadly" = "Mortal";
+
+/* Trade rank. [stats.py] */
+"Dealer" = "Negociante";
+
+/* Appearance theme and language setting. [l10n.py] */
+"Default" = "Predefinido";
+
+/* Output setting under 'Send system and scan data to the Elite Dangerous Data Network' new in E:D 2.2. [prefs.py] */
+"Delay sending until docked" = "Atrasar o envio até estar atracado";
+
+/* List of plugins in settings. [prefs.py] */
+"Disabled Plugins" = "Plugins Desactivados";
+
+/* Help menu item. [EDMarketConnector.py] */
+"Documentation" = "Documentação";
+
+/* Empire rank. [stats.py] */
+"Duke" = "Duque";
+
+/* Location of the new Journal file in E:D 2.2. [EDMarketConnector.py] */
+"E:D journal file location" = "Localização do ficheiro do diário E:D";
+
+/* Empire rank. [stats.py] */
+"Earl" = "Earl";
+
+/* Menu title. [EDMarketConnector.py] */
+"Edit" = "Editar";
+
+/* Top rank. [stats.py] */
+"Elite" = "Elite";
+
+/* Section heading in settings. [edsm.py] */
+"Elite Dangerous Star Map credentials" = "Credenciais do Elite Dangerous Star Map (EDSM)";
+
+/* Ranking. [stats.py] */
+"Empire" = "Império";
+
+/* List of plugins in settings. [prefs.py] */
+"Enabled Plugins" = "Plugins Activados";
+
+/* Federation rank. [stats.py] */
+"Ensign" = "Subtenente";
+
+/* Trade rank. [stats.py] */
+"Entrepreneur" = "Empreendedor";
+
+/* [EDMarketConnector.py] */
+"Error: Can't connect to EDDN" = "Erro: Não é possível conectar ao EDDN";
+
+/* [edsm.py] */
+"Error: Can't connect to EDSM" = "Erro: Não é possível conectar ao EDSM";
+
+/* [edsm.py] */
+"Error: EDSM {MSG}" = "Erro: EDSM {MSG}";
+
+/* Raised when cannot contact the Companion API server. [companion.py] */
+"Error: Frontier server is down" = "Erro: O servidor da Frontier está offline";
+
+/* Raised when Companion API server is returning old data, e.g. when the servers are too busy. [companion.py] */
+"Error: Frontier server is lagging" = "Erro: O servidor da Frontier está atrasado";
+
+/* Raised when the Companion API server thinks that the user has not purchased E:D. i.e. doesn't have the correct 'SKU'. [companion.py] */
+"Error: Frontier server SKU problem" = "Erro: Problema de SKU no servidor da Frontier";
+
+/* [companion.py] */
+"Error: Invalid Credentials" = "Erro: Credenciais Inválidas";
+
+/* [companion.py] */
+"Error: Verification failed" = "Erro: Falha na Verificação";
+
+/* Raised when the user has multiple accounts and the username/password setting is not for the account they're currently playing OR the user has reset their Cmdr and the Companion API server is still returning data for the old Cmdr. [companion.py] */
+"Error: Wrong Cmdr" = "Erro: Cmdt errado";
+
+/* Item in the File menu on Windows. [EDMarketConnector.py] */
+"Exit" = "Sair";
+
+/* Combat rank. [stats.py] */
+"Expert" = "Perito";
+
+/* Ranking. [stats.py] */
+"Explorer" = "Exploração";
+
+/* Ranking. [stats.py] */
+"Federation" = "Federação";
+
+/* [EDMarketConnector.py] */
+"Fetching data..." = "Obtendo dados...";
+
+/* Multicrew role. [EDMarketConnector.py] */
+"Fighter" = "Caça";
+
+/* Menu title. [EDMarketConnector.py] */
+"File" = "Ficheiro";
+
+/* Section heading in settings. [prefs.py] */
+"File location" = "Localização do Ficheiro";
+
+/* CQC rank. [stats.py] */
+"Gladiator" = "Gladiador";
+
+/* Multicrew role. [EDMarketConnector.py] */
+"Gunner" = "Artilheiro";
+
+/* Combat rank. [stats.py] */
+"Harmless" = "Inofensivo";
+
+/* Multicrew role. [EDMarketConnector.py] */
+"Helm" = "Comando";
+
+/* Menu title. [EDMarketConnector.py] */
+"Help" = "Ajuda";
+
+/* CQC rank. [stats.py] */
+"Helpless" = "Indefeso";
+
+/* CQC rank. [stats.py] */
+"Hero" = "Herói";
+
+/* Dark theme color setting. [prefs.py] */
+"Highlighted text" = "Texto destacado";
+
+/* Hotkey/Shortcut settings prompt on Windows. [prefs.py] */
+"Hotkey" = "Tecla Rápida";
+
+/* [prefs.py] */
+"How do you want to be identified in the saved data" = "Como deseja ser identificado nos dados guardados?";
+
+/* Tab heading in settings. [prefs.py] */
+"Identity" = "Identidade";
+
+/* Hotkey/Shortcut settings prompt on OSX. [prefs.py] */
+"Keyboard shortcut" = "Atalho de Teclado";
+
+/* Empire rank. [stats.py] */
+"King" = "Rei";
+
+/* Empire rank. [stats.py] */
+"Knight" = "Cavaleiro";
+
+/* Appearance setting prompt. [prefs.py] */
+"Language" = "Linguagem";
+
+/* [EDMarketConnector.py] */
+"Last updated at {HH}:{MM}:{SS}" = "Última actualização: {HH}:{MM}:{SS}";
+
+/* Federation rank. [stats.py] */
+"Lieutenant" = "Tenente";
+
+/* Federation rank. [stats.py] */
+"Lieutenant Commander" = "Capitão-tenente";
+
+/* Cmdr stats. [stats.py] */
+"Loan" = "Empréstimo";
+
+/* [EDMarketConnector.py] */
+"Logging in..." = "Realizando login...";
+
+/* Empire rank. [stats.py] */
+"Lord" = "Lorde";
+
+/* [prefs.py] */
+"Market data in CSV format file" = "Ficheiro dos dados de Mercado no formato CSV";
+
+/* [prefs.py] */
+"Market data in Trade Dangerous format file" = "Ficheiro dos dados de Mercado no formato Trade Dangerous";
+
+/* Empire rank. [stats.py] */
+"Marquis" = "Marquês";
+
+/* Combat rank. [stats.py] */
+"Master" = "Mestre";
+
+/* Trade rank. [stats.py] */
+"Merchant" = "Mercador";
+
+/* Federation rank. [stats.py] */
+"Midshipman" = "Aspirante";
+
+/* Explorer rank. [stats.py] */
+"Mostly Aimless" = "Quase sem destino";
+
+/* Combat rank. [stats.py] */
+"Mostly Harmless" = "Praticamente Inofensivo";
+
+/* CQC rank. [stats.py] */
+"Mostly Helpless" = "Praticamente Indefeso";
+
+/* Trade rank. [stats.py] */
+"Mostly Penniless" = "Praticamente Pobre";
+
+/* No hotkey/shortcut currently defined. [prefs.py] */
+"None" = "Nenhum";
+
+/* Dark theme color setting. [prefs.py] */
+"Normal text" = "Texto normal";
+
+/* Displayed when credentials settings are greyed out. [prefs.py] */
+"Not available while E:D is at the main menu" = "Não disponível enquanto o E:D está no menu principal";
+
+/* Combat rank. [stats.py] */
+"Novice" = "Novato";
+
+/* [prefs.py] */
+"OK" = "OK";
+
+/* Hotkey/Shortcut setting. [prefs.py] */
+"Only when Elite: Dangerous is the active app" = "Apenas quando o Elite:Dangerous é a aplicação activa";
+
+/* Button that opens a folder in Explorer/Finder. [prefs.py] */
+"Open" = "Abrir";
+
+/* Shortcut settings button on OSX. [prefs.py] */
+"Open System Preferences" = "Abrir Preferências do Sistema";
+
+/* Tab heading in settings. [prefs.py] */
+"Output" = "Saída";
+
+/* Empire rank. [stats.py] */
+"Outsider" = "Forasteiro";
+
+/* Use same text as E:D Launcher's login dialog. [prefs.py] */
+"Password" = "Senha";
+
+/* Explorer rank. [stats.py] */
+"Pathfinder" = "Descobridor";
+
+/* Trade rank. [stats.py] */
+"Peddler" = "Vendedor";
+
+/* Trade rank. [stats.py] */
+"Penniless" = "Falido";
+
+/* Federation rank. [stats.py] */
+"Petty Officer" = "Subsargento";
+
+/* Explorer rank. [stats.py] */
+"Pioneer" = "Pioneiro";
+
+/* Hotkey/Shortcut setting. [prefs.py] */
+"Play sound" = "Reproduzir som";
+
+/* [prefs.py] */
+"Please choose what data to save" = "Por favor escolher quais os dados a guardar";
+
+/* Use same text as E:D Launcher's verification dialog. [prefs.py] */
+"Please enter the code into the box below." = "Por favor digite o código no campo abaixo";
+
+/* Use same text as E:D Launcher's login dialog. [prefs.py] */
+"Please log in with your Elite: Dangerous account details" = "Por favor, efectue login com os detalhes da sua conta de Elite:Dangerous";
+
+/* Tab heading in settings. [prefs.py] */
+"Plugins" = "Plugins";
+
+/* Section heading in settings. [prefs.py] */
+"Plugins folder" = "Pasta dos Plugins";
+
+/* Federation rank. [stats.py] */
+"Post Captain" = "Capitão de Fragata";
+
+/* Federation rank. [stats.py] */
+"Post Commander" = "Tenente de Fragata";
+
+/* Ranking. [stats.py] */
+"Powerplay" = "Jogos de Poder";
+
+/* [prefs.py] */
+"Preferences" = "Preferências";
+
+/* Empire rank. [stats.py] */
+"Prince" = "Príncipe";
+
+/* Section heading in settings. [prefs.py] */
+"Privacy" = "Privacidade";
+
+/* CQC rank. [stats.py] */
+"Professional" = "Profissional";
+
+/* Privacy setting. [prefs.py] */
+"Pseudo-anonymized ID" = "Identificação pseudo-anónima";
+
+/* Explorer rank. [stats.py] */
+"Ranger" = "Patrulheiro";
+
+/* Power rank. [stats.py] */
+"Rating 1" = "Nível 1";
+
+/* Power rank. [stats.py] */
+"Rating 2" = "Nível 2";
+
+/* Power rank. [stats.py] */
+"Rating 3" = "Nível 3";
+
+/* Power rank. [stats.py] */
+"Rating 4" = "Nível 4";
+
+/* Power rank. [stats.py] */
+"Rating 5" = "Nível 5";
+
+/* Shortcut settings prompt on OSX. [prefs.py] */
+"Re-start {APP} to use shortcuts" = "Reinicie o {APP} para usar os atalhos";
+
+/* Federation rank. [stats.py] */
+"Rear Admiral" = "Contra-Almirante";
+
+/* Federation rank. [stats.py] */
+"Recruit" = "Recruta";
+
+/* Help menu item. [EDMarketConnector.py] */
+"Release Notes" = "Notas da Versão";
+
+/* Multicrew role label in main window. [EDMarketConnector.py] */
+"Role" = "Função";
+
+/* Menu item. [EDMarketConnector.py] */
+"Save Raw Data..." = "Salvar dados em bruto...";
+
+/* Explorer rank. [stats.py] */
+"Scout" = "Batedor";
+
+/* CQC rank. [stats.py] */
+"Semi Professional" = "Semi Profissional";
+
+/* Output setting. [prefs.py] */
+"Send station data to the Elite Dangerous Data Network" = "Enviar dados da estação para o Elite Dangerous Data Network";
+
+/* Output setting new in E:D 2.2. [prefs.py] */
+"Send system and scan data to the Elite Dangerous Data Network" = "Envia dados do Sistema e Scans efectuados para o Elite Dangerous Data Network";
+
+/* [EDMarketConnector.py] */
+"Sending data to EDDN..." = "A enviar dados para o EDDN...";
+
+/* Empire rank. [stats.py] */
+"Serf" = "Servo";
+
+/* Item in the File menu on Windows. [EDMarketConnector.py] */
+"Settings" = "Definições";
+
+/* Main window. [EDMarketConnector.py] */
+"Ship" = "Nave";
+
+/* Output setting. [prefs.py] */
+"Ship loadout" = "Módulos da nave";
+
+/* Status dialog title. [stats.py] */
+"Ships" = "Naves";
+
+/* Empire rank. [stats.py] */
+"Squire" = "Escudeiro";
+
+/* Main window. [EDMarketConnector.py] */
+"Station" = "Estação";
+
+/* [EDMarketConnector.py] */
+"Station doesn't have a market!" = "A Estação não possui um mercado!";
+
+/* [EDMarketConnector.py] */
+"Station doesn't have anything!" = "A Estação não tem nada!";
+
+/* Menu item. [EDMarketConnector.py] */
+"Status" = "Estado";
+
+/* Explorer rank. [stats.py] */
+"Surveyor" = "Cartógrafo";
+
+/* Main window. [EDMarketConnector.py] */
+"System" = "Sistema";
+
+/* Appearance setting. [prefs.py] */
+"Theme" = "Tema";
+
+/* Help text in settings. [prefs.py] */
+"Tip: You can disable a plugin by{CR}adding '{EXT}' to its folder name" = "Dica: Pode desactivar um plugin{CR}ao adicionar '{EXT}' ao nome da sua pasta";
+
+/* Ranking. [stats.py] */
+"Trade" = "Comércio";
+
+/* Explorer rank. [stats.py] */
+"Trailblazer" = "Guia";
+
+/* Appearance theme setting. [prefs.py] */
+"Transparent" = "Transparente";
+
+/* Trade rank. [stats.py] */
+"Tycoon" = "Magnata";
+
+/* Update button in main window. [EDMarketConnector.py] */
+"Update" = "Actualizar";
+
+/* Use same text as E:D Launcher's login dialog. [prefs.py] */
+"Username (Email)" = "Utilizador (E-mail)";
+
+/* Status dialog subtitle - CR value of ship. [stats.py] */
+"Value" = "Valor";
+
+/* Federation rank. [stats.py] */
+"Vice Admiral" = "Vice-Almirante";
+
+/* Menu title on OSX. [EDMarketConnector.py] */
+"View" = "Ver";
+
+/* Empire rank. [stats.py] */
+"Viscount" = "Visconde";
+
+/* Federation rank. [stats.py] */
+"Warrant Officer" = "Sargento-mor";
+
+/* Shouldn't happen. [EDMarketConnector.py] */
+"What are you flying?!" = "No que é que está a voar?";
+
+/* Shouldn't happen. [EDMarketConnector.py] */
+"Where are you?!" = "Onde é que está?";
+
+/* Shouldn't happen. [EDMarketConnector.py] */
+"Who are you?!" = "Quem é você?";
+
+/* Menu title on OSX. [EDMarketConnector.py] */
+"Window" = "Janela";
+
+/* [EDMarketConnector.py] */
+"You're not docked at a station!" = "Não está atracado numa Estação";
+
+/* Shortcut settings prompt on OSX. [prefs.py] */
+"{APP} needs permission to use shortcuts" = "A {APP} precisa de autorização para usar atalhos";
+
diff --git a/README.md b/README.md
index 17a289f2..3a28f95a 100644
--- a/README.md
+++ b/README.md
@@ -286,7 +286,8 @@ Acknowledgements
* Thanks to Cmdr magni1200s for the Japanese translation.
* Thanks to Cmdr bubis7 for the Latvian translation.
* Thanks to Cmdr Amarok 73 for the Polish translation.
-* Thanks to Cmdrs Pivatto (@rafaelpivatto), Moraes (@wesleymoura), Wladimir JRC, and Warlord from Cobra Wing for the Portugese translation.
+* Thanks to Cmdrs Pivatto (@rafaelpivatto), Moraes (@wesleymoura), Wladimir JRC, and Warlord from Cobra Wing for the Portuguese (Brazil) translation.
+* Thanks to Carlos Oliveira (@idontcare1996) for the Portuguese (Portugal) translation.
* Thanks to Shadow Panther for keeping the Russian translation up to date.
* Thanks to Cmdr SuperBrain for the Serbian translation.
* Thanks to Armando Ota for the Slovenian translation.