t!() { /* proc-macro */ }Expand description
Marks a string as translatable
It only adds the given string to the .pot file, without translating it at runtime.
To translate it for real, you will have to use i18n. The advantage of this macro, is
that you mark a string as translatable without requiring a catalog to be available in scope.
§Return value
In case of a singular message, the message itself is returned.
For messages with a plural form, it is a tuple containing the singular form, and the plural one.
§Example
ⓘ
#use gettext_macros::*;
// Let's say we can't have access to a Catalog at this point of the program
let msg = t!("Hello, world!");
let plural = t!("Singular", "Plural")
// Now, let's get a catalog, and translate these messages
let cat = get_catalog();
i18n!(cat, msg);
i18n!(cat, plural.0, plural.1; 57);§Syntax
This macro accepts the following syntaxes:
ⓘ
t!($singular)
t!($singular, $plural)
t!(context = $ctx, $singular)
t!(context = $ctx, $singular, $plural)Where $singular, $plural and $ctx all are str literals (and not variables, expressions or literal of any other type).