This is a work in progress, some of which may be project specific to one of our projects. Use at own risk
Translation plugin that includes a translation dashboard
To install any plugin, simply add it to your payload.config() in the Plugin array.
import {
translationPlugin,
LexicalTranslationWatchFeature,
} from "payload-plugin-translation";
export const config = buildConfig({
editor: lexicalEditor({
features: ({ defaultFeatures }) => [
...defaultFeatures,
LexicalTranslationWatchFeature(),
],
}),
plugins: [
translationPlugin({
enabled: true,
collections: ["collection-to-translate", "another-collection-to-translate"],
globals: ["global-to-translate", "another-global-to-translate"],
googleApiKey: <your google translate api key>,
// getLocales : (req: PayloadRequest) => Promise<Locale[]> | Locale[] | string[] | Promise<string[]> // Function that returns the locales to be translated to (helpful for tenantized sites with different locales per tenant)
// createQuery : (req: PayloadRequest) => Where // Function that returns a query to filter the documents to be translated (helpful for tenantized sites with different documents per tenant)
// attachExtraData : (req: PayloadRequest) => Promise<Record<string, any>> | Record<string, any> // Function that returns extra data to be attached to the translation object when saving from the translation dashboard
// collectionFilter : (slug: string) => boolean // Function that filters the collections to be translated
}),
]
});