diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 7cb6b230a7..a3829eb651 100755 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2936,7 +2936,19 @@ static void xmb_frame(void *data, video_frame_info_t *video_info) strlcpy(title_truncated, xmb->title_name, sizeof(title_truncated)); if (selection > 1) - title_truncated[25] = '\0'; + { + /* skip 25 utf8 multi-byte chars */ + char* end = title_truncated; + + for(i = 0; i < 25 && *end; i++) + { + end++; + while((*end & 0xC0) == 0x80) + end++; + } + + *end = '\0'; + } /* Title text */ xmb_draw_text(menu_disp_info, xmb, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index e323ff140e..ff952fec2d 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -605,6 +605,7 @@ static void setting_get_string_representation_uint_user_language(void *data, modes[RETRO_LANGUAGE_ESPERANTO] = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LANG_ESPERANTO); modes[RETRO_LANGUAGE_POLISH] = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LANG_POLISH); modes[RETRO_LANGUAGE_VIETNAMESE] = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LANG_VIETNAMESE); + modes[RETRO_LANGUAGE_ARABIC] = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LANG_ARABIC); strlcpy(s, modes[*msg_hash_get_uint(MSG_HASH_USER_LANGUAGE)], len); }