{-# LANGUAGE CPP #-} -- | Module holding localized error messages to be presented as a response. -- -- To localize error messages provided by HURL, provide your translations between -- "BEGIN LOCALIZATION" & "END LOCALIZATION" in this file. -- -- The lines are formatted: -- trans ("LANG":_) (KEY) = "TRANSLATION" -- with uppercase indicating the bits you fill in. -- -- Translations between #if WITH_HTTP_URI & #endif are specific to HTTP error handling. module Network.URI.Messages (trans, Errors(..)) where import Data.List (stripPrefix) import Data.Maybe (fromMaybe) #if WITH_HTTP_URI import Network.HTTP.Client (HttpException(..), HttpExceptionContent(..)) import Control.Exception (displayException) import Network.TLS (TLSException(..), TLSError(..), AlertDescription(..)) import Control.Exception.Base (fromException) #endif trans _ (RawXML markup) = markup --- BEGIN LOCALIZATION trans ("en":_) (UnsupportedScheme scheme) = "Unsupported protocol " ++ scheme trans ("en":_) (UnsupportedMIME mime) = "Unsupported filetype " ++ mime trans ("en":_) (RequiresInstall mime appsMarkup) = "
" ++ linkType ++ "
linksIt has sent us a cryptographic certificate I failed to make sense of.
" ] Just (HandshakeFailed (Error_Protocol (_, _, CertificateExpired))) -> unlines [ "The cryptographic certificate it has sent to us has expired!
" ] Just (HandshakeFailed (Error_Protocol (_, _, CertificateRevoked))) -> unlines [ "The cryptographic certificate it has sent us has been revoked!
" ] Just (HandshakeFailed (Error_Protocol (_, _, CertificateUnknown))) -> unlines [ "The cryptographic certificate it has sent us belongs to someone else!
" ] Just (HandshakeFailed (Error_Protocol (_, _, UnknownCa))) -> unlines [ "The authority vouching for it is unknown to me!
" ] Just (HandshakeFailed (Error_Protocol (why, _, _desc))) -> "Failed to establish secure connection! " ++ why ++ "" Just (HandshakeFailed (Error_Certificate why)) -> unlines [ "" ++ why ++ "
" ] Just (HandshakeFailed (Error_HandshakePolicy why)) -> "Invalid handshake policy: " ++ why ++ "" Just (HandshakeFailed Error_EOF) -> "Secure session disconnected!" Just (HandshakeFailed (Error_Packet why)) -> "Invalid security packet: " ++ why ++ "" Just (HandshakeFailed (Error_Packet_unexpected a b)) -> unlines [ "Invalid security packet: " ++ a ++ "
", "" ++ b ++ "
" ] Just (HandshakeFailed (Error_Packet_Parsing why)) -> "Invalid security packet: " ++ why ++ "" Just ConnectionNotEstablished -> "Attempted to send or recieve data before establishing secure connection!" Nothing -> "Internal error: " ++ displayException e #endif --- END LOCALIZATION trans (_:locales) err = trans locales err trans [] err = trans ["en"] err data Errors = UnsupportedScheme String | UnsupportedMIME String | RequiresInstall String String | OpenedWith String | ReadFailed String | RawXML String | MalformedResponse | ExcessiveRedirects #if WITH_HTTP_URI | Http HttpException #endif