commit
						d7f9f7068e
					
				@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# dependencies
 | 
				
			||||||
 | 
					/node_modules
 | 
				
			||||||
 | 
					/.pnp
 | 
				
			||||||
 | 
					.pnp.js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# testing
 | 
				
			||||||
 | 
					/coverage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# next.js
 | 
				
			||||||
 | 
					/.next/
 | 
				
			||||||
 | 
					/out/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# production
 | 
				
			||||||
 | 
					/build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# misc
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
 | 
					*.pem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# debug
 | 
				
			||||||
 | 
					npm-debug.log*
 | 
				
			||||||
 | 
					yarn-debug.log*
 | 
				
			||||||
 | 
					yarn-error.log*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# local env files
 | 
				
			||||||
 | 
					.env.local
 | 
				
			||||||
 | 
					.env.development.local
 | 
				
			||||||
 | 
					.env.test.local
 | 
				
			||||||
 | 
					.env.production.local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vercel
 | 
				
			||||||
 | 
					.vercel
 | 
				
			||||||
@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Getting Started
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					First, run the development server:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					npm run dev
 | 
				
			||||||
 | 
					# or
 | 
				
			||||||
 | 
					yarn dev
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.tsx`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Learn More
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To learn more about Next.js, take a look at the following resources:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
 | 
				
			||||||
 | 
					- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Deploy on Vercel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
 | 
				
			||||||
@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					/// <reference types="next" />
 | 
				
			||||||
 | 
					/// <reference types="next/types/global" />
 | 
				
			||||||
@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					  reactStrictMode: true,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "next_i18n_test",
 | 
				
			||||||
 | 
					  "version": "0.1.0",
 | 
				
			||||||
 | 
					  "private": true,
 | 
				
			||||||
 | 
					  "scripts": {
 | 
				
			||||||
 | 
					    "dev": "next dev",
 | 
				
			||||||
 | 
					    "build": "next build",
 | 
				
			||||||
 | 
					    "start": "next start",
 | 
				
			||||||
 | 
					    "lint": "next lint"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "next": "11.0.1",
 | 
				
			||||||
 | 
					    "react": "17.0.2",
 | 
				
			||||||
 | 
					    "react-dom": "17.0.2"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@types/react": "17.0.13",
 | 
				
			||||||
 | 
					    "eslint": "7.30.0",
 | 
				
			||||||
 | 
					    "eslint-config-next": "11.0.1",
 | 
				
			||||||
 | 
					    "typescript": "4.3.5"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					import '../styles/globals.css'
 | 
				
			||||||
 | 
					import type { AppProps } from 'next/app'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function MyApp({ Component, pageProps }: AppProps) {
 | 
				
			||||||
 | 
					  return <Component {...pageProps} />
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export default MyApp
 | 
				
			||||||
@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
 | 
				
			||||||
 | 
					import type { NextApiRequest, NextApiResponse } from 'next'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type Data = {
 | 
				
			||||||
 | 
					  name: string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function handler(
 | 
				
			||||||
 | 
					  req: NextApiRequest,
 | 
				
			||||||
 | 
					  res: NextApiResponse<Data>
 | 
				
			||||||
 | 
					) {
 | 
				
			||||||
 | 
					  res.status(200).json({ name: 'John Doe' })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,69 @@
 | 
				
			|||||||
 | 
					import Head from 'next/head'
 | 
				
			||||||
 | 
					import Image from 'next/image'
 | 
				
			||||||
 | 
					import styles from '../styles/Home.module.css'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function Home() {
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					    <div className={styles.container}>
 | 
				
			||||||
 | 
					      <Head>
 | 
				
			||||||
 | 
					        <title>Create Next App</title>
 | 
				
			||||||
 | 
					        <meta name="description" content="Generated by create next app" />
 | 
				
			||||||
 | 
					        <link rel="icon" href="/favicon.ico" />
 | 
				
			||||||
 | 
					      </Head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <main className={styles.main}>
 | 
				
			||||||
 | 
					        <h1 className={styles.title}>
 | 
				
			||||||
 | 
					          Welcome to <a href="https://nextjs.org">Next.js!</a>
 | 
				
			||||||
 | 
					        </h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <p className={styles.description}>
 | 
				
			||||||
 | 
					          Get started by editing{' '}
 | 
				
			||||||
 | 
					          <code className={styles.code}>pages/index.js</code>
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <div className={styles.grid}>
 | 
				
			||||||
 | 
					          <a href="https://nextjs.org/docs" className={styles.card}>
 | 
				
			||||||
 | 
					            <h2>Documentation →</h2>
 | 
				
			||||||
 | 
					            <p>Find in-depth information about Next.js features and API.</p>
 | 
				
			||||||
 | 
					          </a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <a href="https://nextjs.org/learn" className={styles.card}>
 | 
				
			||||||
 | 
					            <h2>Learn →</h2>
 | 
				
			||||||
 | 
					            <p>Learn about Next.js in an interactive course with quizzes!</p>
 | 
				
			||||||
 | 
					          </a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <a
 | 
				
			||||||
 | 
					            href="https://github.com/vercel/next.js/tree/master/examples"
 | 
				
			||||||
 | 
					            className={styles.card}
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
 | 
					            <h2>Examples →</h2>
 | 
				
			||||||
 | 
					            <p>Discover and deploy boilerplate example Next.js projects.</p>
 | 
				
			||||||
 | 
					          </a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <a
 | 
				
			||||||
 | 
					            href="https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
 | 
				
			||||||
 | 
					            className={styles.card}
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
 | 
					            <h2>Deploy →</h2>
 | 
				
			||||||
 | 
					            <p>
 | 
				
			||||||
 | 
					              Instantly deploy your Next.js site to a public URL with Vercel.
 | 
				
			||||||
 | 
					            </p>
 | 
				
			||||||
 | 
					          </a>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </main>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <footer className={styles.footer}>
 | 
				
			||||||
 | 
					        <a
 | 
				
			||||||
 | 
					          href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
 | 
				
			||||||
 | 
					          target="_blank"
 | 
				
			||||||
 | 
					          rel="noopener noreferrer"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          Powered by{' '}
 | 
				
			||||||
 | 
					          <span className={styles.logo}>
 | 
				
			||||||
 | 
					            <Image src="/vercel.svg" alt="Vercel Logo" width={72} height={16} />
 | 
				
			||||||
 | 
					          </span>
 | 
				
			||||||
 | 
					        </a>
 | 
				
			||||||
 | 
					      </footer>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 25 KiB  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
@ -0,0 +1,121 @@
 | 
				
			|||||||
 | 
					.container {
 | 
				
			||||||
 | 
					  min-height: 100vh;
 | 
				
			||||||
 | 
					  padding: 0 0.5rem;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  flex-direction: column;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  height: 100vh;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.main {
 | 
				
			||||||
 | 
					  padding: 5rem 0;
 | 
				
			||||||
 | 
					  flex: 1;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  flex-direction: column;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.footer {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100px;
 | 
				
			||||||
 | 
					  border-top: 1px solid #eaeaea;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.footer a {
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  flex-grow: 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.title a {
 | 
				
			||||||
 | 
					  color: #0070f3;
 | 
				
			||||||
 | 
					  text-decoration: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.title a:hover,
 | 
				
			||||||
 | 
					.title a:focus,
 | 
				
			||||||
 | 
					.title a:active {
 | 
				
			||||||
 | 
					  text-decoration: underline;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.title {
 | 
				
			||||||
 | 
					  margin: 0;
 | 
				
			||||||
 | 
					  line-height: 1.15;
 | 
				
			||||||
 | 
					  font-size: 4rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.title,
 | 
				
			||||||
 | 
					.description {
 | 
				
			||||||
 | 
					  text-align: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.description {
 | 
				
			||||||
 | 
					  line-height: 1.5;
 | 
				
			||||||
 | 
					  font-size: 1.5rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.code {
 | 
				
			||||||
 | 
					  background: #fafafa;
 | 
				
			||||||
 | 
					  border-radius: 5px;
 | 
				
			||||||
 | 
					  padding: 0.75rem;
 | 
				
			||||||
 | 
					  font-size: 1.1rem;
 | 
				
			||||||
 | 
					  font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
 | 
				
			||||||
 | 
					    Bitstream Vera Sans Mono, Courier New, monospace;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.grid {
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  flex-wrap: wrap;
 | 
				
			||||||
 | 
					  max-width: 800px;
 | 
				
			||||||
 | 
					  margin-top: 3rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.card {
 | 
				
			||||||
 | 
					  margin: 1rem;
 | 
				
			||||||
 | 
					  padding: 1.5rem;
 | 
				
			||||||
 | 
					  text-align: left;
 | 
				
			||||||
 | 
					  color: inherit;
 | 
				
			||||||
 | 
					  text-decoration: none;
 | 
				
			||||||
 | 
					  border: 1px solid #eaeaea;
 | 
				
			||||||
 | 
					  border-radius: 10px;
 | 
				
			||||||
 | 
					  transition: color 0.15s ease, border-color 0.15s ease;
 | 
				
			||||||
 | 
					  width: 45%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.card:hover,
 | 
				
			||||||
 | 
					.card:focus,
 | 
				
			||||||
 | 
					.card:active {
 | 
				
			||||||
 | 
					  color: #0070f3;
 | 
				
			||||||
 | 
					  border-color: #0070f3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.card h2 {
 | 
				
			||||||
 | 
					  margin: 0 0 1rem 0;
 | 
				
			||||||
 | 
					  font-size: 1.5rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.card p {
 | 
				
			||||||
 | 
					  margin: 0;
 | 
				
			||||||
 | 
					  font-size: 1.25rem;
 | 
				
			||||||
 | 
					  line-height: 1.5;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.logo {
 | 
				
			||||||
 | 
					  height: 1em;
 | 
				
			||||||
 | 
					  margin-left: 0.5rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@media (max-width: 600px) {
 | 
				
			||||||
 | 
					  .grid {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    flex-direction: column;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					html,
 | 
				
			||||||
 | 
					body {
 | 
				
			||||||
 | 
					  padding: 0;
 | 
				
			||||||
 | 
					  margin: 0;
 | 
				
			||||||
 | 
					  font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
 | 
				
			||||||
 | 
					    Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					a {
 | 
				
			||||||
 | 
					  color: inherit;
 | 
				
			||||||
 | 
					  text-decoration: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* {
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "compilerOptions": {
 | 
				
			||||||
 | 
					    "target": "es5",
 | 
				
			||||||
 | 
					    "lib": ["dom", "dom.iterable", "esnext"],
 | 
				
			||||||
 | 
					    "allowJs": true,
 | 
				
			||||||
 | 
					    "skipLibCheck": true,
 | 
				
			||||||
 | 
					    "strict": true,
 | 
				
			||||||
 | 
					    "forceConsistentCasingInFileNames": true,
 | 
				
			||||||
 | 
					    "noEmit": true,
 | 
				
			||||||
 | 
					    "esModuleInterop": true,
 | 
				
			||||||
 | 
					    "module": "esnext",
 | 
				
			||||||
 | 
					    "moduleResolution": "node",
 | 
				
			||||||
 | 
					    "resolveJsonModule": true,
 | 
				
			||||||
 | 
					    "isolatedModules": true,
 | 
				
			||||||
 | 
					    "jsx": "preserve"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
 | 
				
			||||||
 | 
					  "exclude": ["node_modules"]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue