{
  "title": "DingTalk Sync Configuration",
  "corpId": "Corp ID",
  "corpIdPlaceholder": "Enter AgentId",
  "appKey": "App Key",
  "appKeyPlaceholder": "Enter AppKey",
  "appSecret": "App Secret",
  "appSecretPlaceholder": "Enter AppSecret",
  "testConnection": "Test Connection",
  "testSuccess": "Connection Successful",
  "testFail": "Connection Failed",
  "testing": "Testing...",
  "syncScope": "Sync Scope",
  "syncScopePlaceholder": "Please select",
  "syncScopeTip": "Select an organization as the top-level for data synchronization. Once synced, this organization cannot be changed.",
  "syncScopeLocked": "Initial sync completed. Sync scope is now locked. Contact admin to change.",
  "syncStats": "Sync Statistics",
  "syncType": "Sync Type",
  "totalCount": "Total",
  "successCount": "Synced",
  "failCount": "Failed",
  "notSynced": "Not Synced",
  "syncTime": "Sync Time",
  "syncStatus": "Status",
  "statusRunning": "Syncing",
  "statusSuccess": "Success",
  "statusPartial": "Partial",
  "statusFailed": "Failed",
  "operation": "Operation",
  "sync": "Sync",
  "syncing": "Syncing...",
  "syncDept": "Organization",
  "syncUser": "User",
  "syncDeptSuccess": "Organization sync completed",
  "syncUserSuccess": "User sync completed",
  "syncFail": "Sync failed",
  "triggerEvents": "Trigger Events",
  "triggerEvent": "Trigger Event",
  "description": "Description",
  "enableSyncDept": "Enable Sync Organization",
  "enableSyncDeptDesc": "Trigger organization sync on add, delete, or modify organization info",
  "enableSyncUser": "Enable Sync User",
  "enableSyncUserDesc": "Trigger user sync on add, delete, or modify user info",
  "save": "Save",
  "saving": "Saving...",
  "saveSuccess": "Saved successfully",
  "saveFail": "Save failed",
  "corpName": "Corp Name",
  "loadingDeptTree": "Loading department tree...",
  "callbackConfig": "Event Callback Configuration",
  "callbackConfigTip": "After configuring the callback URL, DingTalk contacts changes will be pushed to this system in real-time for incremental sync.",
  "callbackUrl": "Callback URL",
  "callbackUrlPlaceholder": "Enter callback URL, e.g. https://example.com/api/core/dingtalk-sync/callback",
  "callbackToken": "Callback Token",
  "callbackTokenPlaceholder": "Enter callback token",
  "callbackAesKey": "Callback AES Key",
  "callbackAesKeyPlaceholder": "Enter callback AES Key (43 characters)",
  "callbackStatus": "Callback Status",
  "callbackRegistered": "Registered",
  "callbackNotRegistered": "Not Registered",
  "registerCallback": "Register Callback",
  "deleteCallback": "Delete Callback",
  "registerSuccess": "Callback registered successfully",
  "registerFail": "Failed to register callback",
  "deleteCallbackSuccess": "Callback deleted successfully",
  "deleteCallbackFail": "Failed to delete callback",
  "registering": "Registering...",
  "subscribedEvents": "Subscribed Events",
  "generateRandom": "Generate",
  "streamConfig": "Stream Mode (Real-time Sync)",
  "streamConfigTip": "Receive DingTalk contacts change events in real-time via WebSocket connection. No public callback URL required.",
  "streamStatus": "Connection Status",
  "streamConnected": "Connected",
  "streamDisconnected": "Disconnected",
  "streamTotalEvents": "Events Received",
  "streamLastEvent": "Last Event",
  "streamLastEventTime": "Last Event Time",
  "streamEventNone": "None",
  "streamEventLog": "Incremental Sync Log",
  "refresh": "Refresh",
  "eventType": "Event Type",
  "targetType": "Target Type",
  "targetName": "Target Name",
  "eventStatus": "Status",
  "eventTime": "Time",
  "eventCreate": "Create Org",
  "eventModify": "Modify Org",
  "eventRemove": "Remove Org",
  "eventAddUser": "Add User",
  "eventModifyUser": "Modify User",
  "eventLeaveUser": "User Left",
  "eventActiveUser": "User Activated",
  "guideTitle": "DingTalk Sync Setup Guide",
  "guideStep1Title": "Create a DingTalk Internal App",
  "guideStep1Desc": "Log in to DingTalk Open Platform (open.dingtalk.com), navigate to \"App Development\" -> \"Internal Development\", create an H5 mini-app, and obtain the AppKey and AppSecret.",
  "guideStep2Title": "Configure App Permissions",
  "guideStep2Desc": "In the app management page, go to \"Permission Management\" and enable the following permissions: \"Contact Department Info Read\", \"Member Info Read\", \"Contact Department Members Read\", \"Employee Phone Number Info\", etc.",
  "guideStep3Title": "Enter Credentials",
  "guideStep3Desc": "Fill in the CorpId, AppKey, and AppSecret into the corresponding fields on this page, then click \"Test Connection\" to verify the credentials.",
  "guideStep4Title": "Set Sync Scope & Run Full Sync",
  "guideStep4Desc": "After a successful connection, select the root department in \"Sync Scope\", then click \"Sync\" in the statistics table — sync organizations first, then users.",
  "guideStep5Title": "Enable Stream Mode on DingTalk Platform",
  "guideStep5Desc": "Log in to DingTalk Open Platform, go to app -> \"Events & Callbacks\", select \"Stream Mode\" for push method, and save. No callback URL, Token, or AES Key needed.",
  "guideStep6Title": "Enable Trigger Events",
  "guideStep6Desc": "In the \"Trigger Events\" section, check the event types to auto-sync (organizations, users) and save. DingTalk contacts changes will then be pushed to the system for incremental sync automatically."
}
