sweepai-dev / mirrorful

Create the building blocks of your app
https://mirrorful.com
Other
0 stars 0 forks source link

Sweep: Internationalization of Mirrorful Editor Dashboard with i18n #1

Open wwzeng1 opened 1 year ago

wwzeng1 commented 1 year ago

Adding i18n to the Mirrorful Editor

Next.js has built-in support for internationalized (i18n) routing since v10.0.0. You can provide a list of locales, the default locale, and domain-specific locales and Next.js will automatically handle the routing.

The i18n routing support is currently meant to complement existing i18n library solutions like react-intl, react-i18next, lingui, rosetta, next-intl, next-translate, next-multilingual, typesafe-i18n, tolgee, and others by streamlining the routes and locale parsing.

Getting started To get started, add the i18n config to your next.config.js file.

Locales are UTS Locale Identifiers, a standardized format for defining locales.

Generally a Locale Identifier is made up of a language, region, and script separated by a dash: language-region-script. The region and script are optional. An example:

en-US - English as spoken in the United States nl-NL - Dutch as spoken in the Netherlands nl - Dutch, no specific region If user locale is nl-BE and it is not listed in your configuration, they will be redirected to nl if available, or to the default locale otherwise. If you don't plan to support all regions of a country, it is therefore a good practice to include country locales that will act as fallbacks.

sweep-ai[bot] commented 1 year ago

Here's the PR! https://github.com/sweepai-dev/mirrorful/pull/4.

πŸ’Ž Sweep Pro: I used GPT-4 to create this ticket. You have 129 GPT-4 tickets left.


Step 1: πŸ” Code Search

I found the following snippets in your repository. I will now analyze these snippets and come up with a plan.

Some code snippets I looked at (click to expand). If some file is missing from here, you can mention the path in the ticket description. https://github.com/sweepai-dev/mirrorful/blob/114e1d4ca0049ec69912a6e702e311b497f747d9/packages/mirrorful/editor/src/pages/api/export.ts#L1-L31 https://github.com/sweepai-dev/mirrorful/blob/114e1d4ca0049ec69912a6e702e311b497f747d9/i18n/README.pt.md#L160-L200 https://github.com/sweepai-dev/mirrorful/blob/114e1d4ca0049ec69912a6e702e311b497f747d9/i18n/README.es.md#L155-L195 https://github.com/sweepai-dev/mirrorful/blob/114e1d4ca0049ec69912a6e702e311b497f747d9/packages/mirrorful/editor/package.json#L1-L50 https://github.com/sweepai-dev/mirrorful/blob/114e1d4ca0049ec69912a6e702e311b497f747d9/i18n/README.es.md#L1-L49

Step 2: 🧐 Snippet Analysis

From looking through the relevant snippets, I decided to make the following modifications:

File Path Proposed Changes
packages/mirrorful/editor/src/locales/en.json Create a new language file for English. This file should contain a JSON object with key-value pairs for each text string used in the dashboard. The keys should be descriptive identifiers, and the values should be the English translations of the text strings.
packages/mirrorful/editor/src/locales/es.json Create a new language file for Spanish. This file should contain a JSON object with key-value pairs for each text string used in the dashboard. The keys should be descriptive identifiers, and the values should be the Spanish translations of the text strings.
packages/mirrorful/editor/package.json Add the i18n library to the list of dependencies.
packages/mirrorful/editor/src/pages/_app.tsx Import the i18n library and initialize it with the language files. Replace all hardcoded text strings with references to the corresponding keys in the language files.
packages/mirrorful/editor/src/components/LayoutWrapper.tsx Add a language selector to the layout. This could be a dropdown menu or a set of buttons, each representing a different language. When a user selects a language, call the i18n library's changeLanguage function with the corresponding language code.

Step 3: πŸ“ Planning

I have created a plan for writing the pull request. I am now working my plan and coding the required changes to address this issue. Here is the planned pull request:

Internationalization of Mirrorful Editor Dashboard with i18n sweep/feature/i18n-integration

Description

This PR adds internationalization (i18n) support to the Mirrorful Editor Dashboard. It allows users to switch between different languages and translates all text strings in the dashboard accordingly.

Summary of Changes

  • Added the i18n library as a dependency in the packages/mirrorful/editor/package.json file.
  • Created language files for English (packages/mirrorful/editor/src/locales/en.json) and Spanish (packages/mirrorful/editor/src/locales/es.json).
  • Modified the packages/mirrorful/editor/src/pages/_app.tsx file to initialize the i18n library with the language files and replace hardcoded text strings with references to the corresponding keys in the language files.
  • Added a language selector to the packages/mirrorful/editor/src/components/LayoutWrapper.tsx file, allowing users to switch between different languages and update the dashboard's text strings accordingly.

Please review and merge this PR to enable internationalization support in the Mirrorful Editor Dashboard.


Step 4: ⌨️ Coding

I have finished coding the issue. I am now reviewing it for completeness.


Step 5: πŸ” Code Review

Success! πŸš€


I'm a bot that handles simple bugs and feature requests but I might make mistakes. Please be kind! Join Our Discord