Breaking
Latest technical intelligence from Northeast India • Infrastructure, AI, Cloud & Security Analysis • Precision Analysis | Raw Intelligence | Your North Star of Tech • Latest technical intelligence from Northeast India • Infrastructure, AI, Cloud & Security Analysis
WEBDEV

Analysis: The complete guide to internationalization in Next.js

Streamlining i18n in Next.js with Lingui.js

Simplifying Internationalization in Next.js Using Lingui.js

In the ever-evolving world of web development, the ability to create applications that cater to diverse language communities has become a crucial aspect. This article sheds light on a practical approach to implementing internationalization (i18n) in Next.js applications using Lingui.js. The insights shared herein are based on a real-world scenario, providing valuable lessons for developers in North East India and beyond.

Setting Up Lingui.js in Next.js

To integrate Lingui.js into a Next.js application, one may encounter some challenges, such as the 'Module not found: Can't resolve fs' error. This issue can be resolved by properly configuring the .babelrc file, ensuring it includes the necessary presets and plugins. The presets should include next/babel, while the plugins array should contain macros.

Babel Configuration

Here's a sample .babelrc configuration that resolves the 'Module not found' issue:

  { "presets": ["next/babel"], "plugins": ["macros"] }  

Adjusting the Translation Path

In most Next.js applications, the structure may not include a src folder. This can cause issues when looking for translation files, as they may start with 'src'. To avoid this, it's essential to adjust the path where Lingui will search for translations.

Modifying the Translation Path

To modify the translation path, ensure that the i18n.js file, which exports the Lingui instance, is placed in the correct location, such as the pages or components directory.

Automating the Extraction and Compilation Process

The 'npm run lingui extract' command may not work as expected if the script is not set up correctly. To fix this, add the 'extract' and 'compile' commands to the script section of the package.json file.

Script Configuration

Here's an example of a script configuration:

  "scripts": { "dev": "next", "lingui": "lingui extract && lingui compile" }  

Handling Language Changes in Next.js

When changing the language in the menu of a Next.js application, one may encounter an issue where the rendering is blocked by firstRender.current. To resolve this, remove firstRender.current from _app.js.

Removing firstRender.current

Here's an example of how to remove firstRender.current:

  function MyApp({ Component, pageProps }) { // Remove firstRender.current // ... return ; }  

Relevance to North East India and India at Large

As India continues to diversify, the need for applications that cater to multiple languages becomes increasingly important. The insights shared in this article can help developers in North East India and across the country create more inclusive and accessible applications, bridging the language divide and fostering digital inclusion.

Conclusion

By understanding and addressing common challenges when implementing i18n in Next.js using Lingui.js, developers can create more efficient and effective applications. As we continue to embrace the digital age, it's crucial to ensure that our technology serves the needs of all users, regardless of their linguistic background.