msgfmt(1) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

msgfmt(1)

msgfmt(1)                        User Commands                       msgfmt(1)

NAME
       msgfmt - create a message object from a message file

SYNOPSIS
       msgfmt [-D dir | --directory=dir]
            [-f | --use-fuzzy] [-g]
            [-o output-file | --output-file=output-file]
            [-s] [--strict] [-v] [--verbose] filename.po...

DESCRIPTION
       The  msgfmt  utility  creates message object files from portable object
       files (filename.po), without changing the portable object files.


       The .po file contains messages displayed to users by system commands or
       by application programs. .po files can be edited. The messages in these
       files can be rewritten in any language supported by the system.


       The xgettext(1) command can be used to create .po files from scripts or
       programs.


       msgfmt interprets data as characters according to the  current  setting
       of  the  LC_CTYPE locale category or according to the codeset specified
       in the .po file.

OPTIONS
       The following options are supported:

       -D dir                     Adds dir to the list  to  search  for  input
       -−directory=dir            files.



       -f                         Uses fuzzy entries in output. If this option
       -−use-fuzzy                is  not specified, fuzzy entries are not in‐
                                  cluded into the output.  These  options  are
                                  ignored  if  Solaris  message  catalogs  are
                                  processed.



       -g                         Directs the utility to generate the GNU-com‐
                                  patible message catalog  file.  This  option
                                  cannot be specified with the -s option.


       -o output-file             Specifies  the  output  file name as output-
       -−output=output-file       file. All domain  directives  and  duplicate
                                  msgids in the .po file are ignored.



       -s                         Directs  the utility to generate the Solaris
                                  message catalog file. This option cannot  be
                                  specified with the -g option.


       -−strict                   Directs the utility to append the suffix .mo
                                  to  the  generating message object file name
                                  if it doesn't have this suffix. This  option
                                  is  ignored  if Solaris message catalogs are
                                  processed.


       -v                         Verbose. Lists duplicate message identifiers
       -−verbose                  if  Solaris  message   catalog   files   are
                                  processed.  Message  strings  are  not rede‐
                                  fined.

                                  If   GNU-compatible   message   files    are
                                  processed, this option detects and diagnoses
                                  input  file  anomalies which might represent
                                  translation errors.  The  msgid  and  msgstr
                                  strings are studied and compared. It is con‐
                                  sidered  abnormal  if  one  string starts or
                                  ends with a newline  while  the  other  does
                                  not. Also, if the string represents a format
                                  string  used in a printf-like function, both
                                  strings should have the  same  number  of  %
                                  format  specifiers,  with matching types. If
                                  the flag c-format  appears  in  the  special
                                  comment  '#' for this entry, a check is per‐
                                  formed.



USAGE
       The format of portable object files (.po files) is defined as  follows.
       Each .po file contains one or more lines, with each line containing ei‐
       ther  a  comment  or  a statement. Comments start the line with a pound
       sign (#) and end with the newline character. All comments (except  spe‐
       cial  comments described later) and empty lines are ignored. The format
       of a statement is:

         directive     value



       Each directive starts at the beginning of the  line  and  is  separated
       from  value  by  white  space (such as one or more space or tab charac‐
       ters). value consists of one or more quoted strings separated by  white
       space.  Use  any  of  the following types of directives for the Solaris
       message file:


         domain domainname
         msgid message_identifier
         msgstr message_string



       For a GNU-compatible message file, use any of the  following  types  of
       directives:

         domain domainname
         msgid message_identifier
         msgid_plural untranslated_string_plural
         msgstr message_string
         msgstr[n] message_string



       The  behavior  of the domain directive is affected by the options used.
       See OPTIONS for the behavior when the -o or -−output-file  options  are
       specified.  If  the  -o or -−output-file options are not specified, the
       behavior of the domain directive is as follows:

           o      All msgids from the beginning of each .po file to the  first
                  domain directive are put into a default message object file.
                  The default message object file is named messages.mo, if the
                  Solaris  message catalog file format is used to generate the
                  message object file or if the -−strict option is  specified.
                  Otherwise,  the  default  message  object file is named mes‐
                  sages.


           o      When msgfmt encounters a domain  domainname directive in the
                  .po file, all following msgids until the next domain  direc‐
                  tive  are  put  into  the message object file, named domain‐
                  name.mo, if the Solaris message catalog file format is  used
                  to  generate  the message object file or if the -−strict op‐
                  tion is specified. Otherwise, the msgids are  put  into  the
                  message object file named domainname.


           o      Duplicate  msgids  are  defined in the scope of each domain.
                  That is, a msgid is considered a duplicate only if the iden‐
                  tical msgid exists in the same domain.


           o      All duplicate msgids are ignored.



       The msgid directive specifies the value of a message identifier associ‐
       ated with the directive that follows  it.  The  msgid_plural  directive
       specifies  the plural form message specified to the plural message han‐
       dling functions ngettext(),  dngettext(),  or  dcngettext().  The  mes‐
       sage_identifier  string  identifies  a  target string to be used at re‐
       trieval time. Each statement containing a msgid directive must be  fol‐
       lowed  by a statement containing a msgstr directive or msgstr[n] direc‐
       tives.


       The msgstr directive specifies the target string  associated  with  the
       message_identifier  string  declared in the immediately preceding msgid
       directive.


       The directive msgstr[n] (where n = 0, 1, 2, ...) specifies  the  target
       string  to  be  used  with  plural  form handling functions ngettext(),
       dngettext(), and dcngettext().


       Message strings can contain the escape sequences \n for newline, \t for
       tab, \v for vertical tab, \b for backspace, \r for carriage return,  \f
       for  form  feed,  \\  for backslash, \" for double quote, \a for alarm,
       \ddd for octal bit pattern, and \xDD for hexadecimal bit pattern.


       Comments for a GNU-compatible message file should be in one of the fol‐
       lowing formats (the msgfmt utility will ignore these comments when pro‐
       cessing Solaris message files):

         # translator-comments
         #. automatic-comments
         #: reference...
         #, flag



       The '#:' comments indicate the location of  the  msgid  string  in  the
       source  files in filename:line format. The '#', '#.', and '#:' comments
       are informative only and are silently ignored by  the  msgfmt  utility.
       The  '#,'  comments  require  one  or more flags separated by the comma
       character. The following flags can be specified:

       fuzzy          This flag can be inserted by the  translator.  It  shows
                      that  the  msgstr string might not be a correct transla‐
                      tion (anymore). Only the translator  can  judge  if  the
                      translation  requires further modification or is accept‐
                      able as is. Once satisfied  with  the  translation,  the
                      translator  removes  this  fuzzy  flag.  If this flag is
                      specified, the msgfmt utility will not generate the  en‐
                      try  for  the  immediately following msgid in the output
                      message catalog.


       c-format       The c-format flag indicates that  the  msgid  string  is
       no-c-format    used  as  a  format  string by printf-like functions. In
                      case the c-format flag is given for a string, the msgfmt
                      utility does some more tests to check  the  validity  of
                      the translation.




       In  the  GNU-compatible message file, the msgid entry with empty string
       ("") is called the header entry and treated specially. If  the  message
       string  for  the  header entry contains nplurals=value, the value indi‐
       cates the number of plural forms. For example, if nplurals=4, there are
       four plural forms. If nplurals is defined, the same line should contain
       plural=expression, separated by a semicolon character.  The  expression
       is  a  C language expression to determine which version of msgstr[n] is
       to be used based on the value of n, the last  argument  of  ngettext(),
       dngettext(), or dcngettext(). For example,

         nplurals=2; plural= n == 1 ? 0 : 1



       indicates that there are two plural forms in the language. msgstr[0] is
       used if n == 1, otherwise msgstr[1] is used. For another example:

         nplurals=3; plural= n == 1 ? 0 : n == 2 ? 1 : 2



       indicates  that there are three plural forms in the language. msgstr[0]
       is used if n == 1, msgstr[1] is used if n == 2, otherwise msgstr[2]  is
       used.


       If  the  header entry contains a charset=codeset string, the codeset is
       used to indicate the codeset to be used to encode the message  strings.
       If  the  output string's codeset is different from the message string's
       codeset, codeset conversion from the message string's  codeset  to  the
       output  string's  codeset will be performed upon the call of gettext(),
       dgettext(), dcgettext(), ngettext(), dngettext(), and dcngettext()  for
       the GNU-compatible message catalogs. The output string's codeset is de‐
       termined  by the current locale's codeset (the return value of nl_lang‐
       info(CODESET))  by  default,  and  can  be  changed  by  the  call   of
       bind_textdomain_codeset().

   Message catalog file format
       The msgfmt utility can generate the message object both in Solaris mes‐
       sage  catalog  file  format  and in GNU-compatible message catalog file
       format. If the -s option is specified and the input file is  a  Solaris
       .po  file,  the  msgfmt utility generates the message object in Solaris
       message catalog file format. If the -g option is specified and the  in‐
       put  file  is  a GNU .po file, the msgfmt utility generates the message
       object in GNU-compatible message catalog file format. If neither the -s
       nor -g option is specified, the msgfmt utility determines  the  message
       catalog file format as follows:

           o      If the .po file contains a valid GNU header entry (having an
                  empty  string  for  msgid), the msgfmt utility uses the GNU-
                  compatible message catalog file format.


           o      Otherwise, the msgfmt utility uses the Solaris message cata‐
                  log file format.



       If the msgfmt utility determined that the Solaris message catalog  file
       format  is  used,  as above, but found the .po file contains directives
       that are specific to the GNU-compatible message  catalog  file  format,
       such  as  msgid_plural  and msgstr[n], the msgfmt utility handles those
       directives as invalid specifications.

