Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 184 additions & 0 deletions src/assets/errorBoundaryPage.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 8 additions & 1 deletion src/common/Pages.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import Campaign from 'src/pages/Campaign';
import Bugs from 'src/pages/Bugs';
import { useTranslation } from 'react-i18next';
import Bug from 'src/pages/Bug';
import ErrorBoundaryPage from 'src/common/components/ErrorBoundary/ErrorBoundaryPage';
import { Redirect } from './Redirect';

const Pages = () => {
Expand All @@ -28,7 +29,11 @@ const Pages = () => {
createRoutesFromElements(
<>
{langPathPrefixes.map((langPrefix) => (
<Route path={`/${langPrefix}`} key={`react-router-${langPrefix}`}>
<Route
path={`/${langPrefix}`}
key={`react-router-${langPrefix}`}
errorElement={<ErrorBoundaryPage />}
>
<Route
path={`/${langPrefix}/campaigns/:campaignId`}
element={<Campaign />}
Expand Down Expand Up @@ -73,6 +78,7 @@ const Pages = () => {
}}
/>
}
errorElement={<ErrorBoundaryPage />}
/>
<Route
path="/functional-customer-dashboard"
Expand All @@ -89,6 +95,7 @@ const Pages = () => {
}}
/>
}
errorElement={<ErrorBoundaryPage />}
/>
<Route path="*" element={<Navigate replace to="/oops" />} />
</>
Expand Down
59 changes: 59 additions & 0 deletions src/common/components/ErrorBoundary/ErrorBoundaryPage.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import {
Col,
Grid,
Row,
theme,
XXL,
MD,
Paragraph,
} from '@appquality/unguess-design-system';
import { ReactComponent as Illustration } from 'src/assets/errorBoundaryPage.svg';
import { useTranslation } from 'react-i18next';
import { Logged } from 'src/features/templates/Logged';
import { Container } from 'src/pages/ExpressWizard/wizardHeader';
import { GoogleTagManager } from 'src/common/GoogleTagManager';
import { WaterButton } from 'src/common/components/waterButton';

const ErrorBoundaryPage = () => {
const { t } = useTranslation();

return (
<GoogleTagManager title={t('__ERROR_PAGE_TITLE')}>
<Logged route="">
<Container id="error-container" style={{ height: '100%' }}>
<Grid>
<Row>
<Col>
<Illustration style={{ maxWidth: '38vw' }} />
</Col>
<Col alignSelf="center">
<Paragraph>
<XXL style={{ color: theme.palette.grey[800] }} isBold>
{t('__ERROR_PAGE_TITLE')}
</XXL>
</Paragraph>
<Paragraph style={{ marginTop: theme.space.sm }}>
<MD style={{ color: theme.palette.grey[800] }}>
{t('__ERROR_PAGE_SUBTITLE')}
</MD>
</Paragraph>

<Paragraph style={{ marginTop: theme.space.lg }}>
<WaterButton
isPrimary
isPill
onClick={() => window.location.reload()}
>
{t('__ERROR_PAGE_BUTTON')}
</WaterButton>
</Paragraph>
</Col>
</Row>
</Grid>
</Container>
</Logged>
</GoogleTagManager>
);
};

export default ErrorBoundaryPage;
43 changes: 43 additions & 0 deletions src/common/components/ErrorBoundary/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import { Component, ErrorInfo, ReactNode } from 'react';
import ErrorBoundaryPage from './ErrorBoundaryPage';

interface Props {
children?: ReactNode;
}

interface State {
hasError: boolean;
error?: Error;
errorInfo?: ErrorInfo;
}

class ErrorBoundary extends Component<Props, State> {
constructor(props: Props) {
super(props);
this.state = { hasError: false };
}

static getDerivedStateFromError(error: Error): State {
// Update state so the next render will show the fallback UI.
return { hasError: true, error };
}

componentDidCatch(error: Error, errorInfo: ErrorInfo) {
this.state = { hasError: true, error, errorInfo };
// eslint-disable-next-line no-console
console.error('Uncaught error:', error, errorInfo);
}

render() {
const { hasError } = this.state;
const { children } = this.props;

if (hasError) {
return <ErrorBoundaryPage />;
}

return children;
}
}

export default ErrorBoundary;
21 changes: 12 additions & 9 deletions src/features/templates/Page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React from 'react';
import { GoogleTagManager } from 'src/common/GoogleTagManager';
import styled from 'styled-components';
import { Logged } from './Logged';
import ErrorBoundary from '../../common/components/ErrorBoundary';

const Container = styled.div<{
excludeMarginTop?: boolean;
Expand Down Expand Up @@ -46,14 +47,16 @@ export const Page = ({
excludeMarginBottom?: boolean;
}) => (
<GoogleTagManager title={title}>
<Logged route={route} pageHeader={pageHeader}>
<Container
id="container"
excludeMarginTop={excludeMarginTop}
excludeMarginBottom={excludeMarginBottom}
>
{children}
</Container>
</Logged>
<ErrorBoundary>
<Logged route={route} pageHeader={pageHeader}>
<Container
id="container"
excludeMarginTop={excludeMarginTop}
excludeMarginBottom={excludeMarginBottom}
>
{children}
</Container>
</Logged>
</ErrorBoundary>
</GoogleTagManager>
);
11 changes: 7 additions & 4 deletions src/locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,9 @@
"__BUGS_PAGE_VIEW_BUG_TOOLTIP": "Open bug",
"__BUGS_PAGE_WARNING_POSSIBLE_EMPTY_CASES": "As of now we couldn't find any more bugs in other use cases",
"__BUGS_PAGE_WARNING_POSSIBLE_EMPTY_STATUS": "As of now we couldn't find any more bugs in other statuses",
"__BUGS_PREVIEW_MEDIA_TOOLTIP_TEXT": "Attachments",
"__BUGS_PREVIEW_RELATED_BUGS_TOOLTIP_TEXT": "Related bugs",
"__BUGS_PREVIEW_TAG_TOOLTIP_TEXT": "Details",
"__BUGS_PRIORITY_FILTER_ITEM_NO_ITEMS": "All priorities",
"__BUGS_READ_FILTER_ITEM_ALL": "All bugs",
"__BUGS_READ_FILTER_ITEM_DRAWER_ALL": "All",
Expand All @@ -191,13 +194,10 @@
"__BUGS_SEVERITY_FILTER_ITEM_NO_ITEMS": "All severities",
"__BUGS_TABLE_BUG_ID_HEADER_COLUMN": "Bug ID",
"__BUGS_TABLE_DUPLICATE_HEADER_COLUMN": "Duplicates",
"__BUGS_TABLE_DUPLICATE_TOOLTIP_TEXT": "This icon indicates unique bugs",
"__BUGS_TABLE_PRIORITY_HEADER_COLUMN": "Priority",
"__BUGS_TABLE_SEVERITY_HEADER_COLUMN": "Severity",
"__BUGS_TABLE_TITLE_HEADER_COLUMN": "Bug",
"__BUGS_TABLE_DUPLICATE_TOOLTIP_TEXT": "This icon indicates unique bugs",
"__BUGS_PREVIEW_MEDIA_TOOLTIP_TEXT": "Attachments",
"__BUGS_PREVIEW_TAG_TOOLTIP_TEXT": "Details",
"__BUGS_PREVIEW_RELATED_BUGS_TOOLTIP_TEXT": "Related bugs",
"__BUGS_TAGS_FILTER_ITEM_NO_ITEMS": "Tag",
"__BUGS_TAGS_FILTER_ITEM_NO_TAGS": "No tags",
"__BUGS_TYPES_FILTER_ITEM_NO_ITEMS": "Typology",
Expand Down Expand Up @@ -368,6 +368,9 @@
"__DASHBOARD_EMPTY_SEARCH_RESULTS_TITLE": "We couldn't find any campaigns",
"__DASHBOARD_SEARCH_INPUT_PLACEHOLDER": "Start typing...",
"__DASHBOARD_SKY_JOTFORM_LAUNCH_CP_BUTTON": "Launch a new campaign",
"__ERROR_PAGE_BUTTON": "Refresh the page",
"__ERROR_PAGE_SUBTITLE": "Let's try to solve it with the simplest trick.",
"__ERROR_PAGE_TITLE": "This is unexpected.",
"__EXPERIENTIAL_LABEL": "Experiential",
"__EXPRESS_2_WIZARD_STEP_HOW_USE_CASE_MODAL_DELETE_USE_CASE_LABEL": "Delete Test Case",
"__EXPRESS_3_WIZARD_STEP_CONFIRM_WHO_TEXT": "Your users",
Expand Down
34 changes: 30 additions & 4 deletions src/locales/it/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,12 @@
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_EXTRA_TAB_ITEM_LABEL": "File extra",
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_EXTRA_TAB_TITLE": "Extra",
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_IMAGE_LABEL_one": "immagine",
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_IMAGE_LABEL_many": "",
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_IMAGE_LABEL_other": "immagini",
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_LABEL": "Allegati",
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_MEDIA_TAB_TITLE": "Immagini & video",
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_VIDEO_LABEL_one": "video",
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_VIDEO_LABEL_many": "",
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_VIDEO_LABEL_other": "video",
"__BUGS_PAGE_BUG_DETAIL_CURRENT_RESULT_LABEL": "Risultato ottenuto",
"__BUGS_PAGE_BUG_DETAIL_DESCRIPTION_LABEL": "Descrizione",
Expand Down Expand Up @@ -91,12 +93,14 @@
"__BUGS_PAGE_BUG_DETAIL_SIBLINGS_FATHER_SUBTITLE": "Il bug da prendere come riferimento",
"__BUGS_PAGE_BUG_DETAIL_SIBLINGS_FATHER_TITLE": "Bug unico",
"__BUGS_PAGE_BUG_DETAIL_SIBLINGS_SHOW_MORE_one": "+ {{count}} altro",
"__BUGS_PAGE_BUG_DETAIL_SIBLINGS_SHOW_MORE_many": "Show more +{{count}}",
"__BUGS_PAGE_BUG_DETAIL_SIBLINGS_SHOW_MORE_other": "+ altri {{count}}",
"__BUGS_PAGE_BUG_DETAIL_STATE_LABEL": "Stato",
"__BUGS_PAGE_BUG_DETAIL_TAGS_ADD_NEW": "Aggiungi",
"__BUGS_PAGE_BUG_DETAIL_TAGS_LABEL": "Tag",
"__BUGS_PAGE_BUG_DETAIL_TAGS_PLACEHOLDER": "Cerca o aggiungi altri tag",
"__BUGS_PAGE_BUG_DETAIL_TAGS_SHOW_MORE_one": "+ {{count}} altro",
"__BUGS_PAGE_BUG_DETAIL_TAGS_SHOW_MORE_many": "",
"__BUGS_PAGE_BUG_DETAIL_TAGS_SHOW_MORE_other": "+ altri {{count}}",
"__BUGS_PAGE_CLOSE_DETAILS_TOOLTIP": "Chiudi",
"__BUGS_PAGE_FILTER_DRAWER_BODY_ACTIONS_LABEL": "AZIONI FATTE DA TE",
Expand All @@ -106,47 +110,56 @@
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_CUSTOM_STATUSE_TITLE": "Stato",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_CUSTOM_STATUSES_SHOW_LESS_LABEL": "Mostra meno",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_CUSTOM_STATUSES_SHOW_MORE_LABEL_one": "+ <2>1</2> altra",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_CUSTOM_STATUSES_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more statuses",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_CUSTOM_STATUSES_SHOW_MORE_LABEL_other": "+ altre <2>{{count}}</2>",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_DEVICE_ALL_LABEL": "Tutti",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_DEVICE_SHOW_LESS_LABEL": "Mostra meno",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_DEVICE_SHOW_MORE_LABEL_one": "+ <2>1</2> altro",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_DEVICE_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more devices",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_DEVICE_SHOW_MORE_LABEL_other": "+ altri <2>{{count}}</2>",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_DEVICE_TITLE": "Dispositivo",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_DUPLICATES_TITLE": "Duplicati",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_ALL_LABEL": "Tutti",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_SHOW_LESS_LABEL": "Mostra meno",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_SHOW_MORE_LABEL_one": "+ <2>1</2> altro",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more OS",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_SHOW_MORE_LABEL_other": "+ altri <2>{{count}}</2>",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_TITLE": "OS",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_LESS_LABEL": "Mostra meno",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_one": "+ <2>1</2> altra",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more priorities",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_other": "+ altre <2>{{count}}</2>",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITY_ALL_LABEL": "Tutte",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITY_TITLE": "Priorità",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_READ_TITLE": "Letti/non letti",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_REPLICABILITY_ALL_LABEL": "Tutte",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_REPLICABILITY_SHOW_LESS_LABEL": "Mostra meno",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_REPLICABILITY_SHOW_MORE_LABEL_one": "+ <2>1</2> altra",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_REPLICABILITY_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more replicabilities",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_REPLICABILITY_SHOW_MORE_LABEL_other": "+ altre <2>{{count}}</2>",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_REPLICABILITY_TITLE": "Replicabilità",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITIES_SHOW_LESS_LABEL": "Mostra meno",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITIES_SHOW_MORE_LABEL_one": "+ <2>1</2> altra",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITIES_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more severities",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITIES_SHOW_MORE_LABEL_other": "+ altre <2>{{count}}</2>",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITY_ALL_LABEL": "Tutte",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITY_TITLE": "Gravità",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAG_SHOW_LESS_LABEL": "Mostra meno",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAG_SHOW_MORE_LABEL_one": "+ <2>1</2> altro",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAG_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more tags",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAG_SHOW_MORE_LABEL_other": "+ altri <2>{{count}}</2>",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAGS_ALL_LABEL": "Tutti",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAGS_TITLE": "Tag",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TYPOLOGY_ALL_LABEL": "Tutte",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TYPOLOGY_SHOW_LESS_LABEL": "Mostra meno",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TYPOLOGY_SHOW_MORE_LABEL_one": "+ <2>1</2> altra",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TYPOLOGY_SHOW_MORE_LABEL_many": "Show <2>{{typologies}}</2> more typologies",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TYPOLOGY_SHOW_MORE_LABEL_other": "+ altre <2>{{count}}</2>",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TYPOLOGY_TITLE": "Tipologia",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_USECASE_ALL_LABEL": "Tutti",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_USECASE_SHOW_LESS_LABEL": "Mostra meno",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_USECASE_SHOW_MORE_LABEL_one": "+ <2>1</2> altro",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_USECASE_SHOW_MORE_LABEL_many": "Show <2>{{useCases}}</2> more Use Cases",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_USECASE_SHOW_MORE_LABEL_other": "+ altri <2>{{count}}</2>",
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_USECASE_TITLE": "Use Case",
"__BUGS_PAGE_FILTER_DRAWER_CONFIRM_BUTTON": "Vedi risultati",
Expand Down Expand Up @@ -181,6 +194,9 @@
"__BUGS_PAGE_VIEW_BUG_TOOLTIP": "Apri il bug",
"__BUGS_PAGE_WARNING_POSSIBLE_EMPTY_CASES": "Al momento non abbiamo trovato bug in altri Use Case oppure il test non prevede altri Use Case",
"__BUGS_PAGE_WARNING_POSSIBLE_EMPTY_STATUS": "Al momento non abbiamo trovato bug in altri Stati oppure il test non prevede altri Stati",
"__BUGS_PREVIEW_MEDIA_TOOLTIP_TEXT": "Allegati",
"__BUGS_PREVIEW_RELATED_BUGS_TOOLTIP_TEXT": "Bug collegati",
"__BUGS_PREVIEW_TAG_TOOLTIP_TEXT": "Dettagli",
"__BUGS_PRIORITY_FILTER_ITEM_NO_ITEMS": "Tutte le priorità",
"__BUGS_READ_FILTER_ITEM_ALL": "Tutti i bug",
"__BUGS_READ_FILTER_ITEM_DRAWER_ALL": "Tutti",
Expand All @@ -191,13 +207,10 @@
"__BUGS_SEVERITY_FILTER_ITEM_NO_ITEMS": "Tutte le gravità",
"__BUGS_TABLE_BUG_ID_HEADER_COLUMN": "Bug ID",
"__BUGS_TABLE_DUPLICATE_HEADER_COLUMN": "Duplicati",
"__BUGS_TABLE_DUPLICATE_TOOLTIP_TEXT": "Questa icona segnala i bug unici",
"__BUGS_TABLE_PRIORITY_HEADER_COLUMN": "Priorità",
"__BUGS_TABLE_SEVERITY_HEADER_COLUMN": "Gravità",
"__BUGS_TABLE_TITLE_HEADER_COLUMN": "Bug",
"__BUGS_TABLE_DUPLICATE_TOOLTIP_TEXT": "Questa icona segnala i bug unici",
"__BUGS_PREVIEW_MEDIA_TOOLTIP_TEXT": "Allegati",
"__BUGS_PREVIEW_TAG_TOOLTIP_TEXT": "Dettagli",
"__BUGS_PREVIEW_RELATED_BUGS_TOOLTIP_TEXT": "Bug collegati",
"__BUGS_TAGS_FILTER_ITEM_NO_ITEMS": "Tag",
"__BUGS_TAGS_FILTER_ITEM_NO_TAGS": "Nessun tag",
"__BUGS_TYPES_FILTER_ITEM_NO_ITEMS": "Tipologia",
Expand Down Expand Up @@ -368,6 +381,9 @@
"__DASHBOARD_EMPTY_SEARCH_RESULTS_TITLE": "Non abbiamo trovato nessuna campagna",
"__DASHBOARD_SEARCH_INPUT_PLACEHOLDER": "Cerca...",
"__DASHBOARD_SKY_JOTFORM_LAUNCH_CP_BUTTON": "Lancia una campagna",
"__ERROR_PAGE_BUTTON": "Aggiorna la pagina",
"__ERROR_PAGE_SUBTITLE": "Ecco un consiglio banale che il più delle volte funziona.",
"__ERROR_PAGE_TITLE": "Non è così che doveva andare.",
"__EXPERIENTIAL_LABEL": "Esperienziali",
"__EXPRESS_2_WIZARD_STEP_HOW_USE_CASE_MODAL_DELETE_USE_CASE_LABEL": "Elimina Test Case",
"__EXPRESS_3_WIZARD_STEP_CONFIRM_WHO_TEXT": "I tuoi utenti",
Expand Down Expand Up @@ -632,6 +648,7 @@
"__PAGE_BUG_SEARCH_EMPTY_STATE_SUB": "Prova con parole chiave diverse o più comuni",
"__PAGE_BUGS_UNREAD_PILL": "Non letti",
"__PAGE_CAMPAIGN_WIDGET_BUGS_BY_TYPE_AXIS_BOTTOM_LABEL_one": "Bug",
"__PAGE_CAMPAIGN_WIDGET_BUGS_BY_TYPE_AXIS_BOTTOM_LABEL_many": "",
"__PAGE_CAMPAIGN_WIDGET_BUGS_BY_TYPE_AXIS_BOTTOM_LABEL_other": "Bug",
"__PAGE_CAMPAIGN_WIDGET_BUGS_BY_TYPE_AXIS_LEFT_LABEL": "Tipologie",
"__PAGE_HEADER_BUGS_DOTS_MENU_ITEM_INT_CENTER": "Integra con altri tool",
Expand Down Expand Up @@ -681,21 +698,30 @@
"__WORKSPACE_SETTINGS_MODAL_CTA_COPY_LINK": "Copia il link alla pagina",
"__WORKSPACE_SETTINGS_MODAL_TITLE": "Gestisci gli utenti",
"Devices ({{count}})_one": "Dispositivi ({{count}})",
"Devices ({{count}})_many": "",
"Devices ({{count}})_other": "Dispositivi ({{count}})",
"OS ({{count}})_one": "OS ({{count}})",
"OS ({{count}})_many": "",
"OS ({{count}})_other": "OS ({{count}})",
"Priority ({{count}})_one": "",
"Priority ({{count}})_many": "",
"Priority ({{count}})_other": "",
"Replicability ({{count}})_one": "Replicabilità ({{count}})",
"Replicability ({{count}})_many": "",
"Replicability ({{count}})_other": "Replicabilità ({{count}})",
"Severity ({{count}})_one": "Gravità ({{count}})",
"Severity ({{count}})_many": "",
"Severity ({{count}})_other": "Gravità ({{count}})",
"Status ({{count}})_one": "Stato ({{count}})",
"Status ({{count}})_many": "",
"Status ({{count}})_other": "Stati ({{count}})",
"Tags ({{count}})_one": "Tag ({{count}})",
"Tags ({{count}})_many": "",
"Tags ({{count}})_other": "Tag ({{count}})",
"Typology ({{count}})_one": "Tipologia ({{count}})",
"Typology ({{count}})_many": "",
"Typology ({{count}})_other": "Tipologie ({{count}})",
"Use Cases ({{count}})_one": "Use Case ({{count}})",
"Use Cases ({{count}})_many": "",
"Use Cases ({{count}})_other": "Use Case ({{count}})"
}