<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Kinga</title>
    <description>The latest articles on Forem by Kinga (@pelirroja).</description>
    <link>https://forem.com/pelirroja</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F161636%2F8e0e9103-5d1d-4f80-a8af-4b0273cb4eb9.jpg</url>
      <title>Forem: Kinga</title>
      <link>https://forem.com/pelirroja</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pelirroja"/>
    <language>en</language>
    <item>
      <title>How to translate NextJS app with next-i18next?</title>
      <dc:creator>Kinga</dc:creator>
      <pubDate>Wed, 25 May 2022 09:10:21 +0000</pubDate>
      <link>https://forem.com/pelirroja/how-to-translate-nextjs-app-with-next-i18next-ang</link>
      <guid>https://forem.com/pelirroja/how-to-translate-nextjs-app-with-next-i18next-ang</guid>
      <description>&lt;p&gt;NextJS, a well-known framework among React developers, provides multiple libraries that create a very developer-friendly environment. The most popular ones are i18Next, &lt;a href="https://simplelocalize.io/blog/posts/next-translate/"&gt;next-translate&lt;/a&gt; and, our main focus in this blog post, &lt;a href="https://github.com/isaachinman/next-i18next"&gt;next-18next&lt;/a&gt;, a translation library that does a fantastic job helping in translation management. The following blog post will show you how to set up next-i18n in your NextJS app and &lt;a href="https://simplelocalize.io/"&gt;manage translations with SimpleLocalize&lt;/a&gt;. Take a look at our &lt;a href="https://github.com/simplelocalize/simplelocalize-next-i18next"&gt;demo app&lt;/a&gt; for the reference.&lt;/p&gt;

&lt;h2&gt;
  
  
  About next-i18next
&lt;/h2&gt;

&lt;p&gt;Next-i18next is a NextJS framework that completes and &lt;strong&gt;expands the possibilities of NextJS basic i18n&lt;/strong&gt; setup, which focuses mainly on automation of i18n routing using locales. Next-i18next uses i18next and react-i18next at its core, but it is simple to install, and the configuration takes only a few steps. &lt;/p&gt;

&lt;p&gt;Next-i18next offers additional benefits for NextJS app localization, like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;easy integration with translation content management like SimpleLocalize&lt;/li&gt;
&lt;li&gt;components/hooks for React components translation&lt;/li&gt;
&lt;li&gt;production ready with SSG/SSR support (Static Site Generation and Server-Side Rendering)&lt;/li&gt;
&lt;li&gt;allows namespaces&lt;/li&gt;
&lt;li&gt;customizable interpolation&lt;/li&gt;
&lt;li&gt;supports code-splitting&lt;/li&gt;
&lt;li&gt;easy setup and configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The standard file structure for next-i18next with namespaces will look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
├── en
│   ├── common.json
│   └── home.json
├── es
│   ├── common.json
│   └── home.json
├── it
│   ├── common.json
│   └── home.json
└── pt_PT
    ├── common.json
    └── home.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are four &lt;strong&gt;languages&lt;/strong&gt; in our app (&lt;code&gt;en&lt;/code&gt;, &lt;code&gt;es&lt;/code&gt;, &lt;code&gt;it&lt;/code&gt; and &lt;code&gt;pt_PT&lt;/code&gt;) and two &lt;strong&gt;namespaces&lt;/strong&gt;, &lt;code&gt;common&lt;/code&gt; and &lt;code&gt;home&lt;/code&gt;. &lt;strong&gt;A namespace is usually one page of your website or app.&lt;/strong&gt; In such a multiple-file setup, next-i18next loads only the translations that it needs to display from a selected locale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next-i18next configuration
&lt;/h2&gt;

&lt;p&gt;The basic next-i18next configuration takes only few steps and will allow you to improve translation management in your app. See the below step-by-step guide to get started.&lt;/p&gt;

&lt;h3&gt;
  
  
  Install next-i18next
&lt;/h3&gt;

&lt;p&gt;Use the simple command below to start with next-i18next installation with NPM or Yarn:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save&lt;/span&gt; next-i18next
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create i18n configuration file
&lt;/h3&gt;

