CppCMS
Modules | Namespaces | Classes | Typedefs | Functions
Message Formatting (translation)

Modules

 I/O Stream manipulators
 

Namespaces

 booster::locale::gnu_gettext
 This namespace holds classes that provide GNU Gettext message catalogs support.
 
 booster::locale::as
 This namespace includes all manipulators that can be used on IO streams.
 

Classes

class  booster::locale::message_format< CharType >
 This facet provides message formatting abilities. More...
 
class  booster::locale::basic_message< CharType >
 This class represents a message that can be converted to a specific locale message. More...
 

Typedefs

typedef CharType booster::locale::message_format< CharType >::char_type
 
typedef std::basic_string< CharType > booster::locale::message_format< CharType >::string_type
 
typedef CharType booster::locale::basic_message< CharType >::char_type
 The character this message object is used with.
 
typedef std::basic_string< char_type > booster::locale::basic_message< CharType >::string_type
 The string type this object can be used with.
 
typedef message_format< char_type > booster::locale::basic_message< CharType >::facet_type
 The type of the facet the messages are fetched with.
 
typedef basic_message< char > booster::locale::message
 
typedef basic_message< wchar_t > booster::locale::wmessage
 

Functions

 booster::locale::message_format< CharType >::message_format (size_t refs=0)
 
virtual char_type const * booster::locale::message_format< CharType >::get (int domain_id, char_type const *context, char_type const *id) const =0
 
virtual char_type const * booster::locale::message_format< CharType >::get (int domain_id, char_type const *context, char_type const *single_id, int n) const =0
 
virtual int booster::locale::message_format< CharType >::domain (std::string const &domain) const =0
 
virtual char_type const * booster::locale::message_format< CharType >::convert (char_type const *msg, string_type &buffer) const =0
 
 booster::locale::basic_message< CharType >::basic_message ()
 
 booster::locale::basic_message< CharType >::basic_message (char_type const *id)
 
 booster::locale::basic_message< CharType >::basic_message (char_type const *single, char_type const *plural, int n)
 
 booster::locale::basic_message< CharType >::basic_message (char_type const *context, char_type const *id)
 
 booster::locale::basic_message< CharType >::basic_message (char_type const *context, char_type const *single, char_type const *plural, int n)
 
 booster::locale::basic_message< CharType >::basic_message (string_type const &id)
 
 booster::locale::basic_message< CharType >::basic_message (string_type const &single, string_type const &plural, int number)
 
 booster::locale::basic_message< CharType >::basic_message (string_type const &context, string_type const &id)
 
 booster::locale::basic_message< CharType >::basic_message (string_type const &context, string_type const &single, string_type const &plural, int number)
 
 booster::locale::basic_message< CharType >::basic_message (basic_message const &other)
 
basic_message const & booster::locale::basic_message< CharType >::operator= (basic_message const &other)
 
void booster::locale::basic_message< CharType >::swap (basic_message &other)
 
 booster::locale::basic_message< CharType >::operator string_type () const
 
string_type booster::locale::basic_message< CharType >::str () const
 
string_type booster::locale::basic_message< CharType >::str (std::locale const &locale) const
 
string_type booster::locale::basic_message< CharType >::str (std::locale const &locale, std::string const &domain_id) const
 
string_type booster::locale::basic_message< CharType >::str (std::string const &domain_id) const
 
string_type booster::locale::basic_message< CharType >::str (std::locale const &loc, int id) const
 
void booster::locale::basic_message< CharType >::write (std::basic_ostream< char_type > &out) const
 
template<typename CharType >
std::basic_ostream< CharType > & booster::locale::operator<< (std::basic_ostream< CharType > &out, basic_message< CharType > const &msg)
 

Indirect message translation function family

template<typename CharType >
basic_message< CharType > booster::locale::translate (CharType const *msg)
 Translate a message, msg is not copied.
 
template<typename CharType >
basic_message< CharType > booster::locale::translate (CharType const *context, CharType const *msg)
 Translate a message in context, msg and context are not copied.
 
template<typename CharType >
basic_message< CharType > booster::locale::translate (CharType const *single, CharType const *plural, int n)
 Translate a plural message form, single and plural are not copied.
 
template<typename CharType >
basic_message< CharType > booster::locale::translate (CharType const *context, CharType const *single, CharType const *plural, int n)
 Translate a plural message from in constext, context, single and plural are not copied.
 
template<typename CharType >
basic_message< CharType > booster::locale::translate (std::basic_string< CharType > const &msg)
 Translate a message, msg is copied.
 
template<typename CharType >
basic_message< CharType > booster::locale::translate (std::basic_string< CharType > const &context, std::basic_string< CharType > const &msg)
 Translate a message in context,context and msg is copied.
 
template<typename CharType >
basic_message< CharType > booster::locale::translate (std::basic_string< CharType > const &context, std::basic_string< CharType > const &single, std::basic_string< CharType > const &plural, int n)
 Translate a plural message form in constext, context, single and plural are copied.
 
