Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Langgenius Dify I18n Common Translations

From Leeroopedia


Knowledge Sources
Domains Internationalization, Frontend
Last Updated 2026-02-08 00:00 GMT

Overview

Concrete i18n translation bundle providing localized UI strings for the common section of the Dify frontend.

Description

This translation namespace contains all shared, cross-cutting user-facing strings used throughout the Dify web application, including account management, action messages, API status messages, API-based extensions, application menus, app mode labels, avatar management, chat UI, compliance labels, data source configuration (Notion, website), dataset menus, dynamic selects, environment badges, error messages, feedback forms, file/image uploaders, integrations, language/timezone settings, license labels, member management, navigation menus, model configuration and provider settings, general operations (CRUD, clipboard, search), pagination, placeholder text, plugin configuration, prompt editor, provider authentication, application settings, tags, theme preferences, voice language labels, and voice input controls. The bundle is a flat JSON key-value map where keys use dot-delimited hierarchical naming (e.g., "account.email") 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('common.operation.save')  // Returns localized string

Code Reference

Source Location

Locale Variants

Locale File Lines
en-US web/i18n/en-US/common.json 629
fa-IR web/i18n/fa-IR/common.json 629
fr-FR web/i18n/fr-FR/common.json 629
ro-RO web/i18n/ro-RO/common.json 629
vi-VN web/i18n/vi-VN/common.json 629
zh-Hant web/i18n/zh-Hant/common.json 629

Key Structure

The canonical en-US file contains 627 translation keys organized under the following top-level prefixes:

Prefix Description Example Key
about Application version and update info "about.changeLog", "about.updateNow"
account User account management "account.email", "account.password", "account.changeEmail.title"
actionMsg Action result messages "actionMsg.copySuccessfully", "actionMsg.modifiedSuccessfully"
api API action status messages "api.actionFailed", "api.saved"
apiBasedExtension API extension configuration "apiBasedExtension.add", "apiBasedExtension.modal.title"
appMenus Application navigation menus "appMenus.overview", "appMenus.promptEng"
appModes Application mode labels "appModes.chatApp", "appModes.completionApp"
avatar Avatar management "avatar.deleteTitle", "avatar.deleteDescription"
chat Chat interface strings "chat.citation.title", "chat.thinking", "chat.resend"
compliance Compliance certification labels "compliance.gdpr", "compliance.soc2Type2"
dataSource Data source configuration "dataSource.notion.title", "dataSource.website.title"
datasetMenus Knowledge base navigation menus "datasetMenus.documents", "datasetMenus.settings"
dynamicSelect Dynamic select component "dynamicSelect.loading", "dynamicSelect.noData"
environment Environment badge labels "environment.development", "environment.testing"
error Generic error label "error"
errorMsg Validation error messages "errorMsg.fieldRequired", "errorMsg.urlError"
feedback Feedback form strings "feedback.title", "feedback.placeholder"
fileUploader File upload component "fileUploader.uploadFromComputer", "fileUploader.pasteFileLink"
imageInput Image input component "imageInput.browse", "imageInput.supportedFormats"
imageUploader Image upload component "imageUploader.imageUpload", "imageUploader.pasteImageLink"
integrations Third-party integrations "integrations.github", "integrations.google"
label Generic label helpers "label.optional"
language Language and timezone settings "language.displayLanguage", "language.timezone"
license License status labels "license.expiring", "license.unlimited"
loading Loading indicator "loading"
members Team member management "members.invite", "members.role", "members.transferOwnership"
menus Main navigation menus "menus.apps", "menus.datasets", "menus.plugins"
model Model configuration and parameters "model.params.temperature", "model.tone.Creative"
modelName Model display names "modelName.gpt-4", "modelName.claude-2"
modelProvider Model provider management "modelProvider.addModel", "modelProvider.loadBalancing"
noData Empty state label "noData"
operation Common operations (CRUD, clipboard) "operation.save", "operation.delete", "operation.copy"
pagination Pagination controls "pagination.perPage"
placeholder Generic placeholder text "placeholder.input", "placeholder.search"
plugin Plugin configuration "plugin.serpapi.apiKey"
promptEditor Prompt editor components "promptEditor.context.item.title", "promptEditor.variable.modal.add"
provider Provider authentication "provider.addKey", "provider.invalidKey"
settings Application settings navigation "settings.account", "settings.members", "settings.provider"
tag Tag management "tag.addTag", "tag.manageTags"
theme Theme preference labels "theme.light", "theme.dark", "theme.auto"
unit Unit labels "unit.char"
userProfile User profile menu items "userProfile.settings", "userProfile.logout"
voice Voice language labels "voice.language.enUS", "voice.language.zhHans"
voiceInput Voice input controls "voiceInput.speaking", "voiceInput.converting"
you Current user label "you"
{
  "about.changeLog": "Changelog",
  "account.email": "Email",
  "actionMsg.copySuccessfully": "Copied successfully",
  "api.saved": "Saved",
  "apiBasedExtension.add": "Add API Extension",
  "appMenus.overview": "Monitoring",
  "appModes.chatApp": "Chat App",
  "avatar.deleteTitle": "Remove Avatar",
  "chat.thinking": "Thinking...",
  "compliance.gdpr": "GDPR DPA",
  "dataSource.notion.title": "Notion",
  "datasetMenus.documents": "Documents",
  "dynamicSelect.loading": "Loading options...",
  "environment.development": "DEVELOPMENT",
  "error": "Error",
  "errorMsg.fieldRequired": "{{field}} is required",
  "feedback.title": "Provide Feedback",
  "fileUploader.uploadFromComputer": "Local upload",
  "imageInput.browse": "browse",
  "imageUploader.imageUpload": "Image Upload",
  "integrations.github": "GitHub",
  "label.optional": "(optional)",
  "language.displayLanguage": "Display Language",
  "license.unlimited": "Unlimited",
  "loading": "Loading",
  "members.invite": "Add",
  "menus.apps": "Studio",
  "model.params.temperature": "Temperature",
  "modelName.gpt-4": "GPT-4",
  "modelProvider.addModel": "Add Model",
  "noData": "No data",
  "operation.save": "Save",
  "pagination.perPage": "Items per page",
  "placeholder.search": "Search...",
  "plugin.serpapi.apiKey": "API Key",
  "promptEditor.context.item.title": "Context",
  "provider.addKey": "Add Key",
  "settings.account": "My account",
  "tag.addTag": "Add tags",
  "theme.light": "light",
  "unit.char": "chars",
  "userProfile.settings": "Settings",
  "voice.language.enUS": "English",
  "voiceInput.speaking": "Speak now...",
  "you": "You"
}

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., "operation.save")
interpolation Record<string, string> No Values for Template:Placeholder replacements (e.g., Template:Field, Template:Count, Template:Size)

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('common.operation.save')}</span>
}
// With interpolation
function UploadLimit({ size }: { size: string }) {
  const { t } = useTranslation()

  return <span>{t('common.imageUploader.uploadFromComputerLimit', { size })}</span>
}

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment