Skip to content

Commit

Permalink
feat: add meta data (#105)
Browse files Browse the repository at this point in the history
  • Loading branch information
kimatata authored Nov 23, 2024
1 parent 19889e0 commit 6ed6865
Show file tree
Hide file tree
Showing 15 changed files with 114 additions and 6 deletions.
5 changes: 3 additions & 2 deletions frontend/messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,6 @@
"your_projects": "Your Projects",
"public": "Public",
"private": "Private",
"no_projects_found": "No projects found",
"not_own_any_projects": "You don't own any projects.",
"find_projects": "Find projects"
},
Expand All @@ -134,7 +133,7 @@
"at_least": "At least one administrator is required"
},
"Projects": {
"projectList": "Project List",
"project_list": "Project List",
"new_project": "New Project",
"id": "ID",
"publicity": "Publicity",
Expand All @@ -146,13 +145,15 @@
"no_projects_found": "No projects found"
},
"Project": {
"project": "Project",
"home": "Home",
"test_cases": "Test Cases",
"test_runs": "Test Runs",
"members": "Members",
"settings": "Settings"
},
"Home": {
"home": "Home",
"Folders": "Folders",
"test_cases": "Test Cases",
"test_runs": "Test Runs",
Expand Down
4 changes: 3 additions & 1 deletion frontend/messages/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@
"at_least": "最低1人以上の管理者が必要です。"
},
"Projects": {
"projectList": "プロジェクト一覧",
"project_list": "プロジェクト一覧",
"new_project": "新規プロジェクト",
"id": "ID",
"publicity": "公開",
Expand All @@ -146,13 +146,15 @@
"no_projects_found": "プロジェクトがありません"
},
"Project": {
"project": "プロジェクト",
"home": "ホーム",
"test_cases": "テストケース",
"test_runs": "テストラン",
"members": "メンバー",
"settings": "設定"
},
"Home": {
"home": "ホーム",
"Folders": "フォルダー",
"test_cases": "テストケース",
"test_runs": "テストラン",
Expand Down
11 changes: 11 additions & 0 deletions frontend/src/app/[locale]/account/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
import { LocaleCodeType } from '@/types/locale';
import { getTranslations } from 'next-intl/server';

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const t = await getTranslations({ locale, namespace: 'Auth' });
return {
title: `${t('account')} | UnitTCMS`,
robots: { index: false, follow: false },
};
}

