0.0.14 • Published 6 months ago

@drawilet/nextjs-i18n v0.0.14

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

⬛ nextjs-i18n

Simplify Next.js internationalization with our client-side companion to Node-i18n. Seamlessly integrate and access translated content in your project with ease.

Installation

# npm
npm install @drawilet/nextjs-i18n

# yarn
yarn add @drawilet/nextjs-i18n

Getting started

Follow the i18n guide up to point 3, then come back here.

  1. Add the i18n option to your next.config.js.

    const i18n = require("./i18n.config");
    
    /** @type {import('next').NextConfig} */
    const nextConfig = {
      i18n: {
        locales: i18n.locales,
        defaultLocale: i18n.defaultLocale,
      },
    };
    
    module.exports = nextConfig;
  2. Add the I18nProvider to your _app.tsx (.jsx) file.

    import type { AppProps } from "next/app";
    import { useRouter } from "next/router";
    
    import { I18nProvider } from "@drawilet/nextjs-i18n";
    import resources from "../locales/data.json"; // OUTPUT_PATH
    
    export default function MyApp({ Component, pageProps }: AppProps) {
      const router = useRouter();
    
      return (
        <I18nProvider resources={resources} router={router}>
          <Component {...pageProps} />
        </I18nProvider>
      );
    }
  3. In the pages where you want to use i18n, import the useI18n hook.

    import { useI18n } from "@drawilet/nextjs-i18n";
    
    export const _i18n = {
      title: "Hello World",
    };
    
    const Page = () => {
      const i18n = useI18n();
    
      return (
        <div>
          <h1>{i18n("title")}</h1>
        </div>
      );
    };
    
    export default Page;

    For components

    import { useI18n } from "@drawilet/nextjs-i18n";
    export const _i18n = {};
    
    const Header: Component = () => {
      const i18n = useI18n("components", "/Layout/Header");
    
      return <header></header>;
    };
    export default Header;

Note

Remember to use the command npx i18n generate every time you update the texts to be translated.

0.0.14

6 months ago

0.0.13

6 months ago

0.0.12

6 months ago

0.0.11

6 months ago

0.0.10

6 months ago

0.0.9

6 months ago

0.0.8

6 months ago

0.0.7

6 months ago

0.0.6

6 months ago

0.0.5

6 months ago

0.0.4

6 months ago

0.0.3

6 months ago

0.0.2

6 months ago

0.0.1

6 months ago