diff options
Diffstat (limited to 'src/gtrans/gtrans.h')
-rw-r--r-- | src/gtrans/gtrans.h | 55 |
1 files changed, 51 insertions, 4 deletions
diff --git a/src/gtrans/gtrans.h b/src/gtrans/gtrans.h index f09d90e1..da3cae5e 100644 --- a/src/gtrans/gtrans.h +++ b/src/gtrans/gtrans.h @@ -10,7 +10,7 @@ * * @addtogroup GTRANS * - * @brief Module to allow changing the language of an application dynamically during run-time. + * @brief Module that allows changing the language of an application dynamically during run-time. * * @{ */ @@ -22,18 +22,66 @@ #if GFX_USE_GTRANS || defined(__DOXYGEN__) +/** + * @struct transTable + * @brief A table containing translated strings. + */ typedef struct transTable { - unsigned numEntries; - const char** strings; + unsigned numEntries; /**< The number of strings that this table contains */ + const char** strings; /**< The translated strings */ } transTable; #ifdef __cplusplus extern "C" { #endif +/** + * @brief A wrapper macro to make writing and reading translatable applications easier. + */ +#define gt(str) gtransString(str) + +/** + * @brief Get the string of the current language specified by the string of the base language. + * + * @details This function will return the string of the current language that corresponds to + * the specified string in the base language. + * @details This function uses strcmp() internally to compare strings. + * + * @param[in] string The string to translate. + * + * @return The corresponding string of the current language or the string passed as a parameter if it doesn't exist. + */ const char* gtransString(const char* string); + +/** + * @brief Get the string at the specified index position of the current language. + * + * @details Getting translation strings is a lot faster using the index as an accessor rather + * than the string in the base language. + * + * @param[in] index The index of the string in the current language translation table. + * + * @return The string at the given index of the current language or 0 if it doesn't exist. + */ const char* gtransIndex(unsigned index); + +/** + * @brief Set the base language. + * + * @details A translatable application needs to have a base language. All translations will + * be relative to this base language. + * + * @param[in] translation The translation table + */ void gtransSetBaseLanguage(const transTable* const translation); + +/** + * @brief Set the current language. + * + * @details All translations will refer to the current language set by calling this function. + * + * @param[in] translation The translation table + */ void gtransSetLanguage(const transTable* const translation); #ifdef __cplusplus @@ -44,4 +92,3 @@ void gtransSetLanguage(const transTable* const translation); #endif /* _TRANS_H */ /** @} */ - |