refactor(lang): use global strings where appropriate and remove unused strings (#1265)

This commit is contained in:
TheCatLady
2021-03-24 08:45:07 -04:00
committed by GitHub
parent 544c2d9442
commit e393b53b29
41 changed files with 348 additions and 466 deletions

View File

@@ -1,16 +1,17 @@
/* eslint-disable react-hooks/exhaustive-deps */
import { Listbox, Transition } from '@headlessui/react';
import React, { useEffect, useState } from 'react';
import { defineMessages, useIntl } from 'react-intl';
import useSWR from 'swr';
import { SmallLoadingSpinner } from '../../Common/LoadingSpinner';
import type {
ServiceCommonServer,
ServiceCommonServerWithDetails,
} from '../../../../server/interfaces/api/serviceInterfaces';
import { defineMessages, useIntl } from 'react-intl';
import { formatBytes } from '../../../utils/numberHelpers';
import { Listbox, Transition } from '@headlessui/react';
import { Permission, User, useUser } from '../../../hooks/useUser';
import type { UserResultsResponse } from '../../../../server/interfaces/api/userInterfaces';
import { Permission, User, useUser } from '../../../hooks/useUser';
import globalMessages from '../../../i18n/globalMessages';
import { formatBytes } from '../../../utils/numberHelpers';
import { SmallLoadingSpinner } from '../../Common/LoadingSpinner';
const messages = defineMessages({
advancedoptions: 'Advanced Options',
@@ -22,7 +23,6 @@ const messages = defineMessages({
folder: '{path} ({space})',
requestas: 'Request As',
languageprofile: 'Language Profile',
loading: 'Loading…',
});
export type RequestOverrides = {
@@ -307,7 +307,7 @@ const AdvancedRequester: React.FC<AdvancedRequesterProps> = ({
>
{(isValidating || !serverData) && (
<option value="">
{intl.formatMessage(messages.loading)}
{intl.formatMessage(globalMessages.loading)}
</option>
)}
{!isValidating &&
@@ -351,7 +351,7 @@ const AdvancedRequester: React.FC<AdvancedRequesterProps> = ({
>
{(isValidating || !serverData) && (
<option value="">
{intl.formatMessage(messages.loading)}
{intl.formatMessage(globalMessages.loading)}
</option>
)}
{!isValidating &&
@@ -405,7 +405,7 @@ const AdvancedRequester: React.FC<AdvancedRequesterProps> = ({
>
{(isValidating || !serverData) && (
<option value="">
{intl.formatMessage(messages.loading)}
{intl.formatMessage(globalMessages.loading)}
</option>
)}
{!isValidating &&

View File

@@ -20,25 +20,18 @@ import AdvancedRequester, { RequestOverrides } from './AdvancedRequester';
import QuotaDisplay from './QuotaDisplay';
const messages = defineMessages({
requestadmin: 'Your request will be approved automatically.',
cancelrequest:
'This will remove your request. Are you sure you want to continue?',
requestadmin: 'This request will be approved automatically.',
requestSuccess: '<strong>{title}</strong> requested successfully!',
requestCancel: 'Request for <strong>{title}</strong> canceled.',
requesttitle: 'Request {title}',
request4ktitle: 'Request {title} in 4K',
close: 'Close',
cancel: 'Cancel Request',
cancelling: 'Canceling…',
pendingrequest: 'Pending Request for {title}',
pending4krequest: 'Pending Request for {title} in 4K',
requesting: 'Requesting…',
request: 'Request',
request4k: 'Request 4K',
requestfrom: 'There is currently a pending request from {username}.',
request4kfrom: 'There is currently a pending 4K request from {username}.',
errorediting: 'Something went wrong while editing the request.',
requestedited: 'Request edited.',
requestedited: 'Request for <strong>{title}</strong> edited successfully!',
requesterror: 'Something went wrong while submitting the request.',
});
@@ -182,10 +175,20 @@ const MovieRequestModal: React.FC<RequestModalProps> = ({
userId: requestOverrides?.user?.id,
});
addToast(<span>{intl.formatMessage(messages.requestedited)}</span>, {
appearance: 'success',
autoDismiss: true,
});
addToast(
<span>
{intl.formatMessage(messages.requestedited, {
title: data?.title,
strong: function strong(msg) {
return <strong>{msg}</strong>;
},
})}
</span>,
{
appearance: 'success',
autoDismiss: true,
}
);
if (onComplete) {
onComplete(MediaStatus.PENDING);
@@ -225,11 +228,11 @@ const MovieRequestModal: React.FC<RequestModalProps> = ({
secondaryDisabled={isUpdating}
secondaryText={
isUpdating
? intl.formatMessage(messages.cancelling)
? intl.formatMessage(globalMessages.canceling)
: intl.formatMessage(messages.cancel)
}
secondaryButtonType="danger"
cancelText={intl.formatMessage(messages.close)}
cancelText={intl.formatMessage(globalMessages.close)}
iconSvg={<DownloadIcon className="w-6 h-6" />}
>
{intl.formatMessage(
@@ -286,8 +289,10 @@ const MovieRequestModal: React.FC<RequestModalProps> = ({
)}
okText={
isUpdating
? intl.formatMessage(messages.requesting)
: intl.formatMessage(is4k ? messages.request4k : messages.request)
? intl.formatMessage(globalMessages.requesting)
: intl.formatMessage(
is4k ? globalMessages.request4k : globalMessages.request
)
}
okButtonType={'primary'}
iconSvg={<DownloadIcon className="w-6 h-6" />}

View File

@@ -6,7 +6,7 @@ import ProgressCircle from '../../Common/ProgressCircle';
const messages = defineMessages({
requestsremaining:
'{remaining, plural, =0 {No} other {<strong>#</strong>}} {type} {remaining, plural, one {requests} other {requests}} remaining',
'{remaining, plural, =0 {No} other {<strong>#</strong>}} {type} {remaining, plural, one {request} other {requests}} remaining',
movielimit: '{limit, plural, one {movie} other {movies}}',
seasonlimit: '{limit, plural, one {season} other {seasons}}',
allowedRequests:
@@ -22,6 +22,8 @@ const messages = defineMessages({
notenoughseasonrequests: 'Not enough season requests remaining',
requiredquota:
'You need to have at least <strong>{seasons}</strong> {seasons, plural, one {season request} other {season requests}} remaining in order to submit a request for this series.',
requiredquotaUser:
'This user needs to have at least <strong>{seasons}</strong> {seasons, plural, one {season request} other {season requests}} remaining in order to submit a request for this series.',
});
interface QuotaDisplayProps {
@@ -120,12 +122,17 @@ const QuotaDisplay: React.FC<QuotaDisplayProps> = ({
<div className="mt-4">
{overLimit !== undefined && (
<div className="mb-2">
{intl.formatMessage(messages.requiredquota, {
seasons: overLimit,
strong: function strong(msg) {
return <span className="font-bold">{msg}</span>;
},
})}
{intl.formatMessage(
userOverride
? messages.requiredquota
: messages.requiredquotaUser,
{
seasons: overLimit,
strong: function strong(msg) {
return <span className="font-bold">{msg}</span>;
},
}
)}
</div>
)}
<div>

View File

@@ -2,12 +2,12 @@ import React from 'react';
import { defineMessages, useIntl } from 'react-intl';
import useSWR from 'swr';
import { SonarrSeries } from '../../../../server/api/sonarr';
import globalMessages from '../../../i18n/globalMessages';
import Alert from '../../Common/Alert';
import { SmallLoadingSpinner } from '../../Common/LoadingSpinner';
import Modal from '../../Common/Modal';
const messages = defineMessages({
next: 'Next',
notvdbid: 'Manual Match Required',
notvdbiddescription:
"We couldn't automatically match your request. Please select the correct match from the list below.",
@@ -49,7 +49,7 @@ const SearchByNameModal: React.FC<SearchByNameModalProps> = ({
onCancel={onCancel}
onOk={closeModal}
title={modalTitle}
okText={intl.formatMessage(messages.next)}
okText={intl.formatMessage(globalMessages.next)}
okDisabled={!tvdbId}
okButtonType="primary"
iconSvg={

View File

@@ -24,13 +24,10 @@ import QuotaDisplay from './QuotaDisplay';
import SearchByNameModal from './SearchByNameModal';
const messages = defineMessages({
requestadmin: 'Your request will be approved automatically.',
cancelrequest:
'This will remove your request. Are you sure you want to continue?',
requestadmin: 'This request will be approved automatically.',
requestSuccess: '<strong>{title}</strong> requested successfully!',
requesttitle: 'Request {title}',
request4ktitle: 'Request {title} in 4K',
requesting: 'Requesting…',
requestseasons:
'Request {seasonCount} {seasonCount, plural, one {Season} other {Seasons}}',
requestall: 'Request All Seasons',
@@ -38,16 +35,13 @@ const messages = defineMessages({
selectseason: 'Select Season(s)',
season: 'Season',
numberofepisodes: '# of Episodes',
status: 'Status',
seasonnumber: 'Season {number}',
extras: 'Extras',
notrequested: 'Not Requested',
errorediting: 'Something went wrong while editing the request.',
requestedited: 'Request edited.',
requestcancelled: 'Request canceled.',
requestedited: 'Request for <strong>{title}</strong> edited successfully!',
requestcancelled: 'Request for <strong>{title}</strong> canceled.',
autoapproval: 'Automatic Approval',
requesterror: 'Something went wrong while submitting the request.',
backbutton: 'Back',
});
interface RequestModalProps extends React.HTMLAttributes<HTMLDivElement> {
@@ -122,8 +116,18 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
addToast(
<span>
{selectedSeasons.length > 0
? intl.formatMessage(messages.requestedited)
: intl.formatMessage(messages.requestcancelled)}
? intl.formatMessage(messages.requestedited, {
title: data?.name,
strong: function strong(msg) {
return <strong>{msg}</strong>;
},
})
: intl.formatMessage(messages.requestcancelled, {
title: data?.name,
strong: function strong(msg) {
return <strong>{msg}</strong>;
},
})}
</span>,
{
appearance: 'success',
@@ -390,7 +394,7 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
}
cancelText={
tvdbId
? intl.formatMessage(messages.backbutton)
? intl.formatMessage(globalMessages.back)
: intl.formatMessage(globalMessages.cancel)
}
iconSvg={
@@ -507,7 +511,7 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
{intl.formatMessage(messages.numberofepisodes)}
</th>
<th className="px-2 py-3 text-xs font-medium leading-4 tracking-wider text-left text-gray-200 uppercase bg-gray-500 md:px-6">
{intl.formatMessage(messages.status)}
{intl.formatMessage(globalMessages.status)}
</th>
</tr>
</thead>
@@ -601,7 +605,9 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
<td className="py-4 pr-2 text-sm leading-5 text-gray-200 md:px-6 whitespace-nowrap">
{!seasonRequest && !mediaSeason && (
<Badge>
{intl.formatMessage(messages.notrequested)}
{intl.formatMessage(
globalMessages.notrequested
)}
</Badge>
)}
{!mediaSeason &&