* TEXT EVERYWHERE, WHERE MY STRINGS AT?
This commit is contained in:
		
							parent
							
								
									d4fa02deed
								
							
						
					
					
						commit
						8c90ebdb49
					
				
					 3 changed files with 43 additions and 29 deletions
				
			
		
							
								
								
									
										24
									
								
								src/Blog.hs
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								src/Blog.hs
									
										
									
									
									
								
							|  | @ -44,7 +44,7 @@ blogText f = T.pack . f | |||
| intersperse' :: a -> [a] -> [a] | ||||
| intersperse' sep l = sep : intersperse sep l | ||||
| 
 | ||||
| blogTemplate :: BlogLang -> String -> Html -> Html | ||||
| blogTemplate :: BlogLang -> Text -> Html -> Html | ||||
| blogTemplate lang t_append body = H.docTypeHtml $ do --add body | ||||
|     H.head $ do | ||||
|         H.title $ (toHtml $ blogTitle lang t_append) | ||||
|  | @ -63,20 +63,20 @@ blogTemplate lang t_append body = H.docTypeHtml $ do --add body | |||
|             H.div ! A.class_ "myclear" $ mempty | ||||
|             body | ||||
|             H.div ! A.class_ "myclear" $ mempty | ||||
|             showFooter lang version | ||||
|             showFooter lang $ T.pack version | ||||
|         H.div ! A.class_ "centerbox" $ | ||||
|             H.img ! A.src "http://getpunchd.com/img/june/idiots.png" ! A.alt "" | ||||
|     where | ||||
|         contactInfo (imu :: String) = do | ||||
|         contactInfo (imu :: Text) = do | ||||
|             toHtml $ contactText lang | ||||
|             H.a ! A.href (toValue mailTo) $ "Mail" | ||||
|             ", " | ||||
|             H.a ! A.href (toValue twitter) ! A.target "_blank" $ "Twitter" | ||||
|             toHtml $ orString lang | ||||
|             toHtml $ orText lang | ||||
|             H.a ! A.href (toValue imu) ! A.target "_blank" $ "iMessage" | ||||
|             "." | ||||
| 
 | ||||
| renderEntries :: Bool -> [Entry] -> String -> Maybe Html -> Html | ||||
| renderEntries :: Bool -> [Entry] -> Text -> Maybe Html -> Html | ||||
| renderEntries showAll entries topText footerLinks =  | ||||
|     H.div ! A.class_ "innerBox" $ do | ||||
|         H.div ! A.class_ "innerBoxTop" $ toHtml topText | ||||
|  | @ -113,7 +113,7 @@ renderCommentBox lang = do | |||
|     H.div ! A.name "cHead" $ toHtml $ cwHead lang | ||||
|     H.form $ do | ||||
|         H.p $ H.label $ do | ||||
|             toHtml ("Name:" :: String) | ||||
|             toHtml ("Name:" :: Text) | ||||
|             H.input  | ||||
| {- | ||||
| <form> | ||||
|  | @ -140,20 +140,20 @@ renderComments comments lang = sequence_ $ map showComment comments | |||
| showLinks :: Maybe Int -> BlogLang -> Html | ||||
| showLinks (Just i) lang = H.div ! A.class_ "centerbox" $ do | ||||
|     H.a ! A.href (toValue $ "/?page=" ++ show (i+1)) $ toHtml $ backText lang | ||||
|     toHtml (" -- " :: String) | ||||
|     toHtml (" -- " :: Text) | ||||
|     H.a ! A.href (toValue $ "/?page=" ++ show (i-1)) $ toHtml $ nextText lang | ||||
| showLinks Nothing lang = H.div ! A.class_ "centerbox" $ | ||||
|     H.a ! A.href "/?page=2" $ toHtml $  backText lang | ||||
| 
 | ||||
| showFooter :: BlogLang -> String -> Html | ||||
| showFooter :: BlogLang -> Text -> Html | ||||
| showFooter l v = H.div ! A.class_ "rightbox" ! A.style "text-align:right;" $ do | ||||
|     toHtml ("Proudly made with " :: String) | ||||
|     toHtml ("Proudly made with " :: Text) | ||||
|     H.a ! A.href "http://haskell.org" $ "Haskell" | ||||
|     toHtml (", " :: String) | ||||
|     toHtml (", " :: Text) | ||||
|     H.a ! A.href "http://couchdb.apache.org/" $ "CouchDB" | ||||
|     toHtml (" and without PHP, Java, Perl, MySQL and Python." :: String) | ||||
|     toHtml (" and without PHP, Java, Perl, MySQL and Python." :: Text) | ||||
|     H.br | ||||
|     H.a ! A.href (toValue repoURL) $ toHtml $ ("Version " :: String) ++ v | ||||
|     H.a ! A.href (toValue repoURL) $ toHtml $ T.concat ["Version ", v] | ||||
|     preEscapedText " " | ||||
|     H.a ! A.href "/notice" $ toHtml $ noticeText l | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,8 +1,10 @@ | |||
| {-# LANGUAGE ScopedTypeVariables, DeriveDataTypeable #-} | ||||
| {-# LANGUAGE ScopedTypeVariables, DeriveDataTypeable, OverloadedStrings #-} | ||||
| 
 | ||||
| module Locales where | ||||
| 
 | ||||
| import           Data.Data (Data, Typeable) | ||||
| import           Data.Text (Text) | ||||
| import qualified Data.Text as T | ||||
| 
 | ||||
| {- to add a language simply define its abbreviation and Show instance then | ||||
|  - translate the appropriate strings and add CouchDB views in Server.hs -} | ||||
|  | @ -13,7 +15,7 @@ instance Show BlogLang where | |||
|     show EN = "en" | ||||
|     show DE = "de" | ||||
| 
 | ||||
| version = ("2.2b" :: String) | ||||
| version = "2.2b" | ||||
| 
 | ||||
| allLang = [EN, DE] | ||||
| 
 | ||||
|  | @ -21,18 +23,18 @@ if' :: Bool -> a -> a -> a | |||
| if' True x _ = x | ||||
| if' False _ y = y | ||||
| 
 | ||||
| blogTitle :: BlogLang -> String -> String | ||||
| blogTitle DE s = "Tazjins Blog" ++ s | ||||
| blogTitle EN s = "Tazjin's Blog" ++ s | ||||
| blogTitle :: BlogLang -> Text -> Text | ||||
| blogTitle DE s = T.concat ["Tazjins Blog", s] | ||||
| blogTitle EN s = T.concat ["Tazjin's Blog", s] | ||||
| 
 | ||||
| -- index site headline | ||||
| topText DE = "Aktuelle Einträge" | ||||
| topText EN = "Latest entries" | ||||
| 
 | ||||
| getMonth :: BlogLang -> Int -> Int -> String | ||||
| getMonth l y m = monthName l m ++ show y | ||||
| getMonth :: BlogLang -> Int -> Int -> Text | ||||
| getMonth l y m = T.append (monthName l m) $ T.pack $ show y | ||||
|   where | ||||
|     monthName :: BlogLang -> Int -> String | ||||
|     monthName :: BlogLang -> Int -> Text | ||||
|     monthName DE m = case m of  | ||||
|                     1 -> "Januar " | ||||
|                     2 -> "Februar " | ||||
|  | @ -60,46 +62,57 @@ getMonth l y m = monthName l m ++ show y | |||
|                     11 -> "November " | ||||
|                     12 -> "December " | ||||
| 
 | ||||
| entireMonth :: BlogLang -> Text | ||||
| entireMonth DE = "Ganzer Monat" | ||||
| entireMonth EN = "Entire month" | ||||
| 
 | ||||
| backText :: BlogLang -> Text | ||||
| backText DE = "Früher" | ||||
| backText EN = "Earlier" | ||||
| 
 | ||||
| nextText :: BlogLang -> Text | ||||
| nextText DE = "Später" | ||||
| nextText EN = "Later" | ||||
| 
 | ||||
| -- contact information | ||||
| contactText :: BlogLang -> Text | ||||
| contactText DE = "Wer mich kontaktieren will: " | ||||
| contactText EN = "Get in touch with me: " | ||||
| 
 | ||||
| orString DE = " oder " | ||||
| orString EN = " or " | ||||
| orText :: BlogLang -> Text | ||||
| orText DE = " oder " | ||||
| orText EN = " or " | ||||
| 
 | ||||
| -- footer | ||||
| noticeText :: BlogLang -> Text | ||||
| noticeText EN = "site notice" | ||||
| noticeText DE = "Impressum" | ||||
| 
 | ||||
| -- comments | ||||
| noComments :: BlogLang -> Text | ||||
| noComments DE = " Keine Kommentare" | ||||
| noComments EN = " No comments yet" | ||||
| 
 | ||||
| cHead :: BlogLang -> Text | ||||
| cHead DE = "Kommentare:" | ||||
| cHead EN = "Comments:" | ||||
| 
 | ||||
| cwHead :: BlogLang -> Text | ||||
| cwHead DE = "Kommentieren:" | ||||
| cwHead EN = "Comment:" | ||||
| 
 | ||||
| cTimeFormat :: BlogLang -> String --formatTime expects a String | ||||
| cTimeFormat DE = "[Am %d.%m.%y um %H:%M Uhr]" | ||||
| cTimeFormat EN = "[On %D at %H:%M]" | ||||
| 
 | ||||
| -- right side text (this is inserted AS IS. Escape HTML!) | ||||
| rightText :: BlogLang -> Text | ||||
| rightText DE = "English version <a href=\"en\">available here</a>" | ||||
| rightText EN = "Deutsche Version <a href=\"de\">hier verfügbar</a>" | ||||
| 
 | ||||
| -- static information | ||||
| repoURL = "https://bitbucket.org/tazjin/tazblog-haskell" | ||||
| mailTo  = "mailto:hej@tazj.in" | ||||
| twitter = "http://twitter.com/#!/tazjin" | ||||
| iMessage = "imessage:tazjin@me.com" | ||||
| iMessage' = "sms:tazjin@me.com" | ||||
| repoURL   :: Text = "https://bitbucket.org/tazjin/tazblog-haskell" | ||||
| mailTo    :: Text = "mailto:hej@tazj.in" | ||||
| twitter   :: Text = "http://twitter.com/#!/tazjin" | ||||
| iMessage  :: Text = "imessage:tazjin@me.com" | ||||
| iMessage' :: Text = "sms:tazjin@me.com" | ||||
|  |  | |||
|  | @ -6,7 +6,8 @@ import           Control.Applicative (optional) | |||
| import           Control.Monad (msum) | ||||
| import           Data.Monoid (mempty) | ||||
| import           Data.ByteString.Char8 (ByteString) | ||||
| import           Data.Text hiding (map, length, zip, head, drop) | ||||
| import           Data.Text (Text) | ||||
| import qualified Data.Text as T | ||||
| import           Data.Time | ||||
| import           Database.CouchDB | ||||
| import           Happstack.Server | ||||
|  | @ -60,7 +61,7 @@ tryEntry :: Maybe Entry -> Response | |||
| tryEntry Nothing = toResponse $ showError NotFound | ||||
| tryEntry (Just entry) = toResponse $ blogTemplate eLang eTitle $ renderEntry entry | ||||
|     where | ||||
|         eTitle = ": " ++ title entry | ||||
|         eTitle = T.pack $ ": " ++ title entry | ||||
|         eLang = lang entry | ||||
| 
 | ||||
| showIndex :: BlogLang -> ServerPart Response | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue