diff --git a/Foundation.hs b/Foundation.hs index 6443e2c..c751473 100644 --- a/Foundation.hs +++ b/Foundation.hs @@ -11,6 +11,32 @@ import Settings.StaticFiles --snip import qualified Data.Text as T import Network.Wai as Wai +import Data.List (tail) +import Data.List.Split +import Text.Printf + + +prependZero :: Text -> Text +prependZero t0 = if T.null t1 + then t1 + else if T.head t1 == '.' + then '0' `T.cons` t1 + else if "-." `T.isPrefixOf` t1 + then "-0." `T.append` (T.drop 2 t1) + else t1 + + where t1 = T.dropWhile ((==) ' ') t0 + +formatFloat :: Double -> Text +formatFloat d = T.pack (t ++ c) + where + t = reverse (intercalate "." $ chunksOf 3 $ reverse $ fst sp) + c = "," ++ tail (snd sp) + sp = (break (== '.') (printf "%.2f" d)) + -- T.pack . (splitEvery 3) . (printf "%,2f") + +formatIntCurrency :: Int -> Text +formatIntCurrency x = formatFloat $ ((fromIntegral x) / 100) -- | The foundation datatype for your application. This can be a good place to -- keep settings and values requiring initialization before your application @@ -27,6 +53,13 @@ data App = App instance HasHttpManager App where getHttpManager = appHttpManager +mkMessage "App" "messages" "de" + +renderMessage' e = do + m <- getYesod + l <- languages + return $ renderMessage m l e + -- This is where we define all of the routes in our application. For a full -- explanation of the syntax, please see: -- http://www.yesodweb.com/book/routing-and-handlers @@ -168,3 +201,4 @@ instance RenderMessage App FormMessage where -- https://github.com/yesodweb/yesod/wiki/Sending-email -- https://github.com/yesodweb/yesod/wiki/Serve-static-files-from-a-separate-domain -- https://github.com/yesodweb/yesod/wiki/i18n-messages-in-the-scaffolding + diff --git a/Handler/Buy.hs b/Handler/Buy.hs index 9965e17..01c114c 100644 --- a/Handler/Buy.hs +++ b/Handler/Buy.hs @@ -16,7 +16,7 @@ getBuyR uId bId = do defaultLayout $ do $(widgetFile "buy") Nothing -> do - setMessage "Benutzer oder Artikel unbekannt" + setMessageI MsgUserOrArticleUnknown redirect $ HomeR postBuyR :: UserId -> BeverageId -> Handler Html @@ -38,19 +38,19 @@ postBuyR uId bId = do liftIO $ notifyUser user bev price master case sw of False -> do - setMessage "Viel Vergnügen" + setMessageI MsgPurchaseSuccess redirect $ HomeR True -> do - setMessage "Achtung: Guthaben im negativen Bereich" + setMessageI MsgPurchaseDebtful redirect $ HomeR True -> do - setMessage "So viele Artikel sind nicht vorhanden" + setMessageI MsgNotEnoughItems redirect $ BuyR uId bId _ -> do - setMessage "Etwas ist schief gelaufen" + setMessageI MsgErrorOccured redirect $ HomeR Nothing -> do - setMessage "Benutzer oder Artikel unbekannt" + setMessageI MsgUserUnknown redirect $ HomeR notifyUser :: User -> Beverage -> Int -> App -> IO () @@ -80,7 +80,7 @@ getBuyCashR bId = do defaultLayout $ do $(widgetFile "buyCash") Nothing -> do - setMessage "Getrank unbekannt" + setMessageI MsgItemUnknown redirect $ HomeR postBuyCashR :: BeverageId -> Handler Html @@ -98,20 +98,17 @@ postBuyCashR bId = do runDB $ update bId [BeverageAmount -=. quant] updateCashier price "Barzahlung" checkAlert bId - setMessage $ Content $ Text $ "Viel Vergnügen. Bitte Zahle " - `T.append` (formatIntCurrency price) - `T.append` " " - `T.append` (appCurrency $ appSettings master) - `T.append` " in die Kasse ein" - redirect $ HomeR + let currency = appCurrency $ appSettings master + setMessageI $ MsgPurchaseSuccessCash price currency + redirect HomeR True -> do - setMessage "So viele Artikel sind nicht vorhanden" + setMessageI MsgNotEnoughItems redirect $ BuyCashR bId _ -> do - setMessage "Etwas ist schief gelaufen" + setMessageI MsgItemDisappeared redirect $ HomeR Nothing -> do - setMessage "Artikel unbekannt" + setMessageI MsgItemUnknown redirect $ HomeR checkData :: UserId -> BeverageId -> Handler (Maybe (User, Beverage)) @@ -127,4 +124,4 @@ checkData uId bId = do buyForm :: Form Int buyForm = renderDivs - $ areq amountField "Anzahl" (Just 1) + $ areq amountField (fieldSettingsLabel MsgAmount) (Just 1) diff --git a/Handler/CashCheck.hs b/Handler/CashCheck.hs index a40e892..f26d60f 100644 --- a/Handler/CashCheck.hs +++ b/Handler/CashCheck.hs @@ -17,13 +17,13 @@ postCashCheckR = do currentTime <- liftIO getCurrentTime runDB $ insert_ c runDB $ insert_ $ Cashier (cashCheckBalance c) currentTime - setMessage "Kassensturz durchgeführt. Kasse aktualisiert" + setMessageI MsgCashChecked redirect $ HomeR _ -> do - setMessage "Fehler im Kassensturz" + setMessageI MsgCashCheckError redirect $ CashCheckR createCashCheckForm :: Form CashCheck createCashCheckForm = renderDivs $ CashCheck - <$> areq currencyField "Gezählter Betrag" Nothing + <$> areq currencyField (fieldSettingsLabel MsgCountedValue) Nothing <*> lift (liftIO getCurrentTime) diff --git a/Handler/Common.hs b/Handler/Common.hs index 6deb05d..453010d 100644 --- a/Handler/Common.hs +++ b/Handler/Common.hs @@ -5,12 +5,9 @@ import Data.FileEmbed (embedFile) import qualified Data.Text as T import qualified Data.Text.Lazy.Encoding as E import qualified Data.Text.Read as R -import Data.List (tail) -import Data.List.Split import Yesod.Form.Functions import Text.Shakespeare.Text import Network.Mail.Mime -import Text.Printf import Import -- These handlers embed files in the executable at compile time to avoid a @@ -113,25 +110,3 @@ sendMail to subject body = , partContent = E.encodeUtf8 body }]] } - -prependZero :: Text -> Text -prependZero t0 = if T.null t1 - then t1 - else if T.head t1 == '.' - then '0' `T.cons` t1 - else if "-." `T.isPrefixOf` t1 - then "-0." `T.append` (T.drop 2 t1) - else t1 - - where t1 = T.dropWhile ((==) ' ') t0 - -formatFloat :: Double -> Text -formatFloat d = T.pack (t ++ c) - where - t = reverse (intercalate "." $ chunksOf 3 $ reverse $ fst sp) - c = "," ++ tail (snd sp) - sp = (break (== '.') (printf "%.2f" d)) - -- T.pack . (splitEvery 3) . (printf "%,2f") - -formatIntCurrency :: Int -> Text -formatIntCurrency x = formatFloat $ ((fromIntegral x) / 100) diff --git a/Handler/Home.hs b/Handler/Home.hs index ce3d2eb..70f68a7 100644 --- a/Handler/Home.hs +++ b/Handler/Home.hs @@ -39,8 +39,8 @@ getUserReactivateR uId = do time <- liftIO getCurrentTime secs <- return $ R.read $ formatTime defaultTimeLocale "%s" time runDB $ update uId [UserTimestamp =. secs] - setMessage "Nutzer reaktiviert" + setMessageI MsgUserReactivated redirect $ HomeR Nothing -> do - setMessage "Nutzer unbekannt" + setMessageI MsgUserUnknown redirect $ HomeR diff --git a/Handler/Modify.hs b/Handler/Modify.hs index 52398ef..4cc4cac 100644 --- a/Handler/Modify.hs +++ b/Handler/Modify.hs @@ -12,7 +12,7 @@ getModifyR bId = do defaultLayout $ do $(widgetFile "modify") Nothing -> do - setMessage "Artikel unbekannt" + setMessageI MsgItemUnknown redirect $ SummaryR postModifyR :: BeverageId -> Handler Html @@ -29,21 +29,21 @@ postModifyR bId = do , BeverageAmount =. beverageAmount nBev , BeverageAlertAmount =. beverageAlertAmount nBev ] - setMessage "Bearbeitung erfolgreich" + setMessageI MsgEditSuccess redirect $ SummaryR _ -> do - setMessage "Bearbeitung nicht möglich" + setMessageI MsgEditFail redirect $ SummaryR Nothing -> do - setMessage "Artikel unbekannt" + setMessageI MsgItemUnknown redirect $ SummaryR modifyForm :: Beverage -> Form Beverage modifyForm bev = renderDivs $ Beverage - <$> areq textField "Name" (Just $ beverageIdent bev) - <*> areq currencyField "Preis" (Just $ beveragePrice bev) - <*> areq amountField "aktueller Bestand" (Just $ beverageAmount bev) - <*> areq amountField "Meldebestand" (Just $ beverageAlertAmount bev) + <$> areq textField (fieldSettingsLabel MsgName) (Just $ beverageIdent bev) + <*> areq currencyField (fieldSettingsLabel MsgPrice) (Just $ beveragePrice bev) + <*> areq amountField (fieldSettingsLabel MsgCurrentStock) (Just $ beverageAmount bev) + <*> areq amountField (fieldSettingsLabel MsgAnnouncedStock) (Just $ beverageAlertAmount bev) getDeleteBeverageR :: BeverageId -> Handler Html getDeleteBeverageR bId = do @@ -51,8 +51,8 @@ getDeleteBeverageR bId = do case mBev of Just bev -> do runDB $ delete bId - setMessage "Artikel gelöscht" + setMessageI MsgItemDeleted redirect $ HomeR Nothing -> do - setMessage "Artikel unbekannt" + setMessageI MsgItemUnknown redirect $ HomeR diff --git a/Handler/NewUser.hs b/Handler/NewUser.hs index 0e79cec..57bb7fd 100644 --- a/Handler/NewUser.hs +++ b/Handler/NewUser.hs @@ -21,18 +21,18 @@ postNewUserR = do case res of FormSuccess user -> do _ <- runDB $ insert user - setMessage "Benutzer angelegt" + setMessageI MsgUserCreated redirect $ HomeR _ -> do - setMessage "Benutzer konnte nicht angelegt werden" + setMessageI MsgUserNotCreated redirect $ NewUserR newUserForm :: Int -> Form User newUserForm secs = renderDivs $ User - <$> areq textField "Nickname" Nothing + <$> areq textField (fieldSettingsLabel MsgName) Nothing <*> pure 0 <*> pure secs - <*> aopt emailField "E-mail eintragen, falls Benachrichtigungen erwünscht" Nothing + <*> aopt emailField (fieldSettingsLabel MsgEmailNotify) Nothing data UserConf = UserConf { userConfEmail :: Maybe Text @@ -48,7 +48,7 @@ getModifyUserR uId = do defaultLayout $ do $(widgetFile "modifyUser") Nothing -> do - setMessage "Benutzer unbekannt" + setMessageI MsgUserUnknown redirect $ HomeR postModifyUserR :: UserId -> Handler Html @@ -63,18 +63,18 @@ postModifyUserR uId = do [ UserEmail =. email ] liftIO $ notify user email - setMessage "Nutzerdaten aktualisiert" + setMessageI MsgUserEdited redirect $ SelectR uId _ -> do - setMessage "Nutzerdatenaktualisierung nicht erfolgreich" + setMessageI MsgUserNotEdited redirect $ SelectR uId Nothing -> do - setMessage "Nutzer unbekannt" + setMessageI MsgUserUnknown redirect $ HomeR modifyUserForm :: User -> Form (Maybe Text) modifyUserForm user = renderDivs $ - aopt emailField "E-Mail eintragen, falls Benchrichtigungen erwünscht" (Just $ userEmail user) + aopt emailField (fieldSettingsLabel MsgEmailNotify) (Just $ userEmail user) notify :: User -> Maybe Text -> IO () notify user email diff --git a/Handler/Payout.hs b/Handler/Payout.hs index e474ff5..fdf262f 100644 --- a/Handler/Payout.hs +++ b/Handler/Payout.hs @@ -20,14 +20,15 @@ postPayoutR = do ((res, _), _) <- runFormPost payoutForm case res of FormSuccess payment -> do - updateCashier (- (paymentAmount payment)) ("Auszahlung: " `T.append` paymentDesc payment) - setMessage "Betrag ausgezahlt" + msg <- renderMessage' $ MsgPayout $ paymentDesc payment + updateCashier (- (paymentAmount payment)) msg + setMessageI MsgPaidOut redirect $ HomeR _ -> do - setMessage "Auszahlung nicht möglich" + setMessageI MsgNotPaidOut redirect $ JournalR payoutForm :: Form Payment payoutForm = renderDivs $ Payment - <$> areq currencyField "Betrag" Nothing - <*> areq textField "Beschreibung" Nothing + <$> areq currencyField (fieldSettingsLabel MsgValue) Nothing + <*> areq textField (fieldSettingsLabel MsgDescription) Nothing diff --git a/Handler/Restock.hs b/Handler/Restock.hs index dc51628..df1cb7a 100644 --- a/Handler/Restock.hs +++ b/Handler/Restock.hs @@ -18,7 +18,7 @@ getUpstockR bId = do defaultLayout $ do $(widgetFile "upstock") Nothing -> do - setMessage "Artikel unbekannt" + setMessageI MsgItemUnknown redirect $ HomeR postUpstockR :: BeverageId -> Handler Html @@ -32,21 +32,21 @@ postUpstockR bId = do case c > 0 of True -> do runDB $ update bId [BeverageAmount +=. c] - setMessage "Bestand aufgefüllt" + setMessageI MsgStockedUp redirect $ HomeR False -> do - setMessage "Bestand kann nicht negativ aufgefüllt werden" + setMessageI MsgNotStockedUp redirect $ UpstockR bId _ -> do - setMessage "Fehler beim Auffüllen" + setMessageI MsgStockupError redirect $ UpstockR bId Nothing -> do - setMessage "Artikel unbekannt" + setMessageI MsgItemUnknown redirect $ HomeR upstockForm :: Form Int upstockForm = renderDivs - $ areq amountField "Anzahl hinzugefügt" (Just 0) + $ areq amountField (fieldSettingsLabel MsgAmountAdded) (Just 0) getNewArticleR :: Handler Html getNewArticleR = do @@ -60,15 +60,15 @@ postNewArticleR = do case result of FormSuccess bev -> do runDB $ insert_ bev - setMessage "Neuer Artikel hinzugefügt" + setMessageI MsgItemAdded redirect $ HomeR _ -> do - setMessage "Fehler beim Hinzufügen" + setMessageI MsgItemNotAdded redirect $ HomeR newArticleForm :: Form Beverage newArticleForm = renderDivs $ Beverage - <$> areq textField "Name" Nothing - <*> areq currencyField "Preis" (Just 100) - <*> areq amountField "Anzahl Elemente" (Just 0) - <*> areq amountField "Warnung bei Anzahl" (Just 0) + <$> areq textField (fieldSettingsLabel MsgName) Nothing + <*> areq currencyField (fieldSettingsLabel MsgPrice) (Just 100) + <*> areq amountField (fieldSettingsLabel MsgAmount) (Just 0) + <*> areq amountField (fieldSettingsLabel MsgAmountWarning) (Just 0) diff --git a/Handler/Select.hs b/Handler/Select.hs index bcb18d3..d6328fa 100644 --- a/Handler/Select.hs +++ b/Handler/Select.hs @@ -15,7 +15,7 @@ getSelectR uId = do defaultLayout $ do $(widgetFile "select") Nothing -> do - setMessage "Benutzer unbekannt" + setMessageI MsgUserUnknown redirect $ HomeR getSelectCashR :: Handler Html @@ -30,10 +30,11 @@ getRechargeR uId = do case mUser of Just user -> do (rechargeWidget, enctype) <- generateFormPost rechargeForm + currency <- appCurrency <$> appSettings <$> getYesod defaultLayout $ do $(widgetFile "recharge") Nothing -> do - setMessage "Benutzer unbekannt" + setMessageI MsgUserUnknown redirect $ HomeR postRechargeR :: UserId -> Handler Html @@ -48,15 +49,15 @@ postRechargeR uId = do time <- liftIO getCurrentTime secs <- return $ R.read $ formatTime defaultTimeLocale "%s" time runDB $ update uId [UserBalance +=. amount, UserTimestamp =. secs] - setMessage "Guthaben erfolgreich aufgeladen" + setMessageI MsgRecharged redirect $ HomeR _ -> do - setMessage "Fehler beim Aufladen" + setMessageI MsgRechargeError redirect $ HomeR Nothing -> do - setMessage "Benutzer unbekannt" + setMessageI MsgUserUnknown redirect $ HomeR rechargeForm :: Form Int rechargeForm = renderDivs - $ areq currencyField "Betrag" (Just 0) + $ areq currencyField (fieldSettingsLabel MsgValue) (Just 0) diff --git a/messages/de.msg b/messages/de.msg new file mode 100644 index 0000000..560939b --- /dev/null +++ b/messages/de.msg @@ -0,0 +1,76 @@ +UserReactivated: Nutzer reaktiviert +UserUnknown: Nutzer unbekannt +UserOrArticleUnknown: Benutzer oder Artikel unbekannt +PurchaseSuccess: Viel Vergnügen +PurchaseDebtful: Achtung: Guthaben im negativen Bereich +NotEnoughItems: So viele Artikel sind nicht vorhanden +ErrorOccured: Etwas ist schief gelaufen +ItemUnknown: Artikel unbekannt +PurchaseSuccessCash price@Int currency@Text: Viel Vergnügen. Bitte Zahle #{formatIntCurrency price} #{currency} in die Kasse ein +ItemDisappeared: Artikel ist verschwunden o_0 +Amount: Anzahl +EditSuccess: Bearbeitung erfolgreich +EditFail: Bearbeitung nicht möglich +Name: Name +Price: Preis +CurrentStock: Aktueller Bestand +AnnouncedStock: Meldebestand +DeleteItem: Artikel löschen +ItemDeleted: Artikel gelöscht +UserCreated: Benutzer angelegt +UserNotCreated: Benutzer konnte nicht angelegt werden +EmailNotify: E-Mail eintragen falls Benachrichtigungen erwünscht +BuyNotification: Benachrichtigung bei Kauf +UserEdited: Nutzerdaten aktualisiert +UserNotEdited: Nutzerdatenaktualisierung nicht erfolgreich +Payout desc@Text: Auszahlung: #{desc} +PaidOut: Betrag ausgezahlt +NotPaidOut: Auszahlung nicht möglich +Value: Betrag +Description: Beschreibung +StockedUp: Bestand aufgefüllt +NotStockedUp: Bestand kann nicht negativ aufgefüllt werden +StockupError: Fehler beim Auffüllen +AmountAdded: Anzahl hinzugefügt +ItemAdded: Neuer Artikel hinzugefügt +ItemNotAdded: Fehler beim Hinzufügen +AmountWarning: Warnung bei Anzahl +Recharged: Guthaben erfolgreich aufgeladen +RechargeError: Fehler beim Aufladen +CashCheck: Kassensturz +CashChecked: Kassensturz durchgeführt. Kasse aktualisiert +CashCheckError: Fehler im Kassensturz +CountedValue: Gezählter Betrag +PurchaseOf name@Text: Kauf von #{name} +PricePerUnit price@Int currency@Text: Preis pro Einheit: #{formatIntCurrency price} #{currency} +Purchase: Kaufen +PleaseCountAndCheck: Bitte Kasse zählen und gezählten Betrag in unten stehendes Feld eintragen. +Submit: Absenden +Home: Nachhause +Restock: Lager befüllen +Journal: Journal +Summary: Inventar +PayCash: Bar bezahlen +CreateUser: Neuen Nutzer anlegen +ReactivateOldUser: Alten Nutzer reaktivieren +Time: Zeit +ValueIn currency@Text: Betrag in #{currency} +TotalValue: Gesamtbetrag +CashStock: Kassenbestand +PayoutFromCash: Aus der Kasse auszahlen +NothingToShow: Noch keine Bewegungen zu verzeichnen +NewItem: Neuer Artikel +NewUser: Neuer Benutzer +DoPayout: Auszahlen +ReactivateUser: Nutzer reaktivieren +Recharge: Guthaben aufladen +CurrentCharge charge@Int currency@Text: aktuelles Guthaben: #{formatIntCurrency charge} #{currency} +AddItem: neuen Artikel hinzufügen +EditUser: Nutzerdaten akutalisieren +ChoosePrompt text@Text: Wähle deinen Artikel, #{text} +SelectItem: Wähle deinen Artikel +CurrentAmount: Aktuelle Anzahl +NoItems: keine Getränke vorhanden +StockUp name@Text: Bestand von #{name} auffüllen +Fillup: Auffüllen +CashCheckOf date@String: Kassensturz vom #{date} diff --git a/messages/en.msg b/messages/en.msg new file mode 100644 index 0000000..9dc3e99 --- /dev/null +++ b/messages/en.msg @@ -0,0 +1,76 @@ +UserReactivated: User reactivated +UserUnknown: User unknown +UserOrArticleUnknown: User or item unknown +PurchaseSuccess: Enjoy! +PurchaseDebtful: Attention: You are in debt! +NotEnoughItems: Not enough items available +ErrorOccured: Something went wrong +ItemUnknown: Item unknown +PurchaseSuccessCash price@Int currency@Text: Enjoy. Please pay #{currency} #{formatIntCurrency price} #{currency} in cash. +ItemDisappeared: Item disappeared o_0 +Amount: Amount +EditSuccess: Edited successfully +EditFail: Editing failed +Name: Name +Price: Price +CurrentStock: Current stock +AnnouncedStock: Announced stock +DeleteItem: Delete Item +ItemDeleted: Item deleted +UserCreated: User created +UserNotCreated: Could not create user +EmailNotify: enter eMail if you want notifications +BuyNotification: Notify on purchase +UserEdited: User edited +UserNotEdited: Could not edit user +Payout desc@Text: Payout: #{desc} +PaidOut: Amount paid out +NotPaidOut: Could not pay out +Value: Value +Description: Description +StockedUp: Stocked up +NotStockedUp: Could not stock up +StockupError: Error stocking up +AmountAdded: Amount added +ItemAdded: New item added +ItemNotAdded: Error when adding +AmountWarning: Amount warning +Recharged: Recharged! +RechargeError: Error recharging +CashCheck: Cash check +CashChecked: Cash checked and updated. +CashCheckError: Error on cash check +CountedValue: Counted value +PurchaseOf name@Text: Purchase of #{name} +PricePerUnit price@Int currency@Text: Price per unit: #{currency} #{formatIntCurrency price} +Purchase: Buy +PleaseCountAndCheck: Please count cash reserves and update amount below. +Submit: Submit +Home: Home +Restock: Restock inventory +Journal: Journal +Summary: Inventory +PayCash: Pay cash +CreateUser: Create user +ReactivateOldUser: Reactivate old user +Time: Time +ValueIn currency@Text: Value in #{currency} +TotalValue: Total value +CashStock: Cash stock +PayoutFromCash: Pay out cash +NothingToShow: No movements +NewItem: New item +NewUser: New User +DoPayout: Payout +ReactivateUser: Reactivate user +Recharge: Recharge +CurrentCharge charge@Int currency@Text: Current charge: #{currency} #{formatIntCurrency charge} #{currency} +AddItem: Add new item +EditUser: Edit user +ChoosePrompt text@Text: Choose an item, #{text} +SelectItem: Select item +CurrentAmount: Current amount +NoItems: No items +StockUp name@Text: Stock up #{name} +Fillup: Fill up +CashCheckOf date@String: Cash check of #{date} diff --git a/static/css/main.css b/static/css/main.css index 53c3067..46301f2 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -56,6 +56,11 @@ header a { box-shadow: 0px 0px 3px #c4c4c4; } +header .lang a { + background-color: olive; + color: yellow; +} + header ul { list-style: none outside none; } diff --git a/templates/buy.hamlet b/templates/buy.hamlet index 0f3e570..33a4a1d 100644 --- a/templates/buy.hamlet +++ b/templates/buy.hamlet @@ -1,11 +1,11 @@ $doctype 5 -

