The easiest way to translate your NextJs apps. With Koa support only. Forked from next-i18next.
next-i18next-koa is a fork of next-i18next with Koa server support only. This fork uses koa-i18next-middleware-fixed instead of i18next-express-middleware.
npm i @winstrike/next-i18next-koa or yarn add @winstrike/next-i18next-koa
nextI18NextMiddleware() returns an array of middleware. You should use all of them, as in this example:
const Koa = require("koa"); const Router = require("koa-router"); const serve = require("koa-static"); const mount = require("koa-mount"); const nextApp = require("next"); const nextI18NextMiddleware = require("@winstrike/next-i18next-koa/middleware"); const nextI18Next = require("./lib/i18n"); const app = nextApp({ dev: process.env.NODE_ENV !== "production", }); const handle = app.getRequestHandler(); app.prepare().then(() => { const server = new Koa(); const router = new Router(); // Access to locales for preloading them from client-side i18next server.use(mount("/locales", serve("./locales"))); router.get("*", async (ctx) => { await handle(ctx.req, ctx.res); ctx.respond = false; }); // Use all of middlewares const middlewares = nextI18NextMiddleware(nextI18Next); middlewares.forEach((middleware) => { server.use(middleware); }); server.use(router.routes()); server.listen(port, () => { console.log(`> Ready on http://localhost:${port}`); }); });
You can find other information about next-i18next in the original readme.