diff --git a/frontend/messages/en.json b/frontend/messages/en.json
index 139845f..9dd02a9 100644
--- a/frontend/messages/en.json
+++ b/frontend/messages/en.json
@@ -3,21 +3,21 @@
"title": "Hello world!"
},
"Projects": {
- "projects": "プロジェクト",
- "project": "プロジェクト",
- "new_project": "新規プロジェクト",
- "edit_project": "プロジェクトの編集",
- "delete_project": "プロジェクトの削除",
+ "projects": "Projects",
+ "project": "Project",
+ "new_project": "New Project",
+ "edit_project": "Edit Project",
+ "delete_project": "Delete Project",
"id": "ID",
- "name": "名前",
- "detail": "詳細",
- "last_update": "最終更新",
- "actions": "アクション",
- "project_name": "プロジェクト名",
- "project_detail": "プロジェクト詳細",
- "close": "閉じる",
- "create": "作成",
- "update": "作成",
- "please_enter": "プロジェクト名を入力してください"
+ "name": "Name",
+ "detail": "Detail",
+ "last_update": "Last update",
+ "actions": "Actions",
+ "project_name": "Project Name",
+ "project_detail": "Project Detail",
+ "close": "Close",
+ "create": "Create",
+ "update": "Update",
+ "please_enter": "Please enter project name"
}
}
diff --git a/frontend/messages/ja.json b/frontend/messages/ja.json
index b194e49..69a99c8 100644
--- a/frontend/messages/ja.json
+++ b/frontend/messages/ja.json
@@ -3,21 +3,21 @@
"title": "はろー"
},
"Projects": {
- "projects": "Projects",
- "project": "Project",
- "new_project": "New Project",
- "edit_project": "Edit Project",
- "delete_project": "Delete Project",
+ "projects": "プロジェクト",
+ "project": "プロジェクト",
+ "new_project": "新規プロジェクト",
+ "edit_project": "プロジェクトの編集",
+ "delete_project": "プロジェクトの削除",
"id": "ID",
- "name": "Name",
- "detail": "Detail",
- "last_update": "Last update",
- "actions": "Actions",
- "project_name": "Project Name",
- "project_detail": "Project Detail",
- "close": "Close",
- "create": "Create",
- "update": "Update",
- "please_enter": "Please enter project name"
+ "name": "名前",
+ "detail": "詳細",
+ "last_update": "最終更新",
+ "actions": "アクション",
+ "project_name": "プロジェクト名",
+ "project_detail": "プロジェクト詳細",
+ "close": "閉じる",
+ "create": "作成",
+ "update": "更新",
+ "please_enter": "プロジェクト名を入力してください"
}
}
diff --git a/frontend/src/app/[locale]/Header.tsx b/frontend/src/app/[locale]/Header.tsx
index 50a40ad..e8e366b 100644
--- a/frontend/src/app/[locale]/Header.tsx
+++ b/frontend/src/app/[locale]/Header.tsx
@@ -1,7 +1,6 @@
import {
Navbar as NextUINavbar,
NavbarContent,
- NavbarMenuToggle,
NavbarBrand,
NavbarItem,
Link as NextUiLink
@@ -36,7 +35,20 @@ export default function Header(params: { locale: string }) {
Test Case Manager
- {siteConfig.navItems.map((item) => (
+
+ {siteConfig.navItems.map((item) => (
+
+
+ {item.label}
+
+
+ ))}
+
+ {/* {siteConfig.navItems.map((item) => (
- ))}
+ ))} */}
diff --git a/frontend/src/app/[locale]/projects/ProjectDialog.tsx b/frontend/src/app/[locale]/projects/ProjectDialog.tsx
index 8aeac1c..3ef7eb8 100644
--- a/frontend/src/app/[locale]/projects/ProjectDialog.tsx
+++ b/frontend/src/app/[locale]/projects/ProjectDialog.tsx
@@ -11,13 +11,14 @@ import {
ModalBody,
ModalFooter,
} from "@nextui-org/react";
-import { ProjectType } from "@/types/project";
+import { ProjectType, ProjectsMessages } from "@/types/project";
type Props = {
isOpen: boolean;
editingProject: ProjectType;
onCancel: () => void;
onSubmit: (name: string, detail: string) => void;
+ messages: ProjectsMessages;
};
export default function ProjectDialog({
@@ -25,6 +26,7 @@ export default function ProjectDialog({
editingProject,
onCancel,
onSubmit,
+ messages,
}: Props) {
const [projectName, setProjectName] = useState({
text: editingProject ? editingProject.name : "",
@@ -80,7 +82,7 @@ export default function ProjectDialog({
setProjectName({
text: "",
isValid: false,
- errorMessage: "Please enter project name",
+ errorMessage: messages.pleaseEnter,
});
return;
@@ -98,11 +100,13 @@ export default function ProjectDialog({
}}
>
- Project
+
+ {messages.project}
+
diff --git a/frontend/src/app/[locale]/projects/ProjectsPage.tsx b/frontend/src/app/[locale]/projects/ProjectsPage.tsx
index 85e7f68..401033e 100644
--- a/frontend/src/app/[locale]/projects/ProjectsPage.tsx
+++ b/frontend/src/app/[locale]/projects/ProjectsPage.tsx
@@ -1,8 +1,8 @@
-// "use client";
+"use client";
import { useEffect, useState } from "react";
import { Button } from "@nextui-org/react";
import { Plus } from "lucide-react";
-import { ProjectType } from "@/types/project";
+import { ProjectType, ProjectsMessages } from "@/types/project";
import ProjectsTable from "./ProjectsTable";
import ProjectDialog from "./ProjectDialog";
import {
@@ -11,10 +11,12 @@ import {
updateProject,
deleteProject,
} from "./projectsControl";
-import { useTranslations } from "next-intl";
-export default function ProjectsPage() {
- const t = useTranslations("ProjectsPage");
+export type Props = {
+ messages: ProjectsMessages;
+};
+
+export default function ProjectsPage({ messages }: Props) {
const [projects, setProjects] = useState([]);
useEffect(() => {
@@ -78,33 +80,37 @@ export default function ProjectsPage() {
};
return (
-
-
-
{t("project.project")}
-
-
}
- size="sm"
- color="primary"
- onClick={openDialogForCreate}
- >
- {t("newProject")}
-
+
+
+
+
{messages.project}
+
+ }
+ size="sm"
+ color="primary"
+ onClick={openDialogForCreate}
+ >
+ {messages.newProject}
+
+
+
+
+
+
-
-
-
-
);
}
diff --git a/frontend/src/app/[locale]/projects/ProjectsTable.tsx b/frontend/src/app/[locale]/projects/ProjectsTable.tsx
index b3e9499..a806f08 100644
--- a/frontend/src/app/[locale]/projects/ProjectsTable.tsx
+++ b/frontend/src/app/[locale]/projects/ProjectsTable.tsx
@@ -15,28 +15,30 @@ import {
Link,
} from "@nextui-org/react";
import { MoreVertical } from "lucide-react";
-import { ProjectType } from "@/types/project";
+import { ProjectType, ProjectsMessages } from "@/types/project";
import dayjs from "dayjs";
-const headerColumns = [
- { name: "ID", uid: "id", sortable: true },
- { name: "Name", uid: "name", sortable: true },
- { name: "Detail", uid: "detail", sortable: true },
- { name: "Last update", uid: "updatedAt", sortable: true },
- { name: "Actions", uid: "actions" },
-];
-
type Props = {
projects: ProjectType[];
onEditProject: (project: ProjectType) => void;
onDeleteProject: (projectId: number) => void;
+ messages: ProjectsMessages;
};
export default function ProjectsTable({
projects,
onEditProject,
onDeleteProject,
+ messages,
}: Props) {
+ const headerColumns = [
+ { name: messages.id, uid: "id", sortable: true },
+ { name: messages.name, uid: "name", sortable: true },
+ { name: messages.detail, uid: "detail", sortable: true },
+ { name: messages.lastUpdate, uid: "updatedAt", sortable: true },
+ { name: messages.actions, uid: "actions" },
+ ];
+
const [sortDescriptor, setSortDescriptor] = useState
({
column: "id",
direction: "ascending",
@@ -92,13 +94,13 @@ export default function ProjectsTable({
onEditProject(project)}>
- Edit project
+ {messages.editProject}
onDeleteProject(project.id)}
>
- Delete project
+ {messages.deleteProject}
diff --git a/frontend/src/app/[locale]/projects/page.tsx b/frontend/src/app/[locale]/projects/page.tsx
index 385a95c..380d83f 100644
--- a/frontend/src/app/[locale]/projects/page.tsx
+++ b/frontend/src/app/[locale]/projects/page.tsx
@@ -1,9 +1,29 @@
import ProjectsPage from "./ProjectsPage";
+import { useTranslations } from "next-intl";
export default function Page() {
+ const t = useTranslations("Projects");
+ const messages = {
+ projects: t("projects"),
+ project: t("project"),
+ newProject: t("new_project"),
+ editProject: t("edit_project"),
+ deleteProject: t("delete_project"),
+ id: t("id"),
+ name: t("name"),
+ detail: t("detail"),
+ lastUpdate: t("last_update"),
+ actions: t("actions"),
+ projectName: t("project_name"),
+ projectDetail: t("project_detail"),
+ close: t("close"),
+ create: t("create"),
+ update: t("update"),
+ pleaseEnter: t("please_enter"),
+ };
return (
<>
-
+
>
);
}
diff --git a/frontend/types/project.ts b/frontend/types/project.ts
index cad36e3..5a7d387 100644
--- a/frontend/types/project.ts
+++ b/frontend/types/project.ts
@@ -4,4 +4,23 @@ export type ProjectType = {
detail: string;
createdAt: string;
updatedAt: string;
-};
\ No newline at end of file
+};
+
+export type ProjectsMessages = {
+ project: string;
+ projects: string;
+ newProject: string;
+ editProject: string;
+ deleteProject: string;
+ id: string;
+ name: string;
+ detail: string;
+ lastUpdate: string;
+ actions: string;
+ projectName: string;
+ projectDetail: string;
+ close: string;
+ create: string;
+ update: string;
+ pleaseEnter: string;
+};