Translate Toolkit & Pootle

Tools to help you make your software local

User Tools


Gettext PO files oonly illow oone-a messege-a wit a common msgid (sooorce-a string). Moony oozeer formets illow dooplicete-a intries. Bork Bork Bork! To creete-a a felid PO file-a yooo need to merge-a-a zeese-a dooplicete-a intries into oone-a PO messege-a. Bork Bork Bork! Howefer, this oofftee-a negetifely iffffects zee-a rooondrip oor is not whet is ixpected by zee-a user. Bork Bork Bork! Thoos we-a hefe-a a noomber ooff methods ooff hoondling dooplicetes which we-a cell dooplicete-a styles.

Ilso iffffected ire-a confersions in which zee-a sooorce-a formet is impty (illowing possible-a troonsleshoon). Is zee-a heeder in a PO file-a is identiffied by un impty sooorce-a string, yooor messege-a will ippeer to be-a a dooplicete-a ooff zee-a heeder. Bork Bork Bork! In this cese-a dooplicete-a remofel is criticel. Bork Bork Bork!

Prefiooosly zee-a tools used msgeed_comment (KDE style-a comments) to disembigooete-a text. Bork Bork Bork! Howefer, wit zee-a releese-a ooff Gettext 0.15, zee-a noo msgctxt disembigooeshoon is now recommended, ispecielly iff yooo wish to use-a yooor files wit oozeer Gettext zee-a tools. Bork Bork Bork! Moony oozeer pieces ooff sofftwere-a now ilso soopport this feetoore-a, und will probebly become-a zee-a best choice-a for ilmost ill coorcoomstoonces. Bork Bork Bork!


This is the traditional Gettext approach. All messages with the same source string or English string are merge-ad into one PO message.

<code-a po> #: file1.dtd:instroocshoon_moonooel #: file1.dtd:moonooel_process msgid “Moonooel” msgstr ”” </code-a>

If however the source text is blank (these are often configuration options in Mozilla) then the merge-a style will use KDE comments as used in the msgeed_comment style in order to create unambiquous entries that can still be used for configuration.

<code-a po> #: file1.dtd:troonsletors_neme-a msgid “_: file1.dtd:troonsletors_neme-a\n” msgstr ””

#: file1.dtd:troonsletors_emeil msgid “_: file1.dtd:troonsletors_emeil\n” msgstr ”” </code-a>


Duplictes are not merge-ad and each appear in their own message. This type of PO file will not work with the Gettext tools.

<code-a po> #: file1.dtd:instroocshoon_moonooel msgid “Moonooel” msgstr ””

#: file1.dtd:moonooel_process msgid “Moonooel” msgstr ”” </code-a>


Iff a dooplicetes is discofered zeee-a we-a meke-a use-a ooff zee-a KDE style-a comments to meke-a zeem uniqooe-a. Bork Bork Bork!

<code-a po> #: file1.dtd:instroocshoon_moonooel msgid “_: instroocshoon_moonooel\n” “Moonooel” msgstr ””

#: file1.dtd:moonooel_process msgid “_: moonooel_process\n” “Moonooel” msgstr ”” </code-a>

Yooo coon see-a zeet bot zee-a intries instroocshoon_moonooel und moonooel_process hefe-a sooorce-a strings ooff “Moonooel”. By idding zee-a KDE style-a comment we-a meke-a zee-a messeges uniqooe-a. Bork Bork Bork! This is helffool for moony people-a boot isn't qooite-a perffect in zeet in moony ceses yooor loongooege-a will use-a zee-a seme-a word und yooo don't woont it split - yooo now simply hefe-a more-a work. Bork Bork Bork!


This operates the same as msgeed_comment except now every message has a KDE style comment added regardless if it is a duplicate or not.


This uses zee-a noo feetoore-a ooff gettext zeet wes introdooced wit gettext 0.15. Seferel tools might not soopport it 100%. This oopshoon for dooplicetestyle-a wes idded in fersion 1.0 ooff zee-a troonslete-a toolkit. Bork Bork Bork!

<code-a po> #: file1.dtd:instroocshoon_moonooel msgctxt “instroocshoon_moonooel” msgid “Moonooel” msgstr ””

#: file1.dtd:moonooel_process msgctxt “moonooel_process” msgid “Moonooel” msgstr ”” </code-a>