(root)/
glibc-2.38/
include/
libintl.h
       1  #ifndef _LIBINTL_H
       2  #include <intl/libintl.h>
       3  
       4  # ifndef _ISOMAC
       5  
       6  #include <locale.h>
       7  
       8  /* Now define the internal interfaces.  */
       9  extern char *__gettext (const char *__msgid)
      10       __attribute_format_arg__ (1);
      11  extern char *__dgettext (const char *__domainname,
      12  			 const char *__msgid)
      13       __attribute_format_arg__ (2);
      14  extern char *__dcgettext (const char *__domainname,
      15  			  const char *__msgid, int __category)
      16       __attribute_format_arg__ (2);
      17  libc_hidden_proto (__dcgettext)
      18  
      19  extern char *__ngettext (const char *__msgid1, const char *__msgid2,
      20  			 unsigned long int __n)
      21       __attribute_format_arg__ (1) __attribute_format_arg__ (2);
      22  extern char *__dngettext (const char *__domainname,
      23  			  const char *__msgid1, const char *__msgid2,
      24  			  unsigned long int __n)
      25       __attribute_format_arg__ (2) __attribute_format_arg__ (3);
      26  extern char *__dcngettext (const char *__domainname,
      27  			   const char *__msgid1, const char *__msgid2,
      28  			   unsigned long int __n, int __category)
      29       __attribute_format_arg__ (2) __attribute_format_arg__ (3);
      30  
      31  extern char *__textdomain (const char *__domainname);
      32  extern char *__bindtextdomain (const char *__domainname,
      33  			       const char *__dirname);
      34  extern char *__bind_textdomain_codeset (const char *__domainname,
      35  					const char *__codeset);
      36  
      37  extern const char _libc_intl_domainname[];
      38  libc_hidden_proto (_libc_intl_domainname)
      39  
      40  /* _ marks its argument, a string literal, for translation, and
      41     performs translation at run time if the LC_MESSAGES locale category
      42     has been set.  The MSGID argument is extracted, added to the
      43     translation database, and eventually submitted to the translation
      44     team for processing.  New translations are periodically
      45     incorporated into the glibc source tree as part of translation
      46     updates.  */
      47  # undef _
      48  # define _(msgid) __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES)
      49  
      50  /* N_ marks its argument, a string literal, for translation, so that
      51     it is extracted and added to the translation database (similar to
      52     the _ macro above).  It does not translate the string at run time.
      53     The first, primary use case for N_ is a context in which a string
      54     literal is required, such as an initializer.  Translation will
      55     happen later, for example using the __gettext function.
      56  
      57     The second, historic, use case involves strings which may be
      58     translated in a future version of the library, but cannot be
      59     translated in current releases due to some technical limitation
      60     (e.g., gettext not being available in the dynamic loader).  No
      61     translation at run time happens in such cases.  In the future, this
      62     historic usage of N_ may become deprecated.  Strings which are not
      63     translated create unnecessary work for the translation team.  We
      64     continue to use N_ because it helps mark translatable strings.  */
      65  # undef N_
      66  # define N_(msgid)	msgid
      67  
      68  # endif /* !_ISOMAC */
      69  #endif