Updated language bundles with new keys.

This commit is contained in:
Mike Cao 2023-04-08 13:14:22 -07:00
parent 45d3fa4016
commit 2656de6682
54 changed files with 3513 additions and 2290 deletions

View file

@ -6,7 +6,9 @@ function NoData({ className }) {
const { formatMessage, messages } = useMessages();
return (
<div className={classNames(styles.container, className)}>{formatMessage(messages.noData)}</div>
<div className={classNames(styles.container, className)}>
{formatMessage(messages.noDataAvailable)}
</div>
);
}

View file

@ -14,7 +14,7 @@ export const labels = defineMessages({
password: { id: 'label.password', defaultMessage: 'Password' },
role: { id: 'label.role', defaultMessage: 'Role' },
user: { id: 'label.user', defaultMessage: 'User' },
admin: { id: 'label.admin', defaultMessage: 'Admin' },
administrator: { id: 'label.administrator', defaultMessage: 'Administrator' },
confirm: { id: 'label.confirm', defaultMessage: 'Confirm' },
details: { id: 'label.details', defaultMessage: 'Details' },
websites: { id: 'label.websites', defaultMessage: 'Websites' },
@ -40,14 +40,12 @@ export const labels = defineMessages({
trackingCode: { id: 'label.tracking-code', defaultMessage: 'Tracking code' },
shareUrl: { id: 'label.share-url', defaultMessage: 'Share URL' },
actions: { id: 'label.actions', defaultMessage: 'Actions' },
view: { id: 'label.view', defaultMessage: 'View' },
domain: { id: 'label.domain', defaultMessage: 'Domain' },
websiteId: { id: 'label.website-id', defaultMessage: 'Website ID' },
resetWebsite: { id: 'label.reset-website', defaultMessage: 'Reset website' },
deleteWebsite: { id: 'label.delete-website', defaultMessage: 'Delete website' },
reset: { id: 'label.reset', defaultMessage: 'Reset' },
addWebsite: { id: 'label.add-website', defaultMessage: 'Add website' },
addWebsites: { id: 'label.add-websites', defaultMessage: 'Add websites' },
changePassword: { id: 'label.change-password', defaultMessage: 'Change password' },
currentPassword: { id: 'label.current-password', defaultMessage: 'Current password' },
newPassword: { id: 'label.new-password', defaultMessage: 'New password' },
@ -114,7 +112,6 @@ export const labels = defineMessages({
toggleCharts: { id: 'label.toggle-charts', defaultMessage: 'Toggle charts' },
editDashboard: { id: 'label.edit-dashboard', defaultMessage: 'Edit dashboard' },
title: { id: 'label.title', defaultMessage: 'Title' },
url: { id: 'label.url', defaultMessage: 'URL' },
});
export const messages = defineMessages({
@ -122,22 +119,22 @@ export const messages = defineMessages({
saved: { id: 'message.saved', defaultMessage: 'Saved.' },
noUsers: { id: 'message.no-users', defaultMessage: 'There are no users.' },
userDeleted: { id: 'message.user-deleted', defaultMessage: 'User deleted.' },
noData: { id: 'message.no-data', defaultMessage: 'No data available.' },
deleteUserWarning: {
id: 'message.delete-user-warning',
defaultMessage: 'Are you sure you want to delete the user {username}?',
noDataAvailable: { id: 'message.no-data-available', defaultMessage: 'No data available.' },
confirmReset: {
id: 'message.confirm-reset',
defaultMessage: 'Are you sure you want to reset {target}?',
},
leaveTeamWarning: {
id: 'message.leave-team-warning',
defaultMessage: 'Are you sure you want to leave the team {name}?',
confirmDelete: {
id: 'message.confirm-delete',
defaultMessage: 'Are you sure you want to delete {target}?',
},
deleteTeamWarning: {
id: 'message.delete-team-warning',
defaultMessage: 'Are you sure you want to delete the team {name}?',
confirmLeave: {
id: 'message.confirm-leave',
defaultMessage: 'Are you sure you want to leave {target}?',
},
minPasswordLength: {
id: 'message.min-password-length',
defaultMessage: 'Minimum length of 8 characters',
defaultMessage: 'Minimum length of {n} characters',
},
noTeams: {
id: 'message.no-teams',
@ -164,10 +161,6 @@ export const messages = defineMessages({
id: 'message.reset-website',
defaultMessage: 'To reset this website, type {confirmation} in the box below to confirm.',
},
websitesShared: {
id: 'message.shared-website',
defaultMessage: 'Websites can be viewed by the entire team.',
},
invalidDomain: {
id: 'message.invalid-domain',
defaultMessage: 'Invalid domain. Do not include http/https.',
@ -181,16 +174,16 @@ export const messages = defineMessages({
id: 'message.delete-website-warning',
defaultMessage: 'All website data will be deleted.',
},
noWebsites: {
id: 'messages.no-websites',
noWebsitesConfigured: {
id: 'messages.no-websites-configured',
defaultMessage: 'You do not have any websites configured.',
},
noTeamWebsites: {
id: 'messages.no-team-websites',
defaultMessage: 'This team does not have any websites.',
},
websitesAreShared: {
id: 'messages.websites-are-shared',
teamWebsitesInfo: {
id: 'messages.team-websites-info',
defaultMessage: 'Websites can be viewed by anyone on the team.',
},
noMatchPassword: { id: 'message.no-match-password', defaultMessage: 'Passwords do not match.' },
@ -214,4 +207,8 @@ export const messages = defineMessages({
id: 'message.event-log',
defaultMessage: '{event} on {url}',
},
incorrectUsernamePassword: {
id: 'message.incorrect-username-password',
defaultMessage: 'Incorrect username and/or password.',
},
});

View file

@ -13,10 +13,12 @@ import { useRouter } from 'next/router';
import useApi from 'hooks/useApi';
import { setUser } from 'store/app';
import { setClientAuthToken } from 'lib/client';
import useMessages from 'hooks/useMessages';
import Logo from 'assets/logo.svg';
import styles from './LoginForm.module.css';
export default function LoginForm() {
const { formatMessage, labels, getMessage } = useMessages();
const router = useRouter();
const { post } = useApi();
const { mutate, error, isLoading } = useMutation(data => post('/auth/login', data));
@ -38,14 +40,14 @@ export default function LoginForm() {
<Logo />
</Icon>
<div className={styles.title}>umami</div>
<Form className={styles.form} onSubmit={handleSubmit} error={error}>
<FormRow label="Username">
<FormInput name="username" rules={{ required: 'Required' }}>
<Form className={styles.form} onSubmit={handleSubmit} error={getMessage(error)}>
<FormRow label={formatMessage(labels.username)}>
<FormInput name="username" rules={{ required: formatMessage(labels.required) }}>
<TextField autoComplete="off" />
</FormInput>
</FormRow>
<FormRow label="Password">
<FormInput name="password" rules={{ required: 'Required' }}>
<FormRow label={formatMessage(labels.password)}>
<FormInput name="password" rules={{ required: formatMessage(labels.required) }}>
<PasswordField />
</FormInput>
</FormRow>

View file

@ -21,7 +21,9 @@ export default function RealtimeHome() {
return (
<Page loading={isLoading || data?.length > 0} error={error}>
<PageHeader title={formatMessage(labels.realtime)} />
{data?.length === 0 && <EmptyPlaceholder message={formatMessage(messages.noWebsites)} />}
{data?.length === 0 && (
<EmptyPlaceholder message={formatMessage(messages.noWebsitesConfigured)} />
)}
</Page>
);
}

View file

@ -19,7 +19,7 @@ export default function TeamDeleteForm({ teamId, teamName, onSave, onClose }) {
return (
<Form onSubmit={handleSubmit} error={error}>
<p>
<FormattedMessage {...messages.deleteTeamWarning} values={{ name: <b>{teamName}</b> }} />
<FormattedMessage {...messages.confirmDelete} values={{ name: <b>{teamName}</b> }} />
</p>
<FormButtons flex>
<SubmitButton variant="danger" disabled={isLoading}>

View file

@ -19,7 +19,7 @@ export default function TeamLeaveForm({ teamUserId, teamName, onSave, onClose })
return (
<Form onSubmit={handleSubmit} error={error}>
<p>
<FormattedMessage {...messages.leaveTeamWarning} values={{ name: <b>{teamName}</b> }} />
<FormattedMessage {...messages.confirmLeave} values={{ name: <b>{teamName}</b> }} />
</p>
<FormButtons flex>
<SubmitButton variant="danger" disabled={isLoading}>

View file

@ -51,7 +51,7 @@ export default function TeamWebsites({ teamId }) {
<div>
{toast}
{hasData && (
<ActionForm description={formatMessage(messages.websitesAreShared)}>{addButton}</ActionForm>
<ActionForm description={formatMessage(messages.teamWebsitesInfo)}>{addButton}</ActionForm>
)}
{hasData && <TeamWebsitesTable teamId={teamId} data={data} onSave={handleSave} />}
{!hasData && (

View file

@ -51,7 +51,7 @@ export default function WebsiteAddTeamForm({ teamId, onSave, onClose }) {
<WebsiteTags items={websites} websites={newWebsites} onClick={handleRemoveWebsite} />
<FormButtons flex>
<SubmitButton disabled={newWebsites && newWebsites.length === 0}>
{formatMessage(labels.addWebsites)}
{formatMessage(labels.addWebsite)}
</SubmitButton>
<Button onClick={onClose}>{formatMessage(labels.cancel)}</Button>
</FormButtons>

View file

@ -20,10 +20,7 @@ export default function UserDeleteForm({ userId, username, onSave, onClose }) {
return (
<Form onSubmit={handleSubmit} error={error}>
<p>
<FormattedMessage
{...messages.deleteUserWarning}
values={{ username: <b>{username}</b> }}
/>
<FormattedMessage {...messages.confirmDelete} values={{ target: <b>{username}</b> }} />
</p>
<FormButtons flex>
<SubmitButton variant="danger" disabled={isLoading}>

View file

@ -18,7 +18,7 @@ export default function UserWebsites({ userId }) {
return (
<div>
{hasData && <WebsitesTable data={data} />}
{!hasData && formatMessage(messages.noData)}
{!hasData && formatMessage(messages.noDataAvailable)}
</div>
);
}