&lt;p&gt;Now, create a configuration file in the project's root, &lt;code&gt;./next-i18next.config.js&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;📦&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;file:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;./next-i&lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="err"&gt;next.config.js&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="err"&gt;module.exports&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;i&lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="err"&gt;n:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;defaultLocale:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'en'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;locales:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;'en'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'es'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'it'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'pt_PT'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Add next-i18next to your NextJS app
&lt;/h3&gt;

&lt;p&gt;The last step in the configuration is importing next-i18next configuration into &lt;code&gt;next.config.js&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// 📦 file: ./next.config.js&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;i18n&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./next-i18next.config&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nextConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;reactStrictMode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;i18n&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kr"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;nextConfig&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create your file structure
&lt;/h3&gt;

&lt;p&gt;When next-i18next is installed and configured, create your file structure for translations with languages and namespaces. Check the standard structure we described at the beginning of this blog post.&lt;/p&gt;

&lt;p&gt;The root directory for your translations is &lt;code&gt;/locales/{lang}/{ns}.json&lt;/code&gt; where &lt;code&gt;lang&lt;/code&gt; is your locale (en, es, it, pt) and &lt;code&gt;ns&lt;/code&gt; is your namespace (common, home). &lt;/p&gt;

&lt;h2&gt;
  
  
  How to manage next-i18next translation files?
&lt;/h2&gt;

&lt;p&gt;Next-i18next is a great framework which makes translation management way easier. Use it together with SimpleLocalize translation editor to manage localization process of your app like a pro. 😎&lt;/p&gt;

&lt;p&gt;With SimpleLocalize, you can easily add new languages, manage existing translations and even &lt;strong&gt;auto-translate all translations&lt;/strong&gt;! See how to get started and connect your NextJS app with next-i18next and SimpleLocalize.&lt;/p&gt;

&lt;h3&gt;
  
  
  Install SimpleLocalize CLI
&lt;/h3&gt;

&lt;p&gt;Use &lt;a href="https://simplelocalize.io/docs/cli/get-started/"&gt;SimpleLocalize CLI&lt;/a&gt; to easily extract translation keys from your project and upload them to SimpleLocalize translation editor. &lt;/p&gt;

&lt;p&gt;Issue the command below to start the installation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://get.simplelocalize.io/2.0/install | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, &lt;strong&gt;create a configuration file&lt;/strong&gt; that will integrate your project with your SimpleLocalize account in no time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# 📦 file: ./simplelocalize.yml&lt;/span&gt;
&lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;YOUR_PROJECT_API_KEY&lt;/span&gt;
&lt;span class="na"&gt;downloadFormat&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;single-language-json&lt;/span&gt;
&lt;span class="na"&gt;downloadPath&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./locales/{lang}/{ns}.json&lt;/span&gt;

&lt;span class="na"&gt;uploadFormat&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;single-language-json&lt;/span&gt;
&lt;span class="na"&gt;uploadPath&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./locales/{lang}/{ns}.json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Upload your translation files to SimpleLocalize
&lt;/h3&gt;

&lt;p&gt;To upload your translations to SimpleLocalize project, use the installed CLI by running the command below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;simplelocalize upload
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or check &lt;a href="https://simplelocalize.io/docs/cli/upload-translations/"&gt;more import options&lt;/a&gt; available for multiple file formats.&lt;/p&gt;

&lt;h3&gt;
  
  
  Translate your app in SimpleLocalize online editor
&lt;/h3&gt;

&lt;p&gt;Now, the best part of translation management begins. Log in to your SimpleLocalize account, open your project and start managing your translations. Use &lt;a href="https://simplelocalize.io/translation-editor/"&gt;SimpleLocalize online translation editor&lt;/a&gt; to edit translations, add more languages, or &lt;a href="https://simplelocalize.io/blog/posts/how-to-use-auto-translation/"&gt;translate them automatically with DeepL or Google Translate&lt;/a&gt;. &lt;strong&gt;Share the project with your team members&lt;/strong&gt; and send access to translators using intuitive &lt;a href="https://simplelocalize.io/docs/general/project-sharing/"&gt;access sharing options&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tWbxyZ5c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/assets/translation-editor-interface.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tWbxyZ5c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/assets/translation-editor-interface.png" alt="i18n online editor" width="880" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://simplelocalize.io/register/"&gt;Sign up for free Community plan&lt;/a&gt; and &lt;strong&gt;start managing your localization process in your way in our feedback-driven app&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Download translations to your app
&lt;/h3&gt;

