---
title: Developing custom translation services
related:
  - https://docs.kentico.com/13/multilingual-websites/developing-custom-translation-services/translating-content-via-rest.md
  - https://docs.kentico.com/13/multilingual-websites/translating-content-using-external-services.md
  - https://docs.kentico.com/13/multilingual-websites/configuring-translation-services.md
  - https://docs.kentico.com/13/multilingual-websites.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

> **Info:** **Enterprise license required**
>
> Features described on this page require the **Kentico Xperience Enterprise** license.

In addition to the [translation providers](https://docs.kentico.com/13/multilingual-websites/configuring-translation-services.md) available by default, you can also integrate any other services or your own translation mechanisms.

To add a custom service:

1. Create a class that defines the translation functionality or the communication logic between Xperience and an external service. The implementation rules for the class are different for machine and human translation services. You can find detailed information and custom development examples for the two types of services on the dedicated pages:

   - [Creating machine services](https://docs.kentico.com/13/multilingual-websites/developing-custom-translation-services/creating-machine-translation-services.md)
   - [Creating human translation services](https://docs.kentico.com/13/multilingual-websites/developing-custom-translation-services/creating-human-translation-services.md)
2. Add a new assembly (_Class Library_ project) to your Xperience solution and include the service class there. You need to add the appropriate references to both the assembly and the administration project.
3. Register the service in the system via the **Translation services** application and specify its [properties](https://docs.kentico.com/13/multilingual-websites/developing-custom-translation-services/reference-translation-service-properties.md).
4. Create [Custom settings](https://docs.kentico.com/13/custom-development/creating-custom-modules/adding-custom-website-settings.md) for any additional parameters required by the service, such as connection credentials or API keys.

   - The settings allow administrators to configure the service for specific websites or translation projects.

When translating pages or resource strings, users can choose custom services among the translation options offered by the system.
