xgettext 命令详解

| 选择喜欢的代码风格  

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

xgettext 命令安装:


-bash/zsh: xgettext: command not found

# Windows (WSL2)
sudo apt-get update sudo apt-get install gettext

# Debian
apt-get install gettext

# Ubuntu
apt-get install gettext

# Alpine
apk add gettext

# Arch Linux
pacman -S gettext

# Kali Linux
apt-get install gettext

# CentOS
yum install gettext

# Fedora
dnf install gettext

# OS X
brew install gettext

# Raspbian
apt-get install gettext

# Dockerfile
dockerfile.run/xgettext

# Docker
docker run cmd.cat/xgettext xgettext

xgettext 命令补充说明:


xgettext 命令,是一个用于提取源代码中的文本字符串并生成翻译文件的工具。 它通常与 gettext 一起使用。 使用 xgettext 的基本步骤一般是: 在源代码中标记需要翻译的文本字符串,使用 gettext 函数或宏来标记这些字符串。 如:

printf(gettext("Hello, world!"));

运行 xgettext 命令来提取标记的文本字符串并生成一个 .po 文件。

xgettext 命令语法:


xgettext [OPTION] [INPUTFILE]...

xgettext 命令选项:


Input file location:
  INPUTFILE ...               input files
  -f, --files-from=FILE       get list of input files from FILE
  -D, --directory=DIRECTORY   add DIRECTORY to list for input files search
If input file is -, standard input is read.

Output file location:
  -d, --default-domain=NAME   use NAME.po for output (instead of messages.po)
  -o, --output=FILE           write output to specified file
  -p, --output-dir=DIR        output files will be placed in directory DIR
If output file is -, output is written to standard output.

Choice of input file language:
  -L, --language=NAME         recognise the specified language
                                (C, C++, ObjectiveC, PO, Shell, Python, Lisp,
                                EmacsLisp, librep, Scheme, Smalltalk, Java,
                                JavaProperties, C#, awk, YCP, Tcl, Perl, PHP,
                                GCC-source, NXStringTable, RST, Glade, Lua,
                                JavaScript, Vala, Desktop)
  -C, --c++                   shorthand for --language=C++
By default the language is guessed depending on the input file name extension.

Input file interpretation:
      --from-code=NAME        encoding of input files
                                (except for Python, Tcl, Glade)
By default the input files are assumed to be in ASCII.

Operation mode:
  -j, --join-existing         join messages with existing file
  -x, --exclude-file=FILE.po  entries from FILE.po are not extracted
  -cTAG, --add-comments=TAG   place comment blocks starting with TAG and
                                preceding keyword lines in output file
  -c, --add-comments          place all comment blocks preceding keyword lines
                                in output file
      --check=NAME            perform syntax check on messages
                                (ellipsis-unicode, space-ellipsis,
                                 quote-unicode, bullet-unicode)
      --sentence-end=TYPE     type describing the end of sentence
                                (single-space, which is the default, 
                                 or double-space)

Language specific options:
  -a, --extract-all           extract all strings
                                (only languages C, C++, ObjectiveC, Shell,
                                Python, Lisp, EmacsLisp, librep, Scheme, Java,
                                C#, awk, Tcl, Perl, PHP, GCC-source, Glade,
                                Lua, JavaScript, Vala)
  -kWORD, --keyword=WORD      look for WORD as an additional keyword
  -k, --keyword               do not to use default keywords
                                (only languages C, C++, ObjectiveC, Shell,
                                Python, Lisp, EmacsLisp, librep, Scheme, Java,
                                C#, awk, Tcl, Perl, PHP, GCC-source, Glade,
                                Lua, JavaScript, Vala, Desktop)
      --flag=WORD:ARG:FLAG    additional flag for strings inside the argument
                              number ARG of keyword WORD
                                (only languages C, C++, ObjectiveC, Shell,
                                Python, Lisp, EmacsLisp, librep, Scheme, Java,
                                C#, awk, YCP, Tcl, Perl, PHP, GCC-source,
                                Lua, JavaScript, Vala)
  -T, --trigraphs             understand ANSI C trigraphs for input
                                (only languages C, C++, ObjectiveC)
      --its=FILE              apply ITS rules from FILE
                                (only XML based languages)
      --qt                    recognize Qt format strings
                                (only language C++)
      --kde                   recognize KDE 4 format strings
                                (only language C++)
      --boost                 recognize Boost format strings
                                (only language C++)
      --debug                 more detailed formatstring recognition result

Output details:
      --color                 use colors and other text attributes always
      --color=WHEN            use colors and other text attributes if WHEN.
                              WHEN may be 'always', 'never', 'auto', or 'html'.
      --style=STYLEFILE       specify CSS style rule file for --color
  -e, --no-escape             do not use C escapes in output (default)
  -E, --escape                use C escapes in output, no extended chars
      --force-po              write PO file even if empty
  -i, --indent                write the .po file using indented style
      --no-location           do not write '#: filename:line' lines
  -n, --add-location          generate '#: filename:line' lines (default)
      --strict                write out strict Uniforum conforming .po file
      --properties-output     write out a Java .properties file
      --stringtable-output    write out a NeXTstep/GNUstep .strings file
      --itstool               write out itstool comments
  -w, --width=NUMBER          set output page width
      --no-wrap               do not break long message lines, longer than
                              the output page width, into several lines
  -s, --sort-output           generate sorted output
  -F, --sort-by-file          sort output by file location
      --omit-header           don't write header with 'msgid ""' entry
      --copyright-holder=STRING  set copyright holder in output
      --foreign-user          omit FSF copyright in output for foreign user
      --package-name=PACKAGE  set package name in output
      --package-version=VERSION  set package version in output
      --msgid-bugs-address=EMAIL@ADDRESS  set report address for msgid bugs
  -m[STRING], --msgstr-prefix[=STRING]  use STRING or "" as prefix for msgstr
                                values
  -M[STRING], --msgstr-suffix[=STRING]  use STRING or "" as suffix for msgstr
                                values

Informative output:
  -h, --help                  display this help and exit
  -V, --version               output version information and exit

xgettext 命令实例:


xgettext 扫描文件并将字符串输出到 messages.po

xgettext path/to/input_file

xgettext 使用不同的输出文件名:

xgettext --output path/to/output_file path/to/input_file

xgettext 将新字符串附加到现有文件::

xgettext --join-existing --output path/to/output_file path/to/input_file

xgettext 不要将包含元数据的标头添加到输出文件中:

xgettext --omit-header path/to/input_file

xgettext 扩展阅读:




xgettext 命令评论