diff --git a/src/hardcopy.c b/src/hardcopy.c
index da64e1c..190ca99 100644
--- a/src/hardcopy.c
+++ b/src/hardcopy.c
@@ -1405,7 +1405,7 @@
 	    && fwrite(buffer, sizeof(char_u), bytes, prt_ps_fd)
 							     != (size_t)bytes)
     {
-	emsg(_("E455: Error writing to PostScript output file"));
+	emsg(_(e_error_writing_to_postscript_output_file));
 	prt_file_error = TRUE;
     }
 }
@@ -1849,7 +1849,7 @@
 					    PRT_FILE_BUFFER_LEN, fd_resource);
     if (ferror(fd_resource))
     {
-	semsg(_("E457: Can't read PostScript resource file \"%s\""),
+	semsg(_(e_cant_read_postscript_resource_file_str),
 		resource->filename);
 	fclose(fd_resource);
 	return FALSE;
@@ -2675,7 +2675,7 @@
     fd_resource = mch_fopen((char *)resource->filename, READBIN);
     if (fd_resource == NULL)
     {
-	semsg(_("E456: Can't open file \"%s\""), resource->filename);
+	semsg(_(e_cant_open_file_str_2), resource->filename);
 	return FALSE;
     }
     prt_dsc_resources("BeginResource", prt_resource_types[resource->type],
@@ -2689,7 +2689,7 @@
 			   sizeof(resource_buffer), fd_resource);
 	if (ferror(fd_resource))
 	{
-	    semsg(_("E457: Can't read PostScript resource file \"%s\""),
+	    semsg(_(e_cant_read_postscript_resource_file_str),
 							    resource->filename);
 	    fclose(fd_resource);
 	    return FALSE;
@@ -2805,7 +2805,7 @@
     // Search for external resources VIM supplies
     if (!prt_find_resource("prolog", res_prolog))
     {
-	emsg(_("E456: Can't find PostScript resource file \"prolog.ps\""));
+	semsg(_(e_cant_find_postscript_resource_file_str_ps), "prolog");
 	goto theend;
     }
     if (!prt_open_resource(res_prolog))
@@ -2817,7 +2817,7 @@
 	// Look for required version of multi-byte printing procset
 	if (!prt_find_resource("cidfont", res_cidfont))
 	{
-	    emsg(_("E456: Can't find PostScript resource file \"cidfont.ps\""));
+	    semsg(_(e_cant_find_postscript_resource_file_str_ps), "cidfont");
 	    goto theend;
 	}
 	if (!prt_open_resource(res_cidfont))
@@ -2849,7 +2849,7 @@
 		p_encoding = (char_u *)"latin1";
 		if (!prt_find_resource((char *)p_encoding, res_encoding))
 		{
-		    semsg(_("E456: Can't find PostScript resource file \"%s.ps\""),
+		    semsg(_(e_cant_find_postscript_resource_file_str_ps),
 			    p_encoding);
 		    goto theend;
 		}
@@ -2870,7 +2870,7 @@
 	    // Include ASCII range encoding vector
 	    if (!prt_find_resource(prt_ascii_encoding, res_encoding))
 	    {
-		semsg(_("E456: Can't find PostScript resource file \"%s.ps\""),
+		semsg(_(e_cant_find_postscript_resource_file_str_ps),
 							  prt_ascii_encoding);
 		goto theend;
 	    }
@@ -2899,8 +2899,7 @@
 	// Find user supplied CMap
 	if (!prt_find_resource(prt_cmap, res_cmap))
 	{
-	    semsg(_("E456: Can't find PostScript resource file \"%s.ps\""),
-								    prt_cmap);
+	    semsg(_(e_cant_find_postscript_resource_file_str_ps), prt_cmap);
 	    goto theend;
 	}
 	if (!prt_open_resource(res_cmap))
