[WEB-5248] chore: translations and empty state refactor (#8021)

* chore: translations code refactoring

* chore: empty state translation refactor

* chore: code refactor
This commit is contained in:
Anmol Singh Bhatia 2025-10-28 13:31:06 +05:30 committed by GitHub
parent cf7f891bcb
commit b7aa25f2c6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
46 changed files with 131 additions and 127 deletions

View file

@ -98,11 +98,11 @@ const ProjectCyclesPage = observer(() => {
<div className="h-full place-items-center"> <div className="h-full place-items-center">
<EmptyStateDetailed <EmptyStateDetailed
assetKey="cycle" assetKey="cycle"
title={t("project.cycles.title")} title={t("project_empty_state.cycles.title")}
description={t("project.cycles.description")} description={t("project_empty_state.cycles.description")}
actions={[ actions={[
{ {
label: t("project.cycles.cta_primary"), label: t("project_empty_state.cycles.cta_primary"),
onClick: () => setCreateModal(true), onClick: () => setCreateModal(true),
variant: "primary", variant: "primary",
disabled: !hasMemberLevelPermission, disabled: !hasMemberLevelPermission,

View file

@ -90,11 +90,11 @@ const WebhooksListPage = observer(() => {
<div className="h-full w-full flex items-center justify-center"> <div className="h-full w-full flex items-center justify-center">
<EmptyStateCompact <EmptyStateCompact
assetKey="webhook" assetKey="webhook"
title={t("settings.webhooks.title")} title={t("settings_empty_state.webhooks.title")}
description={t("settings.webhooks.description")} description={t("settings_empty_state.webhooks.description")}
actions={[ actions={[
{ {
label: t("settings.webhooks.cta_primary"), label: t("settings_empty_state.webhooks.cta_primary"),
onClick: () => { onClick: () => {
captureClick({ captureClick({
elementName: WORKSPACE_SETTINGS_TRACKER_ELEMENTS.EMPTY_STATE_ADD_WEBHOOK_BUTTON, elementName: WORKSPACE_SETTINGS_TRACKER_ELEMENTS.EMPTY_STATE_ADD_WEBHOOK_BUTTON,

View file

@ -85,11 +85,11 @@ const ApiTokensPage = observer(() => {
<EmptyStateCompact <EmptyStateCompact
assetKey="token" assetKey="token"
assetClassName="size-20" assetClassName="size-20"
title={t("settings.tokens.title")} title={t("settings_empty_state.tokens.title")}
description={t("settings.tokens.description")} description={t("settings_empty_state.tokens.description")}
actions={[ actions={[
{ {
label: t("settings.tokens.cta_primary"), label: t("settings_empty_state.tokens.cta_primary"),
onClick: () => { onClick: () => {
captureClick({ captureClick({
elementName: PROFILE_SETTINGS_TRACKER_ELEMENTS.EMPTY_STATE_ADD_PAT_BUTTON, elementName: PROFILE_SETTINGS_TRACKER_ELEMENTS.EMPTY_STATE_ADD_PAT_BUTTON,

View file

@ -157,7 +157,7 @@ export function DataTable<TData, TValue>({ columns, data, searchPlaceholder, act
assetKey="unknown" assetKey="unknown"
assetClassName="size-20" assetClassName="size-20"
rootClassName="border border-custom-border-100 px-5 py-10 md:py-20 md:px-20" rootClassName="border border-custom-border-100 px-5 py-10 md:py-20 md:px-20"
title={t("workspace.analytics_work_items.title")} title={t("workspace_empty_state.analytics_work_items.title")}
/> />
</TableCell> </TableCell>
</TableRow> </TableRow>

View file

@ -58,7 +58,7 @@ const ProjectInsights = observer(() => {
assetKey="unknown" assetKey="unknown"
assetClassName="size-20" assetClassName="size-20"
rootClassName="border border-custom-border-100 px-5 py-10 md:py-20 md:px-20" rootClassName="border border-custom-border-100 px-5 py-10 md:py-20 md:px-20"
title={t("workspace.analytics_work_items.title")} title={t("workspace_empty_state.analytics_work_items.title")}
/> />
) : ( ) : (
<div className="gap-8 lg:flex"> <div className="gap-8 lg:flex">

View file

@ -123,7 +123,7 @@ const CreatedVsResolved = observer(() => {
assetKey="unknown" assetKey="unknown"
assetClassName="size-20" assetClassName="size-20"
rootClassName="border border-custom-border-100 px-5 py-10 md:py-20 md:px-20" rootClassName="border border-custom-border-100 px-5 py-10 md:py-20 md:px-20"
title={t("workspace.analytics_work_items.title")} title={t("workspace_empty_state.analytics_work_items.title")}
/> />
)} )}
</AnalyticsSectionWrapper> </AnalyticsSectionWrapper>

View file

@ -234,7 +234,7 @@ const PriorityChart = observer((props: Props) => {
assetKey="unknown" assetKey="unknown"
assetClassName="size-20" assetClassName="size-20"
rootClassName="border border-custom-border-100 px-5 py-10 md:py-20 md:px-20" rootClassName="border border-custom-border-100 px-5 py-10 md:py-20 md:px-20"
title={t("workspace.analytics_work_items.title")} title={t("workspace_empty_state.analytics_work_items.title")}
/> />
)} )}
</div> </div>

View file

@ -69,8 +69,8 @@ export const ArchivedCycleLayoutRoot: React.FC = observer(() => {
<div className="h-full place-items-center"> <div className="h-full place-items-center">
<EmptyStateDetailed <EmptyStateDetailed
assetKey="archived-cycle" assetKey="archived-cycle"
title={t("workspace.archive_cycles.title")} title={t("workspace_empty_state.archive_cycles.title")}
description={t("workspace.archive_cycles.description")} description={t("workspace_empty_state.archive_cycles.description")}
/> />
</div> </div>
) : ( ) : (

View file

@ -79,11 +79,11 @@ export const EstimateRoot: FC<TEstimateRoot> = observer((props) => {
<EmptyStateCompact <EmptyStateCompact
assetKey="estimate" assetKey="estimate"
assetClassName="size-20" assetClassName="size-20"
title={t("settings.estimates.title")} title={t("settings_empty_state.estimates.title")}
description={t("settings.estimates.description")} description={t("settings_empty_state.estimates.description")}
actions={[ actions={[
{ {
label: t("settings.estimates.cta_primary"), label: t("settings_empty_state.estimates.cta_primary"),
onClick: () => setIsEstimateCreateModalOpen(true), onClick: () => setIsEstimateCreateModalOpen(true),
}, },
]} ]}

View file

@ -124,8 +124,8 @@ export const PrevExports = observer((props: Props) => {
<div className="flex h-full w-full items-center justify-center"> <div className="flex h-full w-full items-center justify-center">
<EmptyStateCompact <EmptyStateCompact
assetKey="export" assetKey="export"
title={t("settings.exports.title")} title={t("settings_empty_state.exports.title")}
description={t("settings.exports.description")} description={t("settings_empty_state.exports.description")}
align="start" align="start"
rootClassName="py-20" rootClassName="py-20"
/> />

View file

@ -8,7 +8,7 @@ export const LinksEmptyState = () => {
<EmptyStateCompact <EmptyStateCompact
assetKey="link" assetKey="link"
assetClassName="w-20 h-20" assetClassName="w-20 h-20"
title={t("workspace.home_widget_quick_links.title")} title={t("workspace_empty_state.home_widget_quick_links.title")}
/> />
</div> </div>
); );

View file

@ -101,7 +101,11 @@ export const InboxIssueRoot: FC<TInboxIssueRoot> = observer((props) => {
inboxIssueId={inboxIssueId.toString()} inboxIssueId={inboxIssueId.toString()}
/> />
) : ( ) : (
<EmptyStateCompact assetKey="intake" title={t("project.intake_main.title")} assetClassName="size-20" /> <EmptyStateCompact
assetKey="intake"
title={t("project_empty_state.intake_main.title")}
assetClassName="size-20"
/>
)} )}
</div> </div>
</> </>

View file

@ -144,12 +144,12 @@ export const InboxSidebar: FC<IInboxSidebarProps> = observer((props) => {
) : currentTab === EInboxIssueCurrentTab.OPEN ? ( ) : currentTab === EInboxIssueCurrentTab.OPEN ? (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="inbox" assetKey="inbox"
title={t("project.intake_sidebar.title")} title={t("project_empty_state.intake_sidebar.title")}
description={t("project.intake_sidebar.description")} description={t("project_empty_state.intake_sidebar.description")}
assetClassName="size-20" assetClassName="size-20"
actions={[ actions={[
{ {
label: t("project.intake_sidebar.cta_primary"), label: t("project_empty_state.intake_sidebar.cta_primary"),
onClick: () => router.push(`/${workspaceSlug}/projects/${projectId}/intake`), onClick: () => router.push(`/${workspaceSlug}/projects/${projectId}/intake`),
variant: "primary", variant: "primary",
}, },

View file

@ -48,11 +48,11 @@ export const ProjectArchivedEmptyState: React.FC = observer(() => {
) : ( ) : (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="archived-work-item" assetKey="archived-work-item"
title={t("workspace.archive_work_items.title")} title={t("workspace_empty_state.archive_work_items.title")}
description={t("workspace.archive_work_items.description")} description={t("workspace_empty_state.archive_work_items.description")}
actions={[ actions={[
{ {
label: t("workspace.archive_work_items.cta_primary"), label: t("workspace_empty_state.archive_work_items.cta_primary"),
onClick: () => router.push(`/${workspaceSlug}/settings/projects/${projectId}/automations`), onClick: () => router.push(`/${workspaceSlug}/settings/projects/${projectId}/automations`),
disabled: !canPerformEmptyStateActions, disabled: !canPerformEmptyStateActions,
variant: "primary", variant: "primary",

View file

@ -103,11 +103,11 @@ export const CycleEmptyState: React.FC = observer(() => {
) : ( ) : (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="work-item" assetKey="work-item"
title={t("project.cycle_work_items.title")} title={t("project_empty_state.cycle_work_items.title")}
description={t("project.cycle_work_items.description")} description={t("project_empty_state.cycle_work_items.description")}
actions={[ actions={[
{ {
label: t("project.cycle_work_items.cta_primary"), label: t("project_empty_state.cycle_work_items.cta_primary"),
onClick: () => { onClick: () => {
captureClick({ elementName: WORK_ITEM_TRACKER_ELEMENTS.EMPTY_STATE_ADD_BUTTON.CYCLE }); captureClick({ elementName: WORK_ITEM_TRACKER_ELEMENTS.EMPTY_STATE_ADD_BUTTON.CYCLE });
toggleCreateIssueModal(true, EIssuesStoreType.CYCLE); toggleCreateIssueModal(true, EIssuesStoreType.CYCLE);
@ -117,7 +117,7 @@ export const CycleEmptyState: React.FC = observer(() => {
"data-ph-element": WORK_ITEM_TRACKER_ELEMENTS.EMPTY_STATE_ADD_BUTTON.CYCLE, "data-ph-element": WORK_ITEM_TRACKER_ELEMENTS.EMPTY_STATE_ADD_BUTTON.CYCLE,
}, },
{ {
label: t("project.cycle_work_items.cta_secondary"), label: t("project_empty_state.cycle_work_items.cta_secondary"),
onClick: () => setCycleIssuesListModal(true), onClick: () => setCycleIssuesListModal(true),
disabled: !canPerformEmptyStateActions, disabled: !canPerformEmptyStateActions,
variant: "outline-primary", variant: "outline-primary",

View file

@ -90,11 +90,11 @@ export const ModuleEmptyState: React.FC = observer(() => {
) : ( ) : (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="work-item" assetKey="work-item"
title={t("project.module_work_items.title")} title={t("project_empty_state.module_work_items.title")}
description={t("project.module_work_items.description")} description={t("project_empty_state.module_work_items.description")}
actions={[ actions={[
{ {
label: t("project.module_work_items.cta_primary"), label: t("project_empty_state.module_work_items.cta_primary"),
onClick: () => { onClick: () => {
captureClick({ elementName: WORK_ITEM_TRACKER_ELEMENTS.EMPTY_STATE_ADD_BUTTON.MODULE }); captureClick({ elementName: WORK_ITEM_TRACKER_ELEMENTS.EMPTY_STATE_ADD_BUTTON.MODULE });
toggleCreateIssueModal(true, EIssuesStoreType.MODULE); toggleCreateIssueModal(true, EIssuesStoreType.MODULE);
@ -103,7 +103,7 @@ export const ModuleEmptyState: React.FC = observer(() => {
variant: "primary", variant: "primary",
}, },
{ {
label: t("project.module_work_items.cta_secondary"), label: t("project_empty_state.module_work_items.cta_secondary"),
onClick: () => setModuleIssuesListModal(true), onClick: () => setModuleIssuesListModal(true),
disabled: !canPerformEmptyStateActions, disabled: !canPerformEmptyStateActions,
variant: "outline-primary", variant: "outline-primary",

View file

@ -48,11 +48,11 @@ export const ProjectEmptyState: React.FC = observer(() => {
) : ( ) : (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="work-item" assetKey="work-item"
title={t("project.work_items.title")} title={t("project_empty_state.work_items.title")}
description={t("project.work_items.description")} description={t("project_empty_state.work_items.description")}
actions={[ actions={[
{ {
label: t("project.work_items.cta_primary"), label: t("project_empty_state.work_items.cta_primary"),
onClick: () => { onClick: () => {
captureClick({ elementName: WORK_ITEM_TRACKER_ELEMENTS.EMPTY_STATE_ADD_BUTTON.WORK_ITEMS }); captureClick({ elementName: WORK_ITEM_TRACKER_ELEMENTS.EMPTY_STATE_ADD_BUTTON.WORK_ITEMS });
toggleCreateIssueModal(true, EIssuesStoreType.PROJECT); toggleCreateIssueModal(true, EIssuesStoreType.PROJECT);

View file

@ -34,13 +34,13 @@ export const WorkspaceDraftEmptyState: FC = observer(() => {
/> />
<div className="relative h-full w-full overflow-y-auto"> <div className="relative h-full w-full overflow-y-auto">
<EmptyStateDetailed <EmptyStateDetailed
title={t("workspace.drafts.title")} title={t("workspace_empty_state.drafts.title")}
description={t("workspace.drafts.description")} description={t("workspace_empty_state.drafts.description")}
assetKey="draft" assetKey="draft"
assetClassName="size-20" assetClassName="size-20"
actions={[ actions={[
{ {
label: t("workspace.drafts.cta_primary"), label: t("workspace_empty_state.drafts.cta_primary"),
onClick: () => { onClick: () => {
setIsDraftIssueModalOpen(true); setIsDraftIssueModalOpen(true);
}, },

View file

@ -112,11 +112,11 @@ export const ProjectSettingsLabelList: React.FC = observer(() => {
<EmptyStateCompact <EmptyStateCompact
assetKey="label" assetKey="label"
assetClassName="size-20" assetClassName="size-20"
title={t("settings.labels.title")} title={t("settings_empty_state.labels.title")}
description={t("settings.labels.description")} description={t("settings_empty_state.labels.description")}
actions={[ actions={[
{ {
label: t("settings.labels.cta_primary"), label: t("settings_empty_state.labels.cta_primary"),
onClick: () => { onClick: () => {
newLabel(); newLabel();
captureClick({ captureClick({

View file

@ -72,8 +72,8 @@ export const ArchivedModuleLayoutRoot: React.FC = observer(() => {
<div className="h-full place-items-center"> <div className="h-full place-items-center">
<EmptyStateDetailed <EmptyStateDetailed
assetKey="archived-module" assetKey="archived-module"
title={t("workspace.archive_modules.title")} title={t("workspace_empty_state.archive_modules.title")}
description={t("workspace.archive_modules.description")} description={t("workspace_empty_state.archive_modules.description")}
/> />
</div> </div>
) : ( ) : (

View file

@ -50,11 +50,11 @@ export const ModulesListView: React.FC = observer(() => {
return ( return (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="module" assetKey="module"
title={t("project.modules.title")} title={t("project_empty_state.modules.title")}
description={t("project.modules.description")} description={t("project_empty_state.modules.description")}
actions={[ actions={[
{ {
label: t("project.modules.cta_primary"), label: t("project_empty_state.modules.cta_primary"),
onClick: () => toggleCreateModuleModal(true), onClick: () => toggleCreateModuleModal(true),
disabled: !canPerformEmptyStateActions, disabled: !canPerformEmptyStateActions,
variant: "primary", variant: "primary",

View file

@ -94,11 +94,11 @@ export const PagesListMainContent: React.FC<Props> = observer((props) => {
return ( return (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="page" assetKey="page"
title={t("project.pages.title")} title={t("project_empty_state.pages.title")}
description={t("project.pages.description")} description={t("project_empty_state.pages.description")}
actions={[ actions={[
{ {
label: t("project.pages.cta_primary"), label: t("project_empty_state.pages.cta_primary"),
onClick: () => { onClick: () => {
handleCreatePage(); handleCreatePage();
captureClick({ elementName: PROJECT_PAGE_TRACKER_ELEMENTS.EMPTY_STATE_CREATE_BUTTON }); captureClick({ elementName: PROJECT_PAGE_TRACKER_ELEMENTS.EMPTY_STATE_CREATE_BUTTON });
@ -114,11 +114,11 @@ export const PagesListMainContent: React.FC<Props> = observer((props) => {
return ( return (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="page" assetKey="page"
title={t("project.pages.title")} title={t("project_empty_state.pages.title")}
description={t("project.pages.description")} description={t("project_empty_state.pages.description")}
actions={[ actions={[
{ {
label: t("project.pages.cta_primary"), label: t("project_empty_state.pages.cta_primary"),
onClick: () => { onClick: () => {
handleCreatePage(); handleCreatePage();
captureClick({ elementName: PROJECT_PAGE_TRACKER_ELEMENTS.EMPTY_STATE_CREATE_BUTTON }); captureClick({ elementName: PROJECT_PAGE_TRACKER_ELEMENTS.EMPTY_STATE_CREATE_BUTTON });
@ -133,11 +133,11 @@ export const PagesListMainContent: React.FC<Props> = observer((props) => {
return ( return (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="page" assetKey="page"
title={t("project.pages.title")} title={t("project_empty_state.pages.title")}
description={t("project.pages.description")} description={t("project_empty_state.pages.description")}
actions={[ actions={[
{ {
label: t("project.pages.cta_primary"), label: t("project_empty_state.pages.cta_primary"),
onClick: () => { onClick: () => {
handleCreatePage(); handleCreatePage();
captureClick({ elementName: PROJECT_PAGE_TRACKER_ELEMENTS.EMPTY_STATE_CREATE_BUTTON }); captureClick({ elementName: PROJECT_PAGE_TRACKER_ELEMENTS.EMPTY_STATE_CREATE_BUTTON });
@ -152,8 +152,8 @@ export const PagesListMainContent: React.FC<Props> = observer((props) => {
return ( return (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="page" assetKey="page"
title={t("project.archive_pages.title")} title={t("project_empty_state.archive_pages.title")}
description={t("project.archive_pages.description")} description={t("project_empty_state.archive_pages.description")}
/> />
); );
} }

View file

@ -62,7 +62,7 @@ export const ProfilePriorityDistribution: React.FC<Props> = ({ userProfile }) =>
<EmptyStateCompact <EmptyStateCompact
assetKey="priority" assetKey="priority"
assetClassName="size-20" assetClassName="size-20"
title={t("workspace.your_work_by_priority.title")} title={t("workspace_empty_state.your_work_by_priority.title")}
/> />
)} )}
</Card> </Card>

View file

@ -74,7 +74,7 @@ export const ProfileStateDistribution: React.FC<Props> = ({ stateDistribution, u
<EmptyStateCompact <EmptyStateCompact
assetKey="priority" assetKey="priority"
assetClassName="size-20" assetClassName="size-20"
title={t("workspace.your_work_by_priority.title")} title={t("workspace_empty_state.your_work_by_priority.title")}
/> />
)} )}
</Card> </Card>

View file

@ -77,13 +77,13 @@ export const ProjectCardList = observer((props: TProjectCardListProps) => {
title={ title={
currentWorkspaceDisplayFilters?.archived_projects && currentWorkspaceDisplayFilters?.archived_projects &&
calculateTotalFilters(currentWorkspaceFilters ?? {}) === 0 calculateTotalFilters(currentWorkspaceFilters ?? {}) === 0
? t("workspace.projects_archived.title") ? t("workspace_empty_state.projects_archived.title")
: t("common_empty_state.search.title") : t("common_empty_state.search.title")
} }
description={ description={
currentWorkspaceDisplayFilters?.archived_projects && currentWorkspaceDisplayFilters?.archived_projects &&
calculateTotalFilters(currentWorkspaceFilters ?? {}) === 0 calculateTotalFilters(currentWorkspaceFilters ?? {}) === 0
? t("workspace.projects_archived.description") ? t("workspace_empty_state.projects_archived.description")
: t("common_empty_state.search.description") : t("common_empty_state.search.description")
} }
assetKey={ assetKey={

View file

@ -58,11 +58,11 @@ export const ProjectViewsList = observer(() => {
) : ( ) : (
<EmptyStateDetailed <EmptyStateDetailed
assetKey="view" assetKey="view"
title={t("project.views.title")} title={t("project_empty_state.views.title")}
description={t("project.views.description")} description={t("project_empty_state.views.description")}
actions={[ actions={[
{ {
label: t("project.views.cta_primary"), label: t("project_empty_state.views.cta_primary"),
onClick: () => toggleCreateViewModal(true), onClick: () => toggleCreateViewModal(true),
disabled: !canPerformEmptyStateActions, disabled: !canPerformEmptyStateActions,
variant: "primary", variant: "primary",

View file

@ -22,8 +22,8 @@ export const NotificationEmptyState: FC<TNotificationEmptyStateProps> = observer
assetClassName="size-24" assetClassName="size-24"
title={ title={
currentNotificationTab === ENotificationTab.ALL currentNotificationTab === ENotificationTab.ALL
? t("workspace.inbox_sidebar_all.title") ? t("workspace_empty_state.inbox_sidebar_all.title")
: t("workspace.inbox_sidebar_mentions.title") : t("workspace_empty_state.inbox_sidebar_mentions.title")
} }
className="max-w-56" className="max-w-56"
/> />

View file

@ -23,7 +23,7 @@ export default {
cta_primary: "Zkuste znovu načíst", cta_primary: "Zkuste znovu načíst",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Začněte s vaší první pracovní položkou.", title: "Začněte s vaší první pracovní položkou.",
description: description:
@ -92,7 +92,7 @@ export default {
title: "Vyberte příchozí pracovní položku pro zobrazení jejích podrobností", title: "Vyberte příchozí pracovní položku pro zobrazení jejích podrobností",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Zatím žádné archivované pracovní položky", title: "Zatím žádné archivované pracovní položky",
description: description:
@ -156,7 +156,7 @@ export default {
title: "Nastavte příjem pro správu příchozích požadavků a sledování, jak jsou přijímány a odmítány", title: "Nastavte příjem pro správu příchozích požadavků a sledování, jak jsou přijímány a odmítány",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Zatím žádné odhady", title: "Zatím žádné odhady",
description: "Definujte, jak váš tým měří úsilí, a sledujte to konzistentně napříč všemi pracovními položkami.", description: "Definujte, jak váš tým měří úsilí, a sledujte to konzistentně napříč všemi pracovními položkami.",

View file

@ -25,7 +25,7 @@ export default {
cta_primary: "Versuchen Sie neu zu laden", cta_primary: "Versuchen Sie neu zu laden",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Beginnen Sie mit Ihrem ersten Arbeitselement.", title: "Beginnen Sie mit Ihrem ersten Arbeitselement.",
description: description:
@ -94,7 +94,7 @@ export default {
title: "Wählen Sie ein Intake-Arbeitselement aus, um seine Details anzuzeigen", title: "Wählen Sie ein Intake-Arbeitselement aus, um seine Details anzuzeigen",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Noch keine archivierten Arbeitselemente", title: "Noch keine archivierten Arbeitselemente",
description: description:
@ -162,7 +162,7 @@ export default {
"Richten Sie Intake ein, um eingehende Anfragen zu verwalten und zu verfolgen, wie sie akzeptiert und abgelehnt werden", "Richten Sie Intake ein, um eingehende Anfragen zu verwalten und zu verfolgen, wie sie akzeptiert und abgelehnt werden",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Noch keine Schätzungen", title: "Noch keine Schätzungen",
description: description:

View file

@ -23,7 +23,7 @@ export default {
cta_primary: "Try reloading", cta_primary: "Try reloading",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Start with your first work item.", title: "Start with your first work item.",
description: description:
@ -90,7 +90,7 @@ export default {
title: "Select an Intake work item to view its details", title: "Select an Intake work item to view its details",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "No archived work items yet", title: "No archived work items yet",
description: description:
@ -152,7 +152,7 @@ export default {
title: "Set up intake to manage incoming requests and track how they're accepted and rejected", title: "Set up intake to manage incoming requests and track how they're accepted and rejected",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "No estimates yet", title: "No estimates yet",
description: "Define how your team measures effort and track it consistently across all work items.", description: "Define how your team measures effort and track it consistently across all work items.",

View file

@ -25,7 +25,7 @@ export default {
cta_primary: "Intentar recargar", cta_primary: "Intentar recargar",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Comienza con tu primer elemento de trabajo.", title: "Comienza con tu primer elemento de trabajo.",
description: description:
@ -93,7 +93,7 @@ export default {
title: "Selecciona un elemento de trabajo de Entrada para ver sus detalles", title: "Selecciona un elemento de trabajo de Entrada para ver sus detalles",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Aún no hay elementos de trabajo archivados", title: "Aún no hay elementos de trabajo archivados",
description: description:
@ -158,7 +158,7 @@ export default {
title: "Configura la entrada para gestionar las solicitudes entrantes y rastrear cómo se aceptan y rechazan", title: "Configura la entrada para gestionar las solicitudes entrantes y rastrear cómo se aceptan y rechazan",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Aún no hay estimaciones", title: "Aún no hay estimaciones",
description: description:

View file

@ -26,7 +26,7 @@ export default {
cta_primary: "Essayer de recharger", cta_primary: "Essayer de recharger",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Commencez avec votre premier élément de travail.", title: "Commencez avec votre premier élément de travail.",
description: description:
@ -95,7 +95,7 @@ export default {
title: "Sélectionnez un élément de travail Intake pour voir ses détails", title: "Sélectionnez un élément de travail Intake pour voir ses détails",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Aucun élément de travail archivé pour le moment", title: "Aucun élément de travail archivé pour le moment",
description: description:
@ -160,7 +160,7 @@ export default {
title: "Configurez l'intake pour gérer les demandes entrantes et suivre comment elles sont acceptées et rejetées", title: "Configurez l'intake pour gérer les demandes entrantes et suivre comment elles sont acceptées et rejetées",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Aucune estimation pour le moment", title: "Aucune estimation pour le moment",
description: description:

View file

@ -24,7 +24,7 @@ export default {
cta_primary: "Coba muat ulang", cta_primary: "Coba muat ulang",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Mulai dengan item kerja pertama Anda.", title: "Mulai dengan item kerja pertama Anda.",
description: description:
@ -92,7 +92,7 @@ export default {
title: "Pilih item kerja Masuk untuk melihat detailnya", title: "Pilih item kerja Masuk untuk melihat detailnya",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Belum ada item kerja yang diarsipkan", title: "Belum ada item kerja yang diarsipkan",
description: description:
@ -158,7 +158,7 @@ export default {
title: "Siapkan masukan untuk mengelola permintaan masuk dan melacak bagaimana mereka diterima dan ditolak", title: "Siapkan masukan untuk mengelola permintaan masuk dan melacak bagaimana mereka diterima dan ditolak",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Belum ada estimasi", title: "Belum ada estimasi",
description: "Tentukan bagaimana tim Anda mengukur upaya dan lacak secara konsisten di semua item kerja.", description: "Tentukan bagaimana tim Anda mengukur upaya dan lacak secara konsisten di semua item kerja.",

View file

@ -26,7 +26,7 @@ export default {
cta_primary: "Prova a ricaricare", cta_primary: "Prova a ricaricare",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Inizia con il tuo primo elemento di lavoro.", title: "Inizia con il tuo primo elemento di lavoro.",
description: description:
@ -95,7 +95,7 @@ export default {
title: "Seleziona un elemento di lavoro di Intake per visualizzarne i dettagli", title: "Seleziona un elemento di lavoro di Intake per visualizzarne i dettagli",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Nessun elemento di lavoro archiviato ancora", title: "Nessun elemento di lavoro archiviato ancora",
description: description:
@ -159,7 +159,7 @@ export default {
title: "Imposta intake per gestire le richieste in arrivo e tracciare come vengono accettate e rifiutate", title: "Imposta intake per gestire le richieste in arrivo e tracciare come vengono accettate e rifiutate",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Nessuna stima ancora", title: "Nessuna stima ancora",
description: description:

View file

@ -23,7 +23,7 @@ export default {
cta_primary: "再読み込みを試す", cta_primary: "再読み込みを試す",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "最初の作業項目から始めましょう。", title: "最初の作業項目から始めましょう。",
description: description:
@ -89,7 +89,7 @@ export default {
title: "インテーク作業項目を選択して詳細を表示", title: "インテーク作業項目を選択して詳細を表示",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "アーカイブされた作業項目はまだありません", title: "アーカイブされた作業項目はまだありません",
description: description:
@ -151,7 +151,7 @@ export default {
title: "インテークを設定して、受信リクエストを管理し、承認と拒否を追跡します", title: "インテークを設定して、受信リクエストを管理し、承認と拒否を追跡します",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "まだ見積もりはありません", title: "まだ見積もりはありません",
description: "チームが労力をどのように測定するかを定義し、すべての作業項目で一貫して追跡します。", description: "チームが労力をどのように測定するかを定義し、すべての作業項目で一貫して追跡します。",

View file

@ -23,7 +23,7 @@ export default {
cta_primary: "다시 로드 시도", cta_primary: "다시 로드 시도",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "첫 번째 작업 항목으로 시작하세요.", title: "첫 번째 작업 항목으로 시작하세요.",
description: description:
@ -89,7 +89,7 @@ export default {
title: "접수 작업 항목을 선택하여 세부 정보 보기", title: "접수 작업 항목을 선택하여 세부 정보 보기",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "아직 보관된 작업 항목이 없습니다", title: "아직 보관된 작업 항목이 없습니다",
description: description:
@ -150,7 +150,7 @@ export default {
title: "접수를 설정하여 들어오는 요청을 관리하고 승인 및 거부 방법을 추적하세요", title: "접수를 설정하여 들어오는 요청을 관리하고 승인 및 거부 방법을 추적하세요",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "아직 추정치가 없습니다", title: "아직 추정치가 없습니다",
description: "팀이 노력을 측정하는 방법을 정의하고 모든 작업 항목에서 일관되게 추적하세요.", description: "팀이 노력을 측정하는 방법을 정의하고 모든 작업 항목에서 일관되게 추적하세요.",

View file

@ -23,7 +23,7 @@ export default {
cta_primary: "Spróbuj przeładować", cta_primary: "Spróbuj przeładować",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Zacznij od swojego pierwszego elementu roboczego.", title: "Zacznij od swojego pierwszego elementu roboczego.",
description: description:
@ -93,7 +93,7 @@ export default {
title: "Wybierz element roboczy Intake, aby wyświetlić jego szczegóły", title: "Wybierz element roboczy Intake, aby wyświetlić jego szczegóły",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Jeszcze brak zarchiwizowanych elementów roboczych", title: "Jeszcze brak zarchiwizowanych elementów roboczych",
description: description:
@ -158,7 +158,7 @@ export default {
"Skonfiguruj przyjmowanie, aby zarządzać przychodzącymi zgłoszeniami i śledzić, jak są akceptowane i odrzucane", "Skonfiguruj przyjmowanie, aby zarządzać przychodzącymi zgłoszeniami i śledzić, jak są akceptowane i odrzucane",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Jeszcze brak szacunków", title: "Jeszcze brak szacunków",
description: description:

View file

@ -25,7 +25,7 @@ export default {
cta_primary: "Tentar recarregar", cta_primary: "Tentar recarregar",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Comece com seu primeiro item de trabalho.", title: "Comece com seu primeiro item de trabalho.",
description: description:
@ -94,7 +94,7 @@ export default {
title: "Selecione um item de trabalho de Entrada para ver seus detalhes", title: "Selecione um item de trabalho de Entrada para ver seus detalhes",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Ainda não há itens de trabalho arquivados", title: "Ainda não há itens de trabalho arquivados",
description: description:
@ -158,7 +158,7 @@ export default {
title: "Configure a entrada para gerenciar solicitações recebidas e rastrear como elas são aceitas e rejeitadas", title: "Configure a entrada para gerenciar solicitações recebidas e rastrear como elas são aceitas e rejeitadas",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Ainda não há estimativas", title: "Ainda não há estimativas",
description: description:

View file

@ -24,7 +24,7 @@ export default {
cta_primary: "Încercați reîncărcarea", cta_primary: "Încercați reîncărcarea",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Începeți cu primul dvs. element de lucru.", title: "Începeți cu primul dvs. element de lucru.",
description: description:
@ -93,7 +93,7 @@ export default {
title: "Selectați un element de lucru de Admitere pentru a vedea detaliile", title: "Selectați un element de lucru de Admitere pentru a vedea detaliile",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Încă nu există elemente de lucru arhivate", title: "Încă nu există elemente de lucru arhivate",
description: description:
@ -157,7 +157,7 @@ export default {
title: "Configurați admiterea pentru a gestiona solicitările primite și a urmări cum sunt acceptate și respinse", title: "Configurați admiterea pentru a gestiona solicitările primite și a urmări cum sunt acceptate și respinse",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Încă nu există estimări", title: "Încă nu există estimări",
description: description:

View file

@ -24,7 +24,7 @@ export default {
cta_primary: "Попробовать перезагрузить", cta_primary: "Попробовать перезагрузить",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Начните с вашего первого рабочего элемента.", title: "Начните с вашего первого рабочего элемента.",
description: description:
@ -94,7 +94,7 @@ export default {
title: "Выберите рабочий элемент приема, чтобы просмотреть его детали", title: "Выберите рабочий элемент приема, чтобы просмотреть его детали",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Пока нет архивированных рабочих элементов", title: "Пока нет архивированных рабочих элементов",
description: description:
@ -160,7 +160,7 @@ export default {
title: "Настройте прием для управления входящими запросами и отслеживания их принятия и отклонения", title: "Настройте прием для управления входящими запросами и отслеживания их принятия и отклонения",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Пока нет оценок", title: "Пока нет оценок",
description: description:

View file

@ -23,7 +23,7 @@ export default {
cta_primary: "Skúste znovu načítať", cta_primary: "Skúste znovu načítať",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Začnite s vašou prvou pracovnou položkou.", title: "Začnite s vašou prvou pracovnou položkou.",
description: description:
@ -92,7 +92,7 @@ export default {
title: "Vyberte príchodzí pracovnú položku na zobrazenie jej podrobností", title: "Vyberte príchodzí pracovnú položku na zobrazenie jej podrobností",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Zatiaľ žiadne archivované pracovné položky", title: "Zatiaľ žiadne archivované pracovné položky",
description: description:
@ -157,7 +157,7 @@ export default {
title: "Nastavte príjem na správu prichádzajúcich požiadaviek a sledovanie, ako sú prijímané a odmietané", title: "Nastavte príjem na správu prichádzajúcich požiadaviek a sledovanie, ako sú prijímané a odmietané",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Zatiaľ žiadne odhady", title: "Zatiaľ žiadne odhady",
description: description:

View file

@ -23,7 +23,7 @@ export default {
cta_primary: "Yeniden yüklemeyi dene", cta_primary: "Yeniden yüklemeyi dene",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "İlk iş öğenizle başlayın.", title: "İlk iş öğenizle başlayın.",
description: description:
@ -91,7 +91,7 @@ export default {
title: "Ayrıntılarını görmek için bir Giriş iş öğesi seçin", title: "Ayrıntılarını görmek için bir Giriş iş öğesi seçin",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Henüz arşivlenmiş iş öğesi yok", title: "Henüz arşivlenmiş iş öğesi yok",
description: description:
@ -157,7 +157,7 @@ export default {
"Gelen istekleri yönetmek ve bunların nasıl kabul edildiğini ve reddedildiğini izlemek için giriş ayarlayın", "Gelen istekleri yönetmek ve bunların nasıl kabul edildiğini ve reddedildiğini izlemek için giriş ayarlayın",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Henüz tahmin yok", title: "Henüz tahmin yok",
description: "Ekibinizin çabayı nasıl ölçtüğünü tanımlayın ve tüm iş öğelerinde tutarlı bir şekilde takip edin.", description: "Ekibinizin çabayı nasıl ölçtüğünü tanımlayın ve tüm iş öğelerinde tutarlı bir şekilde takip edin.",

View file

@ -24,7 +24,7 @@ export default {
cta_primary: "Спробуйте перезавантажити", cta_primary: "Спробуйте перезавантажити",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Почніть з вашого першого робочого елемента.", title: "Почніть з вашого першого робочого елемента.",
description: description:
@ -93,7 +93,7 @@ export default {
title: "Виберіть робочий елемент Intake, щоб переглянути його деталі", title: "Виберіть робочий елемент Intake, щоб переглянути його деталі",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Ще немає архівованих робочих елементів", title: "Ще немає архівованих робочих елементів",
description: description:
@ -158,7 +158,7 @@ export default {
"Налаштуйте вхід для управління вхідними запитами та відстеження того, як вони приймаються та відхиляються", "Налаштуйте вхід для управління вхідними запитами та відстеження того, як вони приймаються та відхиляються",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Ще немає оцінок", title: "Ще немає оцінок",
description: description:

View file

@ -24,7 +24,7 @@ export default {
cta_primary: "Thử tải lại", cta_primary: "Thử tải lại",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "Bắt đầu với mục công việc đầu tiên của bạn.", title: "Bắt đầu với mục công việc đầu tiên của bạn.",
description: description:
@ -92,7 +92,7 @@ export default {
title: "Chọn một mục công việc Tiếp nhận để xem chi tiết của nó", title: "Chọn một mục công việc Tiếp nhận để xem chi tiết của nó",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "Chưa có mục công việc được lưu trữ", title: "Chưa có mục công việc được lưu trữ",
description: description:
@ -157,7 +157,7 @@ export default {
title: "Thiết lập tiếp nhận để quản lý các yêu cầu đến và theo dõi cách chúng được chấp nhận và từ chối", title: "Thiết lập tiếp nhận để quản lý các yêu cầu đến và theo dõi cách chúng được chấp nhận và từ chối",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "Chưa có ước tính", title: "Chưa có ước tính",
description: description:

View file

@ -23,7 +23,7 @@ export default {
cta_primary: "尝试重新加载", cta_primary: "尝试重新加载",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "从您的第一个工作项开始。", title: "从您的第一个工作项开始。",
description: "工作项是项目的构建块 — 分配负责人、设置优先级并轻松跟踪进度。", description: "工作项是项目的构建块 — 分配负责人、设置优先级并轻松跟踪进度。",
@ -87,7 +87,7 @@ export default {
title: "选择一个接收工作项以查看其详细信息", title: "选择一个接收工作项以查看其详细信息",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "暂无已归档工作项", title: "暂无已归档工作项",
description: "通过手动或自动化,您可以归档已完成或已取消的工作项。归档后在此处查找它们。", description: "通过手动或自动化,您可以归档已完成或已取消的工作项。归档后在此处查找它们。",
@ -146,7 +146,7 @@ export default {
title: "设置接收以管理传入请求并跟踪它们的接受和拒绝情况", title: "设置接收以管理传入请求并跟踪它们的接受和拒绝情况",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "暂无估算", title: "暂无估算",
description: "定义团队如何衡量工作量,并在所有工作项中一致地跟踪它。", description: "定义团队如何衡量工作量,并在所有工作项中一致地跟踪它。",

View file

@ -23,7 +23,7 @@ export default {
cta_primary: "嘗試重新載入", cta_primary: "嘗試重新載入",
}, },
}, },
project: { project_empty_state: {
work_items: { work_items: {
title: "從您的第一個工作項開始。", title: "從您的第一個工作項開始。",
description: "工作項是專案的建構模組 — 指派負責人、設定優先順序並輕鬆追蹤進度。", description: "工作項是專案的建構模組 — 指派負責人、設定優先順序並輕鬆追蹤進度。",
@ -87,7 +87,7 @@ export default {
title: "選擇一個接收工作項以查看其詳細資訊", title: "選擇一個接收工作項以查看其詳細資訊",
}, },
}, },
workspace: { workspace_empty_state: {
archive_work_items: { archive_work_items: {
title: "暫無已封存工作項", title: "暫無已封存工作項",
description: "透過手動或自動化,您可以封存已完成或已取消的工作項。封存後在此處尋找它們。", description: "透過手動或自動化,您可以封存已完成或已取消的工作項。封存後在此處尋找它們。",
@ -146,7 +146,7 @@ export default {
title: "設定接收以管理傳入請求並追蹤它們的接受和拒絕情況", title: "設定接收以管理傳入請求並追蹤它們的接受和拒絕情況",
}, },
}, },
settings: { settings_empty_state: {
estimates: { estimates: {
title: "暫無估算", title: "暫無估算",
description: "定義團隊如何衡量工作量,並在所有工作項中一致地追蹤它。", description: "定義團隊如何衡量工作量,並在所有工作項中一致地追蹤它。",