0
0
mirror of https://github.com/yude-jp/yude.jp synced 2024-12-23 12:40:11 +09:00

Compare commits

..

No commits in common. "0a6341f2df05eef12d13dcad58f49a811a230ce4" and "94f6c60f231632a9f23458bc0b8fd8670733624a" have entirely different histories.

14 changed files with 101 additions and 65 deletions

View File

@ -2,7 +2,7 @@
![Vercel](https://vercelbadge.vercel.app/api/yudejp/yude.jp?style=for-the-badge) ![Vercel](https://vercelbadge.vercel.app/api/yudejp/yude.jp?style=for-the-badge)
<img alt="Next JS" src="https://img.shields.io/badge/nextjs-%23000000.svg?style=for-the-badge&logo=next.js&logoColor=white"/> <img alt="Next JS" src="https://img.shields.io/badge/nextjs-%23000000.svg?style=for-the-badge&logo=next.js&logoColor=white"/>
<img alt="TailwindCSS" src="https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white"/>\ <img alt="TailwindCSS" src="https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white"/>\
Source code of [yude.jp](https://yude.jp).\ Front page of [yude.jp](https://yude.jp).\
Built with [Next.js](https://nextjs.org/) and [Tailwind CSS](https://tailwindcss.com/) and deployed on [Vercel](https://vercel.com). Built with [Next.js](https://nextjs.org/) and [Tailwind CSS](https://tailwindcss.com/) and deployed on [Vercel](https://vercel.com).
## Development ## Development
@ -13,4 +13,4 @@ Built with [Next.js](https://nextjs.org/) and [Tailwind CSS](https://tailwindcss
* Run `yarn dev`. * Run `yarn dev`.
## License ## License
This repository is provided under the MIT License. This repository is licensed under the MIT License.

View File

@ -1,5 +1,5 @@
{ {
"footer": "This page is provided under the MIT License.", "footer": "This page is licensed under the MIT License.",
"source": "Source code", "source": "Source code",
"tos": "yude.jp Terms of Service", "tos": "yude.jp Terms of Service",
"yes_playing": "Playing {{playing}}", "yes_playing": "Playing {{playing}}",

View File

@ -13,6 +13,7 @@
"date": "November the 19th, 2001", "date": "November the 19th, 2001",
"contact": "Get in touch", "contact": "Get in touch",
"belongs": "Organization", "belongs": "Organization",
"more": "More...",
"grade": "B2", "grade": "B2",
"icon_1": "Icon: ", "icon_1": "Icon: ",
"icon_2": "", "icon_2": "",

View File

@ -1,5 +1,5 @@
{ {
"footer": "このページは MIT License のもと提供されています。", "footer": "このページは MIT License の下でライセンスされています。",
"source": "ソースコード", "source": "ソースコード",
"tos": "yude.jp サービス利用規約", "tos": "yude.jp サービス利用規約",
"yes_playing": "{{playing}} をプレイ中", "yes_playing": "{{playing}} をプレイ中",

View File

@ -13,6 +13,7 @@
"date": "2001年11月19日", "date": "2001年11月19日",
"contact": "連絡先 / SNS", "contact": "連絡先 / SNS",
"belongs": "所属", "belongs": "所属",
"more": "さらに見る...",
"grade": "2年", "grade": "2年",
"icon_1": "アイコン: ", "icon_1": "アイコン: ",
"icon_2": "さん", "icon_2": "さん",

View File

@ -7,17 +7,19 @@ export default function Footer(props) {
const router = useRouter() const router = useRouter()
const { locale, locales, defaultLocale, pathname } = router const { locale, locales, defaultLocale, pathname } = router
const { t, lang } = useTranslation("common") const { t, lang } = useTranslation("common")
const footer = t('footer')
const source = t('source')
const tos = t('tos')
return ( return (
<> <>
<div className="container mx-auto px-6"> <div className="container mx-auto px-6">
<div className="flex flex-col items-center"> <div className="flex flex-col items-center">
<div className="sm:w-full text-center py-6"> <div className="sm:w-full text-center py-6">
<p className="text-sm font-bold mb-2"> <p className="text-sm font-bold mb-2">
{t('footer')} / <Link href="https://github.com/yudejp/yude.jp"><a className="hover:underline">{t('source')}</a></Link> {footer} / <Link href="https://github.com/yudejp/yude.jp"><a className="hover:underline">{source}</a></Link>
</p> </p>
<p className="text-sm font-bold mb-2"> <p className="text-sm font-bold mb-2">
<Link href="/tos"><a className="hover:underline">{t('tos')}</a></Link> <Link href="/tos"><a className="hover:underline">{tos}</a></Link>
</p> </p>
</div> </div>
</div> </div>

View File

@ -11,7 +11,7 @@ export default function Minecraft(props) {
const { t, lang } = useTranslation("minecraft") const { t, lang } = useTranslation("minecraft")
const [data, setData] = useState({ hits: [] }); const [data, setData] = useState({ hits: [] });
const fail = t('minecraft:fail')
useEffect(() => { useEffect(() => {
const fetchData = async () => { const fetchData = async () => {
const result = await axios( const result = await axios(
@ -25,24 +25,27 @@ export default function Minecraft(props) {
if (data === undefined){ if (data === undefined){
console.log("[Minecraft Query] データの取得に失敗しました。 / Failed to retrieve data.") console.log("[Minecraft Query] データの取得に失敗しました。 / Failed to retrieve data.")
return ( return (
<p>{t('minecraft:fail')}</p> <p>{fail}</p>
) )
}else{ }else{
const status = data.online const status = data.online
const player = data.players && data.players.online const player = data.players && data.players.online
const playing = t('minecraft:playing', {count: player})
const no_one = t('minecraft:no_one')
const offline = t('minecraft:offline')
const loading = t('minecraft:loading')
return ( return (
<div className="text-center"> <div className="text-center">
{(() => { {(() => {
if (status == true) { if (status == true) {
if (player == undefined || player == 0) { if (player == undefined || player == 0) {
return <span>{t('minecraft:no_one')}</span> return <span>{no_one}</span>
} else { } else {
return <span>{t('minecraft:playing', {count: player})}</span> return <span>{playing}</span>
}}else if (status == false) { }}else if (status == false) {
return <span>{t('minecraft:offline')}</span> return <span>{offline}</span>
}else { }else {
return <span>{t('minecraft:loading')}</span> return <span>{loading}</span>
} }
})()} })()}

View File

@ -23,7 +23,8 @@ function App () {
}else{ }else{
if (data.isPlaying){ if (data.isPlaying){
const status = data.artist + ' / ' + data.title const status = data.artist + ' / ' + data.title
return <p>{t('listening', {listening: status})}</p> const listening = t('listening', {listening: status})
return <p>{listening}</p>
}else{ }else{
return <p></p> return <p></p>
} }

View File

@ -11,11 +11,11 @@ export default function Tos(props) {
const router = useRouter() const router = useRouter()
const { locale, locales, defaultLocale, pathname } = router const { locale, locales, defaultLocale, pathname } = router
const { t, lang } = useTranslation("hcunews") const { t, lang } = useTranslation("hcunews")
const hcunews = t('hcunews')
return( return(
<Layout title={t('hcunews')}> <Layout title={hcunews}>
<div> <div>
<h1>{t('hcunews')}</h1> <h1>{hcunews}</h1>
{lang === 'ja' ? ( {lang === 'ja' ? (
<ReactMarkdown plugins={[gfm]} children={ja} /> <ReactMarkdown plugins={[gfm]} children={ja} />
) : ( ) : (

View File

@ -6,11 +6,12 @@ export default function About(props) {
const router = useRouter() const router = useRouter()
const { locale, locales, defaultLocale, pathname } = router const { locale, locales, defaultLocale, pathname } = router
const { t, lang } = useTranslation("house") const { t, lang } = useTranslation("house")
const house = t('house')
return ( return (
<Layout title={t('house')}> <Layout title={house}>
<div> <div>
<p className="my-2 text-3xl text-center">{t('house')}</p> <p className="my-2 text-3xl text-center">{house}</p>
<iframe className="w-full h-96" src="https://mackerel.io/embed/public/embed/4mVIU29WCRVZgHUxQPzWsfXo953uxiAegbjDb83hTQ7szesCunwdpVkBIzhnLc9i?period=1d" frameborder="0" scrolling="no"></iframe> <iframe className="w-full h-96" src="https://mackerel.io/embed/public/embed/4mVIU29WCRVZgHUxQPzWsfXo953uxiAegbjDb83hTQ7szesCunwdpVkBIzhnLc9i?period=1d" frameborder="0" scrolling="no"></iframe>
</div> </div>
</Layout> </Layout>

View File

@ -12,14 +12,17 @@ export default function About(props) {
const router = useRouter() const router = useRouter()
const { locale, locales, defaultLocale, pathname } = router const { locale, locales, defaultLocale, pathname } = router
const { t, lang } = useTranslation("minecraft") const { t, lang } = useTranslation("minecraft")
const title = t('title')
const address = t('address')
const version = t('version')
const copyText = () => { const copyText = () => {
navigator.clipboard.writeText("yude.jp"); navigator.clipboard.writeText("yude.jp");
}; };
return ( return (
<Layout title={t('title')}> <Layout title={title}>
<div> <div>
<p className="my-2 text-3xl text-center">{t('title')}</p> <p className="my-2 text-3xl text-center">{title}</p>
<div className="w-full"> <div className="w-full">
<Image <Image
src = "/static/images/dynmap.png" src = "/static/images/dynmap.png"
@ -32,7 +35,7 @@ export default function About(props) {
<div className="text-center"> <div className="text-center">
<Minecraft /> <Minecraft />
<p> <p>
<span>{t('address')}: <code>yude.jp</code></span> <span>{address}: <code>yude.jp</code></span>
<button <button
className="bg-pink-600 text-white active:bg-pink-600 font-bold text-sm px-2 py-2 ml-2 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150" className="bg-pink-600 text-white active:bg-pink-600 font-bold text-sm px-2 py-2 ml-2 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150"
type="button" type="button"
@ -41,7 +44,7 @@ export default function About(props) {
<FontAwesomeIcon icon={faCopy} className="w-5 h-5 inline"/> <FontAwesomeIcon icon={faCopy} className="w-5 h-5 inline"/>
</button> </button>
</p> </p>
<p>{t('version')}: 1.17</p> <p>{version}: 1.17</p>
<Link href="https://dynmap.yude.jp"> <Link href="https://dynmap.yude.jp">
<a> <a>
<button <button

View File

@ -16,10 +16,25 @@ export default function About(props) {
const router = useRouter() const router = useRouter()
const { locale, locales, defaultLocale, pathname } = router const { locale, locales, defaultLocale, pathname } = router
const { t, lang } = useTranslation("profile") const { t, lang } = useTranslation("profile")
const about = t('about')
const desc = t('desc')
const school = t('school')
const contact = t('contact')
const location = t('location')
const belongs = t('belongs')
const hiroshima = t('hiroshima')
const birth = t('birth')
const date = t('date')
const more = t('more')
const grade = t('grade')
const icon_1 = t('icon_1')
const icon_2 = t('icon_2')
const account = t('account')
const device = t('device')
return ( return (
<Layout title={t('about')}> <Layout title={about}>
<div className="text-center"> <div className="text-center">
{ {
@ -49,24 +64,24 @@ export default function About(props) {
} }
<div> <div>
<div className="text-left"> <div className="text-left">
<p className="text-2xl"><FontAwesomeIcon icon={faInfo} className="w-5 h-5 inline"/> {t('desc')}</p> <p className="text-2xl"><FontAwesomeIcon icon={faInfo} className="w-5 h-5 inline"/> {desc}</p>
</div> </div>
<div className="my-2 text-left grid lg:grid-cols-3 md:grid-cols-2 sm:grid-cols-1 break-words"> <div className="my-2 text-left grid lg:grid-cols-3 md:grid-cols-2 sm:grid-cols-1 break-words">
<div> <div>
<FontAwesomeIcon icon={faSchool} className="w-5 h-5 inline"/> <FontAwesomeIcon icon={faSchool} className="w-5 h-5 inline"/>
<p className="inline ml-4">{t('belongs')}</p> <p className="inline ml-4">{belongs}</p>
<p className="ml-9">{t('school')}</p> <p className="ml-9">{school}</p>
<p className="ml-9">{t('grade')}</p> <p className="ml-9">{grade}</p>
</div> </div>
<div> <div>
<FontAwesomeIcon icon={faBirthdayCake} className="w-5 h-5 inline"/> <FontAwesomeIcon icon={faBirthdayCake} className="w-5 h-5 inline"/>
<p className="inline ml-4">{t('birth')}</p> <p className="inline ml-4">{birth}</p>
<p className="ml-9">{t('date')}</p> <p className="ml-9">{date}</p>
</div> </div>
<div> <div>
<FontAwesomeIcon icon={faMapPin} className="w-5 h-5 inline"/> <FontAwesomeIcon icon={faMapPin} className="w-5 h-5 inline"/>
<p className="inline ml-4">{t('location')}</p> <p className="inline ml-4">{location}</p>
<p className="ml-9">{t('hiroshima')}</p> <p className="ml-9">{hiroshima}</p>
</div> </div>
</div> </div>
@ -74,7 +89,7 @@ export default function About(props) {
// Contact // Contact
} }
<div className="text-left my-6"> <div className="text-left my-6">
<p className="text-2xl"><FontAwesomeIcon icon={faPhone} className="w-5 h-5 inline"/> {t('contact')}</p> <p className="text-2xl"><FontAwesomeIcon icon={faPhone} className="w-5 h-5 inline"/> {contact}</p>
</div> </div>
<div className="my-2 grid grid-cols-2 lg:grid-cols-5 md:grid-cols-3 sm:grid-cols-2 justify-items-center gap-y-6"> <div className="my-2 grid grid-cols-2 lg:grid-cols-5 md:grid-cols-3 sm:grid-cols-2 justify-items-center gap-y-6">
<div className="hover:underline"> <div className="hover:underline">
@ -154,7 +169,7 @@ export default function About(props) {
className="bg-pink-600 text-white active:bg-pink-600 mt-3 font-bold text-sm px-6 py-3 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150" className="bg-pink-600 text-white active:bg-pink-600 mt-3 font-bold text-sm px-6 py-3 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150"
type="button" type="button"
> >
<FontAwesomeIcon icon={faLink} className="w-5 h-5 inline"/> {t('account')} <FontAwesomeIcon icon={faLink} className="w-5 h-5 inline"/> {account}
</button> </button>
</a> </a>
</Link> </Link>
@ -165,7 +180,7 @@ export default function About(props) {
className="bg-pink-600 text-white active:bg-pink-600 mt-3 font-bold text-sm px-6 py-3 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150" className="bg-pink-600 text-white active:bg-pink-600 mt-3 font-bold text-sm px-6 py-3 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150"
type="button" type="button"
> >
<FontAwesomeIcon icon={faMobile} className="w-5 h-5 inline"/> {t('device')} <FontAwesomeIcon icon={faMobile} className="w-5 h-5 inline"/> {device}
</button> </button>
</a> </a>
</Link> </Link>
@ -174,7 +189,7 @@ export default function About(props) {
<div> <div>
</div> </div>
</div> </div>
<p className="mt-3 text-sm font-bold text-gray-900 dark:text-gray-400">{t('icon_1')}<Link href="https://twitter.com/xmnts"><a className="hover:underline">Minkasy {t('icon_2')}</a></Link></p> <p className="mt-3 text-sm font-bold text-gray-900 dark:text-gray-400">{icon_1}<Link href="https://twitter.com/xmnts"><a className="hover:underline">Minkasy {icon_2}</a></Link></p>
</div> </div>
</Layout> </Layout>
) )

View File

@ -7,38 +7,46 @@ export default function About(props) {
const router = useRouter() const router = useRouter()
const { locale, locales, defaultLocale, pathname } = router const { locale, locales, defaultLocale, pathname } = router
const { t, lang } = useTranslation("status") const { t, lang } = useTranslation("status")
const status = t('status')
const location = t('location')
const tottori = t('tottori')
const hiroshima = t('hiroshima')
const model = t('model')
const service = t('service')
const region = t('region')
const shape = t('shape')
return ( return (
<Layout title={t('status')}> <Layout title={status}>
<div className="my-9 text-center"> <div className="my-9 text-center">
{ {
// Heading // Heading
} }
<div className="mb-5"> <div className="mb-5">
<p className="text-left text-4xl">{t('status')} <p className="md:inline font-mono text-base sm:">Powered / Generated by Mackerel.</p></p> <p className="text-left text-4xl">{status} <p className="md:inline font-mono text-base sm:">Powered / Generated by Mackerel.</p></p>
</div> </div>
{ {
// yui Mackerel // cherry Mackerel
} }
<h2 className="text-2xl text-left font-bold leading-7 sm:text-3xl sm:truncate">yui</h2> <h2 className="text-2xl text-left font-bold leading-7 sm:text-3xl sm:truncate">yui</h2>
<div className="flex xl:w-2/3 text-center"> <div className="flex xl:w-2/3 text-center">
<div className="flex-1"><p className="font-bold">CPU </p>i7-2600</div> <div className="flex-1"><p className="font-bold">CPU </p>i7-2600</div>
<div className="flex-1"><p className="font-bold">RAM </p>DDR3 24GB</div> <div className="flex-1"><p className="font-bold">RAM </p>DDR3 24GB</div>
<div className="flex-1"><p className="font-bold">OS </p>Arch Linux</div> <div className="flex-1"><p className="font-bold">OS </p>Arch Linux</div>
<div className="flex-1"><p className="font-bold">{t('location')} </p>{t('hiroshima')}</div> <div className="flex-1"><p className="font-bold">{location} </p>{hiroshima}</div>
</div> </div>
<iframe className="w-full h-96" src="https://mackerel.io/embed/public/embed/heHnGhDanoIDlf7jjxUe9yPVrsG3deeH5ptD8suErrq5w46crWEIYdLfzLoukzfF?period=24h" height="400" frameBorder="0" scrolling="no"></iframe> <iframe className="w-full h-96" src="https://mackerel.io/embed/public/embed/heHnGhDanoIDlf7jjxUe9yPVrsG3deeH5ptD8suErrq5w46crWEIYdLfzLoukzfF?period=24h" height="400" frameBorder="0" scrolling="no"></iframe>
{ {
// yukino Mackerel // raspberry Mackerel
} }
<h2 className="text-2xl text-left font-bold leading-7 sm:text-3xl sm:truncate">yukino</h2> <h2 className="text-2xl text-left font-bold leading-7 sm:text-3xl sm:truncate">yukino</h2>
<div className="flex xl:w-2/3 text-center"> <div className="flex xl:w-2/3 text-center">
<div className="flex-1"><p className="font-bold">{t('model')} </p>Raspberry Pi 4 Model B Rev 1.2</div> <div className="flex-1"><p className="font-bold">{model} </p>Raspberry Pi 4 Model B Rev 1.2</div>
<div className="flex-1"><p className="font-bold">RAM </p>4GB</div> <div className="flex-1"><p className="font-bold">RAM </p>4GB</div>
<div className="flex-1"><p className="font-bold">OS </p>Raspbian GNU/Linux 10 (buster)</div> <div className="flex-1"><p className="font-bold">OS </p>Raspbian GNU/Linux 10 (buster)</div>
<div className="flex-1"><p className="font-bold">{t('location')} </p>{t('tottori')}</div> <div className="flex-1"><p className="font-bold">{location} </p>{tottori}</div>
</div> </div>
<iframe className="w-full h-96" src="https://mackerel.io/embed/public/embed/5HVbQiwuxrMithyrGjmmQCCOVgJ6Ptf94SDA2qWSTsh2rtz7pjePihYzaW5QEml4?period=24h" height="400" frameBorder="0" scrolling="no"></iframe> <iframe className="w-full h-96" src="https://mackerel.io/embed/public/embed/5HVbQiwuxrMithyrGjmmQCCOVgJ6Ptf94SDA2qWSTsh2rtz7pjePihYzaW5QEml4?period=24h" height="400" frameBorder="0" scrolling="no"></iframe>
@ -47,11 +55,11 @@ export default function About(props) {
} }
<h2 className="text-2xl text-left font-bold leading-7 sm:text-3xl sm:truncate">iroha</h2> <h2 className="text-2xl text-left font-bold leading-7 sm:text-3xl sm:truncate">iroha</h2>
<div className="flex xl:w-2/3 text-center"> <div className="flex xl:w-2/3 text-center">
<div className="flex-1"><p className="font-bold">{t('service')} </p>Oracle Cloud</div> <div className="flex-1"><p className="font-bold">{service} </p>Oracle Cloud</div>
<div className="flex-1"><p className="font-bold">{t('shape')} </p>VM.Standard.E2.1.Micro</div> <div className="flex-1"><p className="font-bold">{shape} </p>VM.Standard.E2.1.Micro</div>
<div className="flex-1"><p className="font-bold">RAM </p>1GB</div> <div className="flex-1"><p className="font-bold">RAM </p>1GB</div>
<div className="flex-1"><p className="font-bold">OS </p>Ubuntu 20.04 LTS</div> <div className="flex-1"><p className="font-bold">OS </p>Ubuntu 20.04 LTS</div>
<div className="flex-1"><p className="font-bold">{t('region')} </p>Japan Central (Osaka)</div> <div className="flex-1"><p className="font-bold">{region} </p>Japan Central (Osaka)</div>
</div> </div>
<iframe className="w-full h-96" src="https://mackerel.io/embed/public/embed/wgmTz7aTgvwfyU6qVHrJJmQlpOHCUJK6qw0W9sJTX68WOI8TFtc27YvJ7dwkQEGv?period=24h" height="400" frameBorder="0" scrolling="no"></iframe> <iframe className="w-full h-96" src="https://mackerel.io/embed/public/embed/wgmTz7aTgvwfyU6qVHrJJmQlpOHCUJK6qw0W9sJTX68WOI8TFtc27YvJ7dwkQEGv?period=24h" height="400" frameBorder="0" scrolling="no"></iframe>
@ -61,11 +69,11 @@ export default function About(props) {
} }
<h2 className="text-2xl text-left font-bold leading-7 sm:text-3xl sm:truncate">komachi</h2> <h2 className="text-2xl text-left font-bold leading-7 sm:text-3xl sm:truncate">komachi</h2>
<div className="flex xl:w-2/3 text-center"> <div className="flex xl:w-2/3 text-center">
<div className="flex-1"><p className="font-bold">{t('service')} </p>Oracle Cloud</div> <div className="flex-1"><p className="font-bold">{service} </p>Oracle Cloud</div>
<div className="flex-1"><p className="font-bold">{t('shape')} </p>VM.Standard.E2.1.Micro</div> <div className="flex-1"><p className="font-bold">{shape} </p>VM.Standard.E2.1.Micro</div>
<div className="flex-1"><p className="font-bold">RAM </p>1GB</div> <div className="flex-1"><p className="font-bold">RAM </p>1GB</div>
<div className="flex-1"><p className="font-bold">OS </p>Ubuntu 20.04 LTS</div> <div className="flex-1"><p className="font-bold">OS </p>Ubuntu 20.04 LTS</div>
<div className="flex-1"><p className="font-bold">{t('region')} </p>Japan Central (Osaka)</div> <div className="flex-1"><p className="font-bold">{region} </p>Japan Central (Osaka)</div>
</div> </div>
<iframe className="w-full h-96" src="https://mackerel.io/embed/public/embed/vcn6LE4P2hh6GzvtMbIAWxsXpDh6eSoNyAXdhfYaj9yDN6FJwOHIiz9ktqToj1HG?period=24h" height="400" frameBorder="0" scrolling="no"></iframe> <iframe className="w-full h-96" src="https://mackerel.io/embed/public/embed/vcn6LE4P2hh6GzvtMbIAWxsXpDh6eSoNyAXdhfYaj9yDN6FJwOHIiz9ktqToj1HG?period=24h" height="400" frameBorder="0" scrolling="no"></iframe>

View File

@ -11,8 +11,9 @@ export default function Tos(props) {
const router = useRouter() const router = useRouter()
const { locale, locales, defaultLocale, pathname } = router const { locale, locales, defaultLocale, pathname } = router
const { t, lang } = useTranslation("tos") const { t, lang } = useTranslation("tos")
const tos = t('tos')
return( return(
<Layout title={t('tos')}> <Layout title={tos}>
<div> <div>
{lang === 'ja' ? ( {lang === 'ja' ? (
<ReactMarkdown plugins={[gfm]} children={ja} /> <ReactMarkdown plugins={[gfm]} children={ja} />