i18n
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
I18n< T, typename > Class Template Reference

Internationalization manager for a specific locale type. More...

#include <I18n.hpp>

Public Member Functions

 I18n (const I18n &)=delete
 delete Copy constructor
 
I18noperator= (const I18n &)=delete
 delete Move constructor
 
template<typename... T_Child>
std::enable_if< all_derived< T, T_Child... >::value, void >::type setSupportedLocales ()
 Register a list of supported locales using template parameter pack.
 
template<typename T_Tuple >
std::enable_if< is_tuple< T_Tuple >::value, void >::type setSupportedLocales ()
 Register supported locales using a std::tuple of types. Each type must derive from T and be default-constructible. Sets the default locale if no locale was previously selected.
 
void setDefault ()
 Sets the default locale to use if no other locale is selected.
 
bool setLocale (const std::string &code)
 Select a specific locale by code.
 
T * getLocale () const
 Get the currently selected locale instance.
 
 I18n (const I18n &)=delete
 delete Copy constructor
 
I18noperator= (const I18n &)=delete
 delete Move constructor
 
template<DerivedFrom< T >... T_Child>
void setSupportedLocales ()
 Register a list of supported locales using template parameter pack.
 
template<IsTuple T_Tuple>
void setSupportedLocales ()
 Register supported locales using a std::tuple of types.
 
void setDefault ()
 Sets the default locale to use if no other locale is selected.
 
bool setLocale (const std::string &code)
 Select a specific locale by code.
 
T * getLocale () const
 Get the currently selected locale instance.
 

Static Public Member Functions

static I18n< T > & getInstance ()
 Get the I18n singleton instance.
 
static I18n< T > & getInstance ()
 Get the I18n singleton instance.
 

Detailed Description

template<typename T, typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
class I18n< T, typename >

Internationalization manager for a specific locale type.

Handles the registration of supported locales, selection of the current locale, and retrieval of localized data at runtime. Implements a singleton pattern so there is only one instance per template type.

Template Parameters
Tis the base locale interface derived from ILocale, all supported locales must derive from

Handles the registration of supported locales, selection of the current locale, and retrieval of localized data at runtime. Implements a singleton pattern so there is only one instance per template type.

Template Parameters
TThe base locale interface type that all supported locales must derive from.

Constructor & Destructor Documentation

◆ I18n() [1/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
I18n< T, typename >::I18n ( const I18n< T, typename > &  )
delete

delete Copy constructor

◆ I18n() [2/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
I18n< T, typename >::I18n ( const I18n< T, typename > &  )
delete

delete Copy constructor

Member Function Documentation

◆ getInstance() [1/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
static I18n< T > & I18n< T, typename >::getInstance ( )
inlinestatic

Get the I18n singleton instance.

Returns
I18n<T>& Reference to the single instance.
Examples
TestCXX11.cpp, and TestCXX20.cpp.

◆ getInstance() [2/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
static I18n< T > & I18n< T, typename >::getInstance ( )
inlinestatic

Get the I18n singleton instance.

Returns
I18n<T>& Reference to the single instance.

◆ getLocale() [1/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
T * I18n< T, typename >::getLocale ( ) const
inline

Get the currently selected locale instance.

Returns
T* Pointer to the current locale. nullptr if none selected.

◆ getLocale() [2/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
T * I18n< T, typename >::getLocale ( ) const
inline

Get the currently selected locale instance.

Returns
T* Pointer to the current locale. nullptr if none selected.

◆ operator=() [1/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
I18n & I18n< T, typename >::operator= ( const I18n< T, typename > &  )
delete

delete Move constructor

◆ operator=() [2/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
I18n & I18n< T, typename >::operator= ( const I18n< T, typename > &  )
delete

delete Move constructor

◆ setDefault() [1/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
void I18n< T, typename >::setDefault ( )
inline

Sets the default locale to use if no other locale is selected.

Priority:

  1. System locale (if available)
  2. English ("en") fallback
  3. First locale accessible.

◆ setDefault() [2/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
void I18n< T, typename >::setDefault ( )
inline

Sets the default locale to use if no other locale is selected.

Priority:

  1. System locale (if available)
  2. English ("en") fallback
  3. First locale accessible.

◆ setLocale() [1/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
bool I18n< T, typename >::setLocale ( const std::string &  code)
inline

Select a specific locale by code.

Parameters
codeTwo-letter language code (e.g., "en", "fr").
Returns
true if the locale was found and selected; false otherwise.

◆ setLocale() [2/2]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
bool I18n< T, typename >::setLocale ( const std::string &  code)
inline

Select a specific locale by code.

Parameters
codeTwo-letter language code (e.g., "en", "fr").
Returns
true if the locale was found and selected; false otherwise.

◆ setSupportedLocales() [1/4]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
template<typename... T_Child>
std::enable_if< all_derived< T, T_Child... >::value, void >::type I18n< T, typename >::setSupportedLocales ( )
inline

Register a list of supported locales using template parameter pack.

  • Each type must derive from T and be default-constructible. Sets the default locale if no locale was previously selected.
    See also
    DerivedFrom
  • Template Parameters
    T_ChildVariadic list of locale types to register.
  • See also
    setSupportedLocales(T_Tuple)
    setSupportedLocale<T_Child>()

◆ setSupportedLocales() [2/4]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
template<typename T_Tuple >
std::enable_if< is_tuple< T_Tuple >::value, void >::type I18n< T, typename >::setSupportedLocales ( )
inline

Register supported locales using a std::tuple of types. Each type must derive from T and be default-constructible. Sets the default locale if no locale was previously selected.

  • Template Parameters
    T_TupleVariadic list of locale types to register.
  • See also
    setSupportedLocales(T_Tuple)
    setSupportedLocale<T_Child>()

◆ setSupportedLocales() [3/4]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
template<DerivedFrom< T >... T_Child>
void I18n< T, typename >::setSupportedLocales ( )
inline

Register a list of supported locales using template parameter pack.

Each type must derive from T and be default-constructible. Sets the default locale if no locale was previously selected.

See also
DerivedFrom
Template Parameters
T_ChildVariadic list of locale types to register.
See also
setSupportedLocales(T_Tuple)
setSupportedLocale<T_Child>()

◆ setSupportedLocales() [4/4]

template<typename T , typename = typename std::enable_if<is_derived_from<T, ILocale>::value>::type>
template<IsTuple T_Tuple>
void I18n< T, typename >::setSupportedLocales ( )
inline

Register supported locales using a std::tuple of types.

Each type must derive from T and be default-constructible. Sets the default locale if no locale was previously selected.

Template Parameters
T_ChildVariadic list of locale types to register.
See also
setSupportedLocales(T_Tuple)
setSupportedLocale<T_Child>()

The documentation for this class was generated from the following files: