Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > b3596f794f22749b7e1fff1cdb77c8a2 > files > 10

ghc-shakespeare-i18n-devel-1.0.0.3-1.fc18.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Text.Shakespeare.I18N</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Text-Shakespeare-I18N.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Text-Shakespeare-I18N.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">shakespeare-i18n-1.0.0.3: A type-based approach to internationalization.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Michael Snoyman &lt;michael@snoyman.com&gt;</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Text.Shakespeare.I18N</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides a type-based system for providing translations
 for text strings.
</p><p>It is similar in purpose to gettext or Java message bundles.
</p><p>The core idea is to create simple data type where each constructor
 represents a phrase, sentence, paragraph, etc. For example:
</p><pre> data AppMessages = Hello | Goodbye
</pre><p>The <code><a href="Text-Shakespeare-I18N.html#t:RenderMessage">RenderMessage</a></code> class is used to retrieve the appropriate
 translation for a message value:
</p><pre> class RenderMessage master message where
   renderMessage :: master  -- ^ type that specifies which set of translations to use
                 -&gt; [Lang]  -- ^ acceptable languages in descending order of preference
                 -&gt; message -- ^ message to translate
                 -&gt; Text
</pre><p>Defining the translation type and providing the <code><a href="Text-Shakespeare-I18N.html#t:RenderMessage">RenderMessage</a></code>
 instance in Haskell is not very translator friendly. Instead,
 translations are generally provided in external translations
 files. Then the <code><a href="Text-Shakespeare-I18N.html#v:mkMessage">mkMessage</a></code> Template Haskell function is used to
 read the external translation files and automatically create the
 translation type and the <code>RenderMessage</code> instance.
</p><p>A full description of using this module to create translations for <code>Hamlet</code> can be found here:
</p><p><a href="http://www.yesodweb.com/book/internationalization">http://www.yesodweb.com/book/internationalization</a>
</p><p>A full description of using the module to create translations for <code>HSP</code> can be found here:
</p><p><a href="http://happstack.com/docs/crashcourse/Templates.html#hsp-i18n">http://happstack.com/docs/crashcourse/Templates.html#hsp-i18n</a>
</p><p>You can also adapt those instructions for use with other systems.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:mkMessage">mkMessage</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:FilePath">FilePath</a> -&gt; <a href="Text-Shakespeare-I18N.html#t:Lang">Lang</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:mkMessageFor">mkMessageFor</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:FilePath">FilePath</a> -&gt; <a href="Text-Shakespeare-I18N.html#t:Lang">Lang</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:mkMessageVariant">mkMessageVariant</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:FilePath">FilePath</a> -&gt; <a href="Text-Shakespeare-I18N.html#t:Lang">Lang</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><span class="keyword">class</span>  <a href="#t:RenderMessage">RenderMessage</a> master message  <span class="keyword">where</span><ul class="subs"><li><a href="#v:renderMessage">renderMessage</a> :: master -&gt; [<a href="Text-Shakespeare-I18N.html#t:Lang">Lang</a>] -&gt; message -&gt; <a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a></li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:ToMessage">ToMessage</a> a  <span class="keyword">where</span><ul class="subs"><li><a href="#v:toMessage">toMessage</a> :: a -&gt; <a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a></li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:SomeMessage">SomeMessage</a> master = <span class="keyword">forall</span> msg . <a href="Text-Shakespeare-I18N.html#t:RenderMessage">RenderMessage</a> master msg =&gt; <a href="#v:SomeMessage">SomeMessage</a> msg</li><li class="src short"><span class="keyword">type</span> <a href="#t:Lang">Lang</a> = <a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:mkMessage" class="def">mkMessage</a><a href="src/Text-Shakespeare-I18N.html#mkMessage" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>base name to use for translation type
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>subdirectory which contains the translation files
</p></td></tr><tr><td class="src">-&gt; <a href="Text-Shakespeare-I18N.html#t:Lang">Lang</a></td><td class="doc"><p>default translation language
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>generate translations from translation files
</p><p>This function will:
</p><ol><li> look in the supplied subdirectory for files ending in <code>.msg</code>
</li><li> generate a type based on the constructors found
</li><li> create a <code><a href="Text-Shakespeare-I18N.html#t:RenderMessage">RenderMessage</a></code> instance
</li></ol></div></div><div class="top"><p class="src"><a name="v:mkMessageFor" class="def">mkMessageFor</a><a href="src/Text-Shakespeare-I18N.html#mkMessageFor" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>master translation data type
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>existing type to add translations for
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>path to translation folder
</p></td></tr><tr><td class="src">-&gt; <a href="Text-Shakespeare-I18N.html#t:Lang">Lang</a></td><td class="doc"><p>default language
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>create <code><a href="Text-Shakespeare-I18N.html#t:RenderMessage">RenderMessage</a></code> instance for an existing data-type
</p></div></div><div class="top"><p class="src"><a name="v:mkMessageVariant" class="def">mkMessageVariant</a><a href="src/Text-Shakespeare-I18N.html#mkMessageVariant" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>master translation data type
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>existing type to add translations for
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>path to translation folder
</p></td></tr><tr><td class="src">-&gt; <a href="Text-Shakespeare-I18N.html#t:Lang">Lang</a></td><td class="doc"><p>default language
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>create an additional set of translations for a type created by <code><a href="Text-Shakespeare-I18N.html#v:mkMessage">mkMessage</a></code>
</p></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:RenderMessage" class="def">RenderMessage</a> master message  <span class="keyword">where</span><a href="src/Text-Shakespeare-I18N.html#RenderMessage" class="link">Source</a></p><div class="doc"><p>the <code><a href="Text-Shakespeare-I18N.html#t:RenderMessage">RenderMessage</a></code> is used to provide translations for a message types
</p><p>The <code>master</code> argument exists so that it is possible to provide more
 than one set of translations for a <code>message</code> type. This is useful
 if a library provides a default set of translations, but the user
 of the library wants to provide a different set of translations.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:renderMessage" class="def">renderMessage</a><a href="src/Text-Shakespeare-I18N.html#renderMessage" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: master</td><td class="doc"><p>type that specifies which set of translations to use
