diff --git a/dictionaries/admin.php b/dictionaries/admin.php
index 88b7a7d670eed7244802115212eaaa705011b333..56d952c9305e8c0b2391d8c60140f849e069ed94 100644
--- a/dictionaries/admin.php
+++ b/dictionaries/admin.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'cfg_check_header' => array (
 		'no' => 'Sjekker konfigurasjonen',
@@ -72,6 +81,7 @@ $lang = array(
 		'sl' => 'OdveÄŤne nastavitve v konfiguracijski datoteki',
 		'hr' => 'Suvišne opcije u konfiguracijskoj datoteci',
 		'hu' => 'Felesleges opciók a konfigurációs állományban',
+		'pl' => 'Zbędne opcje w pliku konfiguracyjnym',
 		'pt' => 'Opções supérfluas do ficheiro de configuração',
 		'pt-BR' => 'Opções supérfluas no arquivo de configuração',
 	),
@@ -131,6 +141,7 @@ $lang = array(
 		'sl' => 'Za pregled podrobnosti SAML entitete, kliknite na glavo te entitete',
 		'hr' => 'Da biste pregledali detalje za SAML entitet, kliknite na zaglavlje SAML entiteta.',
 		'hu' => 'A SAML entitások részleteiért kattintson a SAML entitás fejlécére',
+		'pl' => 'Kliknij na nagłówek końcówki aby wyświetlić szczegóły SAML.',
 		'pt' => 'Para obter detalhes sobre uma entidade SAML, clique no tĂ­tulo da entidade.',
 		'pt-BR' => 'Para ver os detalhes da entidade SAML, clique ',
 	),
@@ -385,6 +396,7 @@ $lang = array(
 		'sl' => 'Metapodatkovna sintaktiÄŤna analiza (parser)',
 		'hr' => 'Analizator metapodataka',
 		'hu' => 'Metaadat értelmező',
+		'pl' => 'Parser metadanych',
 		'pt' => 'Conversor de Metadados',
 		'pt-BR' => 'Parser Metadata',
 	),
@@ -504,6 +516,7 @@ $lang = array(
 		'sl' => 'Tu so metapodatki, ki jih je zgeneriral simpleSAMLphp. Dokument lahko pošljete zaupanja vrednim partnerjem, s katerimi boste ustvarili federacijo.',
 		'hr' => 'Ovo su metapodaci koje je simpleSAMLphp generirao za vas. Ove metapodatke moĹľete poslati partnerima s kojima Ĺľelite uspostaviti AAI federaciju.',
 		'hu' => 'Ezeket a metaadatokat a SimpleSAMLphp generálta. Ezt a dokumentumot küldheti el föderációs partnerei számára.',
+		'pl' => 'Tutaj sa metadane, które simpleSAMLphp wygenerował dla Ciebie. Możesz je wysłać zaufanym partnerom w celu stworzenia zaufanej federacji.',
 		'pt' => 'De seguida pode encontrar os metadados gerados pelo simpleSAMLphp. Pode enviar este documento de metadados aos seus parceiros para configurar uma federação.',
 		'pt-BR' => 'Aqui está a metadata que o simpleSAMLphp gerou para você. Você pode enviar este documento metadata para parceiros confiáveis para a configuração de uma federação confiável.',
 	),
@@ -518,6 +531,7 @@ $lang = array(
 		'sl' => 'XML metapodatki se nahajajo na <a href="%METAURL%">tem naslovu</a>:',
 		'hr' => 'Metapodatke moĹľete dohvatiti na <a href="%METAURL%">ovoj adresi</a>:',
 		'hu' => 'A következő címről <a href="%METAURL%">töltheti le a metaadatokat</a>:',
+		'pl' => 'Możesz <a href="%METAURL%">pobrać metadane w formacie xml</a>:',
 		'pt' => 'Pode <a href="%METAURL%">obter os metadados em XML num URL dedicado</a>:',
 		'pt-BR' => 'VocĂŞ pode obter as metadatas xml <a href="%METAURL%"> em uma URL dedicada</a>:',
 	),
@@ -547,6 +561,7 @@ $lang = array(
 		'sl' => 'V SAML 2.0 Metapodatkovni XML format:',
 		'hr' => 'SAML 2.0 XML format metapodataka:',
 		'hu' => 'SAML 2.0 XML formátumban:',
+		'pl' => 'W formacie SAML 2.0 Metadata XML',
 		'pt' => 'Metadados no formato XML SAML 2.0',
 		'pt-BR' => 'Em formato SAML 2.0 Metadata XML',
 	),
@@ -631,6 +646,7 @@ $lang = array(
 		'sl' => 'Vpišite e-poštni naslov, preko katerega vas bo lahko kontaktiral administrator.',
 		'hr' => 'Unesite vašu e-mail adresu kako bi vas administrator IdP-a mogao kontaktirati:',
 		'hu' => 'Adjon meg egy e-mail címet, amin az IdP adminisztrátora szükség eseten felveheti önnel a kapcsolatot:',
+		'pl' => 'Wprowadź swój adres email, na który administrator Dostawcy Tożsamości może kontaktować się z Tobą:',
 		'pt' => 'Preencha o seu endereço de e-mail para que o administrador do fornecedor de identidade (IdP) possa entrar em contacto consigo:',
 	),
 	'metadata_send_sendbutton' => array (
diff --git a/dictionaries/attributes.php b/dictionaries/attributes.php
index 82e665391551e3225d0378313f69b87b38d34688..1b9e9d9edb8855709328fc50afba1d13fe188d68 100644
--- a/dictionaries/attributes.php
+++ b/dictionaries/attributes.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'attribute_cn' => array (
 		'no' => 'Fullt navn',
@@ -34,7 +43,7 @@ $lang = array(
 		'lb' => 'Domain Komponent',
 		'sl' => 'Domenska komponenta (DC)',
 		'hr' => 'Domenska komponenta (DC)',
-		'hu' => 'domain összetevő',
+		'hu' => 'Domain összetevő (DC)',
 		'pl' => 'Składnik nazwy domenowej (DC)',
 		'pt' => 'Componente de domĂ­nio',
 		'pt-BR' => 'Componente do DomĂ­nio (DC)',
@@ -52,7 +61,7 @@ $lang = array(
 		'lb' => 'Ugewisenen Numm',
 		'sl' => 'Prikazno ime',
 		'hr' => 'Ime koje se prikazuje',
-		'hu' => 'Megjelenő név',
+		'hu' => 'Megjeleníthető név',
 		'pl' => 'Nazwa wyświetlana (Display name)',
 		'pt' => 'Nome de apresentação',
 		'pt-BR' => 'Nome a ser mostrado',
@@ -277,7 +286,7 @@ $lang = array(
 		'hr' => 'Organizacijska jedinica',
 		'hu' => 'Szervezeti egység',
 		'pl' => 'Jednostka organizacyjna (Organizational unit)',
-		'pt' => 'Unidade orgânica',
+		'pt' => 'Unidade organizacional',
 		'pt-BR' => 'Unidade Organizacional (OU)',
 	),
 	'attribute_postaladdress' => array (
@@ -704,6 +713,7 @@ $lang = array(
 		'sl' => 'Vpisna številka',
 		'hr' => 'Lokalni brojÄŤani identifikator osobe u ustanovi (LOCAL_NO)',
 		'hu' => 'Helyi azonosító szám',
+		'pl' => 'Local identity number',
 		'pt' => 'Número de Identificação local',
 		'pt-BR' => 'Número de Identificação Local',
 	),
@@ -737,6 +747,7 @@ $lang = array(
 		'nl' => 'Distinguished name (DN) van de organisatie hoofdafdeling waartoe de persoon behoort',
 		'sl' => 'Polno ime (DN) domaÄŤega oddelka, kateremu pripada oseba',
 		'hr' => 'DN organizacijske jedinice korisnika',
+		'hu' => 'A személy elsődleges szervezeti egységének azonosító neve (DN-je)',
 		'pt' => 'DN da unidade orgânica',
 	),
 	'attribute_userpassword' => array (
@@ -744,11 +755,14 @@ $lang = array(
 		'nn' => 'Passord for brukaren (lagra som hash-verdi)',
 		'da' => 'Hash-værdi af brugerens kodeord',
 		'en' => 'User\'s password hash',
+		'de' => 'Passwort Hash des Benutzers',
 		'sv' => 'Användarens lösenordshash',
+		'fi' => 'Käyttäjän salasanatiiviste',
 		'es' => 'Clave o contraseña y método de encriptación utilizado  ',
 		'nl' => 'Password hash',
 		'sl' => 'Uporabnikovo zgoščeno geslo',
 		'hr' => 'Kriptirana korisniÄŤka zaporka',
+		'hu' => 'A felhasználó jelszava (kódolva)',
 		'pl' => 'Zakodowane hasło użytkownika',
 		'pt' => 'Senha do utilizador',
 	),
@@ -759,10 +773,12 @@ $lang = array(
 		'en' => 'Organization name',
 		'de' => 'Name der Organisation',
 		'sv' => 'Organisationsnamn',
+		'fi' => 'Organisaation nimi',
 		'es' => 'Nombre de la OrganizaciĂłn',
 		'nl' => 'Organisatie naam',
 		'sl' => 'Naziv organizacije',
 		'hr' => 'Naziv ustanove',
+		'hu' => 'Szervezet neve',
 		'pl' => 'Nazwa organizacji (Organization name)',
 		'pt' => 'Nome da organização',
 	),
@@ -773,10 +789,12 @@ $lang = array(
 		'en' => 'Organization\'s location',
 		'de' => 'Ort der Organisation',
 		'sv' => 'Organisationens lokalisering',
+		'fi' => 'Organisaation sijainti',
 		'es' => 'UbicaciĂłn de la OrganizaciĂłn',
 		'nl' => 'Organisatie vestiging',
 		'sl' => 'Lokacija organizacije',
 		'hr' => 'Lokacija na kojoj se ustanova nalazi',
+		'hu' => 'Szervezet cĂ­me',
 		'pl' => 'Miejsce organizacji (Organization\'s location)',
 		'pt' => 'Localização da Organização',
 	),
@@ -787,10 +805,12 @@ $lang = array(
 		'en' => 'Organization\'s web page',
 		'de' => 'Webseite der Organisation',
 		'sv' => 'Organisationens webbsida',
+		'fi' => 'Organisaation verkkosivu',
 		'es' => 'Página web de la organización',
 		'nl' => 'Organisatie webadres',
 		'sl' => 'Spletna stran organizacije',
 		'hr' => 'Web stranice ustanove',
+		'hu' => 'Szervezet weboldala',
 		'pl' => 'Strona organizacji',
 		'pt' => 'Página web da Organização',
 	),
@@ -801,10 +821,12 @@ $lang = array(
 		'en' => 'Organization\'s fax number',
 		'de' => 'Fax Nummer der Organisation',
 		'sv' => 'Organisationens faxnummer',
+		'fi' => 'Organisaation faksinumero',
 		'es' => 'NĂşmero de fax de la OrganizaciĂłn',
 		'nl' => 'Organisatie fax nummer',
 		'sl' => 'Fax številka organizacije',
 		'hr' => 'Fax broj ustanove',
+		'hu' => 'Szervezet fax száma',
 		'pl' => 'Numer faksu organizacji',
 		'pt' => 'Fax da Organização',
 	),
@@ -814,10 +836,12 @@ $lang = array(
 		'da' => 'Institutionens officielle navn',
 		'en' => 'Organization\'s legal name',
 		'sv' => 'Organisationens offciella (legala) namn',
+		'fi' => 'Organisaation virallinen nimi',
 		'es' => 'Nombre legal de la OrganizaciĂłn',
 		'nl' => 'Organisatie juridische naam',
 		'sl' => 'Polno ime organizacije',
 		'hr' => 'SluĹľbeni naziv ustanove',
+		'hu' => 'Szervezet hivatalos neve',
 		'pl' => 'Nazwa zarejestrowana organizacji',
 		'pt' => 'Nome legal da Organização',
 	),
@@ -828,10 +852,12 @@ $lang = array(
 		'en' => 'Organization\'s postal code',
 		'de' => 'Postleitzahl der Organisation',
 		'sv' => 'Organisationens postnummer',
+		'fi' => 'Organisaation postinumero',
 		'es' => 'CĂłdigo postal de la OrganizaciĂłn',
 		'nl' => 'Organisatie postcode',
 		'sl' => 'Poštna številka organizacije',
 		'hr' => 'Poštanski broj ustanove',
+		'hu' => 'Szervezet irányítószáma',
 		'pl' => 'Kod pocztowy organizacji',
 		'pt' => 'Código postal da Organização',
 	),
@@ -845,6 +871,7 @@ $lang = array(
 		'nl' => 'Organisatie nummer',
 		'sl' => 'Organizacijska številka',
 		'hr' => 'BrojÄŤani identifikator ustanove',
+		'pl' => 'Numer organizacyjny',
 		'pt' => 'Número da Organização',
 	),
 	'attribute_edupersonorgdn_businesscategory' => array (
@@ -857,6 +884,7 @@ $lang = array(
 		'nl' => 'Organisatie classificatie',
 		'sl' => 'Kategorija organizacije',
 		'hr' => 'Vrsta ustanove',
+		'hu' => 'Szervezet kategóriája',
 		'pt' => 'Categoria da Organização',
 	),
 	'attribute_edupersonorgdn_dc' => array (
@@ -869,6 +897,7 @@ $lang = array(
 		'nl' => 'Domein component (DC) van de organisatie',
 		'sl' => 'Domenska komponenta (DC) organizacije',
 		'hr' => 'DC ustanove',
+		'hu' => 'Szervezet domain-je (DC)',
 		'pt' => 'Componente de domínio (DC) da organização',
 	),
 	'attribute_edupersonorgdn_description' => array (
@@ -882,6 +911,7 @@ $lang = array(
 		'nl' => 'Beschrijving van de organisatie',
 		'sl' => 'Opis organizacije',
 		'hr' => 'Opis ustanove',
+		'hu' => 'Szervezet leírása',
 		'pl' => 'Opis organizacji',
 		'pt' => 'Descrição da Organização',
 	),
@@ -895,6 +925,8 @@ $lang = array(
 		'nl' => 'Algemene naam van de organisatie',
 		'sl' => 'Polno ime (CN) organizacije',
 		'hr' => 'Jedinstveni naziv ustanove',
+		'hu' => 'Szervezet neve',
+		'pl' => 'Nazwa Organizacji',
 		'pt' => 'Nome completo da Organização',
 	),
 	'attribute_edupersonorgdn_postaladdress' => array (
@@ -907,6 +939,7 @@ $lang = array(
 		'nl' => 'Organisatie adres',
 		'sl' => 'Naslov organizacije',
 		'hr' => 'Poštanska adresa ustanove',
+		'hu' => 'Szervezet postacĂ­me',
 		'pl' => 'Kod pocztowy organizacji',
 		'pt' => 'Morada da Organização',
 	),
@@ -921,6 +954,7 @@ $lang = array(
 		'nl' => 'Organisatie telefoon',
 		'sl' => 'Telefonska številka organizacije',
 		'hr' => 'SluĹľbeni telefonski broj ustanove',
+		'hu' => 'Szervezet telefonszáma',
 		'pl' => 'Numer telefonu organizacji',
 		'pt' => 'Número de telefone da Organização',
 	),
@@ -946,6 +980,7 @@ $lang = array(
 		'nl' => 'Organisatie adres',
 		'sl' => 'Ulica organizacije',
 		'hr' => 'Ulica i broj iz sluĹľbene adrese ustanove',
+		'hu' => 'Szervezet postacĂ­me',
 		'pl' => 'Nazwa ulicy, gdzie mieści sie organizacja',
 		'pt' => 'Rua da Organização',
 	),
@@ -959,6 +994,7 @@ $lang = array(
 		'nl' => 'Organisatie afkorting',
 		'sl' => 'Kratica organizacije',
 		'hr' => 'Akronim (skraćeni naziv) ustanove',
+		'hu' => 'Szervezet nevének rövidítése',
 		'pl' => 'SkrĂłt dla organizacji',
 		'pt' => 'Acrónimo da Organização',
 	),
@@ -973,6 +1009,7 @@ $lang = array(
 		'nl' => 'URL van de publieke telefoon/adres gids van de organisatie',
 		'sl' => 'URL do imeniške storitve "open white pages" organizacije',
 		'hr' => 'URL javno dostupnog imeniÄŤkog servisa ustanove',
+		'hu' => 'Szervezet publikus telefonkönyvének elérhetősége',
 		'pt' => 'URL do serviço de directório da Organização',
 	),
 	'attribute_edupersonorgdn_noreduorgschemaversion' => array (
@@ -985,6 +1022,7 @@ $lang = array(
 		'nl' => 'Versienummer van de gebruikte norEdu* specificate',
 		'sl' => 'Uporabljena norEDU* verzija',
 		'hr' => 'Verzija hrEdu imeniÄŤke sheme',
+		'hu' => 'Használatban levő norEdu* specifikáció verziója',
 		'pt' => 'Versão da especificação norEdu*',
 	),
 	'attribute_edupersonorgunitdn_ou' => array (
@@ -997,6 +1035,8 @@ $lang = array(
 		'nl' => 'Afdelingsnaam',
 		'sl' => 'DomaÄŤi oddelek osebe',
 		'hr' => 'Organizacijska jedinica korisnika',
+		'hu' => 'A személy szervezeti egység(ei)',
+		'pl' => 'Jednostka organizacyjna.',
 		'pt' => 'Unidade Orgânica',
 	),
 	'attribute_edupersonorgunitdn_telephonenumber' => array (
@@ -1009,6 +1049,8 @@ $lang = array(
 		'nl' => 'Organisatie telefoonnummer',
 		'sl' => 'Telefonska številka oddelka',
 		'hr' => 'Broj telefona organizacijske jedinice',
+		'hu' => 'Szervezeti egység telefonszáma',
+		'pl' => 'Telefon Jednostki Organizacyjnej',
 		'pt' => 'Número de telefone da Unidade Orgânica ',
 	),
 	'attribute_edupersonorgunitdn_noreduorgunituniqueidentifier' => array (
@@ -1021,6 +1063,7 @@ $lang = array(
 		'nl' => 'Afdelings identifier',
 		'sl' => 'Opis oddelka',
 		'hr' => 'Identifikator organizacijske jedinice',
+		'hu' => 'Szervezeti egység egyedi azonosítója',
 		'pt' => 'Identificador da Unidade Orgânica',
 	),
 	'attribute_edupersonorgunitdn_facsimiletelephonenumber' => array (
@@ -1033,6 +1076,8 @@ $lang = array(
 		'nl' => 'Afdelings faxnummer',
 		'sl' => 'Fax številka oddelka',
 		'hr' => 'Fax broj organizacijske jedinice',
+		'hu' => 'Szervezeti egység fax száma',
+		'pl' => 'Faks Jednostki Organizacyjnej',
 		'pt' => 'Número de Fax da Unidade Orgânica',
 	),
 	'attribute_edupersonorgunitdn_postalcode' => array (
@@ -1045,6 +1090,7 @@ $lang = array(
 		'nl' => 'Afdelings postcode',
 		'sl' => 'Poštna številka oddelka',
 		'hr' => 'Poštanski broj organizacijske jedinice',
+		'hu' => 'Szervezeti egység irányítószáma',
 		'pt' => 'Código postal da Unidade Orgânica',
 	),
 	'attribute_edupersonorgunitdn_cn' => array (
@@ -1057,6 +1103,7 @@ $lang = array(
 		'nl' => 'Afdeling algemene naam',
 		'sl' => 'Polno ime (CN) oddelka',
 		'hr' => 'Naziv organizacijske jedinice',
+		'hu' => 'Szervezeti egység neve',
 		'pt' => 'Nome completo da Unidade Orgânica',
 	),
 	'attribute_edupersonorgunitdn_postaladdress' => array (
@@ -1069,6 +1116,8 @@ $lang = array(
 		'nl' => 'Afdeling postbus',
 		'sl' => 'Naslov oddelka',
 		'hr' => 'Poštanska adresa organizacijske jedinice',
+		'hu' => 'Szervezeti egység postacíme',
+		'pl' => 'Adres pocztowy Jednostki Organizacyjnej',
 		'pt' => 'Morada da Unidade Orgânica',
 	),
 	'attribute_edupersonorgunitdn_street' => array (
@@ -1105,56 +1154,81 @@ $lang = array(
 		'nl' => 'Afdeling e-mail adres',
 		'sl' => 'Elektronski naslov oddelka',
 		'hr' => 'ElektroniÄŤka adresa organizacijske jedinice',
-		'hu' => 'x',
+		'hu' => 'Szervezeti egység e-mail címe',
 		'pl' => 'Mail jednostki organizacyjnej',
-		'pt' => 'Endereço de e-mail da Unidade Orgânica',
+		'pt' => 'Endereço de e-mail da Unidade Organizacional',
 	),
 	'attribute_schacuserprivateattribute' => array (
 		'no' => 'Private informasjonselement',
 		'nn' => 'Private informasjonselement',
+		'da' => 'Private informationselementer',
 		'en' => 'Private information elements',
 		'sv' => 'Information om vilka attribut som har skyddsbehov',
+		'es' => 'Elementos de informaciĂłn privada',
+		'sl' => 'Zasebni informacijski elementi',
+		'hu' => 'VĂ©dett adatokat tartalmazĂł attribĂştumok',
 		'pl' => 'Poufne atrybuty',
+		'pt' => 'Elementos privados de informação',
 	),
 	'attribute_edupersonorgdn_mail' => array (
 		'no' => 'Organisasjonens epost',
 		'nn' => 'Epost til organisasjonen',
+		'da' => 'Organisationens email',
 		'en' => 'Organization\'s mail',
 		'sv' => 'Organisationens e-postadress',
+		'es' => 'DirecciĂłn de correo electrĂłnico de la organizaciĂłn',
 		'sl' => 'E-poštni naslov organizacije',
+		'hu' => 'Szervezet e-mail cĂ­me',
 		'pl' => 'Adres email organizacji',
+		'pt' => 'Endereço de e-mail da Organização',
 	),
 	'attribute_edupersonorgdn_eduorgidentityauthnpolicyuri' => array (
 		'no' => 'Lokasjon med organisasjonens rutiner for identifisering og autentisering',
 		'nn' => 'Retningslinjer i organisasjonen for identifisering og autentisering (URI-format)',
+		'da' => 'Placeringen af organisationens politik omkring identifikation og autentificering',
 		'en' => 'Location of organization\'s policy regarding identification and authentication',
 		'sv' => 'Adressen till var organisationens policy om hur elektroniska identiteter hanteras',
+		'sl' => 'Lokacija pravil identifikacije in avtentikacije v organizaciji.',
+		'hu' => 'A szervezet felhasználókezelési és azonosítási szabályzatának elérhetősége',
 	),
 	'attribute_edupersonorgdn_noreduorguniqueidentifier' => array (
 		'no' => 'Organisasjonens unike identifikasjonsnummer',
 		'nn' => 'Unikt identifikasjonsnummer for organisasjonen (vanligvis organisasjonsnummer fra Brønnøysund-registeret)',
+		'da' => 'Organisationens unikke id',
 		'en' => 'Organization\'s unique identifier',
 		'sv' => 'Organisationens unika identifierare',
+		'es' => 'Identificador Ăşnico de la organizaciĂłn',
+		'sl' => 'EnoliÄŤni identifikator organizacije',
+		'hu' => 'Szervezet egyedi azonosĂ­tĂłja',
+		'pt' => 'Identificador único da Organização',
 	),
 	'attribute_edupersonorgdn_postofficebox' => array (
 		'no' => 'Organisasjonens postboks',
 		'nn' => 'Postboks for organisasjonen',
+		'da' => 'Organisationens postboks',
 		'en' => 'Organization\'s postal office box',
 		'sv' => 'Organisationens boxadress',
+		'es' => 'Apartado de correos de la organizaciĂłn',
 		'sl' => 'Poštni predal organizacije',
+		'hu' => 'Szervezet postafiĂłk cĂ­me',
 	),
 	'attribute_edupersonorgunitdn_labeleduri' => array (
 		'no' => 'URI for organisasjonsenhet med valgfri tilleggskommentar',
 		'nn' => 'Peikar til nettstad for organisasjonseininga',
+		'da' => 'Mærket URI til organisatorisk enheds',
 		'en' => 'Labeled URI to organizational unit',
 		'sv' => 'Organisationsenhetens hemsidesadress',
+		'sl' => 'OznaÄŤen URI oddelka',
 	),
 	'attribute_edupersonorgunitdn_postofficebox' => array (
 		'no' => 'Organisasjonsenhetens postboks',
 		'nn' => 'Postboks for organisasjonseininga',
+		'da' => 'Organisatorisk enheds postboks',
 		'en' => 'Organizational Unit\'s postal office box',
 		'sv' => 'Organisationsenhetens boxadress',
+		'es' => 'Apartado de correos de la Unidad Organizativa (OU)',
 		'sl' => 'Poštni predal oddelka',
+		'hu' => 'Szervezeti egység postafiókcíme',
 	),
 	'attribute_schachomeorganization' => array (
 		'no' => 'Unik ID for organisasjon',
diff --git a/dictionaries/disco.php b/dictionaries/disco.php
index 0f63c9b3ef2d43a63761c782c7e49b68d4466a64..c67d4a48f7852564717ba6a3611209df4ace8e71 100644
--- a/dictionaries/disco.php
+++ b/dictionaries/disco.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'selectidp' => array (
 		'no' => 'Velg din identitetsleverandør',
@@ -9,8 +18,9 @@ $lang = array(
 		'en' => 'Select your identity provider',
 		'de' => 'Wählen sie ihren Identity Provider',
 		'sv' => 'Välj din identitetsleverantör',
-		'fi' => 'Valitse identiteetin tarjoajasi',
+		'fi' => 'Valitse identiteettillähteeis',
 		'es' => 'Seleccione su proveedor de identidad',
+		'fr' => 'Séléctionnez votre fournisseur d\'identité',
 		'nl' => 'Kies je Identiy Provider',
 		'sl' => 'Izberite IdP domaÄŤe organizacije',
 		'hr' => 'Odaberite vašeg davatelja elektroničkih identiteta',
@@ -27,8 +37,9 @@ $lang = array(
 		'en' => 'Please select the identity provider where you want to authenticate:',
 		'de' => 'Bitte wählen sie den Identity Provider, bei dem sie sich authentifizieren möchten:',
 		'sv' => 'Välj vilken identitetsleverantör du vill logga in med:',
-		'fi' => 'Valitse identiteetin tarjoajasi mihin haluat kirjautua',
+		'fi' => 'Valitse identiteettilähteesi jossa haluat kirjautua',
 		'es' => 'Por favor, seleccione el proveedor de identidad donde desea autenticarse',
+		'fr' => 'Séléctionnez le fournisseur d\'identité auprès duquel vous souhaitez vous authentifier:',
 		'nl' => 'Selecteer de Identity Provider waar je wil authenticeren:',
 		'sl' => 'Izberite IdP, na katerem se boste avtenticirali:',
 		'hr' => 'Molimo odaberite davatelja elektroniÄŤkih identiteta kod kojeg se Ĺľelite autenticirati:',
@@ -47,6 +58,7 @@ $lang = array(
 		'sv' => 'Välj',
 		'fi' => 'Valitse',
 		'es' => 'Seleccione',
+		'fr' => 'Séléctionner',
 		'nl' => 'Kies',
 		'sl' => 'Izberite',
 		'hr' => 'Odaberi',
@@ -65,6 +77,7 @@ $lang = array(
 		'sv' => 'Kom ihĂĄg mitt val',
 		'fi' => 'Muista valintani',
 		'es' => 'Recordar mi elecciĂłn',
+		'fr' => 'Retenir ce choix',
 		'nl' => 'Onthoud mijn keuze',
 		'sl' => 'Shrani kot privzeto izbiro',
 		'hr' => 'Zapamti moj odabir',
@@ -75,9 +88,14 @@ $lang = array(
 	),
 	'icon_prefered_idp' => array (
 		'no' => '[Foretrukket valg]',
+		'da' => 'Foretrukket valg',
 		'en' => '[Preferred choice]',
 		'sv' => 'Prioriterat val',
+		'fi' => '[Oletusvalinta]',
+		'es' => '[OpciĂłn preference]',
 		'sl' => 'Preferirana izbira',
+		'hu' => '[Kívánt választás]',
+		'pl' => 'Preferowany wybĂłr',
 	),
 
 );
diff --git a/dictionaries/errors.php b/dictionaries/errors.php
index a34fe2d6c96cadb762765c9cf8617e65abe24025..206475c7f1e9800cd0129842223fc8b908bf9c2f 100644
--- a/dictionaries/errors.php
+++ b/dictionaries/errors.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'error_header' => array (
 		'no' => 'simpleSAMLphp-feil',
@@ -47,7 +56,7 @@ $lang = array(
 		'de' => 'Debug Information',
 		'sv' => 'Detaljer för felsökning',
 		'fi' => 'Virheenetsintätietoja',
-		'es' => 'Informaci&oacute;n de depuraci&oacute;n',
+		'es' => 'InformaciĂłn de depuraciĂłn',
 		'fr' => 'Information de déboguage',
 		'nl' => 'Debug informatie',
 		'lb' => 'Debug Informatiounen',
@@ -66,7 +75,7 @@ $lang = array(
 		'de' => 'Die unten angegebene Debug-Information kann von Interesse fĂĽr den Administrator oder das Helpdesk sein:',
 		'sv' => 'Detaljerna nedan kan vara av intresse för helpdesk eller de som sköter systemet:',
 		'fi' => 'Alla olevat virheenetsintätiedot voivat kiinnostaa ylläpitäjäää tai helpdeskiä:',
-		'es' => 'La siguiente informaci&oacute;n de depuraci&oacute;n puede ser de utilidad para el administrador del sistema o el centro de atenci&oacute;n a usuarios:',
+		'es' => 'La siguiente informaciĂłn de depuraciĂłn puede ser de utilidad para el administrador del sistema o el centro de atenciĂłn a usuarios:',
 		'fr' => 'L\'information de déboguage ci-dessous peut être intéressante pour l\'administrateur ou le help desk',
 		'nl' => 'Onderstaande debug informatie kan van belang zijn voor de beheerder / help desk:',
 		'lb' => 'Dei Debug Informatiounen hei drënner kinnten den Administrator interesséiren:',
@@ -104,7 +113,7 @@ $lang = array(
 		'de' => 'Geben sie optional eine Emailadresse an, so dass der Administrator sie bei etwaigen RĂĽckfragen kontaktieren kann:',
 		'sv' => 'Om du anger din e-postadress kan den som sköter systemet kontakta dig för fler frågor om ditt problem:',
 		'fi' => 'Valinnaisesti syötä säkhköpostiosoitteesa jotta ylläpitäjä voi ottaa sinuun yhteyttä selvittääkseen ongelmaa:',
-		'es' => 'Si lo desea, indique su direcci&oacute;n electr&oacute;nica, para que los administradores puedan ponerse en contacto con usted y obtener datos adicionales de su problema',
+		'es' => 'Si lo desea, indique su direcciĂłn electrĂłnica, para que los administradores puedan ponerse en contacto con usted y obtener datos adicionales de su problema',
 		'fr' => 'Facultativement vous pouvez entrer votre courriel, pour que les administrateurs puissent vous contacter par la suite à propose de votre problème :',
 		'nl' => 'Voeg desgewenst je e-mail adres toe, zodat de beheerders contact kunnen zoeken voor verder informatie over dit probleem:',
 		'lb' => 'Optionnal kennt dir aer E-mail Adress angin, fir dass den Administrator aerch fir weider Froen kontaktéieren kann:',
@@ -182,6 +191,7 @@ $lang = array(
 		'sv' => 'Felrapport skickad',
 		'fi' => 'Virheraportti lähetetty',
 		'es' => 'Informe de error enviado',
+		'fr' => 'Rapport d\'erreur envoyé',
 		'nl' => 'Foutmeldingsrapport verstuurd',
 		'sl' => 'PoroÄŤilo o napaki je bilo poslano',
 		'hr' => 'Prijava greške poslana',
@@ -199,6 +209,7 @@ $lang = array(
 		'sv' => 'Felrapporten är skickad till den som sköter systemet.',
 		'fi' => 'Virheraportti on lähetetty ylläpitäjille.',
 		'es' => 'El informe de error ha sido enviado a los administradores.',
+		'fr' => 'Le rapport d\'erreur a été envoyé aux administrateurs.',
 		'nl' => 'Het foutmeldingsrapport is verstuurd naar de beheerders',
 		'sl' => 'PoroÄŤilo o napaki je bilo poslano administratorjem sistema.',
 		'hr' => 'Prijava greške poslana je administratorima.',
@@ -234,7 +245,7 @@ $lang = array(
 		'de' => 'Dieser Fehler ist wahrscheinlich auf Grund eines unvorhergesehenen Verhaltens oder einer Fehlkonfiguration von simpleSAMLphp aufgetreten. Kontaktieren sie bitte den Administrator dieses Dienstes und teilen die obige Fehlermeldung mit.',
 		'sv' => 'Detta fel beror troligtvis på att oväntat beteende eller felkonfigurering av simpleSAMLphp. Kontakta den som sköter inloggningtjänsten för att meddela dem ovanstående felmeddelande.',
 		'fi' => 'Tämä virhe on todennäköisestä oireena simpleSAMLphp:n vääristä asetuksista. Ota yhteyttä identiteettipalvelun ylläpitäjään, ja sisällytä yllä oleva virheilmoitus.',
-		'es' => 'Este error se debe probablemente a un comportamiento inesperado o a una configuraciĂłn incorrecta de simpleSAMLphp. P&oacute;ngase en contacto con el administrador de este servicio de conexi&oacute;n y env&iacute;ele el mensaje de error anterior.',
+		'es' => 'Este error se debe probablemente a un comportamiento inesperado o a una configuraciĂłn incorrecta de simpleSAMLphp. PĂłngase en contacto con el administrador de este servicio de conexiĂłn y envĂ­ele el mensaje de error anterior.',
 		'fr' => 'Cette erreur est problablement causée par un comportement imprévu ou une mauvaise configuration de simpleSAMLphp.  Contactez l\'administrateur de ce service d\'identification et envoyez lui le message d\'erreur.',
 		'nl' => 'Deze foutmelding is waarschijnlijk ontstaan door onverwacht gedrag of door verkeerde configuratie van simpleSAMLphp. Meld dit bij de beheerder van deze authenticatie dienst, en geef bovenstaande melding door.',
 		'lb' => 'Dësen Fehler gouf wahrscheinlech duerch eng falsch Konfiguratioun vun simpleSAMLphp ausgeléist. Kontaktéiert am beschten den Administrator vun dësem Login Service an schéckt him den Fehlerbericht',
@@ -253,7 +264,7 @@ $lang = array(
 		'de' => 'Fehler beim Anmelden am Single-Sign-On Dienst',
 		'sv' => 'Fel vid single sign-on till tjänsten',
 		'fi' => 'Kertakirjautuminen epäonnistui',
-		'es' => 'Error en el inicio de sesi&oacute;n &uacute;nico',
+		'es' => 'Error en el inicio de sesiĂłn Ăşnico',
 		'fr' => 'Erreur lors de la connexion au service',
 		'nl' => 'Fout bij het afhandelen van Single-Signon',
 		'lb' => 'Fehler beim single sign-on bei dësem Service',
@@ -279,6 +290,7 @@ $lang = array(
 		'sl' => 'Zaradi daljšega obdobja neaktivnosti je seja potekla. Lahko se ponovno avtenticirate in samodejno boste preusmerjeni na storitev, ki je zahtevala avtentikacijo. ',
 		'hr' => 'Došlo je do greške koja je najvjerojatnije uzrokovana time što ste u svom web pregledniku memorirali adresu stranice za unos korisničke oznake i zaporke umjesto adresu aplikacije kojoj želite pristupiti. Obzirom da veći broj aplikacija koristi isti središnji autentikacijski servis, ako svojim web preglednikom pristupite izravno sučelju za unos korisničke oznake i zaporke, autentikacijski servis ne zna na koju aplikaciju vas treba preusmjeriti nakon provjere ispravnosti korisničke oznake i zaporke. Problem možete riješiti na način da u vašem web pregledniku unesete ponovo adresu aplikacije kojoj želite pristupiti. Ako to ne riješi problem, molimo prijavite grešku administratorima.',
 		'hu' => 'Sikeres azonosítás, de nem találtuk meg az átmeneti tárban az azonosítási kérést. Ez a kérés csak korlátozott ideig található meg az átmeneti tárban. Lehetséges, felhasználónév és jelszó megadása előtt több órán keresztül nyitva volt a bejelentkezési oldal. Ha ez a helyzet, akkor kérjük, menjen vissza a használni kívánt szolgáltatáshoz és jelentkezzen be újra. Ha a hiba továbbra is fennáll, kérjük, jelezze!',
+		'pl' => 'Zostałeś uwierzytelniony i gotowy do powrotu do serwisu żądającego uwierzytelnienia, ale nie mogliśmy znaleźć zapamiętanego żądania uwierzytelnienia. Żądanie jest pamietane tylko przez określony czas. Pozostawiając swoją przegladarkę ze stroną logowania na kilka godzin zanim wpiszesz nazwę użytkownika i hasło mógł spowować ten problem. Jeśli to była przyczyna problemu, to spróbuj wrócić do serwisu i rozpocznuj nowy proces logowania. Jeśli znowu problem sie pojawi zgłoś to.',
 		'pt' => 'Efectuou previamente uma autenticação com sucesso e estava prestes a ser direccionado para o serviço que requisitou a autenticação. No entanto não foi possível encontrar o pedido de autenticação na cache. O pedido apenas é mantido em cache por um período limitado. O problema pode ter sido originado por ter deixado o browser aberto durante alguma horas antes de introduzir as suas credenciais. Se foi este o caso tente aceder de novo ao serviço que necessita de autenticação, para iniciar um novo processo de entrada. Se o problema persistir, por favor comunique-o.',
 		'pt-BR' => 'Você foi autenticado e pronto para voltar ao serviço de solicitação de autenticação, mas não foi possível encontrar o seu pedido de autenticação em cache. O pedido é armazenado em cache por um tempo limitado. Deixando o navegador aberto por horas antes de entrar seu nome de usuário e senha pode ser a causa do problema. Se este poderia ser o caso na sua situação, tente voltar para o serviço que você deseja acessar, e iniciar um novo processo autenticação. Se o problema persistir, por favor informe-nos.',
 	),
@@ -391,6 +403,7 @@ $lang = array(
 		'sl' => 'Ko je IdP želel ustvariti odgovor za avtentikacijo, je prišlo do napake.',
 		'hr' => 'Na strani IdP-a se pojavila greška prilikom kreiranja autentikacijskog odgovora.',
 		'hu' => 'Hiba történt az azonosítási válaszüzenet összeállítása során.',
+		'pl' => 'Wystapił bład podczas próby utworzenia przez Dostawcę Tożsamości odpowiedzi uwierzytelniania .',
 		'pt' => 'Ocorreu um erro ao criar uma resposta de autenticação neste fornecedor de identidade.',
 		'pt-BR' => 'Ocorreu um erro quando este servidor de identidade tentou criar uma resposta de autenticação.',
 	),
@@ -504,6 +517,7 @@ $lang = array(
 		'sl' => 'Pri obdelavi zahteve za odjavo je prišlo do napake.',
 		'hr' => 'Pojavila se greška tijekom obrade zahtjeva za odjavu (Logout Request).',
 		'hu' => 'A kijelentkezési kérés (logout request) feldolgozása során hiba történt.',
+		'pl' => 'Wystąpił bład podczas próby wylogowania.',
 		'pt' => 'Ocorreu um erro ao processar o pedido de logout.',
 		'pt-BR' => 'Um erro ocorreu ao tentar processar a resposta da desconexĂŁo.',
 	),
@@ -522,6 +536,7 @@ $lang = array(
 		'sl' => 'Zahteve za odjavo ni bilo mogoÄŤe ustvariti',
 		'hr' => 'Ne mogu kreirati zahtjev za odjavu',
 		'hu' => 'Hiba a kijelentkezés során',
+		'pl' => 'Problem utworzenia ĹĽÄ…dania wylogowania.',
 		'pt' => 'Erro ao criar o pedido de logout',
 		'pt-BR' => 'NĂŁo foi possĂ­vel criar a resposta da desconexĂŁo',
 	),
@@ -829,7 +844,7 @@ $lang = array(
 		'de' => 'Dieser Identity Provider hat eine Authentifizierungsanfrage von einem Service Provider erhalten, aber es ist ein Fehler beim Bearbeiten dieser Anfrage aufgetreten.',
 		'sv' => 'Identitetshanteraren (Identity Provider) har tagit emot en förfrågan från en tjänsteleverantör (Service Provider) men ett fel uppstod vid bearbetningen av förfrågan.',
 		'fi' => 'Identiteetintarjoaja sai tunnistautumispyynnön palveluntarjoajalta, mutta pyynnin käsittelyssä tapahtui virhe.',
-		'es' => 'Este IdP ha recibido una peticiĂłn de autenticaci&oacute;n de un proveedor de servicio pero se ha producido un error al tratar de procesar la misma.',
+		'es' => 'Este IdP ha recibido una peticiĂłn de autenticaciĂłn de un proveedor de servicio pero se ha producido un error al tratar de procesar la misma.',
 		'fr' => 'Ce fournisseur de service a reçu une requête d\'authentification d\'un fournisseur d\'identité, mais une erreur s\'est produite lors du traitement de cette requête.',
 		'nl' => 'Deze IdP heeft een authenticatie verzoek ontvangen van een Service Provider, maar er is een fout opgetreden bij het verwerken ervan.',
 		'lb' => 'Dësen IdP kruut eng Authenticatiounsunfro vun engem Service provider, mais et gouf en Fehler wéi déi sollt bearbescht gin.',
@@ -901,7 +916,7 @@ $lang = array(
 		'de' => 'Sie haben auf die SingleLogoutService Schnittstelle zugegriffen, aber keine SAML Abmeldeanfrage oder Abmeldeantwort bereit gestellt.',
 		'sv' => 'Du har anroppat tjänsten för Single Sing-Out utan att skicka med någon SAML LogoutRequest eller LogoutResponse.',
 		'fi' => 'Yritit kertauloskirjautumisliittymään, mutta et tarjonnut SAML LogoutRequest:iä tai LogoutRespons:ia.',
-		'es' => 'Usted accedi&oacute; a la interfaz SingleLogoutService pero no incluy&oacute; un mensaje SAML LogoutRequest o LogoutResponse',
+		'es' => 'Usted accediĂł a la interfaz SingleLogoutService pero no incluyĂł un mensaje SAML LogoutRequest o LogoutResponse',
 		'fr' => 'Vous avez accédé à l\'interface SingleLogoutService, mais vous n\'avez pas fourni de LogoutRequest ou LogoutResponse SAML.',
 		'nl' => 'Je hebt de SingleLogoutService interface aangeroepen, maar hebt geen SAML LogoutRequest of LogoutResponse meegestuurd.',
 		'lb' => 'Der hud den SingleLogoutService accédéiert mais ken SAML LogoutRequest oder LogoutResponse unginn.',
@@ -937,7 +952,7 @@ $lang = array(
 		'de' => 'Sie haben auf die Assertion Consumer Service Schnittstelle zugegriffen, aber keine SAML Authentifizierungsantwort bereit gestellt.',
 		'sv' => 'Du har anropat gränssnittet för Assertion Consumer Service utan att skicka med någon SAML Authentication Responce.',
 		'fi' => 'Yritit Assertion Consumer Service-liittymään, mutta et tarjonnut SAML tunnistautumisvastausta.',
-		'es' => 'Usted accedi&oacute;a la interfaz consumidora de aserciones pero no incluy&oacute; una respuesta de autenticaci&oacute;n SAML.',
+		'es' => 'Usted accediĂł a la interfaz consumidora de aserciones pero no incluyĂł una respuesta de autenticaciĂłn SAML.',
 		'fr' => 'Vous avez accédé à l\'interface du service de traitement des assertions, mais vous n\'avez pas fourni de réponse d\'authentification SAML.',
 		'nl' => 'Je hebt de Assertion Consumer Service interface aangeroepen, maar hebt geen SAML Authentication Response meegestuurd.',
 		'lb' => 'Der hud den Assertion Consumer Sercice Interface accédéiert mais keng SAML Authentication Aentwert unginn',
@@ -1018,6 +1033,7 @@ $lang = array(
 		'sl' => 'Nastavitve simpleSAMLphp so napaÄŤne ali se med seboj izkljuÄŤujejo.',
 		'hr' => 'Izgleda da je simpleSAMLphp pogrešno iskonfiguriran.',
 		'hu' => 'Valószínűleg helytelenül lett konfigurálva a simpleSAMLphp',
+		'pl' => 'wydaje się, że simpleSAMLphp jest błędnie skonfigurowany.',
 		'pt' => 'O software simpleSAMLphp tem um problema de configuração.',
 		'pt-BR' => 'simpleSAMLphp parece estar mal configurado.',
 	),
@@ -1105,6 +1121,7 @@ $lang = array(
 		'sv' => 'Fel vid läsning av konfigurationsmallkatalogen',
 		'fi' => 'config-template hakemiston lukemisessa tapahtui virhe',
 		'es' => 'Error leyendo el directorio config-templates',
+		'fr' => 'Erreur à la lecture du répértoire config-templates',
 		'nl' => 'Fout bij het lezen van de configuratie templates folder',
 		'sl' => 'Napaka pri dostopu do mape z namestitvenimi predlogami.',
 		'hr' => 'Greška prilikom čitanja config-templates direktorija',
@@ -1121,6 +1138,7 @@ $lang = array(
 		'sv' => 'Ett fel uppstod när simpleSAMLphp försökte upptäcka tillgängliga filer i konfigurationsmallkatalogen.',
 		'fi' => 'Kun simpleSAMLphp pyrki löytämään config-templates hakemiston tiedostoja tapahtui virhe.',
 		'es' => 'Se produjo un error mientras simpleSAMLphp intentaba encontrar los ficheros disponibles en el directorio config-templates',
+		'fr' => 'Une erreur est survenue lorsque simpleSAMLphp a tenté de retrouver les fichiers dans le dossier config-templates.',
 		'nl' => 'Er is een fout opgetreden bij het zoeken naar de beschikbare files in de config-templates directory',
 		'sl' => 'Prišlo je do napake! simpleSAMLphp v mapi z namestitvenimi predlogami ne najde zahtevanih datotek.',
 		'hr' => 'Došlo je do greške tijekom pokušaja dohvaćanja raspoloživih datoteka u config-templates direktoriju.',
@@ -1137,6 +1155,7 @@ $lang = array(
 		'sv' => 'Utloggningsinformation är borta',
 		'fi' => 'Uloskirjautumistiedot hävisivät',
 		'es' => 'Se perdiĂł la informaciĂłn para cerrar la sesiĂłn',
+		'fr' => 'Information de déconnexion perdue',
 		'nl' => 'Logout informatie is verloren gegaan',
 		'sl' => 'Odjavni (Logout) parametri niso na voljo.',
 		'hr' => 'Informacija o odjavljivanju izgubljena',
@@ -1153,6 +1172,7 @@ $lang = array(
 		'sv' => 'Informationen om aktuell utloggning har försvunnit. Du bör återvända till tjänsten som du försökte logga ut från och försöka logga ut på nytt. Detta fel kan inträffa om informationen om utloggningen är för gammal. Utloggningsinformationen sparas en begränsad tid, oftas några timmar. Det är längre än vad utloggning bör ta så felet kan indikera något fel med konfigurationen. Om problemet kvarstår kontakta leverantören för den tjänst du försökte logga ut från.',
 		'fi' => 'Uloskirjautumistiedot hävisivät. Sinun tulee palata siihen palveluun mistä aloitit uloskirjautumisen ja yrittää uutta uloskirjautumista. Tämä virhe voi johtua uloskirjautumistietojen vanhenemisesta. Uloskirjautumistietoja talletetaan vain rajatun ajan - usein vain tunteja. Tämä on selvästi pidempään kuin uloskirjautumisen pitäisi kesttä, joten virhe voi olla oire asetusten virheistä. Ota yhteuttä ylläpitäjään mikäli ongelma jatkuu.',
 		'es' => 'La información sobre la operación de cierre de sesión se ha perdido. Debería volver al servicio del que intenta salir e intentar cerrar la sesión de nuevo. La información para cerrar la sesión se almacena durante un tiempo limitado, generalmente mucho más tiempo del que debería tardar la operación de cierre de sesión, de modo que este error puede deberse a algun error en la configuración. Si el problema persiste, contacte con el proveedor del servicio.',
+		'fr' => 'Information de déconnexion perdue  Les informations afférantes à la procédure de déconnexion en cours ont été perdues. Tentez de retourner au service depuis lequel vous avez tenté de lancer la déconnextion, et essayez encore. Cette erreur peut être causée par un problème d&aopos;obsolescence des information de déconnexion, qui ne sont conservées que durant un temps limité, de l&aops;odre de quelques heures. Cette durée est bien plus longue qu\'une opération de déconnexion typique, ce qui suggère une autre erreur dans la configuration. Si le problème persiste, contactez l\'administrateur du fournisseur de service',
 		'nl' => 'De informatie over de huidige logout operatie is verloren gegaan. Je zou nu moeten terugkeren naar de dienst waar je probeerde uit te loggen, om het nogmaals te proberen. Deze fout kan optreden wanneer de logout informatie is verlopen. De logout informatie wordt gedurende een beperkte tijdsduur bewaard, normaal gesproken een aantal uren. Dit is langer dan een normale logout operatie zou moeten duren, dus deze fout kan er op wijzen dat er een configuratie probleem is. Als het probleem zich blijft voordoen kun u contact opnemen met de Service Provider.',
 		'sl' => 'Odjavni (Logout) parametri niso na voljo. Vrnite se na storitev, ki ste jo pravkar uporabljali in se ponovno poskusite odjaviti. Napaka je posledica poteka veljavnosti seje.',
 		'hr' => 'Informacija o tekućem zahtjevu za odjavljivanjem se izgubila. Preporučamo da se vratite u aplikaciju iz koje ste se htjeli odjaviti i pokušate se odjaviti ponovo. Ova greška može biti uzrokovana istekom valjanosti zahtjeva za odjavom. Zahtjev se pohranjuje određeno vrijeme - u pravilu nekoliko sati. Obzirom da je to dulje nego što bi bilo koja operacija odjavljivanja trebala trajati, greška koja se pojavila može upućivati na grešku u konfiguraciji. Ako se problem nastavi, kontaktirajte vašeg davatelja usluge. ',
@@ -1168,6 +1188,7 @@ $lang = array(
 		'de' => 'Assertion-Fehler',
 		'sv' => 'Fel vid försäkran',
 		'es' => 'Error en la afirmaciĂłn (Assertion)',
+		'fr' => 'Echec de l\'assertion',
 		'nl' => 'Assertion fout',
 		'sl' => 'Neveljavna zahteva',
 		'hr' => 'Neispravna potvrda',
@@ -1183,6 +1204,7 @@ $lang = array(
 		'de' => 'Fehler im Code bei der Assertion: %ASSERTION%',
 		'sv' => 'En försäkran i koden fungerade inte. Aktuella försäkran: %ASSERTION%',
 		'es' => 'Una afirmaciĂłn del cĂłdigo ha fallado. La afirmaciĂłn es: %ASSERTION%',
+		'fr' => 'Echec d\'une assertion dans le code source. L\'assertion Ă©tait: %ASSERTION%',
 		'nl' => 'Een assert statement in de code is niet gelukt. Het statement was: %ASSERTION%',
 		'sl' => 'Vnos v kodo je spodletel. Navedena je bila naslednja zahteva: %ASSERTION%',
 		'hr' => 'Potvrda u kodu je neispravna. Potvrda je: %ASSERTION%',
@@ -1198,6 +1220,7 @@ $lang = array(
 		'de' => 'Nicht abgefangene Code-Exception',
 		'sv' => 'Ohanterat undantag',
 		'es' => 'ExcepciĂłn no controlada',
+		'fr' => 'Exception non gérée',
 		'nl' => 'Onverwachte foutmelding',
 		'sl' => 'Nedefinirana izjema.',
 		'hr' => 'Neobrađena iznimka',
@@ -1213,6 +1236,7 @@ $lang = array(
 		'de' => 'Eine nicht abgefangene Code-Exception ist aufgetreten.',
 		'sv' => 'Ett ohanterat undatag har inträffat. ',
 		'es' => 'Se lanzĂł una excepciĂłn no controlada.',
+		'fr' => 'Une exception non gérée a été levée.',
 		'nl' => 'Een onverwachte foutmelding is opgetreden',
 		'sl' => 'Zagnana je bila nedefinirana izjema.',
 		'hr' => 'Pojavila se iznimka koja nije obrađena.',
@@ -1227,7 +1251,9 @@ $lang = array(
 		'en' => 'Page not found',
 		'de' => 'Seite nicht gefunden',
 		'sv' => 'Sidan finns inte',
+		'fi' => 'Sivua ei löytynyt',
 		'es' => 'Página no encontrada',
+		'fr' => 'Page introuvable',
 		'nl' => 'Pagina niet gevonden',
 		'sl' => 'Strani ni bilo mogoÄŤe najti.',
 		'hr' => 'Stranica nije pronađena',
@@ -1243,7 +1269,9 @@ $lang = array(
 		'en' => 'The given page was not found. The URL was: %URL%',
 		'de' => 'Die gewĂĽnschte Seite konnte nicht gefunden werden, der aufgerufene URL war %URL%',
 		'sv' => 'Den angivna sidan finns inte. URL: %URL%',
+		'fi' => 'Sivua ei löytynyt. Osoite oli %URL%',
 		'es' => 'La página que indicó no se encontró. La URL es: %URL%',
+		'fr' => 'La page requise est introuvable. L\'URL Ă©tait: %URL%',
 		'nl' => 'Deze pagina bestaat niet. De URL was: %URL%',
 		'sl' => 'Strani ni bilo mogoÄŤe najti. Naveden URL strani je bil: %URL%',
 		'hr' => 'Tražena stranica nije pronađena. URL stranice: %URL%',
@@ -1259,7 +1287,9 @@ $lang = array(
 		'en' => 'Page not found',
 		'de' => 'Seite nicht gefunden',
 		'sv' => 'Sidan finns inte',
+		'fi' => 'Sivua ei löytynyt',
 		'es' => 'Página no encontrada',
+		'fr' => 'Page introuvable',
 		'nl' => 'Pagina niet gevonden',
 		'sl' => 'Strani ni bilo mogoÄŤe najti.',
 		'hr' => 'Stranica nije pronađena',
@@ -1275,7 +1305,9 @@ $lang = array(
 		'en' => 'The given page was not found. The reason was: %REASON%  The URL was: %URL%',
 		'de' => 'Die gewĂĽnschte Seite konnte nicht gefunden werden. Der Grund ist: %REASON% Der aufgerufene URL war %URL%',
 		'sv' => 'Den angivna sidan finns inte. Orsak: %REASON% URL: %URL%',
+		'fi' => 'Sivua ei löytynyt. Syynä oli: %REASON% Osoite oli %URL%',
 		'es' => 'La página que indicó no se encontró. El motivo es: %REASON% La URL es: %URL%',
+		'fr' => 'La page demandée est introuvable. Motif: %REASON%  The URL was: %URL%',
 		'nl' => 'De opgegeven pagina kon niet worden gevonden. De oorzaak is: %REASON%. De URL is: %URL%',
 		'sl' => 'Strani ni bilo mogoÄŤe najti. Razlog: %REASON%. Naveden URL strani je bil: %URL%',
 		'hr' => 'Tražena stranica nije pronađena. Razlog: %REASON% URL stranice: %URL%',
@@ -1292,6 +1324,7 @@ $lang = array(
 		'de' => 'UngĂĽltige Anfrage',
 		'sv' => 'Felaktigt anrop',
 		'es' => 'Recibida una solicitud incorrecta',
+		'fr' => 'RequĂŞte invalide',
 		'nl' => 'Incorrect request ontvangen',
 		'sl' => 'Napaka v prejetem zahtevku.',
 		'hr' => 'Dobiveni zahtjev je neispravan',
@@ -1308,6 +1341,7 @@ $lang = array(
 		'de' => 'In der Anfrage dieser Seite trat ein Fehler auf, der Grund ist: %REASON%',
 		'sv' => 'Det är ett fel i anropet till denna sida. Orsak: %REASON%',
 		'es' => 'Existe un error en la solicitud de esta página. La razón es: %REASON%',
+		'fr' => 'Erreur dans la requĂŞte de cette page. Motif: %REASON%',
 		'nl' => 'Er is een fout opgetreden in het verzoek voor deze pagina. De oorzaak is: %REASON%',
 		'sl' => 'Prišlo je do napake pri prejetem zahtevku. Razlog: %REASON%',
 		'hr' => 'Dogodila se pogreška prilikom slanja zahtjeva na ovu adresu. Razlog pogreške %REASON%',
@@ -1322,7 +1356,9 @@ $lang = array(
 		'en' => 'Incorrect username or password',
 		'de' => 'Nutzername oder Passwort falsch.',
 		'sv' => 'Felaktig användaridentitet eller lösenord',
+		'fi' => 'Virheellinen käyttäjätunnus tai salasana',
 		'es' => 'Nombre de usuario o contraseña incorrectos',
+		'fr' => 'Nom d\'utilisateur ou mot de passe incorrect',
 		'nl' => 'Incorrecte gebruikersnaam of wachtwoord',
 		'sl' => 'Napačno uporabniško ime ali geslo',
 		'hr' => 'Neispravna korisniÄŤka oznaka ili zaporka',
@@ -1339,8 +1375,9 @@ $lang = array(
 		'de' => 'Entweder es konnte kein Nutzer mit dem angegebenen Nutzernamen gefunden werden oder das Passwort ist falsch. ĂśberprĂĽfen sie die Zugangsdaten und probieren sie es nochmal.',
 		'sv' => 'Antingen finns det ingen användare med angiven användaridentitet eller så har du angivit fel lösenord. Försök igen.',
 		'es' => 'No existe un usuario con el identificador indicado, o la contraseña indicada es incorrecta. Por favor revise el identificador de usuario e inténtelo de nuevo.',
+		'fr' => 'Utilisateur inexistant, ou mot de passe incorrect. Vérifiez le nom d\'utilisateur, et ré-essayez.',
 		'nl' => 'De opgegeven gebruikersnaam bestaat niet, of het wachtwoord is ongeldig. Verifieer de gebruikersnaam en probeer het nogmaals.',
-		'sl' => 'Uporabnika s tem uporabniškim imenom ni bilo mogoče najti ali pa je vpisano geslo napačno. Prebverite svoje uporabniško ime in poskusite znova.',
+		'sl' => 'Uporabnika s tem uporabniškim imenom ni bilo mogoče najti ali pa je vpisano geslo napačno. Preverite svoje uporabniško ime in poskusite znova.',
 		'hr' => 'Korisnik s navedenom korisničkom oznakom ne može biti pronađen ili je zaporka koju ste unijeli neispravna. Molim provjerite korisničku oznaku i pokušajte ponovo.',
 		'hu' => 'Nem létezik ilyen felhasználó vagy a jelszó hibás. Kérjük, próbálja újra!',
 		'pt' => 'O utilizador ou senha fornecidos sĂŁo incorrectos. Por favor tente de novo.',
@@ -1354,6 +1391,7 @@ $lang = array(
 		'de' => 'Falsche Identität für OpenID',
 		'sv' => 'Fel identitet för OpenID',
 		'es' => 'Identidad incorrecta para OpenID',
+		'fr' => 'Identité inconnue pour OpenID',
 		'nl' => 'Verkeerde identiteit voor OpenID',
 		'sl' => 'NapaÄŤna identiteta za OpenID',
 		'hr' => 'Neispravan identitet za OpenID',
@@ -1369,6 +1407,7 @@ $lang = array(
 		'de' => 'OpenID wollte eine bestimmte Identität bestätigt haben, sie sind aber mit einer anderen Identität (anderem Nutzernamen) angemeldet.',
 		'sv' => 'OepnID försöker verfiera dig med en identitet men du är inloggad med en annan.',
 		'es' => 'OpenID ha solicitado que se verifique con una identidad y usted se ha identificado con otra.',
+		'fr' => 'OpenID vous a demandé de vous identifier alors que vous êtes déjà authentifié sous une autre identité.',
 		'nl' => 'OpenID heeft u verzocht om te authenticeren voor een bepaalde identiteit, terwijl u bent ingelogd met een andere identiteit.',
 		'sl' => 'OpenID je zahteval preverjanje identitete, vi ste prijavljeni z drugo identiteto.',
 		'hr' => 'OpenID je od vas traĹľio provjeru identiteta, a vi ste prijavljeni s drugim identitetom.',
diff --git a/dictionaries/frontpage.php b/dictionaries/frontpage.php
index 986a23d8de7825e4da2040663c66acbaea0d5e18..1728ee2660d2e6f7babab08ac1868fb8edf8a19f 100644
--- a/dictionaries/frontpage.php
+++ b/dictionaries/frontpage.php
@@ -1,82 +1,126 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'welcome' => array (
 		'no' => 'Velkommen',
 		'nn' => 'Velkomen',
 		'da' => 'Velkommen',
 		'en' => 'Welcome',
+		'de' => 'Willkommen',
 		'sv' => 'Välkommen',
+		'fi' => 'Tervetuloa',
 		'es' => 'Bienvenido',
+		'fr' => 'Bienvenue',
 		'sl' => 'Dobrodošli',
 		'hr' => 'Dobro došli',
+		'hu' => 'Üdvözöljük',
 		'pl' => 'Witaj',
+		'pt' => 'Bem vindo',
 	),
 	'configuration' => array (
 		'no' => 'Konfigurasjon',
 		'nn' => 'Konfigurasjon',
 		'da' => 'Konfiguration',
 		'en' => 'Configuration',
+		'de' => 'Konfiguration',
 		'sv' => 'Konfiguration',
+		'fi' => 'Asetukset',
 		'es' => 'ConfiguraciĂłn',
+		'fr' => 'Configuration',
 		'sl' => 'Nastavitve',
 		'hr' => 'Konfiguracija',
+		'hu' => 'Beállítások',
 		'pl' => 'Konfiguracja',
+		'pt' => 'Configuração',
 	),
 	'metadata' => array (
 		'no' => 'Metadata',
 		'nn' => 'Metadata',
 		'da' => 'Metadata',
 		'en' => 'Metadata',
+		'de' => 'Metadaten',
 		'sv' => 'Metadata',
+		'fi' => 'Metatiedot',
 		'es' => 'Metadatos',
+		'fr' => 'Métadonnées',
 		'sl' => 'Metadata',
 		'hr' => 'Metapodaci',
+		'hu' => 'Metaadatok',
 		'pl' => 'Metadane',
+		'pt' => 'Metadados',
 	),
 	'tools' => array (
 		'no' => 'Verktøy',
 		'nn' => 'Verktøy',
 		'da' => 'Værktøjer',
 		'en' => 'Tools',
+		'de' => 'Werkzeuge',
 		'sv' => 'Verktyg',
+		'fi' => 'Työkalut',
 		'es' => 'Herramientas',
+		'fr' => 'Outils',
 		'sl' => 'Orodja',
 		'hr' => 'Alati',
+		'hu' => 'Eszközök',
 		'pl' => 'Narzędzia',
+		'pt' => 'Ferramentas',
 	),
 	'login_as_admin' => array (
 		'no' => 'Login som administrator',
 		'nn' => 'Innlogga som administrator',
 		'da' => 'Login som administrator',
 		'en' => 'Login as administrator',
+		'de' => 'Als Administrator anmelden',
 		'sv' => 'Logga in som administratör',
+		'fi' => 'Kirjaudu ylläpitäjänä',
 		'es' => 'Entrar como administrador',
+		'fr' => 'Connexion en tant qu\'administrateur',
 		'sl' => 'Prijavi se kot administrator',
 		'hr' => 'Prijavite se kao administrator',
+		'hu' => 'Bejelentkezés adminisztrátorként',
 		'pl' => 'Zaloguj siÄ™ jako administrator',
+		'pt' => 'Entrar como administrador',
 	),
 	'loggedin_as_admin' => array (
 		'no' => 'Du er logget inn som administrator',
 		'nn' => 'Du er logga inn som administrator',
 		'da' => 'Du er logget ind som administrator',
 		'en' => 'You are logged in as administrator',
+		'de' => 'Sie sind als Administrator angemeldet',
 		'sv' => 'Du är inloggad som administratör',
-		'es' => 'Ha entrado com administrador',
+		'fi' => 'Olet kirjautunut ylläpitäjänä',
+		'es' => 'Ha entrado como administrador',
+		'fr' => 'Vous êtes connecté en tant qu\'administrateur',
 		'sl' => 'Prijavljeni ste v vlogi administratorja',
 		'hr' => 'Prijavljeni ste kao administrator',
+		'hu' => 'Bejelentkezve adminisztrátorként',
 		'pl' => 'JesteĹ› zalogowany jako administrator',
+		'pt' => 'Está autenticado como administrador',
 	),
 	'show_metadata' => array (
 		'no' => 'Vis metadata',
 		'nn' => 'Vis metadata',
 		'da' => 'Vis metadata',
 		'en' => 'Show metadata',
+		'de' => 'Metadaten zeigen',
 		'sv' => 'Visa metadata',
+		'fi' => 'Näytä metatiedot',
 		'es' => 'Ver metadatos',
+		'fr' => 'Afficher les métadonnées',
 		'sl' => 'PrikaĹľi metadato',
 		'hr' => 'PrikaĹľi metapodatke',
+		'hu' => 'Mutasd a metaadatokat',
 		'pl' => 'Wyświetl metadane',
+		'pt' => 'Mostrar meta-dados',
 	),
 	'intro' => array (
 		'no' => '<strong>Gratulerer</strong>, du har nĂĄ installert simpleSAMLphp. Dette er startsiden til din simpleSAMLphp installasjon, hvor du vil finne eksempler, diagnostikk, metadata og til og med lenker til relevant dokumentasjon.',
@@ -87,7 +131,7 @@ $lang = array(
 		'sv' => '<strong>Gratulerar</strong>, du har framgångsrikt installerat simpleSAMLphp. Detta är grundinstallationens startsida där du t.ex. hittar länkar till exempel, diagnostik och metadata men även länkar till relevant dokumentation.',
 		'fi' => '<strong>Onnittelut</strong>, olet onnistuneesti asentanut simpleSAMLphp:n. Tämä on asennuksen lähtösivu, millä löydät linkkejä testiesimerkkeihin, diagnostiikkaan, metadataan ja dokumentaatioon.',
 		'es' => '<strong>&iexcl;Felicidades!</strong>, ha instalado simpleSAMLphp con &eacute;xito. &Eacute;sta es la p&aacute;gina inicial de su instalaci&oacute;n, aqu&iacute; encontrar&aacute; enlaces a ejemplos de prueba, diagn&oacute;sticos, metadatos e incluso enlaces a la documentaci&oacute;n pertinente.',
-		'fr' => '<strong>Félicitations</strong>, vous avez installé simpleSAMLphp avec succès.  Ceci est la page de démarrage de votre installation, où vous trouverez des liens vers des exemples, des pages de diagnostic, les <i>métadata</i> et même vers de la documentation.',
+		'fr' => 'Afficher les métadonnées  <strong>Félicitations</strong>, vous avez installé simpleSAMLphp. Cette page est votre point de départ, depuis lequel vous trouverez les liens vers des exemples de configurations, outils de diagnostics, métadonnées, et sans oublier la documentation.',
 		'nl' => '<strong>Gefeliciteerd</strong>, simpleSAMLphp is succesvol geinstalleerd. Dit is de startpagina voor simpleSAMLphp, waar je links kan vinden naar voorbeelden, test-paginas, analyses, metadata en ook naar relevante documentatie.',
 		'lb' => '<strong>Haerzleche Glëckwonsch</strong>, d\'simpleSAMLphp Installatioun wor en Succéss. Dest as d\'Startsäit vun aerer Installatioun wou der Links, Beispiller, Diagnoseméiglechkeeten, Meta Données an Links op relevant Dokumenter fannt.',
 		'sl' => '<strong>Čestitamo!</strong> Uspešno ste namestili simpleSAMLphp. Na tej strani se nahajajo povezave do vzorčnih nastavitev, diagnostike, metapodatkov in s tem povezane dokumentacije.',
@@ -125,7 +169,7 @@ $lang = array(
 		'sv' => 'Metadata',
 		'fi' => 'Metadata',
 		'es' => 'Metadatos',
-		'fr' => 'MĂ©tadata',
+		'fr' => 'Métadonnées',
 		'nl' => 'Metadata',
 		'lb' => 'Meta Données',
 		'sl' => 'Metapodatki',
@@ -448,6 +492,7 @@ $lang = array(
 		'sv' => 'Konfigurationskontroll av simpleSAMLphp',
 		'fi' => 'simpleSAMLphp asetusten tarkastus',
 		'es' => 'ComprobaciĂłn de la configuraciĂłn de simpleSAMLphp',
+		'fr' => 'Test de configuration de simpleSAMLphp',
 		'nl' => 'simpleSAMLphp configuratie check',
 		'sl' => 'Preveri simpleSAMLphp nastavitve',
 		'hr' => 'Provjera simpleSAMLphp konfiguracije',
@@ -560,6 +605,7 @@ $lang = array(
 		'sv' => 'Ta bort mina val av identitetsleverantör i listan över identitetsleverantörer',
 		'fi' => 'Poista IdP valintani IdP discoverypalvelusta',
 		'es' => 'Borrar mis opciones de IdP en los servicios de descubrimiento de IdP',
+		'fr' => 'Supprimer mes choix d\'IdP dans le service de découverte d\'IdP',
 		'nl' => 'Verwijder IDP keuzes uit de IdP discovery service',
 		'sl' => 'Razveljavi privzeti IdP',
 		'hr' => 'Poništi moje odabire IdP-a u servisu za pronalaženje IdP-a ',
@@ -727,6 +773,7 @@ $lang = array(
 		'en' => 'Publish my SAML 2.0 IdP metadata to the configured MetaShare',
 		'de' => 'Veröffentliche meine SAML 2.0 IdP Metadaten im konfigurierten MetaShare',
 		'sv' => 'Publisera SAML 2.0 IdP-metadata till den konfigurerade MetaShare',
+		'fi' => 'Julkaise SAML 2.0 IdP:ni metatiedot konfiguroitiin MetaShareen.',
 		'es' => 'Publicar los metadatos del IdP SAML 2.0 en el MetaShare configurado',
 		'nl' => 'Publiceer mijn SAML 2.0 IdP metadata in de geconfigureerde MetaShare',
 		'sl' => 'Objavi moj SAML 2.0 IdP metadata v prednastavljen MetaShare.',
@@ -743,6 +790,7 @@ $lang = array(
 		'en' => 'Publish my SAML 2.0 SP metadata to the configured MetaShare',
 		'de' => 'Veröffentliche meine SAML 2.0 SP Metadaten im konfigurierten MetaShare',
 		'sv' => 'Publisera SAML 2.0 SP-metadata till den konfigurerade MetaShare',
+		'fi' => 'Julkaise SAML 2.0 SP:ni metatiedot konfiguroitiin MetaShareen.',
 		'es' => 'Publicar los metadatos del SP SAML 2.0 en el MetaShare configurado',
 		'nl' => 'Publiceer mijn SAML 2.0 SP metadata in de geconfigureerde MetaShare',
 		'sl' => 'Objavi moj SAML 2.0 SP metadata v prednastavljen MetaShare.',
@@ -759,6 +807,7 @@ $lang = array(
 		'en' => 'Publish my Shib 1.3 IdP metadata to the configured MetaShare',
 		'de' => 'Veröffentliche meine Shib 1.3 IdP Metadaten im konfigurierten MetaShare',
 		'sv' => 'Publisera Shib 1.3 IdP-metadata till den konfigurerade MetaShare',
+		'fi' => 'Julkaise Shibboleth 1.3 IdP:ni metatiedot konfiguroitiin MetaShareen.',
 		'es' => 'Publicar los metadatos del IdP Shib 1.3 en el MetaShare configurado',
 		'nl' => 'Publiceer mijn Shib 1.3 IDP metadata in de geconfigureerde MetaShare',
 		'sl' => 'Objavi moj Shib 1.3 IdP metadata v prednastavljen MetaShare.',
@@ -775,6 +824,7 @@ $lang = array(
 		'en' => 'Publish my Shib 1.3 SP metadata to the configured MetaShare',
 		'de' => 'Veröffentliche meine Shib 1.3 SP Metadaten im konfigurierten MetaShare',
 		'sv' => 'Publisera Shib 1.3 SP-metadata till den konfigurerade MetaShare',
+		'fi' => 'Julkaise Shibboleth 1.3 SP:ni metatiedot konfiguroitiin MetaShareen.',
 		'es' => 'Publicar los metadatos del SP Shib 1.3 en el MetaShare configurado',
 		'nl' => 'Publiceer mijn Shib 1.3 SP metadata in de geconfigureerde MetaShare',
 		'sl' => 'Objavi moj Shib 1.3 SP metadata v prednastavljen MetaShare.',
diff --git a/dictionaries/login.php b/dictionaries/login.php
index 0e7ddcd22f26fae49a57bcdb8f771d46a70ed84c..32d1d2034babbbc43c8f77806d61a8725072f5aa 100644
--- a/dictionaries/login.php
+++ b/dictionaries/login.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'error_header' => array (
 		'no' => 'Feil',
@@ -222,6 +231,7 @@ $lang = array(
 		'en' => 'Choose your home organization',
 		'de' => 'Wählen sie die Einrichtung, von der sie ihre Zugangsdaten beziehen',
 		'sv' => 'Välj vilken organisation du kommer ifrån',
+		'fi' => 'Valitse kotiorganisaatiosi',
 		'es' => 'Seleccione su organizaciĂłn origen',
 		'fr' => 'Choisissez votre fournisseur.',
 		'nl' => 'Kies je organisatie',
@@ -239,6 +249,7 @@ $lang = array(
 		'en' => 'Next',
 		'de' => 'Weiter',
 		'sv' => 'Nästa',
+		'fi' => 'Seuraava',
 		'es' => 'Siguiente',
 		'fr' => 'Suivant',
 		'nl' => 'Volgende',
@@ -256,6 +267,7 @@ $lang = array(
 		'en' => 'Change your home organization',
 		'de' => 'Eine andere Einrichtung, von der sie Zugangsdaten erhalten, auswählen',
 		'sv' => 'Ă„ndra vilken organisation du kommer ifrĂĄn',
+		'fi' => 'Muuta kotiorganisaatiotasi',
 		'es' => 'Cambiar su organizaciĂłn origen',
 		'fr' => 'Changez votre fournisseur',
 		'nl' => 'Verander je organisatie',
@@ -273,6 +285,7 @@ $lang = array(
 		'en' => 'You have chosen <b>%HOMEORG%</b> as your home organization. If this is wrong you may choose another one.',
 		'de' => 'Sie haben <b>%HOMEORG%</b> als ihre Einrichtung gewählt, können diese Auswahl aber noch ändern.',
 		'sv' => 'Du har valt <b>%HOMEORG%</b> som organisation du kommer ifrån. Om detta är fel så kan du välja en annan.',
+		'fi' => 'Olet valinnut kotiorganisaatioksesi <b>%HOMEORG%</b> . Voit muuttaa asetusta valitsemalla toisen.',
 		'es' => 'Ha seleccionado <b>%HOMEORG%</b> como organizaciĂłn origen. Si esta informaciĂłn es incorrecta puede seleccionar otra.',
 		'fr' => 'Vous avez choisi <b>%HOMEORG%</b> comme votre fournisseur. Si ce n\'est pas correct, vous pouvez le changer.',
 		'nl' => 'Je hebt <b>%HOMEORG%</b> gekozen als je organisatie. Als dit niet correct is kun je een andere keuze maken.',
@@ -290,6 +303,7 @@ $lang = array(
 		'en' => 'Choose home organization',
 		'de' => 'Einrichtung auswählen',
 		'sv' => 'Ă„ndra organisation',
+		'fi' => 'Valitse kotiorganisaatiosi',
 		'es' => 'Seleccionar la organizaciĂłn origen',
 		'fr' => 'Choisissez votre fournisseur.',
 		'nl' => 'Kies je organisatie',
@@ -307,7 +321,9 @@ $lang = array(
 		'en' => 'Help desk homepage',
 		'de' => 'Seite des Helpdesk',
 		'sv' => 'Hemsida för helpdesk',
+		'fi' => 'Helpdeskin kotisivu',
 		'es' => 'Página de soporte técnico',
+		'fr' => 'Page web de l\'assistance technique',
 		'nl' => 'Helpdesk homepage',
 		'sl' => 'Spletna stran tehniÄŤne podpore uporabnikom.',
 		'hr' => 'Helpdesk stranice',
@@ -323,7 +339,9 @@ $lang = array(
 		'en' => 'Send e-mail to help desk',
 		'de' => 'Email an den Helpdesk senden',
 		'sv' => 'Skicka e-post till helpdesk',
+		'fi' => 'Lähetä sähköposti helpdeskille.',
 		'es' => 'Enviar correo electrónico al soporte técnico',
+		'fr' => 'Assistance technique par courriel',
 		'nl' => 'Stuur een e-mail naar de helpdesk',
 		'sl' => 'Pošlji e-poštno sporočilo tehnični podpori.',
 		'hr' => 'Pošaljite e-mail helpdesk službi',
@@ -339,7 +357,9 @@ $lang = array(
 		'en' => 'Contact information:',
 		'de' => 'Kontakt',
 		'sv' => 'Kontaktinformation:',
+		'fi' => 'Yhteystiedot',
 		'es' => 'InformaciĂłn de contacto:',
+		'fr' => 'Coordonnées:',
 		'nl' => 'Contact informatie',
 		'sl' => 'Kontakt',
 		'hr' => 'Kontakt podaci',
diff --git a/dictionaries/logout.php b/dictionaries/logout.php
index 21f7ee387b7e13463d70a471a7732f8484244f80..7ecf129192ccbf49c46813e538bcc7747c098cc0 100644
--- a/dictionaries/logout.php
+++ b/dictionaries/logout.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'title' => array (
 		'no' => 'Utlogget',
@@ -8,6 +17,7 @@ $lang = array(
 		'en' => 'Logged out',
 		'de' => 'Abgemeldet',
 		'sv' => 'Utloggad',
+		'fi' => 'Uloskirjautunut',
 		'es' => 'Desconectado',
 		'fr' => 'Déconnecté',
 		'nl' => 'Uitgelogd',
@@ -25,6 +35,7 @@ $lang = array(
 		'en' => 'You have been logged out.',
 		'de' => 'Sie wurden abgemeldet. Danke, dass Sie diesen Dienst verwendet haben.',
 		'sv' => 'Du har blivit uloggad. Tack för att du använde denna tjänst.',
+		'fi' => 'Olet kirjautunut ulos',
 		'es' => 'Ha sido desconectado. Gracias por usar este servicio.',
 		'fr' => 'Vous avez été déconnecté. Merci d\'utiliser ce service.',
 		'nl' => 'U bent uitgelogd. Dank u voor het gebruiken van deze dienst.',
@@ -42,6 +53,7 @@ $lang = array(
 		'en' => 'Go back to simpleSAMLphp installation page',
 		'de' => 'ZurĂĽck zur simpleSAMLphp Installationsseite',
 		'sv' => 'Åter till installationssidan för simpleSAMLphp',
+		'fi' => 'Palaa simpleSAMLphp asennussivulle',
 		'es' => 'Volver a la página de instalación de simpleSAMLphp',
 		'fr' => 'Retournez Ă  la page d\'installation de SimpleSAML.',
 		'nl' => 'Ga terug naar de simpleSAMLphp installatie pagina',
@@ -58,8 +70,13 @@ $lang = array(
 		'da' => 'Du er nu logget ud fra %SP%.',
 		'en' => 'You are now successfully logged out from %SP%.',
 		'sv' => 'Du har nu loggat ut frĂĄn %SP%.',
+		'fi' => 'Olet kirjautunut ulos palvelusta %SP%.',
+		'es' => 'Ha sido desconectado correctamente de %SP%.',
+		'fr' => 'Vous avez été déconnecté de %SP%.',
 		'sl' => 'Uspešno ste se odjavili s sponudnika storitev: %SP%',
+		'hu' => 'Sikeresen kilépett a(z) %SP% szolgáltatásból',
 		'pl' => 'Zostałeś pomyślnie wylogowany z %SP%.',
+		'pt' => 'Saiu com sucesso de %SP%.',
 	),
 	'also_from' => array (
 		'no' => 'Du er ogsĂĄ logget inn pĂĄ disse tjenestene:',
@@ -67,15 +84,27 @@ $lang = array(
 		'da' => 'Du er ogsĂĄ logget ud fra disse services:',
 		'en' => 'You are also logged in on these services:',
 		'sv' => 'Du är även inloggad i följande tjänster:',
+		'fi' => 'Olet kirjautunut seuraaviin palveluihin:',
+		'es' => 'También está autenticado en los siguientes servicios:',
+		'fr' => 'Vous êtes actuellement connecté aux services suivants:',
 		'sl' => 'Prijavljeni ste v naslednje storitve:',
+		'hu' => 'Ezen alkalmazásokban van még bejelentkezve:',
 		'pl' => 'JesteĹ› takĹĽe zalogowany w nastepujÄ…cych serwisach:',
+		'pt' => 'Está também autenticado nos seguintes serviços:',
 	),
 	'no' => array (
 		'no' => 'Nei',
 		'nn' => 'Nei',
+		'da' => 'Nej',
 		'en' => 'No',
 		'sv' => 'Nej',
+		'fi' => 'Ei',
+		'es' => 'No',
+		'fr' => 'Non',
 		'sl' => 'Ne',
+		'hu' => 'Nem',
+		'pl' => 'Nie',
+		'pt' => 'NĂŁo',
 	),
 	'logout_all_question' => array (
 		'no' => 'Vil du logge ut fra alle tjenestene ovenfor?',
@@ -83,8 +112,12 @@ $lang = array(
 		'da' => 'Vil du logge ud fra alle ovenstĂĄende services?',
 		'en' => 'Do you want to logout from all the services above?',
 		'sv' => 'Vill du logga ut från alla ovanstående tjänster?',
+		'es' => '¿Desea desconectarse de todos los servicios que se muestran más arriba?',
+		'fr' => 'Voulez vous réellement terminer les connexions à tout ces services?',
 		'sl' => 'Ali se želite odjaviti z vseh naštetih storitev?',
+		'hu' => 'Ki akar jelentkezni az összes fenti alkalmazásból?',
 		'pl' => 'Czy chcesz zostać wylogowany z powyższych serwisów?',
+		'pt' => 'Deseja sair de todos os serviços listados em cima?',
 	),
 	'logout_all' => array (
 		'no' => 'Ja, alle tjenestene over',
@@ -92,8 +125,13 @@ $lang = array(
 		'da' => 'Ja, alle services',
 		'en' => 'Yes, all services',
 		'sv' => 'Ja, alla tjänster',
+		'fi' => 'Kyllä, kaikista palveluista',
+		'es' => 'Yes, de todos los servicios',
+		'fr' => 'Oui, de tous les services',
 		'sl' => 'Da, odjavi me z vseh storitev',
+		'hu' => 'Igen, minden alkalmazásból',
 		'pl' => 'Tak, wszystkie serwisy',
+		'pt' => 'Sim, todos os serviços',
 	),
 	'logout_only' => array (
 		'no' => 'Nei, bare %SP%',
@@ -101,16 +139,26 @@ $lang = array(
 		'da' => 'Nej, kun %SP%',
 		'en' => 'No, only %SP%',
 		'sv' => 'Nej, endast %SP%',
+		'fi' => 'Ei, vain %SP%',
+		'es' => 'No, sĂłlo %SPS',
+		'fr' => 'Non, seulement de %SP%',
 		'sl' => 'Ne, odjavi me samo z naslednjega %SP%',
+		'hu' => 'Nem, csak innen: %SP%',
 		'pl' => 'Nie, tylko %SP%',
+		'pt' => 'NĂŁo, apenas %SP%',
 	),
 	'incapablesps' => array (
 		'no' => 'En eller flere av tjenestene du er logget inn på <i>støtter ikke logout</i>. Lukk nettleseren, dersom du ønsker å logge ut fra disse tjenestene.',
 		'nn' => 'Ei eller fleire av tenestene du er innlogga på <i>støtter ikkje utlogging</i>.  Lukk weblesaren din for å sikra at alle sesjonar blir lukka',
+		'da' => 'En eller flere services som du er logget ind hos <i>understøtter ikke log ou</i>. For at sikre at alle dine forbindelser er lukket, bedes du <i>lukke din browser</i>.',
 		'en' => 'One or more of the services you are logged into <i>do not support logout</i>. To ensure that all your sessions are closed, you are encouraged to <i>close your webbrowser</i>.',
 		'sv' => 'En eller flera av tjänsterna du är inloggad i <i>kan inte hantera utloggning</i>. För att säkerställa att du inte längre är inloggad i någon tjänst ska du <i>stänga din webbläsare</i>.',
+		'es' => 'Uno o más de los servicios en los que está autenticado <i>no permite desconexión</i>. Para asegurarse de que todas sus sesiones se cierran, se le recomienda que <i>cierre todas las ventanas de su navegador</i>.',
+		'fr' => 'Un ou plusieurs des services auxquels vous êtes connecté <i>ne gèrent pas la déconnextion</i>. Pout terminer les sessions sur ces services, vous devrez <i>fermer votre navigateur</i>.',
 		'sl' => 'Ena ali veÄŤ storitev v katere ste prijavljeni, <i>ne omogoÄŤa odjave</i>. Odjavo s teh storitev izvedete tako, da <i>zaprete spletni brskalnik</i>.',
+		'hu' => 'Egy vagy több alkalmazás <i>nem támogatja a kijelenkezést</i>. Hogy biztosítani lehessen, hogy nem maradt bejelentkezve, kérjük, <i>lépjen ki a böngészőből!</i>',
 		'pl' => 'Jeden lub więcej serwisów , w których jesteś zalogowany <i>nie obsługuje procesu wylogowania</i>. W celu upewnienia się, że wszystkie sesje są zakończone, zalecane jest abyś <i>zamknął przeglądarkę</i>',
+		'pt' => 'Um ou mais dos serviços onde se encontra autenticado <i>não suporta(m) a saída</i>. Para garantir que todas as sessões são encerradas, deverá <i>encerrar o seu navegador Web</i>.',
 	),
 	'description' => array (
 		'no' => 'Du har startet en <strong>global utlogging</strong> fra tjenesten <strong>%REQUESTERNAME%</strong>. Global utlogging betyr at du vil bli logget ut fra alle tjenestene vist nedenfor.',
@@ -119,9 +167,12 @@ $lang = array(
 		'en' => 'You have initiated a <strong>global logout</strong> from the service <strong>%REQUESTERNAME%</strong>. Global logout means you will be logged out from all of the services listed below.',
 		'sv' => 'Du har påbörjat en <strong>global utloggníng</strong> från tjänsten <strong>%REQUESTERNAME%</strong>. Global utloggnng betyder att du kan kommer att bli utloggad från alla nedanstående tjänste.',
 		'es' => 'Ha comenzado una <strong>desconexión global</strong> del servicio <strong>%REQUESTERNAME%</strong>. La desconexión global significa que será desconectado de todos los servicios listados a continuación.',
+		'fr' => 'Vous avez initié une <strong>déconnexion globale</strong> depuis le service <strong>%REQUESTERNAME%</strong>. La déconnexion est globale implique que vos sessions sur les services ci-dessous seront égallement terminées.',
 		'sl' => 'SproĹľili ste "<strong>globalno odjavo</strong>" s storitve <strong>%REQUESTERNAME%</strong>. ',
 		'hr' => 'Inicirali ste <strong>globalno odjavljivanje</strong> iz aplikacije <strong>%REQUESTERNAME%</strong>. To znači da ćete biti odjavljeni iz svih niže navedenih aplikacija.',
+		'hu' => '<strong>Teljes kijelentkezési folyamatot</strong> indított ebből az alkalmazásból: <strong>%REQUESTERNAME%</strong>. A teljes kijelentkezés azt jelenti, hogy az alábbi összes alkalmazásból kijelentkezik.',
 		'pl' => 'Zainicjowałeś <strong>globalne wylogowanie</strong> z serwisu <strong>%REQUESTERNAME%</strong>.  Globalne wylogowanie oznacza, że zostaniesz wylogowany ze wszystkich z poniższej listy serwisów.',
+		'pt' => 'Iniciou uma <strong>saída global</strong> do serviço <strong>%REQUESTERNAME%</strong>. Uma saída global significa que irá sair de todos os serviços listados em baixo.',
 	),
 	'initiated' => array (
 		'no' => 'Startet utlogging',
@@ -130,9 +181,12 @@ $lang = array(
 		'en' => 'Initiated logout',
 		'sv' => 'Påbörjad utloggning',
 		'es' => 'Logout iniciado',
+		'fr' => 'Lancement de la déconnexion',
 		'sl' => 'Odjava inicializirana.',
 		'hr' => 'Inicirana odjava',
+		'hu' => 'Kijelentkezés elindítva',
 		'pl' => 'Wylogowanie zaincjowane',
+		'pt' => 'SaĂ­da iniciada',
 	),
 	'hold' => array (
 		'no' => 'PĂĄ vent',
@@ -141,9 +195,12 @@ $lang = array(
 		'en' => 'On hold',
 		'sv' => 'Vilande',
 		'es' => 'En espera',
+		'fr' => 'En cours',
 		'sl' => 'Na ÄŤakanju',
 		'hr' => 'Na ÄŤekanju',
+		'hu' => 'FelfĂĽggesztve',
 		'pl' => 'W zawieszeniu',
+		'pt' => 'Em espera',
 	),
 	'completed' => array (
 		'no' => 'Fullført',
@@ -151,10 +208,14 @@ $lang = array(
 		'da' => 'Færdig',
 		'en' => 'Completed',
 		'sv' => 'Klar',
+		'fi' => 'Valmis',
 		'es' => 'Terminado',
+		'fr' => 'Fait',
 		'sl' => 'DokonÄŤano',
 		'hr' => 'Završeno',
+		'hu' => 'Befejezve',
 		'pl' => 'Zakończono',
+		'pt' => 'Completa',
 	),
 	'progress' => array (
 		'no' => 'Logger ut...',
@@ -162,10 +223,14 @@ $lang = array(
 		'da' => 'Logger ud...',
 		'en' => 'Logging out...',
 		'sv' => 'Loggar ut...',
+		'fi' => 'Kirjautuu ulos...',
 		'es' => 'Desconectando...',
+		'fr' => 'DĂ©connexion...',
 		'sl' => 'Odjavljanje...',
 		'hr' => 'Odjava u tijeku...',
+		'hu' => 'Kijelentkezés...',
 		'pl' => 'Wylogowywanie...',
+		'pt' => 'A sair...',
 	),
 	'failed' => array (
 		'no' => 'Utlogging feilet',
@@ -173,10 +238,14 @@ $lang = array(
 		'da' => 'Logout fejlede',
 		'en' => 'Logout failed',
 		'sv' => 'Utloggning misslyckades',
+		'fi' => 'Uloskirjautuminen epäonnistunut',
 		'es' => 'Proceso de desconexiĂłn fallido',
+		'fr' => 'Echec de la déconnexion',
 		'sl' => 'Odjava je spodletela.',
 		'hr' => 'Odjava nije uspjela',
+		'hu' => 'Kijelentkezés nem sikerült',
 		'pl' => 'Wystąpił bład podczas wylogowania',
+		'pt' => 'SaĂ­da falhada',
 	),
 	'continue' => array (
 		'no' => 'Ønsker du å fortsette global utlogging?',
@@ -185,9 +254,12 @@ $lang = array(
 		'en' => 'Do you want to continue global logout?',
 		'sv' => 'Vill du fortsätta med den globala utloggningen?',
 		'es' => 'ÂżQuieres continuar con el proceso de desconexiĂłn global?',
+		'fr' => 'Souhaitez vous poursuivre la déconnexion globale?',
 		'sl' => 'Ali Ĺľelite nadaljevati z globalno odjavo?',
 		'hr' => 'Želite li nastaviti s globalnim odjavljivanjem?',
+		'hu' => 'Kívánja folytatni a teljes kijelentkezést?',
 		'pl' => 'Czy chcesz kontynuować globalne wylogowanie?',
+		'pt' => 'Deseja continuar a saĂ­da global?',
 	),
 	'do_continue' => array (
 		'no' => 'Ja, fortsett utlogging',
@@ -196,9 +268,12 @@ $lang = array(
 		'en' => 'Yes, continue logout',
 		'sv' => 'Ja, fortsätt logga ut',
 		'es' => 'SĂ­, continĂşa con la desconexiĂłn',
+		'fr' => 'Oui, continuer la déconnexion',
 		'sl' => 'Da, nadaljuj z odjavo',
 		'hr' => 'Da, nastavi s odjavljivanjem',
+		'hu' => 'Igen, kijelentkezés folyatatása',
 		'pl' => 'Tak, wyloguj',
+		'pt' => 'Sim, continuar saĂ­da',
 	),
 	'cancel' => array (
 		'no' => 'Avbryt utlogging',
@@ -207,9 +282,12 @@ $lang = array(
 		'en' => 'Cancel logout',
 		'sv' => 'Avbryt utloggningen',
 		'es' => 'Cancelar la desconexiĂłn',
+		'fr' => 'Annuler la déconnexion',
 		'sl' => 'PrekliÄŤi odjavo',
 		'hr' => 'OtkaĹľi odjavljivanje',
+		'hu' => 'Kijelentkezés megszakítása',
 		'pl' => 'Anuluj wylogowanie',
+		'pt' => 'Cancelar saĂ­da',
 	),
 	'respond_info' => array (
 		'no' => 'Dersom noen av tjenestene ikke svarer innen rimelig tid anbefales du ĂĄ lukke din nettleser for ĂĄ sikre at sesjonen avsluttes.',
@@ -218,9 +296,12 @@ $lang = array(
 		'en' => 'If some of the service providers do not respond in reasonable time, you are encouraged to close your browser to ensure sessions are closed.',
 		'sv' => 'Om någon tjänst inte svarar inom rimlig tid rekommenderas du att stänga webbläsaren för att garantera att du blir utloggad.',
 		'es' => 'Si algunos de los proveedores de servicio no responden en un tiempo razonable, se te invita a que cierres tu navegador para asegurar que todas las sesiones sean cerradas',
+		'fr' => 'Si certains fournissseurs de service manquent de réponsre dans un temps raisonnable, vous devriez fermer votre navigateur pour assurer la bonne cloture de vos sessions.',
 		'sl' => 'V primeru, da se odjava poteka nerazumno dolgo vam svetujemo, da zaprete spletni brskalnik in s tem zagotovite zakljuÄŤek seje.',
 		'hr' => 'Ako ne dobijete odgovor od nekih aplikacija u razumnom roku, preporuÄŤamo da zatvorite svoj web preglednik kako biste bili sigurni da ste se odjavili iz svih aplikacija.',
+		'hu' => 'Ha valamelyik tartalomszolgáltató nem válaszol értelmes időn belül, kérjük, lépjen ki a böngészőjéből, hogy biztosan kilépjen az összes alkalmazásból.',
 		'pl' => 'Jeśli jakiś z dostawców serwisu nie odpowie w przyzwoitym czasie, zostaniesz zachęcony do zamknięcia przegladarki w celu zamknięcia sesji.',
+		'pt' => 'Se algum dos fornecedores de serviço (SP) não responder num intervalo de tempo razoável, é aconselhado encerrar o seu navegador Web para garantir que as suas sessões são encerradas.',
 	),
 	'return' => array (
 		'no' => 'Tilbake til tjenesten',
@@ -228,10 +309,14 @@ $lang = array(
 		'da' => 'Tilbage til service',
 		'en' => 'Return to service',
 		'sv' => 'Åter till tjänsten',
+		'fi' => 'Palaa palveluun',
 		'es' => 'Volver al servicio',
+		'fr' => 'Retour au service',
 		'sl' => 'Vrni se nazaj na storitev.',
 		'hr' => 'Povratak u aplikaciju',
+		'hu' => 'Vissza a szolgáltatáshoz',
 		'pl' => 'PowrĂłt do serwisu',
+		'pt' => 'Regressar ao serviço',
 	),
 	'progress_bar' => array (
 		'no' => 'Status bar',
@@ -240,9 +325,12 @@ $lang = array(
 		'en' => 'Progress bar',
 		'sv' => 'Förloppsindikator (utloggningsmätare)',
 		'es' => 'Barra de progreso',
+		'fr' => 'Barre de progréssion',
 		'sl' => 'Stanje napredka',
 		'hr' => 'Napredak',
+		'hu' => 'Folyamatjelző',
 		'pl' => 'Pasek stanu',
+		'pt' => 'Barra de progresso',
 	),
 	'logging_out' => array (
 		'no' => 'Vent... logger ut fra <strong>%SPNAME%</strong>.',
@@ -251,9 +339,12 @@ $lang = array(
 		'en' => 'Wait... is logging out from <strong>%SPNAME%</strong>.',
 		'sv' => 'Vänta... loggar ut från <strong>%SPNAME%</strong>.',
 		'es' => 'Espere.. está desconectándose de <strong>%SPNAME%</strong>',
+		'fr' => 'Patientez... déconnexion de <strong>%SPNAME%</strong>.',
 		'sl' => 'PoÄŤakaj... odjava s <strong>%SPNAME%</strong> v teku.',
 		'hr' => 'PriÄŤekajte... odjavljujem se iz <strong>%SPNAME%</strong>.',
+		'hu' => 'Várjon... kijelentkeztetés a(z) <strong>%SPNAME%</strong> alkalmazásból.',
 		'pl' => 'Czekaj... trwa wylogowywanie z <strong>%SPNAME%</strong>.',
+		'pt' => 'Espere... está a sair de <strong>%SPNAME%</strong>.',
 	),
 	'logged_out' => array (
 		'no' => 'Utlogging var startet fra %REQUESTERNAME%.',
@@ -262,8 +353,10 @@ $lang = array(
 		'en' => 'Logout was started from %REQUESTERNAME%.',
 		'sv' => 'Utloggning startades frĂĄn %REQUESTERNAME%.',
 		'es' => 'Se ha iniciado la desconexiĂłn de %REQUESTERNAME%',
+		'fr' => 'Déconnexion initiér par %REQUESTERNAME%.',
 		'sl' => 'Odjava je bila sproĹľena z %REQUESTERNAME%.',
 		'hr' => 'Odjavljivanje je pokrenuto iz %REQUESTERNAME%.',
+		'hu' => 'Kijelentkezési folyamat elindítva innen: %REQUESTERNAME%.',
 		'pl' => 'Wylogowywanie rozpoczęto z %REQUESTERNAME%.',
 	),
 	'interrupt' => array (
@@ -273,9 +366,12 @@ $lang = array(
 		'en' => 'Interrupt logging out and go back to service.',
 		'sv' => 'Avbryt utloggningen och gå tillbaka till tjänsten.',
 		'es' => 'Detener la desconexiĂłn y retornar al servicio',
+		'fr' => 'Annuler la déconnexion et retourner au service.',
 		'sl' => 'Prekini odjavo in se vrni nazaj na storitev.',
 		'hr' => 'Prekini odjavljivanje i vrati se natrag u aplikaciju.',
+		'hu' => 'Kijelentkezés megszakítása és vissza a szolgálatatáshoz.',
 		'pl' => 'Przerwij wylogowanie i wróć do serwisu.',
+		'pt' => 'Interromper saída e regressar ao serviço.',
 	),
 	'success' => array (
 		'no' => 'Du har n&aring; logget ut fra alle tjenestene listet ovenfor.',
@@ -284,9 +380,12 @@ $lang = array(
 		'en' => 'You have successfully logged out from all services listed above.',
 		'sv' => 'Du har loggat ut från alla nedanstående tjänster.',
 		'es' => 'Ha sido correctamente desconectado de todo los servicios listados a continuaciĂłn',
+		'fr' => 'Vous avez été déconnecté avec succès des services listés ci dessus',
 		'sl' => 'Uspešno ste se odjavili z vseh naštetih storitev.',
 		'hr' => 'Uspješno ste se odjavili iz svih gore navedenih aplikacija.',
+		'hu' => 'Sikeresen kijelentkezett az fent felsorolt összes alkalmazásból.',
 		'pl' => 'Zostałeś pomyślnie wylogowany ze wszystkich powyższych serwisów.',
+		'pt' => 'Saiu com sucesso de todos os serviços listados em cima.',
 	),
 	'finish' => array (
 		'no' => 'OK, fortsett tilbake til %REQUESTERNAME% for å fullføre utloggingsprosessen.',
@@ -295,9 +394,12 @@ $lang = array(
 		'en' => 'OK, continue back to %REQUESTERNAME% to complete the logout process.',
 		'sv' => 'Ok, fortsätt tillbaka till %REQUESTERNAME% för att avsluta utloggningen.',
 		'es' => 'OK, continuemos de nuevo en %REQUESTERNAME% para terminar el proceso de desconexiĂłn',
+		'fr' => 'OK, retourner à %REQUESTERNAME% pour achever le processus de déconnexion',
 		'sl' => 'OK, pojdi nazaj na %REQUESTERNAME%, da bo postopek odjave zakljuÄŤen.',
 		'hr' => 'OK, vratite se natrag na %REQUESTERNAME% da biste završili proces odjave.',
+		'hu' => 'OK, vissza %REQUESTERNAME% oldalára, hogy befejeződjön a kijelentkezési folyamat.',
 		'pl' => 'OK, kontynuuj powrót do %REQUESTERNAME% w celu zakończenia procesu wylogowywania.',
+		'pt' => 'OK, continue de volta a %REQUESTERNAME% para completar o processo de saĂ­da.',
 	),
 
 );
diff --git a/dictionaries/metashare.php b/dictionaries/metashare.php
index f2e702e130eb801fc77ef3b28702bfd4a98c8230..5ce2deb461d05de4d09d760abd233d4e7c0dc007 100644
--- a/dictionaries/metashare.php
+++ b/dictionaries/metashare.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'front_header' => array (
 		'no' => 'MetaShare',
@@ -7,6 +16,7 @@ $lang = array(
 		'da' => 'Metashare',
 		'en' => 'MetaShare',
 		'sv' => 'MetaShare',
+		'fi' => 'MetaShare',
 		'es' => 'MetaShare',
 		'nl' => 'MetaShare',
 		'sl' => 'MetaShare',
@@ -22,6 +32,7 @@ $lang = array(
 		'da' => 'Dette er en metadata-delingstjeneste, som gør det muligt at tilføje dynamisk genereret metadata til et fælles repository',
 		'en' => 'This is a metadata sharing service. It allows you to add dynamically generated metadata to a shared store.',
 		'sv' => 'Detta delningsjänsten för metadata. Den tillåter att du lägger till dynamiskt skapad metadata till ett delat datalager.',
+		'fi' => 'Tämä metatietojen jakopalvelu. Sen avulla voi lisätä dynaamisesti luodun metatiedon jaettuun varastaoon.',
 		'es' => 'Servicio de compartición de metadatos. Le permite añadir metadatos generados dinámicamente a un almacenamiento compartido.',
 		'nl' => 'Dit is een metadata service. Je kan er dynamisch gegenereerde metadata mee toevoegen aan een gedeelde database.',
 		'sl' => 'MetaShare je storitev souporabe metapodatkov. Omogoča dodajanje dinamično generiranih metapodatkov v skladišče za skupno rabo.',
@@ -37,6 +48,7 @@ $lang = array(
 		'da' => 'Tilføj enhed',
 		'en' => 'Add entity',
 		'sv' => 'Lägg till entitet',
+		'fi' => 'Lisää palvelu',
 		'es' => 'Añadir entidad',
 		'nl' => 'Voeg entiteit toe',
 		'sl' => 'Dodaj entiteto',
@@ -52,6 +64,7 @@ $lang = array(
 		'da' => 'Tilføj nyt eller opdaterert metadat ved at skrive den url der fører til metadata. Urlen skal matche entitets identificatoren for den entitet der er beskrevet i metadata',
 		'en' => 'Add new or updated metadata by specifying the URL of the metadata. This URL must match the entity identifier of the entity described in the metadata.',
 		'sv' => 'Läg till ny eller uppdatera metadata genom att ange URL för metadatat. URLen måste matcha entitetsidentifieraren för entiteten som är beskriven i metatdatat.',
+		'fi' => 'Lisää uusi tai muuta metatietoja antamalla metatietojen URL. URL:n tulee vastata palvelun tunnistetta metadatassa.',
 		'es' => 'Añadir o actualizar metadatos indicando la URL de los metadatos. Esta URL debe coincidir con el "identificador de la entidad" de la entidad descrita en los metadatos.',
 		'nl' => 'Voeg nieuwe of bijgewerte metadata toe door de URL van de metadata op te geven. Deze URL moet overeenkomen met de entity identifier van de entiteit die wordt beschreven in de metadata.',
 		'sl' => 'Dodajte nove ali popravljene metapodatke tako, da podate njen URL. URL se mora ujemati z identifikatorjem entitete.',
@@ -67,11 +80,13 @@ $lang = array(
 		'da' => 'Entitets idetifikatoren for entiteten',
 		'en' => 'Entity identifier of the entity:',
 		'sv' => 'Entitetsidentifierare för entiteten:',
+		'fi' => 'Palvelun tunniste (entityid):',
 		'es' => 'Identificador de la entidad:',
 		'nl' => 'Entity identifier van de entiteit.',
 		'sl' => 'Identifikator entete:',
 		'hr' => 'Identifikator entiteta:',
 		'hu' => 'Bejegyzés azonosítója:',
+		'pl' => 'Identyfikator jednostki',
 		'pt' => 'Identificador de entidade',
 		'pt-BR' => 'Entidade identificador da entidade:',
 	),
@@ -81,6 +96,7 @@ $lang = array(
 		'da' => 'Tilføj',
 		'en' => 'Add',
 		'sv' => 'Lägg till',
+		'fi' => 'Lisää',
 		'es' => 'Añadir',
 		'nl' => 'Voeg toe',
 		'sl' => 'Dodaj',
@@ -111,6 +127,7 @@ $lang = array(
 		'da' => 'Download alt metadata',
 		'en' => 'Download all metadata',
 		'sv' => 'Hämta alla metadata',
+		'fi' => 'Lataa kaikki metatiedot',
 		'es' => 'Descargar todos los metadatos',
 		'nl' => 'Download alle metadata',
 		'sl' => 'Prenesi vse metapodatke k sebi.',
@@ -126,6 +143,7 @@ $lang = array(
 		'da' => 'Entiteter',
 		'en' => 'Entities',
 		'sv' => 'Entiteter',
+		'fi' => 'Palvelut',
 		'es' => 'Entidades',
 		'nl' => 'Entiteiten',
 		'sl' => 'Entitete',
@@ -146,6 +164,7 @@ $lang = array(
 		'sl' => 'To je seznam vseh entitet, ki so trenutnotno shranjene v tem MetaShareu. S klikom na povezavo (entiteto), lahko prenesete njeno metadato.',
 		'hr' => 'Ovo je popis svih entiteta koji su trenutno pohranjeni u MetaShare repozitoriju. Kliknite na odgovarajući link da biste dohvatili metapodatke za određeni entitet.',
 		'hu' => 'Ez a lista a jelenleg a MetaShare-ben tárolt összes elemet mutatja. Kattintson a linkre, hogy letölthesse a az entitáshoz tartozó metaadatokat.',
+		'pl' => 'To jest lista wszystkich jednostek, które aktualnie są zapisane w Metashare. Kliknij na link aby ściągnąć metadane wybranej jednostki.',
 		'pt' => 'Apresenta-se de seguida uma lista de todas as entidades presentes neste serviço de MetaShare. Siga uma das ligações para efectuar o download dos metadados da entidade correspondente.',
 		'pt-BR' => 'Esta Ă© uma lista de todas as entidades que estĂŁo atualmente guardadas nesta MetaShare. Clique em um link para baixar as metadata das determinadas entidades.',
 	),
@@ -160,6 +179,7 @@ $lang = array(
 		'sl' => 'V MetaShare trenutno ni shranjene nobene entitete.',
 		'hr' => 'U MetaShare repozitoriju trenutno nije pohranjen niti jedan entitet.',
 		'hu' => 'Egyetlen bejegyzés sincs a MetaShare-ben.',
+		'pl' => 'Aktualnie brak jednostek zapisanych w Metashare.',
 		'pt' => 'Não existem entidades presentes neste serviço de MetaShare.',
 		'pt-BR' => 'Não há entidades atualmente guardadas nesta MetaShare.',
 	),
@@ -169,6 +189,7 @@ $lang = array(
 		'da' => 'Tekst',
 		'en' => 'text',
 		'sv' => 'txt',
+		'fi' => 'teksti',
 		'es' => 'Texto',
 		'nl' => 'Tekst',
 		'sl' => 'Besedilo',
@@ -184,6 +205,7 @@ $lang = array(
 		'da' => 'Tilføj metadata',
 		'en' => 'Add metadata',
 		'sv' => 'Lägg till metadata',
+		'fi' => 'Lisää metatieto',
 		'es' => 'Añadir metadatos',
 		'nl' => 'Voeg metadata toe',
 		'sl' => 'Dodaj metapodatke',
@@ -199,6 +221,7 @@ $lang = array(
 		'da' => 'Metadata fra "%URL%" blev tilføjet',
 		'en' => 'The metadata from "%URL%" was successfylly added.',
 		'sv' => 'Metadata frĂĄn "%URL%" har lagts till.',
+		'fi' => 'Metatieto "%URL%" lisätty onnistuneesti.',
 		'es' => 'Los metadatos de "%URL%" se han añadido correctamente.',
 		'nl' => 'De metadata van "%URL%" is succesvol toegevoegd.',
 		'sl' => 'Metapodatki z naslova "%URL%" so bili uspešno dodani.',
@@ -214,6 +237,7 @@ $lang = array(
 		'da' => 'URL ikke opgivet',
 		'en' => 'No URL parameter given.',
 		'sv' => 'Ingen URL angavs.',
+		'fi' => 'URL parametri puuttuu.',
 		'es' => 'No indicó el parámetro URL.',
 		'nl' => 'Geen URL parameter opgegeven',
 		'sl' => 'Noben URL parameter ni bil podan.',
@@ -234,6 +258,7 @@ $lang = array(
 		'sl' => 'NapaÄŤen URL ali ID entitete, le-ta mora biti veljaven http ali https naslov. Posredovali ste naslednji URL: "%URL%".',
 		'hr' => 'Neispravan URL / identifikator entiteta za metapodatke. Identifikator entiteta treba biti valjani http: ili https: URL. URL koji ste zadali je "%URL%".',
 		'hu' => 'Érvénytelen URL/entitás azonosító. Az entitás azonosítójának érvényes http: vagy https: protokollt használó URL-nek kell lennie. A megadott URL ez volt: "%URL%".',
+		'pl' => 'Niepoprawny URL/id jednostki. Identyfikator jednostki powinien być poprawny http: lub https: URL. URL, który podałeś był "%URL%".',
 		'pt' => 'URL inválido. O identificador de entidade (entityID) deve ser um URL válido do tipo http: ou https:. O URL fornecido foi "%URL%".',
 		'pt-BR' => 'URL/Identificação da Entidade inválida para a metadata. A identificação da entidade deve ser um endereço http: ou https: válido. A URL passada foi "%URL%".',
 	),
@@ -263,6 +288,7 @@ $lang = array(
 		'sl' => 'Napaka v strukturi XML metapodatkov. URL, ki ste ga posredovali "%URL%".',
 		'hr' => 'XML sadrĹľaj u metapodacima je izobliÄŤen. Zadani URL je "%URL%".',
 		'hu' => 'Hibás XML a metaadat-állományban. Az URL az alábbi volt: "%URL%"',
+		'pl' => 'Nieprawidłowy XML w metadanych. URL, który podałeś był "%URL%".',
 		'pt' => 'Metadados com XML mal formatado. O URL fornecido foi "%URL%".',
 		'pt-BR' => 'XML incorreto na metadata. A URL passada foi "%URL%".',
 	),
@@ -300,6 +326,7 @@ $lang = array(
 		'da' => 'Fejl i XML-validering af metadata fra %URL%',
 		'en' => 'XML validation of the metadata from "%URL%" failed:',
 		'sv' => 'XML-valideringen av metatdatat frĂĄn "%URL%" misslyckades:',
+		'fi' => 'Metatiedon "%URL%" XML-validointi epäonnistui ',
 		'es' => 'La validaciĂłn del XML de los metadatos  desde "%URL%" ha fallado:',
 		'nl' => 'XML validatie van de metadata op "%URL%" is niet gelukt:',
 		'sl' => 'XML validacija metapodatkov z naslova "%URL%" je spodletela:',
@@ -315,6 +342,7 @@ $lang = array(
 		'da' => 'GĂĄ til metada listen',
 		'en' => 'Go to metadata list',
 		'sv' => 'GĂĄ till metadatalistan',
+		'fi' => 'Siirry metatietolistaan',
 		'es' => 'Ir a la lista de metadatos',
 		'nl' => 'Ga naar de metadata lijst',
 		'sl' => 'Pojdi na seznam metapodatkov',
diff --git a/dictionaries/no_access_dictionary.php b/dictionaries/no_access_dictionary.php
index 268c2984470b2a1b57940993189996d15ebc3ae0..0bdd081139a772ec2c389e8d82f08a13e3c5ecd0 100644
--- a/dictionaries/no_access_dictionary.php
+++ b/dictionaries/no_access_dictionary.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'access_denied' => array (
 		'no' => 'Du har ikke tilgang til denne tjenesten',
@@ -8,7 +17,9 @@ $lang = array(
 		'en' => 'You do not have access to this service',
 		'de' => 'Sie haben keinen Zugriff auf diesen Dienst',
 		'sv' => 'Du har inte tillgång till denna tjänst',
+		'fi' => 'Sinulla ei ole käyttöoikeutta palveluun',
 		'es' => 'No tiene acceso a este servicio.',
+		'fr' => 'Vous n\'etes pas autorisé à accéder à ce service',
 		'nl' => 'U heeft geen toegang tot deze dienst',
 		'sl' => 'Dostop do storitve zavrnjen.',
 		'hr' => 'Nemate pristup ovom servisu',
@@ -24,9 +35,11 @@ $lang = array(
 		'en' => 'You do not have access to the service:',
 		'de' => 'Sie haben keinen Zugriff auf den Dienst:',
 		'sv' => 'Du har inte tillgång till angiven tjänst:',
+		'fi' => 'Sinulla ei ole käyttöoikeutta palveluun:',
 		'es' => 'No tiene acceso al servicio:',
+		'fr' => 'Vous n\'etes pas autorisé à accéder à ce service',
 		'nl' => 'U heeft geen toegang tot deze dienst:',
-		'sl' => 'Nimate dostopa to te storitve.',
+		'sl' => 'Nimate dostopa do te storitve.',
 		'hr' => 'Nemate pristup servisu:',
 		'hu' => 'Ön nem férhet hozzá ehhez a szolgáltatáshoz:',
 		'pl' => 'Nie masz dostępu to tego serwisu:',
@@ -40,7 +53,9 @@ $lang = array(
 		'en' => 'Access to services is controlled by your home organization. Please contact your local it support for questions.',
 		'de' => 'Der Zugriff auf Dienste wird von Ihrer Heimatorganisation geregelt. Bitte wenden Sie sich mit Fragen an Ihre lokale IT UnterstĂĽtzung.',
 		'sv' => 'Tillgång till tjänster kontrolleras av din hemmaorganisation. Ta kontakt med din lokala support om du har några frågor.',
+		'fi' => 'Käyttöoikeuksista palveluun vastaa kotiorganisaatiosi. Ota yhteys paikalliseen tukeen lisätietoja varten.',
 		'es' => 'El acceso al servicio se controla por su organizaciĂłn. Por favor, para cualquier consulta contacte con el personal de su organizaciĂłn.',
+		'fr' => 'L\'accès à ce service est restreint par votre institution. Contactez votre support technique pour avoir plus d\'informations',
 		'nl' => 'Toegang tot diensten wordt verleend door uw organisatie. Neem contact op met uw ICT afdeling.',
 		'sl' => 'Možnost dostopa do storitve ureja vaša domača organizacija. Obrnite se na njihov oddelek za pomoč uporabnikom.',
 		'hr' => 'Pristup ovom servisu kontrolira vaš davatelj elektroničkih identiteta. Za dodatne informacije molimo kontaktirajte vašeg davatelja elektroničkih identiteta.',
diff --git a/dictionaries/openid.php b/dictionaries/openid.php
index 4d4fa5671d93a70075cfd17edf8a12464ea420bc..548ecb909ae562061249ace983966b1ad1ef7fcf 100644
--- a/dictionaries/openid.php
+++ b/dictionaries/openid.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'list_trusted_sites' => array (
 		'no' => 'Godkjente steder',
@@ -42,6 +51,7 @@ $lang = array(
 		'sl' => 'Dobrodošli v simpleSAMLphp OpenID ponudnik.',
 		'hr' => 'Dobro došli u simpleSAMLphp davatelj OpenID usluge.',
 		'hu' => 'Köszöntjük a simpleSAMLphp OpenID kiszolgálón.',
+		'pl' => 'Witaj w dostawcy simpleSAMLphp OpenID',
 		'pt' => 'Bem-vindo ao fornecedor OpenID do simpleSAMLphp',
 		'pt-BR' => 'Bem vindo ao Provedor OpenID simpleSAMLphp',
 	),
@@ -56,6 +66,7 @@ $lang = array(
 		'sl' => 'Pred uporabo tega streĹľnika morate vzpostaviti URL, ki se bo uporabil kot identifikator.  Vstavite naslednjo oznako <code>&lt;head&gt;</code> v HTML dokument na URLju:',
 		'hr' => 'Da biste koristili ovaj poslužitelj, morate podesiti identifikacijski URL. Unesite sljedeću oznaku u <code>&lt;head&gt;</code> HTML dokumenta koji se nalazi na tom URL-u:',
 		'hu' => 'A szerver használatához, be kell állítani egy azonosító URL-t. A következőt kell beállítani a HTML dokumentum <code>&lt;head&gt;</code> részébe:',
+		'pl' => 'Aby używać ten serwer będziesz musiał ustawić URL, który będzię używany jako identyfikator. Wstaw następujący znacznik to <code>&lt;head&gt;</code> dokumentu HTML w tym URL:',
 		'pt' => 'Para usar este servidor, terá de configurar um URL a ser usado como identificador. Insira o seguinte código no elemento <code>&lt;head&gt;</code> do documento HTML presente nesse URL:',
 		'pt-BR' => 'Para utilizar este servidor, você terá que configurar uma URL para o uso como um identificador. Inserira o seguinte código na <code>&lt;head&gt;</code> do seu documento HTML em que se encontra a URL:',
 	),
diff --git a/dictionaries/status.php b/dictionaries/status.php
index 287fe7540d8d52b44070461bb5a05342f3d4d3a7..39784074d3d18b07383b966454162cd0320f66ae 100644
--- a/dictionaries/status.php
+++ b/dictionaries/status.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'header_saml20_sp' => array (
 		'no' => 'SAML 2.0 SP Demo Eksempel',
@@ -8,7 +17,9 @@ $lang = array(
 		'en' => 'SAML 2.0 SP Demo Example',
 		'de' => 'SAML 2.0 SP Demo Beispiel',
 		'sv' => 'SAML 2.0 SP demoexempel',
+		'fi' => 'SAML 2.0 SP esimerkki',
 		'es' => 'Ejemplo de SAML 2.0 SP',
+		'fr' => 'Example de démonstration de SP SAML 2.0',
 		'nl' => 'SAML 2.0 SP Demo',
 		'sl' => 'SAML 2.0 SP Demo primer',
 		'hr' => 'SAML 2.0 SP primjer',
@@ -24,7 +35,9 @@ $lang = array(
 		'en' => 'Shibboleth demo',
 		'de' => 'Shibboleth Demo',
 		'sv' => 'Shibboleth demoexempel',
+		'fi' => 'Shibboleth esimerkki',
 		'es' => 'Ejemplo Shibboleth',
+		'fr' => 'Exemple de démonstration de Shibboleth',
 		'nl' => 'Shibboleth demo',
 		'sl' => 'Shibboleth demo primer',
 		'hr' => 'Shibboleth primjer',
@@ -40,7 +53,9 @@ $lang = array(
 		'en' => 'WS-Fed SP Demo Example',
 		'de' => 'WS-Fed SP Demo Beispiel',
 		'sv' => 'WS-Fed SP demoexempel',
+		'fi' => 'WS-FED SP esimerkki',
 		'es' => 'Ejemplo WS-Fed SP',
+		'fr' => 'Exemple de démonstration de WS-Fed SP',
 		'nl' => 'WS-Fed SP Demo',
 		'sl' => 'WS-Fed SP demo primer',
 		'hr' => 'WS-Fed SP primjer',
@@ -56,7 +71,9 @@ $lang = array(
 		'en' => 'SimpleSAMLphp Diagnostics',
 		'de' => 'SimpleSAMLphp Diagnose',
 		'sv' => 'SimpleSAMLphp diagnostik ',
+		'fi' => 'SimpleSAMLphp diagnostiikka',
 		'es' => 'DiagnĂłstico simpleSAMLphp',
+		'fr' => 'Diagnostics SimpleSAMLphp',
 		'nl' => 'SimpleSAMLphp controle',
 		'sl' => 'SimpleSAMLphp diagnostika',
 		'hr' => 'SimpleSAMLphp dijagnostika',
@@ -72,7 +89,9 @@ $lang = array(
 		'en' => 'Some error occured',
 		'de' => 'Es ist ein Fehler aufgetreten',
 		'sv' => 'Ett fel har inträffat',
+		'fi' => 'Virhe',
 		'es' => 'Se produjo un error',
+		'fr' => 'Une erreur est survenue',
 		'nl' => 'Er is een fout opgetreden',
 		'sl' => 'Prišlo je do napake!',
 		'hr' => 'Došlo je do greške',
@@ -87,7 +106,9 @@ $lang = array(
 		'da' => 'Dette er statussiden for simpleSAMLphp.Du kan se om din session er udløbet, hvor lang tid der er til at den udløber samt alle øvrige oplysninger om din session.',
 		'en' => 'Hi, this is the status page of simpleSAMLphp. Here you can see if your session is timed out, how long it lasts until it times out and all the attributes that is attached to your session.',
 		'sv' => 'Detta är stutussidan för simpleSAMLphp. Här kan du se om sessions giltig har gått ut, hur länge det dröjer innan den går ut samt alla attribut som tillhör sessionen.',
+		'fi' => 'Tämä on simpleSAMLphp:n statussivu. Näet onko istuntosi voimassa, kauanko se on voimassa ja kaikki istuuntosi liitetyt attribuutit.',
 		'es' => 'Hola, esta es la página de estado de simpleSAMLphp. Desde aquí puede ver si su sesión ha caducado, cuanto queda hasta que lo haga y todos los atributos existentes en su sesión.',
+		'fr' => 'Bonjour, vous êtes sur la page de status de simpleSAMLphp. Vous pouvez consulter ici le temps restant sur votre session, ainsi que les attributs qui y sont attachés.',
 		'nl' => 'Dit is de overzichts pagina van simpleSAMLphp. Hier kunt u zien of uw sessie nog geldig is, hoe lang het nog duurt voordat deze verloopt, en u kunt alle attributen bekijken die aanwezig zijn in deze sessie.',
 		'sl' => 'Živjo! To je statusna stran simpleSAMLphp, ki omogoča pregled nad trajanjem vaše trenutne seje in atributi, ki so povezani z njo.',
 		'hr' => 'Zdravo, ovo je stranica s prikazom aktualnog stanja simpleSAMLphp-a. Ovdje možete vidjeti je li vam istekla sjednica, koliko dugo će vaša sjednica još biti valjana i sve atribute koji su vezani uz vašu sjednicu.',
@@ -102,7 +123,9 @@ $lang = array(
 		'da' => 'Du har %SECONDS% tilbage af din session',
 		'en' => 'Your session is valid for %SECONDS% seconds from now.',
 		'sv' => 'Din session är giltig för %SECONDS% sekunder från nu.',
+		'fi' => 'Istuntosi on vielä voimassa %SECONDS% sekuntia',
 		'es' => 'Su sesión será valida durante %SECONDS% segundos.',
+		'fr' => 'Votre session est encore valide pour %SECONDS% secondes.',
 		'nl' => 'Uw sessie is nog %SECONDS% geldig vanaf dit moment.',
 		'sl' => 'Vaša trenutna seja je veljavna še %SECONDS% sekund.',
 		'hr' => 'Vaša sjednica je valjana još %SECONDS% sekundi.',
@@ -117,7 +140,9 @@ $lang = array(
 		'da' => 'Sessionsstørrelse: %SIZE%',
 		'en' => 'Session size: %SIZE%',
 		'sv' => 'Sessionsstorlek: %SIZE%',
+		'fi' => 'Istunnon koko: %SIZE%',
 		'es' => 'Tamaño de la sesión: %SIZE%',
+		'fr' => 'Taille de la session: %SIZE%',
 		'nl' => 'Sessie grootte: %SIZE%',
 		'sl' => 'Velikost seje: %SIZE% bajtov',
 		'hr' => 'VeliÄŤina sjednice: %SIZE%',
@@ -133,7 +158,9 @@ $lang = array(
 		'en' => 'Your attributes',
 		'de' => 'Ihre Attribute',
 		'sv' => 'Dina attribut',
+		'fi' => 'Attribuuttisi',
 		'es' => 'Atributos',
+		'fr' => 'Vos attributs',
 		'nl' => 'Uw attributen',
 		'sl' => 'Vaši atributi',
 		'hr' => 'Vaši atributi',
@@ -149,7 +176,9 @@ $lang = array(
 		'en' => 'Logout',
 		'de' => 'Abmelden',
 		'sv' => 'Logga ut',
+		'fi' => 'Uloskirjautuminen',
 		'es' => 'Salir',
+		'fr' => 'DĂ©connexion',
 		'nl' => 'Logout',
 		'sl' => 'Odjava',
 		'hr' => 'Odjavi se',
diff --git a/modules/authYubiKey/dictionaries/yubikey.php b/modules/authYubiKey/dictionaries/yubikey.php
index 26eb2714802e022ffd0e82f1ecf8fae447b9de24..520d331de7a6aef2bc6e895a080d9364d30ecfd7 100644
--- a/modules/authYubiKey/dictionaries/yubikey.php
+++ b/modules/authYubiKey/dictionaries/yubikey.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'header' => array (
 		'no' => 'Login med YubiKey',
@@ -7,10 +16,13 @@ $lang = array(
 		'da' => 'Login med YubiKey',
 		'en' => 'Login with YubiKey',
 		'sv' => 'Logga in med YubiKey',
+		'fi' => 'Kirjaudu Yubikeylla',
 		'es' => 'Accede utilizando YubiKey',
 		'sl' => 'Prijavi se z YubiKey',
 		'hr' => 'Autenticirajte se pomoću YubiKey-a',
+		'hu' => 'YubiKey bejelentkezés',
 		'pl' => 'Login z YubiKey',
+		'pt' => 'Entrar com YubiKey',
 	),
 	'intro' => array (
 		'no' => 'En tjeneste har bedt om at du autentiserer deg. For ĂĄ autentisere seg, trykk pĂĄ knappen pĂĄ din YubiKey. Feltet under vil da bli automatisk utfylt med et sikkert engangspassord.',
@@ -18,10 +30,13 @@ $lang = array(
 		'da' => 'Nogle services kræver autentificering. For at autentificere klik på knappen på din YubiKey. Feltet herunder skulle nu automatisk blive udfyldt med et sikkert one-time-password.',
 		'en' => 'Some service requested authentication. To authenticate, click the button on your YubiKey. The field below should then automatically be filled out with a secure one-time-password.',
 		'sv' => 'En tjänst vill att du ska logga in. För att logga in tryck på knappen på din YubiKey. Fältet nedan ska när du trycker bli ifyllt med ett säkert engångslösenord.',
+		'fi' => 'Jotkin palvelut vaativat käyttäjätunnistuksen. Paina nappia Yubikeyssasi tunnistautuaksesi. Allaolevaan kenttää tulee automaattisesti kertakäyttösalasanasi.',
 		'es' => 'Un servicio ha solicitado que se autentique. Para autenticarse, haga clic en el botón de su YubiKey. El campo situado debajo debería rellenarse automática con una clave de un único uso (OTP) segura',
 		'sl' => 'Nekatere storitve zahtevajo avtentikacijo, ki jo izvedete s klikom na gumb YoubiKey. V polju spodaj, se bo nato samodejno prikazalo geslo za enkratno uporabo.',
 		'hr' => 'Aplikacija zahtjeva autentikaciju. Za autentikaciju kliknite gumb na vašem YubiKey-u. Nakon toga bi u polje ispod trebala biti automatski upisana jednokratna zaporka.',
+		'hu' => 'Egy szolgáltatás azonosítást kért. Kérjük, nyomja meg a gombot a YubiKey-n! Az alábbi mező automatikusan ki kell, hogy töltődjön egy biztonságos egyszerhasználatos jelszóval.',
 		'pl' => 'Jakiś serwis zażądał uwierzytelnienia. W celu uwierzytelnienia naciśnij przycisk na Twoim YubiKey. Następnie poniższe pole powinno zostać automatycznie wypełnione bezpiecznym jednorazowym hasłem.',
+		'pt' => 'Um serviço necessita de autenticação. Para se autenticar, clique no botão da sua YubiKey. O campo em baixo deverá ser automaticamente preenchido com uma palavra-passe segura que funcionará apenas uma vez.',
 	),
 
 );
diff --git a/modules/consent/dictionaries/consent.php b/modules/consent/dictionaries/consent.php
index 345ac5426c918f04dc70248e27cb5f9504ba3432..7d81e23354bc906ab53a0d1ceba7ce81a246c27b 100644
--- a/modules/consent/dictionaries/consent.php
+++ b/modules/consent/dictionaries/consent.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'yes' => array (
 		'no' => 'Ja, fortsett',
@@ -63,10 +72,13 @@ $lang = array(
 		'nn' => 'Samtykke til overføring av personinformasjon',
 		'da' => 'Samtykke til at frigive personlige oplysninger',
 		'en' => 'Consent about releasing personal information',
+		'de' => 'Zustimmung zur Weitergabe persönlicher Daten  ',
 		'sv' => 'Samtycke gällande överföring av personinformation',
+		'fi' => 'Henkilötietojen luovutuksen hyväksyntä',
 		'es' => 'Consentimiento para la liberaciĂłn de informaciĂłn personal',
 		'sl' => 'Odločitev o privolitvi posredovanja vaših osebnih podatkov',
 		'hr' => 'Dozvola za isporuku osobnih podataka',
+		'hu' => 'Hozzájárulás személyes adatok kiadásához',
 		'pl' => 'Zgoda na wysłanie danych osobistych',
 	),
 	'consent_accept' => array (
@@ -76,7 +88,7 @@ $lang = array(
 		'en' => 'SPNAME requires that the information below is transferred.',
 		'de' => 'SPNAME erfordert die Ăśbertragung untenstehender Information von IDPNAME. Akzeptieren Sie das?',
 		'sv' => 'Du är på väg att logga in i tjänsten SPNAME. Tjänsten kräver att informationen nedan skickas från IDPNAME. Är detta okej?',
-		'fi' => 'Olet kirjautumassa palveluun SPNAME. Kirjautuessasi Identity Provider haluaa lähettää attribuutteja joissa on henkilötietoja palvelun tarjoajalle. Hyväksytkö tämän?',
+		'fi' => 'Olet kirjautumassa palveluun SPNAME. Identiteetilähteesi henkilötietojasi palvelun tarjoajalle. Hyväksytkö tietojen siirron?',
 		'es' => 'Está a punto de acceder al servicio SPNAME. El servicio requiere que la información que se muestra a continuación sea transferida desde IDPNAME. ¿Acepta esto?  ',
 		'fr' => 'Vous êtes sur le point de vous connecter au service SPNAME. Lors de l\'ouverture de session, le fournisseur d\'identité enverra des informations sur votre identité à ce service. Acceptez-vous cela ?',
 		'nl' => 'U gaat inloggen bij een dienst SPNAME. Tijdens het login proces stuurt de identity provider zgn. attributen met daarin informatie over uw identiteit voor deze dienst. Bent u het daarmee eens?',
@@ -95,9 +107,11 @@ $lang = array(
 		'en' => 'The purpose of SPNAME is SPDESC',
 		'de' => 'Der Zweck von SPNAME ist SPDESC',
 		'sv' => 'Syftet med SPNAME är SPDESC',
+		'fi' => 'Palvelun SPNAME käyttötarkoitus on SPDESC',
 		'es' => 'El propĂłsito de SPNAME es SPDESC',
 		'sl' => 'Namen %SPNAME%: %SPDESC%',
 		'hr' => 'Svrha SPNAME je SPDESC',
+		'hu' => 'A szolgáltatás (SPNAME) ezt a célt szolgálja: SPDESC',
 		'pl' => 'Celem SPNAME jest SPDESC',
 	),
 	'consent_privacypolicy' => array (
@@ -120,12 +134,15 @@ $lang = array(
 	'consent_attributes_header' => array (
 		'no' => 'Opplysninger som vil bli sendt til SPNAME',
 		'nn' => 'Opplysningar som blir sende til SPNAME',
-		'da' => 'Attributter som bliver sendt til tjenesten',
+		'da' => 'Attributter som bliver sendt til SPNAME',
 		'en' => 'Information that will be sent to SPNAME',
+		'de' => 'Informationen, die an SPNAME gesandt werden',
 		'sv' => 'Attribut som kommer att skickas till tjänsten',
+		'fi' => 'Tiedot lähetetään palvelulle SPNAME',
 		'es' => 'Atributos que serán enviados al servicio',
 		'sl' => 'Atributi, ki bodo poslani SPju',
 		'hr' => 'Atributi koji će biti poslani servisu',
+		'hu' => 'A(z) SPNAME szolgáltatónak küldött adatok',
 		'pl' => 'Atrybuty, które zostaną przesłane do serwisu',
 	),
 	'show_attributes' => array (
@@ -133,10 +150,13 @@ $lang = array(
 		'nn' => 'Vis opplysingar',
 		'da' => 'Vis attributter',
 		'en' => 'Show attributes',
+		'de' => 'Attribute zeigen',
 		'sv' => 'Visa attribut',
+		'fi' => 'Näytä henkilötiedot',
 		'es' => 'Mostrar atributos',
 		'sl' => 'PrikaĹľi atribute',
 		'hr' => 'PrikaĹľi atribute',
+		'hu' => 'Mutasd az attribĂştumokat',
 		'pl' => 'Wyświetl atrybuty',
 	),
 	'login' => array (
@@ -241,6 +261,7 @@ $lang = array(
 		'en' => 'No consent given',
 		'de' => 'Zustimmung verweigert',
 		'sv' => 'Inget samtycket givet',
+		'fi' => 'Lupaa ei annettu',
 		'es' => 'No se diĂł el consentimiento',
 		'nl' => 'Geen toestemming gegeven',
 		'sl' => 'Privolitev ni bila dana.',
@@ -257,6 +278,7 @@ $lang = array(
 		'en' => 'You did not give consent for transfering your attributes to the service provider.',
 		'de' => 'Sie haben der Weitergabe ihrer Daten an den Service Provider nicht zugestimmt.',
 		'sv' => 'Du gav inte samtycke för att överföra dina attribut till tjänsteleverantören.',
+		'fi' => 'Et antanut lupaa siirtää henkilötietojasi palveluntarjoajalle',
 		'es' => 'No ha dado su consentimiento para tranferir sus atributos al proveedor de servicio.',
 		'nl' => 'U heeft geen toestemming gegeven om uw attributen naar de Service Provider te versturen',
 		'sl' => 'Niste podali privolitve za posredovanje atributov SP-ju.',
@@ -273,6 +295,7 @@ $lang = array(
 		'en' => 'Return to consent page',
 		'de' => 'ZurĂĽck',
 		'sv' => 'Åter till sidan för samtycke',
+		'fi' => 'Palaa hyväksyntäsivulle',
 		'es' => 'Volver a la página de consentimiento',
 		'nl' => 'Keer terug naar de toestemmings pagina',
 		'sl' => 'Vrnitev na privolitveno stran',
@@ -287,23 +310,38 @@ $lang = array(
 		'nn' => 'GĂĄ til informasjonssida for tenesta',
 		'da' => 'GĂĄ til side med information om tjenesten',
 		'en' => 'Go to information page for the service',
+		'de' => 'Gehe zur Informationsseite dieses Dienstes',
 		'sv' => 'Gå till tjänstens informationssida',
+		'fi' => 'Siirry palvelun tiedot -sivulle',
 		'es' => 'Ir a la página de información del servicio',
 		'sl' => 'Pojdi na spletno stran z informacijami o storitvi',
 		'hr' => 'Idi na stranicu s informacijama o servisu',
+		'hu' => 'A szolgáltatás információs oldalára',
 		'pl' => 'PrzejdĹş do strony informacyjnej dla tego serwisu',
+		'pt' => 'Ir para página de informação do serviço',
 	),
 	'table_caption' => array (
 		'no' => 'Bruker innformasjon',
+		'da' => 'Bruger information',
 		'en' => 'User information',
+		'de' => 'Benutzerdaten',
 		'sv' => 'Användarinformation',
+		'fi' => 'Käyttäjätiedot',
+		'es' => 'InformaciĂłn del usuario',
 		'sl' => 'Podatki o uporabniku',
+		'hu' => 'Felhasználói információk',
+		'pt' => 'Informação do utilizador',
 	),
 	'table_summary' => array (
 		'no' => 'Her listes den innformasjonen om deg som blir send til den tjenesten du er i ferd med ĂĄ logge pĂĄ',
+		'da' => 'Informationer som vil blive sendt til den service du er ved at logge in pĂĄ',
 		'en' => 'List the information about you that is about to be transmittet to the service you are going to login to',
 		'sv' => 'Visa den nformation om din användare som kommer att skickas till tjänsten som du är på väg att logga in i',
+		'fi' => 'Näytä tietosi, joita ollaan siirtämässä palveluun',
+		'es' => 'Muestra que informaciĂłn relativa a usted va a ser transmitida al servicio en el que se va a identificar',
 		'sl' => 'Seznam podatkov o vas, ki bodo posredovani storitvi v katero se nameravate prijaviti',
+		'hu' => 'Ezeket az adatokat fogjuk elküldeni Önről annak a szolgáltatásnak, ahová be kíván jelentkezni',
+		'pt' => 'Listar a informação acerca de si que será enviada para o serviço no qual se está autenticar',
 	),
 
 );
diff --git a/modules/consentSimpleAdmin/dictionaries/consentsimpleadmin.php b/modules/consentSimpleAdmin/dictionaries/consentsimpleadmin.php
index d58ea1c080ff8660fc65c7df578246e71d8f218c..0b127b14fb64c17213231dd5bc13a679c13689c9 100644
--- a/modules/consentSimpleAdmin/dictionaries/consentsimpleadmin.php
+++ b/modules/consentSimpleAdmin/dictionaries/consentsimpleadmin.php
@@ -1,53 +1,86 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'header' => array (
 		'no' => 'Tilbaketrekning av samtykke',
+		'da' => 'Samtykke tilbagekaldelse',
 		'en' => 'Consent withdrawal',
 		'sv' => 'Ă…tertagande av samtycke',
+		'es' => 'Retirar consentimiento',
 		'sl' => 'Preklic privolitve',
+		'hu' => 'Hozzájárulás visszavonása',
 	),
 	'granted' => array (
 		'no' => 'Du har tidligere gitt samtykke %NO% ganger til %OF% forskjellige tjenester.',
+		'da' => 'Du har tidligere givet %NO% samtykker til %OF% forskellige services.',
 		'en' => 'You have earlier granted %NO% consents to %OF% different services.',
 		'sv' => 'Du har tidigare godkänt %NO% samtycken till %OF% olika tjänster.',
+		'es' => 'Anteriormente permitiĂł %NO% consentimientos para %OF% servicios diferentes.',
 		'sl' => 'Potrdili ste %NO% privolitev za %OF% razliÄŤnih storitev.',
+		'hu' => '%NO% db. hozzájárulást adott %OF% különböző szolgáltatásnak.',
 	),
 	'info' => array (
 		'no' => 'Dersom du trekker tilbake alle tidligere gitte samtykker, så vil du hver gang du besøker en tjeneste på nytt bli spurt om du aksepterer at en gitt liste med personlig informasjon blir overført til tjenesten.',
+		'da' => 'Hvis du tilbagekalder alle dine samtykker, sĂĄ vil du blive spurgt om at afgive samtykke hver gang du tilgĂĄr en ny tjeneste.',
 		'en' => 'If you withdraw all consents given, you will be asked again each time you visit a new service, whether or not you would like to accept that a given set of personal information are transferred.',
 		'sv' => 'Om du drar tillbaka alla samtycken som du godkänt kommer du åter bli tillfrågad när du besöker tjänsterna för första gången oberoende om du vill eller inte vill godkänna att personuppgifter överförs.',
+		'es' => 'Si retira todos los consentimientos concedidos, se le preguntará de nuevo cada vez que visite un nuevo servicio, independientemente de que acepte o rechace que un conjunto de datos personales sean transferidos.',
 		'sl' => 'V primeru preklica vseh privolitev, boste ob dostopu do storitev ponovno pozvani k privolitvi posredovanja osebnih podatkov storitvi.',
+		'hu' => 'Ha visszavonja az összes hozzájárulást, akkor minden alkalommal, amikor egy új szolgáltatást kíván igénybe venni, hozzá kell járulnia személyes adatainak kiadásához.',
 	),
 	'withdraw' => array (
 		'no' => 'Trekk tilbake alle tidligere gitte samtykker',
+		'da' => 'Tilbagekald alle samtykker',
 		'en' => 'Withdraw all consent given',
 		'sv' => 'Dra tillbaka alla godkända samtycken',
+		'es' => 'Retirar todos los consentimientos concedidos',
 		'sl' => 'PrekliÄŤi vse privolitve.',
+		'hu' => 'Az összes hozzájárulás visszavonása',
 	),
 	'headerstats' => array (
 		'no' => 'Samtykke statistikk',
+		'da' => 'Samtykkelager statestik',
 		'en' => 'Consent Storage Statistics',
 		'sv' => 'Statistik för lagret över samtycken',
+		'es' => 'EstadĂ­sticas de consentimientos almacenados',
 		'sl' => 'Statistika privolitev',
+		'hu' => 'Hozzájárulás tároló statisztikák',
 	),
 	'stattotal' => array (
 		'no' => 'Samtykkelageret inneholder %NO% innslag.',
+		'da' => 'Samtykkelager indeholder %NO% samtykker.',
 		'en' => 'Consent storage contains %NO% entries.',
 		'sv' => 'Lagret innehĂĄller %NO% samtycken.',
+		'es' => 'El almacén de consentimientos tiene %NO% entradas.',
 		'sl' => 'Privolitvena stran vsebuje %NO% zapisov.',
+		'hu' => 'A hozzájárulás tároló %NO% bejegyzést tartalmaz.',
 	),
 	'statusers' => array (
 		'no' => '%NO% unike brukere har avgitt samtykke.',
+		'da' => '%NO% unikke brugere har givet samtykke',
 		'en' => '%NO% unique users have given consent.',
 		'sv' => '%NO% unika användare har lämnat samtycken.',
+		'es' => '%NO% usuarios han dado su consentimiento.',
 		'sl' => 'Privolitev je dalo %NO% razliÄŤnih uporabnikov.',
+		'hu' => '%NO% különböző felhasználó adott hozzájárulást.',
 	),
 	'statservices' => array (
 		'no' => 'Samtykke er avgitt til %NO% unike tjenester.',
+		'da' => 'Samtykke er givet til %NO% unikke services.',
 		'en' => 'Consent is given to %NO% unique services.',
 		'sv' => 'Samtycken är lämnade för %NO% unika tjänster.',
+		'es' => 'Consentimiento dado a %NO% servicios diferentes.',
 		'sl' => '%NO% razliÄŤnih storitev je dobilo privolitev.',
+		'hu' => '%NO% különböző szolgáltatáshoz adtak hozzájárulást.',
 	),
 
 );
diff --git a/modules/preprodwarning/dictionaries/warning.php b/modules/preprodwarning/dictionaries/warning.php
index ae317ae74816b43567f3cffa5843a1890323b96b..a8300babacfadd0ab2e8ad30f65916360782e85e 100644
--- a/modules/preprodwarning/dictionaries/warning.php
+++ b/modules/preprodwarning/dictionaries/warning.php
@@ -1,5 +1,14 @@
 <?php
 
+/*
+ * DO NOT EDIT THIS FILE MANUALLY.
+ * If you want to contribute to translation, you must instead use the 
+ * SimpleSAMLphp translation portal:
+ * https://translation.rnd.feide.no/index.php?aid=simplesamlphp
+ *
+ * This file is automatically generated from the translation portal.
+ */
+
 $lang = array(
 	'warning' => array (
 		'no' => 'Du har nå kommet til et test-oppsett. Dette oppsettet for autentisering er kun til bruk for testing og pre-produksjon verifikasjon. Hvis noen sendte deg en link som pekte hit, og du ikke er <i>en tester</i> så fikk du nok en feil link, og <b>skulle ikke vært her</b>.',
@@ -7,10 +16,12 @@ $lang = array(
 		'da' => 'Du tilgår nu et pre-produktions-system. Dette autentificeringssetup er kun til test og pre-produktion verifikation. Hvis nogen har sendt et link, som peger her og du ikke er en <i>tester</i>, så har du sikekrt fået et forkert lin og burde <b>ikke være her.</b> ',
 		'en' => 'You are now accessing a pre-production system. This authentication setup is for testing and pre-production verification only. If someone sent you a link that pointed you here, and you are not <i>a tester</i> you probably got the wrong link, and should <b>not be here</b>.',
 		'sv' => 'Du har kommit till en tjänst som ännu inte är i drift. Denna autentisieringskonfiguration är för testning och tidig produktionskontroll. Om någon har skickat dig en länk hit och du inte är en <i>en testare</i> har du troligtvis fått fel länk.',
+		'fi' => 'Olet siirtymässä testijärjestelmään. Käyttäjätunnistus on tarkoitettu vain testaukseen. Jos sait linkin järjestelmään ja et ole <i>testikäyttäjä</i>, sait todennäköisesti väärän linkin ja sinun ei pitäisi <b>olla täällä</b>.',
 		'es' => 'Está accediendo a un sistema en pre-producción. Esta configuración es únicamente para pruebas y para verificación del sistema de preproducción. Si siguió un enlace que alguien le envió para llegar hasta aquí y no es un <i>probador</i> probablemente se trata de un error, y usted <b>no debería estar aquí</b>',
 		'sl' => 'Dostopate do pred-produkcijskega sistema, ki je namenjen izkljuÄŤno testiranju. V primeru, da ste pristali na tej strani med postopkom prijave v produkcijsko storitev, je storitev verjetno napaÄŤno nastavljena.',
 		'hr' => 'Pristupate sustavu koji se nalazi u predprodukcijskoj fazi. Ove autentikacijske postavke služe za testiranje i provjeru ispravnosti rada predprodukcijskog sustava. Ako vam je netko poslao adresu koja pokazuje na ovu stranicu, a vi niste osoba zadužena za <i>testiranje</i>, vjerojatno ste <b>na ovu stranicu došli greškom</b>.',
 		'pl' => 'Korzystasz w tej chwili z wersji testowej systemu. To ustawienie uwierzytelniania jest tylko dla testów. Jeśli ktoś wysłał Ci link kierujący tutaj, a ty nie jesteś <i>testerem</i> to prawdopodobnie otrzymałeś błędny link i <b>nie powinieneś być tutaj</b>.',
+		'pt' => 'Está a aceder a um sistema em pré-produção. Este passo de autenticação servirá apenas para testes e verificações de pré-produção. Se alguém lhe enviou este endereço, e você não é um <i>testador</i>, então provavelmente recebeu um link errado, e <b>não deveria estar aqui</b>.',
 	),
 	'warning_header' => array (
 		'no' => 'Advarsel om at dette er et test oppsett',
@@ -18,10 +29,12 @@ $lang = array(
 		'da' => 'Advarsel om adgang til et pre-produktions-system.',
 		'en' => 'Warning about accessing a pre-production system',
 		'sv' => 'Varning om ĂĄtkomst till testsystem',
+		'fi' => 'Varoitus testijärjestelmää siirtymisestä',
 		'es' => 'Aviso sobre el acceso a un sistema en pre-producciĂłn',
 		'sl' => 'Opozorilo o dostopu do pred-produkcijskega sistema',
 		'hr' => 'Upozorenje o pristupanju predprodukcijksom sustavu',
 		'pl' => 'Uwaga, korzystasz z wersji testowej systemu',
+		'pt' => 'Aviso ao aceder a sistema em pré-produção',
 	),
 	'yes' => array (
 		'no' => 'Ja, jeg holder pĂĄ ĂĄ teste innlogging, og vet dette er et test-system.',
@@ -29,10 +42,12 @@ $lang = array(
 		'da' => 'Ja, jeg ved jeg er ved at tilgĂĄ et pre-produktions-system.',
 		'en' => 'Yes, I know I am accessing a pre-production system',
 		'sv' => 'Ja, jag vet att jag försöker använda ett testsystem',
+		'fi' => 'Hyväksyn siirtyväni testijärjestelmään',
 		'es' => 'Sí, sé que estoy accediendo a un sistema en pre-producción',
 		'sl' => 'Da, zavedam se, da dostopam do pred-produkcijskega okolja',
 		'hr' => 'Da, znam da pristupam sustavu koji je u predprodukcijskoj fazi',
 		'pl' => 'Tak, wiem, ĹĽe korzystam z wersji testowej.',
+		'pt' => 'Sim, eu sei que estou a aceder a um sistema em pré-produção',
 	),
 
 );