&lt;p&gt;When you are done with editing your translation, &lt;a href="https://simplelocalize.io/docs/cli/download-translations/"&gt;download&lt;/a&gt; localized files using CLI, or with one of multiple supported file format.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;simplelocalize download
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Next-i18next demo app
&lt;/h3&gt;

&lt;p&gt;To try out how next-i18next goes with NextJS and SimpleLocalize and check an &lt;strong&gt;example of NextJS localization&lt;/strong&gt;, run our demo app locally on your computer. Download the files from &lt;a href="https://github.com/simplelocalize/simplelocalize-next-i18next"&gt;Github repository&lt;/a&gt; and test how it works.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3xRx-8ni--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/next-i18next-example.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3xRx-8ni--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/next-i18next-example.png" alt="Example next-i18next project with NextJS" width="880" height="603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Localize your NextJS app with SimpleLocalize
&lt;/h2&gt;

&lt;p&gt;App or website localization can be a challenging  task, but you can make it a pleasant experience with great tools and localization frameworks. NextJS has a variety of external libraries that create a comfortable base for your work. Not only next-i18next, but also next-translate or next-intl and much more. Integrating your app with SimpleLocalize will improve your satisfaction during your app localization process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--06ZnHuGW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/import-your-translations-from-file.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--06ZnHuGW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/import-your-translations-from-file.png" alt="import multi-language-json to simplelocalize" width="880" height="860"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>i18n</category>
      <category>localization</category>
      <category>nextjs</category>
      <category>react</category>
    </item>
    <item>
      <title>The complete guide to managing translation projects with Excel</title>
      <dc:creator>Kinga</dc:creator>
      <pubDate>Tue, 19 Apr 2022 12:03:00 +0000</pubDate>
      <link>https://forem.com/pelirroja/the-complete-guide-to-managing-translation-projects-with-excel-dob</link>
      <guid>https://forem.com/pelirroja/the-complete-guide-to-managing-translation-projects-with-excel-dob</guid>
      <description>&lt;p&gt;Excel is a very popular tool for translation management, especially in smaller projects. It can be used to maintain an overview of translation keys, translators, languages, and deliverables at the same time.&lt;/p&gt;

&lt;p&gt;The benefits of Excel are that it is flexible, collaborative, scalable, and easy to use. It can meet the needs of small-scale translation projects as well as projects with many active translators and large scale translations. &lt;/p&gt;

&lt;h2&gt;
  
  
  How to use Excel as a translation management tool
&lt;/h2&gt;

&lt;p&gt;Excel is a great tool to start translation management in a new project. With a simple Excel file, you can check current translation version, progress of translating new keys or languages, and share the file easily with your team members.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to create a spreadsheet for project translations
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How to get started?&lt;/strong&gt; Simply create a new file in Excel or Google Sheets and start by naming your columns. The best way is to extract or copy translation keys from your project, and put them in the first column. &lt;/p&gt;

&lt;p&gt;Next, add language columns and their translations in corresponding cells. Have a look at the sample translation for our PlaceFlare app. Quite easy, right?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7XJp4RGq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/excel-google-sheets-translation-file.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7XJp4RGq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/excel-google-sheets-translation-file.png" alt="sample excel translation file" width="880" height="505"&gt;&lt;/a&gt;&lt;br&gt;
This is a basic and simple translation template which will work perfectly for your project. &lt;/p&gt;

