fluent-1.1.0: src/Language/Fluent.hs
{-# LANGUAGE Trustworthy #-}
-- |
-- Module : Language.Fluent
-- Copyright : (c) 2026 Institute for Digital Autonomy
-- License : EUPL-1.2
-- Maintainer : IDA
--
-- <https://projectfluent.org Project Fluent> is a localisation system designed
-- to unleash the entire expressive power of natural language translations.
--
-- This library provides the core Fluent translation machinery to go from parsed
-- 'Resource's to translated messages:
--
-- * the 'Locale' typeclass which supplies locale-specific operations
-- * the 'Bundle' type which combines 'Locale's with parsed 'Resources'
-- * the 'Translate' typeclass which translates messages from a 'Bundle'
--
-- This library does not provide any production-ready instances of 'Locale'.
-- Applications should instead use a dedicated backend for full localisation support, such as:
--
-- * <https://hackage.haskell.org/package/fluent-icu fluent-icu>,
-- backed by <https://hackage.haskell.org/package/text-icu text-icu>
-- * <https://hackage.haskell.org/package/miso-fluent miso-fluent>,
-- backed by the browser's @Intl@ API
--
-- For quick evaluation or basic English translation, this library includes an example
-- 'Language.Fluent.Locale.English' locale. It implements a small subset of English rules and is
-- not a replacement for a full-featured backend.
module Language.Fluent
( module Language.Fluent.AST
, module Language.Fluent.Bundle
, module Language.Fluent.Locale
, module Language.Fluent.Number
, module Language.Fluent.Parser
, module Language.Fluent.Pattern
, module Language.Fluent.Plural
, module Language.Fluent.TH
, module Language.Fluent.Time
, module Language.Fluent.Translate
, module Language.Fluent.Value
, module Language.Fluent.Width
)
where
import Language.Fluent.AST (Identifier, Resource)
import Language.Fluent.Bundle (Bundle (..), Override (..), bundle)
import Language.Fluent.Locale
import Language.Fluent.Number
( CurrencyDisplay (..)
, NumberOptions (..)
, Style (..)
, numberOptions
)
import Language.Fluent.Parser (parseResource, parseResourceLenient)
import Language.Fluent.Pattern (Pattern (..), PatternElement (..))
import Language.Fluent.Plural (Category (..), Form (..))
import Language.Fluent.TH (fluent, messageIdentifiers)
import Language.Fluent.Time (Digits (..), TimeOptions (..), timeOptions)
import Language.Fluent.Translate (Reference (..), Translate (..))
import Language.Fluent.Value (ToValue (..), Value)
import Language.Fluent.Width (Width (..))