dxgettext

This will extract all texts from the specified files and save them in a file named default.po:

dxgettext usage:
dxgettext *.pas *.dfm *.dpr -r
dxgettext -b c:\source\myprogram --delphi

The following file formats are supported:

This is the help text that appears when you run the program without parameters:

dxgettext 1.1.1
dxgettext usage:
  dxgettext *.pas *.dfm *.dpr -r
  dxgettext -b c:\source\myprogram --delphi

This will extract all texts from the specified files and save them
in a file named default.po.

Options:
  --delphi              Adds the wildcards: *.pas *.inc *.rc *.dpr *.xfm *.dfm
  --kylix               Adds the wildcards: *.pas *.inc *.rc *.dpr *.xfm
  -r                    Recurse subdirectories
  -b dir                Use directory as base directory for filenames.
                        You can specify several base dirs, that will all be scanned.
  -o:msgid              Order by msgid
  -o:occ                Order by occurence (default)
  -o dir                Output directory for .po files
  -q                    Quiet: Reduces output to absolute minimum.
  --codepage nnn        Assume the specified codepage. Default is CP_ACP.
  --nowc                Assume wildcards to be part of filenames
  --ignore-constreplace Suppresses warnings about CRLF

If a filename is preceded with @, it is assumed to contain a list of
filenames or file masks.