&lt;p&gt;Here are some useful tips for translating in Excel: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Freeze key column&lt;/strong&gt; to easily scroll between languages if there are many. &lt;/li&gt;
&lt;li&gt;Add an extra column where you put a &lt;strong&gt;screenshot or image of the translated area&lt;/strong&gt; — sometimes you may not remember where the key came from. With the screenshot, you can easily associate the key and its location. &lt;/li&gt;
&lt;li&gt;Use international codes for naming language columns (e.g., en, es) together with its &lt;a href="https://simplelocalize.io/blog/posts/language-vs-locale/"&gt;locale&lt;/a&gt; like en-GB, es-ES, es-CL. It will be easier to start with &lt;strong&gt;internationalization&lt;/strong&gt; sooner than deal with it later.&lt;/li&gt;
&lt;li&gt;Make one language your main one and fully translate it first. It will be a base for translating other languages. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to work with Excel translation files?
&lt;/h3&gt;

&lt;p&gt;An Excel file is a great tool for translations, but it still needs to be uploaded to your app or website. The file allows you to control easily updated texts, add languages and modify translations, but it doesn't connect directly with the source code. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9MipoJCy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/excel-to-json-and-json-to-excel-conversion.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9MipoJCy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/excel-to-json-and-json-to-excel-conversion.jpg" alt="sample excel translation file" width="880" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Usually you need to &lt;strong&gt;convert the Excel file to JSON&lt;/strong&gt;. Remember that when translation changes, there is a new feature or update, you need to edit the file and give the updated version to your dev team to replace the existing translations in the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-translation in Excel
&lt;/h2&gt;

&lt;p&gt;Today, we can use a variety of online resources to automatically translate texts with a very high level of precision. The most popular tools online are &lt;strong&gt;DeepL&lt;/strong&gt; and &lt;strong&gt;Google Translate&lt;/strong&gt;. You can use them as a great help with translating texts, or use built-in translation features or plugins. Here are some examples of auto-translation option for Excel files:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Sheets translation formula&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can easily translate text in Google Sheets with integrated formula from Google Translate. Just type in a selected cell this formula: &lt;br&gt;
&lt;strong&gt;=GOOGLETRANSLATE(cell to translate, “source language”, “target language”)&lt;/strong&gt;, for example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rl0OHvkR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/google-sheets-translate.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rl0OHvkR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/google-sheets-translate.png" alt="Google Sheets google translate" width="880" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then spread the formula for the entire column and work the same way for other languages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Microsoft Excel Translate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Microsoft Excel has a special function for automatic translations, called &lt;strong&gt;Translate&lt;/strong&gt;. You will find it under Review tab. Check how to use this option in the official &lt;a href="https://www.microsoft.com/en-us/translator/business/excel/"&gt;Excel translation guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-translation with DeepL or Google Translate with SimpleLocalize
&lt;/h2&gt;

&lt;p&gt;Instead of the manual work with Excel options, you can use a translation management tool which has dedicated options for seamless automatic translations. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1pC3AfC0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/auto-translate.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1pC3AfC0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/auto-translate.jpg" alt="Auto translation with SimpleLocalize" width="880" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it works?&lt;/strong&gt;&lt;br&gt;
Login to SimpleLocalize with &lt;strong&gt;free Community plan&lt;/strong&gt; and create your project. Then, with one click, &lt;strong&gt;upload your existing Excel file&lt;/strong&gt; and hit &lt;strong&gt;Start auto translation&lt;/strong&gt; button.&lt;/p&gt;

&lt;p&gt;SimpleLocalize will &lt;strong&gt;auto translate with Google Translate or DeepL&lt;/strong&gt; for selected languages. In a few seconds, you can have your project fully translated and ready to go!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sdrTq7XF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/auto-translation-job.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sdrTq7XF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/auto-translation-job.png" alt="Auto translation with SimpleLocalize" width="880" height="580"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When your translations are ready, you can export them to many supported formats, also Excel, or &lt;a href="https://simplelocalize.io/docs/cli/upload-translations/"&gt;upload translations automatically with CLI&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pros and Cons of using spreadsheets for translation Management
&lt;/h2&gt;

&lt;p&gt;Using spreadsheets as translation management tool is a popular choice for many projects, but it has its pros and cons, especially compared with a dedicated translation app:  &lt;/p&gt;

&lt;h3&gt;
  
  
  Pros:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;simple to import and export data&lt;/li&gt;
&lt;li&gt;helps to track changes in translation file&lt;/li&gt;
&lt;li&gt;easy to use and well known for everyone&lt;/li&gt;
&lt;li&gt;allows sharing files with the team&lt;/li&gt;
&lt;li&gt;no or very low cost&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cons:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;a lot of manual work with copy-pasting texts and formulas&lt;/li&gt;
&lt;li&gt;not so user-friendly and simple enough for translations (not designed to be a translation management tool)&lt;/li&gt;
&lt;li&gt;requires frequent file changes and manual uploads of new translations&lt;/li&gt;
&lt;li&gt;difficult to keep track on new translations and removing not used translation keys as its very time-consuming task&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_qGlvrq0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/translation-editor-interface.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_qGlvrq0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://simplelocalize.io/blog/translation-editor-interface.png" alt="SimpleLocalize translation editor" width="880" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Easy Excel file translation with SimpleLocalize
&lt;/h2&gt;

&lt;p&gt;SimpleLocalize is a simple, intuitive way to manage internationalization in Excel. It's data-driven, easy to use, and saves time on tedious processes that are otherwise difficult to automate. &lt;/p&gt;

&lt;p&gt;Import your current Excel files to SimpleLocalize and start translating your projects efficiently with auto translation features. &lt;a href="https://simplelocalize.io/pricing/"&gt;Start now with our free Community plan&lt;/a&gt; and check how SimpleLocalize can help you in your work!&lt;/p&gt;

</description>
      <category>excel</category>
      <category>i18n</category>
      <category>localization</category>
      <category>translation</category>
    </item>
    <item>
      <title>How to translate NextJS application with next-translate?</title>
      <dc:creator>Kinga</dc:creator>
      <pubDate>Mon, 18 Apr 2022 19:46:20 +0000</pubDate>
      <link>https://forem.com/pelirroja/how-to-translate-nextjs-application-with-next-translate-33gf</link>
      <guid>https://forem.com/pelirroja/how-to-translate-nextjs-application-with-next-translate-33gf</guid>
      <description>&lt;p&gt;NextJS, as a very popular framework among React programmers, offers a variety of features and external libraries, that create a very developer-friendly environment. One of them is &lt;a href="https://github.com/vinissimus/next-translate" rel="noopener noreferrer"&gt;next-translate, a translation library&lt;/a&gt; that well known for its simple set up and use. In this blog post, you will learn to configure next-translate in your NextJS app, and to &lt;a href="https://simplelocalize.io" rel="noopener noreferrer"&gt;manage translations with SimpleLocalize&lt;/a&gt; assist.&lt;/p&gt;

&lt;h2&gt;
  
  
  About next-translate
&lt;/h2&gt;

&lt;p&gt;Next-translate is a great choice for managing your translations in your NextJS application. It is easy to configure and use, even for beginners. It supports basic internationalization (i18n) like plurals or Trans component (to use HTML inside translated text), loads only necessary translations which extremely saves your app memory, and it doesn't take a lot of storage. &lt;/p&gt;

&lt;p&gt;The library uses namespaces that allow you to split translations into multiple files. The standard file structure looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
├── en
│   ├── common.json
│   └── home.json
├── es
│   ├── common.json
│   └── home.json
├── pl
│   ├── common.json
│   └── home.json
└── fr
    ├── common.json
    └── home.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are four &lt;strong&gt;languages&lt;/strong&gt; in our app (&lt;code&gt;en&lt;/code&gt;, &lt;code&gt;es&lt;/code&gt;, &lt;code&gt;fr&lt;/code&gt; and &lt;code&gt;pl&lt;/code&gt;) and two &lt;strong&gt;namespaces&lt;/strong&gt;, &lt;code&gt;common&lt;/code&gt; and &lt;code&gt;home&lt;/code&gt;. &lt;strong&gt;A namespace is usually one page of your website or app.&lt;/strong&gt; Such file structure is clear and easy to manage. Thanks to this setup, next-translate will only load the translations that are needed to display translated content in a selected locale. &lt;/p&gt;

