File: gettext.info, Node: PO File Format Evolution, Prev: More Details, Up: PO Files 3.7 Evolution of the PO File Format =================================== It is planned that after 2027-01-01, entries in PO files support additional workflow flags and also custom sticky flags. Additional workflow flags are useful to support workflows with other steps than translation proper, such as pretranslation (based on translation memory or done through AI) or review or approval by a different person than the translator. Custom sticky flags are useful for projects which have extra capabilities in their tooling, such as project specific checks on the translations. In order to support both reliably, the PO file format is being extended in two steps. Effective *now (June 2025)*, the character sequence ‘#=’ at the beginning of a line introduces a line of flags, like the characters ‘#,’ already do. All applications that _read_ (consume) PO files are encouraged to support ‘#=’ as an alternative to ‘#,’. All applications that _modify_ (read, modify, then write) PO files should • when not changing the flags: • either keep the ‘#,’ line unchanged and the ‘#=’ line unchanged, • or emit all flags in a ‘#,’ line and no ‘#=’ line at all. • when adding flags: add these flags in the ‘#,’ line (*not* in the ‘#=’ line), • when removing flags that were specified in the ‘#=’ line: • either remove the flag from the ‘#=’ line, emitting a ‘#=’ line with fewer flags, • or emit all flags in a ‘#,’ line and no ‘#=’ line at all. *On 2027-01-01*, the PO file format will be revised again: it will be decided that either ‘#,’ should be followed by workflow flags, and ‘#=’ should be followed by sticky flags, or the other way around: ‘#=’ should be followed by workflow flags, and ‘#,’ should be followed by sticky flags. From that moment on, applications that _write_ (produce) PO files are • allowed to emit ‘#=’ lines, • allowed to emit custom sticky flags. And applications that _read and write_ PO files are • required to keep unknown sticky flags in place, i.e. not drop them.
