diff --git a/config.sample.yml b/config.sample.yml
index 34b261745616cd834e84bebf25e93a4fc05e6d7b..2462b1ebfc9e30bff1d0f18d9f19276dbbe430bb 100644
--- a/config.sample.yml
+++ b/config.sample.yml
@@ -45,7 +45,7 @@ uploads:
 # ---------------------------------------------------------------------
 # Site Language
 # ---------------------------------------------------------------------
-# Possible values: en, de, es, fa, fr, ja, ko, nl, pt, ru, sr, tr or zh
+# Possible values: en, de, es, fa, fr, ja, ko, nl, pt, ru, sr, sv, tr or zh
 
 lang: en
 
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000000000000000000000000000000000000..d575aac07086c9d2b9a7bf9fba0f22324461706e
Binary files /dev/null and b/package-lock.json differ
diff --git a/server/app/data.yml b/server/app/data.yml
index 9eaea86081e5241421e267269551965fa9dd5dc2..a385b99b5b6eafaacafe37cb087c0e79b7300f41 100644
--- a/server/app/data.yml
+++ b/server/app/data.yml
@@ -117,4 +117,7 @@ langs:
   -
     id: es
     name: Spanish - EspaГ±ol
+  -
+    id: sv
+    name: Swedish - Svenska
 # ---------------------------------