&lt;h2&gt;
  
  
  Next-translate configuration
&lt;/h2&gt;

&lt;p&gt;The configuration of next-translate takes only a few steps, and they are straightforward to follow. See below the step-by-step setup for your NextJS app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Install next-translate
&lt;/h3&gt;

&lt;p&gt;To get started, install next-translate. You can do that with either NPM or Yarn. Simply run the command in your console.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save&lt;/span&gt; next-translate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create i18n configuration file
&lt;/h3&gt;

&lt;p&gt;Create a configuration file, i18n.json, in your project's root. It will look like below, where you set the locales you will use in your project, the default language and your namespaces (one for each page).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"locales"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"en"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"es"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fr"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pl"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"defaultLocale"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"en"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"pages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"common"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"/"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"home"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create your namespaces file structure
&lt;/h3&gt;

&lt;p&gt;The next step is to create your file structure with languages and namespaces. Check the example above for the file structure. &lt;/p&gt;

&lt;p&gt;The root directory for your translations is &lt;code&gt;/locales/{lang}/{ns}.json&lt;/code&gt; where &lt;code&gt;lang&lt;/code&gt; is your locale (en, es, fr, pl) and &lt;code&gt;ns&lt;/code&gt; is your namespace (common, home).&lt;/p&gt;

&lt;h3&gt;
  
  
  Add next-translate to your app
&lt;/h3&gt;

&lt;p&gt;The last step of the configuration of next-translate is to add it to your app, to &lt;code&gt;next.config.js&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// 📦 file: ./next.config.js&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nextTranslate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next-translate&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="kr"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;nextTranslate&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;webpack&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;isServer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;webpack&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And that's all. With those four steps, you are ready to translate your app with SimpleLocalize.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to manage next-translate translation files?
&lt;/h2&gt;

&lt;p&gt;SimpleLocalize can help you translate your keys automatically and manage them in a great translation editor. Adding a new language will become as effortless as you could ever imagine. How to get started, then?&lt;/p&gt;

&lt;h3&gt;
  
  
  Install SimpleLocalize CLI
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://simplelocalize.io/docs/cli/get-started/" rel="noopener noreferrer"&gt;SimpleLocalize CLI&lt;/a&gt; will get translation files from your project, extract them and upload to SimpleLocalize.&lt;/p&gt;

&lt;p&gt;Run the command below to start the installation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://get.simplelocalize.io/2.0/install | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, &lt;strong&gt;create a configuration file&lt;/strong&gt; to smoothly integrate your project with your SimpleLocalize account.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# 📦 file: ./simplelocalize.yml&lt;/span&gt;
&lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;YOUR_PROJECT_API_KEY&lt;/span&gt;
&lt;span class="na"&gt;downloadFormat&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;single-language-json&lt;/span&gt;
&lt;span class="na"&gt;downloadPath&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./locales/{lang}/{ns}.json&lt;/span&gt;

&lt;span class="na"&gt;uploadFormat&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;single-language-json&lt;/span&gt;
&lt;span class="na"&gt;uploadPath&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./locales/{lang}/{ns}.json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Upload translations to SimpleLocalize
&lt;/h3&gt;

&lt;p&gt;You can use the installed CLI to &lt;a href="https://simplelocalize.io/docs/cli/upload-translations/" rel="noopener noreferrer"&gt;upload your translation files&lt;/a&gt; to your project in &lt;br&gt;
SimpleLocalize. Run the command below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;simplelocalize upload
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Use SimpleLocalize to translate your app
&lt;/h3&gt;

&lt;p&gt;Now, the fun begins. Use SimpleLocalize translation editor to change your translations, add new languages, or translate the keys automatically with DeepL or Google Translate. &lt;a href="https://simplelocalize.io/blog/posts/translation-editor-explained/" rel="noopener noreferrer"&gt;Translation editor features&lt;/a&gt; will help you control translation progress and work with translators within one translation management system. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsimplelocalize.io%2Fassets%2Ftranslation-editor-interface.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsimplelocalize.io%2Fassets%2Ftranslation-editor-interface.png" alt="i18n online editor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://simplelocalize.io/register/" rel="noopener noreferrer"&gt;Sign up for free Community plan&lt;/a&gt; to get your translations on track for you and your team.&lt;/p&gt;

