+/* These are defined as functions here, because xgettext has trouble
+ extracting the strings out of long pre-processor defined */
+
+static void error_line_too_long()
+{
+ gedcom_error(_("Line too long, max %d characters allowed"), MAXGEDCLINELEN);
+}
+
+static void error_level_leading_zero()
+{
+ gedcom_error (_("Level number with leading zero not allowed"));
+}
+
+static void error_level_out_of_range()
+{
+ gedcom_error (_("Level number out of range [0..%d]"), MAXGEDCLEVEL);
+}
+
+static void error_level_too_high(int level_diff)
+{
+ gedcom_error (_("GEDCOM level number is %d higher than previous"),
+ level_diff);
+}
+
+static void error_tag_too_long(const char *tag)
+{
+ gedcom_error(_("Tag '%s' too long, max %d characters allowed"),
+ tag, MAXGEDCTAGLEN);
+}
+
+static void error_invalid_character(const char *str, char ch)
+{
+ gedcom_error(_("Invalid character for encoding: '%s' (0x%02x)"), str, ch);
+}
+
+static void error_pointer_too_long(const char *ptr)
+{
+ gedcom_error(_("Pointer '%s' too long, max %d characters allowed"),
+ ptr, MAXGEDCPTRLEN);
+}
+
+static void error_at_character()
+{
+ gedcom_error(_("'@' character should be written as '@@' in values"));
+}
+
+static void error_unexpected_character(const char* str, char ch)
+{
+ gedcom_error(_("Unexpected character: '%s' (0x%02x)"), str, ch);
+}
+
+#elif LEX_SECTION == 2