react-i18nify
Version:
Simple i18n translation and localization components and helpers for React.
17 lines (15 loc) • 705 B
JavaScript
import { fetchTranslation, replace } from './utils';
import { getLocale, getTranslations, handleMissingTranslation } from './settings';
export default (key, replacements = {}, options = {}) => {
const locale = options.locale || getLocale();
let translation = '';
try {
const translationLocale = getTranslations()[locale] ? locale : locale.split('-')[0];
translation = fetchTranslation(getTranslations(), `${translationLocale}.${key}`, replacements.count);
} catch (err) {
if (options.returnNullOnError) return null;
if (options.returnKeyOnError) return key;
return handleMissingTranslation(key, replacements, options, err);
}
return replace(translation, replacements);
};