Kauf von #{beverageIdent bev} +

_{MsgPurchaseOf $ beverageIdent bev}

- Preis pro Einheit: #{formatIntCurrency (beveragePrice bev)} #{appCurrency $ appSettings master} + _{MsgPricePerUnit (beveragePrice bev) (appCurrency $ appSettings master)}

^{buyWidget}
- + diff --git a/templates/buyCash.hamlet b/templates/buyCash.hamlet index dff8077..2bbd360 100644 --- a/templates/buyCash.hamlet +++ b/templates/buyCash.hamlet @@ -1,11 +1,11 @@ $doctype 5 -

Kauf von #{beverageIdent bev} +

_{MsgPurchaseOf $ beverageIdent bev}

- Preis pro Einheit: #{formatIntCurrency (beveragePrice bev + 50)} #{appCurrency $ appSettings master} + _{MsgPricePerUnit (beveragePrice bev + 50) (appCurrency $ appSettings master)} ^{buyCashWidget}

- + diff --git a/templates/cashCheck.hamlet b/templates/cashCheck.hamlet index 088e09b..3f4bd48 100644 --- a/templates/cashCheck.hamlet +++ b/templates/cashCheck.hamlet @@ -1,11 +1,12 @@ $doctype 5 -

Kassensturz +

_{MsgCashCheck}

- Bitte Kasse zählen und gezählten Betrag in unten stehendes Feld eintragen. + _{MsgPleaseCountAndCheck} + ^{cashCheckWidget}

- + diff --git a/templates/default-layout-wrapper.hamlet b/templates/default-layout-wrapper.hamlet index cac91e3..a89dd1f 100644 --- a/templates/default-layout-wrapper.hamlet +++ b/templates/default-layout-wrapper.hamlet @@ -23,21 +23,7 @@ $newline never