ProductNameFormat
The ProductNameFormat
API provides methods to format a string with product name substitution.
An argument pattern $(pn)
is used as the placeholder for the product name in a format string
resource.
Multiple product name types are available to use with format methods. Below is an example of Amazon Echo Show 5 product names in different types,
Type | Name |
---|---|
Generic | Device |
Short | Echo Show |
Medium | Echo Show 5 |
Long | Echo Show 5 (3rd Gen) |
Full | Amazon Echo Show 5 |
Generational | Amazon Echo Show 5 (3rd Gen) |
A Default type is also available and maps to Medium type.
Example
import { ProductNameFormat, ProductNameType } from '@amazon-devices/keplerscript-kepleri18n-lib';
...
// Retrieve the pattern from the string resources. It's hardcoded here to simplify the example.
const pattern: string = "This $(pn) is wifi enabled.";
const message: string | null = ProductNameFormat.format(pattern, ProductNameType.MEDIUM);
if (message === null) {
// Error
return;
}
// For the above Amazon Echo Show 5 product names example, message is "This Echo Show 5 is wifi enabled."
Constructors
new ProductNameFormat()
new ProductNameFormat():
ProductNameFormat
Returns
Methods
format()
static
format(pattern
,productNameType
,args
?):null
|string
Formats the specified pattern with product name substitution for the default locale. Optionally, the pattern may also be a MessageFormatClassic pattern with named arguments. The pattern is expected to contain one or more "$(pn)" substrings as placeholders for the product name.
In addition, this method supports "pngender" for product name gender message selection. To use it, just specify "pngender" in place of the IMessageFormatClassic select-format argument, and write select-format clauses based on the possible genders of other, feminine, masculine, neuter, female, male. For example,
Parameters
pattern
string
The pattern to format.
productNameType
ProductNameType
= ProductNameType.DEFAULT
Type of product name to use.
args?
Map
<string
, string
| number
| Date
>
Optional map of argument names to their values.
Returns
null
| string
Formatted message with the specified product name replaced in place of "$(pn)" on success, null on failure.
Example
{pngender, select,
feminine {$(pn) displays a notification on her screen.}
masculine {$(pn) displays a notification on his screen.}
other {$(pn) displays a notification on its screen.}}
If the current product gender is feminine and the product name is "Echo Show", this method will return "Echo Show displays a notification on her screen."
[!IMPORTANT] Do not use the name "pngender" as a named argument, as it is a reserved key by ProductNameFormat. If a "pngender" named argument is passed in the argument map, this method will fail.
formatPositional()
static
formatPositional(pattern
,productNameType
, …args
):null
|string
Formats the specified pattern with product name substitution for the default locale. Optionally, the pattern may also be a MessageFormatClassic pattern with numbered arguments. The pattern is expected to contain one or more "$(pn)" substrings as placeholders for the product name.
See format() method regarding support for "pngender" product name gender message selection.
Parameters
pattern
string
The pattern to format.
productNameType
ProductNameType
= ProductNameType.DEFAULT
Type of product name to use.
args
…(string
| number
| Date
)[]
Optional array of argument values
Returns
null
| string
Formatted message with the specified product name replaced in place of "$(pn)" on success, null on failure.
getMajorVersion()
static
getMajorVersion():number
Gets the major version number.
Returns
number
Major version number.
getMinorVersion()
static
getMinorVersion():number
Gets the minor version number.
Returns
number
Minor version number.
getPatchVersion()
static
getPatchVersion():number
Gets the patch version number.
Returns
number
Patch version number.
Last updated: Sep 29, 2025