Implementation:Langgenius Dify I18n App Debug Translations
| Knowledge Sources | |
|---|---|
| Domains | Internationalization, Frontend |
| Last Updated | 2026-02-08 00:00 GMT |
Overview
Concrete i18n translation bundle providing localized UI strings for the app-debug section of the Dify frontend.
Description
This translation namespace contains all user-facing strings for the application debug and orchestration panel, including agent mode configuration, assistant type selection, code generation tools, dataset/knowledge retrieval configuration, debug and preview controls, feature toggles (annotations, citations, conversation history, conversation opener, file/image/audio/document upload, content moderation, more-like-this, speech-to-text, text-to-speech, suggested questions), prompt generation and optimization, input field configuration, model and parameter settings, opening statement management, prompt mode switching, variable configuration (short text, paragraph, number, select, checkbox, JSON, file types), vision and voice settings, and error/warning messages. The bundle is a flat JSON key-value map where keys use dot-delimited hierarchical naming (e.g., "feature.citation.title") and values are the translated strings, optionally containing Template:Interpolation placeholders.
The canonical (source-of-truth) locale is en-US. All other locales mirror the same key structure with translated values.
Usage
Import translation keys from this namespace via the i18next hook:
import { useTranslation } from 'react-i18next'
const { t } = useTranslation()
t('appDebug.feature.citation.title') // Returns localized string
Code Reference
Source Location
- Repository: Langgenius_Dify
- Canonical File: web/i18n/en-US/app-debug.json
Locale Variants
| Locale | File | Lines |
|---|---|---|
| en-US | web/i18n/en-US/app-debug.json | 393 |
| fa-IR | web/i18n/fa-IR/app-debug.json | 393 |
| fr-FR | web/i18n/fr-FR/app-debug.json | 393 |
| ro-RO | web/i18n/ro-RO/app-debug.json | 393 |
| th-TH | web/i18n/th-TH/app-debug.json | 393 |
| vi-VN | web/i18n/vi-VN/app-debug.json | 393 |
| zh-Hant | web/i18n/zh-Hant/app-debug.json | 393 |
Key Structure
The canonical en-US file contains 391 translation keys organized under the following top-level prefixes:
| Prefix | Description | Example Key |
|---|---|---|
| agent | Agent mode and tool configuration | "agent.agentMode", "agent.tools.name" |
| assistantType | Assistant type selection | "assistantType.chatAssistant.name", "assistantType.agentAssistant.name" |
| autoAddVar | Auto-add variable prompt | "autoAddVar" |
| chatSubTitle | Chat instructions subtitle | "chatSubTitle" |
| code | Code instruction label | "code.instruction" |
| codegen | Code generator tool UI | "codegen.title", "codegen.generate", "codegen.apply" |
| completionSubTitle | Completion prefix subtitle | "completionSubTitle" |
| datasetConfig | Knowledge retrieval settings | "datasetConfig.retrieveMultiWay.title", "datasetConfig.top_k" |
| debugAsMultipleModel | Multi-model debug label | "debugAsMultipleModel" |
| debugAsSingleModel | Single-model debug label | "debugAsSingleModel" |
| duplicateModel | Duplicate model label | "duplicateModel" |
| errorMessage | Error and validation messages | "errorMessage.notSelectModel", "errorMessage.queryRequired" |
| feature | Feature toggles and settings | "feature.citation.title", "feature.fileUpload.title", "feature.moderation.title" |
| formattingChangedText | Formatting change warning text | "formattingChangedText" |
| formattingChangedTitle | Formatting change warning title | "formattingChangedTitle" |
| generate | Prompt generator UI | "generate.title", "generate.generate", "generate.apply" |
| inputs | Debug input panel | "inputs.title", "inputs.run", "inputs.previewTitle" |
| modelConfig | Model and parameter configuration | "modelConfig.model", "modelConfig.setTone" |
| noResult | Empty output placeholder | "noResult" |
| notSetAPIKey | API key not set warnings | "notSetAPIKey.title", "notSetAPIKey.settingBtn" |
| notSetVar | Variable not set hint | "notSetVar" |
| openingStatement | Conversation opener configuration | "openingStatement.title", "openingStatement.placeholder" |
| operation | Debug operation buttons | "operation.applyConfig", "operation.debugConfig" |
| orchestrate | Orchestrate label | "orchestrate" |
| otherError | Prompt validation errors | "otherError.promptNoBeEmpty", "otherError.queryNoBeEmpty" |
| pageTitle | Page title labels | "pageTitle.line1", "pageTitle.line2" |
| promptMode | Prompt mode switching | "promptMode.advanced", "promptMode.simple" |
| promptTip | Prompt writing tip | "promptTip" |
| publishAs | Publish action label | "publishAs" |
| resetConfig | Reset configuration dialog | "resetConfig.title", "resetConfig.message" |
| result | Output text label | "result" |
| trailUseGPT4Info | GPT-4 trial info | "trailUseGPT4Info.title" |
| varKeyError | Variable key validation errors | "varKeyError.canNoBeEmpty", "varKeyError.notValid" |
| variableConfig | Variable/input field configuration | "variableConfig.addModalTitle", "variableConfig.fieldType" |
| variableTable | Variable table headers | "variableTable.key", "variableTable.type" |
| variableTip | Variable usage tip | "variableTip" |
| variableTitle | Variables section title | "variableTitle" |
| vision | Vision (image) settings | "vision.name", "vision.visionSettings.resolution" |
| voice | Voice/TTS settings | "voice.name", "voice.voiceSettings.language" |
| warningMessage | Warning messages | "warningMessage.timeoutExceeded" |
{
"agent.agentMode": "Agent Mode",
"assistantType.chatAssistant.name": "Basic Assistant",
"autoAddVar": "Undefined variables referenced in pre-prompt...",
"chatSubTitle": "Instructions",
"code.instruction": "Instruction",
"codegen.title": "Code Generator",
"completionSubTitle": "Prefix Prompt",
"datasetConfig.top_k": "Top K",
"debugAsMultipleModel": "Debug as Multiple Models",
"debugAsSingleModel": "Debug as Single Model",
"duplicateModel": "Duplicate",
"errorMessage.notSelectModel": "Please choose a model",
"feature.citation.title": "Citations and Attributions",
"formattingChangedTitle": "Formatting changed",
"generate.title": "Prompt Generator",
"inputs.title": "Debug & Preview",
"modelConfig.model": "Model",
"noResult": "Output will be displayed here.",
"notSetAPIKey.title": "LLM provider key has not been set",
"openingStatement.title": "Conversation Opener",
"operation.applyConfig": "Publish",
"orchestrate": "Orchestrate",
"otherError.promptNoBeEmpty": "Prompt can not be empty",
"pageTitle.line1": "PROMPT",
"promptMode.advanced": "Expert Mode",
"promptTip": "Prompts guide AI responses with instructions...",
"publishAs": "Publish as",
"resetConfig.title": "Confirm reset?",
"result": "Output Text",
"varKeyError.canNoBeEmpty": "{{key}} is required",
"variableConfig.fieldType": "Field Type",
"variableTable.key": "Variable Key",
"variableTip": "Users fill variables in a form...",
"variableTitle": "Variables",
"vision.name": "Vision",
"voice.name": "Voice",
"warningMessage.timeoutExceeded": "Results are not displayed due to timeout..."
}
Import
// Keys from this namespace are accessed via useTranslation
import { useTranslation } from 'react-i18next'
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| key | string | Yes | Dot-delimited translation key (e.g., "feature.citation.title") |
| interpolation | Record<string, string> | No | Values for Template:Placeholder replacements (e.g., Template:Key, Template:VarName, Template:Count) |
Outputs
| Name | Type | Description |
|---|---|---|
| translated string | string | The localized string for the current locale |
Usage Examples
import { useTranslation } from 'react-i18next'
function MyComponent() {
const { t } = useTranslation()
return <span>{t('appDebug.feature.citation.title')}</span>
}
// With interpolation
function VarError({ keyName }: { keyName: string }) {
const { t } = useTranslation()
return <span>{t('appDebug.varKeyError.canNoBeEmpty', { key: keyName })}</span>
}