Translations API¶
API used to perform actions related to language selection, translation, and subscribing to language change events.
classDiagram
direction LR
TranslationsAPI --> selectedLanguage
TranslationsAPI --> changeLanguage
TranslationsAPI --> translate
TranslationsAPI --> subscribeOnLanguageChange
class TranslationsAPI {
selectedLanguage() TLocaleIsoUnderscore
changeLanguage(lang: TLocaleIsoUnderscore) Promise~void~
translate(key: TranslationKeys, options?: TTranslationOptions) string
subscribeOnLanguageChange(callback: () => void) TUnsubscribeCallback
}
link selectedLanguage "../methods/selected-language/"
link changeLanguage "../methods/change-language/"
link translate "../methods/translate/"
link subscribeOnLanguageChange "../methods/subscribe-on-language-change/"
Get API¶
To get the Translations API
use its name TranslationsApi
with the getApi
method. Note that the method is asynchronous and you will need to await it.
useStorefront(async (storefront) => {
const translationsApi = await storefront.getApi('TranslationsApi');
});
You can also get it synchronously with the getApiSync
method:
useStorefront(async (storefront) => {
const translationsApi = storefront.getApiSync('TranslationsApi');
});
but depending on where do you use it the Translations API
may not be initialized yet and it is recommended to use the getApi
method to make sure it will be fetched properly.
Methods¶
- selectedLanguage - get a currently selected language in the shop
- changeLanguage - change a current language in the shop
- translate - translate a given text based on the provided translation key and the currently selected language
- subscribeOnLanguageChange - subscribe to language change events and fire a callback function whenever such event occurs
Example¶
In this example we make a TranslationsApi
call to get a currently selected language in the shop.
useStorefront(async (storefront) => {
const translationsApi = await storefront.getApi('TranslationsApi');
const currentlySelectedLanguage = translationsApi.selectedLanguage();
});
Example¶
In this example we make a TranslationsApi
call to translate a phrase.
useStorefront(async (storefront) => {
const translationsApi = await storefront.getApi('TranslationsApi');
const translatedPhrase = translationsApi.translate('Example phrase');
});
Example¶
In this example we make a TranslationsApi
call to listen to the language change event.
useStorefront(async (storefront) => {
const translationsApi = await storefront.getApi('TranslationsApi');
const myCallback = () => {
alert('Language changed!');
}
const unsubscribeFromLanguageChange = translationsApi.subscribeOnLanguageChange(myCallback);
// at the end
unsubscribeFromLanguageChange();
});