template<typename CharType >
basic_message< CharType > booster::locale::translate (std::basic_string< CharType > const &single, std::basic_string< CharType > const &plural, int n)
 Translate a plural message form, single and plural are copied.
 

Direct message translation functions family

template<typename CharType >
std::basic_string< CharType > booster::locale::gettext (CharType const *id, std::locale const &loc=std::locale())
 
template<typename CharType >
std::basic_string< CharType > booster::locale::ngettext (CharType const *s, CharType const *p, int n, std::locale const &loc=std::locale())
 
template<typename CharType >
std::basic_string< CharType > booster::locale::dgettext (char const *domain, CharType const *id, std::locale const &loc=std::locale())
 
template<typename CharType >
std::basic_string< CharType > booster::locale::dngettext (char const *domain, CharType const *s, CharType const *p, int n, std::locale const &loc=std::locale())
 
template<typename CharType >
std::basic_string< CharType > booster::locale::pgettext (CharType const *context, CharType const *id, std::locale const &loc=std::locale())
 
template<typename CharType >
std::basic_string< CharType > booster::locale::npgettext (CharType const *context, CharType const *s, CharType const *p, int n, std::locale const &loc=std::locale())
 
template<typename CharType >
std::basic_string< CharType > booster::locale::dpgettext (char const *domain, CharType const *context, CharType const *id, std::locale const &loc=std::locale())
 
template<typename CharType >
std::basic_string< CharType > booster::locale::dnpgettext (char const *domain, CharType const *context, CharType const *s, CharType const *p, int n, std::locale const &loc=std::locale())
 

Detailed Description

This module provides message translation functionality, i.e. allow your application to speak native language

Typedef Documentation

template<typename CharType>
typedef CharType booster::locale::message_format< CharType >::char_type

Character type

typedef basic_message<char> booster::locale::message

Convenience typedef for char

template<typename CharType>
typedef std::basic_string<CharType> booster::locale::message_format< CharType >::string_type

String type

typedef basic_message<wchar_t> booster::locale::wmessage

Convenience typedef for wchar_t

Function Documentation

template<typename CharType>
booster::locale::basic_message< CharType >::basic_message ( )
inline

Create default empty message

template<typename CharType>
booster::locale::basic_message< CharType >::basic_message ( char_type const *  id)
inlineexplicit

Create a simple message from 0 terminated string. The string should exist until the message is destroyed. Generally useful with static constant strings

template<typename CharType>
booster::locale::basic_message< CharType >::basic_message ( char_type const *  single,
char_type const *  plural,
int  n 
)
inlineexplicit

Create a simple plural form message from 0 terminated strings. The strings should exist until the message is destroyed. Generally useful with static constant strings.

n is the number, single and plural are singular and plural forms of the message

template<typename CharType>
booster::locale::basic_message< CharType >::basic_message ( char_type const *  context,
char_type const *  id 
)
inlineexplicit

Create a simple message from 0 terminated strings, with context information. The string should exist until the message is destroyed. Generally useful with static constant strings

template<typename CharType>
booster::locale::basic_message< CharType >::basic_message ( char_type const *  context,
char_type const *  single,
char_type const *  plural,
int  n 
)
inlineexplicit

Create a simple plural form message from 0 terminated strings, with context. The strings should exist until the message is destroyed. Generally useful with static constant strings.

n is the number, single and plural are singular and plural forms of the message

template<typename CharType>
booster::locale::basic_message< CharType >::basic_message ( string_type const &  id)
inlineexplicit

Create a simple message from a string.

template<typename CharType>
booster::locale::basic_message< CharType >::basic_message ( string_type const &  single,
string_type const &  plural,
int  number 
)
inlineexplicit

Create a simple plural form message from strings.

n is the number, single and plural are single and plural forms of the message

template<typename CharType>
booster::locale::basic_message< CharType >::basic_message ( string_type const &  context,
string_type const &  id 
)
inlineexplicit

Create a simple message from a string with context.

template<typename CharType>
booster::locale::basic_message< CharType >::basic_message ( string_type const &  context,
string_type const &  single,
string_type const &  plural,
int  number 
)
inlineexplicit

Create a simple plural form message from strings.

n is the number, single and plural are single and plural forms of the message

template<typename CharType>
booster::locale::basic_message< CharType >::basic_message ( basic_message< CharType > const &  other)
inline

Copy an object

template<typename CharType>
virtual char_type const* booster::locale::message_format< CharType >::convert ( char_type const *  msg,
string_type buffer 
) const
pure virtual

Convert the string msg to target locale's encoding. If msg is already in target encoding it would be returned otherwise the converted string is stored in temporary buffer and buffer.c_str() is returned.

Note: for char_type that is char16_t, char32_t and wchar_t it is no-op, returns msg

Referenced by booster::locale::basic_message< char_type >::write().

template<typename CharType >
std::basic_string<CharType> booster::locale::dgettext ( char const *  domain,
CharType const *  id,
std::locale const &  loc = std::locale() 
)

