# 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.