aboutsummaryrefslogtreecommitdiffstats
path: root/src/gtrans/gtrans.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtrans/gtrans.h')
-rw-r--r--src/gtrans/gtrans.h55
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 */
/** @} */
-