From b446a2ebae1154aa758b64868f09e6a03f843c43 Mon Sep 17 00:00:00 2001 From: yude Date: Sat, 11 Dec 2021 18:55:57 +0900 Subject: [PATCH] Prepare for SSG --- i18n/index.js | 4 +-- pages/components/Discord/DiscordPlaying.js | 8 ++++-- pages/components/Discord/DiscordStatus.js | 3 ++ pages/components/LangSelector.js | 13 +++++---- pages/components/Menu/FontAwesomeMenu.js | 4 +-- pages/components/Menu/MinecraftMenu.js | 10 +++++-- pages/components/Minecraft.js | 19 ++++++++----- pages/components/Minecraft/Online.js | 12 ++++++-- pages/components/Minecraft/PlayerName.js | 3 ++ pages/components/Navbar.js | 5 ++-- pages/components/Profile/Button.js | 2 +- pages/components/Profile/Contact.js | 2 +- pages/components/Profile/PublicKeys.js | 32 ++++++++++++---------- pages/components/Profile/Spotify.js | 11 ++++++-- pages/components/Profile/WakaTime.js | 5 ++-- pages/hcunews.js | 2 +- pages/house.js | 5 ++-- pages/index.js | 22 +++++++++------ pages/minecraft.js | 11 ++++++-- pages/mutual.js | 11 ++++++-- pages/posts.js | 5 ++-- pages/profile.js | 8 +++--- pages/server.js | 8 ++---- pages/tos.js | 5 ++-- 24 files changed, 133 insertions(+), 77 deletions(-) diff --git a/i18n/index.js b/i18n/index.js index 67d9452..a917cd1 100644 --- a/i18n/index.js +++ b/i18n/index.js @@ -1,5 +1,5 @@ -var ja = require('./translations.en.json'); -var en = require('./translations.ja.json') +var ja = require('./translations.ja.json'); +var en = require('./translations.en.json') const i18n = { translations: { diff --git a/pages/components/Discord/DiscordPlaying.js b/pages/components/Discord/DiscordPlaying.js index c59feb7..36fef77 100644 --- a/pages/components/Discord/DiscordPlaying.js +++ b/pages/components/Discord/DiscordPlaying.js @@ -1,7 +1,11 @@ +// React import React, { useState, useEffect } from 'react'; + +// Data fetching import axios from 'axios'; -import useTranslation from 'next-translate/useTranslation' -import { useRouter } from 'next/router' + +// i18n +import { useTranslation, useLanguageQuery } from 'next-export-i18n'; function App (){ const [data, setData] = useState({ hits: [] }); diff --git a/pages/components/Discord/DiscordStatus.js b/pages/components/Discord/DiscordStatus.js index 203d4ed..43c66ff 100644 --- a/pages/components/Discord/DiscordStatus.js +++ b/pages/components/Discord/DiscordStatus.js @@ -1,4 +1,7 @@ +// React import React, { useState, useEffect } from 'react'; + +// Data fetching import axios from 'axios'; const App = () => { diff --git a/pages/components/LangSelector.js b/pages/components/LangSelector.js index 1db6d59..ba6a646 100644 --- a/pages/components/LangSelector.js +++ b/pages/components/LangSelector.js @@ -1,10 +1,13 @@ import React from "react"; import Popper from "popper.js"; -import { useRouter } from 'next/router' import Link from 'next/link'; import { faLanguage } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +// i18n +import { useTranslation, useLanguageQuery, LanguageSwitcher } from 'next-export-i18n'; + + const Dropdown = ({ color }) => { // dropdown props const [dropdownPopoverShow, setDropdownPopoverShow] = React.useState(false); @@ -45,12 +48,12 @@ const Dropdown = ({ color }) => {
- + 日本語 - - + + English - +
diff --git a/pages/components/Menu/FontAwesomeMenu.js b/pages/components/Menu/FontAwesomeMenu.js index 0c7c819..a40e66c 100644 --- a/pages/components/Menu/FontAwesomeMenu.js +++ b/pages/components/Menu/FontAwesomeMenu.js @@ -5,11 +5,11 @@ import Link from 'next/link' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; const FontAwesomeMenu = (props) => { - const { icon, dest } = props + const { icon, dest, query } = props return (
- + diff --git a/pages/components/Menu/MinecraftMenu.js b/pages/components/Menu/MinecraftMenu.js index 10827d8..f4a3e7c 100644 --- a/pages/components/Menu/MinecraftMenu.js +++ b/pages/components/Menu/MinecraftMenu.js @@ -1,10 +1,15 @@ // Next.js import Link from 'next/link' -const MinecraftMenu = () => { +const MinecraftMenu = (props) => { + const { query } = props + + if (!query) { + return

Loading...

+ } else { return (
- + @@ -14,5 +19,6 @@ const MinecraftMenu = () => {
) } +} export default MinecraftMenu \ No newline at end of file diff --git a/pages/components/Minecraft.js b/pages/components/Minecraft.js index 1c6fb20..ebe0dfd 100644 --- a/pages/components/Minecraft.js +++ b/pages/components/Minecraft.js @@ -1,11 +1,16 @@ +// React import React, { useState, useEffect } from 'react'; -import useTranslation from 'next-translate/useTranslation' -import { useRouter } from 'next/router' + +// i18n +import { useTranslation, useLanguageQuery } from 'next-export-i18n'; + import axios from 'axios'; import Image from 'next/image' import { list } from 'postcss'; export default function Minecraft(props) { + const { t } = useTranslation(); + const [query] = useLanguageQuery(); const [data, setData] = useState({ hits: [] }); useEffect(() => { @@ -21,7 +26,7 @@ export default function Minecraft(props) { if (data === undefined){ console.log("[Minecraft Query] データの取得に失敗しました。 / Failed to retrieve data.") return ( -

{t('minecraft:fail')}

+

{t('fail')}

) }else{ const status = data.online @@ -32,13 +37,13 @@ export default function Minecraft(props) { {(() => { if (status == true) { if (player == undefined || player == 0) { - return {t('minecraft:no_one')} + return {t('no_one')} } else { - return {t('minecraft:playing', {count: player})} + return {t('playing', {count: player})} }}else if (status == false) { - return {t('minecraft:offline')} + return {t('offline')} }else { - return {t('minecraft:loading')} + return {t('loading')} } })()} diff --git a/pages/components/Minecraft/Online.js b/pages/components/Minecraft/Online.js index e029ed4..c1e261f 100644 --- a/pages/components/Minecraft/Online.js +++ b/pages/components/Minecraft/Online.js @@ -1,10 +1,18 @@ +// React import React, { useState, useEffect } from 'react'; + +// Data fetching import axios from 'axios'; -import useTranslation from 'next-translate/useTranslation' -import { useRouter } from 'next/router' + +// i18n +import { useTranslation, useLanguageQuery } from 'next-export-i18n'; + +// Components import LastPlayed from './LastPlayed' function App (props) { + const { t } = useTranslation(); + const [query] = useLanguageQuery(); const uuid = props; const [data, setData] = useState({ hits: [] }); diff --git a/pages/components/Minecraft/PlayerName.js b/pages/components/Minecraft/PlayerName.js index 3e47101..81ce135 100644 --- a/pages/components/Minecraft/PlayerName.js +++ b/pages/components/Minecraft/PlayerName.js @@ -1,4 +1,7 @@ +// React import React, { useState, useEffect } from 'react'; + +// Data fetching import axios from 'axios'; function App (props) { diff --git a/pages/components/Navbar.js b/pages/components/Navbar.js index 0c3804f..ba358a9 100644 --- a/pages/components/Navbar.js +++ b/pages/components/Navbar.js @@ -18,7 +18,7 @@ const Navbar = () => { return ( <>
diff --git a/pages/components/Profile/Button.js b/pages/components/Profile/Button.js index 5c77903..a79565b 100644 --- a/pages/components/Profile/Button.js +++ b/pages/components/Profile/Button.js @@ -7,7 +7,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; const Button = (props) => { const { icon, dest, caption } = props return ( - + {showModal ? ( <> @@ -34,17 +36,17 @@ export default function Modal() { {/* Modal body */}
-

{keys}

+

{t('keys')}

  • PGP    - {download} + {t('download')} -

    {fingerprint}:

    +

    {t('fingerprint')}:

    3745 F270 DB4E 8975 6B07 62BE EB0F E5D9 25C4 A968 @@ -56,10 +58,10 @@ export default function Modal() {   - {view} + {t('view')} -

    {fingerprint}:

    +

    {t('fingerprint')}:

    2048 SHA256:xwSL4DORWmroWdC6P0GU1m1yZl/cXqjo9rCCWqqO+Dc @@ -76,7 +78,7 @@ export default function Modal() { type="button" onClick={() => setShowModal(false)} > - {close} + {t('close')}
    diff --git a/pages/components/Profile/Spotify.js b/pages/components/Profile/Spotify.js index 8385750..1fb6851 100644 --- a/pages/components/Profile/Spotify.js +++ b/pages/components/Profile/Spotify.js @@ -1,9 +1,16 @@ +// React import React, { useState, useEffect } from 'react'; + +// Data fetching import axios from 'axios'; -import useTranslation from 'next-translate/useTranslation' -import { useRouter } from 'next/router' + +// i18n +import { useTranslation, useLanguageQuery } from 'next-export-i18n'; function App () { + const { t } = useTranslation(); + const [query] = useLanguageQuery(); + const [data, setData] = useState({ hits: [] }); useEffect(() => { const fetchData = async () => { diff --git a/pages/components/Profile/WakaTime.js b/pages/components/Profile/WakaTime.js index c91604d..632fe65 100644 --- a/pages/components/Profile/WakaTime.js +++ b/pages/components/Profile/WakaTime.js @@ -1,8 +1,9 @@ +// React import React, { useState, useEffect } from 'react'; -import useTranslation from 'next-translate/useTranslation' + +// Font Awesome import { faUserClock } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { useRouter } from 'next/router' export default function Modal() { const [showModal, setShowModal] = React.useState(false); diff --git a/pages/hcunews.js b/pages/hcunews.js index 285c335..5d6b5ab 100644 --- a/pages/hcunews.js +++ b/pages/hcunews.js @@ -15,7 +15,7 @@ import en from '../docs/hcunews/en.md' export default function HcuNews() { const { t } = useTranslation(); -const [query] = useLanguageQuery(); + const [query] = useLanguageQuery(); return( diff --git a/pages/house.js b/pages/house.js index b5b7bef..4136dd3 100644 --- a/pages/house.js +++ b/pages/house.js @@ -3,13 +3,14 @@ import Layout from "./components/Layout" // i18n import { useTranslation, useLanguageQuery, LanguageSwitcher } from 'next-export-i18n'; -const { t } = useTranslation(); -const [query] = useLanguageQuery(); // Next.js router import { useRouter } from 'next/router' export default function About(props) { + const { t } = useTranslation(); + const [query] = useLanguageQuery(); + return (
    diff --git a/pages/index.js b/pages/index.js index 887fb36..e9d4810 100644 --- a/pages/index.js +++ b/pages/index.js @@ -27,6 +27,9 @@ export default function Index(props) { const { t } = useTranslation(); const [query] = useLanguageQuery(); + if (!query) { + return

    Loading...

    + } else { return ( <> @@ -43,15 +46,15 @@ export default function Index(props) { {/* Index menu */}
    - - - - - - - - - + + + + + + + + +
    {/* Banner */} @@ -67,3 +70,4 @@ export default function Index(props) { ) } +} diff --git a/pages/minecraft.js b/pages/minecraft.js index 7c68475..0b6bcf9 100644 --- a/pages/minecraft.js +++ b/pages/minecraft.js @@ -7,8 +7,6 @@ import { useRouter } from 'next/router' // i18n import { useTranslation, useLanguageQuery, LanguageSwitcher } from 'next-export-i18n'; -const { t } = useTranslation(); -const [query] = useLanguageQuery(); // Next.js import Image from 'next/image' @@ -31,11 +29,17 @@ import en from '../docs/minecraft/en.md' import { NextSeo } from 'next-seo'; export default function About(props) { + const { t } = useTranslation(); + const [query] = useLanguageQuery(); + // Copy server address to clipboard const copyText = () => { navigator.clipboard.writeText("yude.jp"); }; + if (!query) { + return

    Loading...

    + } else { return ( <> {/* Load markdown contents */} - {lang === 'ja' ? ( + {query["lang"] === 'ja' ? ( {ja} @@ -95,4 +99,5 @@ export default function About(props) {
    ) + } } \ No newline at end of file diff --git a/pages/mutual.js b/pages/mutual.js index 5b6476a..8bb4916 100644 --- a/pages/mutual.js +++ b/pages/mutual.js @@ -3,8 +3,6 @@ import Layout from "./components/Layout" // i18n import { useTranslation, useLanguageQuery, LanguageSwitcher } from 'next-export-i18n'; -const { t } = useTranslation(); -const [query] = useLanguageQuery(); // React Router etc. import { useRouter } from 'next/router' @@ -20,6 +18,12 @@ import en from '../docs/mutual/en.md' import { NextSeo } from 'next-seo'; export default function Tos(props) { + const { t } = useTranslation(); + const [query] = useLanguageQuery(); + + if (!query) { + return

    Loading...

    + } else { return( <>
    - {lang === 'ja' ? ( + {query["lang"] === 'ja' ? ( {ja} @@ -41,4 +45,5 @@ export default function Tos(props) { ) + } } \ No newline at end of file diff --git a/pages/posts.js b/pages/posts.js index 6995a9c..e0f107c 100644 --- a/pages/posts.js +++ b/pages/posts.js @@ -9,8 +9,6 @@ import { useRouter } from 'next/router' // i18n import { useTranslation, useLanguageQuery, LanguageSwitcher } from 'next-export-i18n'; -const { t } = useTranslation(); -const [query] = useLanguageQuery(); // microCMS library import { client } from "../libs/client"; @@ -19,6 +17,9 @@ import { client } from "../libs/client"; import { NextSeo } from 'next-seo'; export default function Home({ blog }) { + const { t } = useTranslation(); + const [query] = useLanguageQuery(); + return ( <> @@ -119,7 +119,7 @@ export default function Profile(props) {
    -

    {t('common:icon_1')}Minkasy {t('common:icon_2')}

    +

    {t('icon_1')}Minkasy {t('icon_2')}

    diff --git a/pages/server.js b/pages/server.js index 398c850..778ad4b 100644 --- a/pages/server.js +++ b/pages/server.js @@ -3,16 +3,14 @@ import Layout from "./components/Layout" // i18n import { useTranslation, useLanguageQuery, LanguageSwitcher } from 'next-export-i18n'; -const { t } = useTranslation(); -const [query] = useLanguageQuery(); - -// React Router -import { useRouter } from 'next/router' // next-seo import { NextSeo } from 'next-seo'; export default function Server(props) { + const { t } = useTranslation(); + const [query] = useLanguageQuery(); + return ( <>