@@ -51,7 +51,7 @@ extract txt =
5151generate :: [(T.Text,T.Text)] -> T.Text
5252generate assocs =
5353 let
54− header = "{-# LANGUAGE DeriveDataTypeable, OverloadedStrings, NoImplicitPrelude, PatternGuards #-}" <> nl <>
54+ header = "{-# LANGUAGE DeriveDataTypeable, OverloadedStrings, NoImplicitPrelude, PatternGuards, FlexibleInstances, MultiParamTypeClasses #-}" <> nl <>
5555 "-- | This file is generated from the Wikipedia page" <> nl <>
5656 "-- <http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2>" <> nl <>
5757 "module Data.CountryCodes.ISO31661 (" <> nl <>
@@ -69,6 +69,7 @@ generate assocs =
6969 "import Data.Typeable" <> nl <>
7070 "import qualified Data.Text as T" <> nl <>
7171 "import Prelude (Show,Read,Eq,Ord,Bounded,Enum,error,($),(++),Maybe(..),(.),fail)" <> nl <>
72+ "import Text.Shakespeare.I18N" <> nl <>
7273 nl
7374 cons = snd (foldl' constructor (True, header) assocs) <> nl <>
7475 " deriving (Show,Read,Eq,Ord,Bounded,Enum,Typeable)"
@@ -107,8 +108,15 @@ generate assocs =
107108 "instance FromJSON CountryCode where" <> nl <>
108109 " parseJSON (String s)" <> nl <>
109110 " | Just a <- fromMText s=pure a" <> nl <>
110− " parseJSON _ =fail \"CountryCode\"" <> nl
111− in json
111+ " parseJSON _ =fail \"CountryCode\"" <> nl <> nl
112+ sp = json <>
113+ "-- | show user readable name" <> nl <>
114+ "instance ToMessage CountryCode where" <> nl <>
115+ " toMessage = toName" <> nl <> nl <>
116+ "-- | show user readable name, in english (ignoring locale for now)" <> nl <>
117+ "instance RenderMessage master CountryCode where" <> nl <>
118+ " renderMessage _ _ = toName" <> nl <> nl
119+ in sp
112120
113121 where
114122 constructor :: (Bool,T.Text) -> (T.Text,T.Text) -> (Bool,T.Text)