amplify-material-ui
Version:
A Material-UI based implementation of aws amplify
121 lines (120 loc) • 3.99 kB
JavaScript
import * as React from 'react';
import { IntlProvider as Intl } from 'react-intl';
import { lookup, navigatorLanguages } from 'langtag-utils';
import { flattenMessages } from './flatten-messages';
import { mergeDeep } from './merge-deep';
var DEFAULT_LOCAL = 'en';
var defaultMessages = {
de: {
global: {
labels: {
password: 'Passwort',
newPassword: 'Neues Passwort',
username: 'Benutzername',
email: 'Email',
phoneNumber: 'Telefonnummer',
code: 'Code',
confirmationCode: 'Bestätigungs-Code',
},
},
signUp: {
header: 'Erstelle einen neuen Account',
buttons: {
create: 'Account erstellen',
},
links: {
signIn: 'Anmelden',
},
text: {
haveAccount: 'Schon registriert?',
},
},
signIn: {
header: 'Melden Sie sich mit Ihrem Account an',
buttons: {
signIn: 'Anmelden',
},
links: {
backToSignIn: 'Zurück zur Anmeldung',
forgotPassword: 'Passwort zurücksetzen',
signUp: 'Hier registrieren',
},
},
verifyContact: {
header: 'Zurücksetzen des Account benötigt einen verifizierten Account',
buttons: {
submit: 'Abschicken',
verify: 'Verifizieren',
},
links: {
skip: 'Überspringen',
},
},
requireNewPassword: {
header: 'Passwort ändern',
buttons: {
change: 'Ändern',
},
links: {
backToSignIn: 'Zurück zur Anmeldung',
},
},
confirmSignIn: {
header: '{mfaType} Code bestätigen',
buttons: {
confirm: 'Bestätigen',
},
links: {
backToSignIn: 'Zurück zur Anmeldung',
},
},
confirmSignUp: {
header: 'Zurücksetzen des Passworts',
buttons: {
confirm: 'Bestätigen',
},
links: {
resendCode: 'Code erneut senden',
backToSignIn: 'Zurück zur Anmeldung',
},
},
forgotPassword: {
header: 'Zurücksetzen des Passworts',
buttons: {
submit: 'Abschicken',
sendCode: 'Code senden',
},
links: {
resendCode: 'Code erneut senden',
backToSignIn: 'Zurück zur Anmeldung',
},
},
totpSetup: {
header: '',
labels: {
totpCode: '',
},
buttons: {
verifyTotpToken: '',
},
},
greetings: {
menu: {
signedIn: 'Angemeldet als {username}',
logout: 'Logout',
},
},
},
};
export var IntlProvider = function (_a) {
var _b = _a.supportedLocales, supportedLocales = _b === void 0 ? [DEFAULT_LOCAL, 'de'] : _b, _c = _a.customMessages, customMessages = _c === void 0 ? {} : _c, children = _a.children;
var detectedLocale = lookup(supportedLocales, navigatorLanguages(), DEFAULT_LOCAL);
var createMessages = function () {
var mergedMessages = defaultMessages[detectedLocale]
? mergeDeep(defaultMessages[detectedLocale], customMessages[detectedLocale])
: customMessages[detectedLocale];
return mergedMessages ? flattenMessages(mergedMessages) : undefined;
};
var messages = createMessages();
return (React.createElement(Intl, { locale: detectedLocale, key: detectedLocale, messages: messages, defaultLocale: DEFAULT_LOCAL }, children));
};