EXAMPLES
       Example 1 Creating message objects from message files



       In this example, module1.po and module2.po are portable message objects
       files.


         example% cat module1.po
         # default domain "messages.mo"
         msgid  "msg 1"
         msgstr "msg 1 translation"
         #
         domain "help_domain"
         msgid  "help 2"
         msgstr "help 2 translation"
         #
         domain "error_domain"
         msgid  "error 3"
         msgstr "error 3 translation"
         example% cat module2.po
         # default domain "messages.mo"
         msgid  "mesg 4"
         msgstr "mesg 4 translation"
         #
         domain "error_domain"
         msgid  "error 5"
         msgstr "error 5 translation"
         #
         domain "window_domain"
         msgid  "window 6"
         msgstr "window 6 translation"




       The following  command  will  produce  the  output  files  messages.mo,
       help_domain.mo,  and  error_domain.mo  in  Solaris message catalog file
       format:


         example% msgfmt module1.po




       The following  command  will  produce  the  output  files  messages.mo,
       help_domain.mo,  error_domain.mo,  and window_domain.mo in Solaris mes‐
       sage catalog file format:


         example% msgfmt module1.po module2.po




       The following command will produce the output file hello.mo in  Solaris
       message catalog file format:


         example% msgfmt -o hello.mo module1.po module2.po


ENVIRONMENT VARIABLES
       See  environ(7)  for  descriptions of the following environmental vari‐
       ables that affect the execution of msgfmt: LC_CTYPE,  LC_MESSAGES,  and
       NLSPATH.

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ Availabilitytext/locale _ CSIEnabled


SEE ALSO
       msgfmt(1g), xgettext(1), gettext(3C), setlocale(3C), attributes(7), en‐
       viron(7)


       gettext APIs in Internationalizing and Localizing Applications in  Ora‐
       cle Solaris

NOTES
       Installing message catalogs under the C locale is pointless, since they
       are ignored for the sake of efficiency.

HISTORY
       Support  for  the -D, -f, -g, -s, --directory, --output-file, --strict,
       --use-fuzzy, and --verbose  options,  and  for  GNU-compatible  message
       files, was added to the msgfmt command in Solaris 9.


       The  msgfmt  command, with support for the -o and -v options, was added
       in Solaris 2.0.

Oracle Solaris 11.4               25 Nov 2024                        msgfmt(1)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3