# gt-next: General Translation Next.js SDK: loadDictionary URL: https://generaltranslation.com/en-US/docs/next/api/config/load-dictionary.mdx --- title: loadDictionary description: API reference for the loadDictionary() function --- ## Overview `loadDictionary` will load a translation json file for a given locale. This function is intended for those who which to use `gt-next` as a stand-alone i18n library. This function is primarily used to migrate existing projects with i18n to General Translation while keeping their existing translations. Follow [this guide](/docs/next/guides/migration) to set this up. If multiple translations exist, translations from dictionaries loaded by `loadDictionary` will always take precedence over others. `loadDictionary` only supports the use of JSON files with string translations. ## Reference ### Parameters ### Description | Type | Description | | ---- | ----------- | | `locale` | The locale for which translations should be loaded. | ### Returns A `Promise` that resolves to dictionary mapping ids to translations for the given locale. --- ## Setup Generally, you will load the dictionary from the `./public/locales` directory. Define your `loadDictionary` as the default export for a file with the name `loadDictionary.js` or `loadDictionary.ts` either in the `src/` directory or the root. Make sure to have the function return a promise that resolves to an object with translations for the given locale. ```jsx title="src/loadDictionary.js" export default async function loadDictionary(locale) { const translations = await import(`../public/locales/${locale}.json`); return translations.default; } ``` **Question:** What's the difference between [`loadTranslations`](/docs/next/api/config/load-translations) and [`loadDictionary`](/docs/next/api/config/load-dictionary)? * [`loadTranslations`](/docs/next/api/config/load-translations) is used to define custom loading behavior for fetching translations for your app. This could be getting translations from a CDN, a database, or your app's bundle. These are usually machine generated translations, managed by the cli tool, and not very user friendly to edit. * [`loadDictionary`](/docs/next/api/config/load-dictionary) is intended for implementations of `gt-next` as a standalone library. Users bring their own translations and no translation infrastructure is used. --- ## Notes * `loadDictionary` is used to load custom translations for your app. * Dictionaries loaded by `loadDictionary` will take precedence over translations loaded by [`loadTranslations`](/docs/next/api/config/load-translations). ## Next steps * If you want to write your own translations check out [custom translations](/docs/next/concepts/stand-alone). * See [`loadTranslations`](/docs/next/api/config/load-translations) for more information on writing a custom translation loader.