export default function AuthLayout({ children }: { children: React.ReactNode }) {
return (
<>
Expand Down
1 change: 0 additions & 1 deletion frontend/src/app/[locale]/account/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ export default function Page({ params }: PageType) {
yourProjects: t('your_projects'),
public: t('public'),
private: t('private'),
noProjectsFound: t('no_projects_found'),
notOwnAnyProjects: t('not_own_any_projects'),
findProjects: t('find_projects'),
};
Expand Down
9 changes: 9 additions & 0 deletions frontend/src/app/[locale]/account/signin/page.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
import { PageType } from '@/types/base';
import AuthPage from '../authPage';
import { getTranslations } from 'next-intl/server';
import { useTranslations } from 'next-intl';
import { LocaleCodeType } from '@/types/locale';

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const t = await getTranslations({ locale, namespace: 'Auth' });
return {
title: `${t('signin')} | UnitTCMS`,
robots: { index: false, follow: false },
};
}

export default function Page({ params }: PageType) {
const t = useTranslations('Auth');
const messages = {
Expand Down
9 changes: 9 additions & 0 deletions frontend/src/app/[locale]/account/signup/page.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
import { PageType } from '@/types/base';
import AuthPage from '../authPage';
import { getTranslations } from 'next-intl/server';
import { useTranslations } from 'next-intl';
import { LocaleCodeType } from '@/types/locale';

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const t = await getTranslations({ locale, namespace: 'Auth' });
return {
title: `${t('signup')} | UnitTCMS`,
robots: { index: false, follow: false },
};
}

export default function Page({ params }: PageType) {
const t = useTranslations('Auth');
const messages = {
Expand Down
9 changes: 9 additions & 0 deletions frontend/src/app/[locale]/admin/page.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
import { getTranslations } from 'next-intl/server';
import { useTranslations } from 'next-intl';
import AdminPage from './AdminPage';
import { PageType } from '@/types/base';
import { LocaleCodeType } from '@/types/locale';
import { AdminMessages } from '@/types/user';

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const t = await getTranslations({ locale, namespace: 'Admin' });
return {
title: `${t('user_management')} | UnitTCMS`,
robots: { index: false, follow: false },
};
}

export default function Page({ params }: PageType) {
const t = useTranslations('Admin');
const messages: AdminMessages = {
Expand Down
11 changes: 10 additions & 1 deletion frontend/src/app/[locale]/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,26 @@ import clsx from 'clsx';
import { getTranslations } from 'next-intl/server';
import { useTranslations } from 'next-intl';
import { LocaleCodeType } from '@/types/locale';
import { headers } from 'next/headers';

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const headersList = headers();
const host = headersList.get('host');
const isOfficialDomain = host === 'unittcms.org' ? true : false;
const t = await getTranslations({ locale, namespace: 'Header' });

return {
title: t('title'),
title: `${t('title')} | UnitTCMS`,
description: t('description'),
icons: {
icon: '/favicon/favicon.ico',
shortcut: '/favicon/favicon-16x16.png',
apple: '/favicon/apple-touch-icon.png',
},
alternates: {
canonical: `https://www.unittcms.org/${locale}`,
},
robots: isOfficialDomain ? { index: true, follow: true } : { index: false, follow: true },
};
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
import { PriorityMessages } from '@/types/priority';
import CasesPane from './CasesPane';
import { getTranslations } from 'next-intl/server';
import { useTranslations } from 'next-intl';
import { LocaleCodeType } from '@/types/locale';

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const t = await getTranslations({ locale, namespace: 'Cases' });
return {
title: `${t('test_case_list')} | UnitTCMS`,
robots: { index: false, follow: false },
};
}

export default function Page({ params }: { params: { projectId: string; folderId: string; locale: string } }) {
const t = useTranslations('Cases');
const messages = {
Expand Down
10 changes: 10 additions & 0 deletions frontend/src/app/[locale]/projects/[projectId]/home/page.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { LocaleCodeType } from '@/types/locale';
import { ProjectHome } from './ProjectHome';
import { getTranslations } from 'next-intl/server';
import { useTranslations } from 'next-intl';
import { PriorityMessages } from '@/types/priority';
import { TestTypeMessages } from '@/types/testType';
Expand All @@ -14,6 +16,14 @@ export type HomeMessages = {
byPriority: string;
};

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const t = await getTranslations({ locale, namespace: 'Home' });
return {
title: `${t('home')} | UnitTCMS`,
robots: { index: false, follow: false },
};
}

export default function Page({ params }: { params: { projectId: string } }) {
const t = useTranslations('Home');
const messages = {
Expand Down
10 changes: 10 additions & 0 deletions frontend/src/app/[locale]/projects/[projectId]/members/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
import { LocaleCodeType } from '@/types/locale';
import MembersPage from './MembersPage';
import { getTranslations } from 'next-intl/server';
import { useTranslations } from 'next-intl';

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const t = await getTranslations({ locale, namespace: 'Members' });
return {
title: `${t('member_management')} | UnitTCMS`,
robots: { index: false, follow: false },
};
}

export default function Page({ params }: { params: { projectId: string; locale: string } }) {
const t = useTranslations('Members');
const messages = {
Expand Down
9 changes: 9 additions & 0 deletions frontend/src/app/[locale]/projects/[projectId]/runs/page.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
import { LocaleCodeType } from '@/types/locale';
import RunsPage from './RunsPage';
import { getTranslations } from 'next-intl/server';
import { useTranslations } from 'next-intl';

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const t = await getTranslations({ locale, namespace: 'Runs' });
return {
title: `${t('run_list')} | UnitTCMS`,
robots: { index: false, follow: false },
};
}

export default function Page({ params }: { params: { projectId: string; locale: string } }) {
const t = useTranslations('Runs');
const messages = {
Expand Down
10 changes: 10 additions & 0 deletions frontend/src/app/[locale]/projects/[projectId]/settings/page.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
import { LocaleCodeType } from '@/types/locale';
import { ProjectDialogMessages } from '@/types/project';
import SettingsPage from './SettingsPage';
import { getTranslations } from 'next-intl/server';
import { useTranslations } from 'next-intl';
import { SettingsMessages } from '@/types/settings';

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const t = await getTranslations({ locale, namespace: 'Settings' });
return {
title: `${t('project_management')} | UnitTCMS`,
robots: { index: false, follow: false },
};
}

export default function Page({ params }: { params: { projectId: string; locale: string } }) {
const t = useTranslations('Settings');
const messages: SettingsMessages = {
Expand Down
11 changes: 11 additions & 0 deletions frontend/src/app/[locale]/projects/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
import { LocaleCodeType } from '@/types/locale';
import { getTranslations } from 'next-intl/server';

export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
const t = await getTranslations({ locale, namespace: 'Projects' });
return {
title: `${t('project_list')} | UnitTCMS`,
robots: { index: false, follow: false },
};
}

export default function ProjectsLayout({ children }: { children: React.ReactNode }) {
return <>{children}</>;
}
2 changes: 1 addition & 1 deletion frontend/src/app/[locale]/projects/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { ProjectDialogMessages, ProjectsMessages } from '@/types/project';
export default function Page({ params }: PageType) {
const t = useTranslations('Projects');
const messages: ProjectsMessages = {
projectList: t('projectList'),
projectList: t('project_list'),
newProject: t('new_project'),
id: t('id'),
publicity: t('publicity'),
Expand Down

0 comments on commit 6ed6865

Please sign in to comment.