</p></td></tr><tr><td class="src">-&gt; [<a href="Text-Shakespeare-I18N.html#t:Lang">Lang</a>]</td><td class="doc"><p>acceptable languages in descending order of preference
</p></td></tr><tr><td class="src">-&gt; message</td><td class="doc"><p>message to translate
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="subs instances"><p id="control.i:RenderMessage" class="caption collapser" onclick="toggleSection('i:RenderMessage')">Instances</p><div id="section.i:RenderMessage" class="show"><table><tr><td class="src"><a href="Text-Shakespeare-I18N.html#t:RenderMessage">RenderMessage</a> master <a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Shakespeare-I18N.html#t:RenderMessage">RenderMessage</a> master (<a href="Text-Shakespeare-I18N.html#t:SomeMessage">SomeMessage</a> master)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:ToMessage" class="def">ToMessage</a> a  <span class="keyword">where</span><a href="src/Text-Shakespeare-I18N.html#ToMessage" class="link">Source</a></p><div class="doc"><p><code><a href="Text-Shakespeare-I18N.html#t:ToMessage">ToMessage</a></code> is used to convert the value inside #{ } to <code><a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a></code>
</p><p>The primary purpose of this class is to allow the value in #{ } to
 be a <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></code> or <code><a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a></code> rather than forcing it to always be <code><a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a></code>.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:toMessage" class="def">toMessage</a> :: a -&gt; <a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a><a href="src/Text-Shakespeare-I18N.html#toMessage" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:ToMessage" class="caption collapser" onclick="toggleSection('i:ToMessage')">Instances</p><div id="section.i:ToMessage" class="show"><table><tr><td class="src"><a href="Text-Shakespeare-I18N.html#t:ToMessage">ToMessage</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Shakespeare-I18N.html#t:ToMessage">ToMessage</a> <a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:SomeMessage" class="def">SomeMessage</a> master <a href="src/Text-Shakespeare-I18N.html#SomeMessage" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><span class="keyword">forall</span> msg . <a href="Text-Shakespeare-I18N.html#t:RenderMessage">RenderMessage</a> master msg =&gt; <a name="v:SomeMessage" class="def">SomeMessage</a> msg</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SomeMessage" class="caption collapser" onclick="toggleSection('i:SomeMessage')">Instances</p><div id="section.i:SomeMessage" class="show"><table><tr><td class="src"><a href="Text-Shakespeare-I18N.html#t:RenderMessage">RenderMessage</a> master (<a href="Text-Shakespeare-I18N.html#t:SomeMessage">SomeMessage</a> master)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:IsString">IsString</a> (<a href="Text-Shakespeare-I18N.html#t:SomeMessage">SomeMessage</a> master)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Lang" class="def">Lang</a> = <a href="/usr/share/doc/ghc/html/libraries/text-0.11.2.0/Data-Text-Internal.html#t:Text">Text</a><a href="src/Text-Shakespeare-I18N.html#Lang" class="link">Source</a></p><div class="doc"><p>an RFC1766 / ISO 639-1 language code (eg, <code>fr</code>, <code>en-GB</code>, etc).
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>