/* libsizzle/nls.c - national language support
 
  Copyright (C) 2000 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
 
  This is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2, or (at your option)
  any later version.
  
  This software is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  
  You should have received a copy of the GNU General Public License
  along with this package; see the file COPYING.  If not, write to
  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

#if HAVE_CONFIG_H
# include <config.h>
#endif 

#if ENABLE_NLS
# include <libintl.h>
# define _(String) gettext(String)
#else
# define _(String) (String)
#endif

#include "nls.h"

/* These are the (localized) error messages which are used in every
   parameter fetch and parameter verification macro.  They are
   collected in variables to reduce memory footprint.  */
char * zzz_too_few_arguments;
char * zzz_too_many_arguments;
char * zzz_invalid_argument_list;
char * zzz_invalid_arg_type;
char * zzz_invalid_arg_range;
char * zzz_in_call_to;
char * zzz_expected;

/* The (possibly) localized type names expected by various procedures
   and used in error messages when type checks fail.  */
char * zzz_string_type_name;
char * zzz_mutable_string_type_name;
char * zzz_number_type_name;
char * zzz_integer_type_name;
char * zzz_real_type_name;
char * zzz_list_type_name;
char * zzz_proper_list_type_name;
char * zzz_finite_list_type_name;
char * zzz_symbol_type_name;
char * zzz_pair_type_name;
char * zzz_symbol_or_list_type_name;
char * zzz_procedure_type_name;
char * zzz_boolean_or_procedure_type_name;
char * zzz_environment_type_name;
char * zzz_boolean_type_name;
char * zzz_character_type_name;
char * zzz_hash_table_type_name;
char * zzz_mutable_hash_table_type_name;
char * zzz_non_negative_integer_type_name;
char * zzz_proper_or_circular_list_type_name;
char * zzz_proper_alist_type_name;
char * zzz_non_empty_list_type_name;
char * zzz_syntax_type_name;
char * zzz_positive_number_type_name;
char * zzz_positive_integer_type_name;
char * zzz_string_or_integer_type_name;
char * zzz_fdport_type_name;
char * zzz_port_type_name;
char * zzz_list_or_vector_type_name;
char * zzz_vector_type_name;
char * zzz_promise_type_name;
char * zzz_regexp_type_name;
char * zzz_sport_type_name;
char * zzz_boolean_or_integer_type_name;
char * zzz_s8vector_type_name;
char * zzz_u8vector_type_name;
char * zzz_s16vector_type_name;
char * zzz_u16vector_type_name;
char * zzz_s32vector_type_name;
char * zzz_u32vector_type_name;
char * zzz_s64vector_type_name;
char * zzz_u64vector_type_name;
char * zzz_f32vector_type_name;
char * zzz_f64vector_type_name;
char * zzz_char_type_name;
char * zzz_macro_type_name;
char * zzz_keyword_type_name;
char * zzz_safe_filename_type_name;
char * zzz_box_type_name;

result_t
zzz_init_nls (void)
{
  zzz_too_few_arguments = _("too few arguments in call to `");
  zzz_too_many_arguments = _("too many arguments in call to `");
  zzz_invalid_argument_list = _("invalid argument list in call to `");
  zzz_invalid_arg_type = _("invalid argument in position ");
  zzz_invalid_arg_range = _("argument out of range in position ");
  zzz_in_call_to = _(" in call to `");
  zzz_expected = _(" expected");

  zzz_string_type_name = _("string");
  zzz_mutable_string_type_name = _("mutable string");
  zzz_number_type_name = _("number");
  zzz_integer_type_name = _("integer");
  zzz_real_type_name = _("real");
  zzz_list_type_name = _("list");
  zzz_proper_list_type_name = _("proper list");
  zzz_finite_list_type_name = _("finite list");
  zzz_symbol_type_name = _("symbol");
  zzz_pair_type_name = _("pair");
  zzz_symbol_or_list_type_name = _("symbol or list");
  zzz_procedure_type_name = _("procedure");
  zzz_boolean_or_procedure_type_name = _("boolean or procedure");
  zzz_environment_type_name = _("environment");
  zzz_boolean_type_name = _("boolean");
  zzz_character_type_name = _("character");
  zzz_hash_table_type_name = _("hash table");
  zzz_mutable_hash_table_type_name = _("mutable hash table");
  zzz_non_negative_integer_type_name = _("non-negative integer");
  zzz_proper_or_circular_list_type_name = _("proper or circular list");
  zzz_proper_alist_type_name = _("proper association list");
  zzz_non_empty_list_type_name = _("non-empty list");
  zzz_syntax_type_name = _("syntax");
  zzz_positive_number_type_name = _("positive number");
  zzz_positive_integer_type_name = _("positive integer");
  zzz_string_or_integer_type_name = _("string or integer");
  zzz_fdport_type_name = _("file descriptor port");
  zzz_port_type_name = _("port");
  zzz_list_or_vector_type_name = _("list or vector");
  zzz_vector_type_name = _("vector");
  zzz_promise_type_name = _("promise");
  zzz_regexp_type_name = _("regular expression");
  zzz_sport_type_name = _("string port");
  zzz_boolean_or_integer_type_name = _("boolean or integer");
  zzz_s8vector_type_name = _("uniform signed 8-bit vector");
  zzz_u8vector_type_name = _("uniform unsigned 8-bit vector");
  zzz_s16vector_type_name = _("uniform signed 16-bit vector");
  zzz_u16vector_type_name = _("uniform unsigned 16-bit vector");
  zzz_s32vector_type_name = _("uniform signed 32-bit vector");
  zzz_u32vector_type_name = _("uniform unsigned 32-bit vector");
  zzz_s64vector_type_name = _("uniform signed 64-bit vector");
  zzz_u64vector_type_name = _("uniform unsigned 64-bit vector");
  zzz_macro_type_name = _("macro");
  zzz_keyword_type_name = _("keyword");
  zzz_safe_filename_type_name = _("safe file name");
  zzz_box_type_name = _("box");

  return RESULT_SUCCESS;
}
