diff --git a/messages/eo.msg b/messages/eo.msg
new file mode 100644
index 0000000..42a60f4
--- /dev/null
+++ b/messages/eo.msg
@@ -0,0 +1,159 @@
+UserReactivated: Uzanto reaktivigita
+UserUnknown: Uzanto nekonata
+UserOrArticleUnknown: Uzanto aŭ ero nekonata
+PurchaseSuccess: Ĝuu!
+PurchaseDebtful: Atentu: Vi ŝuldas!
+NotEnoughItems: Ne sufiĉas disponeblaj eroj
+ErrorOccured: Io misfunkciis
+ItemUnknown: Ero nekonata
+PurchaseSuccessCash price@Int currency@Text: Ĝuu. Bonvolu pagi #{currency} #{formatIntCurrency price} #{currency} en kontanta mono.
+ItemDisappeared: Ero malaperis o_0
+Amount: Kvanto
+EditSuccess: Redaktita sukcese
+EditFail: Redaktado malsukcesis
+Name: Nomo
+Price: Prezo
+CurrentStock: Nuna stoko
+AnnouncedStock: Averta limo
+DeleteItem: Forigi Eron
+ItemDeleted: Ero forigita
+UserCreated: Uzanto kreita
+UserNotCreated: Ne eblis krei uzanton
+EmailNotify: enigu retpoŝton se vi volas sciigojn
+BuyNotification: Sciigi pri aĉeto
+UserEdited: Uzanto redaktita
+UserNotEdited: Ne eblis redakti uzanton
+Payout desc@Text: Pago: #{desc}
+PaidOut: Sumo pagita
+NotPaidOut: Ne povis pagi
+Value: Valoro
+Description: Priskribo
+StockedUp: Stokita
+NotStockedUp: Ne povis provizi
+StockupError: Eraro provizante
+AmountAdded: Kvanto de unuopaj eroj aldonitaj
+CrateAmountAdded: Kvanto da kestoj aldonita
+ItemAdded: Nova ero aldonita
+ItemNotAdded: Eraro dum aldono
+AmountWarning: Averto pri kvanto
+Recharged: Reŝargita!
+RechargeError: Eraro dum reŝargado
+CashCheck: Kontantĉeko
+CashChecked: Kontantmono kontrolita kaj ĝisdatigita.
+CashCheckError: Eraro ĉe kontanta ĉeko
+CountedValue: Nombrita valoro
+PurchaseOf name@Text: Aĉeto de #{name}
+PricePerUnit price@Int currency@Text: Prezo po unuo: #{currency} #{formatIntCurrency price}
+Purchase: Aĉeti
+PleaseCountAndCheck: Bonvolu kalkuli kontantrezervojn kaj ĝisdatigi kvanton sube.
+Submit: Submeti
+Home: Hejmo
+Restock: Reprovizi inventaron
+Journal: Ĵurnalo
+Summary: Inventaro
+PayCash: Pagu kontante
+CreateUser: Krei uzanton
+ReactivateOldUser: Reaktivigu malnovan uzanton
+Time: Tempo
+ValueIn currency@Text: Valoro en #{currency}
+TotalValue: Suma valoro
+CashStock: Mona stoko
+PayoutFromCash: Pagu kontante
+NothingToShow: Neniuj movoj
+NewItem: Nova ero
+NewUser: Nova Uzanto
+DoPayout: Elpago
+ReactivateUser: Reaktivigu uzanton
+Recharge: Reŝargi
+CurrentCharge charge@Int currency@Text: Nuna ŝarĝo: #{currency} #{formatIntCurrency charge} #{currency}
+AddItem: Aldonu novan eron
+EditUser: Redaktu uzanton
+ChoosePrompt text@Text: Elektu objekton, #{text}
+SelectItem: Elektu eron
+CurrentAmount: Nuna kvanto
+NoItems: Neniuj eroj
+StockUp name@Text: provizi #{name}
+Fillup: Plenigu
+CashCheckOf date@String: Kontanta ĉeko de #{date}
+NotJson: Ĉi tiuj ne estas JSON-datumoj
+Upload: Alŝutu sekurkopion
+SelectFile: Elektu dosieron
+RestoreSuccess: Datenbazo restarigita sukcese!
+InventoryBackup: Rezerva inventaro
+RestoreFromBackup: Restarigi de sekurkopio
+NegativeRecharge: Vi ne povas reŝargi negativajn kvantojn
+Increment: ++
+Decrement: --
+Plus5: +=5
+Minus5: -=5
+SelectAvatar: Elektu avataron
+Avatars: Avataroj
+NoAvatars: Neniuj avataroj
+ModifyAvatar: Modifi avataron
+AvatarUnknown: Avataro nekonata
+AvatarUpdateSuccessfull: Sukcesa ĝisdatigo de avataro
+AvatarIdent: Nomo de avataro
+AvatarFileChange: Enigu dosieron por ŝanĝi ĉi tiun avataron
+AvatarFile: Avatara dosiero
+NewAvatar: Nova avataro
+AvatarUploadSuccessfull: Sukcesa alŝuto de avataro
+DeleteAvatar: Forigi avataron
+AvatarDeleted: Avataro sukcese forigita
+AvatarInUseError: Vi ne povas forigi avatarojn kiuj estas nuntempe uzataj
+Volume: Volumo en l
+CorrectedAmount: Perdo
+BarcodeNotUser: Ĉi tiu strekkodo ne estas uzanto, sed produkto
+ProvideBarcode: Bonvolu provizi ĝustan strekkodon
+BarcodeNotBev: Ĉi tiu strekkodo ne estas produkto, sed uzanto
+BarcodeUnknown: Ĉi tiu strekkodo estas nekonata
+BarcodeField: Strekkodoj
+BarcodeAdded: strekokodo sukcese aldonita
+BarcodeDuplicate: Ĉi tiu strekokodo jam estas en ni
+Transfer: Kredittransigo
+TransferTo: Transdoni krediton al
+NegativeTransfer: Vi ne povas transdoni negativajn kvantojn
+TransferComplete: Transdono kompleta
+TransferError: Eraro de translokigo
+PreviousPage: antaŭa paĝo
+NextPage: sekva paĝo
+MaxAmount: Maksimuma kvanto
+AmountPerCrate: Kvanto por kesto
+SelectSupplier: Elektu provizanton
+CreateSupplier: Krei provizanton
+SupplierCreated: Provizanto kreita
+SupplierNotCreated: Provizanto ne kreita!
+Suppliers: Provizantoj
+NewSupplier: nova Provizanto
+Address: Adreso
+TelNr: Telefonnumero
+Email: Retpoŝto
+EditSupplier: Redakti Provizanton
+SupplierUnknown: Nekonata provizanto
+SupplierEdited: Provizanto redaktita
+SupplierNotEdited: Provizanto ne redaktita!
+CreateSupplierDigest: Kreu mendan superrigardon por ĉi tiu provizanto
+DeleteSupplier: Forigu ĉi tiun Provizanton
+SupplierDeleted: Provizanto sukcese forigita
+SupplierInUseError: Ĉi tiu provizanto ankoraŭ estas uzata!
+ArtNr: Artikolo-numero
+PricePerCrate: Prezo per Kesto
+CrateCount: Kstokalkulo
+BuyValue: Paga kvanto
+CustomerId: Kliento-identigilo
+TotalCrates: Totalaj kestoj
+Modify: modifi
+UserIdentNotUnique: Uzantnomo ne estas unika
+Login: Ensaluti
+Logout: Elsaluti
+CreationBlocked: Novaj uzantoj ne povas esti kreitaj.
+NotEnoughFunds: Ne sufiĉas mono!
+MainPage: Matemat
+ModifyBeverage ident@Text: Modifi trinkaĵon #{ident}
+ModifyUser ident@Text: Modifi uzanton #{ident}
+SupplierActions ident@Text: Agoj por provizanto #{ident}
+UserPin: Uzanto PIN
+WrongPinAuth: malĝusta PIN por ĉi tiu uzanto
+EnterPin: Bonvolu doni PIN
+WrongPin: Malĝusta PIN provizita
+PinFailure: Eraro dum enigo de PIN
+PIN: PIN
diff --git a/static/images/eo.svg b/static/images/eo.svg
new file mode 100644
index 0000000..b603f74
--- /dev/null
+++ b/static/images/eo.svg
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file
diff --git a/templates/default-layout.hamlet b/templates/default-layout.hamlet
index 3df51a7..1688afe 100644
--- a/templates/default-layout.hamlet
+++ b/templates/default-layout.hamlet
@@ -23,6 +23,8 @@
+
+