&lt;h3&gt;
  
  
  Download translations to your project
&lt;/h3&gt;

&lt;p&gt;When your translation changes are ready, you can &lt;a href="https://simplelocalize.io/docs/cli/download-translations/" rel="noopener noreferrer"&gt;download&lt;/a&gt; &lt;br&gt;
them to your project with a CLI command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;simplelocalize download
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Next-translate demo app
&lt;/h3&gt;

&lt;p&gt;You can try how i18n next-translate library works in a Next JS app with our demo. &lt;br&gt;
Check the &lt;a href="https://github.com/simplelocalize/simplelocalize-next-translate" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; and run it locally on your computer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsimplelocalize.io%2Fblog%2Fnext-translate-example-application.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsimplelocalize.io%2Fblog%2Fnext-translate-example-application.jpg" alt="Example next-translate project with NextJS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Localize your NextJS app with SimpleLocalize
&lt;/h2&gt;

&lt;p&gt;Localization of a website or app can be a challenging task. Fortunately, there are great tools that help both developers and translations to do their job with ease. SimpleLocalize connects the workflow for all team members of the project and helps to manage the translation process efficiently. Next-translate is a great start to begin the i18n of your NextJS app. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsimplelocalize.io%2Fblog%2Fimport-your-translations-from-file.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsimplelocalize.io%2Fblog%2Fimport-your-translations-from-file.png" alt="import multi-language-json to simplelocalize"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>i18n</category>
      <category>localization</category>
      <category>nextjs</category>
      <category>react</category>
    </item>
    <item>
      <title>Internationalization cloud tool for yahoo/react-intl</title>
      <dc:creator>Kinga</dc:creator>
      <pubDate>Sun, 28 Apr 2019 20:21:07 +0000</pubDate>
      <link>https://forem.com/pelirroja/internationalization-cloud-tool-for-yahoo-react-intl-1bh1</link>
      <guid>https://forem.com/pelirroja/internationalization-cloud-tool-for-yahoo-react-intl-1bh1</guid>
      <description>&lt;p&gt;Are you struggling with keeping your app translations up to date and your dreams are filled with empty keys to translate? No worries, we know that feeling very well. To make the whole localisation process easier, we created a simple and effective solution which will improve the quality of translations and help you keep them in track! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8stvdc832sfg94vu1cuv.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8stvdc832sfg94vu1cuv.jpeg" alt="cli"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  How does it work?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;SimpleLocalize is a tool created to help developers manage translations in their apps.&lt;/strong&gt; You can use import tool to upload all keys from your project to a cloud editor, translate them in the easy and clean spreadsheet and that’s all you have to do! Translated keys will be synchronised automatically with your project and vice versa, when you add a new key, it will appear in SimpleLocalize cloud ready to add the translation. You can &lt;strong&gt;use SimpleLocalize-CLI to find internationalization keys in the source code automatically&lt;/strong&gt;, or you can import and export files manually, we support multiple formats, like &lt;a href="https://github.com/yahoo/react-intl" rel="noopener noreferrer"&gt;yahoo/react-intl&lt;/a&gt;, Android XML String resources, iOS, Jekyll, Java properties and of course Excel and CSV files. Sounds interesting?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fui8ddirj973pcujlwdsj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fui8ddirj973pcujlwdsj.jpg" alt="flow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  i18n keys auto-discovery feature
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;SimpleLocalize is created to automatise your work and help you keep all translations up to date.&lt;/strong&gt; You can create multiple projects and &lt;strong&gt;share them with your team&lt;/strong&gt; or give access to selected projects to the translators team. When their job is completed, you can &lt;strong&gt;publish changes to the CDN&lt;/strong&gt;, refresh your deployed application and voilà! Everything is translated now! You can easily check the progress of the project translations, track the missing keys and use as many languages as you want. Make your app available worldwide thanks to the professional and always updated translations.&lt;/p&gt;

