JsonTranslate is a multilingual JSON translation tool designed for developers and content creators. It supports Google Translate, Azure, and DeepL(X) translation APIs to help with project internationalization and localization. Whether you are developing a multilingual website, app, or managing multilingual datasets, JsonTranslate offers a simple solution to easily translate JSON file content into multiple target languages.
Global translation recursively traverses the entire JSON structure, translating all string values while preserving the original hierarchy and structure of the JSON.
Suitable for:
Using a JSONPath expression, you can precisely target one or more nodes and translate only the string content within those nodes. Multiple paths can be specified, separated by commas.
Suitable for:
In this mode, you can specify particular key names to translate. Two input methods are supported:
Suitable for:
title
or description
Notes:
This mode is suitable for flat JSON structures. You can specify a starting node and the field names to be translated. The system will search from the specified node for target fields in all objects and translate them.
Configuration Options:
Suitable for:
i18n mode is designed for multilingual scenarios, allowing the aggregation of multiple language fields within the original JSON structure. It is ideal for building translation files for multilingual websites or apps, or managing multilingual configurations under a unified structure.
zh
, the source field is zh
. If the source language is set to auto
, the default source field is en
.If the target languages are set to zh
and fr
, the translation result is:
This tool supports 5 translation APIs and 5 LLM (large language model) interfaces, allowing users to choose the appropriate translation method based on their needs:
API Type | Translation Quality | Stability | Suitable Scenarios | Free Quota |
---|---|---|---|---|
DeepL(X) | ★★★★★ | ★★★★☆ | Suitable for long texts; smoother translations | 500,000 characters per month |
Google Translate | ★★★★☆ | ★★★★★ | Ideal for UI text and common phrases | 500,000 characters per month |
Azure Translate | ★★★★☆ | ★★★★★ | Broadest language support | 2,000,000 characters per month for the first 12 months |
GTX API (Free) | ★★★☆☆ | ★★★☆☆ | General text translation | Free |
GTX Web (Free) | ★★★☆☆ | ★★☆☆☆ | Suitable for small-scale translation | Free |
For higher translation speed and quality, you can apply for an API Key from Google Translate, Azure Translate, or DeepL Translate. Refer to the related API application tutorial for the application process.
This tool provides access to five mainstream AI large models (LLMs) or interfaces: OpenAI, DeepSeek, Siliconflow, Groq, and Custom LLM.
The Custom LLM option allows integration with third-party services or local inference platforms (such as ollama) by configuring the API endpoint and model name. For example, the default API endpoint for a local ollama setup is:
The default model used is llama3.2
. For LM Studio, the local API endpoint is:
To achieve better translation quality, it is recommended to use qwen2.5-14b-instruct
or a higher-performing model in the Custom LLM setup.
In terms of multilingual translation capabilities, Google, Azure, and large language models (LLMs) support translation between hundreds of languages, while DeepL currently supports only 30 mainstream languages. Therefore, in terms of language coverage, DeepL is relatively weaker.
For a detailed list of supported languages, please refer to the official documentation:
When using the specified key name mode, you can switch between the single key mode and the mapped translation mode using the toggle button in the result area. In single key mode, the same node is used for both translation input and output. In mapped translation mode, however, translations involve different nodes—for example, the value of node A is translated to node B, and the value of node C is translated to node D.
This tool introduces an optional local translation cache to improve translation efficiency and reduce resource consumption:
source text_target language_source language_translation API_model settings
.To disable the use of translation cache, you can uncheck "Use translation cache" or click "Clear translation cache" in the API settings.
Supports translating the same file into multiple languages at once, which is especially suitable for international video content:
When using this tool, please note the following:
DeepL support: Since the DeepL API does not support direct calls from the web, a server-side forwarding interface is provided solely for data transmission, and it will not collect user data. For better stability, users can also choose to deploy this interface themselves.
Using the DeepLX free interface may sometimes return null. Please wait a moment and try again, or use your own API KEY or deploy your own forwarding interface.
API Key security: This tool does not store your API key; all configuration data is saved in your local browser.
GTX Web interface: This interface places considerable load on the server, so it is recommended to enable it manually only when deploying locally. Please avoid using it in networks with a global proxy enabled to prevent translation errors.
JSON data is stored as key-value pairs, where a "key" (also known as a "name") is a string that uniquely identifies a specific item or element in the data record, forming the basis for data retrieval and manipulation. JsonTranslate leverages the identifying function of JSON key names to achieve precise translation.
Below is an explanation of several key names in the example:
downvote.message
: This is a nested key name. downvote
is the key of the outer object, and message
is a key within the downvote
object.提示词.message
: Here, 提示词
is a key that contains an object, which in turn has a key named message
.share.owner
: This key contains a dot (.
) and is treated as a single key rather than indicating a nested relationship. In this case, if you want to access the name
within the share.owner
object, you cannot use share.owner.name
because it would be mistakenly interpreted as looking for a name
key within an owner
object. In reality, share.owner
is a complete key name.Currently, JsonTranslate cannot process JSON key names that contain a dot (.
). This is because the dot in JSONPath is used to distinguish nested object keys, which can lead to keys with dots being misinterpreted as multiple levels of nested objects. To avoid this issue, it is recommended to use key names without dots.