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

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

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

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

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

Referenced by booster::locale::basic_message< char_type >::operator string_type(), booster::locale::basic_message< char_type >::str(), and booster::locale::basic_format< CharType >::write().

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

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

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<<(), booster::locale::basic_message< char_type >::str(), and booster::locale::basic_message< char_type >::write().