There are three approaches for internationalizing shell scripts.
The common part is how to internationalize a message without parameters:
This is done through the invocation of the gettext program,
see Invoking the gettext program.
The approaches differ regarding how to internationalize a message with parameters, that is, what is called “formatted output” in other programming languages.