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 && (