Translate message id according to locale loc in domain domain

template<typename CharType >
std::basic_string<CharType> booster::locale::dngettext ( char const *  domain,
CharType const *  s,
CharType const *  p,
int  n,
std::locale const &  loc = std::locale() 
)

Translate plural form according to locale loc in domain domain

template<typename CharType >
std::basic_string<CharType> booster::locale::dnpgettext ( char const *  domain,
CharType const *  context,
CharType const *  s,
CharType const *  p,
int  n,
std::locale const &  loc = std::locale() 
)

Translate plural form according to locale loc in domain domain in context context

References booster::locale::as::domain(), booster::locale::ios_info::domain_id(), and booster::locale::ios_info::get().

template<typename CharType>
virtual int booster::locale::message_format< CharType >::domain ( std::string const &  domain) const
pure virtual

Convert a string that defines domain to the integer id used by get functions

template<typename CharType >
std::basic_string<CharType> booster::locale::dpgettext ( char const *  domain,
CharType const *  context,
CharType const *  id,
std::locale const &  loc = std::locale() 
)

Translate message id according to locale loc in domain domain in context context

template<typename CharType>
virtual char_type const* booster::locale::message_format< CharType >::get ( int  domain_id,
char_type const *  context,
char_type const *  id 
) const
pure virtual

This function returns a pointer to the string for a message defined by a context and identification string id. Both create a single key for message lookup in a domain defined by domain_id.

If context is NULL it is not considered to be a part of the key

If a translated string is found, it is returned, otherwise NULL is returned

Referenced by booster::locale::basic_message< char_type >::write().

template<typename CharType>
virtual char_type const* booster::locale::message_format< CharType >::get ( int  domain_id,
char_type const *  context,
char_type const *  single_id,
int  n 
) const
pure virtual

This function returns a pointer to the string for a plural message defined by a context and identification string single_id.

If context is NULL it is not considered to be a part of the key

Both create a single key for message lookup in a domain defined domain_id. n is used to pick the correct translation string for a specific number.

If a translated string is found, it is returned, otherwise NULL is returned

template<typename CharType >
std::basic_string<CharType> booster::locale::gettext ( CharType const *  id,
std::locale const &  loc = std::locale() 
)

Translate message id according to locale loc

template<typename CharType>
booster::locale::message_format< CharType >::message_format ( size_t  refs = 0)
inline

Default constructor

References booster::locale::as::domain().

template<typename CharType >
std::basic_string<CharType> booster::locale::ngettext ( CharType const *  s,
CharType const *  p,
int  n,
std::locale const &  loc = std::locale() 
)

Translate plural form according to locale loc

template<typename CharType >
std::basic_string<CharType> booster::locale::npgettext ( CharType const *  context,
CharType const *  s,
CharType const *  p,
int  n,
std::locale const &  loc = std::locale() 
)

Translate plural form according to locale loc in context context

template<typename CharType>
booster::locale::basic_message< CharType >::operator string_type ( ) const
inline

Message class can be explicitly converted to string class

template<typename CharType >
std::basic_ostream<CharType>& booster::locale::operator<< ( std::basic_ostream< CharType > &  out,
basic_message< CharType > const &  msg 
)

Translate message msg and write it to stream

References booster::locale::basic_message< CharType >::write().

template<typename CharType>
basic_message const& booster::locale::basic_message< CharType >::operator= ( basic_message< CharType > const &  other)
inline

Assign other message object to this one

template<typename CharType >
std::basic_string<CharType> booster::locale::pgettext ( CharType const *  context,
CharType const *  id,
std::locale const &  loc = std::locale() 
)

Translate message id according to locale loc in context context

template<typename CharType>
string_type booster::locale::basic_message< CharType >::str ( ) const
inline

Translate message to a string in the default global locale, using default domain

template<typename CharType>
string_type booster::locale::basic_message< CharType >::str ( std::locale const &  locale) const
inline

Translate message to a string in the locale locale, using default domain

template<typename CharType>
string_type booster::locale::basic_message< CharType >::str ( std::locale const &  locale,
std::string const &  domain_id 
) const
inline

Translate message to a string using locale locale and message domain domain_id

template<typename CharType>
string_type booster::locale::basic_message< CharType >::str ( std::string const &  domain_id) const
inline

Translate message to a string using the default locale and message domain domain_id

template<typename CharType>
string_type booster::locale::basic_message< CharType >::str ( std::locale const &  loc,
int  id 
) const
inline

Translate message to a string using locale loc and message domain index id

template<typename CharType>
void booster::locale::basic_message< CharType >::swap ( basic_message< CharType > &  other)
inline

Swap two message objects

template<typename CharType>
void booster::locale::basic_message< CharType >::write ( std::basic_ostream< char_type > &  out) const
inline

Translate message and write to stream out, using imbued locale and domain set to the stream

Referenced by booster::locale::operator<<().