patch 8.2.3977: error messages are spread out

Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
diff --git a/src/gui_xim.c b/src/gui_xim.c
index 4bd1a2e..28d354c 100644
--- a/src/gui_xim.c
+++ b/src/gui_xim.c
@@ -1324,15 +1324,11 @@
 					XNLineSpace, line_space,
 					NULL);
 	if (XSetICValues(xic, XNPreeditAttributes, attr_list, NULL))
-	    emsg(_("E284: Cannot set IC values"));
+	    emsg(_(e_cannot_set_ic_values));
 	XFree(attr_list);
     }
 }
 
-#  if defined(FEAT_GUI_X11)
-static char e_xim[] = N_("E285: Failed to create input context");
-#  endif
-
 #  if defined(FEAT_GUI_X11) || defined(PROTO)
 #   if defined(XtSpecificationRelease) && XtSpecificationRelease >= 6 && !defined(SUN_SYSTEM)
 #    define USE_X11R6_XIM
@@ -1483,7 +1479,7 @@
 	if (p_verbose > 0)
 	{
 	    verbose_enter();
-	    emsg(_("E286: Failed to open input method"));
+	    emsg(_(e_failed_to_open_input_method));
 	    verbose_leave();
 	}
 	return FALSE;
@@ -1496,13 +1492,13 @@
 	destroy_cb.callback = xim_destroy_cb;
 	destroy_cb.client_data = NULL;
 	if (XSetIMValues(xim, XNDestroyCallback, &destroy_cb, NULL))
-	    emsg(_("E287: Warning: Could not set destroy callback to IM"));
+	    emsg(_(e_warning_could_not_set_destroy_callback_to_im));
     }
 #  endif
 
     if (XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL) || !xim_styles)
     {
-	emsg(_("E288: input method doesn't support any style"));
+	emsg(_(e_input_method_doesnt_support_any_style));
 	XCloseIM(xim);
 	return FALSE;
     }
@@ -1561,7 +1557,7 @@
 	if (p_verbose > 0)
 	{
 	    verbose_enter();
-	    emsg(_("E289: input method doesn't support my preedit type"));
+	    emsg(_(e_input_method_doesnt_support_my_preedit_type));
 	    verbose_leave();
 	}
 	XCloseIM(xim);
@@ -1625,7 +1621,7 @@
     else
     {
 	if (!is_not_a_term())
-	    emsg(_(e_xim));
+	    emsg(_(e_failed_to_create_input_context));
 	XCloseIM(xim);
 	return FALSE;
     }