---
name: "dtd2po"
section: "1"
platform: "linux"
package: "translate-toolkit"
version: "3.15.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/dtd2po"
---

# dtd2po(1)

Convert a Mozilla .dtd UTF-8 localization format to a Gettext PO localization file.

## NAME

dtd2po -  Convert a Mozilla .dtd UTF-8 localization format to a Gettext PO localization file.

## SYNOPSIS

**dtd2po** \[**--version**\] \[**-h**\|**--help**\] \[**--manpage**\] \[**--progress** *PROGRESS*\] \[**--errorlevel** *ERRORLEVEL*\] \[**-i**\|**--input**\] *INPUT* \[**-x**\|**--exclude** *EXCLUDE*\] \[**-o**\|**--output**\] *OUTPUT* \[**-t**\|**--template** *TEMPLATE*\] \[**-S**\|**--timestamp**\] \[**-P**\|**--pot**\] \[**--duplicates** *DUPLICATESTYLE*\]

## DESCRIPTION

Uses the po and dtd modules, and the dtd2po convertor class which is in this module You can convert back to .dtd using po2dtd.py.

## OPTIONS

- \--version

  show program's version number and exit

- \-h/--help

  show this help message and exit

- \--manpage

  output a manpage based on the help

- \--progress

  show progress as: dots, none, bar, names, verbose

- \--errorlevel

  show errorlevel as: none, message, exception, traceback

- \-i/--input

  read from INPUT in dtd format

- \-x/--exclude

  exclude names matching EXCLUDE from input paths

- \-o/--output

  write to OUTPUT in po, pot formats

- \-t/--template

  read from TEMPLATE in dtd format

- \-S/--timestamp

  skip conversion if the output file has newer timestamp

- \-P/--pot

  output PO Templates (.pot) rather than PO files (.po)

- \--duplicates

  what to do with duplicate strings (identical source text): merge, msgctxt (default: 'msgctxt')
