diff --git a/core/l10n/cs.js b/core/l10n/cs.js
index 729a3518ccdf8fa7c56393aabd55e1eef60bb7bf..c378b4b9041289839969d4a234ab7426c5db523e 100644
--- a/core/l10n/cs.js
+++ b/core/l10n/cs.js
@@ -15,6 +15,8 @@ OC.L10N.register(
     "No valid crop data provided" : "Nebyla poskytnuta platná data pro oříznutí obrázku",
     "Crop is not square" : "Ořez není čtvercový",
     "State token does not match" : "Stavový token neodpovídá",
+    "Could not complete login" : "Přihlášení se nedaří dokončit",
+    "Your login token is invalid or has expired" : "Váš přihlašovací token není platný nebo jeho platnost skončila",
     "Password reset is disabled" : "Reset hesla je vypnut",
     "Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu",
     "Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu skončení platnosti tokenu",
@@ -341,6 +343,8 @@ OC.L10N.register(
     "Alternative log in using app token" : "Alternativní přihlášení pomocí tokenu aplikace",
     "Account access" : "Přístup k účtu",
     "You are about to grant %1$s access to your %2$s account." : "Chystáte se udělit %1$s přístup ke svému %2$s účtu.",
+    "Account connected" : "Účet připojen",
+    "Your client should now be connected! You can close this window." : "Váš klient by nyní měl být připojen. Toto okno už můžete zavřít.",
     "New password" : "Nové heslo",
     "New Password" : "Nové heslo",
     "This share is password-protected" : "Toto sdílení je chráněno heslem",
diff --git a/core/l10n/cs.json b/core/l10n/cs.json
index cd91fe7bb87b9b56e63121e8fbb2557fa60229a5..651e7dc0d6669ff9252027eb2fc014d6ce63247d 100644
--- a/core/l10n/cs.json
+++ b/core/l10n/cs.json
@@ -13,6 +13,8 @@
     "No valid crop data provided" : "Nebyla poskytnuta platná data pro oříznutí obrázku",
     "Crop is not square" : "Ořez není čtvercový",
     "State token does not match" : "Stavový token neodpovídá",
+    "Could not complete login" : "Přihlášení se nedaří dokončit",
+    "Your login token is invalid or has expired" : "Váš přihlašovací token není platný nebo jeho platnost skončila",
     "Password reset is disabled" : "Reset hesla je vypnut",
     "Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu",
     "Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu skončení platnosti tokenu",
@@ -339,6 +341,8 @@
     "Alternative log in using app token" : "Alternativní přihlášení pomocí tokenu aplikace",
     "Account access" : "Přístup k účtu",
     "You are about to grant %1$s access to your %2$s account." : "Chystáte se udělit %1$s přístup ke svému %2$s účtu.",
+    "Account connected" : "Účet připojen",
+    "Your client should now be connected! You can close this window." : "Váš klient by nyní měl být připojen. Toto okno už můžete zavřít.",
     "New password" : "Nové heslo",
     "New Password" : "Nové heslo",
     "This share is password-protected" : "Toto sdílení je chráněno heslem",
diff --git a/core/l10n/sv.js b/core/l10n/sv.js
index 3c41aceb4fe9b1e49c58079e4bb858fc2fb5dca1..9f98aab4e0e89db9e1a5287777bdbd97dde28177 100644
--- a/core/l10n/sv.js
+++ b/core/l10n/sv.js
@@ -15,6 +15,8 @@ OC.L10N.register(
     "No valid crop data provided" : "Ingen giltig beskärningsdata tillhandahölls",
     "Crop is not square" : "Beskärning är inte kvadratisk",
     "State token does not match" : "Tillstånds-token matchar inte",
+    "Could not complete login" : "Kunde inte slutföra inloggningen",
+    "Your login token is invalid or has expired" : "Din inloggnings-token är ogiltigt eller har gått ut",
     "Password reset is disabled" : "Lösenordsåterställning är avaktiverat",
     "Couldn't reset password because the token is invalid" : "Kunde inte återställa lösenordet på grund av felaktig token",
     "Couldn't reset password because the token is expired" : "Lösenord kunde inte återställas eftersom \"token\" har utgått",
@@ -288,6 +290,7 @@ OC.L10N.register(
     "Skip to navigation of app" : "Skippa till navigering av app",
     "More apps" : "Fler appar",
     "More" : "Mer",
+    "More apps menu" : "Fler appar - meny",
     "Search" : "Sök",
     "Reset search" : "Återställ sökning",
     "Contacts" : "Kontakter",
@@ -312,6 +315,8 @@ OC.L10N.register(
     "Alternative log in using app token" : "Alternativ inloggning med app-token",
     "Account access" : "Kontoåtkomst",
     "You are about to grant %1$s access to your %2$s account." : "Du håller på att ge %1$s åtkomst till ditt %2$s konto.",
+    "Account connected" : "Konto anslutet",
+    "Your client should now be connected! You can close this window." : "Din klient ska nu vara ansluten! Du kan stänga det här fönstret.",
     "New password" : "Nytt lösenord",
     "New Password" : "Nytt lösenord",
     "This share is password-protected" : "Denna delning är lösenordsskyddad",
diff --git a/core/l10n/sv.json b/core/l10n/sv.json
index 2750c807535619b8ee296fc9b84366745fe9c73a..39e30dce385c49166603140194241a7540935c70 100644
--- a/core/l10n/sv.json
+++ b/core/l10n/sv.json
@@ -13,6 +13,8 @@
     "No valid crop data provided" : "Ingen giltig beskärningsdata tillhandahölls",
     "Crop is not square" : "Beskärning är inte kvadratisk",
     "State token does not match" : "Tillstånds-token matchar inte",
+    "Could not complete login" : "Kunde inte slutföra inloggningen",
+    "Your login token is invalid or has expired" : "Din inloggnings-token är ogiltigt eller har gått ut",
     "Password reset is disabled" : "Lösenordsåterställning är avaktiverat",
     "Couldn't reset password because the token is invalid" : "Kunde inte återställa lösenordet på grund av felaktig token",
     "Couldn't reset password because the token is expired" : "Lösenord kunde inte återställas eftersom \"token\" har utgått",
@@ -286,6 +288,7 @@
     "Skip to navigation of app" : "Skippa till navigering av app",
     "More apps" : "Fler appar",
     "More" : "Mer",
+    "More apps menu" : "Fler appar - meny",
     "Search" : "Sök",
     "Reset search" : "Återställ sökning",
     "Contacts" : "Kontakter",
@@ -310,6 +313,8 @@
     "Alternative log in using app token" : "Alternativ inloggning med app-token",
     "Account access" : "Kontoåtkomst",
     "You are about to grant %1$s access to your %2$s account." : "Du håller på att ge %1$s åtkomst till ditt %2$s konto.",
+    "Account connected" : "Konto anslutet",
+    "Your client should now be connected! You can close this window." : "Din klient ska nu vara ansluten! Du kan stänga det här fönstret.",
     "New password" : "Nytt lösenord",
     "New Password" : "Nytt lösenord",
     "This share is password-protected" : "Denna delning är lösenordsskyddad",
diff --git a/lib/l10n/af.js b/lib/l10n/af.js
new file mode 100644
index 0000000000000000000000000000000000000000..fa351f824bdb1eb7db6ded2ed74decaddbb09d53
--- /dev/null
+++ b/lib/l10n/af.js
@@ -0,0 +1,16 @@
+OC.L10N.register(
+    "lib",
+    {
+    "__language_name__" : "Afrikaans",
+    "Help" : "Hulp",
+    "Apps" : "Toeps",
+    "Settings" : "Instellings",
+    "Log out" : "Meld af",
+    "Users" : "Gebruikers",
+    "Unknown user" : "Onbekende gebruiker",
+    "Create" : "Skep",
+    "Delete" : "Skrap",
+    "Share" : "Deel",
+    "Security" : "Sekuriteit"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/af.json b/lib/l10n/af.json
new file mode 100644
index 0000000000000000000000000000000000000000..469d41e913abe2949d0ceac22c8f01b581fcc49a
--- /dev/null
+++ b/lib/l10n/af.json
@@ -0,0 +1,14 @@
+{ "translations": {
+    "__language_name__" : "Afrikaans",
+    "Help" : "Hulp",
+    "Apps" : "Toeps",
+    "Settings" : "Instellings",
+    "Log out" : "Meld af",
+    "Users" : "Gebruikers",
+    "Unknown user" : "Onbekende gebruiker",
+    "Create" : "Skep",
+    "Delete" : "Skrap",
+    "Share" : "Deel",
+    "Security" : "Sekuriteit"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file