www/apps/book/app/learn/resources/contribution-guidelines/admin-translations/page.mdx
export const metadata = {
title: Translate Medusa Admin,
}
The Medusa Admin supports multiple languages, with the default being English. In this documentation, you'll learn how to contribute to the community by translating the Medusa Admin to a language you're fluent in.
You can contribute either by translating the admin to a new language, or fixing translations for existing languages. As we can't validate every language's translations, some translations may be incorrect. Your contribution is welcome to fix any translation errors you find.
<Note>Check out the translated languages either in the admin dashboard's settings or on GitHub.
</Note>git clone https://github.com/medusajs/medusa.git
If you already have it cloned, make sure to pull the latest changes from the develop branch.
yarn install
git checkout -b feat/translate-<LANGUAGE>
Where <LANGUAGE> is your language name. For example, feat/translate-da.
Translation files are under packages/admin/dashboard/src/i18n/translations as JSON files whose names are the ISO-2 name of the language.
packages/admin/dashboard/src/i18n/translations/en.json and paste it with the ISO-2 name for your language. For example, if you're adding Danish translations, copy the en.json file and paste it as packages/admin/dashboard/src/i18n/translations/de.json.packages/admin/dashboard/src/i18n/translations.Start translating the keys in the JSON file (or updating the targeted ones). All keys in the JSON file must be translated, and your PR tests will fail otherwise.
packages/admin/dashboard, replacing da.json with the JSON file's name:yarn i18n:validate da.json
packages/admin/dashboard/src/i18n/translations/index.ts and add it to the exported object:// other imports...
import da from "./da.json"
export default {
// other languages...
da: {
translation: da,
},
}
The language's key in the object is the ISO-2 name of the language.
packages/admin/dashboard/src/i18n/languages.ts:export const languageHighlights = [ ["7", "code", "The ISO-2 name of the language."], ["8", "display_name", "The language's name to be displayed in the admin."], ["9", "ltr", "Whether the language supports a left-to-right layout."], ["10", "date_locale", "An instance of the locale imported from the date-fns/locale package."] ]
import { da } from "date-fns/locale"
// other imports...
export const languages: Language[] = [
// other languages...
{
code: "da",
display_name: "Danish",
ltr: true,
date_locale: da,
},
]
languages is an array having the following properties:
code: The ISO-2 name of the language. For example, da for Danish.display_name: The language's name to be displayed in the admin.ltr: Whether the language supports a left-to-right layout. For example, set this to false for languages like Arabic.date_locale: An instance of the locale imported from the date-fns/locale package.Our team will perform a general review on your PR and merge it if no issues are found. The translation will be available in the admin after the next release.