{- Copyright (C) 2009 Andrejs Sisojevs All rights reserved. For license and copyright information, see the file COPYRIGHT -} -------------------------------------------------------------------------- -------------------------------------------------------------------------- {-# OPTIONS_HADDOCK hide #-} module Text.PCLT.MakeMessage__ where import qualified Data.ByteString.Lazy.UTF8.Unified as Lazy (ByteString) import qualified Data.ByteString.Lazy.UTF8.Unified as B hiding (ByteString) import qualified Data.Map as M import Data.Map (Map, (!)) import Data.MyHelpers import Text.PCLT.SH__ import Text.PCLT.MakeMessage import Text.PCLT.Catalog__ import Text.PCLT.MakeCatalog__ import Text.PCLT.Template__ import Text.PCLT.ShowAsPCSI__ ------------------------------------------- instance ShowAsPCSI PCSI2Text_Error where showAsPCSI p2te = thePCSI "E_PCLT_P2TE" [ ("short_err_mark", PlainText_PV $ B.unpack $ shortOf_PCSI2Text_Error p2te) , ("pclt_p2te_err_details", PCSI_PV err_pcsi) ] where err_pcsi = case p2te of RequiredCompositeIsMissing_P2TE rrcim -> addToPCSI [showAsPCSI rrcim] ( empPCSI "E_PCLT_P2TE_MISSINGCOMPST") RequiredCompositeLoclizationIsMissing_P2TE rrcim lng -> addToPCSI [showAsPCSI rrcim] ( thePCSI "E_PCLT_P2TE_MISSINGLNGCOMPST" [("lng", PlainText_PV lng)]) CompositionCycle_P2TE cc -> addToPCSI [showAsPCSI cc] ( empPCSI "E_PCLT_P2TE_COMPCYCL") SDL_DeterminationFailure_P2TE tpl_id sdldf -> addToPCSI [showAsPCSI sdldf] ( thePCSI "E_PCLT_P2TE_SDLDF" [("tpl_id" , PlainText_PV tpl_id)]) UnsupportedMarker_P2TE ssm contents tpl_id lng -> thePCSI "E_PCLT_P2TE_USUPMARK" [ ("tpl_id" , PlainText_PV tpl_id) , ("lng" , PlainText_PV lng) , ("contents", PlainTextLBS_PV $ truncLiteraryLBS contents 15) , ("ssm" , PCSI_PV $ showAsPCSI $ SeparatedSectorMarker_PCSIWrapped ssm) ] NoValueForParameter_P2TE tpl_id lng param_id -> thePCSI "E_PCLT_P2TE_NOPARAMVAL" [ ("tpl_id" , PlainText_PV tpl_id) , ("lng" , PlainText_PV lng) , ("param_id", PlainText_PV param_id) ] UnderAccordingParamReparsingFailure_P2TE tpl_id lng param_id rpcsce -> thePCSI "E_PCLT_P2TE_REPRSFAIL" [ ("tpl_id" , PlainText_PV tpl_id) , ("lng" , PlainText_PV lng) , ("param_id", PlainText_PV param_id) , ("rpcsce" , PCSI_PV $ showAsPCSI rpcsce) ] ReparsingDepthMaxReached_P2TE tpl_id lng param_id reparsing_depth -> thePCSI "E_PCLT_P2TE_REPRSDEPTH" [ ("tpl_id" , PlainText_PV tpl_id) , ("lng" , PlainText_PV lng) , ("param_id", PlainText_PV param_id) , ("reparsing_depth", PlainText_PV $ show reparsing_depth) ] ReparsingLengthMaxReached_P2TE tpl_id lng param_id max_len -> thePCSI "E_PCLT_P2TE_REPRSLEN" [ ("tpl_id" , PlainText_PV tpl_id) , ("lng" , PlainText_PV lng) , ("param_id", PlainText_PV param_id) , ("max_len", PlainText_PV $ show max_len) ] InstaniationLengthMaxReached_P2TE tpl_id lng max_len -> thePCSI "E_PCLT_P2TE_INSTLEN" [ ("tpl_id" , PlainText_PV tpl_id) , ("lng" , PlainText_PV lng) , ("max_len", PlainText_PV $ show max_len) ] instance HasStaticRawPCLTs PCSI2Text_Error where getStaticRawPCLTs inner_cfg _ = flip (,) [] $ PCLT_RawCatalogData $ M.fromList [ ("E_PCLT_P2TE", (M.fromList [("rus", B.pack "##|E_PCLT_P2TE_PREFIX##|@@|pclt_p2te_err_details@@|."), ("eng", B.pack "##|E_PCLT_P2TE_PREFIX##|@@|pclt_p2te_err_details@@|.")], str2PCLT_SDL Required_SDLM "##|LLEXCPT##|" inner_cfg)) , ("E_PCLT_P2TE_PREFIX", (M.fromList [("rus", B.pack "Произошла ошибка (@@|short_err_mark@@|) при реализации сообщения из шаблона: "), ("eng", B.pack "An error (@@|short_err_mark@@|) occurred, when trying to realize a message from a template: ")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) , ("E_PCLT_P2TE_MISSINGCOMPST", (M.fromList [("rus", B.pack "##|E_PCLT_COMMONS_MISSINGCOMPSTBYRER##|"), ("eng", B.pack "##|E_PCLT_COMMONS_MISSINGCOMPSTBYRER##|")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) , ("E_PCLT_P2TE_MISSINGLNGCOMPST", (M.fromList [("rus", B.pack "(для языка \"@@|lng@@|\") ##|E_PCLT_COMMONS_MISSINGCOMPSTBYRER##|"), ("eng", B.pack "(for language \"@@|lng@@|\") ##|E_PCLT_COMMONS_MISSINGCOMPSTBYRER##|")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) , ("E_PCLT_P2TE_COMPCYCL", (M.fromList [("rus", B.pack "##|E_PCLT_COMMONS_CCYCL##|"), ("eng", B.pack "##|E_PCLT_COMMONS_CCYCL##|")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) , ("E_PCLT_P2TE_SDLDF", (M.fromList [("rus", B.pack "##|E_PCLT_SDLDF##|"), ("eng", B.pack "##|E_PCLT_SDLDF##|")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) , ("E_PCLT_P2TE_USUPMARK", (M.fromList [("rus", B.pack "неизвестный маркер обнаружен в шаблоне [ИД: @@|tpl_id@@|; язык: \"@@|lng@@|\"]. @@|ssm@@| Содержимое под маркером: @@|contents@@|"), ("eng", B.pack "unsupported marker appeara in the template [ID: @@|tpl_id@@|; language: \"@@|lng@@|\"]. @@|ssm@@| Marked text chunk: @@|contents@@|")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) , ("E_PCLT_P2TE_NOPARAMVAL", (M.fromList [("rus", B.pack "для параметра \"@@|param_id@@|\" к реализации шаблона [ИД: @@|tpl_id@@|; язык: \"@@|lng@@|\"] не указано значение"), ("eng", B.pack "no value specified for parameter \"@@|param_id@@|\" of template [ID: @@|tpl_id@@|; lng: \"@@|lng@@|\"]")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) , ("E_PCLT_P2TE_REPRSFAIL", (M.fromList [("rus", B.pack "произошла ошибка при репарсинге значения параметра \"@@|param_id@@|\" при реализации шаблона [ИД: @@|tpl_id@@|; язык: \"@@|lng@@|\"]. Ошибка: @@|rpcsce@@|"), ("eng", B.pack "an error occurred, when reparsing a value specified for parameter \"@@|param_id@@|\" of template [ID: @@|tpl_id@@|; lng: \"@@|lng@@|\"]: @@|rpcsce@@|")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) , ("E_PCLT_P2TE_REPRSDEPTH", (M.fromList [("rus", B.pack "достигнута максимальная глубина репарсинга (@@|reparsing_depth@@|). Дальнейшее углубление остановлено на репарсинге значения параметра \"@@|param_id@@|\" при реализации шаблона [ИД: @@|tpl_id@@|; язык: \"@@|lng@@|\"]"), ("eng", B.pack "reparsing depth maximum (@@|reparsing_depth@@|) reached, - halted a reparsing of a value specified for parameter \"@@|param_id@@|\" of template [ID: @@|tpl_id@@|; lng: \"@@|lng@@|\"]")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) , ("E_PCLT_P2TE_REPRSLEN", (M.fromList [("rus", B.pack "достигнута максимальная длина (@@|max_len@@|) сторки подготавливаемой к репарсингу, при репарсинге значения параметра \"@@|param_id@@|\" при реализации шаблона [ИД: @@|tpl_id@@|; язык: \"@@|lng@@|\"]"), ("eng", B.pack "the text, that is to be reparsed, length maximum (@@|max_len@@|) reached, when reparsing a value specified for parameter \"@@|param_id@@|\" of template [ID: @@|tpl_id@@|; lng: \"@@|lng@@|\"]")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) , ("E_PCLT_P2TE_INSTLEN", (M.fromList [("rus", B.pack "достигнута максимальная длина (@@|max_len@@|) реализации сообщения из шаблона [ИД: @@|tpl_id@@|; язык: \"@@|lng@@|\"]"), ("eng", B.pack "the realization length maximum (@@|max_len@@|) is reached, when realizing template [ID: @@|tpl_id@@|; lng: \"@@|lng@@|\"]")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE##|" inner_cfg)) -- ------------!!! , ("E_PCLT_P2TE_LIST", (M.fromList [("rus", B.pack "##|E_PCLT_P2TE_LIST_PREFIX##|\n@@|errors_list@@|\n##|E_PCLT_P2TE_LIST_POSTFIX##|"), ("eng", B.pack "##|E_PCLT_P2TE_LIST_PREFIX##|\n@@|errors_list@@|\n##|E_PCLT_P2TE_LIST_POSTFIX##|")], str2PCLT_SDL Required_SDLM "##|LLEXCPT##|" inner_cfg)) , ("E_PCLT_P2TE_LIST_PREFIX", (M.fromList [("rus", B.pack "----СЛЕЛУЮЩИЕ-ОШИБКИ-ВОЗНИКЛИ-ПРИ-ГЕНЕРАЦИИ-СООБЩЕНИЙ ИЗ-ШАБЛОНОВ----\n"), ("eng", B.pack "----FOLLOWING-ERRORS-OCCURED-WHEN-GENERATING-MESSAGES-FROM-TEMPLATES----------\n")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE_LIST##|" inner_cfg)) , ("E_PCLT_P2TE_LIST_POSTFIX", (M.fromList [("rus", B.pack "\n----------------\n----ОШИБКИ-ГЕНЕРАТОРА-СООБЩЕНИЙ-[END]----------\n"), ("eng", B.pack "\n----------------\n----MESSAGES-GENERATOR-ERRORS-[END]----------\n")], str2PCLT_SDL Required_SDLM "##|E_PCLT_P2TE_LIST##|" inner_cfg)) ] --------------------------------------------- instance ShowAsPCSI SDL_DeterminationFailure where showAsPCSI sdldf = thePCSI "E_PCLT_SDLDF" [("pclt_sdldf_err_details", PCSI_PV err_pcsi)] where err_pcsi = case sdldf of RequiredCompositeIsMissing_SDLDF rrcim -> addToPCSI [showAsPCSI rrcim] ( empPCSI "E_PCLT_SDLDF_MISSCMPST") MissingParam_SDLByParamCompositeLink_SDLDF tpl_id param_id -> thePCSI "E_PCLT_SDLDF_MISSPARAM" [ ("tpl_id" , PlainText_PV tpl_id) , ("param_id" , PlainText_PV param_id) ] WrongParamType_SDLByParamCompositeLink_SDLDF tpl_id param_id -> thePCSI "E_PCLT_SDLDF_WRNGPRMTYP" [ ("tpl_id" , PlainText_PV tpl_id) , ("param_id" , PlainText_PV param_id) ] UnknownComposite_SDLByParamCompositeLink_SDLDF tpl_id param_id wrng_tpl_id -> thePCSI "E_PCLT_SDLDF_WRNGPRMCMPST" [ ("tpl_id" , PlainText_PV tpl_id) , ("param_id" , PlainText_PV param_id) , ("wrng_tpl_id", PlainText_PV wrng_tpl_id) ] SDLReferentialCycle_SDLDF tpl_id super_buf -> thePCSI "E_PCLT_SDLDF_REFCYCL" [ ("tpl_id" , PlainText_PV tpl_id) , ("super_buf" , PlainText_PV $ show super_buf) ] ErrornousSDL_SDLDF tpl_id esdl -> thePCSI "E_PCLT_SDLDF_ESDL" [ ("tpl_id" , PlainText_PV tpl_id) , ("super_buf" , PCSI_PV $ showAsPCSI esdl) ] instance HasStaticRawPCLTs SDL_DeterminationFailure where getStaticRawPCLTs inner_cfg _ = flip (,) [] $ PCLT_RawCatalogData $ M.fromList [ ("E_PCLT_SDLDF", (M.fromList [("rus", B.pack "##|E_PCLT_SDLDF_PREFIX##|@@|pclt_sdldf_err_details@@|."), ("eng", B.pack "##|E_PCLT_SDLDF_PREFIX##|@@|pclt_sdldf_err_details@@|.")], str2PCLT_SDL Required_SDLM "##|LLEXCPT##|" inner_cfg)) , ("E_PCLT_SDLDF_PREFIX", (M.fromList [("rus", B.pack "Произошла ошибка при определении шаблоном {ИД: \"@@|tpl_id@@|\"} требуемого для отображения уровня детализации: "), ("eng", B.pack "An error occured when trying to determine required by the template {ID: \"@@|tpl_id@@|\"} representation detalization level: ")], str2PCLT_SDL Required_SDLM "##|E_PCLT_SDLDF##|" inner_cfg)) , ("E_PCLT_SDLDF_MISSCMPST", (M.fromList [("rus", B.pack "##|E_PCLT_COMMONS_MISSINGCOMPSTBYRER##|"), ("eng", B.pack "##|E_PCLT_COMMONS_MISSINGCOMPSTBYRER##|")], str2PCLT_SDL Required_SDLM "##|E_PCLT_SDLDF##|" inner_cfg)) , ("E_PCLT_SDLDF_CMPZPARAMREF", (M.fromList [("rus", B.pack "необходимый уровень детализации для отображения шаблона [ИД: @@|tpl_id@@|], указан быть таким же, как у шаблона, который подставляется под параметр [ИД: @@|param_id@@|]"), ("eng", B.pack "of template (ID: @@|tpl_id@@|) for message representation required detailization level is referenced to be the same as is one of composite put behind parameter (ID: @@|param_id@@|)")], str2PCLT_SDL Required_SDLM "##|E_PCLT_SDLDF##|" inner_cfg)) , ("E_PCLT_SDLDF_MISSPARAM", (M.fromList [("rus", B.pack "##|E_PCLT_SDLDF_CMPZPARAMREF##|, однако такой параметр вообще отсутствует на входе в реализацию шаблона"), ("eng", B.pack "##|E_PCLT_SDLDF_CMPZPARAMREF##|, but referenced parameter is missing in realization input")], str2PCLT_SDL Required_SDLM "##|E_PCLT_SDLDF##|" inner_cfg)) , ("E_PCLT_SDLDF_WRNGPRMTYP", (M.fromList [("rus", B.pack "##|E_PCLT_SDLDF_CMPZPARAMREF##|, однако под параметр подставлен не шаблон"), ("eng", B.pack "##|E_PCLT_SDLDF_CMPZPARAMREF##|, but referenced parameter value is not a template")], str2PCLT_SDL Required_SDLM "##|E_PCLT_SDLDF##|" inner_cfg)) , ("E_PCLT_SDLDF_WRNGPRMCMPST", (M.fromList [("rus", B.pack "##|E_PCLT_SDLDF_CMPZPARAMREF##|, однако под параметр подставлен шаблон [ИД: @@|wrng_tpl_id@@|] - каталогу неизвестный"), ("eng", B.pack "##|E_PCLT_SDLDF_CMPZPARAMREF##|, but referenced parameter value is set to a template [ID: @@|wrng_tpl_id@@|], which is not in the catalog")], str2PCLT_SDL Required_SDLM "##|E_PCLT_SDLDF##|" inner_cfg)) , ("E_PCLT_SDLDF_REFCYCL", (M.fromList [("rus", B.pack "у данного шаблона для отображения требуемый уровнь детализации такой же, как у указанного - при определении требуемого уровня детализации (остановлен на шаблоне [ИД: @@|tpl_id@@|]) обнаружен цикл таких ссылок. Буфер зацикленных шаблонов: @@|super_buf@@|"), ("eng", B.pack "for message (of given template) representation required detailization level is referenced to be the same as is defined for the referenced template - in a group of such definitions a referential cycle is detected. Procedure of level requirements determination halted on template [ID: @@|tpl_id@@|]. Cycled tpls buffer: @@|super_buf@@|")], str2PCLT_SDL Required_SDLM "##|E_PCLT_SDLDF##|" inner_cfg)) , ("E_PCLT_SDLDF_ESDL", (M.fromList [("rus", B.pack "у шаблона [ИД: @@|tpl_id@@|] для отображения требуемый уровнь детализации ошибочен. @@|esdl_reason@@| Вместо определённого используется требование бесконечного уровня"), ("eng", B.pack "for message (of template [ИД: @@|tpl_id@@|]) representation required detailization level is errornous. @@|esdl_reason@@| The requirement of infinite level is used instead")], str2PCLT_SDL Required_SDLM "##|E_PCLT_SDLDF##|" inner_cfg)) ] -------------------------------------------------------------------- data PCLTRawCatalog__Text_PCLT_MakeMessage = PCLTRawCatalog__Text_PCLT_MakeMessage instance HasStaticRawPCLTs PCLTRawCatalog__Text_PCLT_MakeMessage where widenessOfStaticRawPCLTsSet _ = Module_RPSW getStaticRawPCLTs inner_cfg _ = mergeRawCatalogDataSets2 True [ getStaticRawPCLTs inner_cfg (undefined :: PCSI2Text_Error) , getStaticRawPCLTs inner_cfg (undefined :: SDL_DeterminationFailure) ]-- i wish i knew an easy way how to achieve a smaller code of this by using a "map (getStaticRawPCLTs inner_cfg) [...]" function