&lt;h1&gt;
  
  
  How to start?
&lt;/h1&gt;

&lt;p&gt;First, head to SimpleLocalize.io and &lt;a href="https://app.simplelocalize.io/register" rel="noopener noreferrer"&gt;sign up to get an account&lt;/a&gt;, the basic plan it's free, and allows you to handle medium-sized translation repository. &lt;strong&gt;Create a new project&lt;/strong&gt; by adding its name. &lt;strong&gt;Select the project type&lt;/strong&gt; which will define the way the translations will be exported, for example, just CDN is the most common for web applications like ReactJS with &lt;a href="https://github.com/yahoo/react-intl" rel="noopener noreferrer"&gt;yahoo/react-intl&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fhxkq4x1uqtoxnx0qwuaw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fhxkq4x1uqtoxnx0qwuaw.png" alt="create-project"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open the project and go to &lt;em&gt;Settings&lt;/em&gt;.&lt;/strong&gt; Download configuration properties with the one click on the button &lt;em&gt;Download CLI Properties&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fk752b3gx38nqe8lrmc5d.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fk752b3gx38nqe8lrmc5d.jpeg" alt="simplelocalize-download-credentials"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;in downloaded file set &lt;code&gt;projectType:&lt;/code&gt; property to &lt;code&gt;yahoo/react-intl&lt;/code&gt;  and it should look now like follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;uploadToken&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;PROJECT_UPLOAD_TOKEN&amp;gt;&lt;/span&gt;
&lt;span class="na"&gt;projectType&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;yahoo/react-intl&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://simplelocalize.io/docs/cli/get-started/" rel="noopener noreferrer"&gt;&lt;em&gt;Read more about CLI &lt;code&gt;projectType&lt;/code&gt; property&lt;/em&gt;.&lt;/a&gt; Save the file in your project root directory. Next, run the CLI tool in your project directory using the command line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sL&lt;/span&gt; https://cdn.simplelocalize.io/cli/simplelocalize | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It will search for the keys in your project directory according to &lt;code&gt;projectType&lt;/code&gt; defined in the configuration file and send them to the SimpleLocalize cloud where you can easily check how may translations are missing and manage them in one place.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fp6vokj8q5zlyrz2mzr7m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fp6vokj8q5zlyrz2mzr7m.png" alt="spreadsheet"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Done, you successfully configured the project!&lt;/p&gt;

&lt;p&gt;Add translations and publish changes to check how the keys are updated in your project! &lt;strong&gt;When you click &lt;em&gt;Publish&lt;/em&gt; button all translations will be sent to your frontend app through the CDN&lt;/strong&gt;, it works even when the application is deployed. That means you can change text on the page without rebuilding and redeploying the whole application. Pretty useful, huh?&lt;/p&gt;

&lt;p&gt;Now you can fetch translations using url like follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://app.gitbook.com/@simplelocalize/s/simplelocalize/api/generic-cdn" rel="noopener noreferrer"&gt;https://cdn.simplelocalize.io/:projectToken/_latest/:languageKey&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;or use &lt;a href="https://simplelocalize.io/docs/integrations/format-js/" rel="noopener noreferrer"&gt;&lt;code&gt;react-intl-simplelocalize&lt;/code&gt; library&lt;/a&gt; for ReactJS applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffr5kjtvxd1ftr45188ys.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffr5kjtvxd1ftr45188ys.png" alt="project-list"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Ready to start?
&lt;/h1&gt;

&lt;p&gt;Give it a try and test the new internationalisation tool we have created. It is designed to help you to keep all translations up to date, easily manage new keys and translations changes and work on multiple project at the same time, in one place. Integrate you web or mobile app with SimpleLocalize and work with your clients efficiently without Excel spreadsheets and translations files, instead use the clean and user-friendly interface of SimpleLocalize and control the i18n process in much pleasant way. &lt;br&gt;
&lt;a href="https://app.simplelocalize.io/register" rel="noopener noreferrer"&gt;Create account, no credit card required!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>i18n</category>
      <category>internationalization</category>
      <category>reactintl</category>
    </item>
  </channel>
</rss>
