From 7bae987fc0ab5e23314b8efb05d8376e25b3fbf9 Mon Sep 17 00:00:00 2001 From: gakshita Date: Fri, 17 Jan 2025 11:30:50 +0530 Subject: [PATCH 1/4] chore: ln support for cycles constant file --- .../constants/src}/cycle.ts | 32 +++++-------------- packages/constants/src/index.ts | 1 + .../i18n/src/locales/en/translations.json | 12 ++++++- .../i18n/src/locales/es/translations.json | 12 ++++++- .../i18n/src/locales/fr/translations.json | 11 ++++++- .../i18n/src/locales/ja/translations.json | 12 ++++++- .../analytics-sidebar/sidebar-header.tsx | 6 ++-- .../cycles/applied-filters/status.tsx | 6 ++-- .../cycles/dropdowns/filters/status.tsx | 8 +++-- 9 files changed, 65 insertions(+), 35 deletions(-) rename {web/core/constants => packages/constants/src}/cycle.ts (60%) diff --git a/web/core/constants/cycle.ts b/packages/constants/src/cycle.ts similarity index 60% rename from web/core/constants/cycle.ts rename to packages/constants/src/cycle.ts index 025e26c9bad..5f848703da1 100644 --- a/web/core/constants/cycle.ts +++ b/packages/constants/src/cycle.ts @@ -1,20 +1,4 @@ // types -import { TCycleLayoutOptions, TCycleTabOptions } from "@plane/types"; - -export const CYCLE_TABS_LIST: { - key: TCycleTabOptions; - name: string; -}[] = [ - { - key: "active", - name: "Active", - }, - { - key: "all", - name: "All", - }, -]; - export const CYCLE_STATUS: { label: string; value: "current" | "upcoming" | "completed" | "draft"; @@ -24,33 +8,33 @@ export const CYCLE_STATUS: { bgColor: string; }[] = [ { - label: "day left", + label: "project_cycles.status.days_left", value: "current", - title: "In progress", + title: "project_cycles.status.in_progress", color: "#F59E0B", textColor: "text-amber-500", bgColor: "bg-amber-50", }, { - label: "Yet to start", + label: "project_cycles.status.yet_to_start", value: "upcoming", - title: "Yet to start", + title: "project_cycles.status.yet_to_start", color: "#3F76FF", textColor: "text-blue-500", bgColor: "bg-indigo-50", }, { - label: "Completed", + label: "project_cycles.status.completed", value: "completed", - title: "Completed", + title: "project_cycles.status.completed", color: "#16A34A", textColor: "text-green-600", bgColor: "bg-green-50", }, { - label: "Draft", + label: "project_cycles.status.draft", value: "draft", - title: "Draft", + title: "project_cycles.status.draft", color: "#525252", textColor: "text-custom-text-300", bgColor: "bg-custom-background-90", diff --git a/packages/constants/src/index.ts b/packages/constants/src/index.ts index 2b3964ae9fd..45af6da40a7 100644 --- a/packages/constants/src/index.ts +++ b/packages/constants/src/index.ts @@ -14,3 +14,4 @@ export * from "./swr"; export * from "./user"; export * from "./workspace"; export * from "./stickies"; +export * from "./cycle"; diff --git a/packages/i18n/src/locales/en/translations.json b/packages/i18n/src/locales/en/translations.json index 596c3093fa9..8a25a6044cc 100644 --- a/packages/i18n/src/locales/en/translations.json +++ b/packages/i18n/src/locales/en/translations.json @@ -316,5 +316,15 @@ "change_parent_issue": "Change parent issue", "remove_parent_issue": "Remove parent issue", "add_parent": "Add parent", - "loading_members": "Loading members..." + "loading_members": "Loading members...", + + "project_cycles": { + "status": { + "days_left": "Days left", + "completed": "Completed", + "yet_to_start": "Yet to start", + "in_progress": "In progress", + "draft": "Draft" + } + } } diff --git a/packages/i18n/src/locales/es/translations.json b/packages/i18n/src/locales/es/translations.json index 9f2b98792c2..2c35d70512e 100644 --- a/packages/i18n/src/locales/es/translations.json +++ b/packages/i18n/src/locales/es/translations.json @@ -316,5 +316,15 @@ "remove_parent_issue": "Eliminar problema padre", "add_parent": "Agregar padre", "loading_members": "Cargando miembros...", - "inbox": "bandeja de entrada" + "inbox": "bandeja de entrada", + + "project_cycles": { + "status": { + "days_left": "Días restantes", + "completed": "Completado", + "yet_to_start": "Por comenzar", + "in_progress": "En progreso", + "draft": "Borrador" + } + } } diff --git a/packages/i18n/src/locales/fr/translations.json b/packages/i18n/src/locales/fr/translations.json index 0eee868e174..394d7aba400 100644 --- a/packages/i18n/src/locales/fr/translations.json +++ b/packages/i18n/src/locales/fr/translations.json @@ -316,5 +316,14 @@ "remove_parent_issue": "Supprimer le problème parent", "add_parent": "Ajouter un parent", "loading_members": "Chargement des membres...", - "inbox": "Boîte de réception" + "inbox": "Boîte de réception", + "project_cycles": { + "status": { + "days_left": "Jours restants", + "completed": "Terminé", + "yet_to_start": "À démarrer", + "in_progress": "En cours", + "draft": "Brouillon" + } + } } diff --git a/packages/i18n/src/locales/ja/translations.json b/packages/i18n/src/locales/ja/translations.json index fa2b244cc5e..f8f5eaa6f36 100644 --- a/packages/i18n/src/locales/ja/translations.json +++ b/packages/i18n/src/locales/ja/translations.json @@ -316,5 +316,15 @@ "remove_parent_issue": "親問題を削除", "add_parent": "親問題を追加", "loading_members": "メンバーを読み込んでいます...", - "inbox": "受信箱" + "inbox": "受信箱", + + "project_cycles": { + "status": { + "days_left": "残り日数", + "completed": "完了", + "yet_to_start": "未着手", + "in_progress": "進行中", + "draft": "下書き" + } + } } diff --git a/web/core/components/cycles/analytics-sidebar/sidebar-header.tsx b/web/core/components/cycles/analytics-sidebar/sidebar-header.tsx index af645804eb7..db51563d900 100644 --- a/web/core/components/cycles/analytics-sidebar/sidebar-header.tsx +++ b/web/core/components/cycles/analytics-sidebar/sidebar-header.tsx @@ -5,13 +5,14 @@ import { observer } from "mobx-react"; import { Controller, useForm } from "react-hook-form"; import { ArchiveIcon, ArchiveRestoreIcon, ChevronRight, EllipsisIcon, LinkIcon, Trash2 } from "lucide-react"; // types +import { CYCLE_STATUS } from "@plane/constants"; +import { useTranslation } from "@plane/i18n"; import { ICycle } from "@plane/types"; // ui import { CustomMenu, setToast, TOAST_TYPE } from "@plane/ui"; // components import { DateRangeDropdown } from "@/components/dropdowns"; // constants -import { CYCLE_STATUS } from "@/constants/cycle"; import { CYCLE_UPDATED } from "@/constants/event-tracker"; // helpers import { renderFormattedPayloadDate, getDate } from "@/helpers/date-time.helper"; @@ -53,6 +54,7 @@ export const CycleSidebarHeader: FC = observer((props) => { const { allowPermissions } = useUserPermissions(); const { updateCycleDetails, restoreCycle } = useCycle(); const { setTrackElement, captureCycleEvent } = useEventTracker(); + const { t } = useTranslation(); // form info const { control, reset } = useForm({ @@ -283,7 +285,7 @@ export const CycleSidebarHeader: FC = observer((props) => { backgroundColor: `${currentCycle.color}20`, }} > - {currentCycle.title} + {t(currentCycle.title)} )} diff --git a/web/core/components/cycles/applied-filters/status.tsx b/web/core/components/cycles/applied-filters/status.tsx index d46b565033e..e8ef491aeaa 100644 --- a/web/core/components/cycles/applied-filters/status.tsx +++ b/web/core/components/cycles/applied-filters/status.tsx @@ -1,6 +1,7 @@ import { observer } from "mobx-react"; import { X } from "lucide-react"; -import { CYCLE_STATUS } from "@/constants/cycle"; +import { CYCLE_STATUS } from "@plane/constants"; +import { useTranslation } from "@plane/i18n"; import { cn } from "@/helpers/common.helper"; type Props = { @@ -11,6 +12,7 @@ type Props = { export const AppliedStatusFilters: React.FC = observer((props) => { const { handleRemove, values, editable } = props; + const { t } = useTranslation(); return ( <> @@ -25,7 +27,7 @@ export const AppliedStatusFilters: React.FC = observer((props) => { statusDetails?.textColor )} > - {statusDetails?.title} + {statusDetails && t(statusDetails?.title)} {editable && (