char input

Dependencies:   TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG lvgl_RB FastPWM millis

Committer:
becanromain
Date:
Fri Feb 28 00:05:30 2020 +0000
Revision:
6:21e96e439978
Parent:
1:404ee28a0b60

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kisvegabor 1:404ee28a0b60 1 #ifndef LV_I18N_H
kisvegabor 1:404ee28a0b60 2 #define LV_I18N_H
kisvegabor 1:404ee28a0b60 3
kisvegabor 1:404ee28a0b60 4 #ifdef __cplusplus
kisvegabor 1:404ee28a0b60 5 extern "C" {
kisvegabor 1:404ee28a0b60 6 #endif
kisvegabor 1:404ee28a0b60 7
kisvegabor 1:404ee28a0b60 8 #include <stdint.h>
kisvegabor 1:404ee28a0b60 9 #include <string.h>
kisvegabor 1:404ee28a0b60 10
kisvegabor 1:404ee28a0b60 11 typedef enum {
kisvegabor 1:404ee28a0b60 12 LV_I18N_PLURAL_TYPE_ZERO,
kisvegabor 1:404ee28a0b60 13 LV_I18N_PLURAL_TYPE_ONE,
kisvegabor 1:404ee28a0b60 14 LV_I18N_PLURAL_TYPE_TWO,
kisvegabor 1:404ee28a0b60 15 LV_I18N_PLURAL_TYPE_FEW,
kisvegabor 1:404ee28a0b60 16 LV_I18N_PLURAL_TYPE_MANY,
kisvegabor 1:404ee28a0b60 17 LV_I18N_PLURAL_TYPE_OTHER,
kisvegabor 1:404ee28a0b60 18 _LV_I18N_PLURAL_TYPE_NUM,
kisvegabor 1:404ee28a0b60 19 } lv_i18n_plural_type_t;
kisvegabor 1:404ee28a0b60 20
kisvegabor 1:404ee28a0b60 21 typedef struct {
kisvegabor 1:404ee28a0b60 22 const char * msg_id;
kisvegabor 1:404ee28a0b60 23 const char * translation;
kisvegabor 1:404ee28a0b60 24 } lv_i18n_phrase_t;
kisvegabor 1:404ee28a0b60 25
kisvegabor 1:404ee28a0b60 26 typedef struct {
kisvegabor 1:404ee28a0b60 27 const char * locale_name;
kisvegabor 1:404ee28a0b60 28 lv_i18n_phrase_t * singulars;
kisvegabor 1:404ee28a0b60 29 lv_i18n_phrase_t * plurals[_LV_I18N_PLURAL_TYPE_NUM];
kisvegabor 1:404ee28a0b60 30 uint8_t (*locale_plural_fn)(int32_t num);
kisvegabor 1:404ee28a0b60 31 } lv_i18n_lang_t;
kisvegabor 1:404ee28a0b60 32
kisvegabor 1:404ee28a0b60 33 // Null-terminated list of languages. First one used as default.
kisvegabor 1:404ee28a0b60 34 typedef const lv_i18n_lang_t * lv_i18n_language_pack_t;
kisvegabor 1:404ee28a0b60 35
kisvegabor 1:404ee28a0b60 36
kisvegabor 1:404ee28a0b60 37 extern const lv_i18n_language_pack_t lv_i18n_language_pack[];
kisvegabor 1:404ee28a0b60 38
kisvegabor 1:404ee28a0b60 39
kisvegabor 1:404ee28a0b60 40 /**
kisvegabor 1:404ee28a0b60 41 * Set the languages for internationalization
kisvegabor 1:404ee28a0b60 42 * @param langs pointer to the array of languages. (Last element has to be `NULL`)
kisvegabor 1:404ee28a0b60 43 */
kisvegabor 1:404ee28a0b60 44 int lv_i18n_init(const lv_i18n_language_pack_t * langs);
kisvegabor 1:404ee28a0b60 45
kisvegabor 1:404ee28a0b60 46 /**
kisvegabor 1:404ee28a0b60 47 * Change the localization (language)
kisvegabor 1:404ee28a0b60 48 * @param l_name name of the translation locale to use. E.g. "en_GB"
kisvegabor 1:404ee28a0b60 49 */
kisvegabor 1:404ee28a0b60 50 int lv_i18n_set_locale(const char * l_name);
kisvegabor 1:404ee28a0b60 51
kisvegabor 1:404ee28a0b60 52 /**
kisvegabor 1:404ee28a0b60 53 * Get the translation from a message ID
kisvegabor 1:404ee28a0b60 54 * @param msg_id message ID
kisvegabor 1:404ee28a0b60 55 * @return the translation of `msg_id` on the set local
kisvegabor 1:404ee28a0b60 56 */
kisvegabor 1:404ee28a0b60 57 const char * lv_i18n_get_text(const char * msg_id);
kisvegabor 1:404ee28a0b60 58
kisvegabor 1:404ee28a0b60 59 /**
kisvegabor 1:404ee28a0b60 60 * Get the translation from a message ID and apply the language's plural rule to get correct form
kisvegabor 1:404ee28a0b60 61 * @param msg_id message ID
kisvegabor 1:404ee28a0b60 62 * @param num an integer to select the correct plural form
kisvegabor 1:404ee28a0b60 63 * @return the translation of `msg_id` on the set local
kisvegabor 1:404ee28a0b60 64 */
kisvegabor 1:404ee28a0b60 65 const char * lv_i18n_get_text_plural(const char * msg_id, int32_t num);
kisvegabor 1:404ee28a0b60 66
kisvegabor 1:404ee28a0b60 67 /**
kisvegabor 1:404ee28a0b60 68 * Get the name of the currently used localization.
kisvegabor 1:404ee28a0b60 69 * @return name of the currently used localization. E.g. "en_GB"
kisvegabor 1:404ee28a0b60 70 */
kisvegabor 1:404ee28a0b60 71 const char * lv_i18n_get_current_locale(void);
kisvegabor 1:404ee28a0b60 72
kisvegabor 1:404ee28a0b60 73
kisvegabor 1:404ee28a0b60 74 void __lv_i18n_reset(void);
kisvegabor 1:404ee28a0b60 75
kisvegabor 1:404ee28a0b60 76
kisvegabor 1:404ee28a0b60 77 #define _(text) lv_i18n_get_text(text)
kisvegabor 1:404ee28a0b60 78 #define _p(text, num) lv_i18n_get_text_plural(text, num)
kisvegabor 1:404ee28a0b60 79
kisvegabor 1:404ee28a0b60 80
kisvegabor 1:404ee28a0b60 81 #ifdef __cplusplus
kisvegabor 1:404ee28a0b60 82 } /* extern "C" */
kisvegabor 1:404ee28a0b60 83 #endif
kisvegabor 1:404ee28a0b60 84
kisvegabor 1:404ee28a0b60 85 #endif /*LV_LANG_H*/