diff --git a/server/locales/sv/admin.json b/server/locales/sv/admin.json
new file mode 100644
index 0000000000000000000000000000000000000000..a440bcbbb74239dbfc688e97771ef1e5cab02c0b
--- /dev/null
+++ b/server/locales/sv/admin.json
@@ -0,0 +1,82 @@
+{
+  "profile": {
+    "displayname": "Visningsnamn",
+    "displaynameexample": "Anna Andersson",
+    "email": "E-post",
+    "lastprofileupdate": "Senaste profiluppdateringen",
+    "membersince": "Medlem sedan",
+    "password": "Lösenord",
+    "passwordverify": "Verifiera Lösenord",
+    "provider": "Leverantör",
+    "savechanges": "Spara Г„ndringar",
+    "subtitle": "Profil och autentiseringsinformation",
+    "tfa": "TvГҐfaktorsautentisering",
+    "tfadisable": "Avaktivera 2FA",
+    "tfadisabled": "Avaktiverad",
+    "tfaenable": "Aktivera 2FA",
+    "tfaenabled": "Aktiverad"
+  },
+  "stats": {
+    "subtitle": "Generell statistik",
+    "entries": "Inlägg",
+    "uploads": "Uppladdningar",
+    "users": "Användare"
+  },
+  "settings": {
+    "subtitle": "Hantera konfiguration för hemsida"
+  },
+  "system": {
+    "subtitle": "Information och verktyg för din wiki",
+    "systemversion": "Systemversion",
+    "currentversion": "Nuvarande Version",
+    "latestversion": "Senaste Version",
+    "upgrade": "Uppgradera",
+    "reinstall": "Ominstallera nuvarande version",
+    "versioncheckfailed": "Det gick inte att hämta senaste versionen. Försök igen senare.",
+    "administrativetools": "Administrativa Verktyg",
+    "flushcache": "Rensa cache och återställ indexering",
+    "flushcachetext": "Om innehåll eller sökresultat verkar utdaterat eller inte innehåller senaste informationen, så kan det hjälp att rensa cachen.",
+    "flushcachebtn": "Rensa och återställ",
+    "resetaccounts": "Rensa systemkonton till standard",
+    "resetaccountstext": "Systemkonton (så som gästkonton) kommer att bli återställda till standardinställningar.",
+    "resetaccountsbtn": "Återställ Systemkonton",
+    "flushsessions": "Rensa alla aktiva användarsessioner",
+    "flushsessionstext": "Alla användare kommer att bli utloggade och tvingade att logga in på nytt. Din nuvarande session kommer också att påverkas!",
+    "flushsessionsbtn": "Rensa Sessioner",
+    "hostinfo": "Värdinformation",
+    "os": "Operativsystem",
+    "nodeversion": "Node.js Version",
+    "hostname": "Värdnamn",
+    "cores": "CPU Kärnor",
+    "totalmem": "Totalt Minne",
+    "cwd": "Arbetsregister"
+  },
+  "theme": {
+    "subtitle": "Ändra färg och känsla för din wiki",
+    "primarycolor": "Primär Färg",
+    "primarycolordesc": "Används för navigationsbar, sidhuvud, länkar m.m.",
+    "altcolor": "Alternativ Färg",
+    "altcolordesc": "Används för sidobar (i en mörkare ton)",
+    "footercolor": "Färg för sidfot",
+    "footercolordesc": "Används för sidfoten (i en ljusare ton)",
+    "codeblock": {
+      "title": "Kodblock",
+      "dark": "Använd Mörkt Tema",
+      "colorize": "Färga kodsyntax"
+    },
+    "savechanges": "Spara Г„ndringar",
+    "reset": "Återställ till Standard"
+  },
+  "users": {
+    "createauthorize": "Skapa / Autentisera Användare",
+    "subtitle": "Hantera användare och rättigheter",
+    "name": "Namn",
+    "email": "E-postadress",
+    "provider": "Leverantör",
+    "createdon": "Skapad Den",
+    "updatedon": "Uppdaterad Den",
+    "returntousers": "Återgå till Användare",
+    "edituser": "Ändra Användare",
+    "uniqueid": "Unikt ID"
+  }
+}
\ No newline at end of file
diff --git a/server/locales/sv/auth.json b/server/locales/sv/auth.json
new file mode 100644
index 0000000000000000000000000000000000000000..3195d42920031f80eeaa0dca5cc58e54bb9173e2
--- /dev/null
+++ b/server/locales/sv/auth.json
@@ -0,0 +1,32 @@
+{
+  "loginrequired": "Inloggning krävs",
+  "loginusing": "Logga in med...",
+  "loginusingalt": "Eller, logga in med...",
+  "fields": {
+    "emailuser": "E-post / Användarnamn",
+    "password": "Lösenord"
+  },
+  "actions": {
+    "login": "Logga In"
+  },
+  "errors": {
+    "invalidlogin": "Ogiltlig Inloggning",
+    "invalidloginmsg": "E-postadressen eller lösenordet stämmer inte.",
+    "invaliduseremail": "Felaktigt e-post",
+    "loginerror": "Inloggningsfel",
+    "notyetauthorized": "Du har inte rättighet att logga in på denna sida än.",
+    "toomanyattempts": "För många försök!",
+    "toomanyattemptsmsg": "Du har gjort för många inloggningsförsök på kort tid, försök igen {{time}}.",
+    "usernotfound": "Användaren hittades inte"
+  },
+  "providers": {
+    "local": "Lokal",
+    "windowslive": "Microsoft Account",
+    "azure": "Azure Active Directory",
+    "google": "Google ID",
+    "facebook": "Facebook",
+    "github": "GitHub",
+    "slack": "Slack",
+    "ldap": "LDAP / Active Directory"
+  }
+}
\ No newline at end of file
diff --git a/server/locales/sv/browser.json b/server/locales/sv/browser.json
new file mode 100644
index 0000000000000000000000000000000000000000..750e9783f3a53742f8da9dabb42ddcf83601eeba
--- /dev/null
+++ b/server/locales/sv/browser.json
@@ -0,0 +1,118 @@
+{
+  "editor": {
+    "codeblockinsert": "Sätt in kodblock",
+    "codeblocklanguage": "SprГҐk",
+    "codeblockloading": "Laddar kodsyntax för {{name}}",
+    "codeblockloadingerror": "Fel: Kan inte läsa in språksyntax.",
+    "codeblocksuccess": "Ditt kodblock har blivit inlagt.",
+    "codeblocktitle": "Sätt in kodblock",
+    "discard": "Kasta Bort",
+    "filedeleteaction": "Ta Bort",
+    "filedeleteloading": "Tar bort fil...",
+    "filedeletedefault": "den här filen",
+    "filedeletesuccess": "Filen har blivit borttagen.",
+    "fileerror": "Det går inte att hämta uppdaterad lista.",
+    "filefolderempty": "Denna mapp Г¤r tom.",
+    "fileinsert": "Infoga Länk till Fil",
+    "fileloading": "Hämtar filer...",
+    "filemoveaction": "Flytta till...",
+    "filemoveerror": "Fel vid flytt: {{err}}",
+    "filemoveloading": "Flyttar fil...",
+    "filemovesuccess": "Filen har flyttats.",
+    "fileprocessing": "Bearbetar...",
+    "filerenameaction": "Г„ndra namn",
+    "filesuccess": "Fillänk har infogats.",
+    "filetitle": "Infoga Fil",
+    "fileupload": "Ladda Upp Fil(er)",
+    "fileuploaderror": "Fel vid uppladdning: {{err}}",
+    "fileuploadsuccess": "Fil(er) har laddats upp.",
+    "folders": "Mappar",
+    "foldersloading": "Hämtar mappstruktur...",
+    "imagetitle": "Infoga Bild",
+    "imageinsert": "Infoga Bild",
+    "imagesuccess": "Bild har infogats.",
+    "imageupload": "Ladda Upp Bild(er)",
+    "imagealignleft": "Vänster (standard)",
+    "imagealigncenter": "Centrerad",
+    "imagealignright": "Höger",
+    "imagealignlogo": "Sidlogo",
+    "newfolder": "Ny Mapp",
+    "videoanymp4file": "Valfri vanlig MP4-fil",
+    "videoinsert": "Infoga Video",
+    "videolinktitle": "Ange länkentill videon som ska inbäddas:",
+    "videonotsupported": "URL:en är felaktigt eller stöds ej!",
+    "videosuccess": "Videokoden har lagts in.",
+    "videosupportedtitle": "Följande finns stöd för:",
+    "videotitle": "Infoga Video"
+  },
+  "history": {
+    "pastversions": "Tidigare Versioner",
+    "timestamp": "Tidsstämpel",
+    "author": "Författare",
+    "commit": "Skicka",
+    "comparewith": "Jämför med...",
+    "view": "Visa",
+    "reverttoversion": "Återställ till Version",
+    "sidebyside": "Sida-vid-sida Vy"
+  },
+  "modal": {
+    "abort": "Avbryta",
+    "anchorerror": "Urklippskopiering misslyckades. Kopiera URL-adressen manuellt.",
+    "anchorsuccess": "URL-adressen har kopierats till ditt urklipp.",
+    "anchortitle": "Kopiera länk till denna sektion",
+    "copyclipboard": "Kopiera till Urklipp",
+    "create": "Skapa",
+    "createpageinvalid": "Den här sökvägen är ogiltig!",
+    "createpagepath": "Ange den nya sökvägen:",
+    "createpagetitle": "Skapa Ny Sida",
+    "createuser": "Skapa Användare",
+    "createuserauthorize": "Autentisera Användare",
+    "createuseremail": "E-postadress:",
+    "createuseremailplaceholder": "e.g. anna.andersson@foretag.se",
+    "createusername": "Namn:",
+    "createusernameplaceholder": "e.g. Anna Andersson",
+    "createuserpassword": "Lösenord:",
+    "createuserprovider": "Leverantör:",
+    "createusertitle": "Skapa / Autentisera Användare",
+    "delete": "Ta bort",
+    "deletefiletitle": "Ta bort?",
+    "deletefilewarn": "Är du säker på att du vill ta bort",
+    "deletepagewarning": "Är du säker på att du vill ta bort denna sida? Denna åtgärd kan inte ångras!",
+    "deletepagetitle": "Ta bort denna sida?",
+    "deleteusertitle": "Ta Bort Användarkonto?",
+    "deleteuserwarning": "Är du säker på att du vill ta bort detta användarkonto? Denna åtgärd kan inte ångras!",
+    "discard": "Kasta",
+    "discardpagecreate": "Är du säker på att du vill lämna denna sida och förlora allt du skrivit hittills?",
+    "discardpageedit": "Är du säker på att du vill lämna denna sida och förlora alla ändringar?",
+    "discardpagestay": "Stanna pГҐ sidan",
+    "discardpagetitle": "Kasta?",
+    "move": "Flytta",
+    "movepageinvalid": "Denna sökväg är felaktig eller inte tillåten!",
+    "movepagepath": "Ange ny sökväg för sidan:",
+    "movepageplaceholder": "sido-namn",
+    "movepagetitle": "Flytta Sida",
+    "movepagewarning": "Notera att om du flyttar eller döper om sidor så kan länkar gå sönder. Försäkra dig om att ändra på sidor som länkar till denna sida efteråt!",
+    "newfolderinvalid": "Mappnamnet Г¤r felaktigt!",
+    "newfolderloading": "Skapar ny mapp...",
+    "newfoldername": "Ange nya mappens namn:",
+    "newfoldernameplaceholder": "mappnamn",
+    "newfoldersuccess": "Nya mappen {{name}} har skapats.",
+    "newfoldertitle": "Ny Mapp",
+    "renamefile": "Döp om",
+    "renamefileerror": "Omdöpningsfel: {{err}}",
+    "renamefileinvalid": "Filnamnet Г¤r felaktigt!",
+    "renamefileloading": "Döper om fil...",
+    "renamefilename": "Ange det nya filnamnet för din fil (utan filtyp):",
+    "renamefilenameplaceholder": "filnamn",
+    "renamefiletitle": "Döp om Fil"
+  },
+  "nav": {
+    "home": "Hem"
+  },
+  "search": {
+    "didyoumean": "Menade du...?",
+    "nomatch": "Inga resultat matchade din din frГҐga",
+    "placeholder": "Sök...",
+    "results": "Sökresultat"
+  }
+}
\ No newline at end of file
diff --git a/server/locales/sv/common.json b/server/locales/sv/common.json
new file mode 100644
index 0000000000000000000000000000000000000000..d334f825e2d3cfd7e3aaf72792198bd8e5f16246
--- /dev/null
+++ b/server/locales/sv/common.json
@@ -0,0 +1,51 @@
+{
+  "wiki": "Wiki",
+  "header": {
+    "overview": "Г–versikt",
+    "createdoc": "Skapa Nytt Dokument"
+  },
+  "footer": {
+    "poweredby": "Skapad av",
+    "home": "Hem",
+    "top": "Г…tergГҐ till toppen"
+  },
+  "sidebar": {
+    "nav": "NAV",
+    "navigation": "Navigering",
+    "pagecontents": "SidinnehГҐll",
+    "pastversions": "Senaste Versioner"
+  },
+  "nav": {
+    "account": "Konto",
+    "allpages": "Alla Sidor",
+    "create": "Skapa",
+    "discard": "Kasta Bort",
+    "edit": "Г„ndra",
+    "history": "Historik",
+    "login": "Logga In",
+    "logout": "Logga Ut",
+    "move": "Flytta",
+    "myprofile": "Min Profil",
+    "normalview": "Normal Vy",
+    "root": "Hem",
+    "savechanges": "Spara Г„ndringar",
+    "savedocument": "Spara Dokument",
+    "settings": "Inställningar",
+    "source": "Källa",
+    "stats": "Statistik",
+    "sysinfo": "Systeminformation",
+    "syssettings": "Systeminställningar",
+    "theme": "Färgtema",
+    "users": "Användare",
+    "viewlatest": "Visa Senaste"
+  },
+  "welcome": {
+    "title": "Välkommen till din wiki!",
+    "subtitle": "Kom igГҐng genom att skapa hemvyn.",
+    "createhome": "Skapa Hemvy"
+  },
+  "loading": {
+    "source": "Laddar källa...",
+    "editor": "Laddar editor..."
+  }
+}
\ No newline at end of file
diff --git a/server/locales/sv/errors.json b/server/locales/sv/errors.json
new file mode 100644
index 0000000000000000000000000000000000000000..1af37cdb2597951dae4b6921fc550fa010878dd4
--- /dev/null
+++ b/server/locales/sv/errors.json
@@ -0,0 +1,30 @@
+{
+  "alreadyexists": "Detta inlägg existerar redan!",
+  "debugmsg": "Detaljerad felsökningsväg",
+  "fileexists": "Filen {{path}} existerar redan.",
+  "forbidden": "Förbjuden",
+  "forbiddendetail": "Tyvärr har du inte de nödvändiga behörigheterna för att komma åt den här sidan.",
+  "generic": "Oops, nГҐgot gick fel",
+  "invalidaction": "Ogiltig Åtgärd.",
+  "invaliddestfolder": "Ogiltig Destinationsmapp!",
+  "invalidfiletype": "Ogiltig Filtyp.",
+  "invalidfolder": "Ogiltig Mapp.",
+  "invalidoperation": "Ogiltig Operation!",
+  "invalidpath": "Felaktigt sökväg.",
+  "invaliduserid": "Felaktigt Användar-ID",
+  "newpasswordtooshort": "Nytt lösenord är för kort!",
+  "notexist": "Inlägg {{path}} existerar inte!",
+  "notexistdetail": "Vill du skapa detta inlägg?",
+  "parentinvalid": "Föräldrainlägg är ingen giltlig fil.",
+  "parentisroot": "Föräldrainlägg är root.",
+  "remotetoolarge": "Fjärrfilen är för stor!",
+  "reservedname": "Du kan inte skapa ett dokument med detta namn som Г¤r reserverat av systemet.",
+  "savefailed": "Misslyckades att spara dokument",
+  "starterfailed": "Det gick inte att läsa in startmaterialet!",
+  "unauthorized": "Obehörig",
+  "actions": {
+    "create": "Skapa",
+    "gohome": "GГҐ Hem",
+    "loginas": "Logga in som..."
+  }
+}
\ No newline at end of file
diff --git a/server/locales/sv/git.json b/server/locales/sv/git.json
new file mode 100644
index 0000000000000000000000000000000000000000..b4f3d12ffcd110b21294462d7e295e3a718e7899
--- /dev/null
+++ b/server/locales/sv/git.json
@@ -0,0 +1,6 @@
+{
+  "added": "Tillagd {{path}}",
+  "deleted": "Borttagen/Omdöpt {{path}}",
+  "updated": "Uppdaterad {{path}}",
+  "uploaded": "Uppladdad {{path}}"
+}
\ No newline at end of file