Choose between dynamic and static strings
The location of the source text determines how it should be translated. The important question is whether the text is a configurable value or a gettext message shipped with software.
Use a registered string for a dynamic value
Register text when it is stored in a setting, generated by an integration, or otherwise not present as a fixed gettext message in a catalog.
Examples include:
- a footer notice saved in a theme option;
- a call-to-action label configured by a site owner;
- a public heading supplied by a custom integration.
The integration must give the value a stable name. POM Translate then presents it under Translations → Other translations and stores each locale's translation in its database.
Do not use a changing translated value as the name. The name identifies the setting; the source value is the text that visitors read.
Use gettext for static software copy
Use Translations → Software translations when the original message is part of WordPress, a theme, or a plugin and belongs to a gettext text domain.
Examples include:
Add to cart;- an administration screen label;
- a validation message shipped by a plugin;
- a theme's fixed navigation or accessibility copy.
POM Translate reads a POT, PO, or MO file for the domain. It does not discover messages by scanning PHP, JavaScript, or template files. The finished translations must therefore be exported and installed as gettext files.
A practical decision
Ask these questions in order:
- Can a site owner change the original value in a setting? Register it.
- Is the message shipped in source code with a text domain? Translate its gettext catalog.
- Is the text part of a post, term, menu item, or translatable custom field? Use the corresponding content editor instead.
Avoid registering every gettext message as a workaround. It creates two sources of truth and loses gettext features such as plural forms and message context.
Expected result
Each source has one translation route: dynamic public values remain manageable in POM Translate, while static software copy remains compatible with WordPress's native gettext loader.